Messages in this thread Patch in this message | | | From | Zqiang <> | Subject | [PATCH] sched/fair: Make hrtimer callback execute in the hard interrupt context | Date | Mon, 6 Mar 2023 15:09:38 +0800 |
| |
The scheduler related hrtimers callback will be executed in softirqd context for PREEMPT_RT enabled kernel, this commit therefore mark hrtimers as harded even on PREEMPT_RT enabled kernels, there is no functional change.
Signed-off-by: Zqiang <qiang1.zhang@intel.com> --- kernel/sched/fair.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index c36aa54ae071..98c48d144089 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -5610,7 +5610,7 @@ static void start_cfs_slack_bandwidth(struct cfs_bandwidth *cfs_b) hrtimer_start(&cfs_b->slack_timer, ns_to_ktime(cfs_bandwidth_slack_period), - HRTIMER_MODE_REL); + HRTIMER_MODE_REL_HARD); } /* we know any runtime found here is valid as update_curr() precedes return */ @@ -5813,9 +5813,9 @@ void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) cfs_b->burst = 0; INIT_LIST_HEAD(&cfs_b->throttled_cfs_rq); - hrtimer_init(&cfs_b->period_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED); + hrtimer_init(&cfs_b->period_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED_HARD); cfs_b->period_timer.function = sched_cfs_period_timer; - hrtimer_init(&cfs_b->slack_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + hrtimer_init(&cfs_b->slack_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD); cfs_b->slack_timer.function = sched_cfs_slack_timer; cfs_b->slack_started = false; } @@ -5835,7 +5835,7 @@ void start_cfs_bandwidth(struct cfs_bandwidth *cfs_b) cfs_b->period_active = 1; hrtimer_forward_now(&cfs_b->period_timer, cfs_b->period); - hrtimer_start_expires(&cfs_b->period_timer, HRTIMER_MODE_ABS_PINNED); + hrtimer_start_expires(&cfs_b->period_timer, HRTIMER_MODE_ABS_PINNED_HARD); } static void destroy_cfs_bandwidth(struct cfs_bandwidth *cfs_b) -- 2.25.1
| |