From: Wim ten Have <wim.ten.have@xxxxxxxxxx> Tests for the new <vnuma> element and its variations. Signed-off-by: Wim ten Have <wim.ten.have@xxxxxxxxxx> --- .../cpu-host-passthrough-nonuma.args | 29 ++++ .../cpu-host-passthrough-nonuma.xml | 19 +++ .../cpu-host-passthrough-numa-contiguous.args | 37 ++++++ .../cpu-host-passthrough-numa-contiguous.xml | 20 +++ .../cpu-host-passthrough-numa-interleave.args | 41 ++++++ .../cpu-host-passthrough-numa-interleave.xml | 19 +++ ...host-passthrough-numa-node-contiguous.args | 53 ++++++++ ...-host-passthrough-numa-node-contiguous.xml | 21 +++ ...host-passthrough-numa-node-interleave.args | 41 ++++++ ...-host-passthrough-numa-node-interleave.xml | 22 +++ ...ost-passthrough-numa-node-round-robin.args | 125 ++++++++++++++++++ ...host-passthrough-numa-node-round-robin.xml | 21 +++ ...u-host-passthrough-numa-node-siblings.args | 32 +++++ ...pu-host-passthrough-numa-node-siblings.xml | 23 ++++ ...cpu-host-passthrough-numa-round-robin.args | 37 ++++++ .../cpu-host-passthrough-numa-round-robin.xml | 22 +++ .../cpu-host-passthrough-numa-siblings.args | 37 ++++++ .../cpu-host-passthrough-numa-siblings.xml | 20 +++ .../cpu-host-passthrough-numa.args | 37 ++++++ .../cpu-host-passthrough-numa.xml | 20 +++ tests/qemuxml2argvtest.c | 10 ++ 21 files changed, 686 insertions(+) create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-nonuma.args create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-nonuma.xml create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-contiguous.args create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-contiguous.xml create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-interleave.args create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-interleave.xml create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-contiguous.args create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-contiguous.xml create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-interleave.args create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-interleave.xml create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-round-robin.args create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-round-robin.xml create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-siblings.args create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-siblings.xml create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-round-robin.args create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-round-robin.xml create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-siblings.args create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa-siblings.xml create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa.args create mode 100644 tests/qemuxml2argvdata/cpu-host-passthrough-numa.xml diff --git a/tests/qemuxml2argvdata/cpu-host-passthrough-nonuma.args b/tests/qemuxml2argvdata/cpu-host-passthrough-nonuma.args new file mode 100644 index 000000000000..197bda882a01 --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-host-passthrough-nonuma.args @@ -0,0 +1,29 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/tmp/lib/domain--1-QEMUGuest1 \ +USER=test \ +LOGNAME=test \ +XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \ +QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-system-x86_64 \ +-name QEMUGuest1 \ +-S \ +-machine pc,accel=kvm,usb=off,dump-guest-core=off \ +-cpu host \ +-m 214 \ +-realtime mlock=off \ +-smp 1,sockets=1,cores=1,threads=1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\ +server,nowait \ +-mon chardev=charmonitor,id=monitor,mode=control \ +-rtc base=utc \ +-no-shutdown \ +-no-acpi \ +-usb \ +-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/cpu-host-passthrough-nonuma.xml b/tests/qemuxml2argvdata/cpu-host-passthrough-nonuma.xml new file mode 100644 index 000000000000..c7838aed8e12 --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-host-passthrough-nonuma.xml @@ -0,0 +1,19 @@ +<domain type='kvm'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>1</vcpu> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + <boot dev='network'/> + </os> + <cpu mode='host-passthrough' check='none'/> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-system-x86_64</emulator> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/cpu-host-passthrough-numa-contiguous.args b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-contiguous.args new file mode 100644 index 000000000000..6a59cf7b44e6 --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-contiguous.args @@ -0,0 +1,37 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/tmp/lib/domain--1-QEMUGuest1 \ +USER=test \ +LOGNAME=test \ +XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \ +QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-system-x86_64 \ +-name QEMUGuest1 \ +-S \ +-machine pc,accel=kvm,usb=off,dump-guest-core=off \ +-cpu host \ +-m 216 \ +-realtime mlock=off \ +-smp 1,maxcpus=16,sockets=4,cores=4,threads=1 \ +-object memory-backend-ram,id=ram-node0,size=56623104,host-nodes=0,policy=bind \ +-numa node,nodeid=0,cpus=0-3,memdev=ram-node0 \ +-object memory-backend-ram,id=ram-node1,size=56623104,host-nodes=1,policy=bind \ +-numa node,nodeid=1,cpus=4-7,memdev=ram-node1 \ +-object memory-backend-ram,id=ram-node2,size=56623104,host-nodes=2,policy=bind \ +-numa node,nodeid=2,cpus=8-11,memdev=ram-node2 \ +-object memory-backend-ram,id=ram-node3,size=56623104,host-nodes=3,policy=bind \ +-numa node,nodeid=3,cpus=12-15,memdev=ram-node3 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\ +server,nowait \ +-mon chardev=charmonitor,id=monitor,mode=control \ +-rtc base=utc \ +-no-shutdown \ +-no-acpi \ +-usb \ +-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/cpu-host-passthrough-numa-contiguous.xml b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-contiguous.xml new file mode 100644 index 000000000000..7fcb0e8997d9 --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-contiguous.xml @@ -0,0 +1,20 @@ +<domain type='kvm'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>16</vcpu> + <vnuma mode='host' distribution='contiguous'/> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + <boot dev='network'/> + </os> + <cpu mode='host-passthrough' check='none'/> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-system-x86_64</emulator> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/cpu-host-passthrough-numa-interleave.args b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-interleave.args new file mode 100644 index 000000000000..58bb366062f5 --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-interleave.args @@ -0,0 +1,41 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/tmp/lib/domain--1-QEMUGuest1 \ +USER=test \ +LOGNAME=test \ +XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \ +QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-system-x86_64 \ +-name QEMUGuest1 \ +-S \ +-machine pc,accel=kvm,usb=off,dump-guest-core=off \ +-cpu host \ +-m 216 \ +-realtime mlock=off \ +-smp 1,maxcpus=24,sockets=24,cores=1,threads=1 \ +-object memory-backend-ram,id=ram-node0,size=56623104,host-nodes=0,policy=bind \ +-numa node,nodeid=0,cpus=0,cpus=4,cpus=8,cpus=12,cpus=16,cpus=20,\ +memdev=ram-node0 \ +-object memory-backend-ram,id=ram-node1,size=56623104,host-nodes=1,policy=bind \ +-numa node,nodeid=1,cpus=1,cpus=5,cpus=9,cpus=13,cpus=17,cpus=21,\ +memdev=ram-node1 \ +-object memory-backend-ram,id=ram-node2,size=56623104,host-nodes=2,policy=bind \ +-numa node,nodeid=2,cpus=2,cpus=6,cpus=10,cpus=14,cpus=18,cpus=22,\ +memdev=ram-node2 \ +-object memory-backend-ram,id=ram-node3,size=56623104,host-nodes=3,policy=bind \ +-numa node,nodeid=3,cpus=3,cpus=7,cpus=11,cpus=15,cpus=19,cpus=23,\ +memdev=ram-node3 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\ +server,nowait \ +-mon chardev=charmonitor,id=monitor,mode=control \ +-rtc base=utc \ +-no-shutdown \ +-no-acpi \ +-usb \ +-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/cpu-host-passthrough-numa-interleave.xml b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-interleave.xml new file mode 100644 index 000000000000..86e385808511 --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-interleave.xml @@ -0,0 +1,19 @@ +<domain type='kvm'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>24</vcpu> + <vnuma mode='host' distribution='interleave'/> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + </os> + <cpu mode='host-passthrough' check='none'/> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-system-x86_64</emulator> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-contiguous.args b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-contiguous.args new file mode 100644 index 000000000000..bd360976e553 --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-contiguous.args @@ -0,0 +1,53 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/tmp/lib/domain--1-QEMUGuest1 \ +USER=test \ +LOGNAME=test \ +XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \ +QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-system-x86_64 \ +-name QEMUGuest1 \ +-S \ +-machine pc,accel=kvm,usb=off,dump-guest-core=off \ +-cpu host \ +-m 32768 \ +-realtime mlock=off \ +-smp 1,maxcpus=16,sockets=8,cores=2,threads=1 \ +-object memory-backend-ram,id=ram-node0,size=4294967296,host-nodes=1,\ +policy=bind \ +-numa node,nodeid=0,cpus=0-1,memdev=ram-node0 \ +-object memory-backend-ram,id=ram-node1,size=4294967296,host-nodes=1,\ +policy=bind \ +-numa node,nodeid=1,cpus=2-3,memdev=ram-node1 \ +-object memory-backend-ram,id=ram-node2,size=4294967296,host-nodes=2,\ +policy=bind \ +-numa node,nodeid=2,cpus=4-5,memdev=ram-node2 \ +-object memory-backend-ram,id=ram-node3,size=4294967296,host-nodes=2,\ +policy=bind \ +-numa node,nodeid=3,cpus=6-7,memdev=ram-node3 \ +-object memory-backend-ram,id=ram-node4,size=4294967296,host-nodes=1,\ +policy=bind \ +-numa node,nodeid=4,cpus=8-9,memdev=ram-node4 \ +-object memory-backend-ram,id=ram-node5,size=4294967296,host-nodes=1,\ +policy=bind \ +-numa node,nodeid=5,cpus=10-11,memdev=ram-node5 \ +-object memory-backend-ram,id=ram-node6,size=4294967296,host-nodes=2,\ +policy=bind \ +-numa node,nodeid=6,cpus=12-13,memdev=ram-node6 \ +-object memory-backend-ram,id=ram-node7,size=4294967296,host-nodes=2,\ +policy=bind \ +-numa node,nodeid=7,cpus=14-15,memdev=ram-node7 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\ +server,nowait \ +-mon chardev=charmonitor,id=monitor,mode=control \ +-rtc base=utc \ +-no-shutdown \ +-no-acpi \ +-usb \ +-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-contiguous.xml b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-contiguous.xml new file mode 100644 index 000000000000..4c71ca30cc47 --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-contiguous.xml @@ -0,0 +1,21 @@ +<domain type='kvm'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='GiB'>32</memory> + <vcpu placement='static'>16</vcpu> + <vnuma mode='node' distribution='contiguous'> + <partition nodeset='1,2' cells='8'/> + </vnuma> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + <boot dev='network'/> + </os> + <cpu mode='host-passthrough' check='none'/> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-system-x86_64</emulator> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-interleave.args b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-interleave.args new file mode 100644 index 000000000000..c7e591ebf48b --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-interleave.args @@ -0,0 +1,41 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/tmp/lib/domain--1-QEMUGuest1 \ +USER=test \ +LOGNAME=test \ +XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \ +QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-system-x86_64 \ +-name QEMUGuest1 \ +-S \ +-machine pc,accel=kvm,usb=off,dump-guest-core=off \ +-cpu host \ +-m 18 \ +-realtime mlock=off \ +-smp 1,maxcpus=24,sockets=24,cores=1,threads=1 \ +-object memory-backend-ram,id=ram-node0,size=3145728,host-nodes=0,policy=bind \ +-numa node,nodeid=0,cpus=0,cpus=6,cpus=12,cpus=18,memdev=ram-node0 \ +-object memory-backend-ram,id=ram-node1,size=3145728,host-nodes=1,policy=bind \ +-numa node,nodeid=1,cpus=1,cpus=7,cpus=13,cpus=19,memdev=ram-node1 \ +-object memory-backend-ram,id=ram-node2,size=3145728,host-nodes=2,policy=bind \ +-numa node,nodeid=2,cpus=2,cpus=8,cpus=14,cpus=20,memdev=ram-node2 \ +-object memory-backend-ram,id=ram-node3,size=3145728,host-nodes=3,policy=bind \ +-numa node,nodeid=3,cpus=3,cpus=9,cpus=15,cpus=21,memdev=ram-node3 \ +-object memory-backend-ram,id=ram-node4,size=3145728,host-nodes=0,policy=bind \ +-numa node,nodeid=4,cpus=4,cpus=10,cpus=16,cpus=22,memdev=ram-node4 \ +-object memory-backend-ram,id=ram-node5,size=3145728,host-nodes=1,policy=bind \ +-numa node,nodeid=5,cpus=5,cpus=11,cpus=17,cpus=23,memdev=ram-node5 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\ +server,nowait \ +-mon chardev=charmonitor,id=monitor,mode=control \ +-rtc base=utc \ +-no-shutdown \ +-no-acpi \ +-usb \ +-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-interleave.xml b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-interleave.xml new file mode 100644 index 000000000000..ddfb8c06b4f2 --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-interleave.xml @@ -0,0 +1,22 @@ +<domain type='kvm'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>24</vcpu> + <vnuma mode='node' distribution='interleave'> + <memory unit='Kib'>12345</memory> + <partition cells='6'/> + </vnuma> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + </os> + <cpu mode='host-passthrough' check='none'/> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-system-x86_64</emulator> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-round-robin.args b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-round-robin.args new file mode 100644 index 000000000000..3758c10a2e18 --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-round-robin.args @@ -0,0 +1,125 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/tmp/lib/domain--1-QEMUGuest1 \ +USER=test \ +LOGNAME=test \ +XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \ +QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-system-x86_64 \ +-name QEMUGuest1 \ +-S \ +-machine pc,accel=kvm,usb=off,dump-guest-core=off \ +-cpu host \ +-m 2097152 \ +-realtime mlock=off \ +-smp 1,maxcpus=128,sockets=32,cores=4,threads=1 \ +-object memory-backend-ram,id=ram-node0,size=68719476736,host-nodes=0,\ +policy=bind \ +-numa node,nodeid=0,cpus=0,cpus=32,cpus=64,cpus=96,memdev=ram-node0 \ +-object memory-backend-ram,id=ram-node1,size=68719476736,host-nodes=1,\ +policy=bind \ +-numa node,nodeid=1,cpus=1,cpus=33,cpus=65,cpus=97,memdev=ram-node1 \ +-object memory-backend-ram,id=ram-node2,size=68719476736,host-nodes=2,\ +policy=bind \ +-numa node,nodeid=2,cpus=2,cpus=34,cpus=66,cpus=98,memdev=ram-node2 \ +-object memory-backend-ram,id=ram-node3,size=68719476736,host-nodes=3,\ +policy=bind \ +-numa node,nodeid=3,cpus=3,cpus=35,cpus=67,cpus=99,memdev=ram-node3 \ +-object memory-backend-ram,id=ram-node4,size=68719476736,host-nodes=0,\ +policy=bind \ +-numa node,nodeid=4,cpus=4,cpus=36,cpus=68,cpus=100,memdev=ram-node4 \ +-object memory-backend-ram,id=ram-node5,size=68719476736,host-nodes=1,\ +policy=bind \ +-numa node,nodeid=5,cpus=5,cpus=37,cpus=69,cpus=101,memdev=ram-node5 \ +-object memory-backend-ram,id=ram-node6,size=68719476736,host-nodes=2,\ +policy=bind \ +-numa node,nodeid=6,cpus=6,cpus=38,cpus=70,cpus=102,memdev=ram-node6 \ +-object memory-backend-ram,id=ram-node7,size=68719476736,host-nodes=3,\ +policy=bind \ +-numa node,nodeid=7,cpus=7,cpus=39,cpus=71,cpus=103,memdev=ram-node7 \ +-object memory-backend-ram,id=ram-node8,size=68719476736,host-nodes=0,\ +policy=bind \ +-numa node,nodeid=8,cpus=8,cpus=40,cpus=72,cpus=104,memdev=ram-node8 \ +-object memory-backend-ram,id=ram-node9,size=68719476736,host-nodes=1,\ +policy=bind \ +-numa node,nodeid=9,cpus=9,cpus=41,cpus=73,cpus=105,memdev=ram-node9 \ +-object memory-backend-ram,id=ram-node10,size=68719476736,host-nodes=2,\ +policy=bind \ +-numa node,nodeid=10,cpus=10,cpus=42,cpus=74,cpus=106,memdev=ram-node10 \ +-object memory-backend-ram,id=ram-node11,size=68719476736,host-nodes=3,\ +policy=bind \ +-numa node,nodeid=11,cpus=11,cpus=43,cpus=75,cpus=107,memdev=ram-node11 \ +-object memory-backend-ram,id=ram-node12,size=68719476736,host-nodes=0,\ +policy=bind \ +-numa node,nodeid=12,cpus=12,cpus=44,cpus=76,cpus=108,memdev=ram-node12 \ +-object memory-backend-ram,id=ram-node13,size=68719476736,host-nodes=1,\ +policy=bind \ +-numa node,nodeid=13,cpus=13,cpus=45,cpus=77,cpus=109,memdev=ram-node13 \ +-object memory-backend-ram,id=ram-node14,size=68719476736,host-nodes=2,\ +policy=bind \ +-numa node,nodeid=14,cpus=14,cpus=46,cpus=78,cpus=110,memdev=ram-node14 \ +-object memory-backend-ram,id=ram-node15,size=68719476736,host-nodes=3,\ +policy=bind \ +-numa node,nodeid=15,cpus=15,cpus=47,cpus=79,cpus=111,memdev=ram-node15 \ +-object memory-backend-ram,id=ram-node16,size=68719476736,host-nodes=0,\ +policy=bind \ +-numa node,nodeid=16,cpus=16,cpus=48,cpus=80,cpus=112,memdev=ram-node16 \ +-object memory-backend-ram,id=ram-node17,size=68719476736,host-nodes=1,\ +policy=bind \ +-numa node,nodeid=17,cpus=17,cpus=49,cpus=81,cpus=113,memdev=ram-node17 \ +-object memory-backend-ram,id=ram-node18,size=68719476736,host-nodes=2,\ +policy=bind \ +-numa node,nodeid=18,cpus=18,cpus=50,cpus=82,cpus=114,memdev=ram-node18 \ +-object memory-backend-ram,id=ram-node19,size=68719476736,host-nodes=3,\ +policy=bind \ +-numa node,nodeid=19,cpus=19,cpus=51,cpus=83,cpus=115,memdev=ram-node19 \ +-object memory-backend-ram,id=ram-node20,size=68719476736,host-nodes=0,\ +policy=bind \ +-numa node,nodeid=20,cpus=20,cpus=52,cpus=84,cpus=116,memdev=ram-node20 \ +-object memory-backend-ram,id=ram-node21,size=68719476736,host-nodes=1,\ +policy=bind \ +-numa node,nodeid=21,cpus=21,cpus=53,cpus=85,cpus=117,memdev=ram-node21 \ +-object memory-backend-ram,id=ram-node22,size=68719476736,host-nodes=2,\ +policy=bind \ +-numa node,nodeid=22,cpus=22,cpus=54,cpus=86,cpus=118,memdev=ram-node22 \ +-object memory-backend-ram,id=ram-node23,size=68719476736,host-nodes=3,\ +policy=bind \ +-numa node,nodeid=23,cpus=23,cpus=55,cpus=87,cpus=119,memdev=ram-node23 \ +-object memory-backend-ram,id=ram-node24,size=68719476736,host-nodes=0,\ +policy=bind \ +-numa node,nodeid=24,cpus=24,cpus=56,cpus=88,cpus=120,memdev=ram-node24 \ +-object memory-backend-ram,id=ram-node25,size=68719476736,host-nodes=1,\ +policy=bind \ +-numa node,nodeid=25,cpus=25,cpus=57,cpus=89,cpus=121,memdev=ram-node25 \ +-object memory-backend-ram,id=ram-node26,size=68719476736,host-nodes=2,\ +policy=bind \ +-numa node,nodeid=26,cpus=26,cpus=58,cpus=90,cpus=122,memdev=ram-node26 \ +-object memory-backend-ram,id=ram-node27,size=68719476736,host-nodes=3,\ +policy=bind \ +-numa node,nodeid=27,cpus=27,cpus=59,cpus=91,cpus=123,memdev=ram-node27 \ +-object memory-backend-ram,id=ram-node28,size=68719476736,host-nodes=0,\ +policy=bind \ +-numa node,nodeid=28,cpus=28,cpus=60,cpus=92,cpus=124,memdev=ram-node28 \ +-object memory-backend-ram,id=ram-node29,size=68719476736,host-nodes=1,\ +policy=bind \ +-numa node,nodeid=29,cpus=29,cpus=61,cpus=93,cpus=125,memdev=ram-node29 \ +-object memory-backend-ram,id=ram-node30,size=68719476736,host-nodes=2,\ +policy=bind \ +-numa node,nodeid=30,cpus=30,cpus=62,cpus=94,cpus=126,memdev=ram-node30 \ +-object memory-backend-ram,id=ram-node31,size=68719476736,host-nodes=3,\ +policy=bind \ +-numa node,nodeid=31,cpus=31,cpus=63,cpus=95,cpus=127,memdev=ram-node31 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\ +server,nowait \ +-mon chardev=charmonitor,id=monitor,mode=control \ +-rtc base=utc \ +-no-shutdown \ +-no-acpi \ +-usb \ +-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-round-robin.xml b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-round-robin.xml new file mode 100644 index 000000000000..7d89a6d05303 --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-round-robin.xml @@ -0,0 +1,21 @@ +<domain type='kvm'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='TiB'>2</memory> + <vcpu placement='static'>128</vcpu> + <vnuma mode='node' distribution='round-robin'> + <partition cells='32'/> + </vnuma> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + <boot dev='network'/> + </os> + <cpu mode='host-passthrough' check='none'/> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-system-x86_64</emulator> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-siblings.args b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-siblings.args new file mode 100644 index 000000000000..7b7cb522073b --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-siblings.args @@ -0,0 +1,32 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/tmp/lib/domain--1-QEMUGuest1 \ +USER=test \ +LOGNAME=test \ +XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \ +QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-system-x86_64 \ +-name QEMUGuest1 \ +-S \ +-machine pc,accel=kvm,usb=off,dump-guest-core=off \ +-cpu host \ +-m 4096 \ +-realtime mlock=off \ +-smp 1,maxcpus=16,sockets=1,cores=16,threads=1 \ +-object memory-backend-ram,id=ram-node0,size=4294967296,host-nodes=0,\ +policy=bind \ +-numa node,nodeid=0,cpus=0-15,memdev=ram-node0 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\ +server,nowait \ +-mon chardev=charmonitor,id=monitor,mode=control \ +-rtc base=utc \ +-no-shutdown \ +-no-acpi \ +-usb \ +-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-siblings.xml b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-siblings.xml new file mode 100644 index 000000000000..8fd65ac571c9 --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-node-siblings.xml @@ -0,0 +1,23 @@ +<domain type='kvm'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>16</vcpu> + <vnuma mode='node' distribution='siblings'> + <memory unit='GiB'>4</memory> + <partition nodeset='0' cells='1'/> + </vnuma> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + <boot dev='network'/> + </os> + <cpu mode='host-passthrough' check='none'/> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-system-x86_64</emulator> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/cpu-host-passthrough-numa-round-robin.args b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-round-robin.args new file mode 100644 index 000000000000..8628e8be6c71 --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-round-robin.args @@ -0,0 +1,37 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/tmp/lib/domain--1-QEMUGuest1 \ +USER=test \ +LOGNAME=test \ +XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \ +QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-system-x86_64 \ +-name QEMUGuest1 \ +-S \ +-machine pc,accel=kvm,usb=off,dump-guest-core=off \ +-cpu host \ +-m 216 \ +-realtime mlock=off \ +-smp 1,maxcpus=16,sockets=4,cores=4,threads=1 \ +-object memory-backend-ram,id=ram-node0,size=56623104,host-nodes=0,policy=bind \ +-numa node,nodeid=0,cpus=0,cpus=4,cpus=8,cpus=12,memdev=ram-node0 \ +-object memory-backend-ram,id=ram-node1,size=56623104,host-nodes=1,policy=bind \ +-numa node,nodeid=1,cpus=1,cpus=5,cpus=9,cpus=13,memdev=ram-node1 \ +-object memory-backend-ram,id=ram-node2,size=56623104,host-nodes=2,policy=bind \ +-numa node,nodeid=2,cpus=2,cpus=6,cpus=10,cpus=14,memdev=ram-node2 \ +-object memory-backend-ram,id=ram-node3,size=56623104,host-nodes=3,policy=bind \ +-numa node,nodeid=3,cpus=3,cpus=7,cpus=11,cpus=15,memdev=ram-node3 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\ +server,nowait \ +-mon chardev=charmonitor,id=monitor,mode=control \ +-rtc base=utc \ +-no-shutdown \ +-no-acpi \ +-usb \ +-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/cpu-host-passthrough-numa-round-robin.xml b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-round-robin.xml new file mode 100644 index 000000000000..d4795c549f62 --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-round-robin.xml @@ -0,0 +1,22 @@ +<domain type='kvm'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>16</vcpu> + <vnuma mode='host' distribution='round-robin'> + <memory unit='KiB'>219100</memory> + </vnuma> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + <boot dev='network'/> + </os> + <cpu mode='host-passthrough' check='none'/> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-system-x86_64</emulator> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/cpu-host-passthrough-numa-siblings.args b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-siblings.args new file mode 100644 index 000000000000..6a59cf7b44e6 --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-siblings.args @@ -0,0 +1,37 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/tmp/lib/domain--1-QEMUGuest1 \ +USER=test \ +LOGNAME=test \ +XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \ +QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-system-x86_64 \ +-name QEMUGuest1 \ +-S \ +-machine pc,accel=kvm,usb=off,dump-guest-core=off \ +-cpu host \ +-m 216 \ +-realtime mlock=off \ +-smp 1,maxcpus=16,sockets=4,cores=4,threads=1 \ +-object memory-backend-ram,id=ram-node0,size=56623104,host-nodes=0,policy=bind \ +-numa node,nodeid=0,cpus=0-3,memdev=ram-node0 \ +-object memory-backend-ram,id=ram-node1,size=56623104,host-nodes=1,policy=bind \ +-numa node,nodeid=1,cpus=4-7,memdev=ram-node1 \ +-object memory-backend-ram,id=ram-node2,size=56623104,host-nodes=2,policy=bind \ +-numa node,nodeid=2,cpus=8-11,memdev=ram-node2 \ +-object memory-backend-ram,id=ram-node3,size=56623104,host-nodes=3,policy=bind \ +-numa node,nodeid=3,cpus=12-15,memdev=ram-node3 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\ +server,nowait \ +-mon chardev=charmonitor,id=monitor,mode=control \ +-rtc base=utc \ +-no-shutdown \ +-no-acpi \ +-usb \ +-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/cpu-host-passthrough-numa-siblings.xml b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-siblings.xml new file mode 100644 index 000000000000..9cf3794a4c11 --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-host-passthrough-numa-siblings.xml @@ -0,0 +1,20 @@ +<domain type='kvm'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>16</vcpu> + <vnuma mode='host' distribution='siblings'/> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + <boot dev='network'/> + </os> + <cpu mode='host-passthrough' check='none'/> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-system-x86_64</emulator> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/cpu-host-passthrough-numa.args b/tests/qemuxml2argvdata/cpu-host-passthrough-numa.args new file mode 100644 index 000000000000..6a59cf7b44e6 --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-host-passthrough-numa.args @@ -0,0 +1,37 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/tmp/lib/domain--1-QEMUGuest1 \ +USER=test \ +LOGNAME=test \ +XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \ +QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-system-x86_64 \ +-name QEMUGuest1 \ +-S \ +-machine pc,accel=kvm,usb=off,dump-guest-core=off \ +-cpu host \ +-m 216 \ +-realtime mlock=off \ +-smp 1,maxcpus=16,sockets=4,cores=4,threads=1 \ +-object memory-backend-ram,id=ram-node0,size=56623104,host-nodes=0,policy=bind \ +-numa node,nodeid=0,cpus=0-3,memdev=ram-node0 \ +-object memory-backend-ram,id=ram-node1,size=56623104,host-nodes=1,policy=bind \ +-numa node,nodeid=1,cpus=4-7,memdev=ram-node1 \ +-object memory-backend-ram,id=ram-node2,size=56623104,host-nodes=2,policy=bind \ +-numa node,nodeid=2,cpus=8-11,memdev=ram-node2 \ +-object memory-backend-ram,id=ram-node3,size=56623104,host-nodes=3,policy=bind \ +-numa node,nodeid=3,cpus=12-15,memdev=ram-node3 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\ +server,nowait \ +-mon chardev=charmonitor,id=monitor,mode=control \ +-rtc base=utc \ +-no-shutdown \ +-no-acpi \ +-usb \ +-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/cpu-host-passthrough-numa.xml b/tests/qemuxml2argvdata/cpu-host-passthrough-numa.xml new file mode 100644 index 000000000000..eae23a5ea24f --- /dev/null +++ b/tests/qemuxml2argvdata/cpu-host-passthrough-numa.xml @@ -0,0 +1,20 @@ +<domain type='kvm'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>16</vcpu> + <vnuma mode='host'/> + <os> + <type arch='x86_64' machine='pc'>hvm</type> + <boot dev='network'/> + </os> + <cpu mode='host-passthrough' check='none'/> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-system-x86_64</emulator> + </devices> +</domain> diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 122e14b07175..9554ac0c6fc3 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1732,6 +1732,16 @@ mymain(void) ARG_FLAGS, FLAG_SKIP_LEGACY_CPUS | FLAG_EXPECT_FAILURE, ARG_QEMU_CAPS, NONE); DO_TEST("cpu-host-passthrough", QEMU_CAPS_KVM); + DO_TEST("cpu-host-passthrough-numa", QEMU_CAPS_NUMA, QEMU_CAPS_OBJECT_MEMORY_RAM); + DO_TEST("cpu-host-passthrough-numa-contiguous", QEMU_CAPS_NUMA, QEMU_CAPS_OBJECT_MEMORY_RAM); + DO_TEST("cpu-host-passthrough-numa-node-contiguous", QEMU_CAPS_NUMA, QEMU_CAPS_OBJECT_MEMORY_RAM); + DO_TEST("cpu-host-passthrough-numa-siblings", QEMU_CAPS_NUMA, QEMU_CAPS_OBJECT_MEMORY_RAM); + DO_TEST("cpu-host-passthrough-numa-node-siblings", QEMU_CAPS_NUMA, QEMU_CAPS_OBJECT_MEMORY_RAM); + DO_TEST("cpu-host-passthrough-numa-round-robin", QEMU_CAPS_NUMA, QEMU_CAPS_OBJECT_MEMORY_RAM); + DO_TEST("cpu-host-passthrough-numa-node-round-robin", QEMU_CAPS_NUMA, QEMU_CAPS_OBJECT_MEMORY_RAM); + DO_TEST("cpu-host-passthrough-numa-interleave", QEMU_CAPS_NUMA, QEMU_CAPS_OBJECT_MEMORY_RAM); + DO_TEST("cpu-host-passthrough-numa-node-interleave", QEMU_CAPS_NUMA, QEMU_CAPS_OBJECT_MEMORY_RAM); + DO_TEST("cpu-host-passthrough-nonuma", QEMU_CAPS_NUMA); DO_TEST_FAILURE("cpu-qemu-host-passthrough", QEMU_CAPS_KVM); qemuTestSetHostArch(driver.caps, VIR_ARCH_S390X); -- 2.21.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list