stress-cpu: disable float128 math on powerpc64 to avoid SIGILL

float128 requires instructions of xsmaddqp and xsmsubqp which are added to
qemu since v7.0 by the following commit.
3bb1aed246

While kirkstone is still at v6.2 and thus experiences SIGILL as follow
root@qemuppc64:~# stress-ng --cpu 2 --timeout 30s
stress-ng: info: [972] setting to a 30 second run per stressor
stress-ng: info: [972] dispatching hogs: 2 cpu
stress-ng: info: [973] stressor terminated with unexpected signal signal 4 'SIGILL'
<snip>

This is specific to kirkstone since qemu on master branch has upgraded to v7.1.

(From OE-Core rev: a3d6742ac066c6dd323c5efd95bed36c30f69127)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
He Zhe
2022-09-28 17:39:46 +08:00
committed by Richard Purdie
parent a0b0b25a82
commit e0e7f36ce5
2 changed files with 46 additions and 1 deletions

View File

@@ -0,0 +1,43 @@
From ea9ee4dd64ee88e03a959b2c694aa8feb53c7e78 Mon Sep 17 00:00:00 2001
From: He Zhe <zhe.he@windriver.com>
Date: Wed, 28 Sep 2022 16:47:24 +0800
Subject: [PATCH] stress-cpu: disable float128 math on powerpc64 to avoid
SIGILL
float128 requires instructions of xsmaddqp and xsmsubqp which are added to
qemu since v7.0 by the following commit.
https://github.com/qemu/qemu/commit/3bb1aed246d7b59ceee625a82628f7369d492a8f
While kirkstone is still at v6.2 and thus experiences SIGILL as follow
root@qemuppc64:~# stress-ng --cpu 2 --timeout 30s
stress-ng: info: [972] setting to a 30 second run per stressor
stress-ng: info: [972] dispatching hogs: 2 cpu
stress-ng: info: [973] stressor terminated with unexpected signal signal 4 'SIGILL'
<snip>
Upstream-Status: Inappropriate [This is specific to kirkstone since qemu on
master branch has upgraded to v7.1.]
Signed-off-by: He Zhe <zhe.he@windriver.com>
---
stress-cpu.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/stress-cpu.c b/stress-cpu.c
index 0a08f1d1..2849e715 100644
--- a/stress-cpu.c
+++ b/stress-cpu.c
@@ -41,6 +41,10 @@
#undef HAVE_FLOAT_DECIMAL128
#endif
+#if defined(STRESS_ARCH_PPC64)
+#undef HAVE_FLOAT128
+#endif
+
#define GAMMA (0.57721566490153286060651209008240243104215933593992L)
#define OMEGA (0.56714329040978387299996866221035554975381578718651L)
#define PSI (3.35988566624317755317201130291892717968890513373197L)
--
2.25.1

View File

@@ -5,7 +5,9 @@ HOMEPAGE = "https://github.com/ColinIanKing/stress-ng#readme"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://github.com/ColinIanKing/stress-ng.git;protocol=https;branch=master"
SRC_URI = "git://github.com/ColinIanKing/stress-ng.git;protocol=https;branch=master \
file://0001-stress-cpu-disable-float128-math-on-powerpc64-to-avo.patch \
"
SRCREV = "f59bcb2fe1e25042e77d5e4942f72bfa026fa305"
S = "${WORKDIR}/git"