PPC upstream kernel ignored DABR bug

Arnd Bergmann arnd at arndb.de
Wed Nov 28 09:35:36 EST 2007


On Monday 26 November 2007, Jan Kratochvil wrote:
> Hi,
> 
> this testcase:
>         http://people.redhat.com/jkratoch/dabr-lost.c
> 
> reproduces a PPC DABR kernel bug.  The variable `variable' should not get
> modified as the thread modifying it should be caught by its DABR:
> 
> $ ./dabr-lost
> TID 30914: DABR 0x10012a77 NIP 0x80f6ebb318
> TID 30915: DABR 0x10012a77 NIP 0x80f6ebb318
> TID 30916: DABR 0x10012a77 NIP 0x80f6ebb318
> TID 30914: hitting the variable
> TID 30915: hitting the variable
> TID 30916: hitting the variable
> variable found = 30916, caught TID = 30914
> TID 30916: DABR 0x10012a77
> Variable got modified by a thread which has DABR still set!
> 

This sounds like a bug recently reported by Uli Weigand. BenH
said he'd take a look, but it probably fell under the table.
The problem found by Uli is that on certain processors (Cell/B.E.
in his case), the DABRX register needs to be set in order for
the DABR to take effect.

	Arnd <><



More information about the Linuxppc-dev mailing list