Re: kerneloops.org: 2.6.26-rc possible regression in ext3

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Arjan van de Ven <arjan@...>
Cc: Linux Kernel Mailing List <linux-kernel@...>, <linux-ext4@...>, Andrew Morton <akpm@...>, Al Viro <viro@...>
Date: Thursday, June 19, 2008 - 2:14 am

On Wed, 18 Jun 2008, Linus Torvalds wrote:

The oops code is odd:

  27:	8d 4c 18 fe          	lea    0xfffffffe(%eax,%ebx,1),%ecx
  2b:*	8b 19                	mov    (%ecx),%ebx     <-- trapping instruction
  2d:	83 e9 08             	sub    $0x8,%ecx
  30:	89 d8                	mov    %ebx,%eax
  32:	66 d1 e8             	shr    %ax
  35:	0f b7 c0             	movzwl %ax,%eax

and that "lea" is doing an address computation of "eax+2*ebx-2". Which 
does *not* look like an address to a 32-bit entity, but to a 16-bit one. 
Yeah, it's not conclusive, but it is suggestive.

And the 16-bit "shr+movzwl" further strengthens the case that it is 
actually working on a 16-bit entity. The trapping instruction _should_ 
possibly have been a "movzwl (%ecx),%ebx" to begin with.

But it did a 32-bit load, and in this case it looks as if the 16-bit load 
would have been correct! The value of ECX in this example was

	ECX: dc384ffe

ie it was indeed a two-byte aligned thing at the end of the page, and if 
the load had been a 16-bit load (like the data seems to be), it would 
never have oopsed! The page fault seems to be due to DEBUG_PAGEALLOC and 
the next page being unmapped because it's not allocated.

I only looked closer at one particular oops (25906, in case anybody 
cares), but at least judging from that particular one I would indeed 
suspect a compiler bug.

Of course, the main reason I say that is that none of the ext3 or VFS 
changes look even _remotely_ relevant to any of this. They really don't 
look like they could possibly matter for "do_split()" unless there is 
something really odd going on.

			Linus
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
kerneloops.org: 2.6.26-rc possible regression in ext3, Arjan van de Ven, (Thu Jun 19, 1:34 am)
Re: kerneloops.org: 2.6.26-rc possible regression in ext3, Linus Torvalds, (Thu Jun 19, 2:01 am)
Re: kerneloops.org: 2.6.26-rc possible regression in ext3, Bill Nottingham, (Fri Jun 20, 11:34 am)
Re: kerneloops.org: 2.6.26-rc possible regression in ext3, Linus Torvalds, (Thu Jun 19, 2:14 am)
Re: kerneloops.org: 2.6.26-rc possible regression in ext3, Linus Torvalds, (Thu Jun 19, 2:40 am)
Re: kerneloops.org: 2.6.26-rc possible regression in ext3, Arjan van de Ven, (Thu Jun 19, 2:12 am)
Re: kerneloops.org: 2.6.26-rc possible regression in ext3, Arjan van de Ven, (Thu Jun 19, 2:09 am)