Stress Ng Versions Save

This is the stress-ng upstream project git repository. stress-ng will stress test a computer system in various selectable ways. It was designed to exercise various physical subsystems of a computer as well as the various operating system kernel interfaces.

V0.17.08

2 weeks ago

stress-ng V0.17.08 "consummate cpu crusher"

New stressors:

  • fractal stressor (Naïve concurrent implementations of Mandelbrot and Julia set fractal generators)
  • prime stressor (Prime search using GNU Multiple Precision Arithmetic Library for large integers)
  • unlink stressor (Exercise concurrent racy unlinking of files)

New options:

  • --yield-procs to specify number of child processes per stressor
  • --prime-start N option to specify starting point of search
  • --swap-self option to force self process pages out
  • --fork-pageout option to force pages to be paged out
  • --prime-progress option to periodically show prime finding progress
  • --get-slow-sync option to force get stressor system calls to be called in sync

Important Fixes:

  • Fix page overflow on edge cases of non-libc mergesort
  • Ensure system call and test error failures are fully propagated to error status at end of stressors

Detailed Changelog:

[ruihongw]

  • fix spelling of lsm_list_modules in Makefile.config

[Yiwei Lin]

  • Fix unterminated cpu-stress if non 0% or 100% load

[Colin Ian King]

  • Makefile: bump version
  • stress-epoll: fix missing space after comma in error messages
  • README.md: add another bug found by stress-ng
  • stress-sigfpe: report SIGILL trap information when --verify is used
  • stress-sigfpe: handle unexpected SIGILL signals
  • stress-rtc: silently ignore RTC sys read EINVAL errors
  • stress-rtc: don't fail on ENOENT errors
  • stress-tsearch: remove double comma
  • stress-rtc: fix error handling, don't fail on EINTR or EPERM
  • stress-mergesort: remove MAP_32BIT
  • stress-mergesort: fix out of bounds copy
  • stress-unlink: use shim'd versions of fsync and fdatasync
  • stress-swap: ensure opt_set_funcs and stress_set_swap_self are declared for all builds
  • stress-io: fix build issues when HAVE_SYNCFS is not defined
  • core-out-of-memory: move #define of WAIT_TIMEOUT to fix non-linux builds
  • stress-judy: clean up variable shadowing warning
  • stress*: Add compute to the --class option for high compute stressors
  • stress-prime: fix spelling mistakes in comments
  • stress-factal: fix spelling mistake of Mandelbrot
  • stress-ng: fix --permute with checksum verification enabled
  • stress-fractal: minor tweaks to reduce front end delays and improve core utilization
  • stress*: Add search to the --class option for searching stressors
  • Manual: remove duplicated comma
  • stress-fault: fix fd leak on error path
  • stress-fractal: add Mandelbrot and Julia set fractal stressor.
  • stress-*: clean up errno handling
  • core-ftrace: remove redundant initialization of pointer num
  • core-klog: remove redundant initialization of pointer msg
  • stress-yield: constify variable residual
  • Manual: waitcpu: add more per-processor notes for waiting instructions
  • stress-yield: add --yield-procs option, specify child processes per stressor
  • stress-forkheavy: fix typo in comments forke -> fork
  • Makefile: improve toolchain detection, fixes scan-build builds
  • stress-pidfd: ensure return code in rc is returned to parent
  • stress-mq: ensure child rc status is returned to parent
  • stress-judy: re-work rc status so the default is EXIT_FAILURE
  • stress-hsearch: ensure rc is set to EXIT_SUCCESS for success path
  • stress-file-ioctl: assign rc to EXIT_NOT_IMPLEMENTED and not ret
  • stress-close: remove redundant assignments to rc
  • core-mwc: remove unused 32 bit mwc implementation
  • Makefile.config: fix float checks, need LIB_MATH not LIB_M
  • stress-prime: add --prime-start N option to specify starting point of search
  • stress-fork: add #ifdef check around MADV_PAGEOUT
  • stress-swap: add --swap-self option to force self process pages out
  • stress-fork: make --fork-pageout more aggressive, do all maps
  • stress-prime: remove empty line
  • stress-fork: add --fork-pageout option to force pages to be paged out
  • stress-prime: add hourly prime rate in --prime-progress output
  • README.md: update contributors list
  • stress-prime: move variables and a function to clean up build warning
  • stress-enosys: fix typo: SYS_lsm_modules -> SYS_lsm_list_modules
  • Manual: clarify the time between each prime progress update
  • core-builtin: fix macros and shims
  • Manual: add new --primes-progress option, fix prime-ops name
  • core-log: don't report timestamp if localtime_r does not exist
  • stress-prime: add --prime-progress option to periodically show prime finding progress
  • stress-prime: add long integer prime computations stressor
  • stress-factor: fix short description of stressor
  • stress-unlink: add end of test check in link phase, add missing deinit state
  • stress-unlink: make file syncs less frequent
  • core-config-check: minor re-phrasing of scaling governors note
  • stress-unlink: remove some whitespaces
  • stress-unlink: use random open flags
  • stress-unlink: add occasional fd sync'ing and data syncing
  • Manual: correct the --vm-bytes description.
  • stress-unlink: add new stressor to exercise concurrent racing unlink calls
  • stress-dev: add a few more HID specific ioctls
  • stress-dev: add linux frame buffer /dev/fb* ioctl exercising
  • core-version.h: wrap macro parameters with ( )
  • core-io-priority: wrap macro parameters with ( )
  • core-builtin: wrap macro parameters with ( ), align macros
  • Manual: replace ',' with '|' in the --prio-inv-policy option
  • Manual: replace ',' with '|' in --fd-fork-file option
  • core-builtin: fix brackets on shim'd helpers shim_ccosl and shim_csinl
  • stress-get: add --get-slow-sync option to force get system calls to be in sync
  • stress-zlib: use shim wrapped sin function
  • stress-remap: remove empty line
  • stress-monte-carlo: use shim'd math functions
  • core-builtin: add hyperbolic sin, cos float and double shim wrappers
  • stress-*: constify variables
  • core-helper: remove duplicated null check on gpu_freq
  • stress-*: ensure EXIT_FAILURE is returned on failures
  • stress-sockdiag: rename rc to ret and ret to rc
  • stress-cacheline: ensure EXIT_FAILURE is returned on data corruption
  • stress-bsearch: ensure EXIT_FAILURE is returned on data mismatches
  • stress-ng: set success flag to false on EXIT_SIGNALED exits
  • stress-bitonicsort: ensure EXIT_FAILURE is returned on data mismatches
  • stress-bigheap: ensure EXIT_FAILURE is returned on memory failures
  • stress-affinity: remove space
  • stress-matrix-3d: ensure EXIT_FAILURE is returned on data mismatch
  • stress-matrix: ensure EXIT_FAILURE is returned on data mismatch
  • stress-ng: fix missing FAILED flag increment for EXIT_SIGNALED state
  • stress-fma: increment b in add231 to force use of fma instruction
  • stress-filename: make static array posix_allowed const
  • stress-acl: make static array stress_acl_tags const
  • stress-workload: add some constifications and UNLIKELY on an if
  • stress-io-uring: improve termination by enabling various flags
  • core-out-of-memory: give at least 2 minutes before giving up waiting for OOMable child processes
  • stress-ng: bail out with EXIT_NO_RESOURCE on sched_settings_apply call
  • stress-inotify: replace __s32 with int32_t

V0.17.07

1 month ago

stress-ng V0.17.07 "trusty task trasher"

Key Highlights:

  • New powmath stressor (power math functions)
  • New expmath stressor (exponent math functions)
  • New logmath stressor (logarithmic math functions)
  • New LSM stressor (exercise Linux LSM lsm_list_modules and lsm_get_self_attr system calls)
  • New statmount stressor (exercise Linux statmount and listmount system calls)
  • New --fma-libc option to use libc fma functions (if available)
  • New --memhotplug-mmap option to exercising mmap/munap during memory hotplugging
  • New walking flush vm stressor method to walk through memory doing writes followed by cache flushes
  • New --mmap-stressful option to enable all --mmap options to make mmap stressor more stressful

Fixes:

  • Porting fixes to support modern Solaris systems
  • Improve vecshuf performance (regression due to using -O3 on gcc on vec ops)

Detailed changelog:

stress-ng (0.17.07-1) unstable; urgency=medium

[Stian Onarheim]

  • core-stressors.h: Sort the stressor list

[Amit Singh Tomar]

  • stress-vm: fix the stress_vm_check argument name

[Erik Stahlman]

  • Remove write potentially outside of buffer

