mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
dev-util/rt-tests: drop 2.4
Signed-off-by: Kurt Kanzenbach <kurt@kmk-computers.de> Closes: https://github.com/gentoo/gentoo/pull/29218 Signed-off-by: Joonas Niilola <juippis@gentoo.org>
This commit is contained in:
committed by
Joonas Niilola
parent
9e71ff9ee4
commit
b1b9a9cc7c
@@ -1,2 +1 @@
|
||||
DIST rt-tests-2.4.tar.xz 104172 BLAKE2B bd7ac3ff64171b122341eec81ac61dcda429d33d6a69362d498d5db667b8cb77502d745bc2f7ce03cc1e958d02889a902f65544c7fef994fb4d7e72230c73e10 SHA512 308207ad620ee458e4ac000a9437266a84f4807d9cecd8030d5ae12a210c2a01f80a331bb60faeb41244d7ab80b3cadf8164711547a02f5afa353d1a3644d794
|
||||
DIST rt-tests-2.5.tar.xz 104596 BLAKE2B 3c03be9fb58ede744b6521cd74cef923f667c94ad8a3abb3d88efa7733f7672c8151b22e122499d1811f16ccd5a9335110eeb6c7c722c9899c369c912112f3b2 SHA512 a9966b6da89a9778f668faee5c347024a43bf978826bf16f0f8034acbf383eb688c6962e1de80e7efd34a5a0c67cb7c37ed5822979676b76a1e725d620bfd391
|
||||
|
||||
@@ -1,341 +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
|
||||
* 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 | 70 ++++------------------------------
|
||||
src/hackbench/hackbench.c | 4 +
|
||||
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, 48 insertions(+), 67 deletions(-)
|
||||
create mode 100644 src/include/musl.h
|
||||
|
||||
--- 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 \
|
||||
@@ -42,7 +41,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 \
|
||||
@@ -130,9 +128,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
|
||||
@@ -29,6 +29,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
|
||||
@@ -33,6 +33,7 @@
|
||||
#include <sys/utsname.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/syscall.h>
|
||||
+#include "musl.h"
|
||||
#include "rt_numa.h"
|
||||
|
||||
#include "rt-utils.h"
|
||||
@@ -546,12 +547,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;
|
||||
@@ -580,14 +577,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))
|
||||
@@ -641,20 +630,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++;
|
||||
|
||||
@@ -662,16 +637,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,
|
||||
@@ -792,11 +761,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)) {
|
||||
@@ -821,17 +785,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);
|
||||
@@ -1227,7 +1180,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;
|
||||
@@ -1260,13 +1214,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();
|
||||
@@ -1993,7 +1940,6 @@ int main(int argc, char **argv)
|
||||
|
||||
}
|
||||
|
||||
-
|
||||
mode = use_nanosleep + use_system;
|
||||
|
||||
sigemptyset(&sigset);
|
||||
@@ -2043,16 +1989,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 this thread */
|
||||
- if (pthread_attr_getstack(&attr, &currstk, &stksize))
|
||||
+ /* get the stack size set for for this thread */
|
||||
+ 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;
|
||||
--- /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"
|
||||
@@ -1,38 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{9..11} )
|
||||
|
||||
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/"
|
||||
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 CC="$(tc-getCC)" prefix=/usr DESTDIR="${ED}" install
|
||||
python_fix_shebang "${ED}"
|
||||
python_optimize
|
||||
}
|
||||
Reference in New Issue
Block a user