]> git.ipfire.org Git - thirdparty/systemd.git/commit - .gitignore
sched: Only setting CPUSchedulingPriority=rr doesn't work
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>
Thu, 1 Nov 2012 17:48:11 +0000 (18:48 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 15 Nov 2012 15:16:45 +0000 (16:16 +0100)
commitbb11271068ff34434f5b8cefd0c2c0bae5ed7fd1
tree56195078c0c89146b7bf442d4569fe305ebc498f
parent71c015969233c21ea38b1e63993d02fe171df672
sched: Only setting CPUSchedulingPriority=rr doesn't work

A service that only sets the scheduling policy to round-robin
fails to be started. This is because the cpu_sched_priority is
initialized to 0 and is not adjusted when the policy is changed.

Clamp the cpu_sched_priority when the scheduler policy is set. Use
the current policy to validate the new priority.

Change the manual page to state that the given range only applies
to the real-time scheduling policies.

Add a testcase that verifies this change:

$ make test-sched-prio; ./test-sched-prio
[test/sched_idle_bad.service:6] CPU scheduling priority is out of range, ignoring: 1
[test/sched_rr_bad.service:7] CPU scheduling priority is out of range, ignoring: 0
[test/sched_rr_bad.service:8] CPU scheduling priority is out of range, ignoring: 100
.gitignore
Makefile.am
man/systemd.exec.xml
src/core/load-fragment.c
src/test/test-sched-prio.c [new file with mode: 0644]
test/sched_idle_bad.service [new file with mode: 0644]
test/sched_idle_ok.service [new file with mode: 0644]
test/sched_rr_bad.service [new file with mode: 0644]
test/sched_rr_change.service [new file with mode: 0644]
test/sched_rr_ok.service [new file with mode: 0644]