[Colin Ian King]

  • Makefile: bump version
  • Manual: fix table T{ T} around --eigen-method add-double
  • core-shared-heap: double size of shared heap allocation slab
  • core-helper: move gpu_freq null check to start of function stress_get_gpu_freq_mhz
  • stress-zlib: negative read size check
  • core-helper: move null ptr checks earlier in stress_get_meminfo
  • core-helper: add #else path in stress_get_load_avg
  • stress-fma: voidify return from stress_get_setting call
  • core-helper: add endianness information
  • stress-pty: break out of loop if EINTR occurs on pty open
  • stress-access: set errno to 0 before access calls
  • stress-filename: ignore ENOTSUP failures
  • stress-msyncmany: break out of test loop if failed more than 5 times
  • stress-filename: add ENOSUP error check for Solaris
  • stress-clock: ignore EINTR for clock_nanosleep for Solaris
  • stress-clock: ignore EINTR for clock_gettime for Solaris
  • Add build check and use <sys/mkdev.h> for makedev() macro
  • Makefile: enable compile/link garbage collection when GARBAGE_COLLECT is set to 1
  • stress-powmath: increase precision for float tests sum and result to double
  • stress-logmath: increase precision for float tests sum and result to double
  • stress-expmath: increase precision for float tests sum and result to double
  • stress-fma: munmap pfma and not fma
  • stress-x86syscall: make function wrap_dummy static
  • core-helper: make function stress_fs_magic_to_name static
  • stress-powmath: compare floating point values using difference and precision
  • stress-logmath: compare floating point values using difference and precision
  • stress-expmath: compare floating point values using difference and precision
  • stress-enosys: fix system call name __NR_lsm_list_modules
  • README.md: update contributor list
  • Makefile.config: break functions into 1 line entries and sort them
  • Makefile.config: break types into 1 line entries and sort them
  • Makefile.config: break cpufeatures into 1 line entries and sort them
  • Makefile.config: rename *_WCHAR to *_WCHAR_H to match header naming
  • Makefile.config: break headers into 1 line entries and sort them
  • core-helper: fix error return code, should be EINVAL
  • stress-powmath: remove redundant cast on sum addition
  • stress-expmath: remove redundant cast on sum addition
  • stress-logmath: remove redundant cast on sum addition
  • stress-cgroup: add missing wait for each fork'd child
  • core-helper: make stress_fs_magic_to_name static
  • core-time: manually inline stress_timespec_to_double into code
  • core-perf: make stress_perf_stat_succeeded static
  • stress-x86syscall: remove dummy_x86syscalls
  • Makefile: add linker garbage collection to remove unreferenced sections
  • core-helper: add some argument sanity checking
  • stress-syscall: add maximum system call time in nanoseconds
  • stress-syscall: add lsm_list_modules and lsm_get_self_attr system calls
  • stress-enosys: add lsm_list_modules and lsm_get_self_attr system calls
  • stress-powmath: add hypotenuse functions
  • stress-fma: disable FP_FAST_FMA, FP_FAST_FMAF for now
  • stress-mathlog: add logb, logbf and logbl exponent get libc functions
  • stress-fma: add the --fma-libc option to use libc fma functions
  • README.md: update number of tests
  • stress-powmath: add power maths function exercising
  • stress-vecshuf: for x86, reduce optimization levels to avoid STLF
  • stress-vnni: add build time check for target clone avxvnni
  • stress-memhotplug: make variable max non-clobberable by longjmp
  • core-target-clones: remove need for gcc version check
  • stress-vecshuf: remove OPTIMIZE3 setting
  • stress-expmath: add exponential maths function exercising
  • README.md: add a couple more paper references
  • stress_vm_walking_flush_data: fix buffer overflow on last 7 bytes
  • README.md: update contributors list
  • stress-logmath: add logarithmic maths function exercising
  • README.md: Add another publication link
  • memhotplug: add --memhotplug-mmap option
  • stress-prio-inv: ensure parent has higher priority than children
  • stress-prio-inv: break kill and wait into separate phases
  • README.md: add missing newline
  • README.md: add some more upstream linux git commit references
  • stress-acl: fix typo in unimplemented_reason string
  • stress-lsm: exercise new LSM system calls lsm_list_modules and lsm_get_self_attr
  • core-cpu: remove trainling white space
  • stress-statmount: Add new stressor to exercise statmount and listmount system calls
  • stress-file-ioct: exercise FS_IOC_GETFSSYSFSPATH
  • stress-file-ioctl: add FS_IOC_GETFSSYSFSPATH ioctl
  • stress-vm: add walking memory flush stress method
  • core-cpu: add a couple more obscure CPU id strings
  • stress-monte-carlo: add area of a unit squircle
  • kernel-coverage: add --mmap-stressful option
  • stress-malloc: add malloc_usable_size allocation size verification
  • Makefile.config: filter out -Werror from CFLAGS
  • core-perf: remove duplicated "Cgroup Switches" event

V0.17.06

2 months ago

New features:

  • New fd-fork stressor, force copying of tens of thousands of file descriptors on fork() system calls
  • New bitonicsort stressor: sort 32 bit integers using bitonic sort, exercises integer compare, copying/cache/memory.
  • Add more signals in the nested signal signest stressor
  • New --progress option to show --seq stressor progress and expected end of run time
  • Add Arrowlake and Pantherlake CPU support for target clones gcc optimizations
  • Add IRQ tasklet entry/exit events, IPI Raise event, swiotlb event to --perf option
  • Add --crypt-method option to allow crypt stressor to be selected
  • Add --fork-unmap option to fork stressor to force unmapping of shared libs to speed up forks
  • Add --fpunch-bytes option to fpunch stressor to specify fpunch file size
  • Add --vforkmany-bytes option to specify mmap size
  • Add NUMA hit/miss metrics to numa stressor

Fixes:

  • Fix aiol stressor race condition on termination of pending I/Os
  • Fix race on peterson stressor with modern out-of-order execution ARM CPUs

Detailed changelog:

[Hsieh-Tseng Shen]

  • Manual: fix a few typos

[Colin Ian King]

  • Makefile: bump version
  • stress-fd-fork: fix comment for STRESS_FD_DEFAULT
  • stress-fd-fork: fix spelling mistake "discriptors" -> "descriptors"
  • test/test-utime: zero buf
  • test/test/test-pthread-setaffinity-np: zero cpuset
  • stress-fork: voidify pid
  • Makefile.config: ensure all CONFIG_LDFLAGS are passed through LIB_ORDER filter
  • stress-sigsegv: ignore SEGV_ACCERR error check on OpenBSD
  • stress-hsearch: typedef ACTION if we don't have native hsearch support
  • Makefile.config: workaround a make issue on Nixos, add empty echo in loop
  • stress-aiol: fix interrupted or end of stressing aiol waits with -1 return
  • stress-peterson: add mfence to fix failures on out-of-order ARM cpus
  • stress-pci: report untested PCI rates as "unknown" rather than 0.00
  • stress-ng.h: only define _FILE_OFFSET_BITS if it is not defined
  • stress-signest: add some more signals, sort them in name order
  • Makefile: add --cache-enable-all for slow-test-all and verify-test-all
  • stress-chroot: fix placement of colon in chroot escape message
  • stress-ng: add a few more percent wiggle room on end of run estimate
  • stress-stream: improve memrate message
  • stress-mq: add note to increase /proc/sys/fs/mqueue/queues_max for linux
  • stress-kvm: report KVM kernel API as a debug message
  • stress-dev: add notes about running as root to exercise more devices
  • Makefile: add --progress and remove --verbose from verify-test-all and slow-test-all
  • stress-mlock: remove extranous space in debug message
  • stress-fd-fork: report approx number of fds
  • stress-fd-fork: report how many fds were closed
  • core-shim: add warning disabling pragma on extern stime declaration
  • stress-fork: handle 32/64 bit address for 32 bit systems
  • stress-enosys: don't exercise > 32 bits for 32 bit systems
  • stress-exec: only use MAP_STACK if it is defined
  • stress-memfd: remove duplicated declaration of fd
  • stress-cpu-online: remove duplicated declaration of variable cpu
  • stress-monte-carlo: declare stress_mc_supported for HAVE_ARC4RANDOM
  • stress-fork: voidify unused arg fork_unmap for non-linux builds
  • stress-cache: voidify cache related flags and mask
  • stress-dev: swap calloc arguments to the correct way around
  • core-target-clones: add Arrowlake and Pantherlake CPU support
  • Dockerfile: remove kmod and xxhash
  • Dockerfile: add mpfr and judy from community repos
  • stress-sigsegv: methodically exercise reads from all VM address range
  • core-perf: add swiotlb perf event and bump event count up as we are running low
  • core-perf: add IRQ tasklet entry/exit metrics
  • core-perf: add IPI Raise event
  • stress-resources: only declare ppid if HAVE_PIDFD_OPEN is defined
  • stress-cpu-online: ensure cpu is initialized
  • core-klog: ignore cpu affinity warnings, these are benign
  • stress-cpu-online: round-robin CPUs for instances 1 and 2
  • stress-cpu-online: always try a different cpu and don't try an already offlined cpu
  • stress-ng: Fix net_port_map lock failure
  • stress-cpu: don't check for onlining failure for more than 1 instance
  • stress-bitonic: rename bionicsort_count to bitonic_count
  • stress-shellsort: remove redundant 8 bit sort
  • stress-bitonicsort: Add another sorting stressor
  • stress-cpu-online: run a child process that tries to pin itself to offlined CPU
  • core-resouces: open another fd, based on the stdout of parent pid
  • stress-memfd: don't populate memfd mapped pages
  • stress-memfd: exercise each flag per iteration
  • stress-memfd: change memfd_fds to a int32_t
  • stress-memfd: create some filenames just one
  • stress-memfd: use close_range on fds, fall back to loop'd fd close
  • stress-enosys: add 24, 40, 48, 56 bit syscalls
  • stress-malloc: add some SEGV action information
  • stress-fd-fork: add --fd-fork-file option to specify file to dup
  • stress-fd-fork: add metrics on time to open all fds and open 10000 files per loop
  • stress-fd-fork: add --fd-fork-fds option to specify number of files to open
  • Manual: add note about fd-fork bogo-op rate dropping over time
  • Manual: recommend using the maxtrix-3d stressor for cache misses
  • stress-ng: avoid potential division by zero by total_run
  • stress-fd-fork: add a file descriptor copying via fork stressor
  • Manual: Fix typo "maybe" -> "may be"
  • stress-crypt: add --crypt-method to allow encryption method to be selected
  • Manual: update crypt stressor with list of all crypt methods used
  • stress-memfd: fix #endif, removed the wrong one
  • stress-memfd: remove debug #ifdef's
  • stress-memfd: make random madvise calls an optional opt-in with --memfd-madvise
  • stress-memfd: add in opt-in zap pte test option --memfd-zap-pte
  • stress-memfd: include <linux/memfd.h> for MEMFD huge page flags
  • TODO: add IP_LOCAL_PORT_RANGE
  • stress-ng: add estimated completion time for --progress option
  • stress-ng: add a --progress option to show --sequential run progress
  • stress-fork: disable --fork-unmap if --fork-vm is also enabled
  • stress-fork: remove stress_set_proc_state so libbsd can be removed
  • stress-fork: don't remove readable pages that may be used in dlsym searches
  • stress-syscall: only define SHADOW_STACK_SET_TOKEN if it's not defined
  • stress-fork: add --fork-unmap option to force unmapping of shared libs
  • Makefile.config: specify library link ordering
  • stress-clone: force lazy bind libc functions to be bound before clone is run
  • stress-stream: fix collapse stream-madvise option to use MADV_COLLAPSE
  • stress-fpunch: add --fpunch-bytes option to specify fpunch file size
  • stress-fork: force lazy bind libc functions to be bound before child is run
  • stress-fork: do immediate _exit() call for short lived processes
  • stress-fork: make help clearer on process creation naming
  • core-thrash: no need to snprintf a fixed path name, clean up code
  • stress-fork: align info array to cacheline
  • stress-skiplist: add bounds check on ln2n
  • Manual: fix misalignment of --misaligned-ops option
  • stress-cache: zero buffer before benchmarking read/write rates
  • stress-cache: correctly report the cache flags being used
  • stress-vforkmany: add --vforkmany-bytes option to specify mmap size
  • core-mincore: add missing --page-in OPT_FLAGS_MMAP_MINCORE check
  • stress-vforkmany: use waste_size instead of WASTE_SIZE for mmap'd waste region
  • stress-numa: add support for MPOL_WEIGHTED_INTERLEAVE
  • core-helper: use program_invocation_name to get program name
  • stress-monte-carloc: add arc4 cryptographically-secure pseudorandom generator
  • stress-numa: add NUMA hit/miss metrics
  • stress-context: make context regions smaller, move stack to new mmap'd area

