Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 83895147 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

Merge branch 'sched/urgent' into timers/urgent



Merging it here because an upcoming timers/urgent fix relies on
a change already in sched/urgent and not yet upstream.

Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parents a6a95406 483b4ee6
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -443,6 +443,7 @@ struct pacct_struct {
 * @utime:		time spent in user mode, in &cputime_t units
 * @stime:		time spent in kernel mode, in &cputime_t units
 * @sum_exec_runtime:	total time spent on the CPU, in nanoseconds
 * @lock:		lock for fields in this struct
 *
 * This structure groups together three kinds of CPU time that are
 * tracked for threads and thread groups.  Most things considering
+11 −6
Original line number Diff line number Diff line
@@ -3890,19 +3890,24 @@ int select_nohz_load_balancer(int stop_tick)
	int cpu = smp_processor_id();

	if (stop_tick) {
		cpumask_set_cpu(cpu, nohz.cpu_mask);
		cpu_rq(cpu)->in_nohz_recently = 1;

		if (!cpu_active(cpu)) {
			if (atomic_read(&nohz.load_balancer) != cpu)
				return 0;

			/*
		 * If we are going offline and still the leader, give up!
			 * If we are going offline and still the leader,
			 * give up!
			 */
		if (!cpu_active(cpu) &&
		    atomic_read(&nohz.load_balancer) == cpu) {
			if (atomic_cmpxchg(&nohz.load_balancer, cpu, -1) != cpu)
				BUG();

			return 0;
		}

		cpumask_set_cpu(cpu, nohz.cpu_mask);

		/* time for ilb owner also to sleep */
		if (cpumask_weight(nohz.cpu_mask) == num_online_cpus()) {
			if (atomic_read(&nohz.load_balancer) == cpu)