diff mbox series

[RFC,v1,2/2] package/sysbench: new package

Message ID 20230525215103.37218-3-svromanov@sberdevices.ru
State Changes Requested
Headers show
Series Added package: 'sysbench' and its dependency: 'ck'. | expand

Commit Message

Sergey Romanov May 25, 2023, 9:51 p.m. UTC
This benchmark was designed for identifying basic
system parameters, as they are important for system
using MySQL (w Innodb) under intensive load.
Handling of IO in case of many parallel requests,
checked as well as memory allocation/transfer
speed and scheduler performance.
CPU is benchmarked by using 64bit integer manipulation
using Euklid algorithms for prime number computation.
Benchmarks are designed to show benefit of multiple
CPUs as well as of multiple hard drives,
battery backed up write cache.

https://github.com/akopytov/sysbench.git

Signed-off-by: Sergey Romanov <svromanov@sberdevices.ru>
---
 DEVELOPERS                     |  1 +
 package/Config.in              |  1 +
 package/sysbench/Config.in     | 28 ++++++++++++++++++++++++++++
 package/sysbench/sysbench.hash |  3 +++
 package/sysbench/sysbench.mk   | 30 ++++++++++++++++++++++++++++++
 5 files changed, 63 insertions(+)
 create mode 100644 package/sysbench/Config.in
 create mode 100644 package/sysbench/sysbench.hash
 create mode 100644 package/sysbench/sysbench.mk

Comments

Thomas Petazzoni Aug. 25, 2023, 9:37 p.m. UTC | #1
Hello Sergey,

On Fri, 26 May 2023 00:51:03 +0300
Sergey Romanov via buildroot <buildroot@buildroot.org> wrote:

> diff --git a/package/sysbench/Config.in b/package/sysbench/Config.in
> new file mode 100644
> index 0000000000..a8377b5bfd
> --- /dev/null
> +++ b/package/sysbench/Config.in
> @@ -0,0 +1,28 @@
> +config BR2_PACKAGE_SYSBENCH
> +	bool "sysbench"
> +	select BR2_PACKAGE_LUAJIT
> +	select BR2_PACKAGE_CK

You need to replicate the dependencies of those options, so:

	depends on !BR2_STATIC_LIBS # luajit
	depends on !BR2_PACKAGE_LUA # luajit
	depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS # luajit
	depends on !BR2_TOOLCHAIN_USES_UCLIBC # ck

> +	help
> +	  This benchmark was designed for identifying basic
> +	  system parameters, as they are important for system
> +	  using MySQL (w Innodb) under intensive load.
> +	  Handling of IO in case of many parallel requests,
> +	  checked as well as memory allocation/transfer
> +	  speed and scheduler performance.
> +	  CPU is benchmarked by using 64bit integer manipulation
> +	  using Euklid algorithms for prime number computation.
> +	  Benchmarks are designed to show benefit of multiple
> +	  CPUs as well as of multiple hard drives,
> +	  battery backed up write cache.

The wrapping of those lines look really weird. Can you ask your text
editor to wrap this automatically, and get some more consistent
wrapping?

> +
> +	  https://github.com/akopytov/sysbench.git
> +
> +if BR2_PACKAGE_SYSBENCH
> +
> +config BR2_PACKAGE_SYSBENCH_WITH_MYSQL
> +	bool "configure with mysql"
> +	select BR2_PACKAGE_MYSQL
> +	help
> +	  Configure with mysql

You can drop this option and test BR2_PACKAGE_MYSQL in the .mk file.

> diff --git a/package/sysbench/sysbench.mk b/package/sysbench/sysbench.mk
> new file mode 100644
> index 0000000000..748014f564
> --- /dev/null
> +++ b/package/sysbench/sysbench.mk
> @@ -0,0 +1,30 @@
> +################################################################################
> +#
> +# SYSBENCH
> +#
> +################################################################################
> +
> +SYSBENCH_VERSION = 1.0.20
> +SYSBENCH_SITE = $(call github,akopytov,sysbench,$(SYSBENCH_VERSION))
> +SYSBENCH_LICENSE = GPLv2

GPL-2.0, not GPLv2. But from a quick look at the code, it seems like
the license is actually GPL-2.0+.

> +SYSBENCH_LICENSE_FILES = COPYING
> +
> +SYSBENCH_AUTORECONF = YES

> +
> +SYSBENCH_DEPENDENCIES = host-pkgconf
> +SYSBENCH_DEPENDENCIES += ck
> +SYSBENCH_DEPENDENCIES += luajit

Please change to:

SYSBENCH_DEPENDENCIES = host-pkgconf ck luajit

> +SYSBENCH_CONF_OPTS += --without-lib-prefix
> +SYSBENCH_CONF_OPTS += --with-system-luajit
> +SYSBENCH_CONF_OPTS += --with-system-ck

Please change to:

SYSBENCH_CONF_OPTS = \
	--without-lib-prefix \
	--with-system-luajit \
	--with-system-ck

