summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClark Williams <williams@redhat.com>2012-03-23 09:18:47 -0500
committerClark Williams <williams@redhat.com>2012-03-23 09:18:47 -0500
commit192a3adcd407fd0f6928333de6d4dd947796410a (patch)
treee2f2f5bd3d297986e63f5e01573405eec77430e4
parent2819d683a31765c8f46e7e0a97cd6806516edc7a (diff)
parent3ff3300ba0dd4027ec64c0ef0c00585e681a55ea (diff)
downloadrt-tests-192a3adcd407fd0f6928333de6d4dd947796410a.tar.gz
Merge remote-tracking branch 'jkacur/rt-tests-0.83-devel' into work
-rw-r--r--.gitignore31
-rw-r--r--Makefile49
-rw-r--r--src/cyclictest/rt_numa.h1
-rw-r--r--src/include/error.h3
-rw-r--r--src/include/rt-utils.h5
-rw-r--r--src/lib/error.c31
-rw-r--r--src/lib/rt-utils.c32
-rw-r--r--src/pi_tests/pi_stress.c8
-rw-r--r--src/pmqtest/pmqtest.c1
-rw-r--r--src/ptsematest/ptsematest.c1
-rw-r--r--src/rt-migrate-test/rt-migrate-test.c85
-rw-r--r--src/svsematest/svsematest.c1
12 files changed, 138 insertions, 110 deletions
diff --git a/.gitignore b/.gitignore
index 44b3d4d..047925c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,19 +10,24 @@ releases
BUILD
RPMS
SRPMS
-classic_pi
-pi_stress
-cyclictest
-signaltest
+
+#
+# Top-level programs
+#
+/classic_pi
+/pi_stress
+/cyclictest
+/signaltest
+/hwlatdetect
+/rt-migrate-test
+/ptsematest
+/sendme
+/sigwaittest
+/svsematest
+/pip_stress
+/hackbench
+/pmqtest
+
rt-tests.spec
-hwlatdetect
tags
TAGS
-rt-migrate-test
-ptsematest
-sendme
-sigwaittest
-svsematest
-pip_stress
-hackbench
-pmqtest
diff --git a/Makefile b/Makefile
index 4038dcc..31e1792 100644
--- a/Makefile
+++ b/Makefile
@@ -6,7 +6,7 @@ sources = cyclictest.c signaltest.c pi_stress.c rt-migrate-test.c \
TARGETS = $(sources:.c=)
-LIBS = -lrt -lpthread
+LIBS = -lrt -lpthread -lrttest -L.
EXTRA_LIBS ?= -ldl # for get_cpu
DESTDIR ?=
prefix ?= /usr/local
@@ -20,7 +20,8 @@ ifneq ($(filter x86_64 i386 ia64 mips powerpc,$(machinetype)),)
NUMA := 1
endif
-CFLAGS = -D_GNU_SOURCE -Wall -Wno-nonnull -Isrc/include
+CFLAGS ?= -D_GNU_SOURCE -Wall -Wno-nonnull -Isrc/include
+LDFLAGS ?=
PYLIB := $(shell python -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib()')
@@ -60,44 +61,47 @@ all: $(TARGETS) hwlatdetect
# Include dependency files, automatically generate them if needed.
-include $(sources:.c=.d)
-cyclictest: cyclictest.o rt-utils.o
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS) $(NUMA_LIBS)
+cyclictest: cyclictest.o librttest.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) $(NUMA_LIBS)
-signaltest: signaltest.o rt-utils.o
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
+signaltest: signaltest.o librttest.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
pi_stress: pi_stress.o
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
hwlatdetect: src/hwlatdetect/hwlatdetect.py
chmod +x src/hwlatdetect/hwlatdetect.py
ln -s src/hwlatdetect/hwlatdetect.py hwlatdetect
rt-migrate-test: rt-migrate-test.o
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
-ptsematest: ptsematest.o rt-utils.o rt-get_cpu.o
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS) $(EXTRA_LIBS)
+ptsematest: ptsematest.o librttest.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) $(EXTRA_LIBS)
-sigwaittest: sigwaittest.o rt-utils.o rt-get_cpu.o
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS) $(EXTRA_LIBS)
+sigwaittest: sigwaittest.o librttest.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) $(EXTRA_LIBS)
-svsematest: svsematest.o rt-utils.o rt-get_cpu.o
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS) $(EXTRA_LIBS)
+svsematest: svsematest.o librttest.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) $(EXTRA_LIBS)
-pmqtest: pmqtest.o rt-utils.o rt-get_cpu.o
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS) $(EXTRA_LIBS)
+pmqtest: pmqtest.o librttest.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) $(EXTRA_LIBS)
-sendme: sendme.o rt-utils.o rt-get_cpu.o
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS) $(EXTRA_LIBS)
+sendme: sendme.o librttest.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) $(EXTRA_LIBS)
-pip_stress: pip_stress.o error.o rt-utils.o
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
+pip_stress: pip_stress.o librttest.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
hackbench: hackbench.o
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
-CLEANUP = $(TARGETS) *.o .depend *.*~ *.orig *.rej rt-tests.spec *.d
+librttest.a: rt-utils.o error.o rt-get_cpu.o
+ $(AR) rcs librttest.a rt-utils.o error.o rt-get_cpu.o
+
+CLEANUP = $(TARGETS) *.o .depend *.*~ *.orig *.rej rt-tests.spec *.d *.a
CLEANUP += $(if $(wildcard .git), ChangeLog)
.PHONY: clean
@@ -121,6 +125,7 @@ install: all
cp $(TARGETS) "$(DESTDIR)$(bindir)"
if test -n "$(PYLIB)" ; then \
install -D -m 755 src/hwlatdetect/hwlatdetect.py $(DESTDIR)$(PYLIB)/hwlatdetect.py ; \
+ rm -f "$(DESTDIR)$(bindir)/hwlatdetect" ; \
ln -s $(PYLIB)/hwlatdetect.py "$(DESTDIR)$(bindir)/hwlatdetect" ; \
fi
install -D -m 644 src/backfire/backfire.c "$(DESTDIR)$(srcdir)/backfire/backfire.c"
diff --git a/src/cyclictest/rt_numa.h b/src/cyclictest/rt_numa.h
index 2b91615..4ae10ee 100644
--- a/src/cyclictest/rt_numa.h
+++ b/src/cyclictest/rt_numa.h
@@ -15,6 +15,7 @@
#define _RT_NUMA_H
#include "rt-utils.h"
+#include "error.h"
static int numa = 0;
diff --git a/src/include/error.h b/src/include/error.h
index 512b3a6..1e33f6c 100644
--- a/src/include/error.h
+++ b/src/include/error.h
@@ -10,6 +10,9 @@ void err_exit(int err, char *fmt, ...);
void err_msg(char *fmt, ...);
void err_msg_n(int err, char *fmt, ...);
void err_quit(char *fmt, ...);
+void info(char *fmt, ...);
+void warn(char *fmt, ...);
+void fatal(char *fmt, ...);
void err_doit(int err, const char *fmt, va_list ap);
#endif /* __ERROR_H */
diff --git a/src/include/rt-utils.h b/src/include/rt-utils.h
index 316b09c..4a7d01f 100644
--- a/src/include/rt-utils.h
+++ b/src/include/rt-utils.h
@@ -1,7 +1,6 @@
#ifndef __RT_UTILS_H
#define __RT_UTILS_H
-
#define _STR(x) #x
#define STR(x) _STR(x)
#define MAX_PATH 256
@@ -18,8 +17,4 @@ int event_disable(char *event);
int event_enable_all(void);
int event_disable_all(void);
-void warn(char *fmt, ...);
-void fatal(char *fmt, ...);
-void info(char *fmt, ...);
-
#endif /* __RT_UTILS.H */
diff --git a/src/lib/error.c b/src/lib/error.c
index e9fe58f..1b5de5d 100644
--- a/src/lib/error.c
+++ b/src/lib/error.c
@@ -46,6 +46,37 @@ void err_quit(char *fmt, ...)
exit(1);
}
+void info(char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ fputs("INFO: ", stderr);
+ err_doit(0, fmt, ap);
+ va_end(ap);
+}
+
+void warn(char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ fputs("WARN: ", stderr);
+ err_doit(0, fmt, ap);
+ va_end(ap);
+}
+
+void fatal(char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ fputs("FATAL: ", stderr);
+ err_doit(0, fmt, ap);
+ va_end(ap);
+ exit(EXIT_FAILURE);
+}
+
void err_doit(int err, const char *fmt, va_list ap)
{
if (err)
diff --git a/src/lib/rt-utils.c b/src/lib/rt-utils.c
index ec71dbd..f4da4b3 100644
--- a/src/lib/rt-utils.c
+++ b/src/lib/rt-utils.c
@@ -17,6 +17,7 @@
#include <sys/stat.h>
#include <unistd.h>
#include "rt-utils.h"
+#include "error.h"
static char debugfileprefix[MAX_PATH];
@@ -272,34 +273,3 @@ int check_privs(void)
return sched_setscheduler(0, policy, &old_param);
}
-void info(char *fmt, ...)
-{
- va_list ap;
-
- va_start(ap, fmt);
- fputs("INFO: ", stderr);
- vfprintf(stderr, fmt, ap);
- va_end(ap);
-}
-
-void warn(char *fmt, ...)
-{
- va_list ap;
-
- va_start(ap, fmt);
- fputs("WARNING: ", stderr);
- vfprintf(stderr, fmt, ap);
- va_end(ap);
-}
-
-void fatal(char *fmt, ...)
-{
- va_list ap;
-
- va_start(ap, fmt);
- fputs("FATAL: ", stderr);
- vfprintf(stderr, fmt, ap);
- va_end(ap);
- exit(EXIT_FAILURE);
-}
-
diff --git a/src/pi_tests/pi_stress.c b/src/pi_tests/pi_stress.c
index 0940567..e273d62 100644
--- a/src/pi_tests/pi_stress.c
+++ b/src/pi_tests/pi_stress.c
@@ -597,9 +597,17 @@ void *reporter(void *arg)
int verify_cpu(int cpu)
{
int status;
+ int err;
cpu_set_t mask;
+ CPU_ZERO(&mask);
+
status = sched_getaffinity(0, sizeof(cpu_set_t), &mask);
+ if (status == -1) {
+ err = errno;
+ fprintf(stderr, "sched_getaffinity %s\n", strerror(err));
+ exit(-1);
+ }
if (CPU_ISSET(cpu, &mask))
return SUCCESS;
diff --git a/src/pmqtest/pmqtest.c b/src/pmqtest/pmqtest.c
index 2ac6c55..b811d95 100644
--- a/src/pmqtest/pmqtest.c
+++ b/src/pmqtest/pmqtest.c
@@ -37,6 +37,7 @@
#include <mqueue.h>
#include "rt-utils.h"
#include "rt-get_cpu.h"
+#include "error.h"
#include <pthread.h>
diff --git a/src/ptsematest/ptsematest.c b/src/ptsematest/ptsematest.c
index 14c3f81..92f0ab5 100644
--- a/src/ptsematest/ptsematest.c
+++ b/src/ptsematest/ptsematest.c
@@ -36,6 +36,7 @@
#include <utmpx.h>
#include "rt-utils.h"
#include "rt-get_cpu.h"
+#include "error.h"
#include <pthread.h>
diff --git a/src/rt-migrate-test/rt-migrate-test.c b/src/rt-migrate-test/rt-migrate-test.c
index 1963641..e3c7a09 100644
--- a/src/rt-migrate-test/rt-migrate-test.c
+++ b/src/rt-migrate-test/rt-migrate-test.c
@@ -44,39 +44,55 @@
#include <errno.h>
#include <sched.h>
#include <pthread.h>
-#ifdef LOGDEV
-# include <dump_log.h>
-# define do_logdev_open() open("/debug/logdev/write", O_WRONLY)
-# define do_logdev_close(ld) close(ld)
-__thread char buff[BUFSIZ];
-static lgprint(int fd, const char *fmt, ...)
+
+#define gettid() syscall(__NR_gettid)
+
+#ifndef VERSION_STRING
+#define VERSION_STRING 0.3
+#endif
+
+int nr_tasks;
+int lfd;
+
+static int mark_fd = -1;
+static __thread char buff[BUFSIZ+1];
+
+static void setup_ftrace_marker(void)
+{
+ struct stat st;
+ char *files[] = {
+ "/sys/kernel/debug/tracing/trace_marker",
+ "/debug/tracing/trace_marker",
+ "/debugfs/tracing/trace_marker",
+ };
+ int ret;
+ int i;
+
+ for (i = 0; i < (sizeof(files) / sizeof(char *)); i++) {
+ ret = stat(files[i], &st);
+ if (ret >= 0)
+ goto found;
+ }
+ /* todo, check mounts system */
+ return;
+found:
+ mark_fd = open(files[i], O_WRONLY);
+}
+
+static void ftrace_write(const char *fmt, ...)
{
va_list ap;
int n;
+ if (mark_fd < 0)
+ return;
+
va_start(ap, fmt);
n = vsnprintf(buff, BUFSIZ, fmt, ap);
va_end(ap);
- write(fd, buff, n);
+ write(mark_fd, buff, n);
}
-#else
-# define do_logdev_open() (0)
-# define do_logdev_close(lfd) do { } while(0)
-# define logdev_print_set(x) do { } while(0)
-# define logdev_switch_set(x) do { } while(0)
-# define lgprint(x...) do { } while(0)
-#endif
-
-
-#define gettid() syscall(__NR_gettid)
-
-#ifndef VERSION_STRING
-#define VERSION_STRING "V 0.3"
-#endif
-
-int nr_tasks;
-int lfd;
#define nano2sec(nan) (nan / 1000000000ULL)
#define nano2ms(nan) (nan / 1000000ULL)
@@ -360,8 +376,8 @@ void *start_task(void *data)
}
pthread_barrier_wait(&start_barrier);
start_time = get_time();
- lgprint(lfd, "Thread %d: started %lld diff %lld\n",
- pid, start_time, start_time - now);
+ ftrace_write("Thread %d: started %lld diff %lld\n",
+ pid, start_time, start_time - now);
l = busy_loop(start_time);
record_time(id, start_time, l);
pthread_barrier_wait(&end_barrier);
@@ -403,8 +419,6 @@ static int check_times(int l)
static void stop_log(int sig)
{
- logdev_print_set(0);
- logdev_switch_set(0);
stop = 1;
}
@@ -527,27 +541,25 @@ int main (int argc, char **argv)
print_progress_bar(0);
- lfd = do_logdev_open();
- logdev_print_set(1);
- logdev_switch_set(1);
+ setup_ftrace_marker();
for (loop=0; loop < nr_runs; loop++) {
unsigned long long end;
now = get_time();
- lgprint(lfd, "Loop %d now=%lld\n", loop, now);
+ ftrace_write("Loop %d now=%lld\n", loop, now);
pthread_barrier_wait(&start_barrier);
- lgprint(lfd, "All running!!!\n");
+ ftrace_write("All running!!!\n");
nanosleep(&intv, NULL);
print_progress_bar((loop * 100)/ nr_runs);
end = get_time();
- lgprint(lfd, "Loop %d end now=%lld diff=%lld\n", loop, end, end - now);
+ ftrace_write("Loop %d end now=%lld diff=%lld\n", loop, end, end - now);
pthread_barrier_wait(&end_barrier);
@@ -557,8 +569,6 @@ int main (int argc, char **argv)
break;
}
}
- do_logdev_close(lfd);
-
putc('\n', stderr);
pthread_barrier_wait(&start_barrier);
@@ -568,9 +578,6 @@ int main (int argc, char **argv)
for (i=0; i < nr_tasks; i++)
pthread_join(threads[i], (void*)&thread_pids[i]);
- logdev_print_set(0);
- logdev_switch_set(0);
-
print_results();
if (stop) {
diff --git a/src/svsematest/svsematest.c b/src/svsematest/svsematest.c
index d4ee1c4..89473a5 100644
--- a/src/svsematest/svsematest.c
+++ b/src/svsematest/svsematest.c
@@ -42,6 +42,7 @@
#include <sys/mman.h>
#include "rt-utils.h"
#include "rt-get_cpu.h"
+#include "error.h"
#define gettid() syscall(__NR_gettid)