summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClark Williams <williams@redhat.com>2012-02-13 12:37:49 -0600
committerClark Williams <williams@redhat.com>2012-02-13 12:37:49 -0600
commit2819d683a31765c8f46e7e0a97cd6806516edc7a (patch)
tree98dff05d9864d410e78d542028b2f75a6f7a4192
parent1d632c3bf9deefbff733509b4fd0cad8ce4fa782 (diff)
parent64e635bc513a3a114729f86de7a87780b2737605 (diff)
downloadrt-tests-2819d683a31765c8f46e7e0a97cd6806516edc7a.tar.gz
Merge branch 'master' into work
-rw-r--r--src/cyclictest/cyclictest.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
index c0cde4a..6a61a9c 100644
--- a/src/cyclictest/cyclictest.c
+++ b/src/cyclictest/cyclictest.c
@@ -33,6 +33,7 @@
#include <sys/time.h>
#include <sys/utsname.h>
#include <sys/mman.h>
+#include <sys/resource.h>
#include "rt_numa.h"
#include "rt-utils.h"
@@ -642,7 +643,10 @@ void *timerthread(void *param)
memset(&schedp, 0, sizeof(schedp));
schedp.sched_priority = par->prio;
- sched_setscheduler(0, par->policy, &schedp);
+ if(sched_setscheduler(0, par->policy, &schedp) == -1){
+ fprintf(stderr,"sched_setscheduler prio %d failed\n",par->prio);
+ par->prio=0;
+ }
/* Get current time */
clock_gettime(par->clock, &now);
@@ -945,6 +949,7 @@ static void process_options (int argc, char *argv[])
{
int error = 0;
int max_cpus = sysconf(_SC_NPROCESSORS_CONF);
+ struct rlimit rlim;
for (;;) {
int option_index = 0;
@@ -1155,6 +1160,15 @@ static void process_options (int argc, char *argv[])
policy = SCHED_FIFO;
}
+ /* check against rlimit see /etc/security/limits.conf */
+ getrlimit(RLIMIT_RTPRIO, &rlim);
+ if ( priority > rlim.rlim_max){
+ fprintf(stderr, "defaulting realtime priority to %d\n",
+ (int) rlim.rlim_max);
+ priority = rlim.rlim_max;
+ }
+
+
if ((policy == SCHED_FIFO || policy == SCHED_RR) && priority == 0) {
fprintf(stderr, "defaulting realtime priority to %d\n",
num_threads+1);