Commit 00f97d95 authored by Will Deacon's avatar Will Deacon Committed by Isaac Manjarres
Browse files

FROMGIT: vsock/virtio: Resize receive buffers so that each SKB fits in a 4K page



When allocating receive buffers for the vsock virtio RX virtqueue, an
SKB is allocated with a 4140 data payload (the 44-byte packet header +
VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE). Even when factoring in the SKB
overhead, the resulting 8KiB allocation thanks to the rounding in
kmalloc_reserve() is wasteful (~3700 unusable bytes) and results in a
higher-order page allocation on systems with 4KiB pages just for the
sake of a few hundred bytes of packet data.

Limit the vsock virtio RX buffers to 4KiB per SKB, resulting in much
better memory utilisation and removing the need to allocate higher-order
pages entirely.

Reviewed-by: default avatarStefano Garzarella <sgarzare@redhat.com>
Signed-off-by: default avatarWill Deacon <will@kernel.org>
Message-Id: <20250717090116.11987-5-will@kernel.org>
Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
(cherry picked from commit 5f96156100062d3efdc87ef8c469885675c68ad2
 git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git

 vhost)
Bug: 421244320
Signed-off-by: default avatarWill Deacon <willdeacon@google.com>
Change-Id: Idffe1209762d1380834ea62b276943ce9359d11a
parent 89ff1bc0
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment