dev-util/rt-tests: drop 2.7

Signed-off-by: Kurt Kanzenbach <kurt@kmk-computers.de>
Part-of: https://github.com/gentoo/gentoo/pull/42877
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Kurt Kanzenbach 2025-07-04 19:52:29 +02:00 committed by Sam James
parent 0c183452a3
commit 47379f0405
No known key found for this signature in database
GPG Key ID: 738409F520DF9190
3 changed files with 0 additions and 406 deletions

View File

@ -1,3 +1,2 @@
DIST rt-tests-2.7.tar.xz 106864 BLAKE2B 89af0a92465ca29eb19adb6bb521be377dedb4153fc98bdcce48e1bad71803ed4aad2088227cfc679ce2441d09932acae437911535daec266b7ac2247fbad8d8 SHA512 6f2e523a6ff683473a222dc3b38abd34a06610c78b488d9d103643e410089d03820c76a4f40afaa4694d29f36e1aef6ced584cae9bad72921e3d633e36a5cda3
DIST rt-tests-2.8.tar.xz 108480 BLAKE2B 852143d6d8017f08cecf847e5feb8d59390373828826d75f5d22259208fc0c3e3966615039cfc9a832648377044ffd10cced481796d68426c70bb824b558c1f4 SHA512 e3fa03258cd1fe22a65c6af9ac17398dba79fbb5a92f6aacbbb06bfb677982abc421d699d2889850505e83d78b0605cced7dbfb176e023cc34bdd25ec819a3a5
DIST rt-tests-2.9.tar.xz 108708 BLAKE2B df8554767296b9938916a6484d4a177ccc5140db56437b8a07b6352c092f1512aedd12e44683295392d3457bfba012b131d38cc5af5fef3054f7ae20a477bb56 SHA512 7e7fe2bc8833891900c9c29ad1e0b188003bcdbd40aeb2412153fef3d5f2157a8a3964d46060e9e12ffc200e66dcfb55f78b8df3163ed33116e9b834e4f3113f

View File

@ -1,366 +0,0 @@
From 0b7a1e0d3463aa8aa4b7dcad0ec154e658d68036 Mon Sep 17 00:00:00 2001
From: Kurt Kanzenbach <kurt@kmk-computers.de>
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, add missing casts
* all: Fix sched_* calls
With these changes applied, the rt-tests seem to run fine.
Signed-off-by: Kurt Kanzenbach <kurt@kmk-computers.de>
---
Makefile | 5 --
src/backfire/sendme.c | 1
src/cyclictest/cyclictest.c | 68 ++++------------------------------
src/hackbench/hackbench.c | 12 +++---
src/include/musl.h | 28 ++++++++++++++
src/lib/rt-utils.c | 1
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 | 1
11 files changed, 51 insertions(+), 70 deletions(-)
create mode 100644 src/include/musl.h
--- a/Makefile
+++ b/Makefile
@@ -8,7 +8,6 @@ OBJDIR = bld
sources = cyclictest.c \
hackbench.c \
pip_stress.c \
- pi_stress.c \
pmqtest.c \
ptsematest.c \
rt-migrate-test.c \
@@ -43,7 +42,6 @@ ifeq (${PYLIB},)
endif
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 \
@@ -131,9 +129,6 @@ deadline_test: $(OBJDIR)/deadline_test.o
signaltest: $(OBJDIR)/signaltest.o $(OBJDIR)/librttest.a $(OBJDIR)/librttestnuma.a
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(RTTESTLIB) $(RTTESTNUMA)
-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
--- a/src/backfire/sendme.c
+++ b/src/backfire/sendme.c
@@ -16,6 +16,7 @@
#include <string.h>
#include <time.h>
#include <errno.h>
+#include "musl.h"
#include "rt-utils.h"
#include "rt-get_cpu.h"
--- a/src/cyclictest/cyclictest.c
+++ b/src/cyclictest/cyclictest.c
@@ -30,6 +30,7 @@
#include <sys/utsname.h>
#include <sys/mman.h>
#include <sys/syscall.h>
+#include "musl.h"
#include "rt_numa.h"
#include "rt-utils.h"
@@ -469,12 +470,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 = { 0 };
- struct itimerval itimer;
- struct itimerspec tspec;
struct thread_stat *stat = par->stats;
int stopped = 0;
cpu_set_t mask;
@@ -503,14 +500,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))
@@ -564,20 +553,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++;
@@ -585,16 +560,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,
@@ -708,11 +677,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)) {
@@ -737,17 +701,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);
@@ -1143,7 +1096,8 @@ static void process_options(int argc, ch
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;
@@ -1176,13 +1130,6 @@ static void process_options(int argc, ch
}
}
- 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) {
numa = numa_initialize();
@@ -1876,7 +1823,6 @@ int main(int argc, char **argv)
}
-
mode = use_nanosleep + use_system;
sigemptyset(&sigset);
@@ -1931,6 +1877,7 @@ int main(int argc, char **argv)
void *currstk;
size_t stksize;
int node_cpu = cpu;
+ int err;
if (node_cpu == -1)
node_cpu = cpu_for_thread_ua(i, max_cpus);
@@ -1939,11 +1886,12 @@ int main(int argc, char **argv)
node = rt_numa_numa_node_of_cpu(node_cpu);
/* get the stack size set 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 */
--- a/src/hackbench/hackbench.c
+++ b/src/hackbench/hackbench.c
@@ -25,7 +25,7 @@
#include <sys/socket.h>
#include <sys/wait.h>
#include <sys/time.h>
-#include <sys/poll.h>
+#include <poll.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <limits.h>
@@ -34,6 +34,8 @@
#include <setjmp.h>
#include <sched.h>
+#include "musl.h"
+
static unsigned int datasize = 100;
static unsigned int loops = 100;
static unsigned int num_groups = 10;
@@ -128,9 +130,9 @@ static int inet_socketpair(int fds[2])
sin.sin_port = 0;
sin.sin_addr.s_addr = inet_addr("127.0.0.1");
- if (bind(s1, &sin, len) < 0)
+ if (bind(s1, (struct sockaddr *)&sin, len) < 0)
barf("bind");
- if (getsockname(s1, &sin, &len) < 0)
+ if (getsockname(s1, (struct sockaddr *)&sin, &len) < 0)
barf("getsockname");
if (listen(s1, 10) < 0)
barf("listen");
@@ -138,9 +140,9 @@ static int inet_socketpair(int fds[2])
barf("ioctl");
if (ioctl(s1, FIONBIO, &ul) < 0)
barf("ioctl");
- if (connect(s2, &sin, len) < 0)
+ if (connect(s2, (struct sockaddr *)&sin, len) < 0)
barf("connect");
- if ((fds[0] = accept(s1, &sin, &len)) < 0)
+ if ((fds[0] = accept(s1, (struct sockaddr *)&sin, &len)) < 0)
barf("accept");
ul = 0;
if (ioctl(s2, FIONBIO, &ul) < 0)
--- /dev/null
+++ b/src/include/musl.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2020 Kurt Kanzenbach <kurt@kmk-computers.de>
+ * Time-stamp: <2020-04-04 10:54:01 kurt>
+ */
+
+#ifndef _MUSL_H_
+#define _MUSL_H_
+
+#include <unistd.h>
+#include <sys/syscall.h>
+
+/*
+ * 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_ */
--- a/src/lib/rt-utils.c
+++ b/src/lib/rt-utils.c
@@ -24,6 +24,7 @@
#include <time.h>
#include <sys/time.h>
+#include "musl.h"
#include "rt-utils.h"
#include "rt-sched.h"
#include "rt-error.h"
--- a/src/pi_tests/tst-mutexpi10.c
+++ b/src/pi_tests/tst-mutexpi10.c
@@ -35,6 +35,8 @@
#include <string.h>
#include <signal.h>
+#include "musl.h"
+
/* test timeout */
#define TIMEOUT 2
--- a/src/pmqtest/pmqtest.c
+++ b/src/pmqtest/pmqtest.c
@@ -24,6 +24,7 @@
#include <pthread.h>
#include <inttypes.h>
+#include "musl.h"
#include "rt-utils.h"
#include "rt-get_cpu.h"
#include "rt-error.h"
--- a/src/ptsematest/ptsematest.c
+++ b/src/ptsematest/ptsematest.c
@@ -22,6 +22,7 @@
#include <pthread.h>
#include <inttypes.h>
+#include "musl.h"
#include "rt-utils.h"
#include "rt-get_cpu.h"
#include "rt-error.h"
--- a/src/rt-migrate-test/rt-migrate-test.c
+++ b/src/rt-migrate-test/rt-migrate-test.c
@@ -27,6 +27,7 @@
#include <linux/unistd.h>
+#include "musl.h"
#include "rt-utils.h"
int nr_tasks;
--- a/src/sched_deadline/cyclicdeadline.c
+++ b/src/sched_deadline/cyclicdeadline.c
@@ -30,6 +30,7 @@
#include <linux/unistd.h>
#include <linux/magic.h>
+#include "musl.h"
#include "rt-utils.h"
#include "rt-sched.h"
#include "rt-error.h"

View File

@ -1,39 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..13} )
inherit python-single-r1 toolchain-funcs flag-o-matic
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/"
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() {
append-lfs-flags
emake CC="$(tc-getCC)" AR="$(tc-getAR)"
}
src_install() {
emake CC="$(tc-getCC)" prefix=/usr DESTDIR="${ED}" install
python_fix_shebang "${ED}"
python_optimize
}