From 8ee6e2811db7bc5efb4b75bfc68e6e06b5cf520e Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Wed, 14 Jul 2021 13:40:46 -0400 Subject: [PATCH 1/7] tests/acceptance/virtio-gpu.py: use require_accelerator() Since efe30d501 there's a shorthand for requiring specific accelerators, and canceling the test if it's not available. Signed-off-by: Cleber Rosa Message-Id: <20210714174051.28164-2-crosa@redhat.com> Reviewed-by: Willian Rampazzo Signed-off-by: Cleber Rosa --- tests/acceptance/virtio-gpu.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/tests/acceptance/virtio-gpu.py b/tests/acceptance/virtio-gpu.py index 589332c1b7..42602a240a 100644 --- a/tests/acceptance/virtio-gpu.py +++ b/tests/acceptance/virtio-gpu.py @@ -17,10 +17,6 @@ import socket import subprocess -ACCEL_NOT_AVAILABLE_FMT = "%s accelerator does not seem to be available" -KVM_NOT_AVAILABLE = ACCEL_NOT_AVAILABLE_FMT % "KVM" - - def pick_default_vug_bin(): relative_path = "./contrib/vhost-user-gpu/vhost-user-gpu" if is_readable_executable_file(relative_path): @@ -66,8 +62,7 @@ class VirtioGPUx86(Test): self.KERNEL_COMMON_COMMAND_LINE + "console=ttyS0 rdinit=/bin/bash" ) # FIXME: should check presence of virtio, virgl etc - if not kvm_available(self.arch, self.qemu_bin): - self.cancel(KVM_NOT_AVAILABLE) + self.require_accelerator('kvm') kernel_path = self.fetch_asset(self.KERNEL_URL) initrd_path = self.fetch_asset(self.INITRD_URL) @@ -107,8 +102,7 @@ class VirtioGPUx86(Test): self.KERNEL_COMMON_COMMAND_LINE + "console=ttyS0 rdinit=/bin/bash" ) # FIXME: should check presence of vhost-user-gpu, virgl, memfd etc - if not kvm_available(self.arch, self.qemu_bin): - self.cancel(KVM_NOT_AVAILABLE) + self.require_accelerator('kvm') vug = pick_default_vug_bin() if not vug: From cc6a2457a1e09729af013a91ff7c456560d96b2b Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Wed, 14 Jul 2021 13:40:47 -0400 Subject: [PATCH 2/7] tests/acceptance/virtio-gpu.py: combine x86_64 arch tags The test class in question is x86_64 specific, so it's possible to set the tags at the class level. Signed-off-by: Cleber Rosa Message-Id: <20210714174051.28164-3-crosa@redhat.com> Reviewed-by: Willian Rampazzo Signed-off-by: Cleber Rosa --- tests/acceptance/virtio-gpu.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/acceptance/virtio-gpu.py b/tests/acceptance/virtio-gpu.py index 42602a240a..729b99b2e5 100644 --- a/tests/acceptance/virtio-gpu.py +++ b/tests/acceptance/virtio-gpu.py @@ -30,6 +30,7 @@ def pick_default_vug_bin(): class VirtioGPUx86(Test): """ :avocado: tags=virtio-gpu + :avocado: tags=arch:x86_64 """ KERNEL_COMMON_COMMAND_LINE = "printk.time=0 " @@ -54,7 +55,6 @@ class VirtioGPUx86(Test): def test_virtio_vga_virgl(self): """ - :avocado: tags=arch:x86_64 :avocado: tags=device:virtio-vga :avocado: tags=cpu:host """ @@ -94,7 +94,6 @@ class VirtioGPUx86(Test): def test_vhost_user_vga_virgl(self): """ - :avocado: tags=arch:x86_64 :avocado: tags=device:vhost-user-vga :avocado: tags=cpu:host """ From 3c6eb9c6f03ed5d28bf1b3c344b06f72d18cc670 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Wed, 14 Jul 2021 13:40:48 -0400 Subject: [PATCH 3/7] tests/acceptance/virtio-gpu.py: combine CPU tags Like previously done with the arch tags, all tests use the same CPU value so it's possible to combine them at the class level. Signed-off-by: Cleber Rosa Message-Id: <20210714174051.28164-4-crosa@redhat.com> Reviewed-by: Willian Rampazzo Signed-off-by: Cleber Rosa --- tests/acceptance/virtio-gpu.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/acceptance/virtio-gpu.py b/tests/acceptance/virtio-gpu.py index 729b99b2e5..20a59fabf3 100644 --- a/tests/acceptance/virtio-gpu.py +++ b/tests/acceptance/virtio-gpu.py @@ -31,6 +31,7 @@ class VirtioGPUx86(Test): """ :avocado: tags=virtio-gpu :avocado: tags=arch:x86_64 + :avocado: tags=cpu:host """ KERNEL_COMMON_COMMAND_LINE = "printk.time=0 " @@ -56,7 +57,6 @@ class VirtioGPUx86(Test): def test_virtio_vga_virgl(self): """ :avocado: tags=device:virtio-vga - :avocado: tags=cpu:host """ kernel_command_line = ( self.KERNEL_COMMON_COMMAND_LINE + "console=ttyS0 rdinit=/bin/bash" @@ -95,7 +95,6 @@ class VirtioGPUx86(Test): def test_vhost_user_vga_virgl(self): """ :avocado: tags=device:vhost-user-vga - :avocado: tags=cpu:host """ kernel_command_line = ( self.KERNEL_COMMON_COMMAND_LINE + "console=ttyS0 rdinit=/bin/bash" From 532835d02289134450ec22c8958b7c9f7212bdb4 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Wed, 14 Jul 2021 13:40:49 -0400 Subject: [PATCH 4/7] tests/acceptance/virtio-gpu.py: combine kernel command line Both tests use the same kernel command line arguments, so there's no need to have a common and then an additional set of arguments. Signed-off-by: Cleber Rosa Message-Id: <20210714174051.28164-5-crosa@redhat.com> Reviewed-by: Willian Rampazzo Signed-off-by: Cleber Rosa --- tests/acceptance/virtio-gpu.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/tests/acceptance/virtio-gpu.py b/tests/acceptance/virtio-gpu.py index 20a59fabf3..fbde278705 100644 --- a/tests/acceptance/virtio-gpu.py +++ b/tests/acceptance/virtio-gpu.py @@ -34,7 +34,7 @@ class VirtioGPUx86(Test): :avocado: tags=cpu:host """ - KERNEL_COMMON_COMMAND_LINE = "printk.time=0 " + KERNEL_COMMAND_LINE = "printk.time=0 console=ttyS0 rdinit=/bin/bash" KERNEL_URL = ( "https://archives.fedoraproject.org/pub/fedora" "/linux/releases/33/Everything/x86_64/os/images" @@ -58,9 +58,6 @@ class VirtioGPUx86(Test): """ :avocado: tags=device:virtio-vga """ - kernel_command_line = ( - self.KERNEL_COMMON_COMMAND_LINE + "console=ttyS0 rdinit=/bin/bash" - ) # FIXME: should check presence of virtio, virgl etc self.require_accelerator('kvm') @@ -78,7 +75,7 @@ class VirtioGPUx86(Test): "-initrd", initrd_path, "-append", - kernel_command_line, + self.KERNEL_COMMAND_LINE, ) try: self.vm.launch() @@ -96,9 +93,6 @@ class VirtioGPUx86(Test): """ :avocado: tags=device:vhost-user-vga """ - kernel_command_line = ( - self.KERNEL_COMMON_COMMAND_LINE + "console=ttyS0 rdinit=/bin/bash" - ) # FIXME: should check presence of vhost-user-gpu, virgl, memfd etc self.require_accelerator('kvm') @@ -145,7 +139,7 @@ class VirtioGPUx86(Test): "-initrd", initrd_path, "-append", - kernel_command_line, + self.KERNEL_COMMAND_LINE, ) self.vm.launch() self.wait_for_console_pattern("as init process") From 3a05eee2fea17a0248307cbd627de469b91affb6 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Wed, 14 Jul 2021 13:40:50 -0400 Subject: [PATCH 5/7] tests/acceptance/virtio-gpu.py: use virtio-vga-gl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since 49afbca3b, the use of an optional virgl renderer is not available anymore, and since b36eb8860f, the way to choose a GL based rendered is to use the "virtio-vga-gl" device. Signed-off-by: Cleber Rosa Message-Id: <20210714174051.28164-6-crosa@redhat.com> Reviewed-by: Willian Rampazzo Reviewed-by: Marc-André Lureau Signed-off-by: Cleber Rosa --- tests/acceptance/virtio-gpu.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/acceptance/virtio-gpu.py b/tests/acceptance/virtio-gpu.py index fbde278705..0f84affe82 100644 --- a/tests/acceptance/virtio-gpu.py +++ b/tests/acceptance/virtio-gpu.py @@ -56,7 +56,7 @@ class VirtioGPUx86(Test): def test_virtio_vga_virgl(self): """ - :avocado: tags=device:virtio-vga + :avocado: tags=device:virtio-vga-gl """ # FIXME: should check presence of virtio, virgl etc self.require_accelerator('kvm') @@ -67,7 +67,7 @@ class VirtioGPUx86(Test): self.vm.set_console() self.vm.add_args("-m", "2G") self.vm.add_args("-machine", "pc,accel=kvm") - self.vm.add_args("-device", "virtio-vga,virgl=on") + self.vm.add_args("-device", "virtio-vga-gl") self.vm.add_args("-display", "egl-headless") self.vm.add_args( "-kernel", From 074fca10c01a2e76d5bb3bf0cec377e809066a47 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Wed, 14 Jul 2021 13:40:51 -0400 Subject: [PATCH 6/7] tests/acceptance/virtio-gpu.py: provide kernel and initrd hashes By providing kernel and initrd hashes, the test guarantees the integrity of the images used and avoids the warnings set by fetch_asset() when hashes are lacking. Signed-off-by: Cleber Rosa Message-Id: <20210714174051.28164-7-crosa@redhat.com> Reviewed-by: Willian Rampazzo Signed-off-by: Cleber Rosa --- tests/acceptance/virtio-gpu.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/acceptance/virtio-gpu.py b/tests/acceptance/virtio-gpu.py index 0f84affe82..4acc1e6d5f 100644 --- a/tests/acceptance/virtio-gpu.py +++ b/tests/acceptance/virtio-gpu.py @@ -40,11 +40,13 @@ class VirtioGPUx86(Test): "/linux/releases/33/Everything/x86_64/os/images" "/pxeboot/vmlinuz" ) + KERNEL_HASH = '1433cfe3f2ffaa44de4ecfb57ec25dc2399cdecf' INITRD_URL = ( "https://archives.fedoraproject.org/pub/fedora" "/linux/releases/33/Everything/x86_64/os/images" "/pxeboot/initrd.img" ) + INITRD_HASH = 'c828d68a027b53e5220536585efe03412332c2d9' def wait_for_console_pattern(self, success_message, vm=None): wait_for_console_pattern( @@ -61,8 +63,8 @@ class VirtioGPUx86(Test): # FIXME: should check presence of virtio, virgl etc self.require_accelerator('kvm') - kernel_path = self.fetch_asset(self.KERNEL_URL) - initrd_path = self.fetch_asset(self.INITRD_URL) + kernel_path = self.fetch_asset(self.KERNEL_URL, self.KERNEL_HASH) + initrd_path = self.fetch_asset(self.INITRD_URL, self.INITRD_HASH) self.vm.set_console() self.vm.add_args("-m", "2G") @@ -100,8 +102,8 @@ class VirtioGPUx86(Test): if not vug: self.cancel("Could not find vhost-user-gpu") - kernel_path = self.fetch_asset(self.KERNEL_URL) - initrd_path = self.fetch_asset(self.INITRD_URL) + kernel_path = self.fetch_asset(self.KERNEL_URL, self.KERNEL_HASH) + initrd_path = self.fetch_asset(self.INITRD_URL, self.INITRD_HASH) # Create socketpair to connect proxy and remote processes qemu_sock, vug_sock = socket.socketpair( From f4a3fda43e389fa26d41ec9cd24f42c5fe20ba9d Mon Sep 17 00:00:00 2001 From: Yang Zhong Date: Fri, 9 Jul 2021 13:28:00 +0800 Subject: [PATCH 7/7] remote/memory: Replace share parameter with ram_flags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: d5015b801340 ("softmmu/memory: Pass ram_flags to qemu_ram_alloc_from_fd()") Signed-off-by: Yang Zhong Reviewed-by: David Hildenbrand Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Pankaj Gupta Reviewed-by: Peter Xu Message-Id: <20210709052800.63588-1-yang.zhong@intel.com> Signed-off-by: Cleber Rosa --- hw/remote/memory.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/remote/memory.c b/hw/remote/memory.c index 472ed2a272..6e21ab1a45 100644 --- a/hw/remote/memory.c +++ b/hw/remote/memory.c @@ -46,7 +46,7 @@ void remote_sysmem_reconfig(MPQemuMsg *msg, Error **errp) subregion = g_new(MemoryRegion, 1); memory_region_init_ram_from_fd(subregion, NULL, name, sysmem_info->sizes[region], - true, msg->fds[region], + RAM_SHARED, msg->fds[region], sysmem_info->offsets[region], errp);