how are callouts handled in cpu_idle() ?

Adrian Chadd adrian at freebsd.org
Sat Oct 1 09:38:20 UTC 2011


On 1 October 2011 17:25, Alexander Motin <mav at freebsd.org> wrote:

> Use of critical section in cpu_idle() from the beginning was based on
> number of assumptions about filter interrupt handler's limitations.

[snip]

> So, if you really need to use callout() in interrupt filter, we could
> disable interrupts before calling cpu_idleclock(), as you have told. But
> that is only a partial solution and you should be ready for the second
> half of the problems. Depending on your needs I am not sure it will
> satisfy you.

I'm not using callouts from a swi in ath(4), at least not yet. I
haven't yet gone over all the drivers in sys/dev/ to see if any of
them are actually doing this.
I was just making an observation.

I may have to go digging into how Linux manages to do this without
having the occasional interrupt latency issue that FreeBSD/MIPS is.
For all I know, Linux has the same issue on the mips32 platforms that
I'm currently testing on.



Adrian


More information about the freebsd-hackers mailing list