diff options
author | Arjan van de Ven <arjan@linux.intel.com> | 2008-10-17 12:20:26 -0400 |
---|---|---|
committer | Arjan van de Ven <arjan@linux.intel.com> | 2008-10-17 12:20:26 -0400 |
commit | 651dab4264e4ba0e563f5ff56f748127246e9065 (patch) | |
tree | 016630974bdcb00fe529b673f96d389e0fd6dc94 /include/linux/hrtimer.h | |
parent | 40b8606253552109815786e5d4b0de98782d31f5 (diff) | |
parent | 2e532d68a2b3e2aa6b19731501222069735c741c (diff) |
Merge commit 'linus/master' into merge-linus
Conflicts:
arch/x86/kvm/i8254.c
Diffstat (limited to 'include/linux/hrtimer.h')
-rw-r--r-- | include/linux/hrtimer.h | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h index 1e6f731381d9..cb25c1cc2352 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h | |||
@@ -49,14 +49,22 @@ enum hrtimer_restart { | |||
49 | * HRTIMER_CB_IRQSAFE: Callback may run in hardirq context | 49 | * HRTIMER_CB_IRQSAFE: Callback may run in hardirq context |
50 | * HRTIMER_CB_IRQSAFE_NO_RESTART: Callback may run in hardirq context and | 50 | * HRTIMER_CB_IRQSAFE_NO_RESTART: Callback may run in hardirq context and |
51 | * does not restart the timer | 51 | * does not restart the timer |
52 | * HRTIMER_CB_IRQSAFE_NO_SOFTIRQ: Callback must run in hardirq context | 52 | * HRTIMER_CB_IRQSAFE_PERCPU: Callback must run in hardirq context |
53 | * Special mode for tick emultation | 53 | * Special mode for tick emulation and |
54 | * scheduler timer. Such timers are per | ||
55 | * cpu and not allowed to be migrated on | ||
56 | * cpu unplug. | ||
57 | * HRTIMER_CB_IRQSAFE_UNLOCKED: Callback should run in hardirq context | ||
58 | * with timer->base lock unlocked | ||
59 | * used for timers which call wakeup to | ||
60 | * avoid lock order problems with rq->lock | ||
54 | */ | 61 | */ |
55 | enum hrtimer_cb_mode { | 62 | enum hrtimer_cb_mode { |
56 | HRTIMER_CB_SOFTIRQ, | 63 | HRTIMER_CB_SOFTIRQ, |
57 | HRTIMER_CB_IRQSAFE, | 64 | HRTIMER_CB_IRQSAFE, |
58 | HRTIMER_CB_IRQSAFE_NO_RESTART, | 65 | HRTIMER_CB_IRQSAFE_NO_RESTART, |
59 | HRTIMER_CB_IRQSAFE_NO_SOFTIRQ, | 66 | HRTIMER_CB_IRQSAFE_PERCPU, |
67 | HRTIMER_CB_IRQSAFE_UNLOCKED, | ||
60 | }; | 68 | }; |
61 | 69 | ||
62 | /* | 70 | /* |
@@ -69,9 +77,10 @@ enum hrtimer_cb_mode { | |||
69 | * 0x02 callback function running | 77 | * 0x02 callback function running |
70 | * 0x04 callback pending (high resolution mode) | 78 | * 0x04 callback pending (high resolution mode) |
71 | * | 79 | * |
72 | * Special case: | 80 | * Special cases: |
73 | * 0x03 callback function running and enqueued | 81 | * 0x03 callback function running and enqueued |
74 | * (was requeued on another CPU) | 82 | * (was requeued on another CPU) |
83 | * 0x09 timer was migrated on CPU hotunplug | ||
75 | * The "callback function running and enqueued" status is only possible on | 84 | * The "callback function running and enqueued" status is only possible on |
76 | * SMP. It happens for example when a posix timer expired and the callback | 85 | * SMP. It happens for example when a posix timer expired and the callback |
77 | * queued a signal. Between dropping the lock which protects the posix timer | 86 | * queued a signal. Between dropping the lock which protects the posix timer |
@@ -89,6 +98,7 @@ enum hrtimer_cb_mode { | |||
89 | #define HRTIMER_STATE_ENQUEUED 0x01 | 98 | #define HRTIMER_STATE_ENQUEUED 0x01 |
90 | #define HRTIMER_STATE_CALLBACK 0x02 | 99 | #define HRTIMER_STATE_CALLBACK 0x02 |
91 | #define HRTIMER_STATE_PENDING 0x04 | 100 | #define HRTIMER_STATE_PENDING 0x04 |
101 | #define HRTIMER_STATE_MIGRATE 0x08 | ||
92 | 102 | ||
93 | /** | 103 | /** |
94 | * struct hrtimer - the basic hrtimer structure | 104 | * struct hrtimer - the basic hrtimer structure |