hc
2023-11-06 e3e12f52b214121840b44c91de5b3e5af5d3eb84
kernel/kernel/sched/deadline.c
....@@ -287,7 +287,7 @@
287287
288288 dl_se->dl_non_contending = 1;
289289 get_task_struct(p);
290
- hrtimer_start(timer, ns_to_ktime(zerolag_time), HRTIMER_MODE_REL);
290
+ hrtimer_start(timer, ns_to_ktime(zerolag_time), HRTIMER_MODE_REL_HARD);
291291 }
292292
293293 static void task_contending(struct sched_dl_entity *dl_se, int flags)
....@@ -539,7 +539,7 @@
539539 * If we cannot preempt any rq, fall back to pick any
540540 * online CPU:
541541 */
542
- cpu = cpumask_any_and(cpu_active_mask, &p->cpus_allowed);
542
+ cpu = cpumask_any_and(cpu_active_mask, p->cpus_ptr);
543543 if (cpu >= nr_cpu_ids) {
544544 /*
545545 * Failed to find any suitable CPU.
....@@ -1086,7 +1086,7 @@
10861086 {
10871087 struct hrtimer *timer = &dl_se->dl_timer;
10881088
1089
- hrtimer_init(timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
1089
+ hrtimer_init(timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
10901090 timer->function = dl_task_timer;
10911091 }
10921092
....@@ -1325,7 +1325,7 @@
13251325 {
13261326 struct hrtimer *timer = &dl_se->inactive_timer;
13271327
1328
- hrtimer_init(timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
1328
+ hrtimer_init(timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
13291329 timer->function = inactive_task_timer;
13301330 }
13311331
....@@ -1858,7 +1858,7 @@
18581858 static int pick_dl_task(struct rq *rq, struct task_struct *p, int cpu)
18591859 {
18601860 if (!task_running(rq, p) &&
1861
- cpumask_test_cpu(cpu, &p->cpus_allowed))
1861
+ cpumask_test_cpu(cpu, p->cpus_ptr))
18621862 return 1;
18631863 return 0;
18641864 }
....@@ -2008,7 +2008,7 @@
20082008 /* Retry if something changed. */
20092009 if (double_lock_balance(rq, later_rq)) {
20102010 if (unlikely(task_rq(task) != rq ||
2011
- !cpumask_test_cpu(later_rq->cpu, &task->cpus_allowed) ||
2011
+ !cpumask_test_cpu(later_rq->cpu, task->cpus_ptr) ||
20122012 task_running(rq, task) ||
20132013 !dl_task(task) ||
20142014 !task_on_rq_queued(task))) {