Message ID | 20230622093357.255649-8-npiggin@gmail.com |
---|---|
State | New |
Headers | show |
Series | target/ppc: TCG SMT support for spapr machine | expand |
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)
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)
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(-)