mirror of
https://git.proxmox.com/git/qemu-server
synced 2025-10-04 20:48:29 +00:00
memory: enable balloon free-page-reporting for auto-memory reclaim
Allow balloon device driver to report hints of guest free pages to the host, for auto memory reclaim https://lwn.net/Articles/759413/ https://events19.linuxfoundation.org/wp-content/uploads/2017/12/KVMForum2018.pdf Signed-off-by: Alexandre Derumier <aderumier@odiso.com> [ T: fixup tests ] Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
baa4f62de0
commit
c70e4ec397
@ -3893,7 +3893,9 @@ sub config_to_command {
|
|||||||
# enable balloon by default, unless explicitly disabled
|
# enable balloon by default, unless explicitly disabled
|
||||||
if (!defined($conf->{balloon}) || $conf->{balloon}) {
|
if (!defined($conf->{balloon}) || $conf->{balloon}) {
|
||||||
my $pciaddr = print_pci_addr("balloon0", $bridges, $arch, $machine_type);
|
my $pciaddr = print_pci_addr("balloon0", $bridges, $arch, $machine_type);
|
||||||
push @$devices, '-device', "virtio-balloon-pci,id=balloon0$pciaddr";
|
my $ballooncmd = "virtio-balloon-pci,id=balloon0$pciaddr";
|
||||||
|
$ballooncmd .= ",free-page-reporting=on" if min_version($machine_version, 6, 2);
|
||||||
|
push @$devices, '-device', $ballooncmd;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($conf->{watchdog}) {
|
if ($conf->{watchdog}) {
|
||||||
|
@ -20,6 +20,6 @@
|
|||||||
-device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' \
|
-device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' \
|
||||||
-device 'usb-tablet,id=tablet,bus=uhci.0,port=1' \
|
-device 'usb-tablet,id=tablet,bus=uhci.0,port=1' \
|
||||||
-device 'VGA,id=vga,bus=pci.0,addr=0x2' \
|
-device 'VGA,id=vga,bus=pci.0,addr=0x2' \
|
||||||
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' \
|
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3,free-page-reporting=on' \
|
||||||
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
||||||
-machine 'type=pc+pve0'
|
-machine 'type=pc+pve0'
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
-device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' \
|
-device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' \
|
||||||
-device 'usb-tablet,id=tablet,bus=uhci.0,port=1' \
|
-device 'usb-tablet,id=tablet,bus=uhci.0,port=1' \
|
||||||
-device 'VGA,id=vga,bus=pci.0,addr=0x2' \
|
-device 'VGA,id=vga,bus=pci.0,addr=0x2' \
|
||||||
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' \
|
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3,free-page-reporting=on' \
|
||||||
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
||||||
-machine 'type=pc+pve0' \
|
-machine 'type=pc+pve0' \
|
||||||
-snapshot
|
-snapshot
|
||||||
|
@ -22,6 +22,6 @@
|
|||||||
-device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' \
|
-device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' \
|
||||||
-device 'usb-tablet,id=tablet,bus=uhci.0,port=1' \
|
-device 'usb-tablet,id=tablet,bus=uhci.0,port=1' \
|
||||||
-device 'VGA,id=vga,bus=pci.0,addr=0x2' \
|
-device 'VGA,id=vga,bus=pci.0,addr=0x2' \
|
||||||
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' \
|
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3,free-page-reporting=on' \
|
||||||
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
||||||
-machine 'type=pc+pve0'
|
-machine 'type=pc+pve0'
|
||||||
|
@ -23,6 +23,6 @@
|
|||||||
-tpmdev 'emulator,id=tpmdev,chardev=tpmchar' \
|
-tpmdev 'emulator,id=tpmdev,chardev=tpmchar' \
|
||||||
-device 'tpm-tis,tpmdev=tpmdev' \
|
-device 'tpm-tis,tpmdev=tpmdev' \
|
||||||
-device 'VGA,id=vga,bus=pcie.0,addr=0x1' \
|
-device 'VGA,id=vga,bus=pcie.0,addr=0x1' \
|
||||||
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' \
|
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3,free-page-reporting=on' \
|
||||||
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
||||||
-machine 'type=q35+pve0'
|
-machine 'type=q35+pve0'
|
||||||
|
@ -25,6 +25,6 @@
|
|||||||
-tpmdev 'emulator,id=tpmdev,chardev=tpmchar' \
|
-tpmdev 'emulator,id=tpmdev,chardev=tpmchar' \
|
||||||
-device 'tpm-tis,tpmdev=tpmdev' \
|
-device 'tpm-tis,tpmdev=tpmdev' \
|
||||||
-device 'VGA,id=vga,bus=pci.0,addr=0x2' \
|
-device 'VGA,id=vga,bus=pci.0,addr=0x2' \
|
||||||
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' \
|
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3,free-page-reporting=on' \
|
||||||
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
||||||
-machine 'type=pc+pve0'
|
-machine 'type=pc+pve0'
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
-device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' \
|
-device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' \
|
||||||
-device 'usb-tablet,id=tablet,bus=uhci.0,port=1' \
|
-device 'usb-tablet,id=tablet,bus=uhci.0,port=1' \
|
||||||
-device 'VGA,id=vga,bus=pci.0,addr=0x2' \
|
-device 'VGA,id=vga,bus=pci.0,addr=0x2' \
|
||||||
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' \
|
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3,free-page-reporting=on' \
|
||||||
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
||||||
-netdev 'type=tap,id=net0,ifname=tap8006i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' \
|
-netdev 'type=tap,id=net0,ifname=tap8006i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' \
|
||||||
-device 'virtio-net-pci,mac=2E:01:68:F9:9C:87,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' \
|
-device 'virtio-net-pci,mac=2E:01:68:F9:9C:87,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' \
|
||||||
|
@ -20,6 +20,6 @@
|
|||||||
-device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' \
|
-device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' \
|
||||||
-device 'usb-tablet,id=tablet,bus=uhci.0,port=1' \
|
-device 'usb-tablet,id=tablet,bus=uhci.0,port=1' \
|
||||||
-device 'VGA,id=vga,bus=pci.0,addr=0x2' \
|
-device 'VGA,id=vga,bus=pci.0,addr=0x2' \
|
||||||
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' \
|
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3,free-page-reporting=on' \
|
||||||
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
||||||
-machine 'type=pc+pve0'
|
-machine 'type=pc+pve0'
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
-device 'vfio-pci,host=0000:f0:43.1,id=hostpci0.1,bus=pci.0,addr=0x10.1' \
|
-device 'vfio-pci,host=0000:f0:43.1,id=hostpci0.1,bus=pci.0,addr=0x10.1' \
|
||||||
-device 'vfio-pci,host=1234:f0:43.1,id=hostpci1,bus=pci.0,addr=0x11' \
|
-device 'vfio-pci,host=1234:f0:43.1,id=hostpci1,bus=pci.0,addr=0x11' \
|
||||||
-device 'VGA,id=vga,bus=pcie.0,addr=0x1' \
|
-device 'VGA,id=vga,bus=pcie.0,addr=0x1' \
|
||||||
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' \
|
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3,free-page-reporting=on' \
|
||||||
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
||||||
-netdev 'type=tap,id=net0,ifname=tap8006i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' \
|
-netdev 'type=tap,id=net0,ifname=tap8006i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' \
|
||||||
-device 'virtio-net-pci,mac=2E:01:68:F9:9C:87,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' \
|
-device 'virtio-net-pci,mac=2E:01:68:F9:9C:87,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' \
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
-device 'vfio-pci,host=0000:00:ff.1,id=hostpci0,bus=pci.0,addr=0x10,x-pci-vendor-id=0x1234,x-pci-device-id=0x5678,x-pci-sub-vendor-id=0x2233,x-pci-sub-device-id=0x0000' \
|
-device 'vfio-pci,host=0000:00:ff.1,id=hostpci0,bus=pci.0,addr=0x10,x-pci-vendor-id=0x1234,x-pci-device-id=0x5678,x-pci-sub-vendor-id=0x2233,x-pci-sub-device-id=0x0000' \
|
||||||
-device 'vfio-pci,host=0000:d0:13.0,id=hostpci1,bus=ich9-pcie-port-2,addr=0x0,x-pci-vendor-id=0x1234,x-pci-device-id=0x5678' \
|
-device 'vfio-pci,host=0000:d0:13.0,id=hostpci1,bus=ich9-pcie-port-2,addr=0x0,x-pci-vendor-id=0x1234,x-pci-device-id=0x5678' \
|
||||||
-device 'VGA,id=vga,bus=pcie.0,addr=0x1' \
|
-device 'VGA,id=vga,bus=pcie.0,addr=0x1' \
|
||||||
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' \
|
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3,free-page-reporting=on' \
|
||||||
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
||||||
-netdev 'type=tap,id=net0,ifname=tap8006i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' \
|
-netdev 'type=tap,id=net0,ifname=tap8006i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' \
|
||||||
-device 'virtio-net-pci,mac=2E:01:68:F9:9C:87,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' \
|
-device 'virtio-net-pci,mac=2E:01:68:F9:9C:87,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' \
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
-device 'pcie-root-port,id=ich9-pcie-port-8,addr=10.3,x-speed=16,x-width=32,multifunction=on,bus=pcie.0,port=8,chassis=8' \
|
-device 'pcie-root-port,id=ich9-pcie-port-8,addr=10.3,x-speed=16,x-width=32,multifunction=on,bus=pcie.0,port=8,chassis=8' \
|
||||||
-device 'vfio-pci,host=0000:d0:15.1,id=hostpci7,bus=ich9-pcie-port-8,addr=0x0' \
|
-device 'vfio-pci,host=0000:d0:15.1,id=hostpci7,bus=ich9-pcie-port-8,addr=0x0' \
|
||||||
-device 'VGA,id=vga,bus=pcie.0,addr=0x1' \
|
-device 'VGA,id=vga,bus=pcie.0,addr=0x1' \
|
||||||
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' \
|
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3,free-page-reporting=on' \
|
||||||
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
||||||
-netdev 'type=tap,id=net0,ifname=tap8006i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' \
|
-netdev 'type=tap,id=net0,ifname=tap8006i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' \
|
||||||
-device 'virtio-net-pci,mac=2E:01:68:F9:9C:87,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' \
|
-device 'virtio-net-pci,mac=2E:01:68:F9:9C:87,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' \
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
-device 'vmgenid,guid=54d1c06c-8f5b-440f-b5b2-6eab1380e13d' \
|
-device 'vmgenid,guid=54d1c06c-8f5b-440f-b5b2-6eab1380e13d' \
|
||||||
-device 'usb-tablet,id=tablet,bus=ehci.0,port=1' \
|
-device 'usb-tablet,id=tablet,bus=ehci.0,port=1' \
|
||||||
-device 'VGA,id=vga,bus=pcie.0,addr=0x1' \
|
-device 'VGA,id=vga,bus=pcie.0,addr=0x1' \
|
||||||
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' \
|
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3,free-page-reporting=on' \
|
||||||
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
||||||
-netdev 'type=tap,id=net0,ifname=tap8006i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' \
|
-netdev 'type=tap,id=net0,ifname=tap8006i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' \
|
||||||
-device 'virtio-net-pci,mac=2E:01:68:F9:9C:87,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' \
|
-device 'virtio-net-pci,mac=2E:01:68:F9:9C:87,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' \
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
-device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' \
|
-device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' \
|
||||||
-chardev 'socket,id=serial0,path=/var/run/qemu-server/8006.serial0,server=on,wait=off' \
|
-chardev 'socket,id=serial0,path=/var/run/qemu-server/8006.serial0,server=on,wait=off' \
|
||||||
-device 'isa-serial,chardev=serial0' \
|
-device 'isa-serial,chardev=serial0' \
|
||||||
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' \
|
-device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3,free-page-reporting=on' \
|
||||||
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
|
||||||
-drive 'if=none,id=drive-ide2,media=cdrom,aio=io_uring' \
|
-drive 'if=none,id=drive-ide2,media=cdrom,aio=io_uring' \
|
||||||
-device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=200' \
|
-device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=200' \
|
||||||
|
Loading…
Reference in New Issue
Block a user