sched/fair: Make scheduling period more efficient

Finish scheduling within 10 Ms (every tick for 100 Hz timers).
Additionally, use a 1.25 Ms minimum granularity to set nr_latency to 8.

Therefore, <= 8 tasks running should finish in 10 Ms. We should gain
better battery and throughput by using this configuration.

Signed-off-by: Tyler Nijmeh <tylernij@gmail.com>

Signed-off-by: ThunderStorms21th nalas <pinakastorm@gmail.com>
This commit is contained in:
rifek4 2020-10-09 11:14:02 +02:00 committed by xxmustafacooTR
parent 735f9c7ebc
commit 40d275b26e
No known key found for this signature in database
GPG key ID: 520B6FE385CBF5C9

View file

@ -53,8 +53,8 @@
* (to see the precise effective timeslice length of your workload, * (to see the precise effective timeslice length of your workload,
* run vmstat and monitor the context-switches (cs) field) * run vmstat and monitor the context-switches (cs) field)
*/ */
unsigned int sysctl_sched_latency = 5000000ULL; unsigned int sysctl_sched_latency = 10000000ULL;
unsigned int normalized_sysctl_sched_latency = 5000000ULL; unsigned int normalized_sysctl_sched_latency = 10000000ULL;
unsigned int sysctl_sched_sync_hint_enable = 1; unsigned int sysctl_sched_sync_hint_enable = 1;
unsigned int sysctl_sched_initial_task_util = 0; unsigned int sysctl_sched_initial_task_util = 0;
@ -75,15 +75,14 @@ __read_mostly unsigned int sysctl_sched_walt_cpu_high_irqload =
* SCHED_TUNABLESCALING_LOG - scaled logarithmical, *1+ilog(ncpus) * SCHED_TUNABLESCALING_LOG - scaled logarithmical, *1+ilog(ncpus)
* SCHED_TUNABLESCALING_LINEAR - scaled linear, *ncpus * SCHED_TUNABLESCALING_LINEAR - scaled linear, *ncpus
*/ */
enum sched_tunable_scaling sysctl_sched_tunable_scaling enum sched_tunable_scaling sysctl_sched_tunable_scaling = SCHED_TUNABLESCALING_NONE;
= SCHED_TUNABLESCALING_LOG;
/* /*
* Minimal preemption granularity for CPU-bound tasks: * Minimal preemption granularity for CPU-bound tasks:
* (default: 0.75 msec * (1 + ilog(ncpus)), units: nanoseconds) * (default: 0.75 msec * (1 + ilog(ncpus)), units: nanoseconds)
*/ */
unsigned int sysctl_sched_min_granularity = 500000ULL; unsigned int sysctl_sched_min_granularity = 1250000ULL;
unsigned int normalized_sysctl_sched_min_granularity = 500000ULL; unsigned int normalized_sysctl_sched_min_granularity = 1250000ULL;
/* /*
* is kept at sysctl_sched_latency / sysctl_sched_min_granularity * is kept at sysctl_sched_latency / sysctl_sched_min_granularity