github ColinIanKing/stress-ng V0.22.00
Premday Process Pressurizer

5 hours ago

New stressors

  • dentrycache - negative dentries dentry cache stressor
  • epollmany - many nested epoll file descriptors stressor
  • fp-subnormal - float/double/long double subnormal stressor
  • hugepage - huge page merging and splitting stressor
  • spec-rollback - speculation branch prediction rollback stressor

New options

  • --bad-ioctl-alldev - force exercising all devices (bad-ioctl stressor)
  • --branch-jumps - specify number of branches to perform (branch stressor)
  • --cache-badpage - cache flush on an unmapped page (cache stressor)
  • --copy-file-io-bytes - specify copy-file-range I/O copy size (copy-file stressor)
  • --dentrystat - periodically shows the directory entry cache (global option)
  • --dentry-negative - create negative dentries (dentry stressor)
  • --daemon-bloat option to simulte memory usage (daemon stressor)
  • --dev-alldev - option to force exercising all devices (dev stressor)
  • --no-madvise-opts - disable madvise advise on mmap/munmaps (global option)
  • --ovpn-tunnel - two-endpoint DCO data path (ovpn stressor)
  • --pagescatter-numa - mbind pages to NUMA nodes (pagescatter stressor)
  • --vm-nt - non-temporal store/load option (vm stressor)

Many thanks to the following sponsors of the project (in alphabetical order)

Bruce Underhill (Codethink)
Chris Wayne
Gilbert Morgan
ELISA https://elisa.tech - Platinum sponsor
Premday https://premday.org - Platinum sponsor (NEW)

Sponsorship link: https://github.com/sponsors/ColinIanKing

Notable bug fixes

  • stress-sem-sysv: --verify "corrupted bogo-ops counter" from concurrent counter updates in forked children - #657

  • Makefile: misleading 'readelf' message and removed OBJDUMP variable - #656

  • --fp-misc: bogus values in 'fail:' messages and typo in help text - #645

  • --far-branch: memory mapped file needs x-permission (at least) on Cygwin - #644

  • Possible missed MSG_NOSIGNAL in stress-fd-race - #643

  • --exec: fails if 'program_invocation_name' is used and the program has been found in - #642

Detailed Changelog

Author: Benjamin Leggett

  • core-cpu: enable AVX-512 if the CPU actually has it, not by CPU model assumption

Author: Christian Franke christian.franke@t-online.de

  • Makefile: avoid misleading message 'git: No such file or directory'
  • github workflows: ci-builds: change FreeBSD build from cross to native
  • github workflows: ci-build: update GitHub actions from v4 to v7

Author: Gianmarco De Gregori

  • stress-ovpn: drive the remaining peer-delete reasons
  • stress-ovpn: exercise the tunnel data path over IPv6 as well
  • stress-ovpn: reap each tunnel endpoint with a deadline of its own
  • stress-ovpn: tell the cycle failure reasons apart
  • stress-ovpn: work the peer table from a second process
  • stress-ovpn: let a share of cycles lose the tunnel
  • stress-ovpn: churn the peer table while the tunnel carries traffic
  • stress-ovpn: report the kernel's own per-peer byte counters
  • stress-ovpn: run the tunnel over the DCO TCP transport too
  • stress-ovpn: add --ovpn-tunnel, a two-endpoint DCO data path
  • stress-ovpn: bound the wait for an rtnetlink reply
  • stress-ovpn: gate the stressor on the ovpn uapi, not on the header
  • stress-ovpn: fix wrong entries in the exercises table

Author: Zhaolong Zhang

  • stress-unlink: fix fd leak on hard link paths

