diff options
| author | Michael S. Tsirkin <mst@redhat.com> | 2026-07-05 02:24:18 -0400 |
|---|---|---|
| committer | Michael S. Tsirkin <mst@redhat.com> | 2026-08-03 23:08:16 -0400 |
| commit | 22172d588a7cfa61d347774cfc0b4419d6c6388e (patch) | |
| tree | 11eed1bd3cbf1ef741ef2b98e26a40e60b87dbd5 /scripts/Makefile.thinlto | |
| parent | 0556300369d8fcdc0db08f8b4984a01119fd315f (diff) | |
| download | linux-next-22172d588a7cfa61d347774cfc0b4419d6c6388e.tar.gz linux-next-22172d588a7cfa61d347774cfc0b4419d6c6388e.zip | |
virtio_balloon: disable indirect descriptors
The page reporting callback submits an sg list to the reporting
virtqueue. With VIRTIO_RING_F_INDIRECT_DESC negotiated and
total_sg > 1 (which it typically is), virtqueue_add reports it to the
host by allocating an indirect descriptor via kmalloc(GFP_KERNEL).
This is not pretty: the reporting worker isolates potentially hundreds
of MB of free pages from the buddy allocator (reported pages are at
least pageblock_order, and the sg can contain up to
PAGE_REPORTING_CAPACITY entries of varying orders). As the result,
very theoretically, the kmalloc might trigger OOM when we have in fact a
ton of free memory.
Clear VIRTIO_RING_F_INDIRECT_DESC, to avoid using indirect descriptors.
Fixes: b0c504f15471 ("virtio-balloon: add support for providing free page reports to host")
Assisted-by: Claude:claude-opus-4-6
Acked-by: David Hildenbrand (Arm) <david@kernel.org>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Message-ID: <73fac8a629fd9aca7bb3265ac243a769c28af25d.1783232420.git.mst@redhat.com>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions
