mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-08 14:23:19 +00:00
Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler fixes from Ingo Molnar: "Three small fixes" * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: sched/clock: Prevent tracing recursion in sched_clock_cpu() stop_machine: Fix^2 race between stop_two_cpus() and stop_cpus() sched/deadline: Deny unprivileged users to set/change SCHED_DEADLINE policy
This commit is contained in:
commit
59bf6c3c6c
@ -301,14 +301,14 @@ u64 sched_clock_cpu(int cpu)
|
||||
if (unlikely(!sched_clock_running))
|
||||
return 0ull;
|
||||
|
||||
preempt_disable();
|
||||
preempt_disable_notrace();
|
||||
scd = cpu_sdc(cpu);
|
||||
|
||||
if (cpu != smp_processor_id())
|
||||
clock = sched_clock_remote(scd);
|
||||
else
|
||||
clock = sched_clock_local(scd);
|
||||
preempt_enable();
|
||||
preempt_enable_notrace();
|
||||
|
||||
return clock;
|
||||
}
|
||||
|
@ -3338,6 +3338,15 @@ static int __sched_setscheduler(struct task_struct *p,
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
/*
|
||||
* Can't set/change SCHED_DEADLINE policy at all for now
|
||||
* (safest behavior); in the future we would like to allow
|
||||
* unprivileged DL tasks to increase their relative deadline
|
||||
* or reduce their runtime (both ways reducing utilization)
|
||||
*/
|
||||
if (dl_policy(policy))
|
||||
return -EPERM;
|
||||
|
||||
/*
|
||||
* Treat SCHED_IDLE as nice 20. Only allow a switch to
|
||||
* SCHED_NORMAL if the RLIMIT_NICE would normally permit it.
|
||||
|
@ -293,7 +293,7 @@ int stop_two_cpus(unsigned int cpu1, unsigned int cpu2, cpu_stop_fn_t fn, void *
|
||||
*/
|
||||
smp_call_function_single(min(cpu1, cpu2),
|
||||
&irq_cpu_stop_queue_work,
|
||||
&call_args, 0);
|
||||
&call_args, 1);
|
||||
lg_local_unlock(&stop_cpus_lock);
|
||||
preempt_enable();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user