From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=none (p=none dis=none) header.from=gibson.dropbear.id.au Authentication-Results: passt.top; dkim=pass (2048-bit key; secure) header.d=gibson.dropbear.id.au header.i=@gibson.dropbear.id.au header.a=rsa-sha256 header.s=202508 header.b=yHJcXtwL; dkim-atps=neutral Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) by passt.top (Postfix) with ESMTPS id F12CF5A0289 for ; Mon, 08 Sep 2025 04:00:35 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gibson.dropbear.id.au; s=202508; t=1757296826; bh=ZgamUYSlsJAwU8kj/uTJlfeG5fJBTuxC4hZru6kZrXI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=yHJcXtwL81Hh1d73wwmUEbv7GVRLBUJsHiM/ispTYGb4u+HmZmgNiqsXTpU0g7A4I DobBaJS7RC2rUsy8/fxpYd06BFugMHekFN1euyy9r9WezPNJaoutq50GjFRqQcFiKk +0OkUbv8ZxWu0amynSv8x5AmMCQ6B5hExS9ulUch7d8N81AYZgs1J8TQHdbMChhP5X JPc1G8cVEgnk4gdiPOqIXOFbxqrA7x/Gkq7V8K78qYgaLM1dxT4O4CG7xFb4X8Ikcl Tp2l4TuvURqsxhlZDs5WqLpRcFnUhk6XHqwrBUIIKzuRdl/GAgVeX516uTHigvGQvZ O3YXw2nMmZrDQ== Received: by gandalf.ozlabs.org (Postfix, from userid 1007) id 4cKqsk2QTNz4wBM; Mon, 8 Sep 2025 12:00:26 +1000 (AEST) Date: Mon, 8 Sep 2025 12:00:21 +1000 From: David Gibson To: Laurent Vivier Subject: Re: [PATCH 3/3] tcp_vu: Pass virtqueue pointer to tcp_vu_sock_recv() Message-ID: References: <20250905154935.389634-1-lvivier@redhat.com> <20250905154935.389634-4-lvivier@redhat.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="KkrhHWS/nZlnihFC" Content-Disposition: inline In-Reply-To: <20250905154935.389634-4-lvivier@redhat.com> Message-ID-Hash: KSLTVGGRQPOUWWXQD7TLCSIPXRULXK6M X-Message-ID-Hash: KSLTVGGRQPOUWWXQD7TLCSIPXRULXK6M X-MailFrom: dgibson@gandalf.ozlabs.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: passt-dev@passt.top X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --KkrhHWS/nZlnihFC Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Sep 05, 2025 at 05:49:35PM +0200, Laurent Vivier wrote: > Pass the virtqueue pointer to tcp_vu_sock_recv() to enable proper > queue selection for multiqueue support. This ensures that received > packets are processed on the same virtqueue as the caller. >=20 > Signed-off-by: Laurent Vivier Reviewed-by: David Gibson > --- > tcp_vu.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) >=20 > diff --git a/tcp_vu.c b/tcp_vu.c > index cb39bc20355b..c6b5b91ec266 100644 > --- a/tcp_vu.c > +++ b/tcp_vu.c > @@ -171,6 +171,7 @@ int tcp_vu_send_flag(const struct ctx *c, struct tcp_= tap_conn *conn, int flags) > =20 > /** tcp_vu_sock_recv() - Receive datastream from socket into vhost-user = buffers > * @c: Execution context > + * @vq: virtqueue to use to receive data > * @conn: Connection pointer > * @v6: Set for IPv6 connections > * @already_sent: Number of bytes already sent > @@ -181,13 +182,12 @@ int tcp_vu_send_flag(const struct ctx *c, struct tc= p_tap_conn *conn, int flags) > * Return: number of bytes received from the socket, or a negative error= code > * on failure. > */ > -static ssize_t tcp_vu_sock_recv(const struct ctx *c, > +static ssize_t tcp_vu_sock_recv(const struct ctx *c, struct vu_virtq *vq, > const struct tcp_tap_conn *conn, bool v6, > uint32_t already_sent, size_t fillsize, > int *iov_cnt, int *head_cnt) > { > - struct vu_dev *vdev =3D c->vdev; > - struct vu_virtq *vq =3D &vdev->vq[VHOST_USER_RX_QUEUE]; > + const struct vu_dev *vdev =3D c->vdev; > struct msghdr mh_sock =3D { 0 }; > uint16_t mss =3D MSS_GET(conn); > int s =3D conn->sock; > @@ -398,7 +398,7 @@ int tcp_vu_data_from_sock(const struct ctx *c, struct= tcp_tap_conn *conn) > /* collect the buffers from vhost-user and fill them with the > * data from the socket > */ > - len =3D tcp_vu_sock_recv(c, conn, v6, already_sent, fillsize, > + len =3D tcp_vu_sock_recv(c, vq, conn, v6, already_sent, fillsize, > &iov_cnt, &head_cnt); > if (len < 0) { > if (len !=3D -EAGAIN && len !=3D -EWOULDBLOCK) { > --=20 > 2.50.1 >=20 --=20 David Gibson (he or they) | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you, not the other way | around. http://www.ozlabs.org/~dgibson --KkrhHWS/nZlnihFC Content-Type: application/pgp-signature; name=signature.asc -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEO+dNsU4E3yXUXRK2zQJF27ox2GcFAmi+OLQACgkQzQJF27ox 2GeWNhAAhKXlU+k4uIbl0h1B6uXsAHHGUEwsbN47aJv9iHkS/8R3NH9r82jqJKRz NCbxzoU+hEsz1h2GlS4sH7hqifT8Lba1vmpHyj+OK51XWzZQCoX/qd/ZDUy5DGrk Y4TI/RYg9fiahk9EXejH2RYkidA4+9KYMzj5b7QZuiFAXIGGbau14Rn9Bf7wtTUf 2sV4ddsZm7PoRgaCPKEJS0Jka6Z7HvYLk5x3LONF8g7JVdCi75FhnSisGNsoH7HL jWvwdr33FHoW+jY2+xhzbknuZpD0XlYJwlv6htzMbZ6dqCA8+lOGAXtEzwt/H3Tw a1VQipi7OffseA2vLvO+1PmMjL8Gph8AVMtdSjFhrAQiZkmBf2tmBxZtEXqvWx3U Rquxu3YWaUL8L5mFaA7kx0fwfeUyyU8cNjrmzaYJhra+LDS19n6GV7TnCG5ZYXLL VTmUcy389IG/9dzYggaa2dG+qfITZzx/ExOIDPByM5e1F7l0/spyg0s97uAu6s0Z TV6K/gMQoG/vvtjewBuJRsHFL3ZRXH27PcXfXLAeTOWzTgFqy8bl8PF/ekXnN7B9 IB2Hua9Lyt6yfLR3e/9J0obMO4o5xQ9zjWbr9m1PRmrdVs+tJR+0kmIQttLdoalf YvEi0DpH/y2rGVqbU4orcACJelJ+nIUgukQwGquNNr2Cd+l+0X0= =OCz2 -----END PGP SIGNATURE----- --KkrhHWS/nZlnihFC--