[PATCH] [POWERPC] Rework EXC_LEVEL_EXCEPTION_PROLOG code

Kumar Gala galak at kernel.crashing.org
Thu May 1 23:22:08 EST 2008


>> So we have 4 actual exceptions:
>> * CriticalInput (some external device signaled this.  There are two
>> concepts of critical.  One is error the other is high priority)
>> However this would have the same caveats as any ExternalInput  
>> handler.
>
> No, it's worse. It can interrupt code that normally has
> local_irq_disabled() and thus doesn't expect to be interrupted. That
> means that everything becomes unsafe including locks etc....

Fair.  Should local_irq_disable() clear MSR_SE & MSR_BE on classic  
parts?

> Note that driver that want to make active use of that probably want  
> some
> explicit local_crit_irq_disable/enable functions to be able to  
> implement
> some sort of synchronization.

Or we could just have local_irq_disable -- clear MSR_EE and MSR_CE

>> * Watchdog - pretty severe if this fires.
>>
>> * Debug - user space debug is pretty straight forward.  However we
>> have features like kprobes that require kernel level support.
>
> Which means we have to be extra careful, in fact, I consider it a  
> design
> bug of BookE to have made debug be a critical interrupt...

I consider the whole BookE debug arch a design bug :)

- k



More information about the Linuxppc-dev mailing list