linux57-tkg: Update PDS patchset (cleanups + sync)
This commit is contained in:
parent
4e3bd6b828
commit
6317a54ef1
@ -130,7 +130,7 @@ sha256sums=('de8163bb62f822d84f7a3983574ec460060bf013a78ff79cd7c979ff1ec1d7e0'
|
|||||||
'7058e57fd68367b029adc77f2a82928f1433daaf02c8c279cb2d13556c8804d7'
|
'7058e57fd68367b029adc77f2a82928f1433daaf02c8c279cb2d13556c8804d7'
|
||||||
'62496f9ca788996181ef145f96ad26291282fcc3fb95cdc04080dcf84365be33'
|
'62496f9ca788996181ef145f96ad26291282fcc3fb95cdc04080dcf84365be33'
|
||||||
'7fd8e776209dac98627453fda754bdf9aff4a09f27cb0b3766d7983612eb3c74'
|
'7fd8e776209dac98627453fda754bdf9aff4a09f27cb0b3766d7983612eb3c74'
|
||||||
'3767c745aed00798efcdc6c57dcdc5ca84573863a9b76c1461eda15ff6f62037'
|
'bd0460d436e3ade46ea20b0087f8ccf62dce00f96de76f04b74620f81e63a2dc'
|
||||||
'19661ec0d39f9663452b34433214c755179894528bf73a42f6ba52ccf572832a'
|
'19661ec0d39f9663452b34433214c755179894528bf73a42f6ba52ccf572832a'
|
||||||
'cd225e86d72eaf6c31ef3d7b20df397f4cc44ddd04389850691292cdf292b204'
|
'cd225e86d72eaf6c31ef3d7b20df397f4cc44ddd04389850691292cdf292b204'
|
||||||
'9fad4a40449e09522899955762c8928ae17f4cdaa16e01239fd12592e9d58177'
|
'9fad4a40449e09522899955762c8928ae17f4cdaa16e01239fd12592e9d58177'
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From 89067d28ca90681fc6cf108de79b9aedb93dfa9d Mon Sep 17 00:00:00 2001
|
From 68f1a9541ef3185b1021e8e54d2712c7039418d7 Mon Sep 17 00:00:00 2001
|
||||||
From: Tk-Glitch <ti3nou@gmail.com>
|
From: Tk-Glitch <ti3nou@gmail.com>
|
||||||
Date: Thu, 16 Apr 2020 5:50:12 +0200
|
Date: Tue, 2 Jun 2020 18:55:09 +0200
|
||||||
Subject: PDS 099o, 5.7 rebase
|
Subject: PDS 099o, 5.7 rebase (release/v2)
|
||||||
|
|
||||||
|
|
||||||
diff --git a/Documentation/scheduler/sched-PDS-mq.txt b/Documentation/scheduler/sched-PDS-mq.txt
|
diff --git a/Documentation/scheduler/sched-PDS-mq.txt b/Documentation/scheduler/sched-PDS-mq.txt
|
||||||
@ -83,10 +83,10 @@ index f18d5067cd0f..fe489fc01c73 100644
|
|||||||
* Frequency of the spu scheduler tick. By default we do one SPU scheduler
|
* Frequency of the spu scheduler tick. By default we do one SPU scheduler
|
||||||
* tick for every 10 CPU scheduler ticks.
|
* tick for every 10 CPU scheduler ticks.
|
||||||
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
|
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
|
||||||
index 8ef85139553f..9d44d8d78259 100644
|
index 2d3f963fd6f1..5f41ead019b1 100644
|
||||||
--- a/arch/x86/Kconfig
|
--- a/arch/x86/Kconfig
|
||||||
+++ b/arch/x86/Kconfig
|
+++ b/arch/x86/Kconfig
|
||||||
@@ -1034,6 +1034,22 @@ config NR_CPUS
|
@@ -1006,6 +1006,22 @@ config NR_CPUS
|
||||||
config SCHED_SMT
|
config SCHED_SMT
|
||||||
def_bool y if SMP
|
def_bool y if SMP
|
||||||
|
|
||||||
@ -110,7 +110,7 @@ index 8ef85139553f..9d44d8d78259 100644
|
|||||||
def_bool y
|
def_bool y
|
||||||
prompt "Multi-core scheduler support"
|
prompt "Multi-core scheduler support"
|
||||||
diff --git a/drivers/cpufreq/cpufreq_conservative.c b/drivers/cpufreq/cpufreq_conservative.c
|
diff --git a/drivers/cpufreq/cpufreq_conservative.c b/drivers/cpufreq/cpufreq_conservative.c
|
||||||
index b66e81c06a57..a294f8f5fd75 100644
|
index 737ff3b9c2c0..b5bc5a1b6de7 100644
|
||||||
--- a/drivers/cpufreq/cpufreq_conservative.c
|
--- a/drivers/cpufreq/cpufreq_conservative.c
|
||||||
+++ b/drivers/cpufreq/cpufreq_conservative.c
|
+++ b/drivers/cpufreq/cpufreq_conservative.c
|
||||||
@@ -28,8 +28,8 @@ struct cs_dbs_tuners {
|
@@ -28,8 +28,8 @@ struct cs_dbs_tuners {
|
||||||
@ -125,7 +125,7 @@ index b66e81c06a57..a294f8f5fd75 100644
|
|||||||
#define DEF_SAMPLING_DOWN_FACTOR (1)
|
#define DEF_SAMPLING_DOWN_FACTOR (1)
|
||||||
#define MAX_SAMPLING_DOWN_FACTOR (10)
|
#define MAX_SAMPLING_DOWN_FACTOR (10)
|
||||||
diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c
|
diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c
|
||||||
index dced033875bf..d2cd03766b09 100644
|
index 82a4d37ddecb..1130e0f5db72 100644
|
||||||
--- a/drivers/cpufreq/cpufreq_ondemand.c
|
--- a/drivers/cpufreq/cpufreq_ondemand.c
|
||||||
+++ b/drivers/cpufreq/cpufreq_ondemand.c
|
+++ b/drivers/cpufreq/cpufreq_ondemand.c
|
||||||
@@ -18,7 +18,7 @@
|
@@ -18,7 +18,7 @@
|
||||||
@ -147,10 +147,10 @@ index dced033875bf..d2cd03766b09 100644
|
|||||||
* proportional to load.
|
* proportional to load.
|
||||||
*/
|
*/
|
||||||
diff --git a/fs/proc/base.c b/fs/proc/base.c
|
diff --git a/fs/proc/base.c b/fs/proc/base.c
|
||||||
index ebea9501afb8..51c9346a69fe 100644
|
index eb2255e95f62..62b8cedbccb6 100644
|
||||||
--- a/fs/proc/base.c
|
--- a/fs/proc/base.c
|
||||||
+++ b/fs/proc/base.c
|
+++ b/fs/proc/base.c
|
||||||
@@ -477,7 +477,7 @@ static int proc_pid_schedstat(struct seq_file *m, struct pid_namespace *ns,
|
@@ -479,7 +479,7 @@ static int proc_pid_schedstat(struct seq_file *m, struct pid_namespace *ns,
|
||||||
seq_puts(m, "0 0 0\n");
|
seq_puts(m, "0 0 0\n");
|
||||||
else
|
else
|
||||||
seq_printf(m, "%llu %llu %lu\n",
|
seq_printf(m, "%llu %llu %lu\n",
|
||||||
@ -176,10 +176,10 @@ index 2c620d7ac432..1a7987c40c80 100644
|
|||||||
/* Attach to the init_task data structure for proper alignment */
|
/* Attach to the init_task data structure for proper alignment */
|
||||||
#ifdef CONFIG_ARCH_TASK_STRUCT_ON_STACK
|
#ifdef CONFIG_ARCH_TASK_STRUCT_ON_STACK
|
||||||
diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h
|
diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h
|
||||||
index 1b6d31da7cbc..dea181bdb1dd 100644
|
index fed6ba96c527..f03a5ee419a1 100644
|
||||||
--- a/include/linux/jiffies.h
|
--- a/include/linux/jiffies.h
|
||||||
+++ b/include/linux/jiffies.h
|
+++ b/include/linux/jiffies.h
|
||||||
@@ -171,7 +171,7 @@ static inline u64 get_jiffies_64(void)
|
@@ -169,7 +169,7 @@ static inline u64 get_jiffies_64(void)
|
||||||
* Have the 32 bit jiffies value wrap 5 minutes after boot
|
* Have the 32 bit jiffies value wrap 5 minutes after boot
|
||||||
* so jiffies wrap bugs show up earlier.
|
* so jiffies wrap bugs show up earlier.
|
||||||
*/
|
*/
|
||||||
@ -189,7 +189,7 @@ index 1b6d31da7cbc..dea181bdb1dd 100644
|
|||||||
/*
|
/*
|
||||||
* Change timeval to jiffies, trying to avoid the
|
* Change timeval to jiffies, trying to avoid the
|
||||||
diff --git a/include/linux/sched.h b/include/linux/sched.h
|
diff --git a/include/linux/sched.h b/include/linux/sched.h
|
||||||
index 67a1d86981a9..8268cad4b0a2 100644
|
index 4418f5cb8324..2b51afac5b06 100644
|
||||||
--- a/include/linux/sched.h
|
--- a/include/linux/sched.h
|
||||||
+++ b/include/linux/sched.h
|
+++ b/include/linux/sched.h
|
||||||
@@ -31,6 +31,7 @@
|
@@ -31,6 +31,7 @@
|
||||||
@ -200,7 +200,7 @@ index 67a1d86981a9..8268cad4b0a2 100644
|
|||||||
|
|
||||||
/* task_struct member predeclarations (sorted alphabetically): */
|
/* task_struct member predeclarations (sorted alphabetically): */
|
||||||
struct audit_context;
|
struct audit_context;
|
||||||
@@ -644,9 +645,13 @@ struct task_struct {
|
@@ -652,9 +653,13 @@ struct task_struct {
|
||||||
unsigned int flags;
|
unsigned int flags;
|
||||||
unsigned int ptrace;
|
unsigned int ptrace;
|
||||||
|
|
||||||
@ -215,7 +215,7 @@ index 67a1d86981a9..8268cad4b0a2 100644
|
|||||||
#ifdef CONFIG_THREAD_INFO_IN_TASK
|
#ifdef CONFIG_THREAD_INFO_IN_TASK
|
||||||
/* Current CPU: */
|
/* Current CPU: */
|
||||||
unsigned int cpu;
|
unsigned int cpu;
|
||||||
@@ -655,6 +660,7 @@ struct task_struct {
|
@@ -663,6 +668,7 @@ struct task_struct {
|
||||||
unsigned long wakee_flip_decay_ts;
|
unsigned long wakee_flip_decay_ts;
|
||||||
struct task_struct *last_wakee;
|
struct task_struct *last_wakee;
|
||||||
|
|
||||||
@ -223,7 +223,7 @@ index 67a1d86981a9..8268cad4b0a2 100644
|
|||||||
/*
|
/*
|
||||||
* recent_used_cpu is initially set as the last CPU used by a task
|
* recent_used_cpu is initially set as the last CPU used by a task
|
||||||
* that wakes affine another task. Waker/wakee relationships can
|
* that wakes affine another task. Waker/wakee relationships can
|
||||||
@@ -663,6 +669,7 @@ struct task_struct {
|
@@ -671,6 +677,7 @@ struct task_struct {
|
||||||
* used CPU that may be idle.
|
* used CPU that may be idle.
|
||||||
*/
|
*/
|
||||||
int recent_used_cpu;
|
int recent_used_cpu;
|
||||||
@ -231,7 +231,7 @@ index 67a1d86981a9..8268cad4b0a2 100644
|
|||||||
int wake_cpu;
|
int wake_cpu;
|
||||||
#endif
|
#endif
|
||||||
int on_rq;
|
int on_rq;
|
||||||
@@ -672,13 +679,27 @@ struct task_struct {
|
@@ -680,13 +687,27 @@ struct task_struct {
|
||||||
int normal_prio;
|
int normal_prio;
|
||||||
unsigned int rt_priority;
|
unsigned int rt_priority;
|
||||||
|
|
||||||
@ -260,7 +260,7 @@ index 67a1d86981a9..8268cad4b0a2 100644
|
|||||||
|
|
||||||
#ifdef CONFIG_UCLAMP_TASK
|
#ifdef CONFIG_UCLAMP_TASK
|
||||||
/* Clamp values requested for a scheduling entity */
|
/* Clamp values requested for a scheduling entity */
|
||||||
@@ -1283,6 +1304,29 @@ struct task_struct {
|
@@ -1306,6 +1327,29 @@ struct task_struct {
|
||||||
*/
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -364,10 +364,10 @@ index e5af028c08b4..a96012e6f15e 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/include/linux/sched/task.h b/include/linux/sched/task.h
|
diff --git a/include/linux/sched/task.h b/include/linux/sched/task.h
|
||||||
index 4b1c3b664f51..f186b8119ad6 100644
|
index 38359071236a..90328ccd527f 100644
|
||||||
--- a/include/linux/sched/task.h
|
--- a/include/linux/sched/task.h
|
||||||
+++ b/include/linux/sched/task.h
|
+++ b/include/linux/sched/task.h
|
||||||
@@ -99,7 +99,7 @@ extern long kernel_wait4(pid_t, int __user *, int, struct rusage *);
|
@@ -106,7 +106,7 @@ extern long kernel_wait4(pid_t, int __user *, int, struct rusage *);
|
||||||
extern void free_task(struct task_struct *tsk);
|
extern void free_task(struct task_struct *tsk);
|
||||||
|
|
||||||
/* sched_exec is called by processes performing an exec */
|
/* sched_exec is called by processes performing an exec */
|
||||||
@ -560,10 +560,10 @@ index 000000000000..713fedd8034f
|
|||||||
+}
|
+}
|
||||||
+#endif /* _LINUX_SKIP_LIST_H */
|
+#endif /* _LINUX_SKIP_LIST_H */
|
||||||
diff --git a/include/uapi/linux/sched.h b/include/uapi/linux/sched.h
|
diff --git a/include/uapi/linux/sched.h b/include/uapi/linux/sched.h
|
||||||
index 25b4fa00bad1..fc0aabdce15f 100644
|
index 3bac0a8ceab2..d6d384ddb57d 100644
|
||||||
--- a/include/uapi/linux/sched.h
|
--- a/include/uapi/linux/sched.h
|
||||||
+++ b/include/uapi/linux/sched.h
|
+++ b/include/uapi/linux/sched.h
|
||||||
@@ -84,7 +84,10 @@ struct clone_args {
|
@@ -115,7 +115,10 @@ struct clone_args {
|
||||||
#define SCHED_FIFO 1
|
#define SCHED_FIFO 1
|
||||||
#define SCHED_RR 2
|
#define SCHED_RR 2
|
||||||
#define SCHED_BATCH 3
|
#define SCHED_BATCH 3
|
||||||
@ -576,10 +576,10 @@ index 25b4fa00bad1..fc0aabdce15f 100644
|
|||||||
#define SCHED_DEADLINE 6
|
#define SCHED_DEADLINE 6
|
||||||
|
|
||||||
diff --git a/init/Kconfig b/init/Kconfig
|
diff --git a/init/Kconfig b/init/Kconfig
|
||||||
index b4daad2bac23..ee3b9957cf3b 100644
|
index 74a5ac65644f..e4fd406b58dd 100644
|
||||||
--- a/init/Kconfig
|
--- a/init/Kconfig
|
||||||
+++ b/init/Kconfig
|
+++ b/init/Kconfig
|
||||||
@@ -73,6 +73,21 @@ config THREAD_INFO_IN_TASK
|
@@ -61,6 +61,21 @@ config THREAD_INFO_IN_TASK
|
||||||
|
|
||||||
menu "General setup"
|
menu "General setup"
|
||||||
|
|
||||||
@ -601,7 +601,7 @@ index b4daad2bac23..ee3b9957cf3b 100644
|
|||||||
config BROKEN
|
config BROKEN
|
||||||
bool
|
bool
|
||||||
|
|
||||||
@@ -802,6 +817,7 @@ config NUMA_BALANCING
|
@@ -777,6 +792,7 @@ config NUMA_BALANCING
|
||||||
depends on ARCH_SUPPORTS_NUMA_BALANCING
|
depends on ARCH_SUPPORTS_NUMA_BALANCING
|
||||||
depends on !ARCH_WANT_NUMA_VARIABLE_LOCALITY
|
depends on !ARCH_WANT_NUMA_VARIABLE_LOCALITY
|
||||||
depends on SMP && NUMA && MIGRATION
|
depends on SMP && NUMA && MIGRATION
|
||||||
@ -609,7 +609,7 @@ index b4daad2bac23..ee3b9957cf3b 100644
|
|||||||
help
|
help
|
||||||
This option adds support for automatic NUMA aware memory/task placement.
|
This option adds support for automatic NUMA aware memory/task placement.
|
||||||
The mechanism is quite primitive and is based on migrating memory when
|
The mechanism is quite primitive and is based on migrating memory when
|
||||||
@@ -903,7 +919,7 @@ menuconfig CGROUP_SCHED
|
@@ -878,7 +894,7 @@ menuconfig CGROUP_SCHED
|
||||||
bandwidth allocation to such task groups. It uses cgroups to group
|
bandwidth allocation to such task groups. It uses cgroups to group
|
||||||
tasks.
|
tasks.
|
||||||
|
|
||||||
@ -618,7 +618,7 @@ index b4daad2bac23..ee3b9957cf3b 100644
|
|||||||
config FAIR_GROUP_SCHED
|
config FAIR_GROUP_SCHED
|
||||||
bool "Group scheduling for SCHED_OTHER"
|
bool "Group scheduling for SCHED_OTHER"
|
||||||
depends on CGROUP_SCHED
|
depends on CGROUP_SCHED
|
||||||
@@ -1032,6 +1048,7 @@ config CGROUP_DEVICE
|
@@ -1007,6 +1023,7 @@ config CGROUP_DEVICE
|
||||||
|
|
||||||
config CGROUP_CPUACCT
|
config CGROUP_CPUACCT
|
||||||
bool "Simple CPU accounting controller"
|
bool "Simple CPU accounting controller"
|
||||||
@ -626,7 +626,7 @@ index b4daad2bac23..ee3b9957cf3b 100644
|
|||||||
help
|
help
|
||||||
Provides a simple controller for monitoring the
|
Provides a simple controller for monitoring the
|
||||||
total CPU consumed by the tasks in a cgroup.
|
total CPU consumed by the tasks in a cgroup.
|
||||||
@@ -1150,6 +1167,7 @@ config CHECKPOINT_RESTORE
|
@@ -1134,6 +1151,7 @@ config CHECKPOINT_RESTORE
|
||||||
|
|
||||||
config SCHED_AUTOGROUP
|
config SCHED_AUTOGROUP
|
||||||
bool "Automatic process group scheduling"
|
bool "Automatic process group scheduling"
|
||||||
@ -635,10 +635,10 @@ index b4daad2bac23..ee3b9957cf3b 100644
|
|||||||
select CGROUP_SCHED
|
select CGROUP_SCHED
|
||||||
select FAIR_GROUP_SCHED
|
select FAIR_GROUP_SCHED
|
||||||
diff --git a/init/init_task.c b/init/init_task.c
|
diff --git a/init/init_task.c b/init/init_task.c
|
||||||
index 9e5cbe5eab7b..89787e2feb60 100644
|
index bd403ed3e418..162d3deddd45 100644
|
||||||
--- a/init/init_task.c
|
--- a/init/init_task.c
|
||||||
+++ b/init/init_task.c
|
+++ b/init/init_task.c
|
||||||
@@ -58,6 +58,126 @@ struct task_struct init_task
|
@@ -59,6 +59,126 @@ struct task_struct init_task
|
||||||
__init_task_data
|
__init_task_data
|
||||||
#endif
|
#endif
|
||||||
= {
|
= {
|
||||||
@ -765,7 +765,7 @@ index 9e5cbe5eab7b..89787e2feb60 100644
|
|||||||
#ifdef CONFIG_THREAD_INFO_IN_TASK
|
#ifdef CONFIG_THREAD_INFO_IN_TASK
|
||||||
.thread_info = INIT_THREAD_INFO(init_task),
|
.thread_info = INIT_THREAD_INFO(init_task),
|
||||||
.stack_refcount = REFCOUNT_INIT(1),
|
.stack_refcount = REFCOUNT_INIT(1),
|
||||||
@@ -181,6 +301,7 @@ struct task_struct init_task
|
@@ -182,6 +302,7 @@ struct task_struct init_task
|
||||||
#ifdef CONFIG_SECURITY
|
#ifdef CONFIG_SECURITY
|
||||||
.security = NULL,
|
.security = NULL,
|
||||||
#endif
|
#endif
|
||||||
@ -774,10 +774,10 @@ index 9e5cbe5eab7b..89787e2feb60 100644
|
|||||||
EXPORT_SYMBOL(init_task);
|
EXPORT_SYMBOL(init_task);
|
||||||
|
|
||||||
diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
|
diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
|
||||||
index c87ee6412b36..4045c8532027 100644
|
index 729d3a5c772e..10a7c52b90d5 100644
|
||||||
--- a/kernel/cgroup/cpuset.c
|
--- a/kernel/cgroup/cpuset.c
|
||||||
+++ b/kernel/cgroup/cpuset.c
|
+++ b/kernel/cgroup/cpuset.c
|
||||||
@@ -632,7 +632,7 @@ static int validate_change(struct cpuset *cur, struct cpuset *trial)
|
@@ -636,7 +636,7 @@ static int validate_change(struct cpuset *cur, struct cpuset *trial)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -786,7 +786,7 @@ index c87ee6412b36..4045c8532027 100644
|
|||||||
/*
|
/*
|
||||||
* Helper routine for generate_sched_domains().
|
* Helper routine for generate_sched_domains().
|
||||||
* Do cpusets a, b have overlapping effective cpus_allowed masks?
|
* Do cpusets a, b have overlapping effective cpus_allowed masks?
|
||||||
@@ -1007,7 +1007,7 @@ static void rebuild_sched_domains_locked(void)
|
@@ -1009,7 +1009,7 @@ static void rebuild_sched_domains_locked(void)
|
||||||
/* Have scheduler rebuild the domains */
|
/* Have scheduler rebuild the domains */
|
||||||
partition_and_rebuild_sched_domains(ndoms, doms, attr);
|
partition_and_rebuild_sched_domains(ndoms, doms, attr);
|
||||||
}
|
}
|
||||||
@ -809,10 +809,10 @@ index 27725754ac99..769d773c7182 100644
|
|||||||
d->cpu_count += t1;
|
d->cpu_count += t1;
|
||||||
|
|
||||||
diff --git a/kernel/exit.c b/kernel/exit.c
|
diff --git a/kernel/exit.c b/kernel/exit.c
|
||||||
index a46a50d67002..58043176b285 100644
|
index ce2a75bc0ade..f0f864bc1ab9 100644
|
||||||
--- a/kernel/exit.c
|
--- a/kernel/exit.c
|
||||||
+++ b/kernel/exit.c
|
+++ b/kernel/exit.c
|
||||||
@@ -131,7 +131,7 @@ static void __exit_signal(struct task_struct *tsk)
|
@@ -122,7 +122,7 @@ static void __exit_signal(struct task_struct *tsk)
|
||||||
sig->curr_target = next_thread(tsk);
|
sig->curr_target = next_thread(tsk);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -821,7 +821,7 @@ index a46a50d67002..58043176b285 100644
|
|||||||
sizeof(unsigned long long));
|
sizeof(unsigned long long));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -152,7 +152,7 @@ static void __exit_signal(struct task_struct *tsk)
|
@@ -143,7 +143,7 @@ static void __exit_signal(struct task_struct *tsk)
|
||||||
sig->inblock += task_io_get_inblock(tsk);
|
sig->inblock += task_io_get_inblock(tsk);
|
||||||
sig->oublock += task_io_get_oublock(tsk);
|
sig->oublock += task_io_get_oublock(tsk);
|
||||||
task_io_accounting_add(&sig->ioac, &tsk->ioac);
|
task_io_accounting_add(&sig->ioac, &tsk->ioac);
|
||||||
@ -831,7 +831,7 @@ index a46a50d67002..58043176b285 100644
|
|||||||
__unhash_process(tsk, group_dead);
|
__unhash_process(tsk, group_dead);
|
||||||
write_sequnlock(&sig->stats_lock);
|
write_sequnlock(&sig->stats_lock);
|
||||||
diff --git a/kernel/livepatch/transition.c b/kernel/livepatch/transition.c
|
diff --git a/kernel/livepatch/transition.c b/kernel/livepatch/transition.c
|
||||||
index cdf318d86dd6..baa525865d5c 100644
|
index f6310f848f34..b5de980c7d4e 100644
|
||||||
--- a/kernel/livepatch/transition.c
|
--- a/kernel/livepatch/transition.c
|
||||||
+++ b/kernel/livepatch/transition.c
|
+++ b/kernel/livepatch/transition.c
|
||||||
@@ -306,7 +306,11 @@ static bool klp_try_switch_task(struct task_struct *task)
|
@@ -306,7 +306,11 @@ static bool klp_try_switch_task(struct task_struct *task)
|
||||||
@ -847,7 +847,7 @@ index cdf318d86dd6..baa525865d5c 100644
|
|||||||
"%s: %s:%d is running\n", __func__, task->comm,
|
"%s: %s:%d is running\n", __func__, task->comm,
|
||||||
task->pid);
|
task->pid);
|
||||||
diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
|
diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
|
||||||
index 2874bf556162..fad8a279fdfa 100644
|
index c9f090d64f00..063d15a1ab8b 100644
|
||||||
--- a/kernel/locking/rtmutex.c
|
--- a/kernel/locking/rtmutex.c
|
||||||
+++ b/kernel/locking/rtmutex.c
|
+++ b/kernel/locking/rtmutex.c
|
||||||
@@ -229,7 +229,7 @@ static inline bool unlock_rt_mutex_safe(struct rt_mutex *lock,
|
@@ -229,7 +229,7 @@ static inline bool unlock_rt_mutex_safe(struct rt_mutex *lock,
|
||||||
@ -910,10 +910,10 @@ index 21fb5a5662b5..8ebe4e33fb5f 100644
|
|||||||
obj-$(CONFIG_CPU_FREQ_GOV_SCHEDUTIL) += cpufreq_schedutil.o
|
obj-$(CONFIG_CPU_FREQ_GOV_SCHEDUTIL) += cpufreq_schedutil.o
|
||||||
obj-$(CONFIG_MEMBARRIER) += membarrier.o
|
obj-$(CONFIG_MEMBARRIER) += membarrier.o
|
||||||
diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c
|
diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c
|
||||||
index 86800b4d5453..07f278dc3137 100644
|
index 7fbaee24c824..28377ad56248 100644
|
||||||
--- a/kernel/sched/cpufreq_schedutil.c
|
--- a/kernel/sched/cpufreq_schedutil.c
|
||||||
+++ b/kernel/sched/cpufreq_schedutil.c
|
+++ b/kernel/sched/cpufreq_schedutil.c
|
||||||
@@ -185,6 +185,7 @@ static unsigned int get_next_freq(struct sugov_policy *sg_policy,
|
@@ -183,6 +183,7 @@ static unsigned int get_next_freq(struct sugov_policy *sg_policy,
|
||||||
return cpufreq_driver_resolve_freq(policy, freq);
|
return cpufreq_driver_resolve_freq(policy, freq);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -921,7 +921,7 @@ index 86800b4d5453..07f278dc3137 100644
|
|||||||
/*
|
/*
|
||||||
* This function computes an effective utilization for the given CPU, to be
|
* This function computes an effective utilization for the given CPU, to be
|
||||||
* used for frequency selection given the linear relation: f = u * f_max.
|
* used for frequency selection given the linear relation: f = u * f_max.
|
||||||
@@ -302,6 +303,13 @@ static unsigned long sugov_get_util(struct sugov_cpu *sg_cpu)
|
@@ -300,6 +301,13 @@ static unsigned long sugov_get_util(struct sugov_cpu *sg_cpu)
|
||||||
|
|
||||||
return schedutil_cpu_util(sg_cpu->cpu, util, max, FREQUENCY_UTIL, NULL);
|
return schedutil_cpu_util(sg_cpu->cpu, util, max, FREQUENCY_UTIL, NULL);
|
||||||
}
|
}
|
||||||
@ -935,7 +935,7 @@ index 86800b4d5453..07f278dc3137 100644
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* sugov_iowait_reset() - Reset the IO boost status of a CPU.
|
* sugov_iowait_reset() - Reset the IO boost status of a CPU.
|
||||||
@@ -445,7 +453,9 @@ static inline bool sugov_cpu_is_busy(struct sugov_cpu *sg_cpu) { return false; }
|
@@ -443,7 +451,9 @@ static inline bool sugov_cpu_is_busy(struct sugov_cpu *sg_cpu) { return false; }
|
||||||
*/
|
*/
|
||||||
static inline void ignore_dl_rate_limit(struct sugov_cpu *sg_cpu, struct sugov_policy *sg_policy)
|
static inline void ignore_dl_rate_limit(struct sugov_cpu *sg_cpu, struct sugov_policy *sg_policy)
|
||||||
{
|
{
|
||||||
@ -945,7 +945,7 @@ index 86800b4d5453..07f278dc3137 100644
|
|||||||
sg_policy->limits_changed = true;
|
sg_policy->limits_changed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -688,6 +698,7 @@ static int sugov_kthread_create(struct sugov_policy *sg_policy)
|
@@ -686,6 +696,7 @@ static int sugov_kthread_create(struct sugov_policy *sg_policy)
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = sched_setattr_nocheck(thread, &attr);
|
ret = sched_setattr_nocheck(thread, &attr);
|
||||||
@ -953,15 +953,15 @@ index 86800b4d5453..07f278dc3137 100644
|
|||||||
if (ret) {
|
if (ret) {
|
||||||
kthread_stop(thread);
|
kthread_stop(thread);
|
||||||
pr_warn("%s: failed to set SCHED_DEADLINE\n", __func__);
|
pr_warn("%s: failed to set SCHED_DEADLINE\n", __func__);
|
||||||
@@ -918,6 +929,7 @@ static int __init sugov_register(void)
|
@@ -916,6 +927,7 @@ static int __init sugov_register(void)
|
||||||
fs_initcall(sugov_register);
|
core_initcall(sugov_register);
|
||||||
|
|
||||||
#ifdef CONFIG_ENERGY_MODEL
|
#ifdef CONFIG_ENERGY_MODEL
|
||||||
+#ifndef CONFIG_SCHED_PDS
|
+#ifndef CONFIG_SCHED_PDS
|
||||||
extern bool sched_energy_update;
|
extern bool sched_energy_update;
|
||||||
extern struct mutex sched_energy_mutex;
|
extern struct mutex sched_energy_mutex;
|
||||||
|
|
||||||
@@ -948,4 +960,10 @@ void sched_cpufreq_governor_change(struct cpufreq_policy *policy,
|
@@ -946,4 +958,10 @@ void sched_cpufreq_governor_change(struct cpufreq_policy *policy,
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -973,7 +973,7 @@ index 86800b4d5453..07f278dc3137 100644
|
|||||||
+#endif
|
+#endif
|
||||||
#endif
|
#endif
|
||||||
diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c
|
diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c
|
||||||
index 46ed4e1383e2..0a9548ee995c 100644
|
index ff9435dee1df..1377ea3d1b76 100644
|
||||||
--- a/kernel/sched/cputime.c
|
--- a/kernel/sched/cputime.c
|
||||||
+++ b/kernel/sched/cputime.c
|
+++ b/kernel/sched/cputime.c
|
||||||
@@ -122,7 +122,12 @@ void account_user_time(struct task_struct *p, u64 cputime)
|
@@ -122,7 +122,12 @@ void account_user_time(struct task_struct *p, u64 cputime)
|
||||||
@ -1019,7 +1019,7 @@ index 46ed4e1383e2..0a9548ee995c 100644
|
|||||||
task_rq_unlock(rq, t, &rf);
|
task_rq_unlock(rq, t, &rf);
|
||||||
|
|
||||||
return ns;
|
return ns;
|
||||||
@@ -663,7 +672,7 @@ void cputime_adjust(struct task_cputime *curr, struct prev_cputime *prev,
|
@@ -658,7 +667,7 @@ void cputime_adjust(struct task_cputime *curr, struct prev_cputime *prev,
|
||||||
void task_cputime_adjusted(struct task_struct *p, u64 *ut, u64 *st)
|
void task_cputime_adjusted(struct task_struct *p, u64 *ut, u64 *st)
|
||||||
{
|
{
|
||||||
struct task_cputime cputime = {
|
struct task_cputime cputime = {
|
||||||
@ -1029,10 +1029,10 @@ index 46ed4e1383e2..0a9548ee995c 100644
|
|||||||
|
|
||||||
task_cputime(p, &cputime.utime, &cputime.stime);
|
task_cputime(p, &cputime.utime, &cputime.stime);
|
||||||
diff --git a/kernel/sched/idle.c b/kernel/sched/idle.c
|
diff --git a/kernel/sched/idle.c b/kernel/sched/idle.c
|
||||||
index f65ef1e2f204..454fa7e460e3 100644
|
index b743bf38f08f..16e5754af1cf 100644
|
||||||
--- a/kernel/sched/idle.c
|
--- a/kernel/sched/idle.c
|
||||||
+++ b/kernel/sched/idle.c
|
+++ b/kernel/sched/idle.c
|
||||||
@@ -355,6 +355,7 @@ void cpu_startup_entry(enum cpuhp_state state)
|
@@ -361,6 +361,7 @@ void cpu_startup_entry(enum cpuhp_state state)
|
||||||
do_idle();
|
do_idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1040,17 +1040,17 @@ index f65ef1e2f204..454fa7e460e3 100644
|
|||||||
/*
|
/*
|
||||||
* idle-task scheduling class.
|
* idle-task scheduling class.
|
||||||
*/
|
*/
|
||||||
@@ -479,3 +480,4 @@ const struct sched_class idle_sched_class = {
|
@@ -481,3 +482,4 @@ const struct sched_class idle_sched_class = {
|
||||||
.switched_to = switched_to_idle,
|
.switched_to = switched_to_idle,
|
||||||
.update_curr = update_curr_idle,
|
.update_curr = update_curr_idle,
|
||||||
};
|
};
|
||||||
+#endif
|
+#endif
|
||||||
diff --git a/kernel/sched/pds.c b/kernel/sched/pds.c
|
diff --git a/kernel/sched/pds.c b/kernel/sched/pds.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000000..aefbd9cebcfb
|
index 000000000000..02d7d5a67c77
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/kernel/sched/pds.c
|
+++ b/kernel/sched/pds.c
|
||||||
@@ -0,0 +1,6558 @@
|
@@ -0,0 +1,6554 @@
|
||||||
+/*
|
+/*
|
||||||
+ * kernel/sched/pds.c, was kernel/sched.c
|
+ * kernel/sched/pds.c, was kernel/sched.c
|
||||||
+ *
|
+ *
|
||||||
@ -2070,7 +2070,6 @@ index 000000000000..aefbd9cebcfb
|
|||||||
+
|
+
|
||||||
+ raw_spin_lock(&rq->lock);
|
+ raw_spin_lock(&rq->lock);
|
||||||
+ __hrtick_restart(rq);
|
+ __hrtick_restart(rq);
|
||||||
+ rq->hrtick_csd_pending = 0;
|
|
||||||
+ raw_spin_unlock(&rq->lock);
|
+ raw_spin_unlock(&rq->lock);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
@ -2094,12 +2093,10 @@ index 000000000000..aefbd9cebcfb
|
|||||||
+
|
+
|
||||||
+ hrtimer_set_expires(timer, time);
|
+ hrtimer_set_expires(timer, time);
|
||||||
+
|
+
|
||||||
+ if (rq == this_rq()) {
|
+ if (rq == this_rq())
|
||||||
+ __hrtick_restart(rq);
|
+ __hrtick_restart(rq);
|
||||||
+ } else if (!rq->hrtick_csd_pending) {
|
+ else
|
||||||
+ smp_call_function_single_async(cpu_of(rq), &rq->hrtick_csd);
|
+ smp_call_function_single_async(cpu_of(rq), &rq->hrtick_csd);
|
||||||
+ rq->hrtick_csd_pending = 1;
|
|
||||||
+ }
|
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#else
|
+#else
|
||||||
@ -2123,8 +2120,6 @@ index 000000000000..aefbd9cebcfb
|
|||||||
+static void hrtick_rq_init(struct rq *rq)
|
+static void hrtick_rq_init(struct rq *rq)
|
||||||
+{
|
+{
|
||||||
+#ifdef CONFIG_SMP
|
+#ifdef CONFIG_SMP
|
||||||
+ rq->hrtick_csd_pending = 0;
|
|
||||||
+
|
|
||||||
+ rq->hrtick_csd.flags = 0;
|
+ rq->hrtick_csd.flags = 0;
|
||||||
+ rq->hrtick_csd.func = __hrtick_start;
|
+ rq->hrtick_csd.func = __hrtick_start;
|
||||||
+ rq->hrtick_csd.info = rq;
|
+ rq->hrtick_csd.info = rq;
|
||||||
@ -3946,6 +3941,7 @@ index 000000000000..aefbd9cebcfb
|
|||||||
+ int cpu __maybe_unused = smp_processor_id();
|
+ int cpu __maybe_unused = smp_processor_id();
|
||||||
+ struct rq *rq = cpu_rq(cpu);
|
+ struct rq *rq = cpu_rq(cpu);
|
||||||
+
|
+
|
||||||
|
+ arch_scale_freq_tick();
|
||||||
+ sched_clock_tick();
|
+ sched_clock_tick();
|
||||||
+
|
+
|
||||||
+ raw_spin_lock(&rq->lock);
|
+ raw_spin_lock(&rq->lock);
|
||||||
@ -4021,11 +4017,9 @@ index 000000000000..aefbd9cebcfb
|
|||||||
+
|
+
|
||||||
+ raw_spin_lock_irqsave(&rq->lock, flags);
|
+ raw_spin_lock_irqsave(&rq->lock, flags);
|
||||||
+ curr = rq->curr;
|
+ curr = rq->curr;
|
||||||
+
|
|
||||||
+ if (cpu_is_offline(cpu))
|
+ if (cpu_is_offline(cpu))
|
||||||
+ goto out_unlock;
|
+ goto out_unlock;
|
||||||
+
|
+
|
||||||
+ curr = rq->curr;
|
|
||||||
+ update_rq_clock(rq);
|
+ update_rq_clock(rq);
|
||||||
+ if (!is_idle_task(curr)) {
|
+ if (!is_idle_task(curr)) {
|
||||||
+ /*
|
+ /*
|
||||||
@ -4547,6 +4541,8 @@ index 000000000000..aefbd9cebcfb
|
|||||||
+ ++*switch_count;
|
+ ++*switch_count;
|
||||||
+ rq->nr_switches++;
|
+ rq->nr_switches++;
|
||||||
+
|
+
|
||||||
|
+ psi_sched_switch(prev, next, !task_on_rq_queued(prev));
|
||||||
|
+
|
||||||
+ trace_sched_switch(preempt, prev, next);
|
+ trace_sched_switch(preempt, prev, next);
|
||||||
+
|
+
|
||||||
+ /* Also unlocks the rq: */
|
+ /* Also unlocks the rq: */
|
||||||
@ -7611,10 +7607,10 @@ index 000000000000..aefbd9cebcfb
|
|||||||
+#undef CREATE_TRACE_POINTS
|
+#undef CREATE_TRACE_POINTS
|
||||||
diff --git a/kernel/sched/pds_sched.h b/kernel/sched/pds_sched.h
|
diff --git a/kernel/sched/pds_sched.h b/kernel/sched/pds_sched.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000000..b3926a8425b2
|
index 000000000000..6c3361f06087
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/kernel/sched/pds_sched.h
|
+++ b/kernel/sched/pds_sched.h
|
||||||
@@ -0,0 +1,508 @@
|
@@ -0,0 +1,518 @@
|
||||||
+#ifndef PDS_SCHED_H
|
+#ifndef PDS_SCHED_H
|
||||||
+#define PDS_SCHED_H
|
+#define PDS_SCHED_H
|
||||||
+
|
+
|
||||||
@ -7749,7 +7745,6 @@ index 000000000000..b3926a8425b2
|
|||||||
+
|
+
|
||||||
+#ifdef CONFIG_SCHED_HRTICK
|
+#ifdef CONFIG_SCHED_HRTICK
|
||||||
+#ifdef CONFIG_SMP
|
+#ifdef CONFIG_SMP
|
||||||
+ int hrtick_csd_pending;
|
|
||||||
+ call_single_data_t hrtick_csd;
|
+ call_single_data_t hrtick_csd;
|
||||||
+#endif
|
+#endif
|
||||||
+ struct hrtimer hrtick_timer;
|
+ struct hrtimer hrtick_timer;
|
||||||
@ -7815,6 +7810,13 @@ index 000000000000..b3926a8425b2
|
|||||||
+
|
+
|
||||||
+#endif /* CONFIG_SMP */
|
+#endif /* CONFIG_SMP */
|
||||||
+
|
+
|
||||||
|
+#ifndef arch_scale_freq_tick
|
||||||
|
+static __always_inline
|
||||||
|
+void arch_scale_freq_tick(void)
|
||||||
|
+{
|
||||||
|
+}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
+#ifndef arch_scale_freq_capacity
|
+#ifndef arch_scale_freq_capacity
|
||||||
+static __always_inline
|
+static __always_inline
|
||||||
+unsigned long arch_scale_freq_capacity(int cpu)
|
+unsigned long arch_scale_freq_capacity(int cpu)
|
||||||
@ -8122,12 +8124,16 @@ index 000000000000..b3926a8425b2
|
|||||||
+ return nr_cpu_ids;
|
+ return nr_cpu_ids;
|
||||||
+}
|
+}
|
||||||
+#endif
|
+#endif
|
||||||
|
+
|
||||||
|
+void swake_up_all_locked(struct swait_queue_head *q);
|
||||||
|
+void __prepare_to_swait(struct swait_queue_head *q, struct swait_queue *wait);
|
||||||
|
+
|
||||||
+#endif /* PDS_SCHED_H */
|
+#endif /* PDS_SCHED_H */
|
||||||
diff --git a/kernel/sched/pelt.c b/kernel/sched/pelt.c
|
diff --git a/kernel/sched/pelt.c b/kernel/sched/pelt.c
|
||||||
index a96db50d40e0..d3d12baa9036 100644
|
index b647d04d9c8b..05b6cfd91842 100644
|
||||||
--- a/kernel/sched/pelt.c
|
--- a/kernel/sched/pelt.c
|
||||||
+++ b/kernel/sched/pelt.c
|
+++ b/kernel/sched/pelt.c
|
||||||
@@ -236,6 +236,7 @@ ___update_load_avg(struct sched_avg *sa, unsigned long load, unsigned long runna
|
@@ -250,6 +250,7 @@ ___update_load_avg(struct sched_avg *sa, unsigned long load)
|
||||||
WRITE_ONCE(sa->util_avg, sa->util_sum / divider);
|
WRITE_ONCE(sa->util_avg, sa->util_sum / divider);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8135,16 +8141,16 @@ index a96db50d40e0..d3d12baa9036 100644
|
|||||||
/*
|
/*
|
||||||
* sched_entity:
|
* sched_entity:
|
||||||
*
|
*
|
||||||
@@ -352,6 +353,7 @@ int update_dl_rq_load_avg(u64 now, struct rq *rq, int running)
|
@@ -367,6 +368,7 @@ int update_dl_rq_load_avg(u64 now, struct rq *rq, int running)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
+#endif
|
+#endif
|
||||||
|
|
||||||
#ifdef CONFIG_HAVE_SCHED_AVG_IRQ
|
#ifdef CONFIG_SCHED_THERMAL_PRESSURE
|
||||||
/*
|
/*
|
||||||
diff --git a/kernel/sched/pelt.h b/kernel/sched/pelt.h
|
diff --git a/kernel/sched/pelt.h b/kernel/sched/pelt.h
|
||||||
index afff644da065..26d6b47fc156 100644
|
index eb034d9f024d..a074572f2976 100644
|
||||||
--- a/kernel/sched/pelt.h
|
--- a/kernel/sched/pelt.h
|
||||||
+++ b/kernel/sched/pelt.h
|
+++ b/kernel/sched/pelt.h
|
||||||
@@ -1,11 +1,13 @@
|
@@ -1,11 +1,13 @@
|
||||||
@ -8159,9 +8165,9 @@ index afff644da065..26d6b47fc156 100644
|
|||||||
int update_dl_rq_load_avg(u64 now, struct rq *rq, int running);
|
int update_dl_rq_load_avg(u64 now, struct rq *rq, int running);
|
||||||
+#endif
|
+#endif
|
||||||
|
|
||||||
#ifdef CONFIG_HAVE_SCHED_AVG_IRQ
|
#ifdef CONFIG_SCHED_THERMAL_PRESSURE
|
||||||
int update_irq_load_avg(struct rq *rq, u64 running);
|
int update_thermal_load_avg(u64 now, struct rq *rq, u64 capacity);
|
||||||
@@ -17,6 +19,7 @@ update_irq_load_avg(struct rq *rq, u64 running)
|
@@ -37,6 +39,7 @@ update_irq_load_avg(struct rq *rq, u64 running)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -8169,7 +8175,7 @@ index afff644da065..26d6b47fc156 100644
|
|||||||
/*
|
/*
|
||||||
* When a task is dequeued, its estimated utilization should not be update if
|
* When a task is dequeued, its estimated utilization should not be update if
|
||||||
* its util_avg has not been updated at least once.
|
* its util_avg has not been updated at least once.
|
||||||
@@ -137,9 +140,11 @@ static inline u64 cfs_rq_clock_pelt(struct cfs_rq *cfs_rq)
|
@@ -157,9 +160,11 @@ static inline u64 cfs_rq_clock_pelt(struct cfs_rq *cfs_rq)
|
||||||
return rq_clock_pelt(rq_of(cfs_rq));
|
return rq_clock_pelt(rq_of(cfs_rq));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -8181,7 +8187,7 @@ index afff644da065..26d6b47fc156 100644
|
|||||||
static inline int
|
static inline int
|
||||||
update_cfs_rq_load_avg(u64 now, struct cfs_rq *cfs_rq)
|
update_cfs_rq_load_avg(u64 now, struct cfs_rq *cfs_rq)
|
||||||
{
|
{
|
||||||
@@ -157,6 +162,7 @@ update_dl_rq_load_avg(u64 now, struct rq *rq, int running)
|
@@ -188,6 +193,7 @@ static inline u64 thermal_load_avg(struct rq *rq)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -8190,7 +8196,7 @@ index afff644da065..26d6b47fc156 100644
|
|||||||
static inline int
|
static inline int
|
||||||
update_irq_load_avg(struct rq *rq, u64 running)
|
update_irq_load_avg(struct rq *rq, u64 running)
|
||||||
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
|
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
|
||||||
index c8870c5bd7df..4fc9f2ead4d2 100644
|
index db3a57675ccf..5a8060bd2343 100644
|
||||||
--- a/kernel/sched/sched.h
|
--- a/kernel/sched/sched.h
|
||||||
+++ b/kernel/sched/sched.h
|
+++ b/kernel/sched/sched.h
|
||||||
@@ -2,6 +2,10 @@
|
@@ -2,6 +2,10 @@
|
||||||
@ -8204,14 +8210,12 @@ index c8870c5bd7df..4fc9f2ead4d2 100644
|
|||||||
#include <linux/sched.h>
|
#include <linux/sched.h>
|
||||||
|
|
||||||
#include <linux/sched/autogroup.h>
|
#include <linux/sched/autogroup.h>
|
||||||
@@ -2496,6 +2500,7 @@ static inline void membarrier_switch_mm(struct rq *rq,
|
@@ -2546,3 +2550,5 @@ static inline bool is_per_cpu_kthread(struct task_struct *p)
|
||||||
return true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
+#endif /* !CONFIG_SCHED_PDS */
|
|
||||||
|
|
||||||
void swake_up_all_locked(struct swait_queue_head *q);
|
void swake_up_all_locked(struct swait_queue_head *q);
|
||||||
void __prepare_to_swait(struct swait_queue_head *q, struct swait_queue *wait);
|
void __prepare_to_swait(struct swait_queue_head *q, struct swait_queue *wait);
|
||||||
|
+
|
||||||
|
+#endif /* !CONFIG_SCHED_PDS */
|
||||||
diff --git a/kernel/sched/stats.c b/kernel/sched/stats.c
|
diff --git a/kernel/sched/stats.c b/kernel/sched/stats.c
|
||||||
index 750fb3c67eed..45bd43942575 100644
|
index 750fb3c67eed..45bd43942575 100644
|
||||||
--- a/kernel/sched/stats.c
|
--- a/kernel/sched/stats.c
|
||||||
@ -8244,7 +8248,7 @@ index 750fb3c67eed..45bd43942575 100644
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
|
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
|
||||||
index b6f2f35d0bcf..204933ebc95a 100644
|
index 8a176d8727a3..b9dde576b576 100644
|
||||||
--- a/kernel/sysctl.c
|
--- a/kernel/sysctl.c
|
||||||
+++ b/kernel/sysctl.c
|
+++ b/kernel/sysctl.c
|
||||||
@@ -130,8 +130,12 @@ static int __maybe_unused four = 4;
|
@@ -130,8 +130,12 @@ static int __maybe_unused four = 4;
|
||||||
@ -8262,7 +8266,7 @@ index b6f2f35d0bcf..204933ebc95a 100644
|
|||||||
#ifdef CONFIG_PRINTK
|
#ifdef CONFIG_PRINTK
|
||||||
static int ten_thousand = 10000;
|
static int ten_thousand = 10000;
|
||||||
#endif
|
#endif
|
||||||
@@ -300,7 +304,7 @@ static struct ctl_table sysctl_base_table[] = {
|
@@ -288,7 +292,7 @@ static struct ctl_table sysctl_base_table[] = {
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -8271,7 +8275,7 @@ index b6f2f35d0bcf..204933ebc95a 100644
|
|||||||
static int min_sched_granularity_ns = 100000; /* 100 usecs */
|
static int min_sched_granularity_ns = 100000; /* 100 usecs */
|
||||||
static int max_sched_granularity_ns = NSEC_PER_SEC; /* 1 second */
|
static int max_sched_granularity_ns = NSEC_PER_SEC; /* 1 second */
|
||||||
static int min_wakeup_granularity_ns; /* 0 usecs */
|
static int min_wakeup_granularity_ns; /* 0 usecs */
|
||||||
@@ -317,6 +321,7 @@ static int max_extfrag_threshold = 1000;
|
@@ -305,6 +309,7 @@ static int max_extfrag_threshold = 1000;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static struct ctl_table kern_table[] = {
|
static struct ctl_table kern_table[] = {
|
||||||
@ -8279,7 +8283,7 @@ index b6f2f35d0bcf..204933ebc95a 100644
|
|||||||
{
|
{
|
||||||
.procname = "sched_child_runs_first",
|
.procname = "sched_child_runs_first",
|
||||||
.data = &sysctl_sched_child_runs_first,
|
.data = &sysctl_sched_child_runs_first,
|
||||||
@@ -498,6 +503,7 @@ static struct ctl_table kern_table[] = {
|
@@ -486,6 +491,7 @@ static struct ctl_table kern_table[] = {
|
||||||
.extra2 = SYSCTL_ONE,
|
.extra2 = SYSCTL_ONE,
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
@ -8287,7 +8291,7 @@ index b6f2f35d0bcf..204933ebc95a 100644
|
|||||||
#ifdef CONFIG_PROVE_LOCKING
|
#ifdef CONFIG_PROVE_LOCKING
|
||||||
{
|
{
|
||||||
.procname = "prove_locking",
|
.procname = "prove_locking",
|
||||||
@@ -1070,6 +1076,26 @@ static struct ctl_table kern_table[] = {
|
@@ -1049,6 +1055,26 @@ static struct ctl_table kern_table[] = {
|
||||||
.proc_handler = proc_dointvec,
|
.proc_handler = proc_dointvec,
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
@ -8315,10 +8319,10 @@ index b6f2f35d0bcf..204933ebc95a 100644
|
|||||||
{
|
{
|
||||||
.procname = "spin_retry",
|
.procname = "spin_retry",
|
||||||
diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c
|
diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c
|
||||||
index 42d512fcfda2..71af3cd30ccc 100644
|
index 2fd3b3fa68bf..6f3b08afdd4c 100644
|
||||||
--- a/kernel/time/posix-cpu-timers.c
|
--- a/kernel/time/posix-cpu-timers.c
|
||||||
+++ b/kernel/time/posix-cpu-timers.c
|
+++ b/kernel/time/posix-cpu-timers.c
|
||||||
@@ -226,7 +226,7 @@ static void task_sample_cputime(struct task_struct *p, u64 *samples)
|
@@ -236,7 +236,7 @@ static void task_sample_cputime(struct task_struct *p, u64 *samples)
|
||||||
u64 stime, utime;
|
u64 stime, utime;
|
||||||
|
|
||||||
task_cputime(p, &utime, &stime);
|
task_cputime(p, &utime, &stime);
|
||||||
@ -8327,7 +8331,7 @@ index 42d512fcfda2..71af3cd30ccc 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void proc_sample_cputime_atomic(struct task_cputime_atomic *at,
|
static void proc_sample_cputime_atomic(struct task_cputime_atomic *at,
|
||||||
@@ -796,6 +796,7 @@ static void collect_posix_cputimers(struct posix_cputimers *pct, u64 *samples,
|
@@ -806,6 +806,7 @@ static void collect_posix_cputimers(struct posix_cputimers *pct, u64 *samples,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8335,7 +8339,7 @@ index 42d512fcfda2..71af3cd30ccc 100644
|
|||||||
static inline void check_dl_overrun(struct task_struct *tsk)
|
static inline void check_dl_overrun(struct task_struct *tsk)
|
||||||
{
|
{
|
||||||
if (tsk->dl.dl_overrun) {
|
if (tsk->dl.dl_overrun) {
|
||||||
@@ -803,6 +804,7 @@ static inline void check_dl_overrun(struct task_struct *tsk)
|
@@ -813,6 +814,7 @@ static inline void check_dl_overrun(struct task_struct *tsk)
|
||||||
__group_send_sig_info(SIGXCPU, SEND_SIG_PRIV, tsk);
|
__group_send_sig_info(SIGXCPU, SEND_SIG_PRIV, tsk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -8343,7 +8347,7 @@ index 42d512fcfda2..71af3cd30ccc 100644
|
|||||||
|
|
||||||
static bool check_rlimit(u64 time, u64 limit, int signo, bool rt, bool hard)
|
static bool check_rlimit(u64 time, u64 limit, int signo, bool rt, bool hard)
|
||||||
{
|
{
|
||||||
@@ -830,8 +832,10 @@ static void check_thread_timers(struct task_struct *tsk,
|
@@ -840,8 +842,10 @@ static void check_thread_timers(struct task_struct *tsk,
|
||||||
u64 samples[CPUCLOCK_MAX];
|
u64 samples[CPUCLOCK_MAX];
|
||||||
unsigned long soft;
|
unsigned long soft;
|
||||||
|
|
||||||
@ -8354,7 +8358,7 @@ index 42d512fcfda2..71af3cd30ccc 100644
|
|||||||
|
|
||||||
if (expiry_cache_is_inactive(pct))
|
if (expiry_cache_is_inactive(pct))
|
||||||
return;
|
return;
|
||||||
@@ -845,7 +849,7 @@ static void check_thread_timers(struct task_struct *tsk,
|
@@ -855,7 +859,7 @@ static void check_thread_timers(struct task_struct *tsk,
|
||||||
soft = task_rlimit(tsk, RLIMIT_RTTIME);
|
soft = task_rlimit(tsk, RLIMIT_RTTIME);
|
||||||
if (soft != RLIM_INFINITY) {
|
if (soft != RLIM_INFINITY) {
|
||||||
/* Task RT timeout is accounted in jiffies. RTTIME is usec */
|
/* Task RT timeout is accounted in jiffies. RTTIME is usec */
|
||||||
@ -8363,7 +8367,7 @@ index 42d512fcfda2..71af3cd30ccc 100644
|
|||||||
unsigned long hard = task_rlimit_max(tsk, RLIMIT_RTTIME);
|
unsigned long hard = task_rlimit_max(tsk, RLIMIT_RTTIME);
|
||||||
|
|
||||||
/* At the hard limit, send SIGKILL. No further action. */
|
/* At the hard limit, send SIGKILL. No further action. */
|
||||||
@@ -1099,8 +1103,10 @@ static inline bool fastpath_timer_check(struct task_struct *tsk)
|
@@ -1091,8 +1095,10 @@ static inline bool fastpath_timer_check(struct task_struct *tsk)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8375,7 +8379,7 @@ index 42d512fcfda2..71af3cd30ccc 100644
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
diff --git a/kernel/trace/trace_selftest.c b/kernel/trace/trace_selftest.c
|
diff --git a/kernel/trace/trace_selftest.c b/kernel/trace/trace_selftest.c
|
||||||
index 69ee8ef12cee..3eaa2a21caa4 100644
|
index b5e3496cf803..0816db0b9c16 100644
|
||||||
--- a/kernel/trace/trace_selftest.c
|
--- a/kernel/trace/trace_selftest.c
|
||||||
+++ b/kernel/trace/trace_selftest.c
|
+++ b/kernel/trace/trace_selftest.c
|
||||||
@@ -1048,10 +1048,15 @@ static int trace_wakeup_test_thread(void *data)
|
@@ -1048,10 +1048,15 @@ static int trace_wakeup_test_thread(void *data)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user