V0.17.05

3 months ago

New Features:

  • New Monte Carlo computational stressor (--monte-carlo)
  • New time warp clock reading and time skew stressor (--time-warp)
  • New Priority Inversion scheduler stressor (--prio-inv)
  • New huge integer factorization stressor (--factor)
  • Extra device ioctl stressing in dev stressor (/dev/kvm, /dev/uinput, /dev/input, /dev/random, /dev/rtc)
  • New NUMA stressor options (--numa-bytes, --numa-shuffle-node, --numa-shuffle-addr)
  • stress-x86syscall: add geteuid, getgid and getuid
  • replace strlcpy with safer strscpy
  • New mmap stressor options (--mmap-write-check, --mmap-madvise, --mmap-mergeable,

Optimizations:

  • AVL tree optimization (~7% faster)
  • Added Link Time Optimization
  • Random number generators: optimize and generalize mwc*modn() functions

Fixes:

  • rseq stressor now uses glibc rseq struct

Detailed Changelog:

[Nikolas Kyx]

  • stress-syscall: fix cmp_test_duration() return value

[Colin Ian King]

  • Makefile: bump version
  • Makefile: add core-asm-loong64.h to HEADERS
  • stress-atomic: make atomic region 64 bytes wide, step through it
  • Manual: update caveat concerning bogo-op rates
  • Manual: update date
  • stress-unshare: silently ignore EACCES returns
  • core-pragma: drop packed gcc version to 9.4
  • Manual: fix a couple of typos
  • stress-prio-inv: fix typo "cheduling" -> "scheduling"
  • core-helper: fix some spelling mistakes
  • stress-landlock: ensure all set bits work in mask and zero ruleset_attr before use
  • stress-sysfs: ignore SIGKILL as bad signal
  • stress-numa: fix one more %zu format specifier
  • stress-numa: use %zu format specifier for size_t
  • stress-monte-carlo: don't use getrandom for Solaris, it's very slow
  • core-vmstat: only account for CP_SPIN on OpenBSD if it exists
  • stress-stack: make rc no-clobberable, cleans up gcc 4.9.2 warning on kfreebsd
  • core-shim: disabled process_mrelease for SPARC
  • stress-monte-carlog: only define stress_mc_no_seed if it is required
  • core-perf: make filemap page cache description match existing style
  • stress-numa: report per instance mapping size to 1 decimal place
  • stress-numa: add --numa-bytes option to specify total memory size
  • kernel-coverage: add numa addr and node shuffling options
  • stress-numa: add --numa-shuffle-addr and --numa-shuffle-node
  • stress-numa: ensure pages get re-assigned to different nodes
  • stress-tree: disable warnings on misaligned pointer access
  • stress-numa: use stress_mmap_set_light to touch pages
  • core-pragma: add checks for gcc 10
  • core-pragma: add missing \
  • stress-monte-carlo: use generic supported and no_seed functions
  • stress-dev: add include ifdefs around stress_dev_ptp_linux
  • stress-dev: add macro VOID_ARGS to voidify common function args
  • stress-dev: remove UNEXPECTED checks, add more linux guarding
  • stress-dev: add some kvm ioctls
  • stress-dev: exercise UI_GET_VERSION ioctl on /dev/uinput
  • stress-dev: add RNDGETPOOL ioctl on /dev/random
  • stress-dev: exercise /dev/input/event*
  • stress-dev: add RTC RTC_IRQP_READ32 ioctl
  • stress-dev: add linux /dev/rtc ioctls, delay on -EBUSY
  • stress-mmap: add missing MMAP_SYNC flag
  • stress-ng.h: disable _FORTIFY_SOURCE when using PCC
  • stress-ng.h: disable _FORTIFY_SOURCE when using TCC
  • core-mmap: remove unused variable val
  • stress-sigsegv: make pointers uint8_t * to clean up void * pointer addition warnings
  • Makefile: don't enable -fipa for icc
  • stress-tree: allow tree node packed structures where packed is allowed on x86
  • core-pragma: add -Waddress-of-packed-member to WARN_OFF macro
  • core-attribute.h: add PACKED macro for attribute packed
  • stress-tree: move u into it's own typedef and make tree node 8 byte aligned
  • stress-tree: avl: remove redundant assignments to taller
  • stress-tree: avl: add pointer r as a short cut for (*root)
  • stress-tress: avl: make variable taller a register
  • stress-tree: avl: remove sub_taller variable
  • stress-tree: avl: replace (*root) with node on new node
  • stress-tree: don't pass taller flag in avl_insert
  • Add build-time test for packed attribute
  • README.md: add DEBUG=1 make build instructions
  • stress-monte-carlo: add some more complex integrals to compute
  • stress-monte-carlo: fix ppc64 darn and add missing rand support check
  • stress-rseq: add check for __builtin_thread_pointer()
  • stress-monte-carlo: add Monte Carlo computation of pi and e
  • stress-rseq: remove debug '| 1' for sys/rseq.h include
  • stress-rseq: remove trailing white space
  • stress-rseq: remove invalid rseq test cases
  • stress-rseq: remove rate debug
  • stress-rseq: move critical section count into a stressor metric
  • stress-rseq: rework to work with rseq in glibc
  • stress-sigsegv: fix exact fault address check
  • stress-x86syscall: add geteuid, getgid and getuid
  • README.md: add another citation link
  • stress-prio-inv: remove undef of PTHREAD_MUTEX_ROBUST
  • stress-prio-inv: remove prio default case from switch
  • stress-prio-inv: add build time check for pthread_mutexattr_setrobust
  • stress-prio-inv: add build-time checks for various SCHED_* support
  • stress-prio-inv: update reason why stressor is not implemented
  • stress-prio-inv: move pthread_mutex_t dependant types
  • Add shim for dirent d_type
  • stress-landlock: shift left with correct sized integer
  • Makefile.config: cater for empty $LIB_BSD string
  • stress-time-warp: add a time/clock time warp checking stressor
  • stress-prio-inv: match order of STRESS_PRIO_INV_POLICY_* with stress_prio_inv_policies
  • stress-mmap: add --mmap-stressful
  • stress-prio-inv: add --prio-inv-policy to select scheduler policy
  • stress-prio-inv: use FIFO sched by default
  • README.md: add Nikolas Kyx to contributors list
  • Add new prio-inv (priority inversion) stressor
  • stress-mmap: add --mmap-slow-munmap option
  • core-perf: add some more trace events
  • stress-landlock: only exercise flags that are usable
  • core-shim: replace strlcpy with safer strscpy
  • stress-landlock: add more landlock access flags, add check for usability
  • core-mwc: optimize and generalize mwc*modn() functions, remove pwr2 helpers
  • stress-mmap: use non-mod random mwc functions for faster index generation
  • stress-mmap: add new option --mmap-write-check for opt-in write + checks
  • stress-factor: up the maximum digit size to 100000000 digits
  • stress-mmap: add --mmap2 option in short help
  • kernel-coverage: add new mmap options to mmap stress cases
  • stress-mmap: add opt-in randomized madvise on pages
  • core-mmap: touch + check just start of each page rather than filling them
  • debian/control: add libgmp-dev for factor stressor
  • README.md: update number of stressors (320+) and add loong64 arch
  • stress-mmap: touching pages should be using sz and not context->mmap_bytes
  • stress-mmap: add --mmap-mergeable option
  • stress-factor: clean up indentation
  • stress-mmap: reduce affect of mumap on stressor
  • stress-factor: add factorization stressor using libgmp
  • core-mmap: replace add/sub with xor
  • core-mmap: remove need for shift and compare, replace with add/sub
  • Manual: add "next generation" reference in title to explain why it is called stress-ng
  • core-mmap: replace compare + check for each value with 32 sum + check
  • Manual: add missing System V semaphore stressor title
  • stress-mmapfiles: ensure fd is closed on loop break paths
  • stress-mmapfiles: add ENOMEM check to bail out early
  • Manual: add notes to --mmapfiles stressor
  • stress-mmapfiles: add missing , between literal strings
  • stress-mmapfiles: remove ANONYMOUS mapping flag and use fd in mmap
  • stress-mmapfile: add file based memory mapping stressor
  • stress-cpu-online: move stressor back onto newly online'd cpu
  • stress-affinity: let main stress process reap all children
  • core-vmstat: Add OpenBSD implementation of stress_get_cpu_ghz
  • core-vmstat: add vmstat support for OpenBSD
  • stress-crypt: fix FreeBSD build issues
  • README.md: add note about snaps of stress-ng
  • core-shim: add missing shim block comments
  • Makefile: add support for Link Time Optimization
  • stress-ng: keep track of metrics overflow, report so.
  • stress-af-alg: add metrics for each af-alg crypto type
  • README.md: add another link to a kernel issue found by using stress-ng
  • stress-sysbadaddr: add Linux 6.8 lsm system calls
  • stress-waitcpu: add support for loong64 by using dbar instruction
  • stress-workload: RISC-V: use stress_asm_riscv_pause instead of a fence
  • stress-waitcpu: use RISC-V pause instruction for small delays
  • stress-waitcpu: only sanity check non-rates on non virt x86 systems
  • stress-eigen-ops.cpp: remove commented out debug code
  • stress-priv-instr: add loong64 privileged instructions
  • stress-pipe: add debug to log default pipe read/write sizes
  • core-*.h: add ALWAYS_INLINE annotation for small inline helpers
  • stress-regs: add loong64 implementation
  • core-asm-loong64.h: Add support for cpucfg instruction
  • stress-acl: terminate do-while stressor loop on acl error exit
  • kernel-coverage: exercise all ioschedulers on filesystems
  • stress-tsc: add rdtime.d instruction auto-built detection
  • stress-workload: add Loong64 support for dbar instruction
  • Manual: Add Loong64 implementation details for tsc stressor
  • stress-tsc: add Loong64 tsc reading support
  • core-asm-arch: initial support of Loong64 arch
  • Makefile: swap order of -U and -D FORTIFY_SOURCE
  • Makefile: ensure cc_supports_flag is defined outside the PEDANTIC flag settings
  • stress-io-uring: add optimizations - late sqe memset and optimize out zero stores

V0.17.04

4 months ago

Stress-ng V0.17.04 "pragmatic problem producer" highlights:

  • Support for Cygwin builds
  • More system calls exercised in sysbadaddr (cacheflush, xattrs) and better mixed invalid address exercising
  • Reduced spawning rate in sysbadaddr stressor for improved faster system call coverage
  • Improved SO_SOCKET SO_* option exercising in sock stressor
  • Add native radixsort, heapsort and mergesort support if BSD sort functions are not available, these can be faster than the libc variants
  • sysfs stressor: Exercise /sys/power/disk test resume command
  • pty stressor: Exercise cfgetispeed and cfgetospeed
  • Add map_shadow_stack system call to sysinval and syscall stessors
  • Add Access Control Lists exercising with new acl stessor
  • Exercise all open mode permutations in open stressor

Notable Bug Fixes:

  • don't kill entire process group or pid 1 (init) on SIGTERM
  • sock stressor: fix zerocopy - enable it via setsockopt and use zerocopy flag appropriately
  • sock stressor: retry send on ENOBUFS
  • vma stressor: fix non-termination of vma pthreads and child processes
  • mmap stressor: add mprotect EACCESS error check for NetBSD
  • metamix stessor: add EBADF on fdatasync on read-only fd

Changelog:

[Munehisa Kamata]

  • README.md: fix a typo in the contributor name
  • stress-acl: Fix stress_acl_info definition

[Colin Ian King]

  • Makefile: bump version, change code name
  • README.md: add Cygwin to supported systems
  • kernel-coverage: add longer duration sysbadaddr test
  • stress-pthread: disable pthread_sigqueue call for CYGWIN
  • stress-tree: disable RB trees for CYGWIN
  • stress-sparsematrix: disable RB trees for CYGWIN
  • core-helper: add _start workaround for CYGWIN
  • core-shim: fix setdomainname check on HAVE_SETDOMAINNAME
  • stress-dir: don't reference non-POSIX d_reclen for CYGWIN
  • stress-mmapfork: use stress_mmap_populate for MAP_POPULATE
  • stress-xattr: workaround ENODATA not being defined for NetBSD
  • stress-metamix: voidify parameter temp_dir if O_DIRECTORY is not defined
  • core-time: voidify parameter dnow, cleans up Dilos build warning
  • stress-sysbadaddr: fix another valid fd check, should be >= 0
  • stress-sysbadaddr: fix valid fd check, should be >= 0
  • stress-sysbadaddr: close fdin rather than fdout on fdout open failure
  • stress-sysfs: use SCNu16 formate specifier for sscanf uint16_t
  • stress-sock: remove shadowed declaration of variable i
  • stress-vdso: add clock_getres
  • stress-sysinval: set dirfd mode, gid and uid back to original setting
  • stress-sigxfsz: retry setrlimit with smaller size if limit is too large
  • stress-copy-file: replace sizeof(char) with 8
  • stress-copy-file: fix the max off_t, it's signed to cater for this
  • stress-sysbadaddr: use shim_cacheflush instead of direct system call
  • stress-sysbadaddr: pass different addresses to ppoll
  • stress-af-alg-defconfigs: re-order and remove blank lines
  • stress-mmap: add mprotect EACCESS error check for NetBSD
  • stress-metamix: add EBADF on fdatasync on read-only fd
  • stress-metamix: fix incorrect EBADF check
  • stress-metamix: ignore EBADF on fdatasync on read-only file
  • stress-ng: don't call mprotect if it does not exist
  • stress-syscall: add comment explaining why shell sort is used instead of qsort
  • stress-sysbadaddr: use VOID_RET for typed voidification of system call returns
  • Update copyright year to 2024
  • Manual: remove . in Eigen description
  • stress-sock: exercise SO_SOCKET SO_* opts that return int type values
  • stress-sysbadaddr: only increment counter if a syscall is to be made
  • stress-sysbadaddr: avoid exercising system calls that will not fail
  • stress-sysbadaddr: add some more xattr system calls
  • stress-sysbadaddr: bad_fstat: exercise fstat on temp dir
  • stress-sysbadaddr: add copy_file_range
  • stress-sysbadaddr: add missing MIPS cacheflush system call
  • stress-syscall: add missing MIPS cacheflush system call
  • stress-sysbadaddr: exercise shim'd and non-shim'd syscalls
  • stress-sysbadaddr: exericse system call parameters with range of parameters
  • stress-sysbadaddr: only respawn child when bad addr breaks system call
  • core-version: define EQUAL_GNUC for all compiler times
  • stress-radixsort: remove array size specifiers to fix tcc build failures
  • core-builtin: add shim wrapper for __builtin_assume_aligned()
  • core-cache: add missing tab to clean up \ alignments
  • stress-vecshuf: remove redundant variables total_ops and total_bytes
  • stress-numa: Fix spelling mistake in comment
  • stress-memthrash: remove trailing space at end of line
  • README.md: update contributors list
  • stress-syscall: add the --syscall-top N option to report top N fastest syscalls
  • Manual: fix typo "fasted" -> "fastest"
  • stress-radixsort: reduce memory bandwidth by making length 2 bytes
  • stress-radixsort: clean up casting in IDX and IDX_T macros
  • stress-radixsort: remove signed conversions in radix_strlen
  • stress-radixsort: offset digit counter by 1
  • stress-radixsort: optimize radixsort
  • stress-radixsort: add nonlibc implementation of radixsort
  • stress-heapsort: add new --heapsort-method option to help
  • stress-mergesort: add new --mergesort-method option to help
  • stress-mergesort: add some more memory copying optimizations
  • stress-mergesort: optimize for 4 byte data
  • stress-mergesort: remove base_ptr, replace with base
  • stress-mergesort: optimize copying of lhs and rhs to base
  • stress-mergesort: add missing base_ptr increment
  • stress-mergesort: optimize lhs and rhs copying
  • stress-mergesort: add nonlibc implementation of mergesort
  • stress-heapsort: optimize copy and swap for common size cases
  • stress-heapsort: add nonlibc implementation of heapsort
  • Makefile: add cc_supports_flag to simplify CFLAGS checking
  • Makefile: add gcc optimization flag -fipa-pta
  • stress-sysfs: exercise test resume command for /sys/power/disk
  • stress-pty: exercise cfgetispeed and cfgetospeed on leader and follower
  • stress-vecshuf: report shuffle rates as Harmonic Mean
  • stress-sysinval: add map_shadow_stack system call
  • stress-syscall: add map_shadow_stack call
  • core-*: add more comments
  • core-helper: assign val2 to avoid any static analysis warnings
  • stress-acl: add randomized acl attribute order shuffling with --acl-rand
  • Makefile.config: Fix incorrect addition of -DSTRFUNC to LDFLAGS
  • stress-ng: initialize values to 0.0 rather -1.0
  • stress-acl: exercise all ACL types, ACL_TYPE_ACCESS and ACL_TYPE_DEFAULT
  • core-shim: shim_kill: don't allow SIGKILL on pid -1
  • stress-ng: don't kill entire group or pid 1 (init)
  • stress-acl: uppercase ACL in help text
  • stress-acl: add ACL set vs get verification
  • stress_acl: rename acl functions, prefix with stress_
  • stress-acl: exercise acl_get_file and add metrics for this
  • kernel-coverage: enable acl for reiserfs
  • README.md: add another link to a research paper
  • stress-open: add open using all the possible file modes
  • stress-acl: compute and cache all valid ACLs to improve performance
  • stress-vma: voidify returns using VOID_RET macro
  • Update documentation and debian/control for libacl dev libs
  • stress-acl: exercise POSIX ACLs using libacl
  • README.md: add another link to a research paper
  • stress-inotify: exercise ioctl command INOTIFY_IOC_SETNEXTWD
  • stress-sock: retry send on ENOBUFS
  • stress-sock: fix zerocopy - enable it via setsockopt and use flag appropriately
  • core-asm-x86.h: remove duplicated cpuid legacy implementation
  • kernel-coverage: add extra bcachefs format options for more test coverage
  • core-helper: stress_get_null: cast zero to uintptr_t before void * cast
  • stress-sem-sysv: reduce the rate at which proc info is being read
  • stress-vecwide: don't use target clones for gcc 9.4.0
  • core-asm-x86.h: remove STRESS_ARCH_X86_32 variant of rdtsc
  • stress-vma: fix non-termination of vma pthreads and child processes
  • kernel-coverage: reduce tmp file system image size to 4000MB for bfs
  • stress-raw[pkg|udp]: only include linux/udp.h if netinet/udp.h does not exist
  • core-helper: add null function to obfuscate (void *)0 values
  • stress-workload: include sched.h required for aarch64-linux-android33-clang
  • stress-rawudp: fix type comparison warning, cast to in_addr_t
  • Fix missing headers and rindex/index for clang android static builds
  • stress-malloc: only declare trim_counter when it's required
  • Fix open calls that have extraneous mode flags on non-create opens
  • kernel-coverage: add collapse --stream-madvise option
  • stress-stream: add collapse --stream-madvise option
  • kernel-coverage: add in some extra stressing options

Full Changelog: https://github.com/ColinIanKing/stress-ng/compare/V0.17.03...V0.17.04

V0.17.03

5 months ago

Bug fix release, address shared memory unmapping for opcode, sysbadaddr, enosys and sysinval stressors. Fix trimming in malloc stressor, fixes memory leak in mmap stressor.

[Colin Ian King]

  • Makefile: bump version
  • Makefile: remove -g from CFLAGS
  • stress-sock: fix memory real on mmap_buffer
  • stress-malloc: replace pre-inc with post-inc on trim_counter
  • stress-tsc: only define stress_tsc_check when required
  • manual: update release date
  • stress-opcode: allow exit system call
  • stress-sysbadaddr: don't unmap shared memory, just make it read-only
  • stress-enosys: don't unmap shared memory, just make it read-only
  • stress-opcode: don't unmap shared memory, just make it read-only
  • stress-sysinval: don't unmap shared memory, just make it read-only
  • stress-tsc: clean up warnings with systems that do not support lfence
  • stress-sysonval: add in missing old/deprecated and new system calls
  • stress-enosys: add in missing _NR* syscalls
  • README.md: add another kernel issue found by stress-ng
  • stress-malloc: mmap addr array and prefetch values
  • stress-malloc: only trim memory when new option --malloc-trim is used
  • stress-tsc: add the --tsc-rdtscp option
  • Add build-time check for rdtsc instruction

V0.17.02

5 months ago

Stress-ng V0.17.02 "omniferous optimized overreacher"

Key features:

  • many stressor related optimisations:
  • ~5.4% improvement on Alderlake i9-12900
  • ~5.2% improvement on 24 core ARM® Cortex-A53
  • ~2.2% improvement on StarFive JH7100 64 bit RISC-V RV64GC
  • ~7.2% improvement on Libre Computer AML-A311D-CC (4 x ARM Cortex-A72 cores, 2 x Cortex-A53 cores)
  • ~5.2% improvement on Libre Computer AML-S905D3-CC (4 x ARMv8 Cortex-A55) (based on Geometric mean of bogo-ops throughput of over 300 stressors)

New features:

  • sigxfsz and sigxcpu stressors for SIGXFSZ and SIGXCPU signals
  • bsearch, hsearch, lsearch have new method options to specify libc or optimized non-libc search functions
  • io-uring stressor has new --io-uring-entries option to specify number of entries in the io-uring

Changelog:

[Sascha Hauer]

  • stress-physpage: explicitly use 64bit type for physical addresses
  • stress-ng.h: define _FILE_OFFSET_BITS before including features.h

[Rulin Huang]

  • Reduce the file operations if the unused pid can be found within several tries

[Colin Ian King]

  • stress-bigheap: ensure value in *uintptr is initialized
  • stress-workload: clean up some clang-scan-build warnings
  • stress-workload: remove redundant assignments to variable t
  • stress-workload: remove redundant initialization of t_begin
  • stress-sigpipe: add wrapper to pipe_child to clear up tcc warning
  • stress-reboot: add wrapper to reboot_clone_func to clear up tcc warning
  • stress-vma: remove volatile cast, it is unnecessary
  • stress-lsearch: add casts to const char * to avoid void * arithmetic
  • stress-bsearch: cast base to const char * to avoid void * arithmetic
  • core-time: return -1 if time not available via stress_time_now_timespec
  • stress-msync: make pointer buf unclobberable
  • stress-msg: remove another invalid msgrcv calls that work for OpenBSD systems
  • stress-msg: remove invalid msgrcv calls that work for *BSD systems
  • core-shim: Fix non-PURE shim_enosys function
  • core-resources: include core-pthread.h for pthread types
  • stress-get: don't call gettimeofday with NULL values
  • core-shim/stress-get: use gettimeofday() for non-linux shim_time calls
  • core-shim: fix typo: tlock -> tloc
  • core-shim/stress-get: use time() for non-linux shim_time calls
  • stress-get: fix error messages, replace gettimeval with gettimeofday
  • stress-get: only exercise time(NULL) on Linux
  • core-helper: move ret inside #ifdef block
  • README.md: Update contributor list
  • stress-*: clean up a handful of spelling mistakes
  • stress-stream: unmap in correct idx order
  • README.md: add another link to a research paper
  • stress-prctl: munmap page_anon on error return path
  • stress-seal: unmap buf on error return paths
  • stress-cyclic: unmap latencies mappings on error return
  • stress-zero: unmap read/write buffers on error return paths
  • stress-stream: simplify error unmapping return paths
  • stress-rawdev: fix memory leak on mmap'd buffer on error return path
  • stress-fail: use fail error exit path for non-implemented /dev/full
  • stress-sockmany: fix memory leak on signal handler error return path
  • stress-signest: fix memory leak on signal handler error return path
  • stress-sock: fix memory leak on fork failure error return path
  • stress-sigpipe: fix memory leak on signal handler error return path
  • stress-stackmmap: make stack_sig non-clobberable
  • stress-sigbus: make ptr non-clobberable
  • core-helper: add stress_mmap_populate to mmap with MAP_POPULATE
  • stress-qsort: add missing tab
  • stress-bseach: add -O3 for nonlibc bsearch function
  • stress-waitcpu: add some more nops
  • stress-vm: remove volaile where it's not required, add memory barrier
  • stress-vm: speed up prime-gray-0 and prime-gray-1 by reducing total memory read/writes
  • stress-vm: speed up prime-0 and prime-1 by reducing total memory read/writes
  • stress-vma: provide different handlers for SIGBUS and SIGSEGV
  • stress-vma: optimize matrics, add cacheline pad and remove volatile
  • stress-vdso: add dummy function call to emulate minimal vdso function
  • stress-udp: don't memset the send buffer on each send
  • stress-trig: replace iterations with macro STRESS_TRIG_LOOPS
  • stress-trig: unroll loops, speed up by ~4.2%
  • stress-memthrash: only report lack of NUMA support with instance 0
  • stress-schedmix: reduce compute overhead on prime number CPU load
  • stress-stack: unroll loop in stress_stack_alloc
  • stress-sockpair: optimize buffer setting and checking
  • stress-sockdiag: move bogo-op count to outside parser loop
  • stress-skiplist: use 8 bits for skip_list_random_level generation
  • stress-skiplist: optimize ln2 operation using clzl
  • stress-sigxfs: optimize counter increment, remove branch
  • stress-sigxfsz: don't make async_sigs volatile
  • core-helper: only declare array buf when it is required
  • core-helper: voidify function argument dumpable
  • core-helper: only declare array buf when it is required
  • core-shim: move include <sys/uio.h> to core-shim.h
  • stress-gpu: move declarations for gpu_freq_sum and gpu_freq_count
  • core-numa: add stress_numa_nodes helper for non-linux builds
  • stress-stream: don't print numa nodes related info for non-linux systems
  • core-shim: add missing include of sys/uio.h required for struct iovec
  • stress-mmapfixed: fix array overflow, iterate over only the array elements
  • stress-gpu: ensure usec computations are using uint64_t type
  • stress-hsearch: voidify return from stress_get_setting
  • core-helper: use STRESS_MAXIMUM on maximum pid
  • stress-vma: add in extra protection flags and mmap flags for more stress
  • stress-vma: add PROT_NONE back
  • stress-vma: ensure page is always mappable
  • stress-ng: move ci counter struct into args and args into stat struct
  • stress-signal: don't use volatile for in-signal handler counter increment
  • stress-ring-pipe: replace % operator with compare and set
  • stress-resched: remove need to check for non-mapped yields array
  • README.md: add more research paper links
  • stress-remap: unroll a handful of loops
  • stress-regs: reference registers rather than v variable
  • stress-readahead: unroll some loops
  • stress-randlist: add prefetch to next pointer in list scanning
  • core-mwc: use clz for shift maximization for 8 and 16 bit mwci functions
  • core-sort: optimize of powers of 2 size for stress_sort_data_int32_shuffle
  • stress-gpu: only report GPU frequency if > 0.0 MHz
  • core-time: optimize get_time_now()
  • stress-procfs: use MAP_POPULATE on mmap to reduce read-fault hit
  • stress-procfs: perform less timeout checks on 1 byte reads and optimize timeout paths
  • stress-poll: switch order of read return checks
  • stress-opcode: inline and unroll loop in stress_opcode_random
  • stress-null: scale down mmaps to 1 once every 500 iterations
  • stress-nice: add ( ) to clarify precedence
  • stress-syncload: add yield delay for ppc
  • core-builtin.h: Add llabs builtin shim wrapper
  • core-ops: add in missing OPT_hsearch_method
  • stress-nanosleep: ensure no overflow occurs on 32 bit systems
  • stress-hsearch: add hsearch method for libc and non-libc versions
  • stress-mmaphuge: simplyfy the set and check memory exercising
  • stress-mmapfixed: make vec array uint32 to speed up mincore checking
  • stress-mmapfixed: move memset in stress_mmapfixed_is_mapped_slow
  • core-helper: add missing space between ) and {
  • core-helper: stress_process_dumpable: use stress_system_write to write data
  • core-helper: stress_get_memlimits: use stress_system_read to read data
  • stress-lsearch: use lfind_nonlibc in lsearch_nonlibc
  • stress-lsearch: add lsearch method for libc and non-libc versions
  • stress-bsearch: add --bsearch-method short help
  • stress-lockofd: remove yield point, it's not helping that much
  • stress-lockf: remove yield point, it's not helping that much
  • stress-locka: remove yield point, it's not helping that much
  • Makefile.config: echo the number of configurations in config.h
  • stress-jpeg: compute gradient image using float instead of double
  • stress-io-uring: add UNLIKELY hint on error return check
  • stress-iomix: stress-_iomix_rd_wr_mmap: just read 1 byte from page
  • core-mwc: move stress_rndstr from core-helper to core-mwc
  • stress-icache: add missing space before + operator
  • stress-hdd: optimize hdd_fill_buf
  • core-mwc: move stress_rndbuf from core-helper to core-mwc
  • stress-gpu: add GPU frequency metrics based on 10 samples per second
  • stress-ng: emit plural of instance if instances > 1
  • core-config-check: replace "will" with "may"
  • stress-getrandom: reduce overhead of gettimeofday calls
  • stress-full: fix and optimize stress_data_is_not_zero
  • core-mwc: optimize modulo mwc32 and mwc64 functions
  • stress-fifo: add poll replacement to select, disable it for now
  • stress-far-branch: inline the branch shuffling, reduce iterations from 5 to 1
  • stress-epoll: don't fill send buffer on each send
  • core-time: make function stress_timeval_to_double PURE
  • core-helper: add PURE annotation to two more helper functions
  • core-helper: optimize stress_rndstr
  • stress-clock: move memsets outside of loops for minor performance improvement
  • stress-bsearch: allocate bsearch array using mmap
  • stress-ng: fix short help for change-cpu, fix missing -
  • stress-bsearch: add bsearch method for libc and non-libc versions
  • stress-qsort: add in missing qsort-method short help
  • stress-ng: don't timeout until all stressors are spawned
  • core-helper: fix low memory swap check
  • stress-sigxfsz: remove unused include files
  • stress-sigxcpu: Add new SIGXCPU stressor
  • stress-sig*: add new class "signal", add signal stressors to this class
  • stress-cpu-online: write the string length rather than buffer size
  • core-helper: make inline helper function stress_chr_munge PURE
  • stress-pthread: constify variable trun
  • stress-pthread: use same racy pid for tgid rather than fetching one 3 times
  • README.md: Update contributors name list
  • stress-sigxfsz: Add new SIGXFSZ stressor
  • README.md: add some more kernel issues found with stress-ng
  • core-cpuidle: report C states with commas between each state
  • stress-sysbadaddr: add missing #include <termios.h>
  • Add in some missing <sched.h> includes
  • fix up build errors from unchecked in changes
  • stress-ng.h: move #include <sched.h> to sources that require it
  • stress-af-alg: add in missing #include <sys/socket.h>
  • README.md: add another citation link
  • stress-ng.h: move #include <pthread.h> to core-pthread.h
  • stress-ng.h: move #include <termios.h> to sources that require it
  • stress-ng.h: move #include <pwd.h> to sources that require it
  • stress-ng.h: remove #include <getopt.h>
  • stress-ng.h: move #include <sys/socket.h> to sources that require it
  • core-helper: move MEM_CACHE_SIZE from stress-ng.h to core-helper.c
  • stress-stream: decouple the default guess cache size from MEM_CACHE_SIZE
  • core-attribute: add extra checks for attribute noinline
  • core-attribute: add extra checks for attribute always_inline
  • core-attribute: add extra checks for attribute weak
  • core-attribute: add extra checks for attribute noreturn
  • core-attribute: add extra checks for attribute warn_unused_result
  • core-attribute: add extra build checks for hot attribute
  • core-attribute: add PURE macro for gcc pure attribute
  • stress-crypt: use the correct size to strlcpy to
  • stress-cpu-online: report the sysfs file when writes fail
  • core-helper: take into consideration NUMA nodes for full cache size
  • stress-msync: mark fd as NOCLOBBER, clean up gcc 13.2.1 warning
  • Makefile: remove gcc optimization flags
  • Makefile: fix gcc detection for extra gcc optimization flags
  • stress-memthrash: add a buffer 8 bit reverse method
  • stress-malloc: use valloc in non-thread scenarios
  • stress-malloc: add valloc (or valloc emulation) for more calls to exercise
  • stress-hsearch: add -O3 optimization
  • stress-hsearch: move repeated verify flag check to a const bool
  • stress-fma: improve fma buffer copying
  • core-sort: minor re-ordering of load/stores and compute for minor speed improvement
  • core-sort: minor optimization in stress_sort_data_int32_init
  • stress-zlib: improve rarely0 and rarely1 performance
  • stress-ng: clean up some more whitespace / tab issues
  • stress-ng: replace spaces with tab
  • stress-zlib: implement rdrand filler for non-x86 systems
  • stress-zlib: improve performance of rdrand filling of buffer
  • stress-tree: remove the UNLIKELY hint in avl_find
  • stress-tree: remove the UNLIKELY hint in binary_find
  • stress-tree: remove TARGET_CLONES from binary tree find/insert
  • stress-stream: add TARGET_CLONES for index0 level streaming
  • core-nt-store.h: use a union cast for stress_nt_store_double store
  • stress-prefetch: clean up some source white space/tabs
  • stress-io-uring: tweak number of io-uring entries depending on CPU count
  • stress-io-uring: add --io-uring-entries N option to specify ring size
  • Revert "stress-context: avoid using alternative stacks in a swapcontext"
  • stress-fork: replace slow mwc8 with fair round-robin switch selection index
  • stress-hash: don't call expensive mwc reseed for non-verify mode
  • stress-branch: load next goto address in previous loop
  • stress-branch: re-order branching code to compute idx before jmp
  • test/test-crypt-r: check for support of GNU libcrypt data fields
  • stress-ng: Fix stupid extraneous {
  • Makefile.config: remove some trailing spaces
  • stress-*: improve rate metrics by using harmonic mean
  • kernel-coverage: remove scheduler names
  • stress-cpu: replace 64 bit mwc and 7 shifts with 2 x 32 bit mwc and 6 shifts
  • stress-crypt: remove redundant prefix initialization
  • stress-crypt: remove a few more args from stress_crypt_id call
  • stress-crypt: optimize crypt_r usage with less memory buffer copying
  • stress-memfd: store and read data in cacheline strides
  • kernel-coverage: add bcachefs
  • stress-metamix: remove empty line
  • stress-metamix: handle EINTR for fdatasync and fsync
  • stress-iomix: break out of stressor loops on EINTR for read or writes
  • core-helper: add bcachefs magic

V0.17.01

6 months ago

Changelog:

[Andrey Gelman]

  • stress-led: use shim_strlcpy instead of strlcpy

[Max Kellermann]

  • stress-splice: remove "Exercise 1 byte splice, zero flags" call

[Colin Ian King]

  • Makefile: bump version
  • debian/control: move homepage URL
  • README.md: add a few more links to research papers
  • Manual: update date with release
  • stress-vnni: remove extraneous word just in some messages
  • core-config-check: only report non-tty attached message when not using a tty
  • core-cpuidle: remove redundant initialization of cc
  • stress-sigsegv: only reference expected_addr if SA_SIGINFO is defined
  • core-helper: rename si_code to sig_code to fix macro clash with Minix
  • stress-trig: cater for 16, 12 and other sized long doubles
  • stress-utime: cast integer constants to time_t for time_t struct values
  • stress-schedmix: fix build warning for SCHED_OTHER case
  • stress-schedmix: only declare case_sched_other when required
  • stress-trig: voidify return from call to stress_get_setting
  • stress-uprobe: check for concurrent access to /sys/kernel/debug/tracing/trace_pipe
  • stress-schedpolicy: only declare case_sched_other when is required
  • stress-sigsegv: add PROT_NONE read to force SIGSEGV
  • core-shim: just call stat libc funcs for stat/lstat/fstat
  • stress-trig: lower precision if long double is same size as double
  • stress-msg: pass down error from receiver to parent
  • stress-cpu: advise not to use --cpu-method all when specifying --cpu-load
  • stress-ng: remove need to include core-put.h
  • core-madvise: add mergeable madvise helper, use it on some mmap calls
  • stress-trig: drop precision for float trig functions, add NULL on opt_set_funcs
  • stress-trig: Add TARGET_CLONES to use optimial float instructions
  • stress-trig: add a new trigonometric function stressor
  • stress-workload: remove NOINLINE to fix clang builds
  • stress-workload: make buffer uint8_t * rather than void *
  • stress-workload: constify pointers w1 and w2 in stress_workload_cmp
  • stress-copy-file: make stress_copy_file_seek64 an inlined static helper
  • core-config-check: include core_config_check.h to check stress_config_check prototype
  • stress-ng: remove CASE_FALLTHROUGH macro
  • stress-ng: exit with EXIT_FAILURE if locks fail to create
  • stress-ng: exit with EXIT_FAILURE if shared heap cannot be allocated
  • core-helper: add missing check for HAVE_SYS_PRCTL_H when using prctl
  • core-helper: add extra macro check for HAVE_SYS_UTSNAME_H when using utsname
  • stress-sctp: add extra macro checks for SCTP_SS_* macros
  • stress-remap: voidify unused function parameter remap_mlock
  • stress-switch: add extra check for HAVE_KEY_T
  • stress-sem-sysv: add extra check for HAVE_KEY_T
  • stress-syscall: need to check for HAVE_REMOVEXATTR for syscall_xattr_name
  • stress-syscall: need to check for HAVE_GETXATTR for syscall_xattr_name
  • stress-wcs: add some extra macro sanity checking for wcs* functions
  • core-ftrace: add extra macro check for RB tree functionality
  • stress-sparsematrix: add extra macro checks for tree types
  • core-ftrace: check if HAVE_BSD_SYS_TREE_H is defined for trees
  • stress-ng.h: clean up some spacing in macros
  • stress-context: only report context address mapping for instance 0
  • stress-context: avoid using alternative stacks in a swapcontext
  • stress-ng: add aligned padding for counter metrics, rename it to pad
  • core-log: move ABORT_FAILURES from stress-ng.h to core-log
  • core-try-open: move STRESS_TRY_* macros to core-try-open.h
  • stress-dup: move STRESS_FD_MAX from stress-ng.h to stress-dup
  • stress-ng: move a few more macros from stress-ng.h to stress-ng.c
  • stress-mknod: move DEFAULT_DIRS macro to stress-mknod
  • stress-ng: move macros from stress-ng.h to stress-ng.c
  • stress-link: move DEFAULT_LINKS macro to stress-link
  • stress-access: remove trailing tab
  • stress-context: add SIGSEGV debug handling
  • core-helper: only dump object code for SIGILL
  • core-helper: add sigsegv handler and more debug to handlers
  • stress-mpfr: clean up indentation
  • stress-workload: add fused-multiply-add workload method
  • stress-workload: add --workload method option to specify work exercising method
  • stress-workload: add pause/yield workload
  • stress-syncload: use arm asm built-in for yield
  • syscalls.txt: update Copyright dates
  • stress-udp: use SO_REUSEADDR before bind
  • README.md: add another kernel bug found by using stress-ng
  • stress-file-ioctl: remove size check on FIOQSIZE
  • core-shim: fix missing ; on stat calls
  • core-shim: add shim wrapper for stat
  • core-shim: add shim wrapper for lstat
  • stress-iomix: use shim_copy_filerange and 64 bit offsets
  • stress-fpunch: cast offset to intmax_t to match print format specifier
  • core-shim: shim_copy_file_range: use shim_off64_t instead of shim_loff_t
  • core-helper: make buffer tmp larger to avoid gcc-12.2.0 m68k warning
  • core-shim: add shim wrapper for fstat
  • stress-open: try O_TMPFILE on temp_dir first, then fall back to /tmp
  • stress-workload: scale workload by number of threads
  • stress-workload: use correct delay time between next work item for threaded workloads
  • stress-workload: add an evenly spaced scheduling distribution option
  • stress-workload: add in missing workload duration for poisson dist
  • core-helper: provide warning when using the 0 reset timer-slack setting
  • stress-workload: provide --timer-slack advice when quanta is low
  • stress-workload: add a poisson process method of scheduled time generation
  • stress-*: add support for more floating point types
  • Makefile.config: use actual _Decimal* type names
  • stress-*: use _Float128 or __float128 depending on what is available
  • stress-*: replace HAVE_FLOAT128 with HAVE__float128
  • stress-*: replace HAVE_FLOAT80 with HAVE__float80
  • stress-*: replace HAVE_FLOAT64 with HAVE_Float64
  • stress-*: replace HAVE_FLOAT32 with HAVE_Float32
  • stress-*: replace HAVE_FLOAT16 with HAVE_fp16
  • stress-: replace HAVE_FLOAT_DECIMAL with HAVE_Decimal*
  • stress-workload: set workload_threads to zero if mq or pthreads not available
  • stress-workload: compare failed wq with cast value of -1
  • stress-workload: add --workload-threads option to use threads
  • stress-workload: remove CLASS_INTERRUPT from class
  • stress-link: minor speedup for mass file unlinking for minix 3 fs
  • stress-workload: fix scheduler build issues for non-linux builds
  • stress-vma: use shim_mincore instead of mincore
  • stress-workload: add memory flush/read work item
  • stress-workload: fix missing break in switch
  • stress-workload: add yield instead of very small sleeps
  • stress-workload: add a getpid() workload
  • stress-vma: fix missing proc-maps metrics
  • kernel-coverage: add workload sched workers
  • stress-workload: add --workload-sched option
  • stress-workload: add more randomly selected workloads
  • stress-workload: print histograph in debug verbose mode only
  • stress-workload: add a new scheduling workload stressor
  • stress-access: remove trailing space
  • README.md: update contributors list
  • stress-shm-sysv: add more information on shmat failure
  • README.md: add two more research citations
  • kerne-coverage: mount hfs, hfsplus with -o rw, increase loopback to 4GB
  • stress-swap: handle ENOSPC more gracefully as a skipped stressor
  • stress-access: don't report chmod errors for some filesystems
  • stress-led: add LED /sysfs exercising stressor (Linux)
  • README.md: update contributors list
  • core-killpid: make killable timeout 10 minutes instead of 3
  • core-helper: add musl gcc detection
  • Add HOT OPTIMIZE3 attributes to random data filling helper funcs
  • core-mwc: replace just OPTIMIZE3 with HOT OPTIMIZE3 on highly used mwc funcs
  • test/test-libxxhash.c: include string.h and make buffer static
  • Manual: update vma manual description to reflect recent vma changes
  • stress-vma: reduce number of concurrent vma processes per instances to 2
  • stress-vma: fix 32/64 bit address generation
  • README.md: add two more research paper citations
  • core-, stress-: Add musl-gcc detection and HAVE_COMPILER_MUSL
  • stress-vma: add reading /proc/self/maps
  • stress-mva: add mprotect and msync
  • stress-vma: add mincore calls on pages
  • stress-procfs: use pthread_cancel to cancel pthreads before join
  • core-config-check: fix inverted tty message
  • stress-cgroup: fix duplicated open flags, use S_IRGRP | S_IWGRP
  • core-config-check: check for powersave cpu governor
  • core-shim: remove debug stress_process_info call
  • stress-open: report filesystem type on O_DIRECT open/create issue
  • stress-dev: use stress_kill_and_wait instead of kill and wait combo
  • core-shim: shim_wait: bail out after 3 minutes of waiting
  • core-helper: add stress_process_info to dump process state
  • core-, stress-: use %jd and (intmax_t) cast for all pid_t formatting
  • core-/stress-: rename pid to PID across system
  • core-killpid: give up killing PID and debug report this after 3 minutes
  • kernel-coverage.sh: add --mmaphuge-file option to text mix
  • stress-mmaphuge: add --mmaphuge-file option to attempt to mmap onto a 16GB file
  • core-config-check: add system configuration sanity checks
  • kernel-coverage.sh: add /usr/sbin to path for gcov tools
  • stress-sysfs: terminate child process and pthreads using helper

V0.17.00

7 months ago

Celebrating a decade of stress-ng, the 0.17.00 stress-ng release contains three new stressors; a virtual memory area (vma) stressor, a Linux cgroup v2 stressor (cgroup) and a mixed metadata file stressor (metamix)

Changelog:

  • Makefile: bump version to 0.17.00
  • core-out-of-memory: treat zero timeout as ignore timeout check
  • stress-nanosleep: voidify function parameter ctxt
  • stress-nanosleep: fix build issue on Oracle Linux 6.1
  • README.md: add another research paper citation
  • test/test-swap.c: make array swapfile const
  • test/test-sendmmsg: fix incorrect indexes in msg_iov2
  • test/test-recvmmsg: fix incorrect indexes in msg_iov2
  • test/test-lseek: reduce scope of variables offset and ret
  • test/test-libkmod: constify pointer mod
  • test/test-inotify: constify pointer
  • README.md: update number of stressors
  • stress-af-alg: treat EINTR as non-fatal in error reporting
  • stress-vma: add madvise() calls to pages for extra contention
  • README.md: Add another presentation link
  • sreess-io-uring: remove verbose debug
  • stress-ng: remove redundant assignment to variable handler_set
  • stress-vma: remove redundant call to getpid
  • stress-metamix: remove unused calls to stress_exit_status
  • stress-cgroup: voidify return from fstat
  • stress-softlockup: cast mmap return to uint8_t * to clear up build warning
  • core-helper: fix uninitialized totalswap and freeswap for BSD stress_get_meminfo
  • stress-cgroup: exercise a child process in cgroup
  • stress-cgroup: exercise seek+read on cgroup files for more exercising
  • stress-landlock: silently ignore ENOSYS when EINVAL is intended
  • stress-cgroup: improve linux only build checks
  • stress-cgroup: minimal linux cgroup v2 stressor
  • stress-landlock: remove debug return 0 in landlock supported check
  • stress-io-uring: silently ignore EINVAL for unimplemented ops
  • core-shim: fix FTBFS, missing ; on membarrier call
  • README.md: Add citation link to another academic paper
  • stress-vma: cast mmap'd void pointer to stress_vma_metrics_t *
  • stress-nanosleep: re-order #defines and typedef for non-pthread builds
  • stress-dir: cast isdigit arg to int to clear up minix build warning
  • core-cpuidle: only define stress_cpuidle_cstate_add_unique for linux builds
  • stress-vma: use MAP_GROWSDOWN only if it is defined
  • stress-utime: only exercise VFAT utime bounds for 64 bit systems
  • core-pragma.h: remove -Wstringop-overflow for older toolchains
  • core-pragma: use -Wstringop-overflow on toolchains that support it
  • stress-vma: fix build issues with systems without MLOCK_ONFAULT
  • stress-softlockup: add rep sto on 1MB buffer for x86
  • stress-landlock: traverse file system adding as many files as possible
  • stress-landlock: fix non-working flags, re-work stressor
  • stress-vma: Add a new virtual memory address stressor
  • presentations: Add kernel recipes 2023 presentation
  • stress-dev: remove shadowed pointer dev
  • core-cpuidle: remove unused variable max_cpus
  • core-shim: add waitpid build check and use waitpid if it is defined
  • core-shim: use membarrier if it is defined
  • stress-dev: exercise /dev/cdc-wdm*
  • README.md: add another performance issue found with stress-ng
  • stress-swap: add filesystem type when swapon fails
  • kernel-coverage: fix typo in ionice loop
  • kernel-coverage: add swap on file systems for more exercising
  • stress-getrandom: add invalid GRND_INSECURE | GRND_RANDOM | GRND_NONBLOCK flags
  • stress-dev: add Linux /dev/vmci version ioctls
  • stress-dev: exercise /dev/radio with v4l ioctls
  • stress-dev: add /dev/lirc ioctl get commands
  • stress-sysfs: add finer grained locking, add sysfs exercise metrics
  • stress-utime: exercise some more times outside specific ranges
  • stress-fallocate: use O_SYNC'd fallocate every 16 bogo-loops
  • core-shim: handle posix_fallocate error returns correctly
  • stress-open: exercise two different invalid futimesat times
  • stress-shm: exercise a range of fallocate modes on shm
  • stress-sleep: add C state residency sleep durations to exercise deep C state sleeps
  • stress-nanosleep: add --nanosleep-method to specify different nanosleep methods
  • stress-nanosleep: also use C state residency durations for nanosleeps
  • core-cpuidle: allocate cpu C states and residency info in linked list
  • stress-dir: use stat or fstat depending if open fails or not
  • stress-dev: randomize the order of devices
  • stress-apparmor: remove unused commented out variable counter_lock
  • stress-dir: add file open/close on concurrent directory accesses
  • stress-dev: exercise /dev/dm with queued IO under RCU protection
  • stress-dir: reduce scope of variable d and make it const
  • core-helper: reduce scope of variable duration, make t const
  • core-log: clean up redundant variable initialization and constifications
  • core-clocksource: add check to see if HPET clocksource is being used
  • stress-dir: exercise readdir and rewinddir after populating a directory
  • stress-metamix: make verification optional with --verify option
  • stress-metamix: allow small 512 byte sizes, and mmap + check pages
  • stress-*: remove SIGTERM kills before SIGKILL kills
  • stress-*: use stress_kill_pid_wait() for kill/wait combos
  • core-*: use stress_kill_pid_wait() for kill/wait combos
  • stress-*: use stress_kill_pid() for kill SIGKILLs
  • core-log: only sync writes to log file and not stderr, stdout
  • core-log: don't write to logfile if it is not opened
  • core-*: fix syscall typo process_release -> process_mrelease
  • core-out-of-memory: include core-killpid.h
  • core: use stress_kill_pid for SIGKILLs
  • core-killpid: use process memory relasing if signal is SIGKILL
  • core-helper: remove some empty lines
  • core-helper: join broken literal strings
  • stress-vecmath: fix call to stress_catch_sigill
  • stress-ng: remove some empty lines
  • core-helper: add SIGILL handler for code that uses target clones
  • stress-metamix: add a new stressor that exercises a mix of file metadata operations
  • stress-epoll: silently ignore -ve parameter passed to epoll_wait
  • README.md: Add citation link to FIRESTARTER 2
  • stress-ng: move child stressor invoking code into stress_run_child
  • stress-ng: use stressor array size as limit for stressor loops
  • core-log: fix ptr and size changes per write
  • core-log: add pr_log_write_buf_fd helper for writes of buffer to a fd
  • core-log: change semantics of pr_lock/unlock
  • Manual: add more explanation why --log-lockess is useful
  • core-helper: Add 1 ms yielding in logging and fork child startup
  • README.md: add three more research paper links
  • README.md: add four more research paper links

V0.16.05

8 months ago

[Anisse Astier]

  • stress-vnni: verify if selected method supports intrinsic in intrisinc mode

[Erwan Velu]

  • Manual: Indent stressors to ease man page reading

[John Kacur]

  • stress-ng: Fix text of license in stress-sleep.c

[Hsieh-Tseng Shen]

  • stress-pty: don't treat EINTR as failure when tcdrain is interrupted

[matoro]

  • core-asm-generic: reintroduce HAVE_ASM_NOP check

[ Colin Ian King ]

  • Makefile: bump version
  • Makefile: add missing core-time.h from headers
  • Makefile: remove snap from make dist rule
  • stress-touch: fix missing help args for --touch-method and --touch-opts
  • stress-ng: fix missing arg for --timer-slack help
  • stress-stream: fix --stream-index help, missing arg
  • stress-ring-pipe: fix help, missing args for --ring-pipe-num and --ring-pipe-size
  • stress-mremap: fix type in mremap-mlock help
  • stress-module: use settings names and variable names that match boolean args
  • core-opts: module-no-modver and module-no-vermag are argless, fix these
  • stress-ng: fix --max-fd help, needs arg N
  • stress-dirmany: fix --dirmany-bytes option in help
  • stress-cache: fix help for cacheline writeback should be --cache-clwb
  • stress-affinity: add missing numeric arg in --affinity-sleep option help
  • stress-llc-affinity: Fix spelling mistake "memiry" -> "memory"
  • Makefile: restore verify-test-all to 5 secs per stressor
  • stress-misaligned: double the timeout time for very heavily loaded systems
  • stress-cpu-online: fix nixos build error, missing semicolon
  • stress-kvm: skip stressor if /dev/kvm is already in use
  • Makefile: ignore warning return values in regression tests
  • stress-syscall: Add BSD rfork() system call
  • README.md: add another kernel reference
  • stress-mlock: only show munlock metrics if they are available
  • core-opts: fix disabled --perf option
  • Add map_shadow_stack to TODO list
  • stress-enosys: add map_shadow_stack
  • stress-dev: only use stress_dev_hid_linux if HAVE_LINUX_HIDRAW_H is defined
  • stress-ng.h: define _RENTRANT for sun builds for threading
  • test/test-builtin-bitreverse: don't use random() to remove OpenBSD warnings
  • tests: don't use random() to remove OpenBSD warnings
  • core-cpu-cache: cast uint32 values to uint64_t before multiply
  • stress-sigbus: unconstify ptr8, clean up pedantic warnings:
  • core-helper: stress_write_buffer: use void * for ptr rather than char *
  • core-setting: fix const warning with pedantic builds
  • core-sort: fix const warning with pedantic builds
  • stress-icache: make function stress_icache_func static
  • stress-zero.c: only declare mmap_counter and mmap_index for linux builds
  • stress-softlockup: reduce scope of variables t and d
  • stress-icache: reduce scope of variable val
  • stress-fma: fix return type of stress_fma_rnd_float to float
  • core-builtin: ensure shim_sqrtl returns long double
  • stress-bad-ioctl: constify pointers
  • stress-bad-ioctl: reduce scope of variables type, nr and ret
  • stress-aiol: cast result of multiply to same type as offset
  • core-cpu-cache: make cache_size match the same type as cpu->caches[i].size
  • stress-af-alg: constify pointer ptr
  • core-shim: shim_posix_fallocate: reduce scope of variable ret
  • core-numa: stress_parse_node: constify pointer str
  • core-affinity: stress_parse_cpu: constify pointer str
  • core-setting: remove unused field uintptr_t from struct
  • core-interrupts: change scope of pointer ptr
  • stress-watchdog: re-work code to remove need for watchdog_close label
  • Makefile: force vnni to be built with at least -O2
  • stress-vnni: move scope of variable to inside loop
  • stress-far-branch: clean false positive gcc warning by initializing ptr
  • stress-bad-altstack: make variable rnd non-clobberable
  • Add --interrupts option to enable interrupt accounting
  • core-interrupts: parse /proc/interrupts once for all types
  • README.md: add another paper citation
  • README.md: add two more kernel issues found with stress-ng
  • stress-enosys: add fchmodat2
  • stress-syscall: add fchmodat2
  • test-chmod: add fchmodat2 Linux 6.6 call and shim, add fchmodat shim
  • core-opts.h: move PR_OPT option macros to core-opts.h
  • core-opts: move gnu long options into core-opts.c
  • stress-prctl: add build check for new prctl macros
  • stress-prctl: exercise PR_RISCV_V_{GET|SET}_CONTROL
  • stress-prctl: add PR_GET_AUXV
  • README.md: add another kernel issue found using stress-ng
  • stess-schedmix: reduce scope of variable policy and remove initialisation
  • test/test-vfork.c: replace exit with _exit
  • stress-jpeg: stress_rgb_compress_to_jpeg: ensure duration is initialized to zero
  • stress-dev: add lseek + read on /dev/nvram, voidify some args to /dev/hid
  • stress-dev: exercise linux /dev/hid ioctls
  • stress-dev: exercise linux /dev/acpi_thermal_rel ioctls
  • stress-ng.h: rename PR_* macros to OPT_FLAGS_PR_*
  • core-thermal-zone.h: move perf related structs and defines to core-thermal-zone.h
  • core-perf.h: move perf related structs and defines to core-perf.h
  • stress-ng.h: remove unused typedef stress_func_t
  • README.md: add Anisse Astier to contributors list
  • Manual: rename AF_ALG stressor title
  • stress-netdev: exercise invalid lengths in ifr_ifindex and ifc_len
  • core-helper.h: move stress_align_stack into core-helper.h
  • core-time: move function prototypes to core-time.h
  • move stress_pagein_self definition to core-thrash.h
  • core-helper.h: move stress_warn_once from stress-ng.h to core-helper.h
  • stress-ng.h: remove unused legacy function declarations
  • core-helper: move stress_sigchld_set_handler from stress-ng.c to core-helper.c
  • include core-killpid.h for stress_killpid definition
  • stress-ng.h: remove stress_killpid, it is in core-kill.h
  • stress-ng.h: remove stress_clean_dir
  • core-helper: move stress_clean_dir and helpers to core-helper.c
  • core-helper: rename pr_* helper functions to stress_*
  • Makefile: add core-shim.h to headers
  • core-helper: move function prototypes and macros to core-helper.h
  • core-shim: move function prototypes and typedefs to core-shim.h
  • Remove snapcraft yaml file
  • core-helper: provide non BSD no-op variants of getsysctl functions
  • stress-sock: enable --sock-msgs option, set default from 1 to 1000 messages
  • stress-sock: remove need to assign recvfunc pointer for every send
  • Manual: clarify support for --vmstat option
  • Manual: add --metrics RSS description
  • stress-dccp: add --dccp-msgs option, set default from 16 to 10000 messages
  • README.md: add some more citiations
  • Manual: minor stressor description tweaks
  • Manual: minor corrections
  • Manual: re-adjust first option after each stressor heading using .TQ
  • stress-ng: make --metrics brief dump just bogo-ops metrics, more metrics with --metrics option
  • stress-null: add --null-write for write only null benchmarking
  • core-shared-heap: move function prototypes to core-shared-heap.h
  • core-processes: move function prototypes to core-processes.h
  • core-sched: remove unused function stress_set_deadline_sched
  • core-sched: move function prototypes to core-sched.h
  • Makefile: add missing core-limit.h
  • stress-ng.h: replace lock declarations with include of core-lock.h
  • core-mwc: move function prototypes to core-mwc.h
  • core-log: move function prototypes to core-log.h
  • core-setting: move function prototypes to core-setting.h
  • core-: add missing extern and missing inclusion of header in corec
  • Add core-attribute.h and core-parse-opts.h
  • core-out-of-memory: move function prototypes to core-out-of-memory.h
  • core-lock: move function prototypes to core-lock.h
  • core-limit: move function prototypes to core-limit.h
  • core-job: move function prototypes to core-job.h
  • core-vmstat: move function prototypes to core-vmstat.h
  • core-try-open: move function prototypes to core-try-open.h
  • core-numa: move function prototypes to core-numa.h
  • core-mounts: move function prototypes to core-mounts.h
  • Makefile: add two missing header files
  • core-mmap: move function prototypes to core-mmap.h
  • core-mlock: move function prototypes to core-mlock.h
  • core-mincore: move function prototypes to core-mincore.h
  • core-madvise: move function prototypes to core-madvise.h
  • core-klog: move function prototypes to core-klog.h
  • core-killpid: move function prototypes to core-killpid.h
  • core-io-priority: move function prototypes to core-io-priority.h
  • core-interrupts: move function prototypes to core-interrupts.h
  • core-ignite-cpu: move function prototypes to core-ignite-cpu.h
  • core-cpuidle: move stress_log_cpuidle_info to core-cpuidle.h
  • core-affinity: move function prototypes to core-affinity.h
  • stress-ng: stress_class_info_t: constify class
  • stress-ng: stress_verifiable_mode: constify mode arg
  • stress-ng: move stress_kill_stressors to remove need for forward declaration
  • stress-ng: rename some variables, add some inlining
  • stress-ng: rename classes to stress_classes
  • stress-ng.h: minor clean-ups
  • stress-ng.h: move some compiler specific #define's
  • core-opts: move long option enum into core-opts.h
  • stress-ng: fix spelling mistake in --oom-avoid message
  • README.md: update list of contributors
  • Manual: minor indention fixup for some hdd stressor options
  • stress-ng.h: use STATX definitions for SHIM'd macros if they exist
  • stress-ng.h: some minor #define and comment clean-ups
  • stress-ng.h: remove old legacy HDD flags and fix starting bit for OPT_FLAGS_METRICS
  • stress-ng.h: annotate the bit flags for the option flags
  • stress-ng.h: remove g_caught_signal - it is no longer used
  • stress-ng.h: remove g_opt_parallel from header, it's only used in stress-ng.c
  • stress-ng.h: remove g_opt_sequential from header, it's only used in stress-ng.c
  • stress-sem-sysv: skip stressor if semaphore can't be initialized early
  • stress-zero: rate reduce the amount of mmap's in stressor loop
  • stress-zero: add --zero-read option just to benchmark /dev/zero reads
  • stress-dir: add directory renaming while exercising readdir
  • stress-vecshuf: implement shuffle if __builtin_shuffle does not exist
  • README.md: add two more research paper citations