diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2019-07-26 20:30:51 +0200 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2019-08-01 17:43:16 +0200 |
commit | ae6683d815895c2be1e60e1942630fa99488055b (patch) | |
tree | 9f0d009457f62b4b2fa1ddfffd8b87d407c4414b /kernel/time/hrtimer.c | |
parent | hrtimer/treewide: Use hrtimer_sleeper_start_expires() (diff) | |
download | linux-dev-ae6683d815895c2be1e60e1942630fa99488055b.tar.xz linux-dev-ae6683d815895c2be1e60e1942630fa99488055b.zip |
hrtimer: Introduce HARD expiry mode
On PREEMPT_RT not all hrtimers can be expired in hard interrupt context
even if that is perfectly fine on a PREEMPT_RT=n kernel, e.g. because they
take regular spinlocks. Also for latency reasons PREEMPT_RT tries to defer
most hrtimers' expiry into soft interrupt context.
But there are hrtimers which must be expired in hard interrupt context even
when PREEMPT_RT is enabled:
- hrtimers which must expiry in hard interrupt context, e.g. scheduler,
perf, watchdog related hrtimers
- latency critical hrtimers, e.g. nanosleep, ..., kvm lapic timer
Add a new mode flag HRTIMER_MODE_HARD which allows to mark these timers so
PREEMPT_RT will not move them into softirq expiry mode.
[ tglx: Split out of a larger combo patch. Added changelog ]
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20190726185752.981398465@linutronix.de
Diffstat (limited to 'kernel/time/hrtimer.c')
0 files changed, 0 insertions, 0 deletions