Re: [PATCH 1/1] fix-policy-display-for-cyclictest.patch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Mar 8, 2010 at 9:37 AM, Carsten Emde <C.Emde@xxxxxxxxx> 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@xxxxxxxxx>
>
> 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@xxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux