All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kees Cook <keescook@chromium.org>
To: Brendan Higgins <brendanhiggins@google.com>
Cc: Frank Rowand <frowand.list@gmail.com>,
	jdike@addtoit.com, richard@nod.at,
	anton.ivanov@cambridgegreys.com, arnd@arndb.de,
	skhan@linuxfoundation.org, alan.maguire@oracle.com,
	yzaikin@google.com, davidgow@google.com,
	akpm@linux-foundation.org, rppt@linux.ibm.com,
	gregkh@linuxfoundation.org, sboyd@kernel.org,
	logang@deltatee.com, mcgrof@kernel.org,
	linux-um@lists.infradead.org, linux-arch@vger.kernel.org,
	linux-kselftest@vger.kernel.org, kunit-dev@googlegroups.com,
	linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org
Subject: Re: [PATCH v3 4/7] init: main: add KUnit to kernel init
Date: Mon, 2 Mar 2020 14:45:30 -0800	[thread overview]
Message-ID: <202003021439.A6B6FD8@keescook> (raw)
In-Reply-To: <20200228012036.15682-5-brendanhiggins@google.com>

On 2/27/20 7:20 PM, Brendan Higgins wrote:
> Remove KUnit from init calls entirely, instead call directly from
> kernel_init().
> 
> Co-developed-by: Alan Maguire <alan.maguire@oracle.com>
> Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
> Signed-off-by: Brendan Higgins <brendanhiggins@google.com>
> Reviewed-by: Stephen Boyd <sboyd@kernel.org>
> [...]
> diff --git a/init/main.c b/init/main.c
> index ee4947af823f3..7875a5c486dc4 100644
> --- a/init/main.c
> +++ b/init/main.c
> @@ -104,6 +104,8 @@
>  #define CREATE_TRACE_POINTS
>  #include <trace/events/initcall.h>
>  
> +#include <kunit/test.h>
> +
>  static int kernel_init(void *);
>  
>  extern void init_IRQ(void);
> @@ -1444,6 +1446,8 @@ static noinline void __init kernel_init_freeable(void)
>  
>  	do_basic_setup();
>  
> +	kunit_run_all_tests();
> +
>  	console_on_rootfs();
>  
>  	/*

I'm nervous about this happening before two key pieces of the kernel
setup, which might lead to weird timing-sensitive bugs or false
positives:
	async_synchronize_full()
	mark_readonly()

Now, I realize kunit tests _should_ be self-contained, but this seems
like a possible robustness problem. Is there any reason this can't be
moved after rcu_end_inkernel_boot() in kernel_init() instead?

-- 
Kees Cook

WARNING: multiple messages have this Message-ID (diff)
From: Kees Cook <keescook@chromium.org>
To: Brendan Higgins <brendanhiggins@google.com>
Cc: linux-arch@vger.kernel.org, alan.maguire@oracle.com,
	linux-kselftest@vger.kernel.org, arnd@arndb.de,
	gregkh@linuxfoundation.org, sboyd@kernel.org, richard@nod.at,
	jdike@addtoit.com, linux-doc@vger.kernel.org,
	linux-um@lists.infradead.org, mcgrof@kernel.org,
	rppt@linux.ibm.com, logang@deltatee.com,
	kunit-dev@googlegroups.com, davidgow@google.com,
	skhan@linuxfoundation.org, akpm@linux-foundation.org,
	yzaikin@google.com, Frank Rowand <frowand.list@gmail.com>,
	linux-kernel@vger.kernel.org, anton.ivanov@cambridgegreys.com
Subject: Re: [PATCH v3 4/7] init: main: add KUnit to kernel init
Date: Mon, 2 Mar 2020 14:45:30 -0800	[thread overview]
Message-ID: <202003021439.A6B6FD8@keescook> (raw)
In-Reply-To: <20200228012036.15682-5-brendanhiggins@google.com>

On 2/27/20 7:20 PM, Brendan Higgins wrote:
> Remove KUnit from init calls entirely, instead call directly from
> kernel_init().
> 
> Co-developed-by: Alan Maguire <alan.maguire@oracle.com>
> Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
> Signed-off-by: Brendan Higgins <brendanhiggins@google.com>
> Reviewed-by: Stephen Boyd <sboyd@kernel.org>
> [...]
> diff --git a/init/main.c b/init/main.c
> index ee4947af823f3..7875a5c486dc4 100644
> --- a/init/main.c
> +++ b/init/main.c
> @@ -104,6 +104,8 @@
>  #define CREATE_TRACE_POINTS
>  #include <trace/events/initcall.h>
>  
> +#include <kunit/test.h>
> +
>  static int kernel_init(void *);
>  
>  extern void init_IRQ(void);
> @@ -1444,6 +1446,8 @@ static noinline void __init kernel_init_freeable(void)
>  
>  	do_basic_setup();
>  
> +	kunit_run_all_tests();
> +
>  	console_on_rootfs();
>  
>  	/*

I'm nervous about this happening before two key pieces of the kernel
setup, which might lead to weird timing-sensitive bugs or false
positives:
	async_synchronize_full()
	mark_readonly()

Now, I realize kunit tests _should_ be self-contained, but this seems
like a possible robustness problem. Is there any reason this can't be
moved after rcu_end_inkernel_boot() in kernel_init() instead?

-- 
Kees Cook

_______________________________________________
linux-um mailing list
linux-um@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-um


  parent reply	other threads:[~2020-03-02 22:45 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-28  1:20 [PATCH v3 0/7] kunit: create a centralized executor to dispatch all KUnit tests Brendan Higgins
2020-02-28  1:20 ` Brendan Higgins
2020-02-28  1:20 ` [PATCH v3 1/7] vmlinux.lds.h: add linker section for KUnit test suites Brendan Higgins
2020-02-28  1:20   ` Brendan Higgins
2020-02-28  7:22   ` Brendan Higgins
2020-02-28  7:22     ` Brendan Higgins
2020-02-28 17:53     ` Iurii Zaikin
2020-02-28 17:53       ` Iurii Zaikin
2020-02-28 17:53       ` Iurii Zaikin
2020-02-28  1:20 ` [PATCH v3 2/7] arch: um: " Brendan Higgins
2020-02-28  1:20   ` Brendan Higgins
2020-02-28  1:20 ` [PATCH v3 3/7] kunit: test: create a single centralized executor for all tests Brendan Higgins
2020-02-28  1:20   ` Brendan Higgins
2020-02-29  0:18   ` kbuild test robot
2020-02-29  1:00   ` kbuild test robot
2020-02-29  8:53   ` kbuild test robot
2020-02-28  1:20 ` [PATCH v3 4/7] init: main: add KUnit to kernel init Brendan Higgins
2020-02-28  1:20   ` Brendan Higgins
2020-03-02 19:13   ` Frank Rowand
2020-03-02 19:13     ` Frank Rowand
2020-06-24 20:15     ` Brendan Higgins
2020-06-24 20:15       ` Brendan Higgins
2020-03-02 22:45   ` Kees Cook [this message]
2020-03-02 22:45     ` Kees Cook
2020-06-24 20:20     ` Brendan Higgins
2020-06-24 20:20       ` Brendan Higgins
2020-06-24 20:48       ` Kees Cook
2020-06-24 20:48         ` Kees Cook
2020-02-28  1:20 ` [PATCH v3 5/7] kunit: test: add test plan to KUnit TAP format Brendan Higgins
2020-02-28  1:20   ` Brendan Higgins
2020-02-28  1:20 ` [PATCH v3 6/7] kunit: Add 'kunit_shutdown' option Brendan Higgins
2020-02-28  1:20   ` Brendan Higgins
2020-02-28  1:20 ` [PATCH v3 7/7] Documentation: Add kunit_shutdown to kernel-parameters.txt Brendan Higgins
2020-02-28  1:20   ` Brendan Higgins
2020-03-04 23:10   ` Randy Dunlap
2020-03-02 17:41 ` [PATCH v3 0/7] kunit: create a centralized executor to dispatch all KUnit tests Frank Rowand
2020-03-02 17:41   ` Frank Rowand
2020-03-02 20:03 ` Luis Chamberlain
2020-03-02 20:03   ` Luis Chamberlain
2020-03-02 21:16   ` Guenter Roeck
2020-03-02 21:16     ` Guenter Roeck
2020-03-02 22:19     ` Brendan Higgins
2020-03-02 22:19       ` Brendan Higgins
2020-03-02 22:19       ` Brendan Higgins

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202003021439.A6B6FD8@keescook \
    --to=keescook@chromium.org \
    --cc=akpm@linux-foundation.org \
    --cc=alan.maguire@oracle.com \
    --cc=anton.ivanov@cambridgegreys.com \
    --cc=arnd@arndb.de \
    --cc=brendanhiggins@google.com \
    --cc=davidgow@google.com \
    --cc=frowand.list@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jdike@addtoit.com \
    --cc=kunit-dev@googlegroups.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-um@lists.infradead.org \
    --cc=logang@deltatee.com \
    --cc=mcgrof@kernel.org \
    --cc=richard@nod.at \
    --cc=rppt@linux.ibm.com \
    --cc=sboyd@kernel.org \
    --cc=skhan@linuxfoundation.org \
    --cc=yzaikin@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.