]> err.no Git - util-linux/commitdiff
chrt: add support for SCHED_RESET_ON_FORK
authorAdrian Knoth <adi@drcomp.erfurt.thur.de>
Tue, 2 Feb 2010 16:18:29 +0000 (17:18 +0100)
committerKarel Zak <kzak@redhat.com>
Tue, 2 Feb 2010 17:16:05 +0000 (18:16 +0100)
From 9262c9832134f8a33ac2ea2854dc6d20acc712d1 Mon Sep 17 00:00:00 2001
From: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Date: Tue, 2 Feb 2010 16:57:23 +0100
Subject: [PATCH] Add support for SCHED_RESET_ON_FORK to chrt

SCHED_RESET_ON_FORK has been added in 2.6.31. If a thread has this flag
set, chrt reports "unknown" policy, which is confusing.

The patch adds support for this new flag. It will (can) only be applied
to SCHED_FIFO or SCHED_RR, so there's no need to catch the other
scheduling policies.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
schedutils/chrt.c

index 6953addd7e86069e77e999535abb6dafa3a8b0e7..6629c2e80d7d0f8734cda1ea22b8d1a08bdc3ea0 100644 (file)
 # define SCHED_IDLE 5
 #endif
 
+#if defined(__linux__) && !defined(SCHED_RESET_ON_FORK)
+#define SCHED_RESET_ON_FORK 0x40000000
+#endif
+
+
 static void show_usage(int rc)
 {
        fprintf(stdout, _(
@@ -92,6 +97,9 @@ static void show_rt_info(const char *what, pid_t pid)
        case SCHED_FIFO:
                printf("SCHED_FIFO\n");
                break;
+       case SCHED_FIFO|SCHED_RESET_ON_FORK:
+               printf("SCHED_FIFO|SCHED_RESET_ON_FORK\n");
+               break;
 #ifdef SCHED_IDLE
        case SCHED_IDLE:
                printf("SCHED_IDLE\n");
@@ -100,6 +108,9 @@ static void show_rt_info(const char *what, pid_t pid)
        case SCHED_RR:
                printf("SCHED_RR\n");
                break;
+       case SCHED_RR|SCHED_RESET_ON_FORK:
+               printf("SCHED_RR|SCHED_RESET_ON_FORK\n");
+               break;
 #ifdef SCHED_BATCH
        case SCHED_BATCH:
                printf("SCHED_BATCH\n");