DragonFly-2.3.0.864.gc5b83 master sys/platform/pc32/apic mpapic.c sys/platform/pc32/isa clock.c sys/platform/pc64/isa clock.c sys/platform/vkernel/platform systimer.c sys/sys systimer.h

Matthew Dillon dillon at apollo.backplane.com
Tue May 5 08:50:13 PDT 2009


:
:To be safe, we will have to do an explicit reload :)
:
:>
:>    For an 8254-based wakeup you would probably want to maintain
:>    a global cpu mask of cpu's sitting in sleep that need to be
:>    IPId (instead of IPI'ing all of them), and interlock the updating
:>    of the 8254's one-shot & notification cpumask with the same spinlock
:>    the 8254 code uses now (clock_lock()).
:
:Would it necessary to use clock_lock()?  I think if the mask is only
:set/clear in acpi_idle, atomic operation should be enough.
:
:-- 
:Live Free or Die

    I think you would need to use some sort of spin lock to avoid
    races against the checking & loading of a new 8254 timer value and
    the servicing of a 8254 interrupt at the same time, but I have not
    looked at the code closely.

					-Matt
					Matthew Dillon 
					<dillon at backplane.com>





More information about the Commits mailing list