Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull scheduler fixes from Thomas Gleixner:
"Three fixes for scheduler and kthread code:

- allow calling kthread_park() on an already parked thread

- restore the sched_pi_setprio() tracepoint behaviour

- clarify the unclear string for the scheduling domain debug output"

* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
sched, tracing: Fix trace_sched_pi_setprio() for deboosting
kthread: Allow kthread_park() on a parked kthread
sched/topology: Clarify root domain(s) debug string

+6 -6
+3 -1
include/trace/events/sched.h
··· 435 435 memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN); 436 436 __entry->pid = tsk->pid; 437 437 __entry->oldprio = tsk->prio; 438 - __entry->newprio = pi_task ? pi_task->prio : tsk->prio; 438 + __entry->newprio = pi_task ? 439 + min(tsk->normal_prio, pi_task->prio) : 440 + tsk->normal_prio; 439 441 /* XXX SCHED_DEADLINE bits missing */ 440 442 ), 441 443
+2 -4
kernel/kthread.c
··· 193 193 194 194 void kthread_park_complete(struct task_struct *k) 195 195 { 196 - complete(&to_kthread(k)->parked); 196 + complete_all(&to_kthread(k)->parked); 197 197 } 198 198 199 199 static int kthread(void *_create) ··· 459 459 if (test_bit(KTHREAD_IS_PER_CPU, &kthread->flags)) 460 460 __kthread_bind(k, kthread->cpu, TASK_PARKED); 461 461 462 + reinit_completion(&kthread->parked); 462 463 clear_bit(KTHREAD_SHOULD_PARK, &kthread->flags); 463 464 wake_up_state(k, TASK_PARKED); 464 465 } ··· 483 482 484 483 if (WARN_ON(k->flags & PF_EXITING)) 485 484 return -ENOSYS; 486 - 487 - if (WARN_ON_ONCE(test_bit(KTHREAD_SHOULD_PARK, &kthread->flags))) 488 - return -EBUSY; 489 485 490 486 set_bit(KTHREAD_SHOULD_PARK, &kthread->flags); 491 487 if (k != current) {
+1 -1
kernel/sched/topology.c
··· 1708 1708 rcu_read_unlock(); 1709 1709 1710 1710 if (rq && sched_debug_enabled) { 1711 - pr_info("span: %*pbl (max cpu_capacity = %lu)\n", 1711 + pr_info("root domain span: %*pbl (max cpu_capacity = %lu)\n", 1712 1712 cpumask_pr_args(cpu_map), rq->rd->max_cpu_capacity); 1713 1713 } 1714 1714