USE_LARGEFILES requires _LFS64_LARGEFILE, which musl does not define
because its off_t is always 64-bit, so the build fails on musl:
./constants.h:36:2: error: no large file support available, remove -DLARGEFILES from makefile
Add a patch that only requires a 64-bit off_t in that case. It also
replaces the %L length modifier on integer conversions with the standard
%ll, which musl's printf requires.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
configure rejected riscv hosts as not ported, and the TSC read fell back
to x86 rdtsc. Patch both, reading the time CSR with rdtime.
Tested by building for qemuriscv64 (musl, clang) and running a loopback
ping-pong under qemu-riscv64.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Update tiobench from the legacy 0.3.3 SourceForge release to the
actively maintained upstream at github.com/mkuoppal/tiobench, pinned
to 11c965c8 (35 commits past v0.4.2). Picks up Clang build support,
random I/O test enhancements and cache handling updates.
Remove obsolete downstream patches, now fixed upstream:
avoid-glibc-clashes.patch - helper renamed to tt_aligned_alloc
0001-Specify-printf-formats.patch - format specifiers fixed
0001-Drop-inline-of-crc32-*.patch - crc32 inlining fixed
tiobench-makefile.patch - CC?= and LDFLAGS now upstream
Pass CFLAGS via EXTRA_OEMAKE. The upstream Makefile hardcodes
CFLAGS=-O2 -Wall and oe_runmake does not pass -e, so OE flags never
reached the compiler, losing -g (empty -dbg package), the hardening
flags, -ffile-prefix-map and the tune flags. DEFINES is separate, so
-DUSE_LARGEFILES is unaffected.
Install from do_install() rather than the upstream install target,
which has no DESTDIR support and installs tiosum.pl and README, both
long gone from the tree. COPYING is dropped from docdir as licenses
are handled by the license manifest.
Trim RDEPENDS to perl and perl-module-getopt-long; tiobench.pl only
uses warnings, strict and Getopt::Long, and strict is RPROVIDED by
perl. Data::Dumper and Term::ProgressBar are only reachable via the
opt-in --dump and --progress flags. Drop the redundant PV, already
set by the recipe filename.
Runtime validated on IQ-9075 EVK with tiotest and tiobench.pl across
multiple benchmark configurations, including tiobench.pl --help on an
image carrying only the trimmed RDEPENDS.
Build tested with gcc against glibc on aarch64 (armv8-2a).
Signed-off-by: Vaibhav Jindal <vaibjind@qti.qualcomm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Add missing Signed-off-by tags to benchmark package patches and
update Upstream-Status annotations where appropriate.
Mark the coremark-pro toolchain override patch as OE-specific
cross-compilation support, update the unixbench patch to reflect
that it is needed for the OpenEmbedded runtime packaging model,
and add the missing Signed-off-by tag to the wrk2 patch.
Signed-off-by: Vaibhav Jindal <vaibjind@qti.qualcomm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Notable user-visible changes:
- Attempting to set zero parallel streams is no longer allowed.
- Zerocopy and rx-copy are now allowed in the case of reverse
direction tests and the server (sending side) supports these
features but the client (receiving side) does not.
- The limit on GSO_MAX_DG_IN_BF was fixed to limit the number of segments
to the maximum allowed. This change unbreaks GSO for small message sizes.
Changelog:
https://github.com/esnet/iperf/releases/tag/3.22
Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
configure.ac's AC_SEARCH_LIBS([backtrace], [execinfo], ...) fails
with 'libexecinfo not found' on musl, which lacks glibc's
backtrace()/backtrace_symbols(); depend on the libexecinfo compat
library there.
Once configure succeeds, ticks.h's timeval2nsec() needs struct
timeval, which was only pulled in via <sys/time.h> under __FreeBSD__,
and vma-xlio-redirect.cpp calls sscanf()/sprintf() without including
<cstdio>; fix both for musl too.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
hackbench is a part of the rt-tests suite which has the recipe in
OE-Core since prehistoric times. Revert the commit 1e0d296bda
("hackbench: add Linux scheduler benchmark recipe") which duplicated a
part of OE-Core recipe.
Cc: Vaibhav Jindal <vaibjind@qti.qualcomm.com>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
cyclictest is a part of the rt-tests suite which has the recipe in
OE-Core since prehistoric times. Revert the commit 1253fb8431
("cyclictest: add real-time latency measurement recipe") which
duplicated a part of OE-Core recipe.
Cc: Vaibhav Jindal <vaibjind@qti.qualcomm.com>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade LICENSE syntax. Fixes:
WARNING: ramspeed-smp: LICENSE is using an old syntax and should be
upgraded to: "LicenseRef-Alasir"
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade LICENSE syntax. Fixes:
WARNING: ramspeed: LICENSE is using an old syntax and should be
upgraded to: "LicenseRef-Alasir"
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade the LICENSE format and don't use the old syntax. Fixes:
WARNING: coremark-pro: LICENSE is using an old syntax and should be
upgraded to: "Apache-2.0 AND LicenseRef-EEMBC-AUA"
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Add a recipe for cyclictest from the rt-tests project, a
real-time latency measurement tool used to evaluate Linux
kernel scheduler latency and jitter under various workloads.
The recipe builds and installs the cyclictest executable with
NUMA support enabled for use in real-time performance
evaluation, latency analysis, and regression testing.
Signed-off-by: Vaibhav Jindal <vaibjind@qti.qualcomm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Add a recipe for hackbench, a Linux scheduler benchmark used
to measure scheduling and inter-process communication
performance under various workloads.
The recipe builds and installs the hackbench executable with
NUMA support enabled for use in performance evaluation and
regression testing.
Signed-off-by: Vaibhav Jindal <vaibjind@qti.qualcomm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Add a recipe for UnixBench, a benchmark suite used to measure
CPU, memory, and overall system performance.
The recipe has been successfully built and validated on
aarch64 targets. Functional testing confirmed that the
benchmark suite executes correctly and generates results.
Signed-off-by: Vaibhav Jindal <vaibjind@qti.qualcomm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Add recipes for a set of benchmark and performance evaluation
tools commonly used to measure CPU, memory, network, and web
server performance.
- coremark-pro provides a comprehensive benchmark suite from
EEMBC that evaluates processor performance using integer,
floating-point, and real-world workloads.
- ramspeed-smp measures memory bandwidth and latency across
multiple CPU cores.
- sockperf provides network latency and throughput benchmarking
for TCP and UDP workloads.
- wrk2 generates HTTP workloads with constant throughput and is
useful for web server and service performance testing.
The recipes have been successfully built and validated on
aarch64 targets. Functional testing confirmed that the
benchmark binaries execute correctly and produce expected
results.
Signed-off-by: Vaibhav Jindal <vaibjind@qti.qualcomm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
A full check-upgrade-status sweep of meta-oe found 121 recipes reporting
UNKNOWN_BROKEN: their upstream version check resolved no version. This
adds the correct check metadata to each so the version check works again.
Fixes, by mechanism:
- wget/tarball recipes: add UPSTREAM_CHECK_URI + UPSTREAM_CHECK_REGEX
pointing at the real release listing (SourceForge files pages, GitHub
releases pages, GNU/ftp mirrors, distro pools).
- git recipes with release tags in a non-default format: add
UPSTREAM_CHECK_GITTAGREGEX matching the actual tag scheme.
- git repos with no tags at all: UPSTREAM_CHECK_COMMITS = "1".
- recipes whose upstream has no checkable release channel, or whose PV
format cannot be compared against upstream tags (CPAN zero-padded
versions, AUTOINC "git" PVs, dash-separated tags the checker cannot
convert): UPSTREAM_VERSION_UNKNOWN = "1" with an explanatory comment.
Also override GITHUB_BASE_URI for libppd's sibling libcupsfilters where the
github-releases class default pointed at a non-existent org (404).
Only version-check metadata is touched; no SRC_URI, SRCREV, PV, or checksum
is changed, so nothing that gets built is affected. Each fix was verified
with devtool check-upgrade-status: 120 of 121 now resolve (MATCH, UPDATE,
COMMITS, or an honestly-declared UNKNOWN). The remaining recipe (libubox)
already has correct metadata and only fails locally because the git://
port to git.openwrt.org is firewalled on the build host.
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Add an initial recipe for vkmark to enable Vulkan performance testing.
This tool allows for benchmarking various Vulkan rendering scenes and
can be used to validate graphics drivers on target hardware.
Signed-off-by: Ashwin Prabhakar <ashwin.prabhakar@qti.qualcomm.com>
vkmark: fix build parse errors by making XCB support conditional
The current default PACKAGECONFIG explicitly enforces 'xcb'.
This causes build failures on distributions (like Yoe) that
lack 'x11' in their DISTRO_FEATURES, as 'libxcb' and
'xcb-util-wm' are skipped during parsing.
Fix this by dynamically adding 'xcb' to PACKAGECONFIG only
when 'x11' is present in DISTRO_FEATURES.
Signed-off-by: Ashwin Prabhakar <ashwin.prabhakar@qti.qualcomm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Add a new recipe for osbench, a collection of micro-benchmarks
to measure operating system primitives such as process creation,
thread creation, file operations, and memory allocation.
Signed-off-by: Ashwin Prabhakar <ashwin.prabhakar@qti.qualcomm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Add a new recipe for ramspeed, a lightweight benchmark utility
that measures cache and memory bandwidth using a set of synthetic
tests.
Signed-off-by: Ashwin Prabhakar <ashwin.prabhakar@qti.qualcomm.com>
ramspeed: Add recipe for cache and memory benchmarking tool
Add a new recipe for ramspeed, a lightweight benchmark utility
that measures cache and memory bandwidth using a set of synthetic
tests.
Signed-off-by: Ashwin Prabhakar <ashwin.prabhakar@qti.qualcomm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Set ac_cv_prog_cc_c23=no to prevent autoconf from detecting C23
compiler support, avoiding potential build failures as the package
is not yet fully ported to support C23 standard.
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
A preliminar effort to support RISC-V was added in v2.23:
a529598 Introduce basic riscv64 support [1]
Following the guidelines in libhugetlbfs's HOWTO, here are the outputs
of some commands in qemuriscv64:
root@qemuriscv64:~# grep -i huge /proc/filesystems
nodev hugetlbfs
root@qemuriscv64:~# hugeadm --pool-list
Size Minimum Current Maximum Default
65536 0 0 0
2097152 0 0 0 *
root@qemuriscv64:~# hugeadm --pool-pages-min 2MB:10 --add-temp-swap
root@qemuriscv64:~# hugeadm --pool-list
Size Minimum Current Maximum Default
65536 0 0 0
2097152 10 10 10 *
root@qemuriscv64:~# hugeadm --pool-pages-min 2MB:-5
root@qemuriscv64:~# hugeadm --pool-list
Size Minimum Current Maximum Default
65536 0 0 0
2097152 5 5 10 *
Regarding toolchains, libhugetlbfs for RISC-V builds fine with both
clang and gcc.
[1]: https://github.com/libhugetlbfs/libhugetlbfs/commit/a529598dd256c79799d5e43e6d79146ca15f1c16
Signed-off-by: João Marcos Costa <joaomarcos.costa@bootlin.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Add support for CoreMark benchmark in recipes-benchmark. This
package can be used to benchmark CPU performance in SOC's Application
processor core.
Signed-off-by: Ashwin Prabhakar <ashwin.prabhakar@qti.qualcomm.com>
coremark: append LDFLAGS to TARGET_CC_ARCH to fix QA issue
Signed-off-by: Ashwin Prabhakar <ashwin.prabhakar@qti.qualcomm.com>
coremark: update to Apache-2.0 and LicenseRef-EEMBC-AUA
Update the project license to Apache-2.0 combined with the
EEMBC Acceptable Usage Agreement (AUA) as requested by the maintainer.
This ensures compliance with EEMBC's updated licensing requirements
for CoreMark.
Signed-off-by: Ashwin Prabhakar <ashwin.prabhakar@qti.qualcomm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
fio 3.40 added the commit 4175f4dbec5d ("oslib: blkzoned: add
blkzoned_move_zone_wp() helper function") which uses
FALLOC_FL_ZERO_RANGE which in a musl build is undefined without
including its header.
Backport the upstream fix.
Signed-off-by: Max Krummenacher <max.oss.09@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
CPEs are registered for iperf_project2:iperf2 in addition to
iperf_project:iperf. By changing CVE_PRODUCT to an appends, this ensures
that both iperf and iperf2 CPEs are used for CVE matching.
Signed-off-by: Colin Pinnell McAllister <colin.mcallister@garmin.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
The project Makefile uses a script (sysinfo.sh) to non-atomically generate
two .c files (sysinfo.c, sysinfoc.c) which are then included in the build.
Since the script always overwrites both .c files, the Makefile should only
invoke it once, not twice in parallel. Otherwise the .c files may be
corrupted and cause random build failures in parallel builds.
Requires at least GNU make 4.3, for Grouped Targets support [1].
[1] https://lists.gnu.org/archive/html/info-gnu/2020-01/msg00004.html
Reviewed-by: Silvio Fricke <silvio.fricke@gin.de>
Signed-off-by: Daniel Klauer <daniel.klauer@gin.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Changelog:
- Put an end to the (&*% stupid GCC breaking builds for no valid reason.
Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Changelog:
3.41:
- engines/io_uring: remove unnecessary SQ full check
- io_uring: ensure accurate real_file_size setup for full device access with PI enabled
- Fix: parse.c opt_len() to use minimal distance to delimiter to determine option length
- io_u: fix offset calculation in randtrimwrite
- engines/http: fix file name
- engines/http: Add S3 security token support
- io_u: get io_u from io_u_freelist when TD_FSYNCING
- io_uring CQ reap cleanup
- Add 'filetype' option
- handle out-of-order write completions in verify state (Issue #1950)
- engines/http: Add support for range reads
- Makefile: fix man and share install paths on MacOS
- Sprandom
- Fix mandoc warnings
- fio: fix formats under MIPS64/PPC
- sprandom: Fix several issues found in the sprandom implementation
- t/verify-state.c fixes/improvements
3.40:
- t/read-to-pipe-async: fix -DNDEBUG support
- docs: update docs for verify_mode=compare of io_uring_cmd
- dfs: fix fail to load dfs engine
- Fix spelling error in IO uring engine.
- Fix hang on Windows when multiple --client args are present
- Add important info about http_host and file formatting to s3 example
- oslib: blkzoned: add missing blkzoned_move_zone_wp() stub
Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
When compressing docs, do not save the original file name and
timestamp by default (gzip -n). Make archives be reproducible
at each build
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>