Kernel alarms can run in IRQ or RKM context
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 3 Jun 2014 22:35:02 +0000 (15:35 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 3 Jun 2014 23:31:51 +0000 (16:31 -0700)
commitaee81f4b2fd867120f1a60c5f56cf449869d3121
tree56568edbec12e68a82ff84a958864f5b3345e14a
parent88e15c8830f5ccee80ae8600eba0844d502b4ae4
Kernel alarms can run in IRQ or RKM context

Some alarms want to run in IRQ context, and some want to run as RKMs.  We can
only have one tchain, which manages the timer IRQ, and the tchain is the tool
to manage that, regardless of IRQ vs. RKM context.

Alarm handlers that run in IRQ context will have access to the HW TF.

Check out fbee73f5ee for when we switched it from IRQ -> RKM in the first
place.  There are a few alarms that want to be RKMs, due to locking issues.
You can't send_event() from IRQ context, for instance...
kern/include/alarm.h
kern/src/alarm.c
kern/src/time.c