Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [RFC PATCH v1 2/2] package/sysbench: new package
  2023-05-25 13:23 [Buildroot] [RFC PATCH v1 0/2] Added package: 'sysbench' and its dependency: 'ck' Sergey Romanov
@ 2023-05-25 13:23 ` Sergey Romanov
  0 siblings, 0 replies; 9+ messages in thread
From: Sergey Romanov @ 2023-05-25 13:23 UTC (permalink / raw)
  To: buildroot
  Cc: svromanov, chip-club, akopytov, sbahra, sdfw_system_team, kernel

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

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))
-- 
2.25.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Buildroot] [RFC PATCH v1 0/2] Added package: 'sysbench' and its dependency: 'ck'.
@ 2023-05-25 21:51 Sergey Romanov via buildroot
  2023-05-25 21:51 ` [Buildroot] [RFC PATCH v1 1/2] package/ck: new package Sergey Romanov via buildroot
  2023-05-25 21:51 ` [Buildroot] [RFC PATCH v1 " Sergey Romanov via buildroot
  0 siblings, 2 replies; 9+ messages in thread
From: Sergey Romanov via buildroot @ 2023-05-25 21:51 UTC (permalink / raw)
  To: buildroot
  Cc: svromanov, chip-club, akopytov, sbahra, thomas.petazzoni,
	sdfw_system_team, kernel


Sergey Romanov (2):
  package/ck: new package
  package/sysbench: new package

 .checkpackageignore                           |   1 +
 DEVELOPERS                                    |   4 +
 package/Config.in                             |   2 +
 ...oid-buildroot-s-influence-on-LDFLAGS.patch | 191 ++++++++++++++++++
 package/ck/Config.in                          |  23 +++
 package/ck/ck.hash                            |   3 +
 package/ck/ck.mk                              |  42 ++++
 package/sysbench/Config.in                    |  28 +++
 package/sysbench/sysbench.hash                |   3 +
 package/sysbench/sysbench.mk                  |  30 +++
 10 files changed, 327 insertions(+)
 create mode 100644 package/ck/0001-Avoid-buildroot-s-influence-on-LDFLAGS.patch
 create mode 100644 package/ck/Config.in
 create mode 100644 package/ck/ck.hash
 create mode 100644 package/ck/ck.mk
 create mode 100644 package/sysbench/Config.in
 create mode 100644 package/sysbench/sysbench.hash
 create mode 100644 package/sysbench/sysbench.mk

-- 
2.25.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [RFC PATCH v1 1/2] package/ck: new package
  2023-05-25 21:51 [Buildroot] [RFC PATCH v1 0/2] Added package: 'sysbench' and its dependency: 'ck' Sergey Romanov via buildroot
@ 2023-05-25 21:51 ` Sergey Romanov via buildroot
  2023-08-25 21:33   ` Thomas Petazzoni via buildroot
  2023-05-25 21:51 ` [Buildroot] [RFC PATCH v1 " Sergey Romanov via buildroot
  1 sibling, 1 reply; 9+ messages in thread
From: Sergey Romanov via buildroot @ 2023-05-25 21:51 UTC (permalink / raw)
  To: buildroot
  Cc: svromanov, chip-club, akopytov, sbahra, thomas.petazzoni,
	sdfw_system_team, kernel

Concurrency primitives, safe memory reclamation
mechanisms and non-blocking data structures
for the research, design and implementation
of high performance concurrent systems.

https://github.com/concurrencykit/ck.git

Signed-off-by: Sergey Romanov <svromanov@sberdevices.ru>
---
 .checkpackageignore                           |   1 +
 DEVELOPERS                                    |   3 +
 package/Config.in                             |   1 +
 ...oid-buildroot-s-influence-on-LDFLAGS.patch | 191 ++++++++++++++++++
 package/ck/Config.in                          |  23 +++
 package/ck/ck.hash                            |   3 +
 package/ck/ck.mk                              |  42 ++++
 7 files changed, 264 insertions(+)
 create mode 100644 package/ck/0001-Avoid-buildroot-s-influence-on-LDFLAGS.patch
 create mode 100644 package/ck/Config.in
 create mode 100644 package/ck/ck.hash
 create mode 100644 package/ck/ck.mk

diff --git a/.checkpackageignore b/.checkpackageignore
index f2dea0dfd9..1be4e79a2b 100644
--- a/.checkpackageignore
+++ b/.checkpackageignore
@@ -286,6 +286,7 @@ package/cgroupfs-mount/S30cgroupfs Indent Shellcheck Variables
 package/chipmunk/0001-Fix-build-failure-on-musl.patch Upstream
 package/chocolate-doom/0001-Remove-redundant-demoextend-definition.patch Upstream
 package/chrony/S49chrony Indent Shellcheck Variables
+package/ck/0001-Avoid-buildroot-s-influence-on-LDFLAGS.patch Upstream
 package/clang/0001-lib-Driver-ToolChains-Gnu-Use-GCC_INSTALL_PREFIX-in-.patch Upstream
 package/cmake/0001-rename-cmake-rootfile.patch Upstream
 package/cmocka/0001-Don-t-redefine-uintptr_t.patch Upstream
diff --git a/DEVELOPERS b/DEVELOPERS
index e76717e845..4accefb251 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2626,6 +2626,9 @@ F:	package/rtl8189fs/
 F:	package/wpa_supplicant/
 F:	package/xr819-xradio/
 
+N:	Sergey Romanov <svromanov@sberdevices.ru>
+F:	package/ck/
+
 N:	Sergio Prado <sergio.prado@e-labworks.com>
 F:	board/toradex/apalis-imx6/
 F:	configs/toradex_apalis_imx6_defconfig
diff --git a/package/Config.in b/package/Config.in
index 420ebaa370..c81ddc81f6 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -92,6 +92,7 @@ menu "Debugging, profiling and benchmark"
 	source "package/bonnie/Config.in"
 	source "package/bpftool/Config.in"
 	source "package/cache-calibrator/Config.in"
+	source "package/ck/Config.in"
 	source "package/clinfo/Config.in"
 	source "package/clpeak/Config.in"
 	source "package/coremark/Config.in"
diff --git a/package/ck/0001-Avoid-buildroot-s-influence-on-LDFLAGS.patch b/package/ck/0001-Avoid-buildroot-s-influence-on-LDFLAGS.patch
new file mode 100644
index 0000000000..7e2cc85ba6
--- /dev/null
+++ b/package/ck/0001-Avoid-buildroot-s-influence-on-LDFLAGS.patch
@@ -0,0 +1,191 @@
+From 0b30b184538c0de485fe292e2ebb6bfea3c255bc Mon Sep 17 00:00:00 2001
+From: Sergey Romanov <svromanov@sberdevices.ru>
+Date: Thu, 25 May 2023 19:01:28 +0300
+Subject: [PATCH] Avoid buildroot's influence on LDFLAGS
+
+Upstream-status: Pending
+
+Signed-off-by: Sergey Romanov <svromanov@sberdevices.ru>
+---
+ build/ck.build.in          |  2 +-
+ build/ck.build.ppc64       |  2 +-
+ build/ck.build.x86_64      |  2 +-
+ build/regressions.build.in |  2 +-
+ configure                  | 28 +++++++++++++++-------------
+ src/Makefile.in            |  2 +-
+ 6 files changed, 20 insertions(+), 18 deletions(-)
+
+diff --git a/build/ck.build.in b/build/ck.build.in
+index 1d6bfe3..f68b5b7 100644
+--- a/build/ck.build.in
++++ b/build/ck.build.in
+@@ -3,7 +3,7 @@ MAKE=make
+ SRC_DIR=@SRC_DIR@
+ BUILD_DIR=@BUILD_DIR@
+ CFLAGS+=@CFLAGS@ -I$(SRC_DIR)/include -I$(BUILD_DIR)/include
+-LDFLAGS+=@LDFLAGS@
++LDFLAGS_CK+=@LDFLAGS_CK@
+ ALL_LIBS=@ALL_LIBS@
+ LD=@LD@
+ 
+diff --git a/build/ck.build.ppc64 b/build/ck.build.ppc64
+index 51003f4..7e25f10 100644
+--- a/build/ck.build.ppc64
++++ b/build/ck.build.ppc64
+@@ -1,2 +1,2 @@
+ CFLAGS+=-m64 -D__ppc64__
+-LDFLAGS+=-m64
++LDFLAGS_CK+=-m64
+diff --git a/build/ck.build.x86_64 b/build/ck.build.x86_64
+index 81b378a..160c4f1 100644
+--- a/build/ck.build.x86_64
++++ b/build/ck.build.x86_64
+@@ -1,2 +1,2 @@
+ CFLAGS+=-m64 -D__x86_64__
+-LDFLAGS+=-m64
++LDFLAGS_CK+=-m64
+diff --git a/build/regressions.build.in b/build/regressions.build.in
+index 6d79a8b..f1c7515 100644
+--- a/build/regressions.build.in
++++ b/build/regressions.build.in
+@@ -3,7 +3,7 @@ MAKE=make
+ CORES=@CORES@
+ CFLAGS=@CFLAGS@ -I../../../include -DCORES=@CORES@
+ LD=@LD@
+-LDFLAGS=@LDFLAGS@
++LDFLAGS_CK=@LDFLAGS_CK@
+ PTHREAD_CFLAGS=@PTHREAD_CFLAGS@
+ BUILD_DIR=@BUILD_DIR@
+ 
+diff --git a/configure b/configure
+index 340e05c..f73104a 100755
+--- a/configure
++++ b/configure
+@@ -112,7 +112,7 @@ generate()
+ 	    -e "s#@ALL_LIBS@#$ALL_LIBS#g"			\
+ 	    -e "s#@INSTALL_LIBS@#$INSTALL_LIBS#g"		\
+ 	    -e "s#@LD@#$LD#g"					\
+-	    -e "s#@LDFLAGS@#$LDFLAGS#g"				\
++	    -e "s#@LDFLAGS_CK@#$LDFLAGS_CK#g"				\
+ 	    -e "s#@PTHREAD_CFLAGS@#$PTHREAD_CFLAGS#g"		\
+ 	    -e "s#@MANDIR@#$MANDIR#g"				\
+ 	    -e "s#@GZIP@#$GZIP#g"				\
+@@ -156,7 +156,7 @@ generate_stdout()
+ 	echo "            LDNAME = $LDNAME"
+ 	echo "    LDNAME_VERSION = $LDNAME_VERSION"
+ 	echo "      LDNAME_MAJOR = $LDNAME_MAJOR"
+-	echo "           LDFLAGS = $LDFLAGS"
++	echo "        LDFLAGS_CK = $LDFLAGS_CK"
+ 	echo "        STATIC_LIB = $DISABLE_STATIC"
+ 	echo "              GZIP = $GZIP"
+ 	echo "             CORES = $CORES"
+@@ -222,7 +222,7 @@ for option; do
+ 		echo "   AR       AR archiver command"
+ 		echo "   CC       C compiler command"
+ 		echo "   CFLAGS   C compiler flags"
+-		echo "   LDFLAGS  Linker flags"
++		echo "   LDFLAGS_CK  Linker flags"
+ 		echo "   GZIP     GZIP compression tool"
+ 		echo
+ 		echo "Report bugs to ${MAINTAINER}."
+@@ -376,15 +376,15 @@ case "$SYSTEM" in
+ 		;;
+ 	MINGW32*|MSYS_NT*)
+ 		SYSTEM=mingw32
+-		LDFLAGS="-mthreads $LDFLAGS"
++		LDFLAGS_CK="-mthreads $LDFLAGS_CK"
+ 		;;
+ 	MINGW64*)
+ 		SYSTEM=mingw64
+-		LDFLAGS="-mthreads $LDFLAGS"
++		LDFLAGS_CK="-mthreads $LDFLAGS_CK"
+ 		;;
+ 	CYGWIN_NT*)
+ 		SYSTEM=cygwin
+-		LDFLAGS="-mthreads $LDFLAGS"
++		LDFLAGS_CK="-mthreads $LDFLAGS_CK"
+ 		;;
+ 	*)
+ 		SYSTEM=
+@@ -413,7 +413,7 @@ case $PLATFORM in
+ 		MM="${MM:-"CK_MD_RMO"}"
+ 		PLATFORM=ppc
+ 		ENVIRONMENT=32
+-		LDFLAGS="-m32 $LDFLAGS"
++		LDFLAGS_CK="-m32 $LDFLAGS_CK"
+ 		;;
+ 	"sun4u"|"sun4v"|"sparc64")
+ 		RTM_ENABLE="CK_MD_RTM_DISABLE"
+@@ -421,7 +421,7 @@ case $PLATFORM in
+ 		MM="${MM:-"CK_MD_TSO"}"
+ 		PLATFORM=sparcv9
+ 		ENVIRONMENT=64
+-		LDFLAGS="-m64 $LDFLAGS"
++		LDFLAGS_CK="-m64 $LDFLAGS_CK"
+ 		;;
+ 	i386|i486|i586|i686|i586_i686|pentium*|athlon*|k5|k6|k6_2|k6_3)
+ 		LSE_ENABLE="CK_MD_LSE_DISABLE"
+@@ -474,7 +474,7 @@ case $PLATFORM in
+ 		LSE_ENABLE="CK_MD_LSE_DISABLE"
+ 		PLATFORM=x86_64
+ 		ENVIRONMENT=64
+-		LDFLAGS="-m64 $LDFLAGS"
++		LDFLAGS_CK="-m64 $LDFLAGS_CK"
+ 		MM="${MM:-"CK_MD_TSO"}"
+ 		;;
+ 	"i86pc")
+@@ -686,6 +686,8 @@ $CC -o .1 .1.c
+ COMPILER=`./.1 2> /dev/null`
+ r=$?
+ rm -f .1.c .1
++COMPILER="gcc"
++r=0
+ 
+ if test "$r" -ne 0; then
+ 	assert "" "update compiler"
+@@ -695,7 +697,7 @@ fi
+ 
+ if test "$COMPILER" = "suncc"; then
+ 	LD=/bin/ld
+-	LDFLAGS="-G -z text -h libck.so.$VERSION_MAJOR $LDFLAGS"
++	LDFLAGS_CK="-G -z text -h libck.so.$VERSION_MAJOR $LDFLAGS_CK"
+ 	CFLAGS="-xO5 $CFLAGS"
+ 	PTHREAD_CFLAGS="-mt -lpthread"
+ elif test "$COMPILER" = "gcc" || test "$COMPILER" = "clang" || test "$COMPILER" = "mingw32" || test "$COMPILER" = "mingw64"; then
+@@ -711,9 +713,9 @@ elif test "$COMPILER" = "gcc" || test "$COMPILER" = "clang" || test "$COMPILER"
+ 		CC_WL_OPT="-soname"
+ 	fi
+ 
+-	LDFLAGS="-Wl,$CC_WL_OPT,$SONAME $LDFLAGS"
++	LDFLAGS_CK="-Wl,$CC_WL_OPT,$SONAME $LDFLAGS_CK"
+ 	if test "$WANT_PIC" = "yes"; then
+-		LDFLAGS="$LDFLAGS -shared -fPIC"
++		LDFLAGS_CK="$LDFLAGS_CK -shared -fPIC"
+ 		CFLAGS="$CFLAGS -fPIC"
+ 
+ 		if [ "$DISABLE_STATIC" -eq 1 ]; then
+@@ -724,7 +726,7 @@ elif test "$COMPILER" = "gcc" || test "$COMPILER" = "clang" || test "$COMPILER"
+ 			INSTALL_LIBS="install-so install-lib"
+ 		fi
+ 	else
+-		LDFLAGS="$LDFLAGS -fno-PIC"
++		LDFLAGS_CK="$LDFLAGS_CK -fno-PIC"
+ 		CFLAGS="$CFLAGS -fno-PIC"
+ 		if [ "$DISABLE_STATIC" -eq 1 ]; then
+ 			echo "Error: You have choosen to disable PIC, yet you also disabled the static lib." 1>&2
+diff --git a/src/Makefile.in b/src/Makefile.in
+index 7378849..ee6f9ee 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -22,7 +22,7 @@ OBJECTS=ck_barrier_centralized.o	\
+ all: $(ALL_LIBS)
+ 
+ libck.so: $(OBJECTS)
+-	$(LD) $(LDFLAGS) -o $(TARGET_DIR)/libck.so $(OBJECTS)
++	$(LD) $(LDFLAGS_CK) -o $(TARGET_DIR)/libck.so $(OBJECTS)
+ 
+ libck.a: $(OBJECTS)
+ 	$(AR) rcs $(TARGET_DIR)/libck.a $(OBJECTS)
+-- 
+2.25.1
+
diff --git a/package/ck/Config.in b/package/ck/Config.in
new file mode 100644
index 0000000000..d88eaa8413
--- /dev/null
+++ b/package/ck/Config.in
@@ -0,0 +1,23 @@
+config BR2_PACKAGE_CK_ARCH_SUPPORTS
+	bool
+	default y if ((BR2_arm && !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5 && \
+		!BR2_ARM_CPU_ARMV7M) || BR2_aarch64 || \
+		BR2_powerpc || BR2_powerpc64 || BR2_RISCV_64 || \
+		BR2_s390x || BR2_sparc_v9 || BR2_x86 || BR2_x86_64)
+
+config BR2_PACKAGE_CK_TOOLCHAIN_SUPPORTS
+	bool
+	default y if ((BR2_TOOLCHAIN_USES_MUSL || BR2_TOOLCHAIN_USES_GLIBC) && \
+		!BR2_TOOLCHAIN_USES_UCLIBC)
+
+config BR2_PACKAGE_CK
+	bool "concurrency kit"
+	depends on BR2_PACKAGE_CK_ARCH_SUPPORTS
+	depends on BR2_PACKAGE_CK_TOOLCHAIN_SUPPORTS
+	help
+	  Concurrency primitives, safe memory reclamation
+	  mechanisms and non-blocking data structures
+	  for the research, design and implementation
+	  of high performance concurrent systems.
+
+	  https://github.com/concurrencykit/ck.git
diff --git a/package/ck/ck.hash b/package/ck/ck.hash
new file mode 100644
index 0000000000..6d77ae4bee
--- /dev/null
+++ b/package/ck/ck.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  97d2a21d5326ef79b4668be2e6eda6284ee77a64c0981b35fd9695c736c3d4ac  ck-0.7.1.tar.gz
+sha256  21a861f554f8f97047815e63ff5cbd57707b4c53dc1dd1b0f2dd43e6ca193464  LICENSE
diff --git a/package/ck/ck.mk b/package/ck/ck.mk
new file mode 100644
index 0000000000..ecdeadb057
--- /dev/null
+++ b/package/ck/ck.mk
@@ -0,0 +1,42 @@
+################################################################################
+#
+# ck
+#
+################################################################################
+
+CK_VERSION = 0.7.1
+CK_SITE = $(call github,concurrencykit,ck,$(CK_VERSION))
+CK_LICENSE = Apache-2.0
+CK_LICENSE_FILES = LICENSE
+
+CK_INSTALL_STAGING = YES
+
+CK_PROFILE_PARAMS += --platform=$(BR2_ARCH)
+CK_PROFILE_PARAMS += --prefix="/usr"
+
+define CK_CONFIGURE_CMDS
+	( cd $(@D); \
+	$(TARGET_CONFIGURE_OPTS) \
+	$(CK_PROFILE_CONF_ENV) \
+	./configure $(CK_PROFILE_PARAMS) )
+endef
+
+define CK_BUILD_CMDS
+	$(TARGET_CONFIGURE_OPTS) \
+	$(CK_PROFILE_CONF_ENV) \
+	$(MAKE) -C $(@D)
+endef
+
+define CK_INSTALL_TARGET_CMDS
+	$(TARGET_CONFIGURE_OPTS) \
+	$(CK_PROFILE_CONF_ENV) \
+	$(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
+endef
+
+define CK_INSTALL_STAGING_CMDS
+	$(TARGET_CONFIGURE_OPTS) \
+	$(CK_PROFILE_CONF_ENV) \
+	$(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install
+endef
+
+$(eval $(generic-package))
-- 
2.25.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Buildroot] [RFC PATCH v1 2/2] package/sysbench: new package
  2023-05-25 21:51 [Buildroot] [RFC PATCH v1 0/2] Added package: 'sysbench' and its dependency: 'ck' Sergey Romanov via buildroot
  2023-05-25 21:51 ` [Buildroot] [RFC PATCH v1 1/2] package/ck: new package Sergey Romanov via buildroot
@ 2023-05-25 21:51 ` Sergey Romanov via buildroot
  2023-08-25 21:37   ` Thomas Petazzoni via buildroot
  1 sibling, 1 reply; 9+ messages in thread
From: Sergey Romanov via buildroot @ 2023-05-25 21:51 UTC (permalink / raw)
  To: buildroot
  Cc: svromanov, chip-club, akopytov, sbahra, thomas.petazzoni,
	sdfw_system_team, kernel

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

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))
-- 
2.25.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [Buildroot] [RFC PATCH v1 1/2] package/ck: new package
  2023-05-25 21:51 ` [Buildroot] [RFC PATCH v1 1/2] package/ck: new package Sergey Romanov via buildroot
@ 2023-08-25 21:33   ` Thomas Petazzoni via buildroot
  2023-11-17  9:44     ` [Buildroot] [RFC PATCH v2 0/2] Added package: 'sysbench' and its dependency: 'ck' Sergey Romanov via buildroot
  0 siblings, 1 reply; 9+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-08-25 21:33 UTC (permalink / raw)
  To: Sergey Romanov via buildroot
  Cc: Sergey Romanov, chip-club, akopytov, sbahra, sdfw_system_team,
	kernel

Hello Sergey,

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

> Concurrency primitives, safe memory reclamation
> mechanisms and non-blocking data structures
> for the research, design and implementation
> of high performance concurrent systems.
> 
> https://github.com/concurrencykit/ck.git
> 
> Signed-off-by: Sergey Romanov <svromanov@sberdevices.ru>

Sorry for the very slow feedback. I wanted to push this, but it doesn't
build, and I don't see how it can build in a cross-compilation
environment. Indeed, the configure script does this:

$CC -o .1 .1.c
COMPILER=`./.1 2> /dev/null`
r=$?
rm -f .1.c .1

if test "$r" -ne 0; then
        assert "" "update compiler"
else
        echo "success [$CC]"
fi

So it builds a program called .1 with the cross-compiler, and then it
tries to run it. This obviously will never work in a cross-compilation
context.

Some more comments below (which I had addressed locally, but had to
give up because of the above issue)

> diff --git a/.checkpackageignore b/.checkpackageignore
> index f2dea0dfd9..1be4e79a2b 100644
> --- a/.checkpackageignore
> +++ b/.checkpackageignore
> @@ -286,6 +286,7 @@ package/cgroupfs-mount/S30cgroupfs Indent Shellcheck Variables
>  package/chipmunk/0001-Fix-build-failure-on-musl.patch Upstream
>  package/chocolate-doom/0001-Remove-redundant-demoextend-definition.patch Upstream
>  package/chrony/S49chrony Indent Shellcheck Variables
> +package/ck/0001-Avoid-buildroot-s-influence-on-LDFLAGS.patch Upstream

Please add a proper Upstream: tag instead of adding an exception. We
don't want to add new entries in .checkpackageignore, only remove
existing entries.

> diff --git a/package/ck/0001-Avoid-buildroot-s-influence-on-LDFLAGS.patch b/package/ck/0001-Avoid-buildroot-s-influence-on-LDFLAGS.patch
> new file mode 100644
> index 0000000000..7e2cc85ba6
> --- /dev/null
> +++ b/package/ck/0001-Avoid-buildroot-s-influence-on-LDFLAGS.patch
> @@ -0,0 +1,191 @@
> +From 0b30b184538c0de485fe292e2ebb6bfea3c255bc Mon Sep 17 00:00:00 2001
> +From: Sergey Romanov <svromanov@sberdevices.ru>
> +Date: Thu, 25 May 2023 19:01:28 +0300
> +Subject: [PATCH] Avoid buildroot's influence on LDFLAGS
> +
> +Upstream-status: Pending

Pending where? Could you please provide some link to a pull request?

Also, could you provide some more details on why this patch is needed.
Apparently, the configure script is designed to allow passing custom
LDFLAGS through the LDFLAGS variable, so why doesn't that just work?

> diff --git a/package/ck/Config.in b/package/ck/Config.in
> new file mode 100644
> index 0000000000..d88eaa8413
> --- /dev/null
> +++ b/package/ck/Config.in
> @@ -0,0 +1,23 @@
> +config BR2_PACKAGE_CK_ARCH_SUPPORTS
> +	bool
> +	default y if ((BR2_arm && !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5 && \
> +		!BR2_ARM_CPU_ARMV7M) || BR2_aarch64 || \
> +		BR2_powerpc || BR2_powerpc64 || BR2_RISCV_64 || \
> +		BR2_s390x || BR2_sparc_v9 || BR2_x86 || BR2_x86_64)

BR2_x86 doesn't exist, it's BR2_i386. Also, please reformat as such:

config BR2_PACKAGE_CK_ARCH_SUPPORTS
        bool
        default y if BR2_arm && !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5 && !BR2_ARM_CPU_ARMV7M
        default y if BR2_aarch64
        default y if BR2_i386
        default y if BR2_powerpc || BR2_powerpc64
        default y if BR2_RISCV_64
        default y if BR2_s390x
        default y if BR2_sparc_v9
        default y if BR2_x86_64

> +config BR2_PACKAGE_CK_TOOLCHAIN_SUPPORTS
> +	bool
> +	default y if ((BR2_TOOLCHAIN_USES_MUSL || BR2_TOOLCHAIN_USES_GLIBC) && \
> +		!BR2_TOOLCHAIN_USES_UCLIBC)

Please drop this.

> +
> +config BR2_PACKAGE_CK
> +	bool "concurrency kit"
> +	depends on BR2_PACKAGE_CK_ARCH_SUPPORTS
> +	depends on BR2_PACKAGE_CK_TOOLCHAIN_SUPPORTS

And use:

	# some comment here to explain the issue
	depends on !BR2_TOOLCHAIN_USES_UCLIBC

> +	help
> +	  Concurrency primitives, safe memory reclamation
> +	  mechanisms and non-blocking data structures
> +	  for the research, design and implementation
> +	  of high performance concurrent systems.
> +
> +	  https://github.com/concurrencykit/ck.git

And add:

comment "ck needs a toolchain w/ glibc or musl"
        depends on BR2_PACKAGE_CK_ARCH_SUPPORTS
        depends on BR2_TOOLCHAIN_USES_UCLIBC

> +CK_INSTALL_STAGING = YES
> +
> +CK_PROFILE_PARAMS += --platform=$(BR2_ARCH)
> +CK_PROFILE_PARAMS += --prefix="/usr"

Please use:

CK_CONF_OPTS = \
	--platform=$(BR2_ARCH) \
	--prefix="/usr"

> +
> +define CK_CONFIGURE_CMDS
> +	( cd $(@D); \
> +	$(TARGET_CONFIGURE_OPTS) \
> +	$(CK_PROFILE_CONF_ENV) \

This variable doesn't exist.

> +	./configure $(CK_PROFILE_PARAMS) )

Please simplify to:

        cd $(@D); \
                $(TARGET_CONFIGURE_OPTS) \
                ./configure $(CK_CONF_OPTS)


> +endef
> +
> +define CK_BUILD_CMDS
> +	$(TARGET_CONFIGURE_OPTS) \
> +	$(CK_PROFILE_CONF_ENV) \
> +	$(MAKE) -C $(@D)

If you can simplify to:

        $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)

