[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAG_fn=W7WZBCSozOuMWzr52Ri_htrmkTOkcF5nvMs9icH=StoA@mail.gmail.com>
Date: Thu, 1 Apr 2021 11:11:19 +0200
From: Alexander Potapenko <glider@...gle.com>
To: Marco Elver <elver@...gle.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Dmitriy Vyukov <dvyukov@...gle.com>,
Andrey Konovalov <andreyknvl@...gle.com>,
Jann Horn <jannh@...gle.com>,
LKML <linux-kernel@...r.kernel.org>,
Linux Memory Management List <linux-mm@...ck.org>,
kasan-dev <kasan-dev@...glegroups.com>,
"the arch/x86 maintainers" <x86@...nel.org>,
Tomi Sarvela <tomi.p.sarvela@...el.com>
Subject: Re: [PATCH mm] kfence, x86: fix preemptible warning on KPTI-enabled systems
On Tue, Mar 30, 2021 at 8:57 AM Marco Elver <elver@...gle.com> 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@elver.google.com/
> Reported-by: Tomi Sarvela <tomi.p.sarvela@...el.com>
> Signed-off-by: Marco Elver <elver@...gle.com>
Acked-by: Alexander Potapenko <glider@...gle.com>
Powered by blists - more mailing lists