Add mult-thread/core/socket Linux boot tests that ensure the right
topology comes up. Of particular note is a SMT test, which is a new
capability for TCG.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
tests/avocado/ppc_pseries.py | 60 +++++++++++++++++++++++++++++++++---
1 file changed, 55 insertions(+), 5 deletions(-)
diff --git a/tests/avocado/ppc_pseries.py b/tests/avocado/ppc_pseries.py
index a152cf222e..ff42c770f2 100644
--- a/tests/avocado/ppc_pseries.py
+++ b/tests/avocado/ppc_pseries.py
@@ -14,12 +14,9 @@ class pseriesMachine(QemuSystemTest):
timeout = 90
KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
panic_message = 'Kernel panic - not syncing'
+ good_message = 'VFS: Cannot open root device'
- def test_ppc64_pseries(self):
- """
- :avocado: tags=arch:ppc64
- :avocado: tags=machine:pseries
- """
+ def do_test_ppc64_linux_boot(self):
kernel_url = ('https://archives.fedoraproject.org/pub/archive'
'/fedora-secondary/releases/29/Everything/ppc64le/os'
'/ppc/ppc64/vmlinuz')
@@ -31,5 +28,58 @@ def test_ppc64_pseries(self):
self.vm.add_args('-kernel', kernel_path,
'-append', kernel_command_line)
self.vm.launch()
+
+ def test_ppc64_linux_boot(self):
+ """
+ :avocado: tags=arch:ppc64
+ :avocado: tags=machine:pseries
+ """
+
+ self.do_test_ppc64_linux_boot()
console_pattern = 'VFS: Cannot open root device'
wait_for_console_pattern(self, console_pattern, self.panic_message)
+
+ def test_ppc64_linux_smp_boot(self):
+ """
+ :avocado: tags=arch:ppc64
+ :avocado: tags=machine:pseries
+ """
+
+ self.vm.add_args('-smp', '4')
+ self.do_test_ppc64_linux_boot()
+ console_pattern = 'smp: Brought up 1 node, 4 CPUs'
+ wait_for_console_pattern(self, console_pattern, self.panic_message)
+ wait_for_console_pattern(self, self.good_message, self.panic_message)
+
+ def test_ppc64_linux_smt_boot(self):
+ """
+ :avocado: tags=arch:ppc64
+ :avocado: tags=machine:pseries
+ """
+
+ self.vm.add_args('-smp', '4,threads=4')
+ self.do_test_ppc64_linux_boot()
+ console_pattern = 'CPU maps initialized for 4 threads per core'
+ wait_for_console_pattern(self, console_pattern, self.panic_message)
+ console_pattern = 'smp: Brought up 1 node, 4 CPUs'
+ wait_for_console_pattern(self, console_pattern, self.panic_message)
+ wait_for_console_pattern(self, self.good_message, self.panic_message)
+
+ def test_ppc64_linux_big_boot(self):
+ """
+ :avocado: tags=arch:ppc64
+ :avocado: tags=machine:pseries
+ """
+
+ self.vm.add_args('-smp', '16,threads=4,cores=2,sockets=2')
+ self.vm.add_args('-m', '512M',
+ '-object', 'memory-backend-ram,size=256M,id=m0',
+ '-object', 'memory-backend-ram,size=256M,id=m1')
+ self.vm.add_args('-numa', 'node,nodeid=0,memdev=m0')
+ self.vm.add_args('-numa', 'node,nodeid=1,memdev=m1')
+ self.do_test_ppc64_linux_boot()
+ console_pattern = 'CPU maps initialized for 4 threads per core'
+ wait_for_console_pattern(self, console_pattern, self.panic_message)
+ console_pattern = 'smp: Brought up 2 nodes, 16 CPUs'
+ wait_for_console_pattern(self, console_pattern, self.panic_message)
+ wait_for_console_pattern(self, self.good_message, self.panic_message)
--
2.40.1
On 6/22/23 11:33, Nicholas Piggin wrote:
> Add mult-thread/core/socket Linux boot tests that ensure the right
> topology comes up. Of particular note is a SMT test, which is a new
> capability for TCG.
>
> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Thanks,
C.
> ---
> tests/avocado/ppc_pseries.py | 60 +++++++++++++++++++++++++++++++++---
> 1 file changed, 55 insertions(+), 5 deletions(-)
>
> diff --git a/tests/avocado/ppc_pseries.py b/tests/avocado/ppc_pseries.py
> index a152cf222e..ff42c770f2 100644
> --- a/tests/avocado/ppc_pseries.py
> +++ b/tests/avocado/ppc_pseries.py
> @@ -14,12 +14,9 @@ class pseriesMachine(QemuSystemTest):
> timeout = 90
> KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
> panic_message = 'Kernel panic - not syncing'
> + good_message = 'VFS: Cannot open root device'
>
> - def test_ppc64_pseries(self):
> - """
> - :avocado: tags=arch:ppc64
> - :avocado: tags=machine:pseries
> - """
> + def do_test_ppc64_linux_boot(self):
> kernel_url = ('https://archives.fedoraproject.org/pub/archive'
> '/fedora-secondary/releases/29/Everything/ppc64le/os'
> '/ppc/ppc64/vmlinuz')
> @@ -31,5 +28,58 @@ def test_ppc64_pseries(self):
> self.vm.add_args('-kernel', kernel_path,
> '-append', kernel_command_line)
> self.vm.launch()
> +
> + def test_ppc64_linux_boot(self):
> + """
> + :avocado: tags=arch:ppc64
> + :avocado: tags=machine:pseries
> + """
> +
> + self.do_test_ppc64_linux_boot()
> console_pattern = 'VFS: Cannot open root device'
> wait_for_console_pattern(self, console_pattern, self.panic_message)
> +
> + def test_ppc64_linux_smp_boot(self):
> + """
> + :avocado: tags=arch:ppc64
> + :avocado: tags=machine:pseries
> + """
> +
> + self.vm.add_args('-smp', '4')
> + self.do_test_ppc64_linux_boot()
> + console_pattern = 'smp: Brought up 1 node, 4 CPUs'
> + wait_for_console_pattern(self, console_pattern, self.panic_message)
> + wait_for_console_pattern(self, self.good_message, self.panic_message)
> +
> + def test_ppc64_linux_smt_boot(self):
> + """
> + :avocado: tags=arch:ppc64
> + :avocado: tags=machine:pseries
> + """
> +
> + self.vm.add_args('-smp', '4,threads=4')
> + self.do_test_ppc64_linux_boot()
> + console_pattern = 'CPU maps initialized for 4 threads per core'
> + wait_for_console_pattern(self, console_pattern, self.panic_message)
> + console_pattern = 'smp: Brought up 1 node, 4 CPUs'
> + wait_for_console_pattern(self, console_pattern, self.panic_message)
> + wait_for_console_pattern(self, self.good_message, self.panic_message)
> +
> + def test_ppc64_linux_big_boot(self):
> + """
> + :avocado: tags=arch:ppc64
> + :avocado: tags=machine:pseries
> + """
> +
> + self.vm.add_args('-smp', '16,threads=4,cores=2,sockets=2')
> + self.vm.add_args('-m', '512M',
> + '-object', 'memory-backend-ram,size=256M,id=m0',
> + '-object', 'memory-backend-ram,size=256M,id=m1')
> + self.vm.add_args('-numa', 'node,nodeid=0,memdev=m0')
> + self.vm.add_args('-numa', 'node,nodeid=1,memdev=m1')
> + self.do_test_ppc64_linux_boot()
> + console_pattern = 'CPU maps initialized for 4 threads per core'
> + wait_for_console_pattern(self, console_pattern, self.panic_message)
> + console_pattern = 'smp: Brought up 2 nodes, 16 CPUs'
> + wait_for_console_pattern(self, console_pattern, self.panic_message)
> + wait_for_console_pattern(self, self.good_message, self.panic_message)
© 2016 - 2026 Red Hat, Inc.