eventtimer issue on mips: temporary workaround

Jayachandran C. c.jayachandran at gmail.com
Thu Sep 29 06:41:49 UTC 2011


On Wed, Sep 28, 2011 at 10:06 PM, Adrian Chadd <adrian at freebsd.org> wrote:
> .. so, the patch is totallyw rong.
>
> intr_disable() needs to be moved before critical_enter() or it doesn't
> achieve anything.

I'm not able to figure out why...

> But the race is still there, between intr_enable() and "wait".
> The only way to eliminate this race is to completely eliminate all the
> code in cpu_idle().

the amd implementation seems to be using the STI instruction to enable
interrupts - but I'm not able to see how to avoid this race condition
on platforms which does not have a similar instruction.

> Would someone clued in the implementation of wait please step up and help? :)

What if go back to the earlier version of cpu_idle which does not have
critical_enter() and cpu_idleclock() for now, or does this also have
issues?

I had also seen issues on XLR  which went away when I took out
'ET_FLAGS_ONESHOT' from the mips clock event timer .  That is another
possible workaround.

JC.


More information about the freebsd-mips mailing list