diff mbox series

[v2] kunit: tool: cosmetic: don't specify duplicate kernel cmdline options

Message ID 20220513181032.24484-1-dlatypov@google.com
State Accepted
Commit 9241bc818d54b9cb7d1c9a28f26afa58e6d0bb7c
Headers show
Series [v2] kunit: tool: cosmetic: don't specify duplicate kernel cmdline options | expand

Commit Message

Daniel Latypov May 13, 2022, 6:10 p.m. UTC
Context:
When using a non-UML arch, kunit.py will boot the test kernel with
options like these by default (this is x86_64):
> mem=1G console=tty kunit_shutdown=halt console=ttyS0 kunit_shutdown=reboot

The first three options are added unconditionally but are only intended
for UML.

1. 'mem=1G' is redundant with the '-m 1024' that we hard-code into the
   qemu commandline.

2. We specify a 'console' for all tools/testing/kunit/qemu_configs/*.py
   already, so 'console=tty' gets overwritten.

3. For QEMU, we need to use 'reboot', and for UML we need to use 'halt'.
   If you switch them, kunit.py will hang until the --timeout expires.

This patch:
Having these duplicate options is a bit noisy.
Switch so we only add UML-specific options for UML.

I.e. we now get
UML: 'mem=1G console=tty kunit_shutdown=halt' (unchanged)
x86_64: 'console=ttyS0 kunit_shutdown=reboot'

Side effect: you can't overwrite these options on UML w/ --kernel_arg.
But you already couldn't for QEMU (console, kunit_shutdown), and why
would you want to?

Signed-off-by: Daniel Latypov <dlatypov@google.com>
Reviewed-by: David Gow <davidgow@google.com>
---
v1 -> v2: Remove other UML-specific args from other arches.
I.e. also only specify "mem=1G and console=tty" for UML.
---
 tools/testing/kunit/kunit_kernel.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


base-commit: 9660209d9418f2295d31fea0d32e313e9b2c1200

Comments

Brendan Higgins July 6, 2022, 7:58 p.m. UTC | #1
On Fri, May 13, 2022 at 2:10 PM Daniel Latypov <dlatypov@google.com> wrote:
>
> Context:
> When using a non-UML arch, kunit.py will boot the test kernel with
> options like these by default (this is x86_64):
> > mem=1G console=tty kunit_shutdown=halt console=ttyS0 kunit_shutdown=reboot
>
> The first three options are added unconditionally but are only intended
> for UML.
>
> 1. 'mem=1G' is redundant with the '-m 1024' that we hard-code into the
>    qemu commandline.
>
> 2. We specify a 'console' for all tools/testing/kunit/qemu_configs/*.py
>    already, so 'console=tty' gets overwritten.
>
> 3. For QEMU, we need to use 'reboot', and for UML we need to use 'halt'.
>    If you switch them, kunit.py will hang until the --timeout expires.
>
> This patch:
> Having these duplicate options is a bit noisy.
> Switch so we only add UML-specific options for UML.
>
> I.e. we now get
> UML: 'mem=1G console=tty kunit_shutdown=halt' (unchanged)
> x86_64: 'console=ttyS0 kunit_shutdown=reboot'
>
> Side effect: you can't overwrite these options on UML w/ --kernel_arg.
> But you already couldn't for QEMU (console, kunit_shutdown), and why
> would you want to?
>
> Signed-off-by: Daniel Latypov <dlatypov@google.com>
> Reviewed-by: David Gow <davidgow@google.com>

Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
diff mbox series

Patch

diff --git a/tools/testing/kunit/kunit_kernel.py b/tools/testing/kunit/kunit_kernel.py
index 1b9c4922a675..8945640b5063 100644
--- a/tools/testing/kunit/kunit_kernel.py
+++ b/tools/testing/kunit/kunit_kernel.py
@@ -160,6 +160,7 @@  class LinuxSourceTreeOperationsUml(LinuxSourceTreeOperations):
 	def start(self, params: List[str], build_dir: str) -> subprocess.Popen:
 		"""Runs the Linux UML binary. Must be named 'linux'."""
 		linux_bin = os.path.join(build_dir, 'linux')
+		params.extend(['mem=1G', 'console=tty', 'kunit_shutdown=halt'])
 		return subprocess.Popen([linux_bin] + params,
 					   stdin=subprocess.PIPE,
 					   stdout=subprocess.PIPE,
@@ -334,7 +335,6 @@  class LinuxSourceTree(object):
 	def run_kernel(self, args=None, build_dir='', filter_glob='', timeout=None) -> Iterator[str]:
 		if not args:
 			args = []
-		args.extend(['mem=1G', 'console=tty', 'kunit_shutdown=halt'])
 		if filter_glob:
 			args.append('kunit.filter_glob='+filter_glob)