Commit 1c5183aa authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'sched-urgent-2025-03-07' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull misc scheduler fixes from Ingo Molnar:

 - Fix deadline scheduler sysctl parameter setting bug

 - Fix RT scheduler sysctl parameter setting bug

 - Fix possible memory corruption in child_cfs_rq_on_list()

* tag 'sched-urgent-2025-03-07' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  sched/rt: Update limit of sched_rt sysctl in documentation
  sched/deadline: Use online cpus for validating runtime
  sched/fair: Fix potential memory corruption in child_cfs_rq_on_list
parents ab60bd57 b1536481
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -102,6 +102,9 @@ The system wide settings are configured under the /proc virtual file system:
  * sched_rt_period_us takes values from 1 to INT_MAX.
  * sched_rt_runtime_us takes values from -1 to sched_rt_period_us.
  * A run time of -1 specifies runtime == period, ie. no limit.
  * sched_rt_runtime_us/sched_rt_period_us > 0.05 inorder to preserve
    bandwidth for fair dl_server. For accurate value check average of
    runtime/period in /sys/kernel/debug/sched/fair_server/cpuX/


2.2 Default behaviour
+1 −1
Original line number Diff line number Diff line
@@ -3189,7 +3189,7 @@ int sched_dl_global_validate(void)
	 * value smaller than the currently allocated bandwidth in
	 * any of the root_domains.
	 */
	for_each_possible_cpu(cpu) {
	for_each_online_cpu(cpu) {
		rcu_read_lock_sched();

		if (dl_bw_visited(cpu, gen))
+4 −2
Original line number Diff line number Diff line
@@ -4045,15 +4045,17 @@ static inline bool child_cfs_rq_on_list(struct cfs_rq *cfs_rq)
{
	struct cfs_rq *prev_cfs_rq;
	struct list_head *prev;
	struct rq *rq = rq_of(cfs_rq);

	if (cfs_rq->on_list) {
		prev = cfs_rq->leaf_cfs_rq_list.prev;
	} else {
		struct rq *rq = rq_of(cfs_rq);

		prev = rq->tmp_alone_branch;
	}

	if (prev == &rq->leaf_cfs_rq_list)
		return false;

	prev_cfs_rq = container_of(prev, struct cfs_rq, leaf_cfs_rq_list);

	return (prev_cfs_rq->tg->parent == cfs_rq->tg);