Re: [PATCH mm] kfence, x86: fix preemptible warning on KPTI-enabled systems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Mar 30, 2021 at 8:57 AM Marco Elver <elver@xxxxxxxxxx> 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/YGIDBAboELGgMgXy@xxxxxxxxxxxxxxxx/
> Reported-by: Tomi Sarvela <tomi.p.sarvela@xxxxxxxxx>
> Signed-off-by: Marco Elver <elver@xxxxxxxxxx>
Acked-by: Alexander Potapenko <glider@xxxxxxxxxx>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux