Re: [tip:perf/core] x86, mm, perf: Allow recursive faults from interrupts

From: Waiman Long
Date: Fri Jan 17 2014 - 15:08:38 EST


On 01/17/2014 02:17 PM, Andy Lutomirski wrote:
On Fri, Jan 17, 2014 at 10:10 AM, Waiman Long<waiman.long@xxxxxx> wrote:
On 01/16/2014 08:39 AM, tip-bot for Peter Zijlstra wrote:
Commit-ID: c026b3591e4f2a4993df773183704bb31634e0bd
Gitweb:
http://git.kernel.org/tip/c026b3591e4f2a4993df773183704bb31634e0bd
Author: Peter Zijlstra<peterz@xxxxxxxxxxxxx>
AuthorDate: Fri, 10 Jan 2014 21:06:03 +0100
Committer: Ingo Molnar<mingo@xxxxxxxxxx>
CommitDate: Thu, 16 Jan 2014 09:19:48 +0100

x86, mm, perf: Allow recursive faults from interrupts

Waiman managed to trigger a PMI while in a emulate_vsyscall() fault,
the PMI in turn managed to trigger a fault while obtaining a stack
trace. This triggered the sig_on_uaccess_error recursive fault logic
and killed the process dead.

Fix this by explicitly excluding interrupts from the recursive fault
logic.

Reported-and-Tested-by: Waiman Long<waiman.long@xxxxxx>
Fixes: e00b12e64be9 ("perf/x86: Further optimize copy_from_user_nmi()")
Cc: Aswin Chandramouleeswaran<aswin@xxxxxx>
Cc: Scott J Norton<scott.norton@xxxxxx>
Cc: Linus Torvalds<torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Andy Lutomirski<luto@xxxxxxxxxxxxxx>
Cc: Arnaldo Carvalho de Melo<acme@xxxxxxxxxxxxxxxxxx>
Cc: Andrew Morton<akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Peter Zijlstra<peterz@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/20140110200603.GJ7572@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar<mingo@xxxxxxxxxx>
---
arch/x86/mm/fault.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)


Will that be picked up by Linus as it is a 3.13 regression?
Does anyone actually know why this regressed recently? The buggy code
has been there for quite a while.

--Andy

Yes, the bug was there for a while, but a recent change by Peter (see the "Fixes:" line above) made it much easier to hit it.

-Longman
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/