2020-06-04 10:29:22

by Peter Zijlstra

[permalink] [raw]
Subject: [PATCH 0/8] x86/entry: KCSAN/KASAN/UBSAN vs noinstr

Hai,

Here's the remaining few patches to make KCSAN/KASAN and UBSAN work with noinstr.



2020-06-04 11:10:54

by Marco Elver

[permalink] [raw]
Subject: Re: [PATCH 0/8] x86/entry: KCSAN/KASAN/UBSAN vs noinstr

On Thu, 4 Jun 2020 at 12:25, Peter Zijlstra <[email protected]> wrote:
>
> Hai,
>
> Here's the remaining few patches to make KCSAN/KASAN and UBSAN work with noinstr.

Thanks for assembling the series!

For where it's missing (1,2,3 and last one):

Acked-by: Marco Elver <[email protected]>

2020-06-15 10:10:44

by Marco Elver

[permalink] [raw]
Subject: Re: [PATCH 0/8] x86/entry: KCSAN/KASAN/UBSAN vs noinstr

On Thu, 4 Jun 2020 at 13:01, Marco Elver <[email protected]> wrote:
>
> On Thu, 4 Jun 2020 at 12:25, Peter Zijlstra <[email protected]> wrote:
> >
> > Hai,
> >
> > Here's the remaining few patches to make KCSAN/KASAN and UBSAN work with noinstr.
>
> Thanks for assembling the series!
>
> For where it's missing (1,2,3 and last one):
>
> Acked-by: Marco Elver <[email protected]>

Where was this series supposed to go? I can't find it on any tree yet.

How urgent is this? Boot-test seems fine without this, but likely
doesn't hit the corner cases. Syzbot will likely find them, and if we
noticeably end up breaking various sanitizers without this, I'd
consider this urgent.

Thanks,
-- Marco

2020-06-15 15:02:08

by Qian Cai

[permalink] [raw]
Subject: Re: [PATCH 0/8] x86/entry: KCSAN/KASAN/UBSAN vs noinstr

On Mon, Jun 15, 2020 at 12:07:34PM +0200, 'Marco Elver' via kasan-dev wrote:
> On Thu, 4 Jun 2020 at 13:01, Marco Elver <[email protected]> wrote:
> >
> > On Thu, 4 Jun 2020 at 12:25, Peter Zijlstra <[email protected]> wrote:
> > >
> > > Hai,
> > >
> > > Here's the remaining few patches to make KCSAN/KASAN and UBSAN work with noinstr.
> >
> > Thanks for assembling the series!
> >
> > For where it's missing (1,2,3 and last one):
> >
> > Acked-by: Marco Elver <[email protected]>
>
> Where was this series supposed to go? I can't find it on any tree yet.
>
> How urgent is this? Boot-test seems fine without this, but likely
> doesn't hit the corner cases. Syzbot will likely find them, and if we
> noticeably end up breaking various sanitizers without this, I'd
> consider this urgent.

Today's linux-next had a lot of those with this .config,

https://raw.githubusercontent.com/cailca/linux-mm/master/x86.config

Wondering if this patchset will cure them all?

