From: Alan Maguire <alan.maguire@oracle.com>
To: Patricia Alfonso <trishalfonso@google.com>
Cc: Alan Maguire <alan.maguire@oracle.com>,
David Gow <davidgow@google.com>,
Brendan Higgins <brendanhiggins@google.com>,
Andrey Ryabinin <aryabinin@virtuozzo.com>,
Dmitry Vyukov <dvyukov@google.com>,
Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Juri Lelli <juri.lelli@redhat.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
LKML <linux-kernel@vger.kernel.org>,
kasan-dev <kasan-dev@googlegroups.com>,
kunit-dev@googlegroups.com,
"open list:KERNEL SELFTEST FRAMEWORK"
<linux-kselftest@vger.kernel.org>
Subject: Re: [RFC PATCH v2 1/3] Add KUnit Struct to Current Task
Date: Wed, 25 Mar 2020 12:42:36 +0000 (GMT) [thread overview]
Message-ID: <alpine.LRH.2.21.2003251242200.9650@localhost> (raw)
In-Reply-To: <CAKFsvULUx3qi_kMGJx69ndzCgq=m2xf4XWrYRYBCViud0P7qqA@mail.gmail.com>
On Tue, 24 Mar 2020, Patricia Alfonso wrote:
> On Tue, Mar 24, 2020 at 9:40 AM Alan Maguire <alan.maguire@oracle.com> wrote:
> >
> >
> > On Thu, 19 Mar 2020, Patricia Alfonso wrote:
> >
> > > In order to integrate debugging tools like KASAN into the KUnit
> > > framework, add KUnit struct to the current task to keep track of the
> > > current KUnit test.
> > >
> > > Signed-off-by: Patricia Alfonso <trishalfonso@google.com>
> > > ---
> > > include/linux/sched.h | 4 ++++
> > > 1 file changed, 4 insertions(+)
> > >
> > > diff --git a/include/linux/sched.h b/include/linux/sched.h
> > > index 04278493bf15..1fbfa0634776 100644
> > > --- a/include/linux/sched.h
> > > +++ b/include/linux/sched.h
> > > @@ -1180,6 +1180,10 @@ struct task_struct {
> > > unsigned int kasan_depth;
> > > #endif
> > >
> > > +#if IS_BUILTIN(CONFIG_KUNIT)
> >
> > This patch set looks great! You might have noticed I
> > refreshed the kunit resources stuff to incorporate
> > feedback from Brendan, but I don't think any API changes
> > were made that should have consequences for your code
> > (I'm building with your patches on top to make sure).
> > I'd suggest promoting from RFC to v3 on the next round
> > unless anyone objects.
> >
> > As Dmitry suggested, the above could likely be changed to be
> > "#ifdef CONFIG_KUNIT" as kunit can be built as a
> > module also. More on this in patch 2..
> >
> I suppose this could be changed so that this can be used in possible
> future scenarios, but for now, since built-in things can't rely on
> modules, the KASAN integration relies on KUnit being built-in.
>
I think we can get around that. I've tried tweaking the resources
patchset such that the functions you need in KASAN (which
is builtin) are declared as "static inline" in include/kunit/test.h;
doing this allows us to build kunit and test_kasan as a
module while supporting the builtin functionality required to
retrieve and use kunit resources within KASAN itself.
The impact of this amounts to a few functions, but it would
require a rebase of your changes. I'll send out a v3 of the
resources patches shortly; I just want to do some additional
testing on them. I can also send you the modified versions of
your patches that I used to test with.
With these changes I can run the tests on baremetal
x86_64 by modprobe'ing test_kasan. However I see a few failures:
[ 87.577012] # kasan_memchr: EXPECTATION FAILED at lib/test_kasan.c:509
Expected kasan_data->report_expected == kasan_data->report_found,
but
kasan_data->report_expected == 1
kasan_data->report_found == 0
[ 87.577104] not ok 30 - kasan_memchr
[ 87.603823] # kasan_memcmp: EXPECTATION FAILED at lib/test_kasan.c:523
Expected kasan_data->report_expected == kasan_data->report_found,
but
kasan_data->report_expected == 1
kasan_data->report_found == 0
[ 87.603929] not ok 31 - kasan_memcmp
[ 87.630644] # kasan_strings: EXPECTATION FAILED at
lib/test_kasan.c:544
Expected kasan_data->report_expected == kasan_data->report_found,
but
kasan_data->report_expected == 1
kasan_data->report_found == 0
[ 87.630910] # kasan_strings: EXPECTATION FAILED at
lib/test_kasan.c:546
Expected kasan_data->report_expected == kasan_data->report_found,
but
kasan_data->report_expected == 1
kasan_data->report_found == 0
[ 87.654037] # kasan_strings: EXPECTATION FAILED at
lib/test_kasan.c:548
Expected kasan_data->report_expected == kasan_data->report_found,
but
kasan_data->report_expected == 1
kasan_data->report_found == 0
[ 87.677179] # kasan_strings: EXPECTATION FAILED at
lib/test_kasan.c:550
Expected kasan_data->report_expected == kasan_data->report_found,
but
kasan_data->report_expected == 1
kasan_data->report_found == 0
[ 87.700242] # kasan_strings: EXPECTATION FAILED at
lib/test_kasan.c:552
Expected kasan_data->report_expected == kasan_data->report_found,
but
kasan_data->report_expected == 1
kasan_data->report_found == 0
[ 87.723336] # kasan_strings: EXPECTATION FAILED at
lib/test_kasan.c:554
Expected kasan_data->report_expected == kasan_data->report_found,
but
kasan_data->report_expected == 1
kasan_data->report_found == 0
[ 87.746304] not ok 32 - kasan_strings
The above three tests consistently fail while everything
else passes, and happen irrespective of whether kunit
is built as a module or built-in. Let me know if you
need any more info to debug (I built the kernel with
CONFIG_SLUB=y if that matters).
Thanks!
Alan
> > > + struct kunit *kunit_test;
> > > +#endif /* IS_BUILTIN(CONFIG_KUNIT) */
> > > +
> > > #ifdef CONFIG_FUNCTION_GRAPH_TRACER
> > > /* Index of current stored address in ret_stack: */
> > > int curr_ret_stack;
> > > --
> > > 2.25.1.696.g5e7596f4ac-goog
> > >
> > >
>
> --
> Best,
> Patricia
>
next prev parent reply other threads:[~2020-03-25 12:43 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-19 16:42 [RFC PATCH v2 0/3] KASAN/KUnit Integration Patricia Alfonso
2020-03-19 16:42 ` [RFC PATCH v2 1/3] Add KUnit Struct to Current Task Patricia Alfonso
2020-03-24 11:32 ` Dmitry Vyukov
2020-03-24 16:39 ` Alan Maguire
2020-03-24 17:42 ` Patricia Alfonso
2020-03-25 12:42 ` Alan Maguire [this message]
2020-03-25 19:00 ` Patricia Alfonso
2020-03-30 19:30 ` Patricia Alfonso
2020-03-31 7:48 ` Dmitry Vyukov
2020-03-24 18:12 ` Brendan Higgins
2020-03-19 16:42 ` [RFC PATCH v2 2/3] KUnit: KASAN Integration Patricia Alfonso
2020-03-24 16:45 ` Alan Maguire
2020-03-24 17:48 ` Patricia Alfonso
2020-03-19 16:42 ` [RFC PATCH v2 3/3] KASAN: Port KASAN Tests to KUnit Patricia Alfonso
2020-03-24 11:24 ` Dmitry Vyukov
2020-03-24 15:05 ` Patricia Alfonso
2020-03-26 9:12 ` Dmitry Vyukov
2020-03-26 15:15 ` Patricia Alfonso
2020-03-27 5:31 ` Dmitry Vyukov
2020-03-30 18:57 ` Patricia Alfonso
2020-03-31 10:12 ` Dmitry Vyukov
2020-03-24 16:48 ` Alan Maguire
2020-03-24 17:52 ` Patricia Alfonso
2020-03-24 18:20 ` Brendan Higgins
2020-03-26 9:10 ` Dmitry Vyukov
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=alpine.LRH.2.21.2003251242200.9650@localhost \
--to=alan.maguire@oracle.com \
--cc=aryabinin@virtuozzo.com \
--cc=brendanhiggins@google.com \
--cc=davidgow@google.com \
--cc=dvyukov@google.com \
--cc=juri.lelli@redhat.com \
--cc=kasan-dev@googlegroups.com \
--cc=kunit-dev@googlegroups.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=trishalfonso@google.com \
--cc=vincent.guittot@linaro.org \
/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.