From: Karel Zak Date: Thu, 1 Oct 2020 08:40:27 +0000 (+0200) Subject: chrt: use SCHED_FLAG_RESET_ON_FORK for sched_setattr() X-Git-Tag: v2.37-rc1~450 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=240634f80caf99590c4acdb432d9db7cbb8902df;p=thirdparty%2Futil-linux.git chrt: use SCHED_FLAG_RESET_ON_FORK for sched_setattr() Reviewed by many people, used for years (but probably nobody uses SCHED_DEADLINE with reset-on-fork), but we all missed: - sched_setscheduler() uses SCHED_RESET_ON_FORK (0x40000000) - sched_setattr() uses SCHED_FLAG_RESET_ON_FORK (0x01) Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1883013 Signed-off-by: Karel Zak --- diff --git a/schedutils/chrt.c b/schedutils/chrt.c index 299c99221e..dbc630fc1f 100644 --- a/schedutils/chrt.c +++ b/schedutils/chrt.c @@ -123,7 +123,7 @@ struct chrt_ctl { uint64_t period; unsigned int all_tasks : 1, /* all threads of the PID */ - reset_on_fork : 1, /* SCHED_RESET_ON_FORK */ + reset_on_fork : 1, /* SCHED_RESET_ON_FORK or SCHED_FLAG_RESET_ON_FORK */ altered : 1, /* sched_set**() used */ verbose : 1; /* verbose output */ }; @@ -385,9 +385,10 @@ static int set_sched_one(struct chrt_ctl *ctl, pid_t pid) sa.sched_period = ctl->period; sa.sched_deadline = ctl->deadline; -# ifdef SCHED_RESET_ON_FORK +# ifdef SCHED_FLAG_RESET_ON_FORK + /* Don't use SCHED_RESET_ON_FORK for sched_setattr()! */ if (ctl->reset_on_fork) - sa.sched_flags |= SCHED_RESET_ON_FORK; + sa.sched_flags |= SCHED_FLAG_RESET_ON_FORK; # endif errno = 0; return sched_setattr(pid, &sa, 0);