From: Ivan Shapovalov Date: Wed, 21 Aug 2024 17:36:08 +0000 (+0200) Subject: core/exec-invoke: document calling setpriority() after sched_setattr() X-Git-Tag: v257-rc1~663 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b73c86c6959ba3d89b610e2bbf99e93ed7cbb5f6;p=thirdparty%2Fsystemd.git core/exec-invoke: document calling setpriority() after sched_setattr() Fixes: 711a157738b ("core/exec-invoke: call setpriority() after sched_setattr()") --- diff --git a/src/core/exec-invoke.c b/src/core/exec-invoke.c index a867480300e..98d8b0c7d11 100644 --- a/src/core/exec-invoke.c +++ b/src/core/exec-invoke.c @@ -4450,6 +4450,13 @@ int exec_invoke( } } + /* + * Set nice value _after_ the call to sched_setattr() because struct sched_attr includes sched_nice + * which we do not set, thus it will clobber any previously set nice value. Scheduling policy might + * be reasonably set together with nice value e.g. in case of SCHED_BATCH (see sched(7)). + * It would be ideal to set both with the same call, but we cannot easily do so because of all the + * extra logic in setpriority_closest(). + */ if (context->nice_set) { r = setpriority_closest(context->nice); if (r < 0) {