* [PATCH 0/2] [rt-tests] Add smp option to ptsematest and svsematest @ 2010-03-07 20:48 Carsten Emde 2010-03-07 20:48 ` [PATCH 1/2] add-smp-option-to-ptsematest.patch Carsten Emde 2010-03-07 20:48 ` [PATCH 2/2] add-smp-option-to-svsematest.patch Carsten Emde 0 siblings, 2 replies; 9+ messages in thread From: Carsten Emde @ 2010-03-07 20:48 UTC (permalink / raw) To: Clark Williams; +Cc: RT-users The -S (--smp) option of cyclictest has proven to be quite useful. Add it to ptsematest and svsematest as well. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/2] add-smp-option-to-ptsematest.patch 2010-03-07 20:48 [PATCH 0/2] [rt-tests] Add smp option to ptsematest and svsematest Carsten Emde @ 2010-03-07 20:48 ` Carsten Emde 2010-03-08 12:45 ` John Kacur 2010-03-07 20:48 ` [PATCH 2/2] add-smp-option-to-svsematest.patch Carsten Emde 1 sibling, 1 reply; 9+ messages in thread From: Carsten Emde @ 2010-03-07 20:48 UTC (permalink / raw) To: Clark Williams; +Cc: RT-users, Carsten Emde [-- Attachment #1: add-smp-option-to-ptsematest.patch --] [-- Type: text/plain, Size: 2824 bytes --] Add SMP testing option (-S, --smp) to ptsematest, same as in cyclictest. Signed-off-by: Carsten Emde <C.Emde@osadl.org> Index: rt-tests/src/ptsematest/ptsematest.c =================================================================== --- rt-tests.orig/src/ptsematest/ptsematest.c +++ rt-tests/src/ptsematest/ptsematest.c @@ -173,6 +173,8 @@ static void display_help(void) "-i INTV --interval=INTV base interval of thread in us default=1000\n" "-l LOOPS --loops=LOOPS number of loops: default=0(endless)\n" "-p PRIO --prio=PRIO priority\n" + "-S --smp SMP testing: options -a -t and same priority\n" + " of all threads\n" "-t --threads one thread per available processor\n" "-t [NUM] --threads=NUM number of threads:\n" " without NUM, threads = max_cpus\n" @@ -189,6 +191,8 @@ static int num_threads = 1; static int max_cycles; static int interval = 1000; static int distance = 500; +static int smp; +static int sameprio; static void process_options (int argc, char *argv[]) { @@ -205,16 +209,21 @@ static void process_options (int argc, c {"interval", required_argument, NULL, 'i'}, {"loops", required_argument, NULL, 'l'}, {"priority", required_argument, NULL, 'p'}, + {"smp", no_argument, NULL, 'S'}, {"threads", optional_argument, NULL, 't'}, {"help", no_argument, NULL, '?'}, {NULL, 0, NULL, 0} }; - int c = getopt_long (argc, argv, "a::b:d:i:l:p:t::", + int c = getopt_long (argc, argv, "a::b:d:i:l:p:St::", long_options, &option_index); if (c == -1) break; switch (c) { case 'a': + if (smp) { + warn("-a ignored due to --smp\n"); + break; + } if (optarg != NULL) { affinity = atoi(optarg); setaffinity = AFFINITY_SPECIFIED; @@ -230,7 +239,16 @@ static void process_options (int argc, c case 'i': interval = atoi(optarg); break; case 'l': max_cycles = atoi(optarg); break; case 'p': priority = atoi(optarg); break; + case 'S': + smp = 1; + num_threads = max_cpus; + setaffinity = AFFINITY_USEALL; + break; case 't': + if (smp) { + warn("-t ignored due to --smp\n"); + break; + } if (optarg != NULL) num_threads = atoi(optarg); else if (optind<argc && atoi(argv[optind])) @@ -261,6 +279,9 @@ static void process_options (int argc, c if (num_threads < 1) error = 1; + if (priority && smp) + sameprio = 1; + if (error) display_help (); } @@ -327,7 +348,7 @@ int main(int argc, char *argv[]) } receiver[i].priority = priority; receiver[i].tracelimit = tracelimit; - if (priority > 0) + if (priority > 1 && !sameprio) priority--; receiver[i].delay.tv_sec = interval / USEC_PER_SEC; receiver[i].delay.tv_nsec = (interval % USEC_PER_SEC) * 1000; ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] add-smp-option-to-ptsematest.patch 2010-03-07 20:48 ` [PATCH 1/2] add-smp-option-to-ptsematest.patch Carsten Emde @ 2010-03-08 12:45 ` John Kacur 0 siblings, 0 replies; 9+ messages in thread From: John Kacur @ 2010-03-08 12:45 UTC (permalink / raw) To: Carsten Emde; +Cc: Clark Williams, RT-users On Sun, Mar 7, 2010 at 9:48 PM, Carsten Emde <C.Emde@osadl.org> wrote: > Add SMP testing option (-S, --smp) to ptsematest, same as in > cyclictest. > > Signed-off-by: Carsten Emde <C.Emde@osadl.org> > > Index: rt-tests/src/ptsematest/ptsematest.c > =================================================================== > --- rt-tests.orig/src/ptsematest/ptsematest.c > +++ rt-tests/src/ptsematest/ptsematest.c > @@ -173,6 +173,8 @@ static void display_help(void) > "-i INTV --interval=INTV base interval of thread in us default=1000\n" > "-l LOOPS --loops=LOOPS number of loops: default=0(endless)\n" > "-p PRIO --prio=PRIO priority\n" > + "-S --smp SMP testing: options -a -t and same priority\n" > + " of all threads\n" > "-t --threads one thread per available processor\n" > "-t [NUM] --threads=NUM number of threads:\n" > " without NUM, threads = max_cpus\n" > @@ -189,6 +191,8 @@ static int num_threads = 1; > static int max_cycles; > static int interval = 1000; > static int distance = 500; > +static int smp; > +static int sameprio; > > static void process_options (int argc, char *argv[]) > { > @@ -205,16 +209,21 @@ static void process_options (int argc, c > {"interval", required_argument, NULL, 'i'}, > {"loops", required_argument, NULL, 'l'}, > {"priority", required_argument, NULL, 'p'}, > + {"smp", no_argument, NULL, 'S'}, > {"threads", optional_argument, NULL, 't'}, > {"help", no_argument, NULL, '?'}, > {NULL, 0, NULL, 0} > }; > - int c = getopt_long (argc, argv, "a::b:d:i:l:p:t::", > + int c = getopt_long (argc, argv, "a::b:d:i:l:p:St::", > long_options, &option_index); > if (c == -1) > break; > switch (c) { > case 'a': > + if (smp) { > + warn("-a ignored due to --smp\n"); > + break; > + } > if (optarg != NULL) { > affinity = atoi(optarg); > setaffinity = AFFINITY_SPECIFIED; > @@ -230,7 +239,16 @@ static void process_options (int argc, c > case 'i': interval = atoi(optarg); break; > case 'l': max_cycles = atoi(optarg); break; > case 'p': priority = atoi(optarg); break; > + case 'S': > + smp = 1; > + num_threads = max_cpus; > + setaffinity = AFFINITY_USEALL; > + break; > case 't': > + if (smp) { > + warn("-t ignored due to --smp\n"); > + break; > + } > if (optarg != NULL) > num_threads = atoi(optarg); > else if (optind<argc && atoi(argv[optind])) > @@ -261,6 +279,9 @@ static void process_options (int argc, c > if (num_threads < 1) > error = 1; > > + if (priority && smp) > + sameprio = 1; > + > if (error) > display_help (); > } > @@ -327,7 +348,7 @@ int main(int argc, char *argv[]) > } > receiver[i].priority = priority; > receiver[i].tracelimit = tracelimit; > - if (priority > 0) > + if (priority > 1 && !sameprio) > priority--; > receiver[i].delay.tv_sec = interval / USEC_PER_SEC; > receiver[i].delay.tv_nsec = (interval % USEC_PER_SEC) * 1000; > > -- 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] 9+ messages in thread
* [PATCH 2/2] add-smp-option-to-svsematest.patch 2010-03-07 20:48 [PATCH 0/2] [rt-tests] Add smp option to ptsematest and svsematest Carsten Emde 2010-03-07 20:48 ` [PATCH 1/2] add-smp-option-to-ptsematest.patch Carsten Emde @ 2010-03-07 20:48 ` Carsten Emde 2010-03-08 12:45 ` John Kacur 2010-03-09 18:10 ` David Sommerseth 1 sibling, 2 replies; 9+ messages in thread From: Carsten Emde @ 2010-03-07 20:48 UTC (permalink / raw) To: Clark Williams; +Cc: RT-users, Carsten Emde [-- Attachment #1: add-smp-option-to-svsematest.patch --] [-- Type: text/plain, Size: 2861 bytes --] Add SMP testing option (-S, --smp) to svsematest, same as in cyclictest. Signed-off-by: Carsten Emde <C.Emde@osadl.org> Index: rt-tests/src/svsematest/svsematest.c =================================================================== --- rt-tests.orig/src/svsematest/svsematest.c +++ rt-tests/src/svsematest/svsematest.c @@ -248,6 +248,8 @@ static void display_help(void) "-i INTV --interval=INTV base interval of thread in us default=1000\n" "-l LOOPS --loops=LOOPS number of loops: default=0(endless)\n" "-p PRIO --prio=PRIO priority\n" + "-S --smp SMP testing: options -a -t and same priority\n" + " of all threads\n" "-t --threads one thread per available processor\n" "-t [NUM] --threads=NUM number of threads:\n" " without NUM, threads = max_cpus\n" @@ -263,6 +265,8 @@ static int num_threads = 1; static int max_cycles; static int interval = 1000; static int distance = 500; +static int smp; +static int sameprio; static void process_options (int argc, char *argv[]) { @@ -281,16 +285,21 @@ static void process_options (int argc, c {"interval", required_argument, NULL, 'i'}, {"loops", required_argument, NULL, 'l'}, {"priority", required_argument, NULL, 'p'}, + {"smp", no_argument, NULL, 'S'}, {"threads", optional_argument, NULL, 't'}, {"help", no_argument, NULL, '?'}, {NULL, 0, NULL, 0} }; - int c = getopt_long (argc, argv, "a::b:d:f::i:l:p:t::", + int c = getopt_long (argc, argv, "a::b:d:f::i:l:p:St::", long_options, &option_index); if (c == -1) break; switch (c) { case 'a': + if (smp) { + warn("-a ignored due to --smp\n"); + break; + } if (optarg != NULL) { affinity = atoi(optarg); setaffinity = AFFINITY_SPECIFIED; @@ -317,7 +326,16 @@ static void process_options (int argc, c case 'i': interval = atoi(optarg); break; case 'l': max_cycles = atoi(optarg); break; case 'p': priority = atoi(optarg); break; + case 'S': + smp = 1; + num_threads = max_cpus; + setaffinity = AFFINITY_USEALL; + break; case 't': + if (smp) { + warn("-t ignored due to --smp\n"); + break; + } if (optarg != NULL) num_threads = atoi(optarg); else if (optind<argc && atoi(argv[optind])) @@ -347,6 +365,9 @@ static void process_options (int argc, c if (priority < 0 || priority > 99) error = 1; + if (priority && smp) + sameprio = 1; + tracelimit = thistracelimit; } if (error) @@ -525,7 +546,7 @@ int main(int argc, char *argv[]) } receiver[i].priority = priority; receiver[i].tracelimit = tracelimit; - if (priority > 0) + if (priority > 1 && !sameprio) priority--; receiver[i].delay.tv_sec = interval / USEC_PER_SEC; receiver[i].delay.tv_nsec = (interval % USEC_PER_SEC) * 1000; ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] add-smp-option-to-svsematest.patch 2010-03-07 20:48 ` [PATCH 2/2] add-smp-option-to-svsematest.patch Carsten Emde @ 2010-03-08 12:45 ` John Kacur 2010-03-09 18:10 ` David Sommerseth 1 sibling, 0 replies; 9+ messages in thread From: John Kacur @ 2010-03-08 12:45 UTC (permalink / raw) To: Carsten Emde; +Cc: Clark Williams, RT-users On Sun, Mar 7, 2010 at 9:48 PM, Carsten Emde <C.Emde@osadl.org> wrote: > Add SMP testing option (-S, --smp) to svsematest, same as in > cyclictest. > > Signed-off-by: Carsten Emde <C.Emde@osadl.org> > > Index: rt-tests/src/svsematest/svsematest.c > =================================================================== > --- rt-tests.orig/src/svsematest/svsematest.c > +++ rt-tests/src/svsematest/svsematest.c > @@ -248,6 +248,8 @@ static void display_help(void) > "-i INTV --interval=INTV base interval of thread in us default=1000\n" > "-l LOOPS --loops=LOOPS number of loops: default=0(endless)\n" > "-p PRIO --prio=PRIO priority\n" > + "-S --smp SMP testing: options -a -t and same priority\n" > + " of all threads\n" > "-t --threads one thread per available processor\n" > "-t [NUM] --threads=NUM number of threads:\n" > " without NUM, threads = max_cpus\n" > @@ -263,6 +265,8 @@ static int num_threads = 1; > static int max_cycles; > static int interval = 1000; > static int distance = 500; > +static int smp; > +static int sameprio; > > static void process_options (int argc, char *argv[]) > { > @@ -281,16 +285,21 @@ static void process_options (int argc, c > {"interval", required_argument, NULL, 'i'}, > {"loops", required_argument, NULL, 'l'}, > {"priority", required_argument, NULL, 'p'}, > + {"smp", no_argument, NULL, 'S'}, > {"threads", optional_argument, NULL, 't'}, > {"help", no_argument, NULL, '?'}, > {NULL, 0, NULL, 0} > }; > - int c = getopt_long (argc, argv, "a::b:d:f::i:l:p:t::", > + int c = getopt_long (argc, argv, "a::b:d:f::i:l:p:St::", > long_options, &option_index); > if (c == -1) > break; > switch (c) { > case 'a': > + if (smp) { > + warn("-a ignored due to --smp\n"); > + break; > + } > if (optarg != NULL) { > affinity = atoi(optarg); > setaffinity = AFFINITY_SPECIFIED; > @@ -317,7 +326,16 @@ static void process_options (int argc, c > case 'i': interval = atoi(optarg); break; > case 'l': max_cycles = atoi(optarg); break; > case 'p': priority = atoi(optarg); break; > + case 'S': > + smp = 1; > + num_threads = max_cpus; > + setaffinity = AFFINITY_USEALL; > + break; > case 't': > + if (smp) { > + warn("-t ignored due to --smp\n"); > + break; > + } > if (optarg != NULL) > num_threads = atoi(optarg); > else if (optind<argc && atoi(argv[optind])) > @@ -347,6 +365,9 @@ static void process_options (int argc, c > if (priority < 0 || priority > 99) > error = 1; > > + if (priority && smp) > + sameprio = 1; > + > tracelimit = thistracelimit; > } > if (error) > @@ -525,7 +546,7 @@ int main(int argc, char *argv[]) > } > receiver[i].priority = priority; > receiver[i].tracelimit = tracelimit; > - if (priority > 0) > + if (priority > 1 && !sameprio) > priority--; > receiver[i].delay.tv_sec = interval / USEC_PER_SEC; > receiver[i].delay.tv_nsec = (interval % USEC_PER_SEC) * 1000; > > -- 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] 9+ messages in thread
* Re: [PATCH 2/2] add-smp-option-to-svsematest.patch 2010-03-07 20:48 ` [PATCH 2/2] add-smp-option-to-svsematest.patch Carsten Emde 2010-03-08 12:45 ` John Kacur @ 2010-03-09 18:10 ` David Sommerseth 2010-03-09 18:15 ` John Kacur 2010-03-09 20:39 ` Carsten Emde 1 sibling, 2 replies; 9+ messages in thread From: David Sommerseth @ 2010-03-09 18:10 UTC (permalink / raw) To: Carsten Emde; +Cc: RT-users On 07/03/10 21:48, Carsten Emde wrote: > - if (priority > 0) > + if (priority > 1 && !sameprio) > priority--; Unless I'm missing something really obvious, shouldn't this one state: if (priority > 0 && !sameprio) priority--; Or else 1 will be the lowest priority. It's a similar situation in "[PATCH 1/2] add-smp-option-to-ptsematest.patch" as well. kind regards, David Sommerseth ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] add-smp-option-to-svsematest.patch 2010-03-09 18:10 ` David Sommerseth @ 2010-03-09 18:15 ` John Kacur 2010-03-09 21:07 ` Carsten Emde 2010-03-09 20:39 ` Carsten Emde 1 sibling, 1 reply; 9+ messages in thread From: John Kacur @ 2010-03-09 18:15 UTC (permalink / raw) To: David Sommerseth; +Cc: Carsten Emde, RT-users On Tue, Mar 9, 2010 at 7:10 PM, David Sommerseth <davids@redhat.com> wrote: > On 07/03/10 21:48, Carsten Emde wrote: >> - if (priority > 0) >> + if (priority > 1 && !sameprio) >> priority--; > > Unless I'm missing something really obvious, shouldn't this one state: > > if (priority > 0 && !sameprio) > priority--; > > Or else 1 will be the lowest priority. It's a similar situation in > "[PATCH 1/2] add-smp-option-to-ptsematest.patch" as well. > > > kind regards, > > David Sommerseth Carsten is the owner of this code, he may very will have intended that 1 be the lowest priority, so I didn't want to second guess him. Carsten, is it useful to have SCHED_OTHER for this test? Thanks -- 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] 9+ messages in thread
* Re: [PATCH 2/2] add-smp-option-to-svsematest.patch 2010-03-09 18:15 ` John Kacur @ 2010-03-09 21:07 ` Carsten Emde 0 siblings, 0 replies; 9+ messages in thread From: Carsten Emde @ 2010-03-09 21:07 UTC (permalink / raw) To: John Kacur; +Cc: David Sommerseth, RT-users John, >>> - if (priority > 0) >>> + if (priority > 1 && !sameprio) >>> priority--; >> Unless I'm missing something really obvious, shouldn't this one state: >> if (priority > 0 && !sameprio) >> priority--; >> Or else 1 will be the lowest priority. It's a similar situation in >> "[PATCH 1/2] add-smp-option-to-ptsematest.patch" as well. > Carsten, is it useful to have SCHED_OTHER for this test? Don't think so. These tests (svsematest, ptsematest etc.) are intended as additional tests to cyclictest. I used them to make sure that the implementations of the various semaphore mechanisms (that mostly boil down to the same kernel code) do not introduce additional latencies. It may be sufficient to have cyclictest equipped with the numerous (and exotic) options. Another plan was to add a plugin slot to cyclictest, since probably more than 90% of the code of the various test programs is identical. A plugin version of cyclictest would provide all the various runtime and scheduler options, the stop clocks and the test framework. The actual test plugin could be specified as a command line argument. The plugin interface would need to connect the start and stop code of a particular test to cyclictest. But this was just a plan... Carsten. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] add-smp-option-to-svsematest.patch 2010-03-09 18:10 ` David Sommerseth 2010-03-09 18:15 ` John Kacur @ 2010-03-09 20:39 ` Carsten Emde 1 sibling, 0 replies; 9+ messages in thread From: Carsten Emde @ 2010-03-09 20:39 UTC (permalink / raw) To: David Sommerseth; +Cc: John Kacur, RT-users David, >> - if (priority > 0) >> + if (priority > 1 && !sameprio) >> priority--; > Unless I'm missing something really obvious, shouldn't this one state: > if (priority > 0 && !sameprio) > priority--; > Or else 1 will be the lowest priority. [..] Yes, which is ok, since the range of valid SCHED_FIFO priorities is 1 to 99. A priority of 0 would cause sched_setscheduler() to set the EINVAL error condition. Carsten. ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2010-03-09 21:10 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-03-07 20:48 [PATCH 0/2] [rt-tests] Add smp option to ptsematest and svsematest Carsten Emde 2010-03-07 20:48 ` [PATCH 1/2] add-smp-option-to-ptsematest.patch Carsten Emde 2010-03-08 12:45 ` John Kacur 2010-03-07 20:48 ` [PATCH 2/2] add-smp-option-to-svsematest.patch Carsten Emde 2010-03-08 12:45 ` John Kacur 2010-03-09 18:10 ` David Sommerseth 2010-03-09 18:15 ` John Kacur 2010-03-09 21:07 ` Carsten Emde 2010-03-09 20:39 ` Carsten Emde
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).