On Tue, 30 Sep 2008, Lawrence Stewart wrote:
I don 't think this is all that hard - once we got the cycle counters
synchronized
here at SiCortex, the rest of Linux behaves fairly well.
The first trick is to get all the timer interrupts to happen at the same
time. On
our MIPS cores, this is easy by using an interrupt generated by a comparator
against the cycle counter (architectural feature). I would hope there is
something
similar in x86.
Once the timer interrupts are synchronized, pretty much all background tasks
become
syncronized. This even works for many device drivers that use the device
interrupt to
schedule a tasklet or top half.
The next step is gang scheduling of kernel threads, so that all the, say,
kswapd's system wide
chose the same timer tick to wake up.
The next step is gang scheduling of user threads, so that all the, say, cron
daemons
wake up on the same timer tick.
Our experience is that just aligning the timer interrupts helps a lot.
"At the same time" on what granularity? Timer is 1 KHz, right? So do
the timer interrupts have to be aligned to within a single clock tick, a
nsec, a usec? A usec is still quite small compared to a msec.
rgb
--
Robert G. Brown Phone(cell): 1-919-280-8443
Duke University Physics Dept, Box 90305
Durham, N.C. 27708-0305
Web: http://www.phy.duke.edu/~rgb
Book of Lilith Website: http://www.phy.duke.edu/~rgb/Lilith/Lilith.php
Lulu Bookstore: http://stores.lulu.com/store.php?fAcctID=877977
_______________________________________________
Beowulf mailing list, Beowulf@beowulf.org
To change your subscription (digest mode or unsubscribe) visit
http://www.beowulf.org/mailman/listinfo/beowulf