Messages in this thread Patch in this message | | | From | Mel Gorman <> | Subject | [PATCH 1/2] preempt: Provide preempt_*_(no)rt variants | Date | Fri, 23 Jul 2021 11:00:33 +0100 |
| |
From: Thomas Gleixner <tglx@linutronix.de>
RT needs a few preempt_disable/enable points which are not necessary otherwise. Implement variants to avoid #ifdeffery.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Mel Gorman <mgorman@techsingularity.net> --- include/linux/preempt.h | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/include/linux/preempt.h b/include/linux/preempt.h index 9881eac0698f..3434f4618178 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -184,7 +184,11 @@ do { \ preempt_count_dec(); \ } while (0) -#define preempt_enable_no_resched() sched_preempt_enable_no_resched() +#ifdef CONFIG_PREEMPT_RT +# define preempt_enable_no_resched() sched_preempt_enable_no_resched() +#else +# define preempt_enable_no_resched() preempt_enable() +#endif #define preemptible() (preempt_count() == 0 && !irqs_disabled()) @@ -278,6 +282,18 @@ do { \ set_preempt_need_resched(); \ } while (0) +#ifdef CONFIG_PREEMPT_RT +# define preempt_disable_rt() preempt_disable() +# define preempt_enable_rt() preempt_enable() +# define preempt_disable_nort() barrier() +# define preempt_enable_nort() barrier() +#else +# define preempt_disable_rt() barrier() +# define preempt_enable_rt() barrier() +# define preempt_disable_nort() preempt_disable() +# define preempt_enable_nort() preempt_enable() +#endif + #ifdef CONFIG_PREEMPT_NOTIFIERS struct preempt_notifier; -- 2.26.2
| |