Dynamic ticks in FreeBSD

Andriy Gapon avg at icyb.net.ua
Wed Mar 31 14:14:13 UTC 2010


on 31/03/2010 15:05 Tsuyoshi Ozawa said the following:
> Thank you for replying !
> 
> The patch for FreeBSD 8.0 original source is here :
> http://gist.github.com/350230
> If this patch cause collision, I'm going to throw patch between
> FreeBSD 8.0 HEAD and my chage. (sorry for this, I cannot connect to
> CVS repository now for network reason. It take a few days to connect
> CVS repository.)

Thank you for this interesting and useful work!
I looked through the code and here is my understanding of how it works, it
coincides with how you described it, but I'd like to state it in my own words :-)

1. Instead of firing clock (LAPIC timer) interrupt regularly with a frequency
derived from HZ, the interrupt is scheduled to fire (in one-shot mode) at the time
of the soonest scheduled callout.
2. The code also makes sure to run hard/stat/prof-clocks if time since last
interrupt is greater than their respective periods in !dyntick mode.

Thus, it appears that in dyntick mode hard/stat/prof-clocks would run irregularly.
I couldn't find any code that makes sure that the rest of the system handles this
properly.  Perhaps I missed it, or is it still in progress/plans?

Also, I am not sure if the code handles the case when a new 'soonest' callout is
scheduled after we already decided when to fire the next LAPIC timer interrupt.

Thank you very much again!
Please keep up the good work :)

-- 
Andriy Gapon


More information about the freebsd-hackers mailing list