it would be great.

> +endef
> +
> +define CK_INSTALL_TARGET_CMDS
> +	$(TARGET_CONFIGURE_OPTS) \
> +	$(CK_PROFILE_CONF_ENV) \
> +	$(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install

Simplify to:

        $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install

if possible.

> +endef
> +
> +define CK_INSTALL_STAGING_CMDS
> +	$(TARGET_CONFIGURE_OPTS) \
> +	$(CK_PROFILE_CONF_ENV) \
> +	$(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install

Simplify to:

        $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install

if possible.

Thanks!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Buildroot] [RFC PATCH v1 2/2] package/sysbench: new package
  2023-05-25 21:51 ` [Buildroot] [RFC PATCH v1 " Sergey Romanov via buildroot
@ 2023-08-25 21:37   ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 9+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-08-25 21:37 UTC (permalink / raw)
  To: Sergey Romanov via buildroot
  Cc: Sergey Romanov, chip-club, akopytov, sbahra, sdfw_system_team,
	kernel

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
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [RFC PATCH v2 0/2] Added package: 'sysbench' and its dependency: 'ck'.
  2023-08-25 21:33   ` Thomas Petazzoni via buildroot
@ 2023-11-17  9:44     ` Sergey Romanov via buildroot
  2023-11-17  9:44       ` [Buildroot] [RFC PATCH v2 1/2] package/ck: new package Sergey Romanov via buildroot
  2023-11-17  9:44       ` [Buildroot] [RFC PATCH v2 2/2] package/sysbench: " Sergey Romanov via buildroot
  0 siblings, 2 replies; 9+ messages in thread
From: Sergey Romanov via buildroot @ 2023-11-17  9:44 UTC (permalink / raw)
  To: buildroot
  Cc: chip-club, akopytov, kernel, svromanov, sbahra, sdfw_system_team,
	thomas.petazzoni


Sergey Romanov (2):
  package/ck: new package
  package/sysbench: new package

 DEVELOPERS                     |  4 ++
 package/Config.in              |  2 +
 package/ck/Config.in           | 19 +++++++++
 package/ck/ck.hash             |  3 ++
 package/ck/ck.mk               | 71 ++++++++++++++++++++++++++++++++++
 package/sysbench/Config.in     | 29 ++++++++++++++
 package/sysbench/sysbench.hash |  3 ++
 package/sysbench/sysbench.mk   | 31 +++++++++++++++
 8 files changed, 162 insertions(+)
 create mode 100644 package/ck/Config.in
 create mode 100644 package/ck/ck.hash
 create mode 100644 package/ck/ck.mk
 create mode 100644 package/sysbench/Config.in
 create mode 100644 package/sysbench/sysbench.hash
 create mode 100644 package/sysbench/sysbench.mk

-- 
2.25.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [RFC PATCH v2 1/2] package/ck: new package
  2023-11-17  9:44     ` [Buildroot] [RFC PATCH v2 0/2] Added package: 'sysbench' and its dependency: 'ck' Sergey Romanov via buildroot
@ 2023-11-17  9:44       ` Sergey Romanov via buildroot
  2023-11-17  9:44       ` [Buildroot] [RFC PATCH v2 2/2] package/sysbench: " Sergey Romanov via buildroot
  1 sibling, 0 replies; 9+ messages in thread
From: Sergey Romanov via buildroot @ 2023-11-17  9:44 UTC (permalink / raw)
  To: buildroot
  Cc: Sergey Romanov, chip-club, akopytov, kernel, svromanov, sbahra,
	sdfw_system_team, thomas.petazzoni

From: Sergey Romanov <svromanov@sberdevices.ru>

Concurrency primitives, safe memory reclamation
mechanisms and non-blocking data structures
for the research, design and implementation
of high performance concurrent systems.

https://github.com/concurrencykit/ck.git

Signed-off-by: Sergey Romanov <svromanov@salutedevices.com>
---
 DEVELOPERS           |  3 ++
 package/Config.in    |  1 +
 package/ck/Config.in | 19 ++++++++++++
 package/ck/ck.hash   |  3 ++
 package/ck/ck.mk     | 71 ++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 97 insertions(+)
 create mode 100644 package/ck/Config.in
 create mode 100644 package/ck/ck.hash
 create mode 100644 package/ck/ck.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 1f26e9bc81..f967b46842 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2717,6 +2717,9 @@ N:	Sergey Matyukevich <sergey.matyukevich@synopsys.com>
 F:	board/synopsys/nsim/
 F:	configs/snps_arc700_nsim_defconfig
 
+N:	Sergey Romanov <svromanov@salutedevices.com>
+F:	package/ck/
+
 N:	Sergio Prado <sergio.prado@e-labworks.com>
 F:	board/toradex/apalis-imx6/
 F:	configs/toradex_apalis_imx6_defconfig
diff --git a/package/Config.in b/package/Config.in
index 5a3410d758..ed08cb69c6 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -91,6 +91,7 @@ menu "Debugging, profiling and benchmark"
 	source "package/bonnie/Config.in"
 	source "package/bpftool/Config.in"
 	source "package/cache-calibrator/Config.in"
+	source "package/ck/Config.in"
 	source "package/clinfo/Config.in"
 	source "package/clpeak/Config.in"
 	source "package/coremark/Config.in"
diff --git a/package/ck/Config.in b/package/ck/Config.in
new file mode 100644
index 0000000000..613a1f4dde
--- /dev/null
+++ b/package/ck/Config.in
@@ -0,0 +1,19 @@
+config BR2_PACKAGE_CK_ARCH_SUPPORTS
+	bool
+	default y if BR2_arm && !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5 && !BR2_ARM_CPU_ARMV7M
+	default y if BR2_aarch64
+	default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
+	default y if BR2_s390x
+	default y if BR2_sparc_v9
+	default y if BR2_i386
+	default y if BR2_x86_64
+
+config BR2_PACKAGE_CK
+	bool "concurrency kit"
+	depends on BR2_PACKAGE_CK_ARCH_SUPPORTS
+	help
+	  Concurrency primitives, safe memory reclamation mechanisms
+	  and non-blocking data structures for the research, design and
+	  implementation of high performance concurrent systems.
+
+	  https://github.com/concurrencykit/ck.git
diff --git a/package/ck/ck.hash b/package/ck/ck.hash
new file mode 100644
index 0000000000..6d77ae4bee
--- /dev/null
+++ b/package/ck/ck.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  97d2a21d5326ef79b4668be2e6eda6284ee77a64c0981b35fd9695c736c3d4ac  ck-0.7.1.tar.gz
+sha256  21a861f554f8f97047815e63ff5cbd57707b4c53dc1dd1b0f2dd43e6ca193464  LICENSE
diff --git a/package/ck/ck.mk b/package/ck/ck.mk
new file mode 100644
index 0000000000..41827a9636
--- /dev/null
+++ b/package/ck/ck.mk
@@ -0,0 +1,71 @@
+################################################################################
+#
+# ck
+#
+################################################################################
+
+CK_VERSION = 0.7.1
+CK_SITE = $(call github,concurrencykit,ck,$(CK_VERSION))
+CK_LICENSE = Apache-2.0
+CK_LICENSE_FILES = LICENSE
+
+CK_INSTALL_STAGING = YES
+
+CK_CONF_OPTS = \
+	--platform=$(BR2_ARCH) \
+	--prefix="/usr"
+
+CK_LDFLAGS = -Wl,-soname,libck.so.0  -shared -fPIC
+CK_CFLAGS = $(TARGET_CFLAGS) -std=gnu99 -fPIC
+
+ifeq ($(BR2_arm)$(BR2_ARM_CPU_ARMV6),yy)
+CK_CONF_OPTS += --profile="arm"
+CK_CFLAGS +=  -march=armv6k
+else ifeq ($(BR2_arm)$(BR2_ARM_CPU_ARMV7A),yy)
+CK_CONF_OPTS += --profile="arm"
+CK_CFLAGS +=  -march=armv7-a
+else ifeq ($(BR2_arm),y)
+CK_CONF_OPTS += --profile="arm"
+else ifeq ($(BR2_aarch64),y)
+CK_CONF_OPTS += --profile="aarch64"
+else ifeq ($(BR2_powerpc),y)
+CK_CONF_OPTS += --profile="ppc"
+else ifeq ($(BR2_powerpc64)$(BR2_powerpc64le),y)
+CK_CONF_OPTS += --profile="ppc64"
+else ifeq ($(BR2_s390x),y)
+CK_CONF_OPTS += --profile="s390x"
+else ifeq ($(BR2_x86_64),y)
+CK_CONF_OPTS += --profile="x86_64"
+CK_LDFLAGS += -m64
+else ifeq ($(BR2_i386),y)
+CK_CONF_OPTS += --profile="x86"
+else ifeq ($(BR2_sparc_v9),y)
+CK_CONF_OPTS += --profile="sparcv9"
+endif
+
+define CK_CONFIGURE_CMDS
+	cd $(@D); \
+		$(TARGET_CONFIGURE_OPTS) \
+		LD=$(TARGET_CC) \
+		CC=$(TARGET_CC) \
+		LDFLAGS="$(CK_LDFLAGS)" \
+		CFLAGS="$(CK_CFLAGS)" \
+		ALL_LIBS="libck.so" \
+		INSTALL_LIBS="install-so" \
+		PTHREAD_CFLAGS="-pthread" \
+		./configure $(CK_CONF_OPTS)
+endef
+
+define CK_BUILD_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
+endef
+
+define CK_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
+endef
+
+define CK_INSTALL_STAGING_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install
+endef
+
+$(eval $(generic-package))
-- 
2.25.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Buildroot] [RFC PATCH v2 2/2] package/sysbench: new package
  2023-11-17  9:44     ` [Buildroot] [RFC PATCH v2 0/2] Added package: 'sysbench' and its dependency: 'ck' Sergey Romanov via buildroot
  2023-11-17  9:44       ` [Buildroot] [RFC PATCH v2 1/2] package/ck: new package Sergey Romanov via buildroot
