Ports: Update stress-ng to version 0.14.03

The stress-ng project appears to have addressed all the issues
we had been patching, and thus we no longer need almost all of
these patches.
This commit is contained in:
Brian Gianforcaro 2022-06-24 01:51:22 -07:00 committed by Brian Gianforcaro
parent 56c1e71a37
commit 77a725b6f4
17 changed files with 7 additions and 591 deletions

View file

@ -232,7 +232,7 @@ This list is also available at [ports.serenityos.net](https://ports.serenityos.n
| [`sqlite`](sqlite/) | SQLite | 3380500 | https://www.sqlite.org/ |
| [`stb`](stb/) | stb single-file public domain libraries for C/C++ | af1a5bc | https://github.com/nothings/stb |
| [`stpuzzles`](stpuzzles/) | Simon Tatham's Portable Puzzle Collection | | https://www.chiark.greenend.org.uk/~sgtatham/puzzles/ |
| [`stress-ng`](stress-ng/) | stress-ng | 0.13.12 | https://github.com/ColinIanKing/stress-ng |
| [`stress-ng`](stress-ng/) | stress-ng | 0.14.03 | https://github.com/ColinIanKing/stress-ng |
| [`Super-Mario`](Super-Mario/) | Super-Mario Clone | | https://github.com/Bennyhwanggggg/Super-Mario-Clone-Cpp |
| [`tcl`](tcl/) | Tcl | 8.6.12 | https://www.tcl-lang.org/ |
| [`termcap`](termcap/) | GNU termcap | 1.3.1 | https://www.gnu.org/software/termutils/ |

View file

@ -1,12 +1,11 @@
#!/usr/bin/env -S bash ../.port_include.sh
port=stress-ng
version=0.13.12
files="https://github.com/ColinIanKing/stress-ng/archive/V${version}.tar.gz stress-ng-${version}.tar.gz 16540d9cfa80d6a274fc0238d7251675ee38df6d5be805d14a67ce9efcb59ce9"
version=0.14.03
files="https://github.com/ColinIanKing/stress-ng/archive/V${version}.tar.gz stress-ng-${version}.tar.gz 95012c62883ab5826e6157557a075df98cce3cbce2a48bb40851bcc968a8441a"
auth_type=sha256
depends=("zlib")
pre_configure() {
export CFLAGS="-I${SERENITY_INSTALL_ROOT}/usr/local/include"
export LDFLAGS="-L${SERENITY_INSTALL_ROOT}/usr/local/lib -lzlib"
}

View file

@ -8,10 +8,10 @@ Subject: [PATCH] Makefile: Install to /usr/local
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/Makefile b/Makefile
index f8f71c5..1d90cd0 100644
index d990692..a07b40e 100644
--- a/Makefile
+++ b/Makefile
@@ -74,10 +74,10 @@ LDFLAGS += -static -z muldefs
@@ -87,10 +87,10 @@ LDFLAGS += -static -z muldefs
CFLAGS += -DBUILD_STATIC
endif
@ -25,4 +25,4 @@ index f8f71c5..1d90cd0 100644
+BASHDIR=/usr/local/share/bash-completion/completions
#
# Stressors
# Header files

View file

@ -1,40 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Gianforcaro <b.gianfo@gmail.com>
Date: Mon, 27 Dec 2021 20:53:47 -0800
Subject: [PATCH] serenity: Disable linux scheduler integration on Serenity
Follow the path of other platforms, and make this code nop
when compiling for serenity.
---
core-sched.c | 3 ++-
stress-schedpolicy.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/core-sched.c b/core-sched.c
index af8cb48..0406ff9 100644
--- a/core-sched.c
+++ b/core-sched.c
@@ -75,7 +75,8 @@ const char *stress_get_sched_name(const int sched)
#if (defined(_POSIX_PRIORITY_SCHEDULING) || defined(__linux__)) && \
!defined(__OpenBSD__) && \
!defined(__minix__) && \
- !defined(__APPLE__)
+ !defined(__APPLE__) && \
+ !defined(__serenity__)
static const char prefix[] = "sched";
diff --git a/stress-schedpolicy.c b/stress-schedpolicy.c
index 91d1d02..6f172d3 100644
--- a/stress-schedpolicy.c
+++ b/stress-schedpolicy.c
@@ -37,7 +37,8 @@ static const stress_help_t help[] = {
#if (defined(_POSIX_PRIORITY_SCHEDULING) || defined(__linux__)) && \
!defined(__OpenBSD__) && \
!defined(__minix__) && \
- !defined(__APPLE__)
+ !defined(__APPLE__) && \
+ !defined(__serenity__)
static const int policies[] = {
#if defined(SCHED_IDLE)

View file

@ -1,114 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Gianforcaro <b.gianfo@gmail.com>
Date: Mon, 27 Dec 2021 20:57:05 -0800
Subject: [PATCH] serenity: Disable itimer testing when compiling for Serenity
The itimer APIs are not implemented in serenity, so just disable
these tests.
---
stress-itimer.c | 10 ++++++++++
stress-sysbadaddr.c | 12 ++++++++++++
2 files changed, 22 insertions(+)
diff --git a/stress-itimer.c b/stress-itimer.c
index b2e466a..e8ead6a 100644
--- a/stress-itimer.c
+++ b/stress-itimer.c
@@ -35,6 +35,8 @@ static const stress_help_t help[] = {
{ NULL, NULL, NULL }
};
+#if !defined(__serenity__)
+
static const int stress_itimers[] = {
#if defined(ITIMER_REAL)
ITIMER_REAL,
@@ -223,3 +225,11 @@ stressor_info_t stress_itimer_info = {
.verify = VERIFY_ALWAYS,
.help = help
};
+#else
+stressor_info_t stress_itimer_info = {
+ .stressor = stress_not_implemented,
+ .class = CLASS_INTERRUPT | CLASS_OS,
+ .help = help
+};
+#endif
+
diff --git a/stress-sysbadaddr.c b/stress-sysbadaddr.c
index 5d9a10a..cacd01c 100644
--- a/stress-sysbadaddr.c
+++ b/stress-sysbadaddr.c
@@ -385,10 +385,12 @@ static int bad_gethostname(void *addr)
}
#endif
+#if !defined(__serenity__)
static int bad_getitimer(void *addr)
{
return getitimer(ITIMER_PROF, (struct itimerval *)addr);
}
+#endif
static int bad_getpeername(void *addr)
{
@@ -694,11 +696,13 @@ static int bad_select(void *addr)
return ret;
}
+#if !defined(__serenity__)
static int bad_setitimer(void *addr)
{
return setitimer(ITIMER_PROF, (struct itimerval *)addr,
(struct itimerval *)inc_addr(addr, 1));
}
+#endif
static int bad_setrlimit(void *addr)
{
@@ -892,7 +896,9 @@ static stress_bad_syscall_t bad_syscalls[] = {
#if defined(HAVE_GETHOSTNAME)
bad_gethostname,
#endif
+#if !defined(__serenity__)
bad_getitimer,
+#endif
bad_getpeername,
bad_getrandom,
bad_getrlimit,
@@ -966,7 +972,9 @@ static stress_bad_syscall_t bad_syscalls[] = {
bad_sched_getaffinity,
#endif
bad_select,
+#if !defined(__serenity__)
bad_setitimer,
+#endif
bad_setrlimit,
bad_stat,
#if defined(HAVE_STATFS)
@@ -1022,7 +1030,9 @@ static inline int stress_do_syscall(
if (pid < 0) {
_exit(EXIT_NO_RESOURCE);
} else if (pid == 0) {
+#if !defined(__serenity__)
struct itimerval it;
+#endif
size_t i;
int ret;
@@ -1045,6 +1055,7 @@ static inline int stress_do_syscall(
stress_parent_died_alarm();
(void)sched_settings_apply(true);
+#if !defined(__serenity__)
/*
* Force abort if we take too long
*/
@@ -1057,6 +1068,7 @@ static inline int stress_do_syscall(
args->name, errno, strerror(errno));
_exit(EXIT_NO_RESOURCE);
}
+#endif
ret = bad_syscall(addr);
if (ret < 0)

View file

@ -1,26 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Gianforcaro <b.gianfo@gmail.com>
Date: Mon, 27 Dec 2021 20:58:41 -0800
Subject: [PATCH] serenity: Fix duplicate definition of ALWAYS_INLINE on
serenity
---
stress-ng.h | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/stress-ng.h b/stress-ng.h
index 84d3bfa..5af02e1 100644
--- a/stress-ng.h
+++ b/stress-ng.h
@@ -560,6 +560,11 @@ typedef struct {
#define WEAK
#endif
+/* Serenity already defines this in sys/cdefs.h, just undefine it */
+#ifdef __serenity__
+ #undef ALWAYS_INLINE
+#endif
+
/* force inlining hint */
#if (defined(__GNUC__) && NEED_GNUC(3, 4, 0) \
&& ((!defined(__s390__) && !defined(__s390x__)) || NEED_GNUC(6, 0, 1))) || \

View file

@ -1,29 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Gianforcaro <b.gianfo@gmail.com>
Date: Mon, 27 Dec 2021 20:59:35 -0800
Subject: [PATCH] serenity: ifdef out key_t type usage, which serenity does not
have
---
stress-ng.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/stress-ng.h b/stress-ng.h
index 5af02e1..dac6113 100644
--- a/stress-ng.h
+++ b/stress-ng.h
@@ -990,11 +990,14 @@ typedef struct {
uint32_t futex[STRESS_PROCS_MAX]; /* Shared futexes */
uint64_t timeout[STRESS_PROCS_MAX]; /* Shared futex timeouts */
} futex;
+
+#ifndef __serenity__
struct {
key_t key_id; /* System V semaphore key id */
int sem_id; /* System V semaphore id */
bool init; /* System V semaphore initialized */
} sem_sysv;
+#endif
#if defined(STRESS_PERF_STATS)
struct {
bool no_perf; /* true = Perf not available */

View file

@ -1,34 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Gianforcaro <b.gianfo@gmail.com>
Date: Mon, 27 Dec 2021 21:01:59 -0800
Subject: [PATCH] serenity: Mark hsearch stressor as not implemented on
Serenity
---
stress-hsearch.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/stress-hsearch.c b/stress-hsearch.c
index 90bf3f6..9d97418 100644
--- a/stress-hsearch.c
+++ b/stress-hsearch.c
@@ -30,6 +30,8 @@ static const stress_help_t help[] = {
{ NULL, NULL, NULL }
};
+#if !defined(__serenity__)
+
/*
* stress_set_hsearch_size()
* set hsearch size from given option string
@@ -158,3 +160,10 @@ stressor_info_t stress_hsearch_info = {
.verify = VERIFY_OPTIONAL,
.help = help
};
+#else
+stressor_info_t stress_hsearch_info = {
+ .stressor = stress_not_implemented,
+ .class = CLASS_CPU_CACHE | CLASS_CPU | CLASS_MEMORY,
+ .help = help
+};
+#endif

View file

@ -1,29 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Gianforcaro <b.gianfo@gmail.com>
Date: Mon, 27 Dec 2021 23:30:03 -0800
Subject: [PATCH] serenity: Disable signal code validation for Serenity
We don't currently have a definition for SEGV_ACCERR, so
this validation is meaningless for SerenityOS.
---
stress-sigsegv.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/stress-sigsegv.c b/stress-sigsegv.c
index 9930c0e..d6ce99a 100644
--- a/stress-sigsegv.c
+++ b/stress-sigsegv.c
@@ -250,10 +250,13 @@ static int stress_sigsegv(const stress_args_t *args)
pr_fail("%s: expecting SIGSEGV/SIGILL/SIGBUS, got %s instead\n",
args->name, strsignal(signo));
}
+
+#if !defined(__serenity__)
if (verify && (signo == SIGBUS) && (code != SEGV_ACCERR)) {
pr_fail("%s: expecting SIGBUS si_code SEGV_ACCERR (%d), got %d instead\n",
args->name, SEGV_ACCERR, code);
}
+#endif
#endif
inc_counter(args);
} else {

View file

@ -1,40 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Gianforcaro <b.gianfo@gmail.com>
Date: Mon, 27 Dec 2021 23:46:44 -0800
Subject: [PATCH] serenity: Disable rand48 cpu stressor, it's not implemented
for Serenity
---
stress-cpu.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/stress-cpu.c b/stress-cpu.c
index 0a08f1d..c1f1fc5 100644
--- a/stress-cpu.c
+++ b/stress-cpu.c
@@ -668,6 +668,7 @@ static void HOT OPTIMIZE3 stress_cpu_logmap(const char *name)
stress_double_put(x);
}
+#if !defined(__serenity__)
/*
* stress_cpu_rand48()
* generate random values using rand48 family of functions
@@ -688,6 +689,7 @@ static void HOT OPTIMIZE3 stress_cpu_rand48(const char *name)
stress_double_put(d);
stress_uint64_put((uint64_t)l);
}
+#endif
/*
* stress_cpu_lfsr32()
@@ -3116,7 +3118,9 @@ static const stress_cpu_method_info_t cpu_methods[] = {
{ "psi", stress_cpu_psi },
{ "queens", stress_cpu_queens },
{ "rand", stress_cpu_rand },
+#if !defined(__serenity__)
{ "rand48", stress_cpu_rand48 },
+#endif
{ "rgb", stress_cpu_rgb },
{ "sieve", stress_cpu_sieve },
{ "stats", stress_cpu_stats },

View file

@ -1,33 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Gianforcaro <b.gianfo@gmail.com>
Date: Mon, 27 Dec 2021 23:47:22 -0800
Subject: [PATCH] serenity: Make lsearch stressor a nop on Serenity
---
stress-lsearch.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/stress-lsearch.c b/stress-lsearch.c
index c712112..1072b86 100644
--- a/stress-lsearch.c
+++ b/stress-lsearch.c
@@ -30,6 +30,8 @@ static const stress_help_t help[] = {
{ NULL, NULL, NULL }
};
+#if !defined(__serenity__)
+
/*
* stress_set_lsearch_size()
* set lsearch size from given option string
@@ -129,3 +131,10 @@ stressor_info_t stress_lsearch_info = {
.verify = VERIFY_OPTIONAL,
.help = help
};
+#else
+stressor_info_t stress_lsearch_info = {
+ .stressor = stress_not_implemented,
+ .class = CLASS_CPU_CACHE | CLASS_CPU | CLASS_MEMORY,
+ .help = help
+};
+#endif

View file

@ -1,26 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Gianforcaro <b.gianfo@gmail.com>
Date: Mon, 27 Dec 2021 23:47:45 -0800
Subject: [PATCH] serenity: Fake O_SYNC for serenity so iomix stressor compiles
Serenity doesn't yet support O_SYNC, so just make it compile.
---
stress-iomix.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/stress-iomix.c b/stress-iomix.c
index e99d262..8518e39 100644
--- a/stress-iomix.c
+++ b/stress-iomix.c
@@ -31,6 +31,11 @@
#define MAX_IOMIX_BYTES (MAX_FILE_LIMIT)
#define DEFAULT_IOMIX_BYTES (1 * GB)
+#if defined(__serenity__)
+ /* Serenity doesn't yet support O_SYNC, so just make it compile */
+ #define O_SYNC (0)
+#endif
+
typedef void (*stress_iomix_func)(const stress_args_t *args, const int fd, const off_t iomix_bytes);
static const stress_help_t help[] = {

View file

@ -1,50 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Gianforcaro <b.gianfo@gmail.com>
Date: Mon, 27 Dec 2021 23:48:49 -0800
Subject: [PATCH] serenity: Disable lrand48 zlib stress, it is not implemented
for Serenity
---
stress-zlib.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/stress-zlib.c b/stress-zlib.c
index 68330bb..90b0c65 100644
--- a/stress-zlib.c
+++ b/stress-zlib.c
@@ -691,6 +691,7 @@ static void stress_rand_data_lfsr32(
}
}
+#if !defined(__serenity__)
/*
* stress_rand_data_lrand48()
* fills buffer with random data from lrand48
@@ -714,6 +715,7 @@ static void stress_rand_data_lrand48(
while (ptr < end)
*(ptr++) = lrand48();
}
+#endif
/*
* stress_rand_data_latin()
@@ -878,7 +880,9 @@ static const stress_zlib_rand_data_func rand_data_funcs[] = {
stress_rand_data_fixed,
stress_rand_data_gray,
stress_rand_data_latin,
+#if !defined(__serenity__)
stress_rand_data_lrand48,
+#endif
stress_rand_data_nybble,
stress_rand_data_objcode,
stress_rand_data_parity,
@@ -921,7 +925,9 @@ static const stress_zlib_rand_data_info_t zlib_rand_data_methods[] = {
{ "latin", stress_rand_data_latin },
{ "logmap", stress_rand_data_logmap },
{ "lfsr32", stress_rand_data_lfsr32 },
+#if !defined(__serenity__)
{ "lrand48", stress_rand_data_lrand48 },
+#endif
{ "morse", stress_rand_data_morse },
{ "nybble", stress_rand_data_nybble },
{ "objcode", stress_rand_data_objcode },

View file

@ -1,26 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Gianforcaro <b.gianfo@gmail.com>
Date: Fri, 18 Mar 2022 02:35:30 -0700
Subject: [PATCH] serenity: Add bogus O_NDELAY just to allow the port to
compile
---
stress-dev.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/stress-dev.c b/stress-dev.c
index 7772097..aa98b0a 100644
--- a/stress-dev.c
+++ b/stress-dev.c
@@ -117,6 +117,11 @@
#include <termio.h>
#endif
+#if defined(__serenity__)
+ /* Serenity doesn't yet support O_NDELAY, so just make it compile */
+ #define O_NDELAY (0)
+#endif
+
/*
* Device information is held in a linked list of dev_info_t objects. Each
* nth element in the list also points to a unique device state which is

View file

@ -1,41 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Gianforcaro <b.gianfo@gmail.com>
Date: Fri, 18 Mar 2022 02:36:17 -0700
Subject: [PATCH] serenity: Disable nice() stress workload as we do not
implement it
---
stress-syncload.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/stress-syncload.c b/stress-syncload.c
index ca89124..7dd9e52 100644
--- a/stress-syncload.c
+++ b/stress-syncload.c
@@ -130,6 +130,7 @@ static void stress_syncload_loop(void)
}
}
+#if !defined(__serenity__)
static void stress_syncload_nice(void)
{
int niceness;
@@ -137,6 +138,7 @@ static void stress_syncload_nice(void)
niceness = nice(0);
(void)niceness;
}
+#endif
static void stress_syncload_spinwrite(void)
{
@@ -196,7 +198,10 @@ static const stress_syncload_op_t stress_syncload_ops[] = {
#if defined(HAVE_VECMATH)
stress_syncload_vecmath,
#endif
+
+#if !defined(__serenity__)
stress_syncload_nice,
+#endif
stress_syncload_spinwrite,
};

View file

@ -1,23 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Gianforcaro <b.gianfo@gmail.com>
Date: Fri, 18 Mar 2022 02:36:55 -0700
Subject: [PATCH] serenity: Disable prctl stressor on serenity
---
stress-usersyscall.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/stress-usersyscall.c b/stress-usersyscall.c
index 26732db..a4eb903 100644
--- a/stress-usersyscall.c
+++ b/stress-usersyscall.c
@@ -26,7 +26,8 @@ static const stress_help_t help[] = {
};
#if defined(SA_SIGINFO) && \
- defined(HAVE_SYS_PRCTL_H)
+ defined(HAVE_SYS_PRCTL_H) && \
+ !defined(__serenity__)
#include <sys/prctl.h>

View file

@ -1,78 +1,6 @@
# Patches for stress-ng on SerenityOS
## `0001-serenity-Disable-linux-scheduler-integration-on-Sere.patch`
serenity: Disable linux scheduler integration on Serenity
Follow the path of other platforms, and make this code nop
when compiling for serenity.
## `0002-serenity-Disable-itimer-testing-when-compiling-for-S.patch`
serenity: Disable itimer testing when compiling for Serenity
The itimer APIs are not implemented in serenity, so just disable
these tests.
## `0003-serenity-Fix-duplicate-definition-of-ALWAYS_INLINE-o.patch`
serenity: Fix duplicate definition of ALWAYS_INLINE on serenity
## `0004-serenity-ifdef-out-key_t-type-usage-which-serenity-d.patch`
serenity: ifdef out key_t type usage, which serenity does not have
## `0005-serenity-Mark-hsearch-stressor-as-not-implemented-on.patch`
serenity: Mark hsearch stressor as not implemented on Serenity
## `0006-serenity-Disable-signal-code-validation-for-Serenity.patch`
serenity: Disable signal code validation for Serenity
We don't currently have a definition for SEGV_ACCERR, so
this validation is meaningless for SerenityOS.
## `0007-serenity-Disable-rand48-cpu-stressor-it-s-not-implem.patch`
serenity: Disable rand48 cpu stressor, it's not implemented for Serenity
## `0008-serenity-Make-lsearch-stressor-a-nop-on-Serenity.patch`
serenity: Make lsearch stressor a nop on Serenity
## `0009-serenity-Fake-O_SYNC-for-serenity-so-iomix-stressor-.patch`
serenity: Fake O_SYNC for serenity so iomix stressor compiles
Serenity doesn't yet support O_SYNC, so just make it compile.
## `0010-serenity-Disable-lrand48-zlib-stress-it-is-not-imple.patch`
serenity: Disable lrand48 zlib stress, it is not implemented for Serenity
## `0011-serenity-Add-bogus-O_NDELAY-just-to-allow-the-port-t.patch`
serenity: Add bogus O_NDELAY just to allow the port to compile
## `0012-serenity-Disable-nice-stress-workload-as-we-do-not-i.patch`
serenity: Disable nice() stress workload as we do not implement it
## `0013-serenity-Disable-prctl-stressor-on-serenity.patch`
serenity: Disable prctl stressor on serenity
## `0014-Makefile-Install-to-usr-local.patch`
## `0001-Makefile-Install-to-usr-local.patch`
Makefile: Install to /usr/local