Author: Colin Ian King

  • stress-bad-altstack: remove small stack case
  • stress-bad-altstack: use a stack with PROT_NONE guard pages
  • stress-vma: add missing pthread_join post pthread_cancel
  • stress-pseek: add missing pthread_join post pthread_cancel
  • stress-hugepage: add missing pthread_join post pthread_cancel
  • stress-tlb-numa: add missing pthread_join
  • stress-*: fix race in shared s_pids->pid assignment
  • stress-sem-sysv: fix race in shared s_pids->pid assignment
  • stress-copy-file: fix memory leak on error exit path
  • README.md: remove -j 10 from make example
  • stress-kcmp: declare label 'again' only when it is required
  • stress-xattr: improve speed of determining max xattr length
  • stress-fp-subnormal: fix computation random ordering between r0 and r1
  • stress-fp-subnormal: use DBL consts when long double size is same as double for ppc64
  • stress-x86cpuid: add some non-Intel CPUID feature registers
  • core-stack: voidify return from fflush()
  • test/test-libacl: array aio should be acl
  • core-stack: voidify return from printf
  • stress-ng: voidify return from printf
  • stress-fractal: voidify return from printf
  • core-madvise: voidify return from fprintf
  • core-parse-opts: voidify return from fprintf
  • core-resctrl: voidify return from fprintf
  • stress-ng: voidify return from fprintf
  • stress-plugin: voidify return from fprintf
  • Revert "stress-insertionsort: unroll search loop"
  • core-madvise: make qsort string compare function static, use shim_strcmp
  • stress-funcret: use shim wrapped math functions
  • stress-pagescatter: check for HAVE_MPROTECT if mprotect() is being called
  • core-mmap: check for HAVE_MADVISE if madvise() is being called
  • stress-sigsegv: Fix typo, NetNBSD -> NetBSD
  • stress-sigstop: add build time check for SA_SIGINFO
  • stress-daemon: add --daemon-bloat option to simulte memory usage
  • stress-copy-file: add --copy-file-io-bytes option
  • core-madvise: add --no-madvise-opts option
  • stress-branch: initialize branch_jmps to zero
  • stress-fp-subnormal: use DBL consts when long double size is same as double for ppc
  • stress-fp-subnormal: use DBL consts when long double size is same as double
  • stress-hugepage: don't use massive pages for 32 bit systems
  • stress-cachehammer: add missing const on pointer cast
  • Makefile: fix misleading readelf message and removed OBJDUMP variable
  • stress-sysfs: rename os_release to linux_release
  • stress-ovpn: add build time check for HAVE_ATOMIC_STORE_N
  • stress-fp-subnormal: add new stressor to exercise floating point subnormals
  • stress-fp-misc: fix short help typo: "fp_misc" -> "fp-misc"
  • Manual: minor typesetting improvements
  • stress-af-alg-defconfigs: add more crypto configs from Linux 7.2
  • Manual: add note about UDP-Lite being removed from Linux 7.1
  • stress-clone: add CLONE_AUTOREAP clone flag
  • Manual: add more explanation to the --agrressive option
  • bash-completion: add --branch-jumps
  • stress-bad-ioctl: remove division from buf_page1 calculation
  • Manual: Fix missing .TQ in dentrycache title
  • stress-branch: add --branch-jumps option and double branch targets
  • stress-bad-ioctl: break ioctl rd and wr into to functions
  • stress-ng: add hotplug feature flag
  • stress-cgroup: read and write back numeric cgroup file values
  • stress-cgroup: read cgroup files from directory contents
  • stress-dentry: break variable declarations into two lines
  • stress-dev: add --dev-alldev option to exercise all devices
  • stress-bad-iocl: add --bad-ioctl-alldev option to exercise all devices
  • stress-bad-ioctl: improve per-ioctl timeouts
  • stress-bad-ioctl: use random mask on random ioctl commands
  • stress-bitops: fix log2(0) case
  • stress-cpu: add various constifications
  • stress-copy-file: make wr_size const
  • stress-cachehammer: add some variable constifiations
  • stress-binderfs: break variables into multiple lines
  • stress-bad-ioctl: break variables into multiple lines
  • stress-atomic: minor code clean up
  • stress-af-alg: break up declarations across lines
  • stress-acl: break setacl, getacl to separate lines
  • stress-bitops: use builtin to generate optimal log2(n)
  • stress-strnum: use shim_strncmp instead of vanially strncmp
  • core-builtin: add and use built in shim wrapper for strcspn
  • stress-insertionsort: unroll search loop
  • stress-fibsearch: unroll ininitial loop
  • stress-tree: unroll btree data copying loops
  • stress-tree: add RESTRICT hints to btree func args
  • stress-tree: change order of nodes and values in btree
  • all: fix a handful of typos and spelling mistakes
  • stress-zlib: replace 32 bit math with 16 bit for ascii digits generator
  • stress-uprobe: fold nested if statements into one if statement
  • core-parse-opts: remove extraneous space in error message
  • core-cpu-cache: replace " with ' in error message
  • core-affinity: fix grammar (missing ,) in error message
  • core-builtin: add and use built in shim wrapper for strrchr
  • core-builtin: add and use built in shim wrapper for strlen
  • core-builtin: add and use built in shim wrapper for strchr
  • stress-fp: unroll some smaller loops, improves performance
  • core-builtin: add and use built in shim wrapper for strstr
  • core-builtin: add and use built in shim wrappers for strcmp and strncmp
  • Makefile.config: add build-time detection for builtin strcmp and strcmp
  • core-ftrace: optimize ftrace parsing
  • stress-chroot: fix failure return variable ret defaults
  • stress-bubblesort: let compiler select number of loops to unroll
  • stress-bad-altstack: exercise illegal last page as stack address
  • stress-sigpipe: rework nested if statements into 1 if statement
  • core-helper: replace stress_redo_fork with stress_retry_fork
  • stress-vm: Fix spelling mistake "stroes" -> "stores"
  • README.md: update contributor list
  • stress-signet: ensure t is initialized to 0.0 for finish exit path
  • stress-mmaptorture: ensure n is initialized for mappings_unmap exit path
  • stress-lockbus: initialize count and double at declaration time
  • stress-opcode: fix CLOBBERED for ops_ptr for older gcc flavours
  • stress-dentrycache: use shim_strlcat instead of strlcat
  • stress-*: clean up messages, use '%s' for filenames, make messages more consistent
  • stress-shm: make child always send a termination message on return
  • stress-shm: add more pipe related information in read errors
  • stress-cgroup: add more information on why fsopen failed
  • Manual: clean up some stressor titles
  • Makefile: don't echo LDFLAGS, it's not useful
  • Makefile: add duplicated all: target
  • Makefile: replace MACHINE with ARCH, remove Makefile.machine
  • stress-atomic: fix incorrect 2nd arg of atomic_store_n
  • stress-hugepage: use per-arch allocation sizes for best match for THP
  • stress-*: remove hot-package flag from stressors that are not so hot
  • stress-pagescatter: show free memory resources on mmap failure
  • stress-spec-rollback: show free memory resources on mmap failure
  • core-memory: return 0 when memory info is correctly fetched
  • stress-hugepage: show free memory resources on mmap failure
  • test/test-atomic_load_n: ensure val is read
  • stess-vm: remove redundant initialization of ptr
  • test/test-atomic_store_n: fix incorrect 2nd arg of test call
  • stress-dentrycache: stress_dentrycache_stats_max: make arg d1 const
  • stress-ng: fix pause option, actually get the setting
  • README.md: update contributor list
  • stress-hugepage: optimize method offset functions
  • stress-hugepage: minor code clean ups
  • stress-hugepage: add --hugepage-method option to select pages to split on
  • stress-hugepage: fix typos in short help
  • stress-spec-rollback: clean up pedantic build warning
  • bash-completion: add missing completion strings
  • stress-dentrycache: add short help for dentrycache-method option
  • core-opts: remove extraneous newline
  • stress-hugepage: add more feature flags
  • stress-hugepage: clean up initialization options
  • stress-hugepage: add a huge page merging and splitting stressor
  • stress-epollmany: fix short help
  • stress-dentrycache; use shim_getxattr instead of getxattr
  • stress-epollmany: many nested epoll file descriptor stressor
  • CITATIONS.md: add another citation reference
  • stress-spec-rollback: fix up feature flags
  • stress-led: unconstify token
  • stress-spec-rollback: add new speculation branch predicition rollback stressor
  • core-mwc: add stress_mwc128 for uint128 types, refactor code
  • stress-dentrycache: rework error return for open accesses
  • stress-rotate: remove loop unrolling
  • stress-ng: fix jobfile timeout handling
  • Manual: add missing SIGSEGV in rlimit stressor description
  • stress-regs: add bitflip for x86 mmx and sse registers
  • Manual: Replace "once" with "when" to clarify actions
  • Manual: update number of branches taken for --goto stressor
  • stress-dentrycache: add ENOENT error verification
  • stress-dentrycache: periodically get latest maximum dentry stats
  • stress-dentrycache: fix typo "allocted" -> "allocated"
  • Revert "stress-dentrycache: remove unncessary yield points"
  • core-vmstat: add --dentrystat option
  • stress-ng: use relaxed lock acquire on metrics find
  • stress-dentrycache: remove unncessary yield points
  • core-filesystem: improve stress_fs_dentry_state_get to get all fields
  • stress-dentycache: move count increment after mask check
  • stress-dentrycache: don't use hex chars, use first 16 alphabet letters
  • core-filesystem: move dentry-state reading into core-filesystem
  • stress-dentrycache: use getxattr to access a negative dentry
  • stress-dentrycache: exercise dentry cache using negative dentries
  • Makefile: fix typo "built" -> "build"
  • stress-quota: typedef the struct shim_nextdqblk_t
  • stress-link: remove two empty lines
  • stress-l1cache: unconstify val, it's modified in stress_l1cache_ln2
  • stress-goto: double goto targets, doubles branch misses
  • stress-dir: add negative dentries access to directory
  • core-shim: simplify the shim_unvolatile_ptr implementation
  • stress-bubblesort: minor variable re-ordering optimization
  • core-shin: simplify the shim_unconstify_ptr implementation
  • stress-affinity: make parent change child cpu affinity in pin mode
  • stress-xattr: exercise large/small xattr size transitions
  • stress-xattr: bail out of xattr creation loop when ENOSPC is reached
  • Manual: add sporsor link
  • stress-cache: ensure n_flags is initialized
  • stress-atomic: account for unimplemented atomic ops
  • core-mmap: constify various function arguments
  • core-limit: stress_limit_set: constify argument resource
  • core-helper: update prototype stress_log2
  • core-ignite-cpu: constify argument in static helper function
  • core-ftrace: constify arguments in static helper functions
  • core-helper: stress_log2: constify arguement n
  • core-helper: stress_uint64_to_str: constify arguements
  • stress-pagescatter: fix end pointer calculation
  • core-ops: add empty lines between different stressor options
  • stress-cache: add --cache-badpage option to cache flush on a bad page
  • core-mmap: replace division with shift
  • stress-pagescatter: constify n
  • stress-cache: remove space in OPT_cache_clwb field
  • stress-cache: perform bad page cache flushing less frequently
  • core-shim: improve cases covered for shim_cacheflush
  • Manual: update memthrash copy128 and copy128nt descriptions
  • stress-pagescatter: add register hint on pointer ptr
  • stress-memrate: update bogo-ops on each memrate method invocation
  • core-builtin: remove duplicate shim_lgammal, improve lgammal and tgammal
  • stress-vm: add wrappers for systems w/o stress_nt_{store|load} helpers
  • stress-timermix: fix GNU/HURD build failure
  • CITATIONS.md: add two more references
  • stress-fp-misc: fix error message values for infinite and zero fpclassify calls
  • stress-fp-misc: fix typo in fp-misc-ops short help
  • Makefile: add Intel icx compiler alternative code for a range of CPUs
  • stress-dentry: add --dentry-negative option to create negative dentries
  • stress-dentry: add metrics on negative and used dentries
  • stress-opcode: add more x86 prefix opcodes
  • stress-vm: add --vm-nt non-temporal store/load option
  • stress-atomic: add load_n and store_n atomic operations
  • stress-spinmem: use load_n and store_n atomics
  • stress-pagescatter: fix { } on if statement
  • stress-ng: rework clobbering macros
  • stress-far-branch: add missing S_IXUSR on mmap'd file open
  • stress-fd-race: use MSG_NOSIGNAL for sendmsg where possible
  • stress-pagescatter: add --pagescatter-numa option
  • stress-memthrash: drop copy128nt back to copy128 if non-temporal load/stores not available
  • stress-memthrash: add a non-temporal load/store copy128 variant
  • stress-ng: use stressor_info_t instead of struct stressor_info
  • core-lock: use stress_lock_t instead of struct stress_lock
  • core-helper: fix typo in function prototype args
  • stress-ng: minor stress_memory_info code clean-ups
  • core-helper: stress_load_average_get: pass load average as a type
  • core-cpu-freq: pass cpu freq data in a stress_cpu_freq_get_t type
  • core-helper: use executable name /proc/*/exe for Cywgin
  • core-helper: check for invalid filename
  • stress-exec: use a more meaningful file name in the error messages
  • debian/control: linux-any is required for libnl-3-dev

Don't miss a new stress-ng release

NewReleases is sending notifications on new releases.