* [PATCH 0/1] rt-tests: fix-policy-display-for-cyclictest.patch @ 2010-03-08 8:37 Carsten Emde 2010-03-08 8:37 ` [PATCH 1/1] fix-policy-display-for-cyclictest.patch Carsten Emde 0 siblings, 1 reply; 3+ messages in thread From: Carsten Emde @ 2010-03-08 8:37 UTC (permalink / raw) To: John Kacur; +Cc: Clark Williams, RT-users Display all policies of cyclictest, if forced to something else than specified. Evaluate the priority before it is decremented. ^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/1] fix-policy-display-for-cyclictest.patch 2010-03-08 8:37 [PATCH 0/1] rt-tests: fix-policy-display-for-cyclictest.patch Carsten Emde @ 2010-03-08 8:37 ` Carsten Emde 2010-03-08 12:46 ` John Kacur 0 siblings, 1 reply; 3+ messages in thread From: Carsten Emde @ 2010-03-08 8:37 UTC (permalink / raw) To: John Kacur; +Cc: Clark Williams, RT-users, Carsten Emde [-- Attachment #1: fix-policy-display-for-cyclictest.patch --] [-- Type: text/plain, Size: 2463 bytes --] If the policy is forced to SCHED_OTHER, since the priority no longer fits into the SCHED_FIFO or SCHED_RR range, the policy display of cyclictest is somewhat incorrect. Display all policies. Also make the variable policystr static; the condition "if (!policystr)" is useless, otherwise. In addition, place the priority logic before decrementing the priority; a priority of 1 is incorrectly made SCHED_OTHER, otherwise. Signed-off-by: Carsten Emde <C.Emde@osadl.org> Index: rt-tests/src/cyclictest/cyclictest.c =================================================================== --- rt-tests.orig/src/cyclictest/cyclictest.c +++ rt-tests/src/cyclictest/cyclictest.c @@ -156,6 +156,7 @@ static int histogram = 0; static int duration = 0; static int use_nsecs = 0; static int refresh_on_max; +static int force_sched_other; static pthread_cond_t refresh_on_max_cond = PTHREAD_COND_INITIALIZER; static pthread_mutex_t refresh_on_max_lock = PTHREAD_MUTEX_INITIALIZER; @@ -1295,11 +1296,14 @@ int main(int argc, char **argv) } par->prio = priority; + if (priority && (policy == SCHED_FIFO || policy == SCHED_RR)) + par->policy = policy; + else { + par->policy = SCHED_OTHER; + force_sched_other = 1; + } if (priority && !histogram && !smp && !numa) priority--; - if (priority && policy == SCHED_FIFO) par->policy = SCHED_FIFO; - else if (priority && policy == SCHED_RR) par->policy = SCHED_RR; - else par->policy = SCHED_OTHER; par->clock = clocksources[clocksel]; par->mode = mode; par->timermode = timermode; @@ -1330,18 +1334,27 @@ int main(int argc, char **argv) while (!shutdown) { char lavg[256]; int fd, len, allstopped = 0; - char *policystr = NULL; + static char *policystr = NULL; + static char *slash = NULL; + static char *policystr2; if (!policystr) policystr = policyname(policy); + if (!slash) { + if (force_sched_other) { + slash = "/"; + policystr2 = policyname(SCHED_OTHER); + } else + slash = policystr2 = ""; + } if (!verbose && !quiet) { fd = open("/proc/loadavg", O_RDONLY, 0666); len = read(fd, &lavg, 255); close(fd); lavg[len-1] = 0x0; - printf("policy: %s: loadavg: %s \n\n", - policystr, lavg); + printf("policy: %s%s%s: loadavg: %s \n\n", + policystr, slash, policystr2, lavg); } for (i = 0; i < num_threads; i++) { ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 1/1] fix-policy-display-for-cyclictest.patch 2010-03-08 8:37 ` [PATCH 1/1] fix-policy-display-for-cyclictest.patch Carsten Emde @ 2010-03-08 12:46 ` John Kacur 0 siblings, 0 replies; 3+ messages in thread From: John Kacur @ 2010-03-08 12:46 UTC (permalink / raw) To: Carsten Emde; +Cc: Clark Williams, RT-users On Mon, Mar 8, 2010 at 9:37 AM, Carsten Emde <C.Emde@osadl.org> wrote: > If the policy is forced to SCHED_OTHER, since the priority no longer > fits into the SCHED_FIFO or SCHED_RR range, the policy display of > cyclictest is somewhat incorrect. > > Display all policies. > > Also make the variable policystr static; the condition > "if (!policystr)" is useless, otherwise. > > In addition, place the priority logic before decrementing the priority; > a priority of 1 is incorrectly made SCHED_OTHER, otherwise. > > Signed-off-by: Carsten Emde <C.Emde@osadl.org> > > Index: rt-tests/src/cyclictest/cyclictest.c > =================================================================== > --- rt-tests.orig/src/cyclictest/cyclictest.c > +++ rt-tests/src/cyclictest/cyclictest.c > @@ -156,6 +156,7 @@ static int histogram = 0; > static int duration = 0; > static int use_nsecs = 0; > static int refresh_on_max; > +static int force_sched_other; > > static pthread_cond_t refresh_on_max_cond = PTHREAD_COND_INITIALIZER; > static pthread_mutex_t refresh_on_max_lock = PTHREAD_MUTEX_INITIALIZER; > @@ -1295,11 +1296,14 @@ int main(int argc, char **argv) > } > > par->prio = priority; > + if (priority && (policy == SCHED_FIFO || policy == SCHED_RR)) > + par->policy = policy; > + else { > + par->policy = SCHED_OTHER; > + force_sched_other = 1; > + } > if (priority && !histogram && !smp && !numa) > priority--; > - if (priority && policy == SCHED_FIFO) par->policy = SCHED_FIFO; > - else if (priority && policy == SCHED_RR) par->policy = SCHED_RR; > - else par->policy = SCHED_OTHER; > par->clock = clocksources[clocksel]; > par->mode = mode; > par->timermode = timermode; > @@ -1330,18 +1334,27 @@ int main(int argc, char **argv) > while (!shutdown) { > char lavg[256]; > int fd, len, allstopped = 0; > - char *policystr = NULL; > + static char *policystr = NULL; > + static char *slash = NULL; > + static char *policystr2; > > if (!policystr) > policystr = policyname(policy); > > + if (!slash) { > + if (force_sched_other) { > + slash = "/"; > + policystr2 = policyname(SCHED_OTHER); > + } else > + slash = policystr2 = ""; > + } > if (!verbose && !quiet) { > fd = open("/proc/loadavg", O_RDONLY, 0666); > len = read(fd, &lavg, 255); > close(fd); > lavg[len-1] = 0x0; > - printf("policy: %s: loadavg: %s \n\n", > - policystr, lavg); > + printf("policy: %s%s%s: loadavg: %s \n\n", > + policystr, slash, policystr2, lavg); > } > > for (i = 0; i < num_threads; i++) { > > -- Thanks! I like the fifo / other display - that's more correct. Acked-by: John Kacur <jkacur@redhat.com> -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-03-08 12:47 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-03-08 8:37 [PATCH 0/1] rt-tests: fix-policy-display-for-cyclictest.patch Carsten Emde 2010-03-08 8:37 ` [PATCH 1/1] fix-policy-display-for-cyclictest.patch Carsten Emde 2010-03-08 12:46 ` John Kacur
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).