Bill Holler wrote: > Hi Tesla Dev, > > Where will callouts live in the tickless world? > Will callouts become a "one shot" cyclic? > > cyclic_fire() currently reschedules each cyclic; it does not > have "one shot" support. > > A prototype moves the next cyclic from one cpu to a > different cpu to trigger cbe_fire() with a cross call. > This is an alternative to using the HPET interrupt to trigger > cbe_fire() on a deep C-state idle cpu when the local APIC > is not working. A very small amount of code had to be > added in cyclic_fire() to remove the "one time" cyclic from > the remote cpu's cyclic heap after cyclic_retire() because > there is no concept of a one-shot cyclic. > > Bill > > > > > > _______________________________________________ > tesla-dev mailing list > tesla-dev at opensolaris.org > http://mail.opensolaris.org/mailman/listinfo/tesla-dev > I am currently working on the Tickless Callout stuff. Infact, it will be code complete in a week's time. I will provide your team with the latest design doc and webrev if you are interested.
In the new design, callouts are maintained in a heap. There is one heap corresponding to each CPU. All timeouts issued from a CPU get queued in the CPUs heap. There is one cyclic per CPU for realtime callouts and one for normal callouts. The cyclic works off of the heap and picks the earliest one and programs itself. A new cyclic API function cyclic_reprogram() has been defined to allow reprogramming of a cyclic. The callout cyclic handlers use this function to reprogram their next expire. My changes also support one-shot timers (in effect). If the interval for a cyclic is specified as infinity (INT64_MAX), then the cyclic subsystem recognizes that and programs the cyclic to infinity. So, the cyclic drops to the bottom of the cyclic heap and just stays there. Of course, this is not a perfect one-shot. But removing one-shots from the cyclic heap and reinserting them is just extra overhead and does not seem warranted at this time. If you have any questions and/or would like more information, let me know. BTW, I am working with Eric Saxe and Sasha on this one. They are reviewers for the callout stuff. Madhavan
