diff mbox series

[RFC,02/11] tests/avocado: Add ppc pseries and powernv Hash MMU tests

Message ID 20231010075238.95646-3-npiggin@gmail.com
State New
Headers show
Series ppc: avocado test additions and new defaults | expand

Commit Message

Nicholas Piggin Oct. 10, 2023, 7:52 a.m. UTC
The Hash MMU mode is supported along side Radix in POWER hardware, and
Linux supports running in either mode. Radix is the default so to keep
up testing of QEMU Hash MMU, add some explicit Hash MMU tests.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
 tests/avocado/ppc_powernv.py | 21 ++++++++++++++++++---
 tests/avocado/ppc_pseries.py | 20 +++++++++++++++++---
 2 files changed, 35 insertions(+), 6 deletions(-)

Comments

Cédric Le Goater Oct. 16, 2023, 8:40 a.m. UTC | #1
On 10/10/23 09:52, Nicholas Piggin wrote:
> The Hash MMU mode is supported along side Radix in POWER hardware, and
> Linux supports running in either mode. Radix is the default so to keep
> up testing of QEMU Hash MMU, add some explicit Hash MMU tests.
> 
> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>

Nice ! Could we do the same with XICS and XIVE (xive=off) ? since XIVE
is the default now.

May be we should add a boot test for all CPUs supported by pseries :

   970, 970mp, POWER5+, P8, P9, P10.

Same for PowerNV.

Thanks,

C.

