linux-kernelorg-stable/drivers
Will Deacon ab9aa2f3af vhost/vsock: Allocate nonlinear SKBs for handling large receive buffers
When receiving a packet from a guest, vhost_vsock_handle_tx_kick()
calls vhost_vsock_alloc_linear_skb() to allocate and fill an SKB with
the receive data. Unfortunately, these are always linear allocations and
can therefore result in significant pressure on kmalloc() considering
that the maximum packet size (VIRTIO_VSOCK_MAX_PKT_BUF_SIZE +
VIRTIO_VSOCK_SKB_HEADROOM) is a little over 64KiB, resulting in a 128KiB
allocation for each packet.

Rework the vsock SKB allocation so that, for sizes with page order
greater than PAGE_ALLOC_COSTLY_ORDER, a nonlinear SKB is allocated
instead with the packet header in the SKB and the receive data in the
fragments. Finally, add a debug warning if virtio_vsock_skb_rx_put() is
ever called on an SKB with a non-zero length, as this would be
destructive for the nonlinear case.

Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Will Deacon <will@kernel.org>
Message-Id: <20250717090116.11987-8-will@kernel.org>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2025-08-01 09:11:09 -04:00
..
accel
accessibility
acpi ACPI fix for 6.16-rc5. 2025-07-04 17:25:41 -07:00
amba
android
ata
atm
auxdisplay
base Power management fix for 6.16-rc6 2025-07-11 09:19:33 -07:00
bcma
block block-6.16-20250710 2025-07-11 10:35:54 -07:00
bluetooth
bus
cache
cdrom
cdx
char agp/amd64: Check AGP Capability before binding to unsupported devices 2025-07-09 07:23:09 +02:00
clk
clocksource
comedi
connector
counter
cpufreq
cpuidle
crypto
cxl
dax
dca
devfreq
dio
dma
dma-buf
dpll
edac
eisa
extcon
firewire
firmware EFI fixes for v6.16 #1 2025-07-07 18:22:25 -07:00
fpga
fsi
fwctl
gnss
gpio gpio: of: initialize local variable passed to the .of_xlate() callback 2025-07-09 16:14:11 +02:00
gpu drm/virtio: implement virtio_gpu_shutdown 2025-08-01 09:11:07 -04:00
greybus
hid hid-for-linus-2025070502 2025-07-05 16:14:03 -07:00
hsi
hte
hv
hwmon
hwspinlock
hwtracing
i2c i2c-for-6.16-rc5 2025-07-05 12:54:24 -07:00
i3c
idle
iio
infiniband SCSI fixes on 20250703 2025-07-03 11:52:39 -07:00
input Input updates for v6.16-rc4 2025-07-04 09:54:15 -07:00
interconnect
iommu iommu/vt-d: Assign devtlb cache tag on ATS enablement 2025-07-04 10:33:56 +02:00
ipack
irqchip
isdn
leds
macintosh
mailbox
mcb
md block-6.16-20250710 2025-07-11 10:35:54 -07:00
media
memory
memstick
message
mfd
misc
mmc
most
mtd
mux
net bnxt_en: Set DMA unmap len correctly for XDP_REDIRECT 2025-07-11 07:28:34 -07:00
nfc
ntb
nubus
nvdimm
nvme block-6.16-20250704 2025-07-04 09:33:59 -07:00
nvmem
of
opp
parisc
parport
pci - Fix a case of recursive locking in the MSI code 2025-07-13 10:36:55 -07:00
pcmcia
peci
perf
phy
pinctrl pinctrl: aw9523: fix can_sleep flag for GPIO chip 2025-07-04 10:31:50 +02:00
platform platform-drivers-x86 for v6.16-3 2025-07-04 10:05:31 -07:00
pmdomain
pnp
power
powercap
pps
ps3
ptp
pwm pwm: mediatek: Ensure to disable clocks in error path 2025-07-07 08:34:44 +02:00
rapidio
ras
regulator regulator: gpio: Fix the out-of-bounds access to drvdata::gpiods 2025-07-03 12:22:35 +01:00
remoteproc
reset
rpmsg
rtc
s390
sbus
scsi
sh
siox
slimbus
soc
soundwire
spi
spmi
ssb
staging
target
tc
tee A fix in the OP-TEE driver for v6.16 2025-07-03 16:26:08 +02:00
thermal
thunderbolt
tty
ufs
uio
usb
vdpa vdpa: Fix IDR memory leak in VDUSE module exit 2025-08-01 09:11:08 -04:00
vfio
vhost vhost/vsock: Allocate nonlinear SKBs for handling large receive buffers 2025-08-01 09:11:09 -04:00
video
virt
virtio virtio: virtio_dma_buf: fix missing parameter documentation 2025-08-01 09:11:08 -04:00
w1
watchdog
xen
zorro
Kconfig
Makefile