diff options
Diffstat (limited to 'sys-kernel/linux-sources-redcore-lts/files/5.15-0002-constgran-vanilla-max.patch')
-rw-r--r-- | sys-kernel/linux-sources-redcore-lts/files/5.15-0002-constgran-vanilla-max.patch | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/sys-kernel/linux-sources-redcore-lts/files/5.15-0002-constgran-vanilla-max.patch b/sys-kernel/linux-sources-redcore-lts/files/5.15-0002-constgran-vanilla-max.patch new file mode 100644 index 00000000..aa20644d --- /dev/null +++ b/sys-kernel/linux-sources-redcore-lts/files/5.15-0002-constgran-vanilla-max.patch @@ -0,0 +1,86 @@ +From 250ba4a23f392dd37c673fd3879c6281a3a62291 Mon Sep 17 00:00:00 2001 +From: Masahito S <firelzrd@gmail.com> +Date: Mon, 15 May 2023 06:00:52 +0900 +Subject: [PATCH] constgran vanilla-max sched: Make latency / granularity + constant tunable_scaling = 1 (logarithmic) -> 0 (constant) latency_ns = + variable 6-24ms -> constant 24ms min_granularity_ns = variable 0.75-3ms -> + constant 3ms wakeup_granularity_ns = variable 1-4ms -> constant 4ms + +--- + kernel/sched/fair.c | 31 +++++++++++++++++++++++++++---- + 1 file changed, 27 insertions(+), 4 deletions(-) + +diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c +index 8b5bf7280..340f8dd14 100644 +--- a/kernel/sched/fair.c ++++ b/kernel/sched/fair.c +@@ -36,10 +36,16 @@ + * (to see the precise effective timeslice length of your workload, + * run vmstat and monitor the context-switches (cs) field) + * +- * (default: 6ms * (1 + ilog(ncpus)), units: nanoseconds) ++ * (BORE default: 24ms constant, units: nanoseconds) ++ * (CFS default: 6ms * (1 + ilog(ncpus)), units: nanoseconds) + */ ++#ifdef CONFIG_SCHED_BORE ++unsigned int sysctl_sched_latency = 24000000ULL; ++static unsigned int normalized_sysctl_sched_latency = 24000000ULL; ++#else // CONFIG_SCHED_BORE + unsigned int sysctl_sched_latency = 6000000ULL; + static unsigned int normalized_sysctl_sched_latency = 6000000ULL; ++#endif // CONFIG_SCHED_BORE + + /* + * The initial- and re-scaling of tunables is configurable +@@ -50,17 +56,28 @@ static unsigned int normalized_sysctl_sched_latency = 6000000ULL; + * SCHED_TUNABLESCALING_LOG - scaled logarithmical, *1+ilog(ncpus) + * SCHED_TUNABLESCALING_LINEAR - scaled linear, *ncpus + * +- * (default SCHED_TUNABLESCALING_LOG = *(1+ilog(ncpus)) ++ * (BORE default SCHED_TUNABLESCALING_NONE = *1 constant) ++ * (CFS default SCHED_TUNABLESCALING_LOG = *(1+ilog(ncpus)) + */ ++#ifdef CONFIG_SCHED_BORE ++unsigned int sysctl_sched_tunable_scaling = SCHED_TUNABLESCALING_NONE; ++#else // CONFIG_SCHED_BORE + unsigned int sysctl_sched_tunable_scaling = SCHED_TUNABLESCALING_LOG; ++#endif // CONFIG_SCHED_BORE + + /* + * Minimal preemption granularity for CPU-bound tasks: + * +- * (default: 0.75 msec * (1 + ilog(ncpus)), units: nanoseconds) ++ * (BORE default: 3 msec constant, units: nanoseconds) ++ * (CFS default: 0.75 msec * (1 + ilog(ncpus)), units: nanoseconds) + */ ++#ifdef CONFIG_SCHED_BORE ++unsigned int sysctl_sched_min_granularity = 3000000ULL; ++static unsigned int normalized_sysctl_sched_min_granularity = 3000000ULL; ++#else // CONFIG_SCHED_BORE + unsigned int sysctl_sched_min_granularity = 750000ULL; + static unsigned int normalized_sysctl_sched_min_granularity = 750000ULL; ++#endif // CONFIG_SCHED_BORE + + /* + * This value is kept at sysctl_sched_latency/sysctl_sched_min_granularity +@@ -80,10 +97,16 @@ unsigned int sysctl_sched_child_runs_first __read_mostly; + * and reduces their over-scheduling. Synchronous workloads will still + * have immediate wakeup/sleep latencies. + * +- * (default: 1 msec * (1 + ilog(ncpus)), units: nanoseconds) ++ * (BORE default: 4 msec constant, units: nanoseconds) ++ * (CFS default: 1 msec * (1 + ilog(ncpus)), units: nanoseconds) + */ ++#ifdef CONFIG_SCHED_BORE ++unsigned int sysctl_sched_wakeup_granularity = 4000000UL; ++static unsigned int normalized_sysctl_sched_wakeup_granularity = 4000000UL; ++#else // CONFIG_SCHED_BORE + unsigned int sysctl_sched_wakeup_granularity = 1000000UL; + static unsigned int normalized_sysctl_sched_wakeup_granularity = 1000000UL; ++#endif // CONFIG_SCHED_BORE + + const_debug unsigned int sysctl_sched_migration_cost = 500000UL; + +-- +2.25.1 + |