Re: frequent lockups in 3.18rc4

From: Linus Torvalds
Date: Wed Dec 17 2014 - 14:51:51 EST


On Wed, Dec 17, 2014 at 10:57 AM, Dave Jones <davej@xxxxxxxxxx> wrote:
> On Wed, Dec 17, 2014 at 01:22:41PM -0500, Dave Jones wrote:
>
> > I'm going to try your two patches on top of .18, with the same kernel
> > config, and see where that takes us.
> > Hopefully to happier places.
>
> Not so much. Died very quickly.

Damn, damn, damn. That's because of a stupid typo on the patches. We
have these very similar variables ("flags" and "fault") that have very
similar fault information, but they are completely different.

The "fault & FAULT_FLAG_USER" test is wrong, it should test "flags &
FAULT_FLAG_USER". Patch attached.

The half-way good news is that this certainly confirms that trinity is
triggering the "page fault with fatal signal pending" special case.

Linus
arch/x86/mm/fault.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index b74a7e130b03..38dcec403b46 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -1247,7 +1247,7 @@ good_area:
}

/* User mode? Just return to handle the fatal exception */
- if (fault & FAULT_FLAG_USER)
+ if (flags & FAULT_FLAG_USER)
return;

/* Not returning to user mode? Handle exceptions or die: */