> +
> +ifneq ($(BR2_PACKAGE_SYSBENCH_WITH_MYSQL), y)
> +SYSBENCH_CONF_OPTS += --without-mysql
> +else
> +SYSBENCH_DEPENDENCIES += mysql
> +SYSBENCH_CONF_OPTS += --with-mysql-includes=$(STAGING_DIR)/usr/include/mysql
> +SYSBENCH_CONF_OPTS += --with-mysql-libs=$(STAGING_DIR)/usr/lib
> +endif

Please change to:

ifeq ($(BR2_PACKAGE_MYSQL),y)
SYSBENCH_DEPENDENCIES += mysql
SYSBENCH_CONF_OPTS += \
	--with-mysql \
	--with-mysql-includes=$(STAGING_DIR)/usr/include/mysql \
	--with-mysql-libs=$(STAGING_DIR)/usr/lib
else
SYSBENCH_CONF_OPTS += --without-mysql
endif

Could you rework this and send a v2?

Thanks a lot!

Thomas
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index 4accefb251..d48cbbd145 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2628,6 +2628,7 @@  F:	package/xr819-xradio/
 
 N:	Sergey Romanov <svromanov@sberdevices.ru>
 F:	package/ck/
+F:	package/sysbench/
 
 N:	Sergio Prado <sergio.prado@e-labworks.com>
 F:	board/toradex/apalis-imx6/
diff --git a/package/Config.in b/package/Config.in
index c81ddc81f6..0004f71846 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -152,6 +152,7 @@  menu "Debugging, profiling and benchmark"
 	source "package/strace/Config.in"
 	source "package/stress/Config.in"
 	source "package/stress-ng/Config.in"
+	source "package/sysbench/Config.in"
 	source "package/sysdig/Config.in"
 	source "package/sysprof/Config.in"
 	source "package/tcf-agent/Config.in"
diff --git a/package/sysbench/Config.in b/package/sysbench/Config.in
new file mode 100644
index 0000000000..a8377b5bfd
--- /dev/null
+++ b/package/sysbench/Config.in
@@ -0,0 +1,28 @@ 
+config BR2_PACKAGE_SYSBENCH
+	bool "sysbench"
+	select BR2_PACKAGE_LUAJIT
+	select BR2_PACKAGE_CK
+	help
+	  This benchmark was designed for identifying basic
+	  system parameters, as they are important for system
+	  using MySQL (w Innodb) under intensive load.
+	  Handling of IO in case of many parallel requests,
+	  checked as well as memory allocation/transfer
+	  speed and scheduler performance.
+	  CPU is benchmarked by using 64bit integer manipulation
+	  using Euklid algorithms for prime number computation.
+	  Benchmarks are designed to show benefit of multiple
+	  CPUs as well as of multiple hard drives,
+	  battery backed up write cache.
+
+	  https://github.com/akopytov/sysbench.git
+
+if BR2_PACKAGE_SYSBENCH
+
+config BR2_PACKAGE_SYSBENCH_WITH_MYSQL
+	bool "configure with mysql"
+	select BR2_PACKAGE_MYSQL
+	help
+	  Configure with mysql
+
+endif
diff --git a/package/sysbench/sysbench.hash b/package/sysbench/sysbench.hash
new file mode 100644
index 0000000000..a31fdb1178
--- /dev/null
+++ b/package/sysbench/sysbench.hash
@@ -0,0 +1,3 @@ 
+# Locally calculated
+sha256  e8ee79b1f399b2d167e6a90de52ccc90e52408f7ade1b9b7135727efe181347f  sysbench-1.0.20.tar.gz
+sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  COPYING
diff --git a/package/sysbench/sysbench.mk b/package/sysbench/sysbench.mk
new file mode 100644
index 0000000000..748014f564
--- /dev/null
+++ b/package/sysbench/sysbench.mk
@@ -0,0 +1,30 @@ 
+################################################################################
+#
+# SYSBENCH
+#
+################################################################################
+
+SYSBENCH_VERSION = 1.0.20
+SYSBENCH_SITE = $(call github,akopytov,sysbench,$(SYSBENCH_VERSION))
+SYSBENCH_LICENSE = GPLv2
+SYSBENCH_LICENSE_FILES = COPYING
+
+SYSBENCH_AUTORECONF = YES
+
+SYSBENCH_DEPENDENCIES = host-pkgconf
+SYSBENCH_DEPENDENCIES += ck
+SYSBENCH_DEPENDENCIES += luajit
+
+SYSBENCH_CONF_OPTS += --without-lib-prefix
+SYSBENCH_CONF_OPTS += --with-system-luajit
+SYSBENCH_CONF_OPTS += --with-system-ck
+
+ifneq ($(BR2_PACKAGE_SYSBENCH_WITH_MYSQL), y)
+SYSBENCH_CONF_OPTS += --without-mysql
+else
+SYSBENCH_DEPENDENCIES += mysql
+SYSBENCH_CONF_OPTS += --with-mysql-includes=$(STAGING_DIR)/usr/include/mysql
+SYSBENCH_CONF_OPTS += --with-mysql-libs=$(STAGING_DIR)/usr/lib
+endif
+
+$(eval $(autotools-package))