Re: [PATCH -tip] kcov: Make runtime functions noinstr-compatible

2020-06-04 Thread Peter Zijlstra
On Thu, Jun 04, 2020 at 04:23:38PM +0200, Marco Elver wrote: > Sadly no. 'noinstr' implies 'notrace', but also places the function in > the .noinstr.text section for the purpose of objtool checking. Not only the compile time checking, but also for purpose of runtime exclusion for things like kprob

Re: [PATCH -tip] kcov: Make runtime functions noinstr-compatible

2020-06-04 Thread Peter Zijlstra
On Thu, Jun 04, 2020 at 04:02:54PM +0200, Andrey Konovalov wrote: > On Thu, Jun 4, 2020 at 1:09 PM Peter Zijlstra wrote: > > That whole kcov_remote stuff confuses me. > > > > KCOV_ENABLE() has kcov_fault_in_area(), which supposedly takes the > > vmalloc faults for the current task, but who does i

Re: [PATCH -tip] kcov: Make runtime functions noinstr-compatible

2020-06-04 Thread Peter Zijlstra
On Thu, Jun 04, 2020 at 04:02:54PM +0200, Andrey Konovalov wrote: > > Now, luckily Joerg went and ripped out the vmalloc faults, let me check > > where those patches are... w00t, they're upstream in this merge window. > > Could you point me to those patches? git log 7f0a002b5a21302d9f4b29ba83c9

Re: [PATCH -tip] kcov: Make runtime functions noinstr-compatible

2020-06-04 Thread Marco Elver
On Thu, 4 Jun 2020 at 16:03, Andrey Konovalov wrote: > > On Thu, Jun 4, 2020 at 1:09 PM Peter Zijlstra wrote: > > > > On Thu, Jun 04, 2020 at 11:50:57AM +0200, Marco Elver wrote: > > > The KCOV runtime is very minimal, only updating a field in 'current', > > > and none of __sanitizer_cov-function

Re: [PATCH -tip] kcov: Make runtime functions noinstr-compatible

2020-06-04 Thread Andrey Konovalov
On Thu, Jun 4, 2020 at 1:09 PM Peter Zijlstra wrote: > > On Thu, Jun 04, 2020 at 11:50:57AM +0200, Marco Elver wrote: > > The KCOV runtime is very minimal, only updating a field in 'current', > > and none of __sanitizer_cov-functions generates reports nor calls any > > other external functions. >

Re: [PATCH -tip] kcov: Make runtime functions noinstr-compatible

2020-06-04 Thread Marco Elver
On Thu, 4 Jun 2020 at 13:09, Peter Zijlstra wrote: > > On Thu, Jun 04, 2020 at 11:50:57AM +0200, Marco Elver wrote: > > The KCOV runtime is very minimal, only updating a field in 'current', > > and none of __sanitizer_cov-functions generates reports nor calls any > > other external functions. > >

Re: [PATCH -tip] kcov: Make runtime functions noinstr-compatible

2020-06-04 Thread Peter Zijlstra
On Thu, Jun 04, 2020 at 11:50:57AM +0200, Marco Elver wrote: > The KCOV runtime is very minimal, only updating a field in 'current', > and none of __sanitizer_cov-functions generates reports nor calls any > other external functions. Not quite true; it writes to t->kcov_area, and we need to make ab

[PATCH -tip] kcov: Make runtime functions noinstr-compatible

2020-06-04 Thread Marco Elver
The KCOV runtime is very minimal, only updating a field in 'current', and none of __sanitizer_cov-functions generates reports nor calls any other external functions. Therefore we can make the KCOV runtime noinstr-compatible by: 1. always-inlining internal functions and marking __sanitizer_