From d934827bf44b7cfcf6711964418148fa60877668 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 25 Nov 2020 22:39:15 +0000 Subject: gentoo resync : 25.11.2020 --- dev-util/rt-tests/Manifest | 6 +- dev-util/rt-tests/files/rt-tests-1.8-musl.patch | 380 ------------------------ dev-util/rt-tests/files/rt-tests-1.9-musl.patch | 380 ++++++++++++++++++++++++ dev-util/rt-tests/rt-tests-1.8.ebuild | 38 --- dev-util/rt-tests/rt-tests-1.9.ebuild | 38 +++ 5 files changed, 421 insertions(+), 421 deletions(-) delete mode 100644 dev-util/rt-tests/files/rt-tests-1.8-musl.patch create mode 100644 dev-util/rt-tests/files/rt-tests-1.9-musl.patch delete mode 100644 dev-util/rt-tests/rt-tests-1.8.ebuild create mode 100644 dev-util/rt-tests/rt-tests-1.9.ebuild (limited to 'dev-util/rt-tests') diff --git a/dev-util/rt-tests/Manifest b/dev-util/rt-tests/Manifest index 8c4a5094975d..9d07ff3cb391 100644 --- a/dev-util/rt-tests/Manifest +++ b/dev-util/rt-tests/Manifest @@ -1,4 +1,4 @@ -AUX rt-tests-1.8-musl.patch 10834 BLAKE2B 54bc0e20a9bc7c251985b8e21c94b0e6261345d02a23dc510ee6a303843ea88aa13750680adb3954d63561246dfb26e6427adf2bc2012f9161357d0fae207b83 SHA512 196b0d1d19aeab83710edddcaec7064d4e4770cd514f8b8a61b23980932b793d044cfb4d69c91e61c4ee912eb24cd3a87ee8da05612c1ee02e2a5885f32bb9e5 -DIST rt-tests-1.8.tar.xz 105820 BLAKE2B 478ac14732393f718e6be818b82b24b1e53d2f293140012bc17fd1c9242bd885b4d70dca3c7f3187e9ba22334e5f83d9ad1993ab9f70079e1765b918deab4411 SHA512 41c0b18e84d1f76de22a4ab239d43ac678b8c8419b508c96204bef346734122b9a42df51fcea97b1e0675bd25ed1e262730236ec0cb189732d5810122e96aa39 -EBUILD rt-tests-1.8.ebuild 923 BLAKE2B cf4dacc192b38ffac20e7dda97a4f775e71ae9c4a602b6fef39a7ecdf99be7395ece533d2f901c08de91ece2edf7e4791f8755159032aeb6b588bd599bbc6874 SHA512 18609c388c6d6d87700b5e308911f797ff85fdcf3e91983d14a9acecef66fceb2ee543b4015ae2b0b640115f890a17ed3cedcbca45a058c3cb3b5166b263af28 +AUX rt-tests-1.9-musl.patch 10822 BLAKE2B 144562d6dc921c8ae89e1ae017cc5bddb7aad7a4167194df1a8ae647678310da71b0c2df4cd18d9ba53fbbfccb5e6a92f2ec33ca055c9def592ca973a0bc0381 SHA512 56b538bc7ea327a5362d03b3207aa533ea4aa7067584335f7e92449869a37b355170520fa6b54e7aa175290bff718af6970c791884f9c2bc68ff624926ae22d0 +DIST rt-tests-1.9.tar.xz 112180 BLAKE2B fa9b7b70bd9ae5d5f5e1077ddbd916bc4556d079d4067f16289ab34fec16ed0c8074607a7a8e50ea7bad4df318a063074f1c0ec5c2e895851d3045d51a8ecd74 SHA512 66f086dbda31567e6dc5297424ec66b2c6bd7cb0e065c32e02c326f33967f3a301b1b34f9eb0dd0acd853279c64fb1c2bc271ac26648f4abc3f6090ba6484cfa +EBUILD rt-tests-1.9.ebuild 923 BLAKE2B bd37db6fc2c3b1383cc8bd231d3ea46033b8dd5b133b227fc27b43b23b277cf74f4b9d222c05f4d0110346bb2b74213ae1e68460462c5ddfc89b46aa8042852b SHA512 1982e3f6a1970a3c1fa9cdcc14cc4ab647b278de78a07caefc5ecc3a96eb577555c4fa3d5cd88d746b20660910f2e87b10fe680a988cfb43079fde09cedd8314 MISC metadata.xml 718 BLAKE2B e09ef2dd4bd98df6e36e684105242e579fd86dfa28fd02f6b04ea78f91dc2089485a54497edb0a9a1b3c36fe5033eb1e98b626735b82d2a765150812f724bb93 SHA512 8b7eb83545e11f2f5786f0e5fbc47ce15fbb9a364ad9fcf51a7c47e8a05e70d3d0c48c2f69b5f6abd4b839514bc2575a66a43202204340137ec3d8a9f41564e1 diff --git a/dev-util/rt-tests/files/rt-tests-1.8-musl.patch b/dev-util/rt-tests/files/rt-tests-1.8-musl.patch deleted file mode 100644 index 48a7a297afc1..000000000000 --- a/dev-util/rt-tests/files/rt-tests-1.8-musl.patch +++ /dev/null @@ -1,380 +0,0 @@ -From 4daa685588ee3848fc98fd9c6328b76f136ee876 Mon Sep 17 00:00:00 2001 -From: Kurt Kanzenbach -Date: Wed, 1 Apr 2020 20:15:24 +0200 -Subject: [PATCH] all: Fix musl build - -There are a few problems: - - * pi stress: pthread_attr_setaffinity_np() is not supported - * cyclictest: SIGEV_THREAD_ID is not supported - * hackbench: Fix include - * all: Fix sched_* calls - -With these changes applied, the rt-tests seem to run fine. - -Signed-off-by: Kurt Kanzenbach ---- - Makefile | 5 -- - src/backfire/sendme.c | 1 + - src/cyclictest/cyclictest.c | 68 ++++----------------------- - src/hackbench/hackbench.c | 4 +- - src/include/musl.h | 28 +++++++++++ - src/lib/rt-utils.c | 1 + - src/pi_tests/classic_pi.c | 2 + - src/pi_tests/tst-mutexpi10.c | 2 + - src/pmqtest/pmqtest.c | 1 + - src/ptsematest/ptsematest.c | 1 + - src/rt-migrate-test/rt-migrate-test.c | 1 + - src/sched_deadline/cyclicdeadline.c | 2 + - 12 files changed, 50 insertions(+), 66 deletions(-) - create mode 100644 src/include/musl.h - -diff --git a/Makefile b/Makefile -index 05fc5eda71fa..9340f28f2c32 100644 ---- a/Makefile -+++ b/Makefile -@@ -7,7 +7,6 @@ OBJDIR = bld - sources = cyclictest.c \ - hackbench.c \ - pip_stress.c \ -- pi_stress.c \ - pmqtest.c \ - ptsematest.c \ - rt-migrate-test.c \ -@@ -35,7 +34,6 @@ LDFLAGS ?= - PYLIB ?= $(shell python3 -c 'import distutils.sysconfig; print (distutils.sysconfig.get_python_lib())') - - MANPAGES = src/cyclictest/cyclictest.8 \ -- src/pi_tests/pi_stress.8 \ - src/ptsematest/ptsematest.8 \ - src/rt-migrate-test/rt-migrate-test.8 \ - src/sigwaittest/sigwaittest.8 \ -@@ -125,9 +123,6 @@ deadline_test: $(OBJDIR)/deadline_test.o $(OBJDIR)/librttest.a - signaltest: $(OBJDIR)/signaltest.o $(OBJDIR)/librttest.a - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(RTTESTLIB) - --pi_stress: $(OBJDIR)/pi_stress.o $(OBJDIR)/librttest.a -- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(RTTESTLIB) -- - hwlatdetect: src/hwlatdetect/hwlatdetect.py - chmod +x src/hwlatdetect/hwlatdetect.py - ln -s src/hwlatdetect/hwlatdetect.py hwlatdetect -diff --git a/src/backfire/sendme.c b/src/backfire/sendme.c -index c1854d9660cb..ecec5c201bef 100644 ---- a/src/backfire/sendme.c -+++ b/src/backfire/sendme.c -@@ -31,6 +31,7 @@ - #include - #include "rt-utils.h" - #include "rt-get_cpu.h" -+#include "musl.h" - - #include - #include -diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c -index c5f1fd46567a..8204e57cbbac 100644 ---- a/src/cyclictest/cyclictest.c -+++ b/src/cyclictest/cyclictest.c -@@ -36,6 +36,7 @@ - #include "rt_numa.h" - - #include "rt-utils.h" -+#include "musl.h" - - #include - -@@ -628,12 +629,8 @@ static void *timerthread(void *param) - { - struct thread_param *par = param; - struct sched_param schedp; -- struct sigevent sigev; - sigset_t sigset; -- timer_t timer; - struct timespec now, next, interval, stop; -- struct itimerval itimer; -- struct itimerspec tspec; - struct thread_stat *stat = par->stats; - int stopped = 0; - cpu_set_t mask; -@@ -664,14 +661,6 @@ static void *timerthread(void *param) - sigaddset(&sigset, par->signal); - sigprocmask(SIG_BLOCK, &sigset, NULL); - -- if (par->mode == MODE_CYCLIC) { -- sigev.sigev_notify = SIGEV_THREAD_ID | SIGEV_SIGNAL; -- sigev.sigev_signo = par->signal; -- sigev.sigev_notify_thread_id = stat->tid; -- timer_create(par->clock, &sigev, &timer); -- tspec.it_interval = interval; -- } -- - memset(&schedp, 0, sizeof(schedp)); - schedp.sched_priority = par->prio; - if (setscheduler(0, par->policy, &schedp)) -@@ -726,20 +715,6 @@ static void *timerthread(void *param) - stop = now; - stop.tv_sec += duration; - } -- if (par->mode == MODE_CYCLIC) { -- if (par->timermode == TIMER_ABSTIME) -- tspec.it_value = next; -- else -- tspec.it_value = interval; -- timer_settime(timer, par->timermode, &tspec, NULL); -- } -- -- if (par->mode == MODE_SYS_ITIMER) { -- itimer.it_interval.tv_sec = interval.tv_sec; -- itimer.it_interval.tv_usec = interval.tv_nsec / 1000; -- itimer.it_value = itimer.it_interval; -- setitimer(ITIMER_REAL, &itimer, NULL); -- } - - stat->threadstarted++; - -@@ -747,16 +722,10 @@ static void *timerthread(void *param) - - uint64_t diff; - unsigned long diff_smi = 0; -- int sigs, ret; -+ int ret; - - /* Wait for next period */ - switch (par->mode) { -- case MODE_CYCLIC: -- case MODE_SYS_ITIMER: -- if (sigwait(&sigset, &sigs) < 0) -- goto out; -- break; -- - case MODE_CLOCK_NANOSLEEP: - if (par->timermode == TIMER_ABSTIME) { - ret = clock_nanosleep(par->clock, TIMER_ABSTIME, -@@ -878,11 +847,6 @@ static void *timerthread(void *param) - - next.tv_sec += interval.tv_sec; - next.tv_nsec += interval.tv_nsec; -- if (par->mode == MODE_CYCLIC) { -- int overrun_count = timer_getoverrun(timer); -- next.tv_sec += overrun_count * interval.tv_sec; -- next.tv_nsec += overrun_count * interval.tv_nsec; -- } - tsnorm(&next); - - while (tsgreater(&now, &next)) { -@@ -907,17 +871,6 @@ out: - pthread_mutex_unlock(&refresh_on_max_lock); - } - -- if (par->mode == MODE_CYCLIC) -- timer_delete(timer); -- -- if (par->mode == MODE_SYS_ITIMER) { -- itimer.it_value.tv_sec = 0; -- itimer.it_value.tv_usec = 0; -- itimer.it_interval.tv_sec = 0; -- itimer.it_interval.tv_usec = 0; -- setitimer(ITIMER_REAL, &itimer, NULL); -- } -- - /* close msr file */ - if (smi) - close(par->msr_fd); -@@ -1417,7 +1370,8 @@ static void process_options (int argc, char *argv[], int max_cpus) - case OPT_VERBOSE: verbose = 1; break; - case 'x': - case OPT_POSIX_TIMERS: -- use_nanosleep = MODE_CYCLIC; break; -+ fatal("--posix_timers is not available on your libc\n"); -+ break; - case '?': - case OPT_HELP: - display_help(0); break; -@@ -1450,13 +1404,6 @@ static void process_options (int argc, char *argv[], int max_cpus) - } - } - -- if ((use_system == MODE_SYS_OFFSET) && (use_nanosleep == MODE_CYCLIC)) { -- warn("The system option requires clock_nanosleep\n"); -- warn("and is not compatible with posix_timers\n"); -- warn("Using clock_nanosleep\n"); -- use_nanosleep = MODE_CLOCK_NANOSLEEP; -- } -- - /* if smp wasn't requested, test for numa automatically */ - if (!smp) { - #ifdef NUMA -@@ -2157,7 +2104,6 @@ int main(int argc, char **argv) - - } - -- - mode = use_nanosleep + use_system; - - sigemptyset(&sigset); -@@ -2207,16 +2153,18 @@ int main(int argc, char **argv) - void *stack; - void *currstk; - size_t stksize; -+ int err; - - /* find the memory node associated with the cpu i */ - node = rt_numa_numa_node_of_cpu(cpu); - - /* get the stack size set for for this thread */ -- if (pthread_attr_getstack(&attr, &currstk, &stksize)) -+ err = pthread_attr_getstack(&attr, &currstk, &stksize); -+ if (err != EINVAL) - fatal("failed to get stack size for thread %d\n", i); - - /* if the stack size is zero, set a default */ -- if (stksize == 0) -+ if (err == EINVAL || stksize == 0) - stksize = PTHREAD_STACK_MIN * 2; - - /* allocate memory for a stack on appropriate node */ -diff --git a/src/hackbench/hackbench.c b/src/hackbench/hackbench.c -index 5a883d341f2e..9f1e4db736a7 100644 ---- a/src/hackbench/hackbench.c -+++ b/src/hackbench/hackbench.c -@@ -24,13 +24,15 @@ - #include - #include - #include --#include -+#include - #include - #include - #include - #include - #include - -+#include "musl.h" -+ - static unsigned int datasize = 100; - static unsigned int loops = 100; - static unsigned int num_groups = 10; -diff --git a/src/include/musl.h b/src/include/musl.h -new file mode 100644 -index 000000000000..ea5075e768c8 ---- /dev/null -+++ b/src/include/musl.h -@@ -0,0 +1,28 @@ -+/* -+ * Copyright (C) 2020 Kurt Kanzenbach -+ * Time-stamp: <2020-04-04 10:54:01 kurt> -+ */ -+ -+#ifndef _MUSL_H_ -+#define _MUSL_H_ -+ -+#include -+#include -+ -+/* -+ * Musl someshow defines sched_* to ENOSYS which is not correct ... -+ * See commit 1e21e78bf7a5 ("add support for thread scheduling (POSIX TPS option)") -+ * -+ * Workaround: define them to syscall(...) -+ */ -+ -+#define sched_getparam(pid, param) \ -+ syscall(SYS_sched_getparam, pid, param) -+#define sched_setparam(pid, param) \ -+ syscall(SYS_sched_setparam, pid, param) -+#define sched_getscheduler(pid) \ -+ syscall(SYS_sched_getscheduler, pid) -+#define sched_setscheduler(pid, policy, param) \ -+ syscall(SYS_sched_setscheduler, pid, policy, param) -+ -+#endif /* _MUSL_H_ */ -diff --git a/src/lib/rt-utils.c b/src/lib/rt-utils.c -index 1998a327d036..f7adda9c5987 100644 ---- a/src/lib/rt-utils.c -+++ b/src/lib/rt-utils.c -@@ -23,6 +23,7 @@ - #include "rt-utils.h" - #include "rt-sched.h" - #include "error.h" -+#include "musl.h" - - static char debugfileprefix[MAX_PATH]; - -diff --git a/src/pi_tests/classic_pi.c b/src/pi_tests/classic_pi.c -index 64af8890276f..bb088d3973b2 100644 ---- a/src/pi_tests/classic_pi.c -+++ b/src/pi_tests/classic_pi.c -@@ -34,6 +34,8 @@ - #include - #include - -+#include "musl.h" -+ - /* test timeout */ - #define TIMEOUT 2 - -diff --git a/src/pi_tests/tst-mutexpi10.c b/src/pi_tests/tst-mutexpi10.c -index 97a345edd26e..1028d344edff 100644 ---- a/src/pi_tests/tst-mutexpi10.c -+++ b/src/pi_tests/tst-mutexpi10.c -@@ -35,6 +35,8 @@ - #include - #include - -+#include "musl.h" -+ - /* test timeout */ - #define TIMEOUT 2 - -diff --git a/src/pmqtest/pmqtest.c b/src/pmqtest/pmqtest.c -index 3ce29252b9a2..1a57841cb7e8 100644 ---- a/src/pmqtest/pmqtest.c -+++ b/src/pmqtest/pmqtest.c -@@ -24,6 +24,7 @@ - #include "rt-utils.h" - #include "rt-get_cpu.h" - #include "error.h" -+#include "musl.h" - - #include - -diff --git a/src/ptsematest/ptsematest.c b/src/ptsematest/ptsematest.c -index 485c991ec173..c000e083615f 100644 ---- a/src/ptsematest/ptsematest.c -+++ b/src/ptsematest/ptsematest.c -@@ -22,6 +22,7 @@ - #include "rt-utils.h" - #include "rt-get_cpu.h" - #include "error.h" -+#include "musl.h" - - #include - -diff --git a/src/rt-migrate-test/rt-migrate-test.c b/src/rt-migrate-test/rt-migrate-test.c -index 4863238edeb4..9f1aba159dc7 100644 ---- a/src/rt-migrate-test/rt-migrate-test.c -+++ b/src/rt-migrate-test/rt-migrate-test.c -@@ -25,6 +25,7 @@ - #include - #include - #include "rt-utils.h" -+#include "musl.h" - - int nr_tasks; - int lfd; -diff --git a/src/sched_deadline/cyclicdeadline.c b/src/sched_deadline/cyclicdeadline.c -index a08e28e73c42..675a0ea1a162 100644 ---- a/src/sched_deadline/cyclicdeadline.c -+++ b/src/sched_deadline/cyclicdeadline.c -@@ -32,6 +32,8 @@ - #include - #include - -+#include "musl.h" -+ - #define _STR(x) #x - #define STR(x) _STR(x) - #ifndef MAXPATH --- -2.24.1 - diff --git a/dev-util/rt-tests/files/rt-tests-1.9-musl.patch b/dev-util/rt-tests/files/rt-tests-1.9-musl.patch new file mode 100644 index 000000000000..0114cd004473 --- /dev/null +++ b/dev-util/rt-tests/files/rt-tests-1.9-musl.patch @@ -0,0 +1,380 @@ +From fd78f200ac8e9d1eb7579cd9e4adaaa1a4dc2d46 Mon Sep 17 00:00:00 2001 +From: Kurt Kanzenbach +Date: Wed, 1 Apr 2020 20:15:24 +0200 +Subject: [PATCH] all: Fix musl build + +There are a few problems: + + * pi stress: pthread_attr_setaffinity_np() is not supported + * cyclictest: SIGEV_THREAD_ID is not supported + * hackbench: Fix include + * all: Fix sched_* calls + +With these changes applied, the rt-tests seem to run fine. + +Signed-off-by: Kurt Kanzenbach +--- + Makefile | 5 -- + src/backfire/sendme.c | 1 + + src/cyclictest/cyclictest.c | 68 ++++----------------------- + src/hackbench/hackbench.c | 4 +- + src/include/musl.h | 28 +++++++++++ + src/lib/rt-utils.c | 1 + + src/pi_tests/classic_pi.c | 2 + + src/pi_tests/tst-mutexpi10.c | 2 + + src/pmqtest/pmqtest.c | 1 + + src/ptsematest/ptsematest.c | 1 + + src/rt-migrate-test/rt-migrate-test.c | 1 + + src/sched_deadline/cyclicdeadline.c | 2 + + 12 files changed, 50 insertions(+), 66 deletions(-) + create mode 100644 src/include/musl.h + +diff --git a/Makefile b/Makefile +index c3ebbd7b2a2e..8815c113c0df 100644 +--- a/Makefile ++++ b/Makefile +@@ -7,7 +7,6 @@ OBJDIR = bld + sources = cyclictest.c \ + hackbench.c \ + pip_stress.c \ +- pi_stress.c \ + pmqtest.c \ + ptsematest.c \ + rt-migrate-test.c \ +@@ -36,7 +35,6 @@ LDFLAGS ?= + PYLIB ?= $(shell python3 -c 'import distutils.sysconfig; print (distutils.sysconfig.get_python_lib())') + + MANPAGES = src/cyclictest/cyclictest.8 \ +- src/pi_tests/pi_stress.8 \ + src/ptsematest/ptsematest.8 \ + src/rt-migrate-test/rt-migrate-test.8 \ + src/sigwaittest/sigwaittest.8 \ +@@ -129,9 +127,6 @@ deadline_test: $(OBJDIR)/deadline_test.o $(OBJDIR)/librttest.a + signaltest: $(OBJDIR)/signaltest.o $(OBJDIR)/librttest.a + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(RTTESTLIB) + +-pi_stress: $(OBJDIR)/pi_stress.o $(OBJDIR)/librttest.a +- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(RTTESTLIB) +- + hwlatdetect: src/hwlatdetect/hwlatdetect.py + chmod +x src/hwlatdetect/hwlatdetect.py + ln -s src/hwlatdetect/hwlatdetect.py hwlatdetect +diff --git a/src/backfire/sendme.c b/src/backfire/sendme.c +index d963723b1c93..b355bbbcfece 100644 +--- a/src/backfire/sendme.c ++++ b/src/backfire/sendme.c +@@ -31,6 +31,7 @@ + #include + #include "rt-utils.h" + #include "rt-get_cpu.h" ++#include "musl.h" + + #include + #include +diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c +index b41d42f13f24..56b27a4e0547 100644 +--- a/src/cyclictest/cyclictest.c ++++ b/src/cyclictest/cyclictest.c +@@ -36,6 +36,7 @@ + #include "rt_numa.h" + + #include "rt-utils.h" ++#include "musl.h" + + #include + +@@ -501,12 +502,8 @@ static void *timerthread(void *param) + { + struct thread_param *par = param; + struct sched_param schedp; +- struct sigevent sigev; + sigset_t sigset; +- timer_t timer; + struct timespec now, next, interval, stop; +- struct itimerval itimer; +- struct itimerspec tspec; + struct thread_stat *stat = par->stats; + int stopped = 0; + cpu_set_t mask; +@@ -537,14 +534,6 @@ static void *timerthread(void *param) + sigaddset(&sigset, par->signal); + sigprocmask(SIG_BLOCK, &sigset, NULL); + +- if (par->mode == MODE_CYCLIC) { +- sigev.sigev_notify = SIGEV_THREAD_ID | SIGEV_SIGNAL; +- sigev.sigev_signo = par->signal; +- sigev.sigev_notify_thread_id = stat->tid; +- timer_create(par->clock, &sigev, &timer); +- tspec.it_interval = interval; +- } +- + memset(&schedp, 0, sizeof(schedp)); + schedp.sched_priority = par->prio; + if (setscheduler(0, par->policy, &schedp)) +@@ -599,20 +588,6 @@ static void *timerthread(void *param) + stop = now; + stop.tv_sec += duration; + } +- if (par->mode == MODE_CYCLIC) { +- if (par->timermode == TIMER_ABSTIME) +- tspec.it_value = next; +- else +- tspec.it_value = interval; +- timer_settime(timer, par->timermode, &tspec, NULL); +- } +- +- if (par->mode == MODE_SYS_ITIMER) { +- itimer.it_interval.tv_sec = interval.tv_sec; +- itimer.it_interval.tv_usec = interval.tv_nsec / 1000; +- itimer.it_value = itimer.it_interval; +- setitimer(ITIMER_REAL, &itimer, NULL); +- } + + stat->threadstarted++; + +@@ -620,16 +595,10 @@ static void *timerthread(void *param) + + uint64_t diff; + unsigned long diff_smi = 0; +- int sigs, ret; ++ int ret; + + /* Wait for next period */ + switch (par->mode) { +- case MODE_CYCLIC: +- case MODE_SYS_ITIMER: +- if (sigwait(&sigset, &sigs) < 0) +- goto out; +- break; +- + case MODE_CLOCK_NANOSLEEP: + if (par->timermode == TIMER_ABSTIME) { + ret = clock_nanosleep(par->clock, TIMER_ABSTIME, +@@ -751,11 +720,6 @@ static void *timerthread(void *param) + + next.tv_sec += interval.tv_sec; + next.tv_nsec += interval.tv_nsec; +- if (par->mode == MODE_CYCLIC) { +- int overrun_count = timer_getoverrun(timer); +- next.tv_sec += overrun_count * interval.tv_sec; +- next.tv_nsec += overrun_count * interval.tv_nsec; +- } + tsnorm(&next); + + while (tsgreater(&now, &next)) { +@@ -780,17 +744,6 @@ out: + pthread_mutex_unlock(&refresh_on_max_lock); + } + +- if (par->mode == MODE_CYCLIC) +- timer_delete(timer); +- +- if (par->mode == MODE_SYS_ITIMER) { +- itimer.it_value.tv_sec = 0; +- itimer.it_value.tv_usec = 0; +- itimer.it_interval.tv_sec = 0; +- itimer.it_interval.tv_usec = 0; +- setitimer(ITIMER_REAL, &itimer, NULL); +- } +- + /* close msr file */ + if (smi) + close(par->msr_fd); +@@ -1305,7 +1258,8 @@ static void process_options (int argc, char *argv[], int max_cpus) + case OPT_VERBOSE: verbose = 1; break; + case 'x': + case OPT_POSIX_TIMERS: +- use_nanosleep = MODE_CYCLIC; break; ++ fatal("--posix_timers is not available on your libc\n"); ++ break; + case '?': + case OPT_HELP: + display_help(0); break; +@@ -1338,13 +1292,6 @@ static void process_options (int argc, char *argv[], int max_cpus) + } + } + +- if ((use_system == MODE_SYS_OFFSET) && (use_nanosleep == MODE_CYCLIC)) { +- warn("The system option requires clock_nanosleep\n"); +- warn("and is not compatible with posix_timers\n"); +- warn("Using clock_nanosleep\n"); +- use_nanosleep = MODE_CLOCK_NANOSLEEP; +- } +- + /* if smp wasn't requested, test for numa automatically */ + if (!smp) { + #ifdef NUMA +@@ -2038,7 +1985,6 @@ int main(int argc, char **argv) + + } + +- + mode = use_nanosleep + use_system; + + sigemptyset(&sigset); +@@ -2088,16 +2034,18 @@ int main(int argc, char **argv) + void *stack; + void *currstk; + size_t stksize; ++ int err; + + /* find the memory node associated with the cpu i */ + node = rt_numa_numa_node_of_cpu(cpu); + + /* get the stack size set for for this thread */ +- if (pthread_attr_getstack(&attr, &currstk, &stksize)) ++ err = pthread_attr_getstack(&attr, &currstk, &stksize); ++ if (err != EINVAL) + fatal("failed to get stack size for thread %d\n", i); + + /* if the stack size is zero, set a default */ +- if (stksize == 0) ++ if (err == EINVAL || stksize == 0) + stksize = PTHREAD_STACK_MIN * 2; + + /* allocate memory for a stack on appropriate node */ +diff --git a/src/hackbench/hackbench.c b/src/hackbench/hackbench.c +index 2cddff654df6..46f09fa9e7ba 100644 +--- a/src/hackbench/hackbench.c ++++ b/src/hackbench/hackbench.c +@@ -24,13 +24,15 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include + #include + #include + ++#include "musl.h" ++ + static unsigned int datasize = 100; + static unsigned int loops = 100; + static unsigned int num_groups = 10; +diff --git a/src/include/musl.h b/src/include/musl.h +new file mode 100644 +index 000000000000..ea5075e768c8 +--- /dev/null ++++ b/src/include/musl.h +@@ -0,0 +1,28 @@ ++/* ++ * Copyright (C) 2020 Kurt Kanzenbach ++ * Time-stamp: <2020-04-04 10:54:01 kurt> ++ */ ++ ++#ifndef _MUSL_H_ ++#define _MUSL_H_ ++ ++#include ++#include ++ ++/* ++ * Musl someshow defines sched_* to ENOSYS which is not correct ... ++ * See commit 1e21e78bf7a5 ("add support for thread scheduling (POSIX TPS option)") ++ * ++ * Workaround: define them to syscall(...) ++ */ ++ ++#define sched_getparam(pid, param) \ ++ syscall(SYS_sched_getparam, pid, param) ++#define sched_setparam(pid, param) \ ++ syscall(SYS_sched_setparam, pid, param) ++#define sched_getscheduler(pid) \ ++ syscall(SYS_sched_getscheduler, pid) ++#define sched_setscheduler(pid, policy, param) \ ++ syscall(SYS_sched_setscheduler, pid, policy, param) ++ ++#endif /* _MUSL_H_ */ +diff --git a/src/lib/rt-utils.c b/src/lib/rt-utils.c +index f786588706cd..c1a55272dfdb 100644 +--- a/src/lib/rt-utils.c ++++ b/src/lib/rt-utils.c +@@ -23,6 +23,7 @@ + #include "rt-utils.h" + #include "rt-sched.h" + #include "error.h" ++#include "musl.h" + + #define TRACEBUFSIZ 1024 + +diff --git a/src/pi_tests/classic_pi.c b/src/pi_tests/classic_pi.c +index 64af8890276f..bb088d3973b2 100644 +--- a/src/pi_tests/classic_pi.c ++++ b/src/pi_tests/classic_pi.c +@@ -34,6 +34,8 @@ + #include + #include + ++#include "musl.h" ++ + /* test timeout */ + #define TIMEOUT 2 + +diff --git a/src/pi_tests/tst-mutexpi10.c b/src/pi_tests/tst-mutexpi10.c +index 97a345edd26e..1028d344edff 100644 +--- a/src/pi_tests/tst-mutexpi10.c ++++ b/src/pi_tests/tst-mutexpi10.c +@@ -35,6 +35,8 @@ + #include + #include + ++#include "musl.h" ++ + /* test timeout */ + #define TIMEOUT 2 + +diff --git a/src/pmqtest/pmqtest.c b/src/pmqtest/pmqtest.c +index 5db8d348cdf8..2de6c1417e4a 100644 +--- a/src/pmqtest/pmqtest.c ++++ b/src/pmqtest/pmqtest.c +@@ -24,6 +24,7 @@ + #include "rt-utils.h" + #include "rt-get_cpu.h" + #include "error.h" ++#include "musl.h" + + #include + +diff --git a/src/ptsematest/ptsematest.c b/src/ptsematest/ptsematest.c +index de8ea2fe1b0c..1568f3b78711 100644 +--- a/src/ptsematest/ptsematest.c ++++ b/src/ptsematest/ptsematest.c +@@ -22,6 +22,7 @@ + #include "rt-utils.h" + #include "rt-get_cpu.h" + #include "error.h" ++#include "musl.h" + + #include + +diff --git a/src/rt-migrate-test/rt-migrate-test.c b/src/rt-migrate-test/rt-migrate-test.c +index 4863238edeb4..9f1aba159dc7 100644 +--- a/src/rt-migrate-test/rt-migrate-test.c ++++ b/src/rt-migrate-test/rt-migrate-test.c +@@ -25,6 +25,7 @@ + #include + #include + #include "rt-utils.h" ++#include "musl.h" + + int nr_tasks; + int lfd; +diff --git a/src/sched_deadline/cyclicdeadline.c b/src/sched_deadline/cyclicdeadline.c +index a08e28e73c42..675a0ea1a162 100644 +--- a/src/sched_deadline/cyclicdeadline.c ++++ b/src/sched_deadline/cyclicdeadline.c +@@ -32,6 +32,8 @@ + #include + #include + ++#include "musl.h" ++ + #define _STR(x) #x + #define STR(x) _STR(x) + #ifndef MAXPATH +-- +2.26.2 + diff --git a/dev-util/rt-tests/rt-tests-1.8.ebuild b/dev-util/rt-tests/rt-tests-1.8.ebuild deleted file mode 100644 index f94e433d66c0..000000000000 --- a/dev-util/rt-tests/rt-tests-1.8.ebuild +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6..8} ) - -inherit python-single-r1 toolchain-funcs - -DESCRIPTION="A collection of latency testing tools for the linux(-rt) kernel" -HOMEPAGE="https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/about/" -SRC_URI=" - https://kernel.org/pub/linux/utils/rt-tests/${P}.tar.xz - https://kernel.org/pub/linux/utils/rt-tests/older/${P}.tar.xz" - -LICENSE="GPL-2 GPL-2+ LGPL-2.1+" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~x86" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" - -DEPEND="${PYTHON_DEPS} - sys-process/numactl" -RDEPEND="${DEPEND}" - -src_prepare() { - default - use elibc_musl && eapply "${FILESDIR}/${P}-musl.patch" -} - -src_compile() { - emake CC="$(tc-getCC)" AR="$(tc-getAR)" -} - -src_install() { - emake prefix=/usr DESTDIR="${D}" MAN_COMPRESSION=none install - python_fix_shebang "${ED}" - python_optimize -} diff --git a/dev-util/rt-tests/rt-tests-1.9.ebuild b/dev-util/rt-tests/rt-tests-1.9.ebuild new file mode 100644 index 000000000000..cb4f2d293518 --- /dev/null +++ b/dev-util/rt-tests/rt-tests-1.9.ebuild @@ -0,0 +1,38 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6..9} ) + +inherit python-single-r1 toolchain-funcs + +DESCRIPTION="A collection of latency testing tools for the linux(-rt) kernel" +HOMEPAGE="https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/about/" +SRC_URI=" + https://kernel.org/pub/linux/utils/rt-tests/${P}.tar.xz + https://kernel.org/pub/linux/utils/rt-tests/older/${P}.tar.xz" + +LICENSE="GPL-2 GPL-2+ LGPL-2.1+" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +DEPEND="${PYTHON_DEPS} + sys-process/numactl" +RDEPEND="${DEPEND}" + +src_prepare() { + default + use elibc_musl && eapply "${FILESDIR}/${P}-musl.patch" +} + +src_compile() { + emake CC="$(tc-getCC)" AR="$(tc-getAR)" +} + +src_install() { + emake prefix=/usr DESTDIR="${D}" MAN_COMPRESSION=none install + python_fix_shebang "${ED}" + python_optimize +} -- cgit v1.2.3