> ---
>   tests/avocado/ppc_powernv.py | 21 ++++++++++++++++++---
>   tests/avocado/ppc_pseries.py | 20 +++++++++++++++++---
>   2 files changed, 35 insertions(+), 6 deletions(-)
> 
> diff --git a/tests/avocado/ppc_powernv.py b/tests/avocado/ppc_powernv.py
> index d0e5c07bde..2be322c47d 100644
> --- a/tests/avocado/ppc_powernv.py
> +++ b/tests/avocado/ppc_powernv.py
> @@ -12,11 +12,11 @@
>   class powernvMachine(QemuSystemTest):
>   
>       timeout = 90
> -    KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
> +    KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 console=hvc0 '
>       panic_message = 'Kernel panic - not syncing'
>       good_message = 'VFS: Cannot open root device'
>   
> -    def do_test_linux_boot(self):
> +    def do_test_linux_boot(self, kernel_command_line = KERNEL_COMMON_COMMAND_LINE):
>           self.require_accelerator("tcg")
>           kernel_url = ('https://archives.fedoraproject.org/pub/archive'
>                         '/fedora-secondary/releases/29/Everything/ppc64le/os'
> @@ -25,7 +25,6 @@ def do_test_linux_boot(self):
>           kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
>   
>           self.vm.set_console()
> -        kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=hvc0'
>           self.vm.add_args('-kernel', kernel_path,
>                            '-append', kernel_command_line)
>           self.vm.launch()
> @@ -54,6 +53,22 @@ def test_linux_smp_boot(self):
>           wait_for_console_pattern(self, console_pattern, self.panic_message)
>           wait_for_console_pattern(self, self.good_message, self.panic_message)
>   
> +    def test_linux_smp_hpt_boot(self):
> +        """
> +        :avocado: tags=arch:ppc64
> +        :avocado: tags=machine:powernv
> +        :avocado: tags=accel:tcg
> +        """
> +
> +        self.vm.add_args('-smp', '4')
> +        self.do_test_linux_boot(self.KERNEL_COMMON_COMMAND_LINE +
> +                                'disable_radix')
> +        console_pattern = 'smp: Brought up 1 node, 4 CPUs'
> +        wait_for_console_pattern(self, 'hash-mmu: Initializing hash mmu',
> +                                 self.panic_message)
> +        wait_for_console_pattern(self, console_pattern, self.panic_message)
> +        wait_for_console_pattern(self, self.good_message, self.panic_message)
> +
>       def test_linux_smt_boot(self):
>           """
>           :avocado: tags=arch:ppc64
> diff --git a/tests/avocado/ppc_pseries.py b/tests/avocado/ppc_pseries.py
> index a8311e6555..74aaa4ac4a 100644
> --- a/tests/avocado/ppc_pseries.py
> +++ b/tests/avocado/ppc_pseries.py
> @@ -12,11 +12,11 @@
>   class pseriesMachine(QemuSystemTest):
>   
>       timeout = 90
> -    KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
> +    KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 console=hvc0 '
>       panic_message = 'Kernel panic - not syncing'
>       good_message = 'VFS: Cannot open root device'
>   
> -    def do_test_ppc64_linux_boot(self):
> +    def do_test_ppc64_linux_boot(self, kernel_command_line = KERNEL_COMMON_COMMAND_LINE):
>           kernel_url = ('https://archives.fedoraproject.org/pub/archive'
>                         '/fedora-secondary/releases/29/Everything/ppc64le/os'
>                         '/ppc/ppc64/vmlinuz')
> @@ -24,7 +24,6 @@ def do_test_ppc64_linux_boot(self):
>           kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
>   
>           self.vm.set_console()
> -        kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=hvc0'
>           self.vm.add_args('-kernel', kernel_path,
>                            '-append', kernel_command_line)
>           self.vm.launch()
> @@ -62,6 +61,21 @@ def test_ppc64_linux_smp_boot(self):
>           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_hpt_smp_boot(self):
> +        """
> +        :avocado: tags=arch:ppc64
> +        :avocado: tags=machine:pseries
> +        """
> +
> +        self.vm.add_args('-smp', '4')
> +        self.do_test_ppc64_linux_boot(self.KERNEL_COMMON_COMMAND_LINE +
> +                                      'disable_radix')
> +        console_pattern = 'smp: Brought up 1 node, 4 CPUs'
> +        wait_for_console_pattern(self, 'hash-mmu: Initializing hash mmu',
> +                                 self.panic_message)
> +        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
diff mbox series

Patch

diff --git a/tests/avocado/ppc_powernv.py b/tests/avocado/ppc_powernv.py
index d0e5c07bde..2be322c47d 100644
--- a/tests/avocado/ppc_powernv.py
+++ b/tests/avocado/ppc_powernv.py
@@ -12,11 +12,11 @@ 
 class powernvMachine(QemuSystemTest):
 
     timeout = 90
-    KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
+    KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 console=hvc0 '
     panic_message = 'Kernel panic - not syncing'
     good_message = 'VFS: Cannot open root device'
 
-    def do_test_linux_boot(self):
+    def do_test_linux_boot(self, kernel_command_line = KERNEL_COMMON_COMMAND_LINE):
         self.require_accelerator("tcg")
         kernel_url = ('https://archives.fedoraproject.org/pub/archive'
                       '/fedora-secondary/releases/29/Everything/ppc64le/os'
@@ -25,7 +25,6 @@  def do_test_linux_boot(self):
         kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
 
         self.vm.set_console()
-        kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=hvc0'
         self.vm.add_args('-kernel', kernel_path,
                          '-append', kernel_command_line)
         self.vm.launch()
@@ -54,6 +53,22 @@  def test_linux_smp_boot(self):
         wait_for_console_pattern(self, console_pattern, self.panic_message)
         wait_for_console_pattern(self, self.good_message, self.panic_message)
 
+    def test_linux_smp_hpt_boot(self):
+        """
+        :avocado: tags=arch:ppc64
+        :avocado: tags=machine:powernv
+        :avocado: tags=accel:tcg
+        """
+
+        self.vm.add_args('-smp', '4')
+        self.do_test_linux_boot(self.KERNEL_COMMON_COMMAND_LINE +
+                                'disable_radix')
+        console_pattern = 'smp: Brought up 1 node, 4 CPUs'
+        wait_for_console_pattern(self, 'hash-mmu: Initializing hash mmu',
+                                 self.panic_message)
+        wait_for_console_pattern(self, console_pattern, self.panic_message)
+        wait_for_console_pattern(self, self.good_message, self.panic_message)
+
     def test_linux_smt_boot(self):
         """
         :avocado: tags=arch:ppc64
diff --git a/tests/avocado/ppc_pseries.py b/tests/avocado/ppc_pseries.py
index a8311e6555..74aaa4ac4a 100644
--- a/tests/avocado/ppc_pseries.py
+++ b/tests/avocado/ppc_pseries.py
@@ -12,11 +12,11 @@ 
 class pseriesMachine(QemuSystemTest):
 
     timeout = 90
-    KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
+    KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 console=hvc0 '
     panic_message = 'Kernel panic - not syncing'
     good_message = 'VFS: Cannot open root device'
 
-    def do_test_ppc64_linux_boot(self):
+    def do_test_ppc64_linux_boot(self, kernel_command_line = KERNEL_COMMON_COMMAND_LINE):
         kernel_url = ('https://archives.fedoraproject.org/pub/archive'
                       '/fedora-secondary/releases/29/Everything/ppc64le/os'
                       '/ppc/ppc64/vmlinuz')
@@ -24,7 +24,6 @@  def do_test_ppc64_linux_boot(self):
         kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
 
         self.vm.set_console()
-        kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=hvc0'
         self.vm.add_args('-kernel', kernel_path,
                          '-append', kernel_command_line)
         self.vm.launch()
@@ -62,6 +61,21 @@  def test_ppc64_linux_smp_boot(self):
         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_hpt_smp_boot(self):
+        """
+        :avocado: tags=arch:ppc64
+        :avocado: tags=machine:pseries
+        """
+
+        self.vm.add_args('-smp', '4')
+        self.do_test_ppc64_linux_boot(self.KERNEL_COMMON_COMMAND_LINE +
+                                      'disable_radix')
+        console_pattern = 'smp: Brought up 1 node, 4 CPUs'
+        wait_for_console_pattern(self, 'hash-mmu: Initializing hash mmu',
+                                 self.panic_message)
+        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