how are callouts handled in cpu_idle() ?
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.
> 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.
More information about the freebsd-hackers