Exception in kernel mode

Kumar Gala galak at kernel.crashing.org
Fri Mar 16 06:28:11 EST 2007


On Mar 15, 2007, at 1:55 PM, Charles Krinke wrote:

>
>> mtspr SPRN_SPRG0, r10
>> mtspr SPRN_SPRG1, r11
>
>> Which is, I believe, moving r10 to SPRG0 and r11 to SPRG1.
>
>> So, how do we know that r10 and r11 are always valid in an interrupt
>> context? Are we setting aside r10 and r11 somewhere else in
>
>     That doesn't matter to kernel at all -- they are just *saved* in
> SPRG regs
> to avoid being trashed by the exception handler.
>
> WBR, Sergei
>
> Well, unfortunately, now I am more confused.
>
> The original Oops was at an NIP of 00000900, which I think means it
> faulted on the first mtspr from r10. I suppose one could argue that
> pipeline issues might make it fault on the second one and appear to be
> the first.
>
> But, maybe I am confusing myself here. Would I be correct in assuming
> that some further instruction in the ISR at 0x900 is the culprit?
>
> Could there possibly be some user versus supervisor mode thing  
> going on?
>
> My key assumption is that the timer_tick (aka Decrementer) has worked
> for many hundreds of thousands of interrupts and only when running  
> some
> particular user application, like tar is there a side effect from  
> either
> a mode or some register value, race condition, or other.

Can you post the oops that you are seeing, what you need to find out  
is what instruction image that is causing the illegal instruction  
exception.  Once you have that it will be easier to figure out what's  
going on.

- k



More information about the Linuxppc-embedded mailing list