freebsd-dev/sys/dev/virtio
Roger Pau Monné 68e58ea7ed xen/virtio: fix balloon drivers to not mark pages as WIRED
Prevent the Xen and VirtIO balloon drivers from marking pages as
wired. This prevents them from increasing the system wired page count,
which can lead to mlock failing because of hitting the limit in
vm.max_wired.

In the Xen case make sure pages are zeroed before giving them back to
the hypervisor, or else we might be leaking data. Also remove the
balloon_{append/retrieve} and link pages directly into the
ballooned_pages queue using the plinks.q field in the page struct.

Sponsored by: Citrix Systems R&D
Reviewed by: kib, bryanv
Approved by: gibbs

dev/virtio/balloon/virtio_balloon.c:
 - Don't allocate pages with VM_ALLOC_WIRED.

dev/xen/balloon/balloon.c:
 - Don't allocate pages with VM_ALLOC_WIRED.
 - Make sure pages are zeroed before giving them back to the
   hypervisor.
 - Remove the balloon_entry struct and the balloon_{append/retrieve}
   functions and use the page plinks.q entry to link the pages
   directly into the ballooned_pages queue.
2014-06-25 09:51:08 +00:00
..
balloon xen/virtio: fix balloon drivers to not mark pages as WIRED 2014-06-25 09:51:08 +00:00
block Always append new bios to the tail of the queue, instead of sorting them 2014-06-10 03:29:15 +00:00
network Force two byte alignment for all control message headers 2014-06-16 04:32:27 +00:00
pci Move the VIRTIO_RING_F_* defines out of virtqueue.h into virtio_config.h 2014-06-16 04:25:04 +00:00
random Wait for the callout to finish before unloading the module 2014-04-24 05:04:54 +00:00
scsi Read each field of the configuration individually 2014-01-25 07:01:51 +00:00
virtio_bus_if.m Merge virtio changes from projects/virtio 2013-07-04 17:57:26 +00:00
virtio_config.h Move the VIRTIO_RING_F_* defines out of virtqueue.h into virtio_config.h 2014-06-16 04:25:04 +00:00
virtio_ids.h Split the virtio.h header file into multiple files 2014-06-01 18:16:01 +00:00
virtio_if.m Add optional VirtIO device method for post-attach notifications 2013-09-01 04:20:23 +00:00
virtio_ring.h Various VirtIO improvements 2012-07-11 02:57:19 +00:00
virtio.c Split the virtio.h header file into multiple files 2014-06-01 18:16:01 +00:00
virtio.h Move the VIRTIO_RING_F_* defines out of virtqueue.h into virtio_config.h 2014-06-16 04:25:04 +00:00
virtqueue.c Move the VIRTIO_RING_F_* defines out of virtqueue.h into virtio_config.h 2014-06-16 04:25:04 +00:00
virtqueue.h Move the VIRTIO_RING_F_* defines out of virtqueue.h into virtio_config.h 2014-06-16 04:25:04 +00:00