linux/drivers/vhost
Stefano Garzarella 473c7391ce vsock/virtio: limit the memory used per-socket
Since virtio-vsock was introduced, the buffers filled by the host
and pushed to the guest using the vring, are directly queued in
a per-socket list. These buffers are preallocated by the guest
with a fixed size (4 KB).

The maximum amount of memory used by each socket should be
controlled by the credit mechanism.
The default credit available per-socket is 256 KB, but if we use
only 1 byte per packet, the guest can queue up to 262144 of 4 KB
buffers, using up to 1 GB of memory per-socket. In addition, the
guest will continue to fill the vring with new 4 KB free buffers
to avoid starvation of other sockets.

This patch mitigates this issue copying the payload of small
packets (< 128 bytes) into the buffer of last packet queued, in
order to avoid wasting memory.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-07-30 15:00:00 -07:00
..
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Kconfig.vringh treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile
net.c virtio, vhost: fixes, features, performance 2019-07-17 11:26:09 -07:00
scsi.c vhost: scsi: add weight support 2019-05-27 11:08:23 -04:00
test.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 482 2019-06-19 17:09:52 +02:00
test.h
vhost.c virtio, vhost: fixes, features, performance 2019-07-17 11:26:09 -07:00
vhost.h vhost: fix clang build warning 2019-06-06 17:32:13 -04:00
vringh.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
vsock.c vsock/virtio: limit the memory used per-socket 2019-07-30 15:00:00 -07:00