diff mbox series

[oe,PATCHv3] meta-oe/recipes-test: Add stress-ng recipe

Message ID 20171017164439.19667-1-limon.anibal@gmail.com
State Superseded
Headers show
Series [oe,PATCHv3] meta-oe/recipes-test: Add stress-ng recipe | expand

Commit Message

Aníbal Limón Oct. 17, 2017, 4:44 p.m. UTC
From: Aníbal Limón <anibal.limon@linaro.org>

A tool to generate load and stress a system, currently this recipe
is on a couple of layers [1] and is not updated, a good reason to
have in meta-oe.

[1] https://layers.openembedded.org/layerindex/branch/master/recipes/?q=stress-ng

Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
---
 .../0001-Several-changes-to-fix-musl-build.patch   | 170 +++++++++++++++++++++
 .../recipes-test/stress-ng/stress-ng_0.08.17.bb    |  20 +++
 2 files changed, 190 insertions(+)
 create mode 100644 meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch
 create mode 100644 meta-oe/recipes-test/stress-ng/stress-ng_0.08.17.bb

Comments

Denys Dmytriyenko Oct. 17, 2017, 6:12 p.m. UTC | #1
Not very critical, but you lost my SoB in v2 of the recipe. Not the musl 
patch, which is completely yours though.


On Tue, Oct 17, 2017 at 11:44:39AM -0500, Aníbal Limón wrote:
> From: Aníbal Limón <anibal.limon@linaro.org>

> 

> A tool to generate load and stress a system, currently this recipe

> is on a couple of layers [1] and is not updated, a good reason to

> have in meta-oe.

> 

> [1] https://layers.openembedded.org/layerindex/branch/master/recipes/?q=stress-ng

> 

> Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>

> ---

>  .../0001-Several-changes-to-fix-musl-build.patch   | 170 +++++++++++++++++++++

>  .../recipes-test/stress-ng/stress-ng_0.08.17.bb    |  20 +++

>  2 files changed, 190 insertions(+)

>  create mode 100644 meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch

>  create mode 100644 meta-oe/recipes-test/stress-ng/stress-ng_0.08.17.bb

> 

> diff --git a/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch b/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch

> new file mode 100644

> index 000000000..3ed7efc7e

> --- /dev/null

> +++ b/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch

> @@ -0,0 +1,170 @@

> +From d50203b233cb8820bf83b6651c2a8487e0db1fcf Mon Sep 17 00:00:00 2001

> +From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linaro.org>

> +Date: Tue, 17 Oct 2017 10:13:20 -0500

> +Subject: [PATCH] Several changes to fix musl build

> +MIME-Version: 1.0

> +Content-Type: text/plain; charset=UTF-8

> +Content-Transfer-Encoding: 8bit

> +

> +stress-{context, stackmmap}.c: Set tests to non-implemented because uses

> +swapcontext, musl provide the definition but not the implementation due

> +  to that functions are pre-POSIX and set to be deprecated.

> +  stress-{resources, pty}.c: Doesn't include termio.h and remove stress

> +  operations that uses struct termio, musl doesn't provide that struct.

> +stress-pthread.c: Change pthread_yield to sched_yield to be more compatible.

> +stress-malloc.c: Check for definition of M_MMAP_THRESHOLD musl doesn't

> +  ptovide that constant.

> +stress-madvise.c: Add static poision_count integer, definition of

> +  MADV_SOFT_OFFLINE doesn't grauntee MADV_HWPOISON to be defined.

> +cache.c: Define GLOB_ONLYDIR not available on MUSL.

> +

> +Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>

> +Upstream-status: Pending

> +---

> + cache.c            |  4 ++++

> + stress-context.c   |  2 +-

> + stress-madvise.c   |  1 +

> + stress-malloc.c    |  2 +-

> + stress-pthread.c   |  2 +-

> + stress-pty.c       | 18 ------------------

> + stress-resources.c |  1 -

> + stress-stackmmap.c |  2 +-

> + 8 files changed, 9 insertions(+), 23 deletions(-)

