Message ID | 20240321143200.1854489-1-smayhew@redhat.com |
---|---|
State | Accepted |
Commit | 5496b9b77d7420652202b73cf036e69760be5deb |
Headers | show |
Series | kunit: bail out early in __kunit_test_suites_init() if there are no suites to test | expand |
On Thu, 21 Mar 2024 at 22:32, Scott Mayhew <smayhew@redhat.com> wrote: > > Commit c72a870926c2 added a mutex to prevent kunit tests from running > concurrently. Unfortunately that mutex gets locked during module load > regardless of whether the module actually has any kunit tests. This > causes a problem for kunit tests that might need to load other kernel > modules (e.g. gss_krb5_test loading the camellia module). > > So check to see if there are actually any tests to run before locking > the kunit_run_lock mutex. > > Fixes: c72a870926c2 ("kunit: add ability to run tests after boot using debugfs") > Reported-by: Nico Pache <npache@redhat.com> > Signed-off-by: Scott Mayhew <smayhew@redhat.com> > --- Thanks, this works well here, and is a good idea anyway. Reviewed-by: David Gow <davidgow@google.com> Cheers, -- David > lib/kunit/test.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/lib/kunit/test.c b/lib/kunit/test.c > index 1d1475578515..b8514dbb337c 100644 > --- a/lib/kunit/test.c > +++ b/lib/kunit/test.c > @@ -712,6 +712,9 @@ int __kunit_test_suites_init(struct kunit_suite * const * const suites, int num_ > { > unsigned int i; > > + if (num_suites == 0) > + return 0; > + > if (!kunit_enabled() && num_suites > 0) { > pr_info("kunit: disabled\n"); > return 0; > -- > 2.43.0 >
On Sat, 23 Mar 2024, David Gow wrote: > On Thu, 21 Mar 2024 at 22:32, Scott Mayhew <smayhew@redhat.com> wrote: > > > > Commit c72a870926c2 added a mutex to prevent kunit tests from running > > concurrently. Unfortunately that mutex gets locked during module load > > regardless of whether the module actually has any kunit tests. This > > causes a problem for kunit tests that might need to load other kernel > > modules (e.g. gss_krb5_test loading the camellia module). > > > > So check to see if there are actually any tests to run before locking > > the kunit_run_lock mutex. > > > > Fixes: c72a870926c2 ("kunit: add ability to run tests after boot using debugfs") > > Reported-by: Nico Pache <npache@redhat.com> > > Signed-off-by: Scott Mayhew <smayhew@redhat.com> > > --- > > Thanks, this works well here, and is a good idea anyway. > > Reviewed-by: David Gow <davidgow@google.com> > Brendan, David, Is there a reason this patch hasn't been merged? -Scott > Cheers, > -- David > > > lib/kunit/test.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/lib/kunit/test.c b/lib/kunit/test.c > > index 1d1475578515..b8514dbb337c 100644 > > --- a/lib/kunit/test.c > > +++ b/lib/kunit/test.c > > @@ -712,6 +712,9 @@ int __kunit_test_suites_init(struct kunit_suite * const * const suites, int num_ > > { > > unsigned int i; > > > > + if (num_suites == 0) > > + return 0; > > + > > if (!kunit_enabled() && num_suites > 0) { > > pr_info("kunit: disabled\n"); > > return 0; > > -- > > 2.43.0 > >
On Tue, 30 Apr 2024 at 21:58, Scott Mayhew <smayhew@redhat.com> wrote: > > On Sat, 23 Mar 2024, David Gow wrote: > > > On Thu, 21 Mar 2024 at 22:32, Scott Mayhew <smayhew@redhat.com> wrote: > > > > > > Commit c72a870926c2 added a mutex to prevent kunit tests from running > > > concurrently. Unfortunately that mutex gets locked during module load > > > regardless of whether the module actually has any kunit tests. This > > > causes a problem for kunit tests that might need to load other kernel > > > modules (e.g. gss_krb5_test loading the camellia module). > > > > > > So check to see if there are actually any tests to run before locking > > > the kunit_run_lock mutex. > > > > > > Fixes: c72a870926c2 ("kunit: add ability to run tests after boot using debugfs") > > > Reported-by: Nico Pache <npache@redhat.com> > > > Signed-off-by: Scott Mayhew <smayhew@redhat.com> > > > --- > > > > Thanks, this works well here, and is a good idea anyway. > > > > Reviewed-by: David Gow <davidgow@google.com> > > > > Brendan, David, > > Is there a reason this patch hasn't been merged? > > -Scott > Sorry: it totally slipped through the net. Thanks for the reminder, it's merged now: https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git/commit/?h=kunit&id=2168e528f8679881df7487309f3444a121b2b544 Cheers, -- David
diff --git a/lib/kunit/test.c b/lib/kunit/test.c index 1d1475578515..b8514dbb337c 100644 --- a/lib/kunit/test.c +++ b/lib/kunit/test.c @@ -712,6 +712,9 @@ int __kunit_test_suites_init(struct kunit_suite * const * const suites, int num_ { unsigned int i; + if (num_suites == 0) + return 0; + if (!kunit_enabled() && num_suites > 0) { pr_info("kunit: disabled\n"); return 0;
Commit c72a870926c2 added a mutex to prevent kunit tests from running concurrently. Unfortunately that mutex gets locked during module load regardless of whether the module actually has any kunit tests. This causes a problem for kunit tests that might need to load other kernel modules (e.g. gss_krb5_test loading the camellia module). So check to see if there are actually any tests to run before locking the kunit_run_lock mutex. Fixes: c72a870926c2 ("kunit: add ability to run tests after boot using debugfs") Reported-by: Nico Pache <npache@redhat.com> Signed-off-by: Scott Mayhew <smayhew@redhat.com> --- lib/kunit/test.c | 3 +++ 1 file changed, 3 insertions(+)