From: Stefano Garzarella <sgarzare@redhat.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: "Will Deacon" <will@kernel.org>,
linux-kernel@vger.kernel.org, "Keir Fraser" <keirf@google.com>,
"Steven Moreland" <smoreland@google.com>,
"Frederick Mayle" <fmayle@google.com>,
"Stefan Hajnoczi" <stefanha@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Jason Wang" <jasowang@redhat.com>,
"Eugenio Pérez" <eperezma@redhat.com>,
netdev@vger.kernel.org, virtualization@lists.linux.dev
Subject: Re: [PATCH v4 4/9] vsock/virtio: Resize receive buffers so that each SKB fits in a 4K page
Date: Mon, 12 Jan 2026 15:48:11 +0100 [thread overview]
Message-ID: <aWUFnZTkdOrZAest@sgarzare-redhat> (raw)
In-Reply-To: <fa3cd687961e63dd2b79780eb84c243c8d35532a.camel@infradead.org>
On Thu, Jan 08, 2026 at 05:33:42PM +0100, David Woodhouse wrote:
>On Thu, 2025-07-17 at 10:01 +0100, Will Deacon wrote:
>>
>> -#define VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE (1024 * 4)
>> +/* Dimension the RX SKB so that the entire thing fits exactly into
>> + * a single 4KiB page. This avoids wasting memory due to alloc_skb()
>> + * rounding up to the next page order and also means that we
>> + * don't leave higher-order pages sitting around in the RX queue.
>> + */
>> +#define
>> VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE SKB_WITH_OVERHEAD(1024 * 4)
>
>Should this be SKB_WITH_OVERHEAD()?
ehm, is what the patch is doing, no?
>
>Or should it subtract VIRTIO_VSOCK_SKB_HEADROOM instead?
Why?
IIRC the goal of the patch was to have an SKB that fit entirely on one
page, to avoid wasting memory, so yes, we are reducing the payload a
little bit (4K vs 4K - VIRTIO_VSOCK_SKB_HEADROOM - SKB_OVERHEAD), but we
are also reducing segmentation.
>
>(And also, I have use cases where I want to expand this to 64KiB. Can I
>make it controllable with a sockopt? module param?)
I'm not sure about sockopt, because this is really device specific and
can't be linked to a specific socket, since the device will pre-fill the
queue with buffers that can be assigned to different sockets.
But yeah, perhaps a module parameter would suffice, provided that it can
only be modified at load time, otherwise we would have to do something
similar to NIC and ethtool, but I feel that would be too complicated for
this use case.
Thanks,
Stefano
next prev parent reply other threads:[~2026-01-12 14:48 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-17 9:01 [PATCH v4 0/9] vsock/virtio: SKB allocation improvements Will Deacon
2025-07-17 9:01 ` [PATCH v4 1/9] vhost/vsock: Avoid allocating arbitrarily-sized SKBs Will Deacon
2025-07-17 9:10 ` Jason Wang
2025-07-17 9:25 ` Stefano Garzarella
2025-07-17 9:01 ` [PATCH v4 2/9] vsock/virtio: Validate length in packet header before skb_put() Will Deacon
2025-07-17 9:39 ` Stefano Garzarella
2025-07-17 9:01 ` [PATCH v4 3/9] vsock/virtio: Move length check to callers of virtio_vsock_skb_rx_put() Will Deacon
2025-07-17 9:01 ` [PATCH v4 4/9] vsock/virtio: Resize receive buffers so that each SKB fits in a 4K page Will Deacon
2026-01-08 16:33 ` David Woodhouse
2026-01-12 14:48 ` Stefano Garzarella [this message]
2026-01-12 15:22 ` Will Deacon
2025-07-17 9:01 ` [PATCH v4 5/9] vsock/virtio: Rename virtio_vsock_alloc_skb() Will Deacon
2025-07-17 9:01 ` [PATCH v4 6/9] vsock/virtio: Move SKB allocation lower-bound check to callers Will Deacon
2025-07-17 9:01 ` [PATCH v4 7/9] vhost/vsock: Allocate nonlinear SKBs for handling large receive buffers Will Deacon
2025-07-17 9:01 ` [PATCH v4 8/9] vsock/virtio: Rename virtio_vsock_skb_rx_put() Will Deacon
2025-07-17 9:01 ` [PATCH v4 9/9] vsock/virtio: Allocate nonlinear SKBs for handling large transmit buffers Will Deacon
2025-08-13 8:41 ` Michael S. Tsirkin
2025-08-13 13:25 ` Hillf Danton
2025-08-15 10:22 ` Michael S. Tsirkin
2025-08-15 12:07 ` Hillf Danton
2025-08-16 10:38 ` Michael S. Tsirkin
2025-07-17 12:31 ` [PATCH v4 0/9] vsock/virtio: SKB allocation improvements Michael S. Tsirkin
2025-07-17 12:36 ` Stefano Garzarella
2025-07-17 12:35 ` Michael S. Tsirkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aWUFnZTkdOrZAest@sgarzare-redhat \
--to=sgarzare@redhat.com \
--cc=dwmw2@infradead.org \
--cc=eperezma@redhat.com \
--cc=fmayle@google.com \
--cc=jasowang@redhat.com \
--cc=keirf@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mst@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=smoreland@google.com \
--cc=stefanha@redhat.com \
--cc=virtualization@lists.linux.dev \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox