public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
* [PATCH 0/4] vhost-user: Add multiqueue support
@ 2025-11-07 14:38 Laurent Vivier
  2025-11-07 14:38 ` [PATCH 1/4] vhost-user: Enable multiqueue Laurent Vivier
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: Laurent Vivier @ 2025-11-07 14:38 UTC (permalink / raw)
  To: passt-dev; +Cc: Laurent Vivier

This series implements multiqueue support for vhost-user mode, allowing passt
to utilize multiple queue pairs. There is no improved network performance because
we keep using only one thread.

The implementation introduces a --max-queues parameter to configure up to 16
queue pairs (32 virtqueues) in vhost-user mode. Packets are routed to the
appropriate RX queue based on which TX queue they originated from, enabling the
guest kernel to distribute network traffic across multiple queues and vCPUs.

This series adds:
- configuration support for multiqueue via --max-queues parameter
- queue parameter threading throughout the network stack - a significant
  refactoring that propagates queue information through all protocol handlers
  (TCP, UDP, ICMP, ARP, DHCP, DHCPv6, NDP)
- flow-aware queue routing that matches RX queue selection to the incoming
  TX queue, maintaining proper packet affinity
- comprehensive test coverage with VHOST_USER_MQ environment variable to
  validate multiqueue functionality across all test scenarios

Current behavior: TX queue selection is controlled by the guest kernel, while
RX packets are routed to queues based on their associated flows. Host-initiated
flows currently default to queue 0.

The RX queue of a flow is updated on each new packet from the TX queue to
maintain affinity.

The changes maintain backward compatibility - without --max-queues, behavior
remains unchanged with single-queue operation.

Laurent Vivier (4):
  vhost-user: Enable multiqueue
  vhost-user: Add queue parameter throughout the network stack
  multiqueue: Add queue-aware flow management for multiqueue support
  test: Add multiqueue support to vhost-user test infrastructure

 arp.c          |  12 ++---
 arp.h          |   4 +-
 conf.c         |  31 ++++++++++++-
 dhcp.c         |   5 ++-
 dhcp.h         |   2 +-
 dhcpv6.c       |  12 ++---
 dhcpv6.h       |   2 +-
 flow.c         |  32 +++++++++++++
 flow.h         |  10 +++++
 fwd.c          |   4 +-
 icmp.c         |  25 ++++++-----
 icmp.h         |   2 +-
 ndp.c          |  32 +++++++------
 ndp.h          |   5 ++-
 passt.h        |   2 +
 tap.c          | 120 +++++++++++++++++++++++++++++--------------------
 tap.h          |  18 ++++----
 tcp.c          |  82 ++++++++++++++++++---------------
 tcp.h          |  11 ++---
 tcp_vu.c       |   8 ++--
 test/lib/setup |  60 +++++++++++++++++++------
 test/run       |  23 ++++++++++
 udp.c          |  40 ++++++++++-------
 udp.h          |  12 ++---
 udp_flow.c     |   8 +++-
 udp_flow.h     |   2 +-
 udp_vu.c       |   4 +-
 vhost_user.c   |  38 +++++++++-------
 virtio.h       |   2 +-
 vu_common.c    |  13 +++---
 vu_common.h    |   3 +-
 31 files changed, 416 insertions(+), 208 deletions(-)

-- 
2.51.0



^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2025-11-18  0:17 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-11-07 14:38 [PATCH 0/4] vhost-user: Add multiqueue support Laurent Vivier
2025-11-07 14:38 ` [PATCH 1/4] vhost-user: Enable multiqueue Laurent Vivier
2025-11-10  4:48   ` David Gibson
2025-11-17 15:26     ` Laurent Vivier
2025-11-18  0:16       ` David Gibson
2025-11-07 14:38 ` [PATCH 2/4] vhost-user: Add queue parameter throughout the network stack Laurent Vivier
2025-11-10  5:19   ` David Gibson
2025-11-07 14:39 ` [PATCH 3/4] multiqueue: Add queue-aware flow management for multiqueue support Laurent Vivier
2025-11-10  5:54   ` David Gibson
2025-11-07 14:39 ` [PATCH 4/4] test: Add multiqueue support to vhost-user test infrastructure Laurent Vivier
2025-11-10  5:57   ` David Gibson
2025-11-10  4:40 ` [PATCH 0/4] vhost-user: Add multiqueue support David Gibson
2025-11-10  6:00   ` David Gibson

Code repositories for project(s) associated with this public inbox

	https://passt.top/passt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).