Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull scheduler fixes from Ingo Molnar:
"Two fixes: a crash fix for an ARM SoC platform, and kernel-doc
warnings fixes"

* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
sched/rt: Do not pull from current CPU if only one CPU to pull
sched/core: Fix kernel-doc warnings after code movement

+18 -12
+11 -11
kernel/sched/core.c
··· 5097 5097 return ret; 5098 5098 } 5099 5099 5100 - /** 5101 - * sys_sched_rr_get_interval - return the default timeslice of a process. 5102 - * @pid: pid of the process. 5103 - * @interval: userspace pointer to the timeslice value. 5104 - * 5105 - * this syscall writes the default timeslice value of a given process 5106 - * into the user-space timespec buffer. A value of '0' means infinity. 5107 - * 5108 - * Return: On success, 0 and the timeslice is in @interval. Otherwise, 5109 - * an error code. 5110 - */ 5111 5100 static int sched_rr_get_interval(pid_t pid, struct timespec64 *t) 5112 5101 { 5113 5102 struct task_struct *p; ··· 5133 5144 return retval; 5134 5145 } 5135 5146 5147 + /** 5148 + * sys_sched_rr_get_interval - return the default timeslice of a process. 5149 + * @pid: pid of the process. 5150 + * @interval: userspace pointer to the timeslice value. 5151 + * 5152 + * this syscall writes the default timeslice value of a given process 5153 + * into the user-space timespec buffer. A value of '0' means infinity. 5154 + * 5155 + * Return: On success, 0 and the timeslice is in @interval. Otherwise, 5156 + * an error code. 5157 + */ 5136 5158 SYSCALL_DEFINE2(sched_rr_get_interval, pid_t, pid, 5137 5159 struct timespec __user *, interval) 5138 5160 {
+7 -1
kernel/sched/rt.c
··· 2034 2034 bool resched = false; 2035 2035 struct task_struct *p; 2036 2036 struct rq *src_rq; 2037 + int rt_overload_count = rt_overloaded(this_rq); 2037 2038 2038 - if (likely(!rt_overloaded(this_rq))) 2039 + if (likely(!rt_overload_count)) 2039 2040 return; 2040 2041 2041 2042 /* ··· 2044 2043 * see overloaded we must also see the rto_mask bit. 2045 2044 */ 2046 2045 smp_rmb(); 2046 + 2047 + /* If we are the only overloaded CPU do nothing */ 2048 + if (rt_overload_count == 1 && 2049 + cpumask_test_cpu(this_rq->cpu, this_rq->rd->rto_mask)) 2050 + return; 2047 2051 2048 2052 #ifdef HAVE_RT_PUSH_IPI 2049 2053 if (sched_feat(RT_PUSH_IPI)) {