Messages in this thread | | | Date | Tue, 25 Oct 2022 11:07:03 +0200 | Subject | Re: [PATCH v2 3/3] mm: slub: test: Use the kunit_get_current_test() function | From | Vlastimil Babka <> |
| |
On 10/25/22 09:19, David Gow wrote: > Use the newly-added function kunit_get_current_test() instead of > accessing current->kunit_test directly. This function uses a static key > to return more quickly when KUnit is enabled, but no tests are actively > running. There should therefore be a negligible performance impact to > enabling the slub KUnit tests. > > Other than the performance improvement, this should be a no-op. > > Cc: Oliver Glitta <glittao@gmail.com> > Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com> > Cc: Christoph Lameter <cl@linux.com> > Cc: Vlastimil Babka <vbabka@suse.cz> > Cc: David Rientjes <rientjes@google.com> > Cc: Andrew Morton <akpm@linux-foundation.org> > Signed-off-by: David Gow <davidgow@google.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
> --- > > This is intended as an example use of the new function. Other users > (such as KASAN) will be updated separately, as there would otherwise be > conflicts. > > Assuming there are no objections, we'll take this whole series via the > kselftest/kunit tree.
OK, please do.
Some possible improvements below:
> There was no v1 of this patch. v1 of the series can be found here: > https://lore.kernel.org/linux-kselftest/20221021072854.333010-1-davidgow@google.com/T/#u > > --- > lib/slub_kunit.c | 1 + > mm/slub.c | 5 +++-- > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/lib/slub_kunit.c b/lib/slub_kunit.c > index 7a0564d7cb7a..8fd19c8301ad 100644 > --- a/lib/slub_kunit.c > +++ b/lib/slub_kunit.c > @@ -1,5 +1,6 @@ > // SPDX-License-Identifier: GPL-2.0 > #include <kunit/test.h> > +#include <kunit/test-bug.h> > #include <linux/mm.h> > #include <linux/slab.h> > #include <linux/module.h> > diff --git a/mm/slub.c b/mm/slub.c > index 157527d7101b..15d10d250ef2 100644 > --- a/mm/slub.c > +++ b/mm/slub.c > @@ -39,6 +39,7 @@ > #include <linux/memcontrol.h> > #include <linux/random.h> > #include <kunit/test.h> > +#include <kunit/test-bug.h> > #include <linux/sort.h> > > #include <linux/debugfs.h> > @@ -603,10 +604,10 @@ static bool slab_add_kunit_errors(void) > { > struct kunit_resource *resource; > > - if (likely(!current->kunit_test)) > + if (likely(!kunit_get_current_test()))
Given that kunit_get_current_test() is basically an inline !static_branch_unlikely(), IMHO the likely() here doesn't add anything and could be removed?
> return false; > > - resource = kunit_find_named_resource(current->kunit_test, "slab_errors"); > + resource = kunit_find_named_resource(kunit_get_current_test(), "slab_errors");
We just passed kunit_get_current_test() above so maybe we could just keep using current->kunit_test here? Seems unnecessary adding another jump label.
> if (!resource) > return false; >
| |