Update the stress-ng-0.18.06 upstream
Update the stress-ng-0.18.06 upstream Include some upstream patches after 0.18.06 Resolves: RHEL-65474 Signed-off-by: John Kacur <jkacur@redhat.com>
This commit is contained in:
parent
e18370f94c
commit
29cd0a335f
26
README.md-add-another-kernel-commit-to-the-2024-kern.patch
Normal file
26
README.md-add-another-kernel-commit-to-the-2024-kern.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From 9fc2f3ae54d9ce11b8c390d198ed540850f70cb2 Mon Sep 17 00:00:00 2001
|
||||
From: Colin Ian King <colin.i.king@gmail.com>
|
||||
Date: Mon, 4 Nov 2024 11:25:46 +0000
|
||||
Subject: [PATCH 3/8] README.md: add another kernel commit to the 2024 kernel
|
||||
bug list
|
||||
|
||||
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
|
||||
---
|
||||
README.md | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/README.md b/README.md
|
||||
index 40953ac81200..47ec76a3ea91 100644
|
||||
--- a/README.md
|
||||
+++ b/README.md
|
||||
@@ -487,6 +487,7 @@ stress-ng has found various Kernel, QEMU bugs/regressions, and libc bugs; approp
|
||||
* [cygwin: timer_delete: Fix return value](https://sourceware.org/pipermail/cygwin-patches/2024q4/012803.html)
|
||||
* [security/keys: fix slab-out-of-bounds in key_task_permission](https://www.spinics.net/lists/kernel/msg5392458.html)
|
||||
* [sched_ext: Don't hold scx_tasks_lock for too long](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?b07996c7abac0fe3f70bf74b0b3f76eb7852ef5a)
|
||||
+* [sched/numa: Fix the potential null pointer dereference in task_numa_work()](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?9c70b2a33cd2aa6a5a59c5523ef053bd42265209)
|
||||
|
||||
## Kernel improvements that used stress-ng
|
||||
|
||||
--
|
||||
2.47.0
|
||||
|
@ -1,33 +0,0 @@
|
||||
From cdfb0b0656b6fd371cf73333af54530e8de556e1 Mon Sep 17 00:00:00 2001
|
||||
From: Colin Ian King <colin.i.king@gmail.com>
|
||||
Date: Fri, 3 May 2024 10:46:01 +0100
|
||||
Subject: [PATCH] core-asm-arm.h: declare stress_asm_arm_yield when
|
||||
HAVE_ASM_ARM_YIELD is defined
|
||||
|
||||
Don't declare inlined yield helper if yield is not available
|
||||
|
||||
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
|
||||
---
|
||||
core-asm-arm.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/core-asm-arm.h b/core-asm-arm.h
|
||||
index c275dc8b9bda..152e771811b8 100644
|
||||
--- a/core-asm-arm.h
|
||||
+++ b/core-asm-arm.h
|
||||
@@ -24,10 +24,12 @@
|
||||
|
||||
#if defined(STRESS_ARCH_ARM)
|
||||
|
||||
+#if defined(HAVE_ASM_ARM_YIELD)
|
||||
static inline void ALWAYS_INLINE stress_asm_arm_yield(void)
|
||||
{
|
||||
__asm__ __volatile__("yield;\n");
|
||||
}
|
||||
+#endif
|
||||
|
||||
/* #if defined(STRESS_ARCH_ARM) */
|
||||
#endif
|
||||
--
|
||||
2.45.0
|
||||
|
224
core-shim-add-shim-to-ppoll-and-workaround-fortifica.patch
Normal file
224
core-shim-add-shim-to-ppoll-and-workaround-fortifica.patch
Normal file
@ -0,0 +1,224 @@
|
||||
From 9b3e9418715b013889e487ac40d14b85a2def7c4 Mon Sep 17 00:00:00 2001
|
||||
From: Colin Ian King <colin.i.king@gmail.com>
|
||||
Date: Mon, 4 Nov 2024 14:29:09 +0000
|
||||
Subject: [PATCH 4/8] core-shim: add shim to ppoll() and workaround
|
||||
fortification issues
|
||||
|
||||
It appears that ppoll() on 32 bit builds with _FORTIFY_SOURCE > 2 can
|
||||
cause some issues on some build environments. Workaround this by
|
||||
adding a shim_ppoll() wrapper with reduced _FORTIFY_SOURCE settings
|
||||
to workaround this issue.
|
||||
|
||||
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
|
||||
---
|
||||
core-shim.c | 37 +++++++++++++++++++++++++++++++++++++
|
||||
core-shim.h | 20 ++++++++++++++++++++
|
||||
stress-poll.c | 6 +++---
|
||||
stress-procfs.c | 2 +-
|
||||
stress-sysbadaddr.c | 8 ++++----
|
||||
stress-syscall.c | 2 +-
|
||||
stress-sysfs.c | 2 +-
|
||||
7 files changed, 67 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/core-shim.c b/core-shim.c
|
||||
index e291f2364640..8f51991137e3 100644
|
||||
--- a/core-shim.c
|
||||
+++ b/core-shim.c
|
||||
@@ -2824,3 +2824,40 @@ int shim_mseal(void *addr, size_t len, unsigned long flags)
|
||||
return shim_enosys(0, addr, len, flags);
|
||||
#endif
|
||||
}
|
||||
+
|
||||
+
|
||||
+/*
|
||||
+ * shim_ppoll()
|
||||
+ * shim wrapper for ppoll
|
||||
+ */
|
||||
+int shim_ppoll(
|
||||
+ struct pollfd *fds,
|
||||
+ nfds_t nfds,
|
||||
+ const struct timespec *tmo_p,
|
||||
+ const sigset_t *sigmask)
|
||||
+{
|
||||
+
|
||||
+#if defined(HAVE_PPOLL)
|
||||
+
|
||||
+#if defined(_FORTIFY_SOURCE)
|
||||
+#undef STRESS__FORTIFY_SOURCE
|
||||
+#define STRESS__FORTIFY_SOURCE _FORTIFY_SOURCE
|
||||
+#undef _FORTIFY_SOURCE
|
||||
+#define _FORTIFY_SOURCE 2
|
||||
+#endif
|
||||
+
|
||||
+ return ppoll(fds, nfds, tmo_p, sigmask);
|
||||
+
|
||||
+#if defined(STRESS__FORTIFY_SOURCE)
|
||||
+#undef _FORTIFY_SOURCE
|
||||
+#define _FORTIFY_SOURCE STRESS__FORTIFY_SOURCE
|
||||
+#undef STRESS__FORTIFY_SOURCE
|
||||
+#endif
|
||||
+
|
||||
+#elif defined(__NR_ppoll)
|
||||
+ return (int)syscall(__NR_ppoll, fds, nfds, tmo_p, sigmask);
|
||||
+#else
|
||||
+ return shim_enosys(0, fds, nfds, tmo_p, sigmask);
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
diff --git a/core-shim.h b/core-shim.h
|
||||
index 604f187828ac..2ec591f00ba4 100644
|
||||
--- a/core-shim.h
|
||||
+++ b/core-shim.h
|
||||
@@ -23,6 +23,10 @@
|
||||
#include <sys/uio.h>
|
||||
#endif
|
||||
|
||||
+#if defined(HAVE_POLL_H)
|
||||
+#include <poll.h>
|
||||
+#endif
|
||||
+
|
||||
#include <dirent.h>
|
||||
#include <sched.h>
|
||||
#include <sys/resource.h>
|
||||
@@ -325,6 +329,20 @@ typedef struct shim_timex {
|
||||
} shim_timex_t;
|
||||
#endif
|
||||
|
||||
+#if defined(HAVE_PPOLL)
|
||||
+typedef nfds_t shim_nfds_t;
|
||||
+
|
||||
+typedef struct pollfd shim_pollfd_t;
|
||||
+#else
|
||||
+typedef unsigned int shim_nfds_t;
|
||||
+
|
||||
+typedef struct shim_pollfd {
|
||||
+ int fd;
|
||||
+ short events;
|
||||
+ short revents;
|
||||
+} shim_pollfd_t;
|
||||
+#endif
|
||||
+
|
||||
/*
|
||||
* shim_unconstify_ptr()
|
||||
* some older system calls require non-const void *
|
||||
@@ -502,5 +520,7 @@ extern int shim_lstat(const char *pathname, struct stat *statbuf);
|
||||
extern int shim_stat(const char *pathname, struct stat *statbuf);
|
||||
extern unsigned char shim_dirent_type(const char *path, const struct dirent *d);
|
||||
extern int shim_mseal(void *addr, size_t len, unsigned long flags);
|
||||
+extern int shim_ppoll(struct pollfd *fds, nfds_t nfds,
|
||||
+ const struct timespec *tmo_p, const sigset_t *sigmask);
|
||||
|
||||
#endif
|
||||
diff --git a/stress-poll.c b/stress-poll.c
|
||||
index 83d6c55c7375..406b106aa365 100644
|
||||
--- a/stress-poll.c
|
||||
+++ b/stress-poll.c
|
||||
@@ -277,7 +277,7 @@ abort:
|
||||
(void)sigemptyset(&sigmask);
|
||||
(void)sigaddset(&sigmask, SIGPIPE);
|
||||
|
||||
- ret = ppoll(poll_fds, max_fds, &ts, &sigmask);
|
||||
+ ret = shim_ppoll(poll_fds, max_fds, &ts, &sigmask);
|
||||
if ((g_opt_flags & OPT_FLAGS_VERIFY) &&
|
||||
(ret < 0) && (errno != EINTR)) {
|
||||
pr_fail("%s: ppoll failed, errno=%d (%s)\n",
|
||||
@@ -298,7 +298,7 @@ abort:
|
||||
/* Exercise illegal poll timeout */
|
||||
ts.tv_sec = 0;
|
||||
ts.tv_nsec = 1999999999;
|
||||
- VOID_RET(int, ppoll(poll_fds, max_fds, &ts, &sigmask));
|
||||
+ VOID_RET(int, shim_ppoll(poll_fds, max_fds, &ts, &sigmask));
|
||||
if (!stress_continue(args))
|
||||
break;
|
||||
|
||||
@@ -317,7 +317,7 @@ abort:
|
||||
if (LIKELY(setrlimit(RLIMIT_NOFILE, &new_rlim) == 0)) {
|
||||
ts.tv_sec = 0;
|
||||
ts.tv_nsec = 0;
|
||||
- VOID_RET(int, ppoll(poll_fds, max_fds, &ts, &sigmask));
|
||||
+ VOID_RET(int, shim_ppoll(poll_fds, max_fds, &ts, &sigmask));
|
||||
|
||||
(void)setrlimit(RLIMIT_NOFILE, &old_rlim);
|
||||
if (!stress_continue(args))
|
||||
diff --git a/stress-procfs.c b/stress-procfs.c
|
||||
index 90b045e1368b..94dece7494ed 100644
|
||||
--- a/stress-procfs.c
|
||||
+++ b/stress-procfs.c
|
||||
@@ -516,7 +516,7 @@ mmap_test:
|
||||
fds[0].events = POLLIN;
|
||||
fds[0].revents = 0;
|
||||
|
||||
- VOID_RET(int, ppoll(fds, 1, &ts, &sigmask));
|
||||
+ VOID_RET(int, shim_ppoll(fds, 1, &ts, &sigmask));
|
||||
}
|
||||
#endif
|
||||
|
||||
diff --git a/stress-sysbadaddr.c b/stress-sysbadaddr.c
|
||||
index d77e3f2c9004..e7622bab059c 100644
|
||||
--- a/stress-sysbadaddr.c
|
||||
+++ b/stress-sysbadaddr.c
|
||||
@@ -1515,7 +1515,7 @@ static void bad_ppoll1(stress_bad_addr_t *ba, volatile uint64_t *counter)
|
||||
sigset_t *ss = (sigset_t *)(inc_addr(addr, sizeof(struct pollfd) + sizeof(struct timespec)));
|
||||
|
||||
(*counter)++;
|
||||
- VOID_RET(int, ppoll((struct pollfd *)addr, (nfds_t)1, ts, ss));
|
||||
+ VOID_RET(int, shim_ppoll((struct pollfd *)addr, (nfds_t)1, ts, ss));
|
||||
}
|
||||
|
||||
static void bad_ppoll2(stress_bad_addr_t *ba, volatile uint64_t *counter)
|
||||
@@ -1528,7 +1528,7 @@ static void bad_ppoll2(stress_bad_addr_t *ba, volatile uint64_t *counter)
|
||||
ts.tv_nsec = 0;
|
||||
|
||||
(*counter)++;
|
||||
- VOID_RET(int, ppoll((struct pollfd *)ba->addr, (nfds_t)16, &ts, &sigmask));
|
||||
+ VOID_RET(int, shim_ppoll((struct pollfd *)ba->addr, (nfds_t)16, &ts, &sigmask));
|
||||
}
|
||||
|
||||
static void bad_ppoll3(stress_bad_addr_t *ba, volatile uint64_t *counter)
|
||||
@@ -1543,7 +1543,7 @@ static void bad_ppoll3(stress_bad_addr_t *ba, volatile uint64_t *counter)
|
||||
(void)sigemptyset(&sigmask);
|
||||
|
||||
(*counter)++;
|
||||
- VOID_RET(int, ppoll(&pfd, (nfds_t)1, (struct timespec *)ba->addr, &sigmask));
|
||||
+ VOID_RET(int, shim_ppoll(&pfd, (nfds_t)1, (struct timespec *)ba->addr, &sigmask));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1560,7 +1560,7 @@ static void bad_ppoll4(stress_bad_addr_t *ba, volatile uint64_t *counter)
|
||||
ts.tv_nsec = 0;
|
||||
|
||||
(*counter)++;
|
||||
- VOID_RET(int, ppoll(&pfd, (nfds_t)1, &ts, (sigset_t *)ba->addr));
|
||||
+ VOID_RET(int, shim_ppoll(&pfd, (nfds_t)1, &ts, (sigset_t *)ba->addr));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
diff --git a/stress-syscall.c b/stress-syscall.c
|
||||
index 91fa08e7425f..ca75669acb63 100644
|
||||
--- a/stress-syscall.c
|
||||
+++ b/stress-syscall.c
|
||||
@@ -4563,7 +4563,7 @@ static int syscall_ppoll(void)
|
||||
VOID_RET(int, sigemptyset(&sigmask));
|
||||
|
||||
t1 = syscall_time_now();
|
||||
- ret = ppoll(fds, SIZEOF_ARRAY(fds), &ts, &sigmask);
|
||||
+ ret = shim_ppoll(fds, SIZEOF_ARRAY(fds), &ts, &sigmask);
|
||||
t2 = syscall_time_now();
|
||||
return ret;
|
||||
}
|
||||
diff --git a/stress-sysfs.c b/stress-sysfs.c
|
||||
index 4ee4d8237b87..25f032cbe3eb 100644
|
||||
--- a/stress-sysfs.c
|
||||
+++ b/stress-sysfs.c
|
||||
@@ -328,7 +328,7 @@ static inline bool stress_sys_rw(stress_ctxt_t *ctxt)
|
||||
ts.tv_nsec = 1000;
|
||||
|
||||
(void)sigemptyset(&sigmask);
|
||||
- VOID_RET(int, ppoll(fds, 1, &ts, &sigmask));
|
||||
+ VOID_RET(int, shim_ppoll(fds, 1, &ts, &sigmask));
|
||||
}
|
||||
#else
|
||||
UNEXPECTED
|
||||
--
|
||||
2.47.0
|
||||
|
104
core-shim-limit-_FORTIFY_SOURCE-to-2-for-ALT-linux-g.patch
Normal file
104
core-shim-limit-_FORTIFY_SOURCE-to-2-for-ALT-linux-g.patch
Normal file
@ -0,0 +1,104 @@
|
||||
From 4e832afb77a158a6bb59f7adac6d9db5ecd5a4b8 Mon Sep 17 00:00:00 2001
|
||||
From: Colin Ian King <colin.i.king@gmail.com>
|
||||
Date: Tue, 5 Nov 2024 14:40:21 +0000
|
||||
Subject: [PATCH 6/8] core-shim: limit _FORTIFY_SOURCE to 2 for ALT linux gcc
|
||||
for ppoll workaround
|
||||
|
||||
Fixes: https://github.com/ColinIanKing/stress-ng/issues/452
|
||||
|
||||
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
|
||||
---
|
||||
Makefile | 8 ++++++++
|
||||
core-shim.c | 40 ++++++++++++++++++++++------------------
|
||||
2 files changed, 30 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 2661376a258a..cb395115cd64 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -52,6 +52,14 @@ ifneq ($(shell $(CC) -v 2>&1 | grep scan-build),)
|
||||
COMPILER = scan-build
|
||||
endif
|
||||
|
||||
+#
|
||||
+# check for ALT linux gcc, define HAVE_ALT_LINUX_GCC, see core-shim.c
|
||||
+# https://github.com/ColinIanKing/stress-ng/issues/452
|
||||
+#
|
||||
+ifneq ($(shell $(CC) -v 2>&1 | grep Target | grep "alt-linux"),)
|
||||
+override CFLAGS += -DHAVE_ALT_LINUX_GCC
|
||||
+endif
|
||||
+
|
||||
KERNEL=$(shell uname -s)
|
||||
NODENAME=$(shell uname -n)
|
||||
|
||||
diff --git a/core-shim.c b/core-shim.c
|
||||
index a7813474ab86..2f4b88f8188c 100644
|
||||
--- a/core-shim.c
|
||||
+++ b/core-shim.c
|
||||
@@ -19,6 +19,17 @@
|
||||
*/
|
||||
#define STRESS_CORE_SHIM
|
||||
|
||||
+/*
|
||||
+ * For ALT Linux gcc use at most _FORTIFY_SOURCE level 2
|
||||
+ * https://github.com/ColinIanKing/stress-ng/issues/452
|
||||
+ */
|
||||
+#if defined(HAVE_ALT_LINUX_GCC) && \
|
||||
+ defined(_FORTIFY_SOURCE) && \
|
||||
+ _FORTIFY_SOURCE > 2
|
||||
+#undef _FORTIFY_SOURCE
|
||||
+#define _FORTIFY_SOURCE 2
|
||||
+#endif
|
||||
+
|
||||
#include "stress-ng.h"
|
||||
#include "core-arch.h"
|
||||
#include "core-attribute.h"
|
||||
@@ -2825,7 +2836,6 @@ int shim_mseal(void *addr, size_t len, unsigned long flags)
|
||||
#endif
|
||||
}
|
||||
|
||||
-
|
||||
/*
|
||||
* shim_ppoll()
|
||||
* shim wrapper for ppoll
|
||||
@@ -2836,26 +2846,20 @@ int shim_ppoll(
|
||||
const struct timespec *tmo_p,
|
||||
const sigset_t *sigmask)
|
||||
{
|
||||
-
|
||||
#if defined(HAVE_PPOLL)
|
||||
-
|
||||
-#if defined(_FORTIFY_SOURCE)
|
||||
-#undef STRESS__FORTIFY_SOURCE
|
||||
-#define STRESS__FORTIFY_SOURCE _FORTIFY_SOURCE
|
||||
-#undef _FORTIFY_SOURCE
|
||||
-#define _FORTIFY_SOURCE 2
|
||||
-#endif
|
||||
-
|
||||
return ppoll(fds, nfds, tmo_p, sigmask);
|
||||
+#elif defined(__NR_ppoll) && defined(_NSIG)
|
||||
+ struct timespec tval;
|
||||
|
||||
-#if defined(STRESS__FORTIFY_SOURCE)
|
||||
-#undef _FORTIFY_SOURCE
|
||||
-#define _FORTIFY_SOURCE STRESS__FORTIFY_SOURCE
|
||||
-#undef STRESS__FORTIFY_SOURCE
|
||||
-#endif
|
||||
-
|
||||
-#elif defined(__NR_ppoll)
|
||||
- return (int)syscall(__NR_ppoll, fds, nfds, tmo_p, sigmask);
|
||||
+ /*
|
||||
+ * The kernel will update the timeout, so use a tmp val
|
||||
+ * instead
|
||||
+ */
|
||||
+ if (tmo_p != NULL) {
|
||||
+ tval = *tmo_p;
|
||||
+ tmo_p = &tval;
|
||||
+ }
|
||||
+ return (int)syscall(__NR_ppoll, fds, nfds, tmo_p, sigmask, _NSIG / 8);
|
||||
#else
|
||||
return shim_enosys(0, fds, nfds, tmo_p, sigmask);
|
||||
#endif
|
||||
--
|
||||
2.47.0
|
||||
|
42
core-shim-use-shim-d-types-for-shim_poll-args.patch
Normal file
42
core-shim-use-shim-d-types-for-shim_poll-args.patch
Normal file
@ -0,0 +1,42 @@
|
||||
From 15484dc9c24be214059b5bfecccb6f26bd79833c Mon Sep 17 00:00:00 2001
|
||||
From: Colin Ian King <colin.i.king@gmail.com>
|
||||
Date: Mon, 4 Nov 2024 21:51:19 +0000
|
||||
Subject: [PATCH 5/8] core-shim: use shim'd types for shim_poll args
|
||||
|
||||
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
|
||||
---
|
||||
core-shim.c | 4 ++--
|
||||
core-shim.h | 2 +-
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/core-shim.c b/core-shim.c
|
||||
index 8f51991137e3..a7813474ab86 100644
|
||||
--- a/core-shim.c
|
||||
+++ b/core-shim.c
|
||||
@@ -2831,8 +2831,8 @@ int shim_mseal(void *addr, size_t len, unsigned long flags)
|
||||
* shim wrapper for ppoll
|
||||
*/
|
||||
int shim_ppoll(
|
||||
- struct pollfd *fds,
|
||||
- nfds_t nfds,
|
||||
+ shim_pollfd_t *fds,
|
||||
+ shim_nfds_t nfds,
|
||||
const struct timespec *tmo_p,
|
||||
const sigset_t *sigmask)
|
||||
{
|
||||
diff --git a/core-shim.h b/core-shim.h
|
||||
index 2ec591f00ba4..1ea0910200c1 100644
|
||||
--- a/core-shim.h
|
||||
+++ b/core-shim.h
|
||||
@@ -520,7 +520,7 @@ extern int shim_lstat(const char *pathname, struct stat *statbuf);
|
||||
extern int shim_stat(const char *pathname, struct stat *statbuf);
|
||||
extern unsigned char shim_dirent_type(const char *path, const struct dirent *d);
|
||||
extern int shim_mseal(void *addr, size_t len, unsigned long flags);
|
||||
-extern int shim_ppoll(struct pollfd *fds, nfds_t nfds,
|
||||
+extern int shim_ppoll(shim_pollfd_t *fds, shim_nfds_t nfds,
|
||||
const struct timespec *tmo_p, const sigset_t *sigmask);
|
||||
|
||||
#endif
|
||||
--
|
||||
2.47.0
|
||||
|
83
core-stress-fflush-opened-writable-files.patch
Normal file
83
core-stress-fflush-opened-writable-files.patch
Normal file
@ -0,0 +1,83 @@
|
||||
From 69d710955063add902754f2bd841f9b12e59cc16 Mon Sep 17 00:00:00 2001
|
||||
From: Colin Ian King <colin.i.king@gmail.com>
|
||||
Date: Fri, 1 Nov 2024 12:56:24 +0000
|
||||
Subject: [PATCH] core-*, stress-*: fflush opened writable files
|
||||
|
||||
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
|
||||
---
|
||||
core-klog.c | 2 ++
|
||||
stress-jpeg.c | 1 +
|
||||
stress-ng.c | 1 +
|
||||
stress-opcode.c | 3 +++
|
||||
stress-rename.c | 1 +
|
||||
5 files changed, 8 insertions(+)
|
||||
|
||||
diff --git a/core-klog.c b/core-klog.c
|
||||
index 419e59b6f922..348608c28ac8 100644
|
||||
--- a/core-klog.c
|
||||
+++ b/core-klog.c
|
||||
@@ -223,9 +223,11 @@ log_info:
|
||||
last_logged = stress_time_now();
|
||||
}
|
||||
}
|
||||
+ (void)fflush(klog_fp);
|
||||
(void)fclose(klog_fp);
|
||||
_exit(EXIT_SUCCESS);
|
||||
}
|
||||
+ (void)fflush(klog_fp);
|
||||
(void)fclose(klog_fp);
|
||||
#endif
|
||||
}
|
||||
diff --git a/stress-jpeg.c b/stress-jpeg.c
|
||||
index 4afe5018bd4b..8a8104f37b2b 100644
|
||||
--- a/stress-jpeg.c
|
||||
+++ b/stress-jpeg.c
|
||||
@@ -316,6 +316,7 @@ PRAGMA_UNROLL_N(8)
|
||||
|
||||
(void)jpeg_write_scanlines(&cinfo, row_pointer, (JDIMENSION)y_max);
|
||||
jpeg_finish_compress(&cinfo);
|
||||
+ (void)fflush(fp);
|
||||
(void)fclose(fp);
|
||||
jpeg_destroy_compress(&cinfo);
|
||||
t2 = stress_time_now();
|
||||
diff --git a/stress-ng.c b/stress-ng.c
|
||||
index a1d38e79cfee..17bd2f42c300 100644
|
||||
--- a/stress-ng.c
|
||||
+++ b/stress-ng.c
|
||||
@@ -3770,6 +3770,7 @@ static void stress_yaml_close(FILE *yaml)
|
||||
{
|
||||
if (yaml) {
|
||||
pr_yaml(yaml, "...\n");
|
||||
+ (void)fflush(yaml);
|
||||
(void)fclose(yaml);
|
||||
}
|
||||
}
|
||||
diff --git a/stress-opcode.c b/stress-opcode.c
|
||||
index cec65ec51cde..c7c1a5b2e653 100644
|
||||
--- a/stress-opcode.c
|
||||
+++ b/stress-opcode.c
|
||||
@@ -513,6 +513,9 @@ again:
|
||||
* corruption since the child will
|
||||
* die soon anyhow
|
||||
*/
|
||||
+ (void)fflush(stdout);
|
||||
+ (void)fflush(stderr);
|
||||
+
|
||||
(void)fclose(stdin);
|
||||
(void)fclose(stdout);
|
||||
(void)fclose(stderr);
|
||||
diff --git a/stress-rename.c b/stress-rename.c
|
||||
index 0dee9e75f04a..b0b3d119e5b6 100644
|
||||
--- a/stress-rename.c
|
||||
+++ b/stress-rename.c
|
||||
@@ -267,6 +267,7 @@ restart:
|
||||
#endif
|
||||
return rc;
|
||||
}
|
||||
+ (void)fflush(fp);
|
||||
(void)fclose(fp);
|
||||
|
||||
while (stress_continue(args)) {
|
||||
--
|
||||
2.47.0
|
||||
|
51
core-target-clones-add-more-power9-10-11-target-clon.patch
Normal file
51
core-target-clones-add-more-power9-10-11-target-clon.patch
Normal file
@ -0,0 +1,51 @@
|
||||
From a679a1fa9331e9b07e0c3a87f62cbda2511e9453 Mon Sep 17 00:00:00 2001
|
||||
From: Colin Ian King <colin.i.king@gmail.com>
|
||||
Date: Tue, 5 Nov 2024 16:06:01 +0000
|
||||
Subject: [PATCH 7/8] core-target-clones: add more power9,10,11 target clone
|
||||
build time constraints
|
||||
|
||||
Adding a gcc check for the builtins for power9,10,11 makes the target clone
|
||||
built time constraints more conservative.
|
||||
|
||||
Fixes: https://github.com/ColinIanKing/stress-ng/issues/451
|
||||
|
||||
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
|
||||
---
|
||||
core-target-clones.h | 9 ++++++---
|
||||
1 file changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/core-target-clones.h b/core-target-clones.h
|
||||
index 874d590cdc2b..c2166e51f339 100644
|
||||
--- a/core-target-clones.h
|
||||
+++ b/core-target-clones.h
|
||||
@@ -198,21 +198,24 @@
|
||||
#if defined(STRESS_ARCH_PPC64) && \
|
||||
defined(HAVE_TARGET_CLONES)
|
||||
|
||||
-#if defined(HAVE_TARGET_CLONES_POWER9)
|
||||
+#if defined(HAVE_TARGET_CLONES_POWER9) && \
|
||||
+ defined(HAVE_BUILTIN_CPU_IS_POWER10)
|
||||
#define TARGET_CLONE_POWER9 "cpu=power9",
|
||||
#define TARGET_CLONE_USE
|
||||
#else
|
||||
#define TARGET_CLONE_POWER9
|
||||
#endif
|
||||
|
||||
-#if defined(HAVE_TARGET_CLONES_POWER10)
|
||||
+#if defined(HAVE_TARGET_CLONES_POWER10) && \
|
||||
+ defined(HAVE_BUILTIN_CPU_IS_POWER10)
|
||||
#define TARGET_CLONE_POWER10 "cpu=power10",
|
||||
#define TARGET_CLONE_USE
|
||||
#else
|
||||
#define TARGET_CLONE_POWER10
|
||||
#endif
|
||||
|
||||
-#if defined(HAVE_TARGET_CLONES_POWER11)
|
||||
+#if defined(HAVE_TARGET_CLONES_POWER11) && \
|
||||
+ defined(HAVE_BUILTIN_CPU_IS_POWER11)
|
||||
#define TARGET_CLONE_POWER11 "cpu=power11",
|
||||
#define TARGET_CLONE_USE
|
||||
#else
|
||||
--
|
||||
2.47.0
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (stress-ng-0.17.08.tar.gz) = 3df9bb507687839ad9978099bea33bc6923d324c6e6f66d441911670fcd8080e093fd02741ea8516626ae1ba357f42d2c50b6553cb75f48fd5f008e59d469777
|
||||
SHA512 (stress-ng-0.18.06.tar.xz) = 2b3da9ae31b7b766d7b727552286e3803a5a5099e844705a63d4952897920ed46deb3f657b48bebd97d7ddaaa2ce20a1037915e06f358aa3e041719fd15625b6
|
||||
|
71
stress-brk-ensure-the-failure-sbrk-errno-is-being-ch.patch
Normal file
71
stress-brk-ensure-the-failure-sbrk-errno-is-being-ch.patch
Normal file
@ -0,0 +1,71 @@
|
||||
From 29f7704ec82e90d487e364a587bb30c264d0706f Mon Sep 17 00:00:00 2001
|
||||
From: Colin Ian King <colin.i.king@gmail.com>
|
||||
Date: Wed, 6 Nov 2024 11:51:27 +0000
|
||||
Subject: [PATCH 8/8] stress-brk: ensure the failure sbrk errno is being
|
||||
checked
|
||||
|
||||
The check on errno is using the current value in errno and not the one
|
||||
from a failed sbrk() call. Save the errno and check this rather than
|
||||
the current errno.
|
||||
|
||||
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
|
||||
---
|
||||
stress-brk.c | 10 +++++++---
|
||||
1 file changed, 7 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/stress-brk.c b/stress-brk.c
|
||||
index f71efa364956..ec3d9b417bdb 100644
|
||||
--- a/stress-brk.c
|
||||
+++ b/stress-brk.c
|
||||
@@ -140,6 +140,7 @@ static int OPTIMIZE3 stress_brk_child(stress_args_t *args, void *context)
|
||||
|
||||
do {
|
||||
double t;
|
||||
+ int saved_errno = 0;
|
||||
|
||||
if (stress_brk_abs(ptr, start_ptr) > brk_bytes) {
|
||||
ptr = start_ptr;
|
||||
@@ -174,6 +175,7 @@ static int OPTIMIZE3 stress_brk_child(stress_args_t *args, void *context)
|
||||
tmp = (uintptr_t *)((uintptr_t)ptr - sizeof(uintptr_t));
|
||||
*tmp = (uintptr_t)tmp;
|
||||
} else {
|
||||
+ saved_errno = errno;
|
||||
if (brk_failed_ptr == ptr) {
|
||||
brk_failed_count++;
|
||||
if (brk_failed_count > 32) {
|
||||
@@ -187,6 +189,7 @@ static int OPTIMIZE3 stress_brk_child(stress_args_t *args, void *context)
|
||||
} else if (i < 9) {
|
||||
/* brk to same brk position */
|
||||
if (UNLIKELY(shim_brk(ptr) < 0)) {
|
||||
+ saved_errno = errno;
|
||||
ptr = start_ptr;
|
||||
i = 0;
|
||||
}
|
||||
@@ -194,6 +197,7 @@ static int OPTIMIZE3 stress_brk_child(stress_args_t *args, void *context)
|
||||
/* Shrink brk by 1 page */
|
||||
t = stress_time_now();
|
||||
if (LIKELY(shim_sbrk(-page_size) != (void *)-1)) {
|
||||
+ saved_errno = errno;
|
||||
sbrk_shr_duration += stress_time_now() - t;
|
||||
sbrk_shr_count += 1.0;
|
||||
ptr -= page_size;
|
||||
@@ -225,13 +229,13 @@ static int OPTIMIZE3 stress_brk_child(stress_args_t *args, void *context)
|
||||
}
|
||||
|
||||
if (UNLIKELY(ptr == (void *)-1)) {
|
||||
- if (LIKELY((errno == ENOMEM) || (errno == EAGAIN))) {
|
||||
+ if (LIKELY((saved_errno == ENOMEM) || (saved_errno == EAGAIN))) {
|
||||
VOID_RET(int, shim_brk(start_ptr));
|
||||
i = 0;
|
||||
} else {
|
||||
pr_fail("%s: sbrk(%d) failed: errno=%d (%s)\n",
|
||||
- args->name, (int)page_size, errno,
|
||||
- strerror(errno));
|
||||
+ args->name, (int)page_size, saved_errno,
|
||||
+ strerror(saved_errno));
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
--
|
||||
2.47.0
|
||||
|
34
stress-fp-error-remove-duplicated-sqrt.patch
Normal file
34
stress-fp-error-remove-duplicated-sqrt.patch
Normal file
@ -0,0 +1,34 @@
|
||||
From 7937cf205f653eb056588861e35489c4153c5b1c Mon Sep 17 00:00:00 2001
|
||||
From: Colin Ian King <colin.i.king@gmail.com>
|
||||
Date: Fri, 1 Nov 2024 18:31:57 +0000
|
||||
Subject: [PATCH 2/6] stress-fp-error: remove duplicated sqrt
|
||||
|
||||
The sqrt() is duplictated, remove it. Kudos to Woodrow Shen for spotting
|
||||
this.
|
||||
|
||||
Closes: https://github.com/ColinIanKing/stress-ng/issues/450
|
||||
|
||||
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
|
||||
---
|
||||
stress-fp-error.c | 5 -----
|
||||
1 file changed, 5 deletions(-)
|
||||
|
||||
diff --git a/stress-fp-error.c b/stress-fp-error.c
|
||||
index d5eac54c7b95..fe4d80146652 100644
|
||||
--- a/stress-fp-error.c
|
||||
+++ b/stress-fp-error.c
|
||||
@@ -163,11 +163,6 @@ static int stress_fp_error(stress_args_t *args)
|
||||
stress_fp_check(args, "sqrt(-1.0)", sqrt(-1.0), (double)NAN,
|
||||
true, false, EDOM, FE_INVALID, &rc);
|
||||
#endif
|
||||
-#if defined(EDOM) && defined(FE_INVALID)
|
||||
- stress_fp_clear_error();
|
||||
- stress_fp_check(args, "sqrt(-1.0)", sqrt(-1.0), (double)NAN,
|
||||
- true, false, EDOM, FE_INVALID, &rc);
|
||||
-#endif
|
||||
#if defined(FE_INEXACT)
|
||||
#if !defined(STRESS_ARCH_ALPHA)
|
||||
/*
|
||||
--
|
||||
2.47.0
|
||||
|
@ -1,11 +1,11 @@
|
||||
Name: stress-ng
|
||||
Version: 0.17.08
|
||||
Release: 2%{?dist}
|
||||
Version: 0.18.06
|
||||
Release: 1%{?dist}
|
||||
Summary: Stress test a computer system in various ways
|
||||
|
||||
License: GPLv2+
|
||||
URL: https://github.com/ColinIanKing/%{name}/tarball
|
||||
Source0: https://github.com/ColinIanKing/%{name}/tarball/%{name}-%{version}.tar.gz
|
||||
Source0: https://github.com/ColinIanKing/%{name}/tarball/%{name}-%{version}.tar.xz
|
||||
|
||||
# Work around for ld.gold error
|
||||
%undefine _package_note_flags
|
||||
@ -25,7 +25,14 @@ BuildRequires: zlib-devel
|
||||
BuildRequires: Judy-devel
|
||||
|
||||
# Patches
|
||||
Patch1: core-asm-arm.h-declare-stress_asm_arm_yield-when-HAV.patch
|
||||
Patch1: core-stress-fflush-opened-writable-files.patch
|
||||
Patch2: stress-fp-error-remove-duplicated-sqrt.patch
|
||||
Patch3: README.md-add-another-kernel-commit-to-the-2024-kern.patch
|
||||
Patch4: core-shim-add-shim-to-ppoll-and-workaround-fortifica.patch
|
||||
Patch5: core-shim-use-shim-d-types-for-shim_poll-args.patch
|
||||
Patch6: core-shim-limit-_FORTIFY_SOURCE-to-2-for-ALT-linux-g.patch
|
||||
Patch7: core-target-clones-add-more-power9-10-11-target-clon.patch
|
||||
Patch8: stress-brk-ensure-the-failure-sbrk-errno-is-being-ch.patch
|
||||
|
||||
%description
|
||||
Stress test a computer system in various ways. It was designed to exercise
|
||||
@ -58,6 +65,11 @@ install -pm 644 bash-completion/%{name} \
|
||||
%{_datadir}/bash-completion/completions/%{name}
|
||||
|
||||
%changelog
|
||||
* Wed Nov 06 2024 John Kacur <jkacur@redhat.com> - 0.18.06-1
|
||||
- Update the stress-ng-0.18.06 upstream
|
||||
- Include some upstream patches after 0.18.06
|
||||
Resolves: RHEL-65474
|
||||
|
||||
* Wed May 29 2024 John Kacur <jkacur@redhat.com> - 0.17.08-2
|
||||
- Fix missing corresponding macro to apply patch
|
||||
Resolves: RHEL-33304
|
||||
|
Loading…
Reference in New Issue
Block a user