> +

> +diff --git a/cache.c b/cache.c

> +index e01fad0..27870ee 100644

> +--- a/cache.c

> ++++ b/cache.c

> +@@ -27,6 +27,10 @@ typedef struct {

> + 

> + #include <glob.h>

> + 

> ++#ifndef GLOB_ONLYDIR

> ++#define GLOB_ONLYDIR    0x100

> ++#endif

> ++

> + #if defined(__linux__)

> + #define SYS_CPU_PREFIX               "/sys/devices/system/cpu"

> + #define GLOB_PATTERN SYS_CPU_PREFIX  "/cpu[0-9]*"

> +diff --git a/stress-context.c b/stress-context.c

> +index c5f50ed..67209e5 100644

> +--- a/stress-context.c

> ++++ b/stress-context.c

> +@@ -24,7 +24,7 @@

> +  */

> + #include "stress-ng.h"

> + 

> +-#if !defined(__OpenBSD__)

> ++#if !defined(__OpenBSD__) && False

> + 

> + #include <ucontext.h>

> + 

> +diff --git a/stress-madvise.c b/stress-madvise.c

> +index 43ea454..2e1f8ee 100644

> +--- a/stress-madvise.c

> ++++ b/stress-madvise.c

> +@@ -141,6 +141,7 @@ static int stress_random_advise(const args_t *args)

> + #if defined(MADV_SOFT_OFFLINE)

> + 	if (advise == MADV_SOFT_OFFLINE) {

> + 		static int soft_offline_count;

> ++		static int poison_count;

> + 

> + 		/* ..and minimize number of soft offline pages */

> + 		if ((soft_offline_count >= NUM_SOFT_OFFLINE_MAX) ||

> +diff --git a/stress-malloc.c b/stress-malloc.c

> +index 8dbe5cc..f505f32 100644

> +--- a/stress-malloc.c

> ++++ b/stress-malloc.c

> +@@ -99,7 +99,7 @@ int stress_malloc(const args_t *args)

> + 			malloc_max = MIN_MALLOC_MAX;

> + 	}

> + 

> +-#if defined(__GNUC__) && defined(__linux__)

> ++#if defined(__GNUC__) && defined(__linux__) && defined(M_MMAP_THRESHOLD)

> + 	if (get_setting("malloc-threshold", &malloc_threshold))

> + 		(void)mallopt(M_MMAP_THRESHOLD, (int)malloc_threshold);

> + #endif

> +diff --git a/stress-pthread.c b/stress-pthread.c

> +index 323a1d4..8269f4c 100644

> +--- a/stress-pthread.c

> ++++ b/stress-pthread.c

> +@@ -139,7 +139,7 @@ static void *stress_pthread_func(void *parg)

> + 			break;

> + 		}

> + #if !defined(__NetBSD__) && !defined(__sun__)

> +-		(void)pthread_yield();

> ++		(void)sched_yield();

> + #endif

> + 	}

> + 	ret = pthread_mutex_unlock(&mutex);

> +diff --git a/stress-pty.c b/stress-pty.c

> +index 8c3edf8..518f118 100644

> +--- a/stress-pty.c

> ++++ b/stress-pty.c

> +@@ -26,7 +26,6 @@

> + 

> + #if defined(__linux__)

> + 

> +-#include <termio.h>

> + #include <termios.h>

> + 

