Skip to content

Commit 297a13c

Browse files
Libo Chenvijay-suman
authored andcommitted
Feature: Add cmdline param sched_uek=[preempt,wakeidle]
Most of the scheduler tunables have been moved to debugfs, and secureboot lockdown disallows modifications to debugfs. Due to this limitation, sched feature from commit 57da733cf52f cannot be enabled at runtime under SecureBoot. Adding a kernel cmdline parameter to allow this vcpu preemption idle check to be set at the boot time even under SecureBoot. Commit 7332dec and commit 806486c from Mel Gorman alters wakeup behaviors when waking and/or previous CPUs are idle. The changes don't favor networking workloads under light load. Massive RDS regressions have been observed on both AMD and Intel platforms. Also adding a knob to allow users to switch back to previous behaviors at boot time. sched_uek= UEK specific scheduler settings preempt - enable vcpu preemption idle check wakeidle - disable two Mel Gorman's patches Example: sched_uek=preempt,wakeidle Recent refactoring moves cpu preemption idle check to SCHED_FEAT, and changes knob setup and its name. Orabug: 34775543 Signed-off-by: Libo Chen <[email protected]> Signed-off-by: Mark Nicholson <[email protected]>
1 parent 7d3b8ff commit 297a13c

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

kernel/sched/fair.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7368,8 +7368,12 @@ wake_affine_idle(int this_cpu, int prev_cpu, int sync)
73687368
* a cpufreq perspective, it's better to have higher utilisation
73697369
* on one CPU.
73707370
*/
7371-
if (available_idle_cpu(this_cpu) && cpus_share_cache(this_cpu, prev_cpu))
7372-
return available_idle_cpu(prev_cpu) ? prev_cpu : this_cpu;
7371+
if (available_idle_cpu(this_cpu)) {
7372+
if (static_branch_unlikely(&on_exadata))
7373+
return this_cpu;
7374+
else if (cpus_share_cache(this_cpu, prev_cpu))
7375+
return available_idle_cpu(prev_cpu) ? prev_cpu : this_cpu;
7376+
}
73737377

73747378
if (sync && cpu_rq(this_cpu)->nr_running == 1)
73757379
return this_cpu;

0 commit comments

Comments
 (0)