On Wed, 2009-11-18 at 17:30 +0100, Jan Kiszka wrote:
> Hi Philippe,
> 
> on x86, trace_hardirqs_on in safe_halt feels unhappy about the fact that
> it is called with neither real irqs disable nor the root domain stalled.
> Call path is cpu_idle -> default_idle -> safe_halt. We loose the
> stalling of the root domain in cpu_idle via ipipe_suspend_domain.
> 

Reinstating the stall bit upon return from suspension is the way to go.

> That raises the question how ipipe_suspend_domain is supposed to deal
> with the pipeline state of the calling domain. Currently it clears the
> stall unconditionally, which is obviously not correct for the idle path.
> My feeling is that it should not alter the state, rather restore it on
> exit. But this is an exported interface (though a widely unused today, I
> guess), and I don't claim to oversee all corner cases.
> 

At the core of the pipeline logic, there is the assumption that a domain
may never, ever suspend in stalled state, so that no interrupt lingers
unexpectedly in the log while it enters sleep, and this is what
suspend_domain() enforces before switching to the next domain.

> Jan
> 


-- 
Philippe.



_______________________________________________
Adeos-main mailing list
[email protected]
https://mail.gna.org/listinfo/adeos-main

Reply via email to