vmlinux.o: warning: objtool: exc_invalid_op()+0x337: call to __asan_report_load8_noabort() leaves .noinstr.text section
vmlinux.o: warning: objtool: exc_double_fault()+0x217: call to __asan_report_store4_noabort() leaves .noinstr.text section
vmlinux.o: warning: objtool: exc_int3()+0x376: call to __asan_report_load8_noabort() leaves .noinstr.text section
vmlinux.o: warning: objtool: sync_regs()+0xcd: call to __asan_report_store_n_noabort() leaves .noinstr.text section
vmlinux.o: warning: objtool: fixup_bad_iret()+0x13a: call to __asan_report_load8_noabort() leaves .noinstr.text section
vmlinux.o: warning: objtool: exc_debug()+0x280: call to __asan_report_load4_noabort() leaves .noinstr.text section
vmlinux.o: warning: objtool: default_do_nmi()+0x233: call to __asan_report_load8_noabort() leaves .noinstr.text section
vmlinux.o: warning: objtool: exc_nmi()+0x67: call to __kasan_check_read() leaves .noinstr.text section
vmlinux.o: warning: objtool: poke_int3_handler()+0x3d1: call to __asan_report_load8_noabort() leaves .noinstr.text section
vmlinux.o: warning: objtool: mce_check_crashing_cpu()+0x60: call to __kasan_check_read() leaves .noinstr.text section
vmlinux.o: warning: objtool: mce_setup()+0x1c: call to memset() leaves .noinstr.text section
vmlinux.o: warning: objtool: do_machine_check()+0xd3: call to mce_rdmsrl() leaves .noinstr.text section
vmlinux.o: warning: objtool: exc_machine_check()+0x2a1: call to __asan_report_store4_noabort() leaves .noinstr.text section
vmlinux.o: warning: objtool: exc_page_fault()+0xc4e: call to __asan_report_load8_noabort() leaves .noinstr.text section
vmlinux.o: warning: objtool: lockdep_hardirqs_on()+0x3a9: call to __asan_report_store8_noabort() leaves .noinstr.text section
vmlinux.o: warning: objtool: lockdep_hardirqs_off()+0x24a: call to __asan_report_store8_noabort() leaves .noinstr.text section
vmlinux.o: warning: objtool: match_held_lock()+0x4df: call to __asan_report_load8_noabort() leaves .noinstr.text section
vmlinux.o: warning: objtool: lock_is_held_type()+0x230: call to __asan_report_store4_noabort() leaves .noinstr.text section
vmlinux.o: warning: objtool: debug_lockdep_rcu_enabled()+0xcd: call to __asan_report_load4_noabort() leaves .noinstr.text section
vmlinux.o: warning: objtool: rcu_dynticks_eqs_enter()+0x1c: call to __kasan_check_write() leaves .noinstr.text section
vmlinux.o: warning: objtool: rcu_dynticks_eqs_exit()+0x20: call to __kasan_check_write() leaves .noinstr.text section
vmlinux.o: warning: objtool: rcu_eqs_exit.constprop.72()+0x24d: call to __asan_report_load8_noabort() leaves .noinstr.text section
vmlinux.o: warning: objtool: rcu_eqs_enter.constprop.73()+0x250: call to __asan_report_load8_noabort() leaves .noinstr.text section
vmlinux.o: warning: objtool: rcu_nmi_exit()+0x1f2: call to __asan_report_load8_noabort() leaves .noinstr.text section
vmlinux.o: warning: objtool: rcu_irq_exit()+0xd1: call to __ubsan_handle_load_invalid_value() leaves .noinstr.text section
vmlinux.o: warning: objtool: rcu_nmi_enter()+0x184: call to __asan_report_load8_noabort() leaves .noinstr.text section
vmlinux.o: warning: objtool: rcu_irq_enter()+0xd1: call to __ubsan_handle_load_invalid_value() leaves .noinstr.text section
vmlinux.o: warning: objtool: __rcu_is_watching()+0x20: call to __kasan_check_read() leaves .noinstr.text section
vmlinux.o: warning: objtool: debug_locks_off()+0x19: call to __kasan_check_write() leaves .noinstr.text section

2020-06-15 15:09:39

by Peter Zijlstra

[permalink] [raw]
Subject: Re: [PATCH 0/8] x86/entry: KCSAN/KASAN/UBSAN vs noinstr

On Mon, Jun 15, 2020 at 10:57:18AM -0400, Qian Cai wrote:
> On Mon, Jun 15, 2020 at 12:07:34PM +0200, 'Marco Elver' via kasan-dev wrote:
> > On Thu, 4 Jun 2020 at 13:01, Marco Elver <[email protected]> wrote:
> > >
> > > On Thu, 4 Jun 2020 at 12:25, Peter Zijlstra <[email protected]> wrote:
> > > >
> > > > Hai,
> > > >
> > > > Here's the remaining few patches to make KCSAN/KASAN and UBSAN work with noinstr.
> > >
> > > Thanks for assembling the series!
> > >
> > > For where it's missing (1,2,3 and last one):
> > >
> > > Acked-by: Marco Elver <[email protected]>
> >
> > Where was this series supposed to go? I can't find it on any tree yet.
> >
> > How urgent is this? Boot-test seems fine without this, but likely
> > doesn't hit the corner cases. Syzbot will likely find them, and if we
> > noticeably end up breaking various sanitizers without this, I'd
> > consider this urgent.
>
> Today's linux-next had a lot of those with this .config,
>
> https://raw.githubusercontent.com/cailca/linux-mm/master/x86.config
>
> Wondering if this patchset will cure them all?

Many, not all, you also need:

https://lkml.kernel.org/r/[email protected]

and then I think you're down to only 1 kasan thing. But also read this
thread:

https://lkml.kernel.org/r/[email protected]

latest version of that actual patch here:

https://lkml.kernel.org/r/[email protected]