> + typedef struct {

> +@@ -108,7 +107,6 @@ int stress_pty(const args_t *args)

> + 		 */

> + 		for (i = 0; i < n; i++) {

> + 			struct termios ios;

> +-			struct termio io;

> + 			struct winsize ws;

> + 			int arg;

> + 

> +@@ -130,22 +128,6 @@ int stress_pty(const args_t *args)

> + 			if (ioctl(ptys[i].slave, TCSETSF, &ios) < 0)

> + 				pr_fail_err("ioctl TCSETSF on slave pty");

> + #endif

> +-#if defined(TCGETA)

> +-			if (ioctl(ptys[i].slave, TCGETA, &io) < 0)

> +-				pr_fail_err("ioctl TCGETA on slave pty");

> +-#endif

> +-#if defined(TCSETA)

> +-			if (ioctl(ptys[i].slave, TCSETA, &io) < 0)

> +-				pr_fail_err("ioctl TCSETA on slave pty");

> +-#endif

> +-#if defined(TCSETAW)

> +-			if (ioctl(ptys[i].slave, TCSETAW, &io) < 0)

> +-				pr_fail_err("ioctl TCSETAW on slave pty");

> +-#endif

> +-#if defined(TCSETAF)

> +-			if (ioctl(ptys[i].slave, TCSETAF, &io) < 0)

> +-				pr_fail_err("ioctl TCSETAF on slave pty");

> +-#endif

> + #if defined(TIOCGLCKTRMIOS)

> + 			if (ioctl(ptys[i].slave, TIOCGLCKTRMIOS, &ios) < 0)

> + 				pr_fail_err("ioctl TIOCGLCKTRMIOS on slave pty");

> +diff --git a/stress-resources.c b/stress-resources.c

> +index 182e176..880433d 100644

> +--- a/stress-resources.c

> ++++ b/stress-resources.c

> +@@ -31,7 +31,6 @@

> + #include <sys/inotify.h>

> + #endif

> + #if defined(__linux__)

> +-#include <termio.h>

> + #include <termios.h>

> + #endif

> + #if defined(HAVE_LIB_PTHREAD) && defined(__linux__)

> +diff --git a/stress-stackmmap.c b/stress-stackmmap.c

> +index e1378e2..00d1268 100644

> +--- a/stress-stackmmap.c

> ++++ b/stress-stackmmap.c

> +@@ -24,7 +24,7 @@

> +  */

> + #include "stress-ng.h"

> + 

> +-#if defined(__linux__)

> ++#if defined(__linux__) && False

> + 

> + #include <ucontext.h>

> + 

> +-- 

> +2.11.0

> +

> diff --git a/meta-oe/recipes-test/stress-ng/stress-ng_0.08.17.bb b/meta-oe/recipes-test/stress-ng/stress-ng_0.08.17.bb

> new file mode 100644

> index 000000000..dc5b2e8eb

> --- /dev/null

> +++ b/meta-oe/recipes-test/stress-ng/stress-ng_0.08.17.bb

> @@ -0,0 +1,20 @@

> +SUMMARY = "A tool to load and stress a computer system"

> +HOMEPAGE = "http://kernel.ubuntu.com/~cking/stress-ng/"

> +LICENSE = "GPLv2"

> +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"

> +

> +DEPENDS = "zlib libaio"

> +

> +SRC_URI = "http://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.gz \

> +          "

> +SRC_URI_append_libc-musl = "file://0001-Several-changes-to-fix-musl-build.patch"

> +

> +SRC_URI[md5sum] = "e0f6497a8c06f5d652bc2ad88d449c12"

> +SRC_URI[sha256sum] = "37cc73e42f5bdb0e0571ba88f6a69b8f05ee28e51afcafc2231c1058b1a5dd18"

> +

> +CFLAGS += "-Wall -Wextra -DVERSION='"$(VERSION)"'"

> +

> +do_install_append() {

> +    install -d ${D}${bindir}

> +    install -m 755 ${S}/stress-ng ${D}${bindir}/stress-ng

> +}

> -- 

> 2.11.0

> 

-- 
_______________________________________________
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel
diff mbox series

Patch

diff --git a/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch b/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch
new file mode 100644
index 000000000..3ed7efc7e
--- /dev/null
+++ b/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch
@@ -0,0 +1,170 @@ 
+From d50203b233cb8820bf83b6651c2a8487e0db1fcf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linaro.org>
+Date: Tue, 17 Oct 2017 10:13:20 -0500
+Subject: [PATCH] Several changes to fix musl build
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+stress-{context, stackmmap}.c: Set tests to non-implemented because uses
+swapcontext, musl provide the definition but not the implementation due
+  to that functions are pre-POSIX and set to be deprecated.
+  stress-{resources, pty}.c: Doesn't include termio.h and remove stress
+  operations that uses struct termio, musl doesn't provide that struct.
+stress-pthread.c: Change pthread_yield to sched_yield to be more compatible.
+stress-malloc.c: Check for definition of M_MMAP_THRESHOLD musl doesn't
+  ptovide that constant.
+stress-madvise.c: Add static poision_count integer, definition of
+  MADV_SOFT_OFFLINE doesn't grauntee MADV_HWPOISON to be defined.
+cache.c: Define GLOB_ONLYDIR not available on MUSL.
+
+Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
+Upstream-status: Pending
+---
+ cache.c            |  4 ++++
+ stress-context.c   |  2 +-
+ stress-madvise.c   |  1 +
+ stress-malloc.c    |  2 +-
+ stress-pthread.c   |  2 +-
+ stress-pty.c       | 18 ------------------
+ stress-resources.c |  1 -
+ stress-stackmmap.c |  2 +-
+ 8 files changed, 9 insertions(+), 23 deletions(-)
+
+diff --git a/cache.c b/cache.c
+index e01fad0..27870ee 100644
+--- a/cache.c
++++ b/cache.c
+@@ -27,6 +27,10 @@ typedef struct {
+ 
+ #include <glob.h>
+ 
++#ifndef GLOB_ONLYDIR
++#define GLOB_ONLYDIR    0x100
++#endif
++
+ #if defined(__linux__)
+ #define SYS_CPU_PREFIX               "/sys/devices/system/cpu"
+ #define GLOB_PATTERN SYS_CPU_PREFIX  "/cpu[0-9]*"
+diff --git a/stress-context.c b/stress-context.c
+index c5f50ed..67209e5 100644
+--- a/stress-context.c
++++ b/stress-context.c
+@@ -24,7 +24,7 @@
+  */
+ #include "stress-ng.h"
+ 
+-#if !defined(__OpenBSD__)
++#if !defined(__OpenBSD__) && False
+ 
+ #include <ucontext.h>
+ 
+diff --git a/stress-madvise.c b/stress-madvise.c
+index 43ea454..2e1f8ee 100644
+--- a/stress-madvise.c
++++ b/stress-madvise.c
+@@ -141,6 +141,7 @@ static int stress_random_advise(const args_t *args)
+ #if defined(MADV_SOFT_OFFLINE)
+ 	if (advise == MADV_SOFT_OFFLINE) {
+ 		static int soft_offline_count;
++		static int poison_count;
+ 
+ 		/* ..and minimize number of soft offline pages */
+ 		if ((soft_offline_count >= NUM_SOFT_OFFLINE_MAX) ||
+diff --git a/stress-malloc.c b/stress-malloc.c
+index 8dbe5cc..f505f32 100644
+--- a/stress-malloc.c
++++ b/stress-malloc.c
+@@ -99,7 +99,7 @@ int stress_malloc(const args_t *args)
+ 			malloc_max = MIN_MALLOC_MAX;
+ 	}
+ 
+-#if defined(__GNUC__) && defined(__linux__)
++#if defined(__GNUC__) && defined(__linux__) && defined(M_MMAP_THRESHOLD)
+ 	if (get_setting("malloc-threshold", &malloc_threshold))
+ 		(void)mallopt(M_MMAP_THRESHOLD, (int)malloc_threshold);
+ #endif
+diff --git a/stress-pthread.c b/stress-pthread.c
+index 323a1d4..8269f4c 100644
+--- a/stress-pthread.c
++++ b/stress-pthread.c
+@@ -139,7 +139,7 @@ static void *stress_pthread_func(void *parg)
+ 			break;
+ 		}
+ #if !defined(__NetBSD__) && !defined(__sun__)
+-		(void)pthread_yield();
++		(void)sched_yield();
+ #endif
+ 	}
+ 	ret = pthread_mutex_unlock(&mutex);
+diff --git a/stress-pty.c b/stress-pty.c
+index 8c3edf8..518f118 100644
+--- a/stress-pty.c
++++ b/stress-pty.c
+@@ -26,7 +26,6 @@
+ 
+ #if defined(__linux__)
+ 
+-#include <termio.h>
+ #include <termios.h>
+ 
+ typedef struct {
+@@ -108,7 +107,6 @@ int stress_pty(const args_t *args)
+ 		 */
+ 		for (i = 0; i < n; i++) {
+ 			struct termios ios;
+-			struct termio io;
+ 			struct winsize ws;
+ 			int arg;
+ 
+@@ -130,22 +128,6 @@ int stress_pty(const args_t *args)
+ 			if (ioctl(ptys[i].slave, TCSETSF, &ios) < 0)
+ 				pr_fail_err("ioctl TCSETSF on slave pty");
+ #endif
+-#if defined(TCGETA)
+-			if (ioctl(ptys[i].slave, TCGETA, &io) < 0)
+-				pr_fail_err("ioctl TCGETA on slave pty");
+-#endif
+-#if defined(TCSETA)
+-			if (ioctl(ptys[i].slave, TCSETA, &io) < 0)
+-				pr_fail_err("ioctl TCSETA on slave pty");
+-#endif
+-#if defined(TCSETAW)
+-			if (ioctl(ptys[i].slave, TCSETAW, &io) < 0)
+-				pr_fail_err("ioctl TCSETAW on slave pty");
+-#endif
+-#if defined(TCSETAF)
+-			if (ioctl(ptys[i].slave, TCSETAF, &io) < 0)
+-				pr_fail_err("ioctl TCSETAF on slave pty");
+-#endif
+ #if defined(TIOCGLCKTRMIOS)
+ 			if (ioctl(ptys[i].slave, TIOCGLCKTRMIOS, &ios) < 0)
+ 				pr_fail_err("ioctl TIOCGLCKTRMIOS on slave pty");
+diff --git a/stress-resources.c b/stress-resources.c
+index 182e176..880433d 100644
+--- a/stress-resources.c
++++ b/stress-resources.c
+@@ -31,7 +31,6 @@
+ #include <sys/inotify.h>
+ #endif
+ #if defined(__linux__)
+-#include <termio.h>
+ #include <termios.h>
+ #endif
+ #if defined(HAVE_LIB_PTHREAD) && defined(__linux__)
+diff --git a/stress-stackmmap.c b/stress-stackmmap.c
+index e1378e2..00d1268 100644
+--- a/stress-stackmmap.c
++++ b/stress-stackmmap.c
+@@ -24,7 +24,7 @@
+  */
+ #include "stress-ng.h"
+ 
+-#if defined(__linux__)
++#if defined(__linux__) && False
+ 
+ #include <ucontext.h>
+ 
+-- 
+2.11.0
+
diff --git a/meta-oe/recipes-test/stress-ng/stress-ng_0.08.17.bb b/meta-oe/recipes-test/stress-ng/stress-ng_0.08.17.bb
new file mode 100644
index 000000000..dc5b2e8eb
--- /dev/null
+++ b/meta-oe/recipes-test/stress-ng/stress-ng_0.08.17.bb
@@ -0,0 +1,20 @@ 
+SUMMARY = "A tool to load and stress a computer system"
+HOMEPAGE = "http://kernel.ubuntu.com/~cking/stress-ng/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "zlib libaio"
+
+SRC_URI = "http://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.gz \
+          "
+SRC_URI_append_libc-musl = "file://0001-Several-changes-to-fix-musl-build.patch"
+
+SRC_URI[md5sum] = "e0f6497a8c06f5d652bc2ad88d449c12"
+SRC_URI[sha256sum] = "37cc73e42f5bdb0e0571ba88f6a69b8f05ee28e51afcafc2231c1058b1a5dd18"
+
+CFLAGS += "-Wall -Wextra -DVERSION='"$(VERSION)"'"
+
+do_install_append() {
+    install -d ${D}${bindir}
+    install -m 755 ${S}/stress-ng ${D}${bindir}/stress-ng
+}