• Benjamin Herrenschmidt's avatar
    powerpc: Add irqtrace support for 32-bit powerpc · 5d38902c
    Benjamin Herrenschmidt authored
    Based on initial work from: Dale Farnsworth <dale@farnsworth.org>
    
    Add the low level irq tracing hooks for 32-bit powerpc needed
    to enable full lockdep functionality.
    
    The approach taken to deal with the code in entry_32.S is that
    we don't trace all the transitions of MSR:EE when we just turn
    it off to peek at TI_FLAGS without races. Only when we are
    calling into C code or returning from exceptions with a state
    that have changed from what lockdep thinks.
    
    There's a little bugger though: If we take an exception that
    keeps interrupts enabled (such as an alignment exception) while
    interrupts are enabled, we will call trace_hardirqs_on() on the
    way back spurriously. Not a big deal, but to get rid of it would
    require remembering in pt_regs that the exception was one of the
    type that kept interrupts enabled which we don't know at this
    stage. (Well, we could test all cases for regs->trap but that
    sucks too much).
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    Tested-by: default avatarKumar Gala <galak@kernel.crashing.org>
    5d38902c
entry_32.S 33 KB