Messages in this thread | | | Subject | Re: [PATCH] sched/x86: Save [ER]FLAGS on context switch | From | Julien Thierry <> | Date | Tue, 19 Feb 2019 08:53:22 +0000 |
| |
On 19/02/2019 00:24, Linus Torvalds wrote: > On Mon, Feb 18, 2019 at 2:31 PM H. Peter Anvin <hpa@zytor.com> wrote: >> >> The question is what "fix it" means. I'm really concerned about AC escapes, >> and everyone else should be, too. > > I do think that it might be the right thing to do to add some kind of > WARN_ON_ONCE() for AC being set in various can-reschedule situations. > > We'd just have to abstract it sanely. I'm sure arm64 has the exact > same issue with PAN - maybe it saves properly, but the same "we > wouldn't want to go through the scheduler with PAN clear". >
As of right now, we have the same issue on arm64 as on x86. We don't currently save the PAN bit on task switch, but I have a patch to do that.
Unless we decide to go down the route of warning against uses of schedule() inside.
As for the abstraction, I had this patch[1] that added another primitive for the user_access API (although this might not be suited for x86 if you also want to check DF). However, an issue that appears is where to perform the check to cover enough ground.
Checking inside the schedule() code you only cover cases where things have already gone wrong, and not the use of functions that are unsafe to call inside a user_access region.
[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2019-January/625385.html
Cheers,
-- Julien Thierry
| |