On Tue, Mar 30, 2021 at 8:57 AM Marco Elver <[email protected]> wrote:
>
> On systems with KPTI enabled, we can currently observe the following warning:
>
>   BUG: using smp_processor_id() in preemptible
>   caller is invalidate_user_asid+0x13/0x50
>   CPU: 6 PID: 1075 Comm: dmesg Not tainted 5.12.0-rc4-gda4a2b1a5479-kfence_1+ 
> #1
>   Hardware name: Hewlett-Packard HP Pro 3500 Series/2ABF, BIOS 8.11 10/24/2012
>   Call Trace:
>    dump_stack+0x7f/0xad
>    check_preemption_disabled+0xc8/0xd0
>    invalidate_user_asid+0x13/0x50
>    flush_tlb_one_kernel+0x5/0x20
>    kfence_protect+0x56/0x80
>    ...
>
> While it normally makes sense to require preemption to be off, so that
> the expected CPU's TLB is flushed and not another, in our case it really
> is best-effort (see comments in kfence_protect_page()).
>
> Avoid the warning by disabling preemption around flush_tlb_one_kernel().
>
> Link: https://lore.kernel.org/lkml/[email protected]/
> Reported-by: Tomi Sarvela <[email protected]>
> Signed-off-by: Marco Elver <[email protected]>
Acked-by: Alexander Potapenko <[email protected]>

Reply via email to