* [PATCH v4] tests/functional: Add PCI hotplug test for aarch64
@ 2025-05-12 14:45 Gustavo Romero
2025-05-13 9:04 ` Eric Auger
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Gustavo Romero @ 2025-05-12 14:45 UTC (permalink / raw)
To: qemu-devel, thuth, berrange
Cc: gustavo.romero, eric.auger, alex.bennee, philmd, peter.maydell,
qemu-arm
Add a functional test, aarch64_hotplug_pci, to exercise PCI hotplug and
hot-unplug on arm64.
Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
MAINTAINERS | 5 ++
tests/functional/meson.build | 1 +
tests/functional/test_aarch64_hotplug_pci.py | 74 ++++++++++++++++++++
3 files changed, 80 insertions(+)
create mode 100755 tests/functional/test_aarch64_hotplug_pci.py
diff --git a/MAINTAINERS b/MAINTAINERS
index 23174b4ca7..9ebb768214 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2065,6 +2065,11 @@ S: Supported
F: include/hw/pci/pcie_doe.h
F: hw/pci/pcie_doe.c
+ARM PCI Hotplug
+M: Gustavo Romero <gustavo.romero@linaro.org>
+S: Supported
+F: tests/functional/test_aarch64_hotplug_pci.py
+
ACPI/SMBIOS
M: Michael S. Tsirkin <mst@redhat.com>
M: Igor Mammedov <imammedo@redhat.com>
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index 52b4706cfe..2d68840fa2 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -83,6 +83,7 @@ tests_aarch64_system_quick = [
tests_aarch64_system_thorough = [
'aarch64_aspeed_ast2700',
'aarch64_aspeed_ast2700fc',
+ 'aarch64_hotplug_pci',
'aarch64_imx8mp_evk',
'aarch64_raspi3',
'aarch64_raspi4',
diff --git a/tests/functional/test_aarch64_hotplug_pci.py b/tests/functional/test_aarch64_hotplug_pci.py
new file mode 100755
index 0000000000..fa1bb62c8f
--- /dev/null
+++ b/tests/functional/test_aarch64_hotplug_pci.py
@@ -0,0 +1,74 @@
+#!/usr/bin/env python3
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# The test hotplugs a PCI device and checks it on a Linux guest.
+#
+# Copyright (c) 2025 Linaro Ltd.
+#
+# Author:
+# Gustavo Romero <gustavo.romero@linaro.org>
+#
+# This work is licensed under the terms of the GNU GPL, version 2 or
+# later. See the COPYING file in the top-level directory.
+
+from qemu_test import LinuxKernelTest, Asset, exec_command_and_wait_for_pattern
+from qemu_test import BUILD_DIR
+
+class HotplugPCI(LinuxKernelTest):
+
+ ASSET_KERNEL = Asset(
+ ('https://ftp.debian.org/debian/dists/stable/main/installer-arm64/'
+ 'current/images/netboot/debian-installer/arm64/linux'),
+ '3821d4db56d42c6a4eac62f31846e35465940afd87746b4cfcdf5c9eca3117b2')
+
+ ASSET_INITRD = Asset(
+ ('https://ftp.debian.org/debian/dists/stable/main/installer-arm64/'
+ 'current/images/netboot/debian-installer/arm64/initrd.gz'),
+ '2583ec22b45265ad69e82f198674f53d4cd85be124fe012eedc2fd91156bc4b4')
+
+ def test_hotplug_pci(self):
+
+ self.set_machine('virt')
+ self.vm.add_args('-m', '512M')
+ self.vm.add_args('-cpu', 'cortex-a57')
+ self.vm.add_args('-append',
+ 'console=ttyAMA0,115200 init=/bin/sh')
+ self.vm.add_args('-device',
+ 'pcie-root-port,bus=pcie.0,chassis=1,slot=1,id=pcie.1')
+ self.vm.add_args('-bios', self.build_file('pc-bios',
+ 'edk2-aarch64-code.fd'))
+
+ # BusyBox prompt
+ prompt = "~ #"
+ self.launch_kernel(self.ASSET_KERNEL.fetch(),
+ self.ASSET_INITRD.fetch(),
+ wait_for=prompt)
+
+ # Check for initial state: 2 network adapters, lo and enp0s1.
+ exec_command_and_wait_for_pattern(self,
+ 'ls -l /sys/class/net | wc -l',
+ '2')
+
+ # Hotplug one network adapter to the root port, i.e. pcie.1 bus.
+ self.vm.cmd('device_add',
+ driver='virtio-net-pci',
+ bus='pcie.1',
+ addr=0,
+ id='na')
+ # Wait for the kernel to recognize the new device.
+ self.wait_for_console_pattern('virtio-pci')
+ self.wait_for_console_pattern('virtio_net')
+
+ # Check if there is a new network adapter.
+ exec_command_and_wait_for_pattern(self,
+ 'ls -l /sys/class/net | wc -l',
+ '3')
+
+ self.vm.cmd('device_del', id='na')
+ exec_command_and_wait_for_pattern(self,
+ 'ls -l /sys/class/net | wc -l',
+ '2')
+
+if __name__ == '__main__':
+ LinuxKernelTest.main()
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v4] tests/functional: Add PCI hotplug test for aarch64
2025-05-12 14:45 [PATCH v4] tests/functional: Add PCI hotplug test for aarch64 Gustavo Romero
@ 2025-05-13 9:04 ` Eric Auger
2025-05-16 9:55 ` Alex Bennée
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: Eric Auger @ 2025-05-13 9:04 UTC (permalink / raw)
To: Gustavo Romero, qemu-devel, thuth, berrange
Cc: alex.bennee, philmd, peter.maydell, qemu-arm
Hi Gustavo,
On 5/12/25 4:45 PM, Gustavo Romero wrote:
> Add a functional test, aarch64_hotplug_pci, to exercise PCI hotplug and
> hot-unplug on arm64.
>
> Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org>
> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Eric
> ---
> MAINTAINERS | 5 ++
> tests/functional/meson.build | 1 +
> tests/functional/test_aarch64_hotplug_pci.py | 74 ++++++++++++++++++++
> 3 files changed, 80 insertions(+)
> create mode 100755 tests/functional/test_aarch64_hotplug_pci.py
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 23174b4ca7..9ebb768214 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -2065,6 +2065,11 @@ S: Supported
> F: include/hw/pci/pcie_doe.h
> F: hw/pci/pcie_doe.c
>
> +ARM PCI Hotplug
> +M: Gustavo Romero <gustavo.romero@linaro.org>
> +S: Supported
> +F: tests/functional/test_aarch64_hotplug_pci.py
> +
> ACPI/SMBIOS
> M: Michael S. Tsirkin <mst@redhat.com>
> M: Igor Mammedov <imammedo@redhat.com>
> diff --git a/tests/functional/meson.build b/tests/functional/meson.build
> index 52b4706cfe..2d68840fa2 100644
> --- a/tests/functional/meson.build
> +++ b/tests/functional/meson.build
> @@ -83,6 +83,7 @@ tests_aarch64_system_quick = [
> tests_aarch64_system_thorough = [
> 'aarch64_aspeed_ast2700',
> 'aarch64_aspeed_ast2700fc',
> + 'aarch64_hotplug_pci',
> 'aarch64_imx8mp_evk',
> 'aarch64_raspi3',
> 'aarch64_raspi4',
> diff --git a/tests/functional/test_aarch64_hotplug_pci.py b/tests/functional/test_aarch64_hotplug_pci.py
> new file mode 100755
> index 0000000000..fa1bb62c8f
> --- /dev/null
> +++ b/tests/functional/test_aarch64_hotplug_pci.py
> @@ -0,0 +1,74 @@
> +#!/usr/bin/env python3
> +#
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +#
> +# The test hotplugs a PCI device and checks it on a Linux guest.
> +#
> +# Copyright (c) 2025 Linaro Ltd.
> +#
> +# Author:
> +# Gustavo Romero <gustavo.romero@linaro.org>
> +#
> +# This work is licensed under the terms of the GNU GPL, version 2 or
> +# later. See the COPYING file in the top-level directory.
> +
> +from qemu_test import LinuxKernelTest, Asset, exec_command_and_wait_for_pattern
> +from qemu_test import BUILD_DIR
> +
> +class HotplugPCI(LinuxKernelTest):
> +
> + ASSET_KERNEL = Asset(
> + ('https://ftp.debian.org/debian/dists/stable/main/installer-arm64/'
> + 'current/images/netboot/debian-installer/arm64/linux'),
> + '3821d4db56d42c6a4eac62f31846e35465940afd87746b4cfcdf5c9eca3117b2')
> +
> + ASSET_INITRD = Asset(
> + ('https://ftp.debian.org/debian/dists/stable/main/installer-arm64/'
> + 'current/images/netboot/debian-installer/arm64/initrd.gz'),
> + '2583ec22b45265ad69e82f198674f53d4cd85be124fe012eedc2fd91156bc4b4')
> +
> + def test_hotplug_pci(self):
> +
> + self.set_machine('virt')
> + self.vm.add_args('-m', '512M')
> + self.vm.add_args('-cpu', 'cortex-a57')
> + self.vm.add_args('-append',
> + 'console=ttyAMA0,115200 init=/bin/sh')
> + self.vm.add_args('-device',
> + 'pcie-root-port,bus=pcie.0,chassis=1,slot=1,id=pcie.1')
> + self.vm.add_args('-bios', self.build_file('pc-bios',
> + 'edk2-aarch64-code.fd'))
> +
> + # BusyBox prompt
> + prompt = "~ #"
> + self.launch_kernel(self.ASSET_KERNEL.fetch(),
> + self.ASSET_INITRD.fetch(),
> + wait_for=prompt)
> +
> + # Check for initial state: 2 network adapters, lo and enp0s1.
> + exec_command_and_wait_for_pattern(self,
> + 'ls -l /sys/class/net | wc -l',
> + '2')
> +
> + # Hotplug one network adapter to the root port, i.e. pcie.1 bus.
> + self.vm.cmd('device_add',
> + driver='virtio-net-pci',
> + bus='pcie.1',
> + addr=0,
> + id='na')
> + # Wait for the kernel to recognize the new device.
> + self.wait_for_console_pattern('virtio-pci')
> + self.wait_for_console_pattern('virtio_net')
> +
> + # Check if there is a new network adapter.
> + exec_command_and_wait_for_pattern(self,
> + 'ls -l /sys/class/net | wc -l',
> + '3')
> +
> + self.vm.cmd('device_del', id='na')
> + exec_command_and_wait_for_pattern(self,
> + 'ls -l /sys/class/net | wc -l',
> + '2')
> +
> +if __name__ == '__main__':
> + LinuxKernelTest.main()
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v4] tests/functional: Add PCI hotplug test for aarch64
2025-05-12 14:45 [PATCH v4] tests/functional: Add PCI hotplug test for aarch64 Gustavo Romero
2025-05-13 9:04 ` Eric Auger
@ 2025-05-16 9:55 ` Alex Bennée
2025-05-16 14:47 ` Philippe Mathieu-Daudé
2025-05-24 15:38 ` Alex Bennée
3 siblings, 0 replies; 8+ messages in thread
From: Alex Bennée @ 2025-05-16 9:55 UTC (permalink / raw)
To: Gustavo Romero
Cc: qemu-devel, thuth, berrange, eric.auger, philmd, peter.maydell,
qemu-arm
Gustavo Romero <gustavo.romero@linaro.org> writes:
> Add a functional test, aarch64_hotplug_pci, to exercise PCI hotplug and
> hot-unplug on arm64.
Queued to maintainer/may-2025, thanks.
>
> Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org>
> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
> MAINTAINERS | 5 ++
> tests/functional/meson.build | 1 +
> tests/functional/test_aarch64_hotplug_pci.py | 74 ++++++++++++++++++++
> 3 files changed, 80 insertions(+)
> create mode 100755 tests/functional/test_aarch64_hotplug_pci.py
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 23174b4ca7..9ebb768214 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -2065,6 +2065,11 @@ S: Supported
> F: include/hw/pci/pcie_doe.h
> F: hw/pci/pcie_doe.c
>
> +ARM PCI Hotplug
> +M: Gustavo Romero <gustavo.romero@linaro.org>
> +S: Supported
> +F: tests/functional/test_aarch64_hotplug_pci.py
> +
> ACPI/SMBIOS
> M: Michael S. Tsirkin <mst@redhat.com>
> M: Igor Mammedov <imammedo@redhat.com>
> diff --git a/tests/functional/meson.build b/tests/functional/meson.build
> index 52b4706cfe..2d68840fa2 100644
> --- a/tests/functional/meson.build
> +++ b/tests/functional/meson.build
> @@ -83,6 +83,7 @@ tests_aarch64_system_quick = [
> tests_aarch64_system_thorough = [
> 'aarch64_aspeed_ast2700',
> 'aarch64_aspeed_ast2700fc',
> + 'aarch64_hotplug_pci',
> 'aarch64_imx8mp_evk',
> 'aarch64_raspi3',
> 'aarch64_raspi4',
> diff --git a/tests/functional/test_aarch64_hotplug_pci.py b/tests/functional/test_aarch64_hotplug_pci.py
> new file mode 100755
> index 0000000000..fa1bb62c8f
> --- /dev/null
> +++ b/tests/functional/test_aarch64_hotplug_pci.py
> @@ -0,0 +1,74 @@
> +#!/usr/bin/env python3
> +#
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +#
> +# The test hotplugs a PCI device and checks it on a Linux guest.
> +#
> +# Copyright (c) 2025 Linaro Ltd.
> +#
> +# Author:
> +# Gustavo Romero <gustavo.romero@linaro.org>
> +#
> +# This work is licensed under the terms of the GNU GPL, version 2 or
> +# later. See the COPYING file in the top-level directory.
> +
> +from qemu_test import LinuxKernelTest, Asset, exec_command_and_wait_for_pattern
> +from qemu_test import BUILD_DIR
> +
> +class HotplugPCI(LinuxKernelTest):
> +
> + ASSET_KERNEL = Asset(
> + ('https://ftp.debian.org/debian/dists/stable/main/installer-arm64/'
> + 'current/images/netboot/debian-installer/arm64/linux'),
> + '3821d4db56d42c6a4eac62f31846e35465940afd87746b4cfcdf5c9eca3117b2')
> +
> + ASSET_INITRD = Asset(
> + ('https://ftp.debian.org/debian/dists/stable/main/installer-arm64/'
> + 'current/images/netboot/debian-installer/arm64/initrd.gz'),
> + '2583ec22b45265ad69e82f198674f53d4cd85be124fe012eedc2fd91156bc4b4')
> +
> + def test_hotplug_pci(self):
> +
> + self.set_machine('virt')
> + self.vm.add_args('-m', '512M')
> + self.vm.add_args('-cpu', 'cortex-a57')
> + self.vm.add_args('-append',
> + 'console=ttyAMA0,115200 init=/bin/sh')
> + self.vm.add_args('-device',
> + 'pcie-root-port,bus=pcie.0,chassis=1,slot=1,id=pcie.1')
> + self.vm.add_args('-bios', self.build_file('pc-bios',
> + 'edk2-aarch64-code.fd'))
> +
> + # BusyBox prompt
> + prompt = "~ #"
> + self.launch_kernel(self.ASSET_KERNEL.fetch(),
> + self.ASSET_INITRD.fetch(),
> + wait_for=prompt)
> +
> + # Check for initial state: 2 network adapters, lo and enp0s1.
> + exec_command_and_wait_for_pattern(self,
> + 'ls -l /sys/class/net | wc -l',
> + '2')
> +
> + # Hotplug one network adapter to the root port, i.e. pcie.1 bus.
> + self.vm.cmd('device_add',
> + driver='virtio-net-pci',
> + bus='pcie.1',
> + addr=0,
> + id='na')
> + # Wait for the kernel to recognize the new device.
> + self.wait_for_console_pattern('virtio-pci')
> + self.wait_for_console_pattern('virtio_net')
> +
> + # Check if there is a new network adapter.
> + exec_command_and_wait_for_pattern(self,
> + 'ls -l /sys/class/net | wc -l',
> + '3')
> +
> + self.vm.cmd('device_del', id='na')
> + exec_command_and_wait_for_pattern(self,
> + 'ls -l /sys/class/net | wc -l',
> + '2')
> +
> +if __name__ == '__main__':
> + LinuxKernelTest.main()
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v4] tests/functional: Add PCI hotplug test for aarch64
2025-05-12 14:45 [PATCH v4] tests/functional: Add PCI hotplug test for aarch64 Gustavo Romero
2025-05-13 9:04 ` Eric Auger
2025-05-16 9:55 ` Alex Bennée
@ 2025-05-16 14:47 ` Philippe Mathieu-Daudé
2025-05-18 9:26 ` Gustavo Romero
2025-05-24 15:38 ` Alex Bennée
3 siblings, 1 reply; 8+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-05-16 14:47 UTC (permalink / raw)
To: Gustavo Romero, qemu-devel, thuth, berrange
Cc: eric.auger, alex.bennee, peter.maydell, qemu-arm
On 12/5/25 16:45, Gustavo Romero wrote:
> Add a functional test, aarch64_hotplug_pci, to exercise PCI hotplug and
> hot-unplug on arm64.
>
> Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org>
> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
> MAINTAINERS | 5 ++
> tests/functional/meson.build | 1 +
> tests/functional/test_aarch64_hotplug_pci.py | 74 ++++++++++++++++++++
> 3 files changed, 80 insertions(+)
> create mode 100755 tests/functional/test_aarch64_hotplug_pci.py
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 23174b4ca7..9ebb768214 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -2065,6 +2065,11 @@ S: Supported
> F: include/hw/pci/pcie_doe.h
> F: hw/pci/pcie_doe.c
>
> +ARM PCI Hotplug
> +M: Gustavo Romero <gustavo.romero@linaro.org>
As mentioned in v2, since this might interest ARM contributors:
L: qemu-arm@nongnu.org
> +S: Supported
> +F: tests/functional/test_aarch64_hotplug_pci.py
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v4] tests/functional: Add PCI hotplug test for aarch64
2025-05-16 14:47 ` Philippe Mathieu-Daudé
@ 2025-05-18 9:26 ` Gustavo Romero
2025-05-19 13:43 ` Alex Bennée
0 siblings, 1 reply; 8+ messages in thread
From: Gustavo Romero @ 2025-05-18 9:26 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel, thuth, berrange
Cc: eric.auger, alex.bennee, peter.maydell, qemu-arm
Hi Phil,
On 5/16/25 15:47, Philippe Mathieu-Daudé wrote:
> On 12/5/25 16:45, Gustavo Romero wrote:
>> Add a functional test, aarch64_hotplug_pci, to exercise PCI hotplug and
>> hot-unplug on arm64.
>>
>> Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org>
>> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
>> ---
>> MAINTAINERS | 5 ++
>> tests/functional/meson.build | 1 +
>> tests/functional/test_aarch64_hotplug_pci.py | 74 ++++++++++++++++++++
>> 3 files changed, 80 insertions(+)
>> create mode 100755 tests/functional/test_aarch64_hotplug_pci.py
>>
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index 23174b4ca7..9ebb768214 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -2065,6 +2065,11 @@ S: Supported
>> F: include/hw/pci/pcie_doe.h
>> F: hw/pci/pcie_doe.c
>> +ARM PCI Hotplug
>> +M: Gustavo Romero <gustavo.romero@linaro.org>
>
> As mentioned in v2, since this might interest ARM contributors:
>
> L: qemu-arm@nongnu.org
I thought you're saying "include qemu-arm@nongnu.org" when sending the
patch, not "add the email into a L: section in the MAINTAINERS".
The test is now queued in Alex's branch. What's best: send a patch
now; or wait for it to land in the master branch and then send the patch?
Thanks.
Cheers,
Gustavo
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v4] tests/functional: Add PCI hotplug test for aarch64
2025-05-18 9:26 ` Gustavo Romero
@ 2025-05-19 13:43 ` Alex Bennée
0 siblings, 0 replies; 8+ messages in thread
From: Alex Bennée @ 2025-05-19 13:43 UTC (permalink / raw)
To: Gustavo Romero
Cc: Philippe Mathieu-Daudé, qemu-devel, thuth, berrange,
eric.auger, peter.maydell, qemu-arm
Gustavo Romero <gustavo.romero@linaro.org> writes:
> Hi Phil,
>
> On 5/16/25 15:47, Philippe Mathieu-Daudé wrote:
>> On 12/5/25 16:45, Gustavo Romero wrote:
>>> Add a functional test, aarch64_hotplug_pci, to exercise PCI hotplug and
>>> hot-unplug on arm64.
>>>
>>> Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org>
>>> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
>>> ---
>>> MAINTAINERS | 5 ++
>>> tests/functional/meson.build | 1 +
>>> tests/functional/test_aarch64_hotplug_pci.py | 74 ++++++++++++++++++++
>>> 3 files changed, 80 insertions(+)
>>> create mode 100755 tests/functional/test_aarch64_hotplug_pci.py
>>>
>>> diff --git a/MAINTAINERS b/MAINTAINERS
>>> index 23174b4ca7..9ebb768214 100644
>>> --- a/MAINTAINERS
>>> +++ b/MAINTAINERS
>>> @@ -2065,6 +2065,11 @@ S: Supported
>>> F: include/hw/pci/pcie_doe.h
>>> F: hw/pci/pcie_doe.c
>>> +ARM PCI Hotplug
>>> +M: Gustavo Romero <gustavo.romero@linaro.org>
>> As mentioned in v2, since this might interest ARM contributors:
>> L: qemu-arm@nongnu.org
>
> I thought you're saying "include qemu-arm@nongnu.org" when sending the
> patch, not "add the email into a L: section in the MAINTAINERS".
>
> The test is now queued in Alex's branch. What's best: send a patch
> now; or wait for it to land in the master branch and then send the
> patch?
I've fixed it up.
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v4] tests/functional: Add PCI hotplug test for aarch64
2025-05-12 14:45 [PATCH v4] tests/functional: Add PCI hotplug test for aarch64 Gustavo Romero
` (2 preceding siblings ...)
2025-05-16 14:47 ` Philippe Mathieu-Daudé
@ 2025-05-24 15:38 ` Alex Bennée
2025-05-26 5:53 ` Thomas Huth
3 siblings, 1 reply; 8+ messages in thread
From: Alex Bennée @ 2025-05-24 15:38 UTC (permalink / raw)
To: Gustavo Romero
Cc: qemu-devel, thuth, berrange, eric.auger, philmd, peter.maydell,
qemu-arm
Gustavo Romero <gustavo.romero@linaro.org> writes:
> Add a functional test, aarch64_hotplug_pci, to exercise PCI hotplug and
> hot-unplug on arm64.
>
> Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org>
> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
> MAINTAINERS | 5 ++
> tests/functional/meson.build | 1 +
> tests/functional/test_aarch64_hotplug_pci.py | 74 ++++++++++++++++++++
> 3 files changed, 80 insertions(+)
> create mode 100755 tests/functional/test_aarch64_hotplug_pci.py
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 23174b4ca7..9ebb768214 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -2065,6 +2065,11 @@ S: Supported
> F: include/hw/pci/pcie_doe.h
> F: hw/pci/pcie_doe.c
>
> +ARM PCI Hotplug
> +M: Gustavo Romero <gustavo.romero@linaro.org>
> +S: Supported
> +F: tests/functional/test_aarch64_hotplug_pci.py
> +
> ACPI/SMBIOS
> M: Michael S. Tsirkin <mst@redhat.com>
> M: Igor Mammedov <imammedo@redhat.com>
> diff --git a/tests/functional/meson.build b/tests/functional/meson.build
> index 52b4706cfe..2d68840fa2 100644
> --- a/tests/functional/meson.build
> +++ b/tests/functional/meson.build
> @@ -83,6 +83,7 @@ tests_aarch64_system_quick = [
> tests_aarch64_system_thorough = [
> 'aarch64_aspeed_ast2700',
> 'aarch64_aspeed_ast2700fc',
> + 'aarch64_hotplug_pci',
> 'aarch64_imx8mp_evk',
> 'aarch64_raspi3',
> 'aarch64_raspi4',
> diff --git a/tests/functional/test_aarch64_hotplug_pci.py b/tests/functional/test_aarch64_hotplug_pci.py
> new file mode 100755
> index 0000000000..fa1bb62c8f
> --- /dev/null
> +++ b/tests/functional/test_aarch64_hotplug_pci.py
> @@ -0,0 +1,74 @@
> +#!/usr/bin/env python3
> +#
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +#
> +# The test hotplugs a PCI device and checks it on a Linux guest.
> +#
> +# Copyright (c) 2025 Linaro Ltd.
> +#
> +# Author:
> +# Gustavo Romero <gustavo.romero@linaro.org>
> +#
> +# This work is licensed under the terms of the GNU GPL, version 2 or
> +# later. See the COPYING file in the top-level directory.
> +
> +from qemu_test import LinuxKernelTest, Asset, exec_command_and_wait_for_pattern
> +from qemu_test import BUILD_DIR
> +
> +class HotplugPCI(LinuxKernelTest):
> +
> + ASSET_KERNEL = Asset(
> + ('https://ftp.debian.org/debian/dists/stable/main/installer-arm64/'
> + 'current/images/netboot/debian-installer/arm64/linux'),
> + '3821d4db56d42c6a4eac62f31846e35465940afd87746b4cfcdf5c9eca3117b2')
> +
> + ASSET_INITRD = Asset(
> + ('https://ftp.debian.org/debian/dists/stable/main/installer-arm64/'
> + 'current/images/netboot/debian-installer/arm64/initrd.gz'),
> +
> '2583ec22b45265ad69e82f198674f53d4cd85be124fe012eedc2fd91156bc4b4')
Hmm do we need to specify a checksum type now?
TAP version 13
not ok 1 test_aarch64_hotplug_pci.HotplugPCI.test_hotplug_pci
1..1
----------------------------------- stderr -----------------------------------
Traceback (most recent call last):
File "/home/alex/lsrc/qemu.git/tests/functional/test_aarch64_hotplug_pci.py", line 44, in test_hotplug_pci
self.launch_kernel(self.ASSET_KERNEL.fetch(),
~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/alex/lsrc/qemu.git/tests/functional/qemu_test/asset.py", line 189, in fetch
raise AssetError(self, "Hash does not match %s" % self.hash)
qemu_test.asset.AssetError: https://ftp.debian.org/debian/dists/stable/main/installer-arm64/current/images/netboot/debian-installer/arm64/linux: Hash does not match 3821d4db56d42c6a4eac62f31846e35465940afd87746b4cfcdf5c9eca3117b2
More information on test_aarch64_hotplug_pci.HotplugPCI.test_hotplug_pci could be found here:
/home/alex/lsrc/qemu.git/builds/all/tests/functional/aarch64/test_aarch64_hotplug_pci.HotplugPCI.test_hotplug_pci/base.log
/home/alex/lsrc/qemu.git/builds/all/tests/functional/aarch64/test_aarch64_hotplug_pci.HotplugPCI.test_hotplug_pci/console.log
(test program exited with status code 1)
==============================================================================
In fact could we use the existing tuxrun images instead of relying on
debian stable not changing?
<snip>
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v4] tests/functional: Add PCI hotplug test for aarch64
2025-05-24 15:38 ` Alex Bennée
@ 2025-05-26 5:53 ` Thomas Huth
0 siblings, 0 replies; 8+ messages in thread
From: Thomas Huth @ 2025-05-26 5:53 UTC (permalink / raw)
To: Alex Bennée, Gustavo Romero
Cc: qemu-devel, berrange, eric.auger, philmd, peter.maydell, qemu-arm
On 24/05/2025 17.38, Alex Bennée wrote:
> Gustavo Romero <gustavo.romero@linaro.org> writes:
>
>> Add a functional test, aarch64_hotplug_pci, to exercise PCI hotplug and
>> hot-unplug on arm64.
>>
>> Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org>
>> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
>> ---
>> MAINTAINERS | 5 ++
>> tests/functional/meson.build | 1 +
>> tests/functional/test_aarch64_hotplug_pci.py | 74 ++++++++++++++++++++
>> 3 files changed, 80 insertions(+)
>> create mode 100755 tests/functional/test_aarch64_hotplug_pci.py
>>
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index 23174b4ca7..9ebb768214 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -2065,6 +2065,11 @@ S: Supported
>> F: include/hw/pci/pcie_doe.h
>> F: hw/pci/pcie_doe.c
>>
>> +ARM PCI Hotplug
>> +M: Gustavo Romero <gustavo.romero@linaro.org>
>> +S: Supported
>> +F: tests/functional/test_aarch64_hotplug_pci.py
>> +
>> ACPI/SMBIOS
>> M: Michael S. Tsirkin <mst@redhat.com>
>> M: Igor Mammedov <imammedo@redhat.com>
>> diff --git a/tests/functional/meson.build b/tests/functional/meson.build
>> index 52b4706cfe..2d68840fa2 100644
>> --- a/tests/functional/meson.build
>> +++ b/tests/functional/meson.build
>> @@ -83,6 +83,7 @@ tests_aarch64_system_quick = [
>> tests_aarch64_system_thorough = [
>> 'aarch64_aspeed_ast2700',
>> 'aarch64_aspeed_ast2700fc',
>> + 'aarch64_hotplug_pci',
>> 'aarch64_imx8mp_evk',
>> 'aarch64_raspi3',
>> 'aarch64_raspi4',
>> diff --git a/tests/functional/test_aarch64_hotplug_pci.py b/tests/functional/test_aarch64_hotplug_pci.py
>> new file mode 100755
>> index 0000000000..fa1bb62c8f
>> --- /dev/null
>> +++ b/tests/functional/test_aarch64_hotplug_pci.py
>> @@ -0,0 +1,74 @@
>> +#!/usr/bin/env python3
>> +#
>> +# SPDX-License-Identifier: GPL-2.0-or-later
>> +#
>> +# The test hotplugs a PCI device and checks it on a Linux guest.
>> +#
>> +# Copyright (c) 2025 Linaro Ltd.
>> +#
>> +# Author:
>> +# Gustavo Romero <gustavo.romero@linaro.org>
>> +#
>> +# This work is licensed under the terms of the GNU GPL, version 2 or
>> +# later. See the COPYING file in the top-level directory.
>> +
>> +from qemu_test import LinuxKernelTest, Asset, exec_command_and_wait_for_pattern
>> +from qemu_test import BUILD_DIR
>> +
>> +class HotplugPCI(LinuxKernelTest):
>> +
>> + ASSET_KERNEL = Asset(
>> + ('https://ftp.debian.org/debian/dists/stable/main/installer-arm64/'
>> + 'current/images/netboot/debian-installer/arm64/linux'),
>> + '3821d4db56d42c6a4eac62f31846e35465940afd87746b4cfcdf5c9eca3117b2')
>> +
>> + ASSET_INITRD = Asset(
>> + ('https://ftp.debian.org/debian/dists/stable/main/installer-arm64/'
>> + 'current/images/netboot/debian-installer/arm64/initrd.gz'),
>> +
>> '2583ec22b45265ad69e82f198674f53d4cd85be124fe012eedc2fd91156bc4b4')
>
> Hmm do we need to specify a checksum type now?
Yes. The whole cache management of the functional tests relies on the
checksums, and we certainly don't want to have surprise effects in the tests
if the assets change without us noticing.
> In fact could we use the existing tuxrun images instead of relying on
> debian stable not changing?
There seems also to be another image with "20230607" instead of "current" in
the URL, maybe that one is a better fit?
Thomas
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-05-26 5:54 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-12 14:45 [PATCH v4] tests/functional: Add PCI hotplug test for aarch64 Gustavo Romero
2025-05-13 9:04 ` Eric Auger
2025-05-16 9:55 ` Alex Bennée
2025-05-16 14:47 ` Philippe Mathieu-Daudé
2025-05-18 9:26 ` Gustavo Romero
2025-05-19 13:43 ` Alex Bennée
2025-05-24 15:38 ` Alex Bennée
2025-05-26 5:53 ` Thomas Huth
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).