chrt: fix for SCHED_RESET_ON_FORK bit

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2019-04-05 16:59:07 +02:00
parent ae5ca6fc41
commit 43d09e79db

View File

@ -135,6 +135,17 @@ int chrt_main(int argc UNUSED_PARAM, char **argv)
pol = sched_getscheduler(pid); pol = sched_getscheduler(pid);
if (pol < 0) if (pol < 0)
bb_perror_msg_and_die("can't %cet pid %u's policy", 'g', (int)pid); bb_perror_msg_and_die("can't %cet pid %u's policy", 'g', (int)pid);
#ifdef SCHED_RESET_ON_FORK
/* "Since Linux 2.6.32, the SCHED_RESET_ON_FORK flag
* can be ORed in policy when calling sched_setscheduler().
* As a result of including this flag, children created by
* fork(2) do not inherit privileged scheduling policies"
*
* This bit is also returned by sched_getscheduler()!
* (TODO: do we want to show it?)
*/
pol &= ~SCHED_RESET_ON_FORK;
#endif
printf("pid %u's %s scheduling policy: SCHED_%s\n", printf("pid %u's %s scheduling policy: SCHED_%s\n",
pid, current_new, policy_name(pol) pid, current_new, policy_name(pol)
); );