@ 2023-11-17  9:44       ` Sergey Romanov via buildroot
  1 sibling, 0 replies; 9+ messages in thread
From: Sergey Romanov via buildroot @ 2023-11-17  9:44 UTC (permalink / raw)
  To: buildroot
  Cc: Sergey Romanov, chip-club, akopytov, kernel, svromanov, sbahra,
	sdfw_system_team, thomas.petazzoni

From: Sergey Romanov <svromanov@sberdevices.ru>

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@salutedevices.com>
---
 DEVELOPERS                     |  1 +
 package/Config.in              |  1 +
 package/sysbench/Config.in     | 29 +++++++++++++++++++++++++++++
 package/sysbench/sysbench.hash |  3 +++
 package/sysbench/sysbench.mk   | 31 +++++++++++++++++++++++++++++++
 5 files changed, 65 insertions(+)
 create mode 100644 package/sysbench/Config.in
 create mode 100644 package/sysbench/sysbench.hash
 create mode 100644 package/sysbench/sysbench.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index f967b46842..73d4dfe094 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2719,6 +2719,7 @@ F:	configs/snps_arc700_nsim_defconfig
 
 N:	Sergey Romanov <svromanov@salutedevices.com>
 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 ed08cb69c6..281544900b 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..7e4987497e
--- /dev/null
+++ b/package/sysbench/Config.in
@@ -0,0 +1,29 @@
+config BR2_PACKAGE_SYSBENCH_ARCH_SUPPORTS
+	bool
+	default y if !BR2_powerpc
+
+config BR2_PACKAGE_SYSBENCH
+	bool "sysbench"
+	depends on BR2_PACKAGE_SYSBENCH_ARCH_SUPPORTS
+	depends on BR2_PACKAGE_CK_ARCH_SUPPORTS
+	depends on !BR2_STATIC_LIBS # luajit
+	depends on !BR2_PACKAGE_LUA # luajit
+	depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS # luajit
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+
+	select BR2_PACKAGE_LUAJIT
+	select BR2_PACKAGE_CK
+	select BR2_PACKAGE_PKGCONF
+	select BR2_PACKAGE_LIBTOOL
+	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
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..33e19706e8
--- /dev/null
+++ b/package/sysbench/sysbench.mk
@@ -0,0 +1,31 @@
+################################################################################
+#
+# SYSBENCH
+#
+################################################################################
+
+SYSBENCH_VERSION = 1.0.20
+SYSBENCH_SITE = $(call github,akopytov,sysbench,$(SYSBENCH_VERSION))
+SYSBENCH_LICENSE = GPL-2.0+
+SYSBENCH_LICENSE_FILES = COPYING
+
+SYSBENCH_AUTORECONF = YES
+
+SYSBENCH_DEPENDENCIES += host-pkgconf ck luajit
+
+SYSBENCH_CONF_OPTS += \
+	--without-lib-prefix \
+	--with-system-luajit \
+	--with-system-ck
+
+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
+
+$(eval $(autotools-package))
-- 
2.25.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2023-11-17  9:45 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-25 21:51 [Buildroot] [RFC PATCH v1 0/2] Added package: 'sysbench' and its dependency: 'ck' Sergey Romanov via buildroot
2023-05-25 21:51 ` [Buildroot] [RFC PATCH v1 1/2] package/ck: new package Sergey Romanov via buildroot
2023-08-25 21:33   ` Thomas Petazzoni via buildroot
2023-11-17  9:44     ` [Buildroot] [RFC PATCH v2 0/2] Added package: 'sysbench' and its dependency: 'ck' Sergey Romanov via buildroot
2023-11-17  9:44       ` [Buildroot] [RFC PATCH v2 1/2] package/ck: new package Sergey Romanov via buildroot
2023-11-17  9:44       ` [Buildroot] [RFC PATCH v2 2/2] package/sysbench: " Sergey Romanov via buildroot
2023-05-25 21:51 ` [Buildroot] [RFC PATCH v1 " Sergey Romanov via buildroot
2023-08-25 21:37   ` Thomas Petazzoni via buildroot
  -- strict thread matches above, loose matches on Subject: below --
2023-05-25 13:23 [Buildroot] [RFC PATCH v1 0/2] Added package: 'sysbench' and its dependency: 'ck' Sergey Romanov
2023-05-25 13:23 ` [Buildroot] [RFC PATCH v1 2/2] package/sysbench: new package Sergey Romanov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox