Releases: ColinIanKing/stress-ng
V0.18.07
stress-ng V0.18.07
New stressors:
- --flipflop: single cacheline coherency scalability stressor
New options:
- --llc-affinity-clflush, force cache flushing, x86 and ppc64 only
- --taskset-random, periodically randomize stressor CPU affinity
Detailed change log:
[Eder Zulian]
- Manual: stress-prio-inv default scheduling policy is fifo
[Ivan Shapovalov]
- Makefile: expand
$(*FLAGS)
and$(MACHINE)
non-recursively
[Julee]
- stress-gpu: fix the gpu-upload option is not effective
[Po-Hsu Lin]
- Makefile: fix machine detection for Ubuntu Bionic s390x VM
[Colin Ian King]
- Makefile: bump version
- stress-file-ioctl: replace long int with long for ioctl macros
- Makefile.machine: remove need for which command
- README.md: add another research paper reference
- core-affinity: add die, core, cluster parsing options for affinity lists
- core-helper: refactor, add helper function to check for zero'd buffer
- stress-flipflop: use PRIu64 format specifiers for uint64_t values
- core-affinity: rename str to arg to avoid name shadowing on token string str
- stress-vma: don't use void * pointer arithmetic
- stress-flipflop: add sanity check to avoid static analysis warnings
- core-shim: fix order of int declaration for vlen in shim_process_madvise
- core-affinity: swap args in calloc call
- stress-softlock: re-work drop_niceness to cater for POSIX conformant nice() returns
- stress-opcode: add missing const cast
- stress-flipflop: constify casts in stress_flipflop_uint64_cmp
- core-affinity: make stress_package_set static
- core-, stress-: replace local static nowt pointer with global g_nowt
- core-affinity: fix off-by 1 when printing max packages available
- core-affinity: parse package list, e.g 0-3,7-11
- core-affinity: parse affinity list, allow packageN to be specified
- core-affinity: parse affinity list with mix of ranges and odd,even,random,all
- Makefile.config: add built time check for cpu_set_t
- core-setting: add missing \n in string type output
- stress-flip-flop: add new single cacheline coherency scalability stressor
- stress-l1cache: unroll loops to improve throughput
- stress-*: handle nice returns in a portable way
- README.md: add another paper citation
- core-shim: add new Linux 6.13 xattrat system calls
- stress-shm-sysv: requires sys/ipc.h and sys_shm.h so check for these
- stress-llc-affinity: add cache line flushing option --llc-affinity-clflush
- stress-gpu: rename option OPT_gpu_uploads to OPT_gpu_uploads (2)
- README.md: update contributors list
- stress-gpu: rename option OPT_gpu_uploads to OPT_gpu_uploads
- stress-ng: use generalized signal handler setup
- kernel-coverage: add --keep-going to workaround gcov errors
- stress-vma: fix stress_mmapaddr_get_addr to return validated non-mapped addresses
- stress-vma: retry address randomization if address is in text or heap sections
- stress-vma: add missing comments
- stress-vma: try access test on all pages of mmap
- stress-vma: ensure test alloc is the correct number of pages in size
- stress-vma: fix incorrect func name in comment block
- core-perf: add some more perf events based on recent kernels
- Revert "stress-pthread: disable pthread_sigqueue call for CYGWIN"
- README.md: add another Cygwin fix to an issue found with stress-ng
- stress-workload: add a few more permutations of fma computation
- README.md: update bug report, replace link with git commit SHA link
- core-nt-store: improve double nt stores on x86
- stress-opcode: x86: generate random length of opcode prefix ops
- stress-rawdev: use %jd format specifiers for intmax_t
- Makefile: use a smaller set of -W settings for PEDANTIC icc builds
- core-klog: add another const in err_exceptions[]
- core-helper: add some missing comment blocks
- core-shim: remove comment about use of pragma
- core-shim: remove extraneous ( in comment
- core-shim: use arch specific cacheflush system calls
- core-rapl: only emit "perhaps run as root" message if not running as root
- README.md: Update contributors list
- stress-cacheline: unroll loops, improve performance by 33%
- stress-bitonic: unroll test and verify loops for improved speed
- stress-bubblesort: unroll loops to improve performance
- core-, stress-: replace short with short int, long with long int
- stress-ng: add --taskset-random option to randomize stressor CPU affinity
- core-job: rename stress_chop to stress_str_chop
- stress-vm: fix early termination of prime-incdec stressor
- README.md: add reiserfs bug report
- Manual: fix spelling mistake "optiob" -> "option"
- stress-prefetch: use K instead of KB for cache size
- stress-vma: use read rather than write on 8 bit pointer
- core-helper: add backtrace dumping, call when SIGABRT occurs
- core-affinity: --taskset: add "all" and "random" keywords
- stress-l1cache: fix reverse method, fix incorrect setting of data loop
- stress-brk: ensure the failure sbrk errno is being checked
- core-target-clones: add more power9,10,11 target clone build time constraints
- core-shim: limit _FORTIFY_SOURCE to 2 for ALT linux gcc for ppoll workaround
- core-shim: use shim'd types for shim_poll args
- core-shim: add shim to ppoll() and workaround fortification issues
- README.md: add another kernel commit to the 2024 kernel bug list
- stress-fp-error: remove duplicated sqrt
- core-, stress-: fflush opened writable files
V0.18.06
stress-ng V0.18.06 "stupendous scheduler stressor"
New Stressors
- --hyperbolic, hyperbolic cosh, sinh and tanh function stressor
- --ptr-chase, pointer chasing memory/cache/pointer stressor
- --dfp, _Decimal32/64/128 floating point add/mul/div stressors
- --cpu-sched, yet another scheduler stressor
New Options
- --spinmem-affinity, move processes around CPUs
- --stressor-time, log the start/finish times of stressors when using -v debug option
Detailed Changelog
[Daniel Hodges]
core-sched: Add support for sched_ext scheduling policies
[Jimmy Ho]
fix stress-prio-inv bug
[Lukas Durfina]
stress-vm: Check correct define for 128 bit nt stores
[Matteo Italia]
stress-bitops: add macro to handle undefined return for the ctz(0) case as well
[Colin Ian King]
Makefile: bump version
stress-usersyscall: move ret_libc to start of if block
stress-atomic: remove STRESS_ATOMIC_64BIT
stress-workload: add checks for HAVE_LIB_RT and HAVE_MQ_POSIX
stress-dfp: fix missing 64 and 128 bit _Decimal initializations
stress-sigill: fix MIPS build failure, remove extraneous )
kernel-coverage: reduce swap for more vm pressure
stress-mutex: remove n_cpus debug message
core-helper: fix Cygwin build issue, git_t -> gid_t
kernel-coverage: add --icmp-flood -1 --icmp-flood-max-size
kernel-coverage: add --spinmem -1 --spinmem-affinity test
kernel-coverage: remove vfork-vm option, it does not exist
core-affinity: fix build failure and warning with previous commit
core-affinity: disable affinity change debug, it can spam the output
stress-sigill: add loong64 and mips illegal instructions
core-affinity: voidify unused arg use_affinity
stress-cpu-sched: move n_cpus and cpus
stress-ng: allow one to specify odd or even CPUs with --taskset option
stress-tlb-shootdown: use --taskset cpu mask
stress-cache: fix more resource leak on array cpus
stress-cache: handle sched_getcpu failure with error message and fix resource leak on cpus
stress-spinmem: fix resource leak on array cpus
stress-llc-affinity: fix resource leak on cpus array
stress-ipsec-mb: add build time check for init_mb_mgr_avx
test/test-libipsec-mb.h: include header
stress-race-sched: use --taskset cpu mask to select cpus for cpu-affinity setting
stress-mutex: use --taskset cpu mask for --mutex-affinity option
stress-mcontend: use --taskset cpu mask to select cpus for cpu-affinity setting
stress-llc-affinity: use --taskset cpu mask to select cpus for cpu-affinity setting
stress-cpu-sched: use --taskset cpu mask to select cpus for cpu-affinity setting
stress-cacheline: use --taskset cpu mask to select cpus for cpu-affinity setting
stress-cache: use --taskset cpu mask to select cpus for cpu-affinity setting
core-affinity: use correct number of cpus to scan cpuset
stress-spinmem: use --taskset cpu mask for --spinmem-affinity option
core-affinity: add helpers to get/free array of useable cpus
stress-spinmem: add --spinmem-affinity option to move processes around CPUs
stress-atomic: disable 128 bit atomics for now
stress-fcntl: add a few more NetBSD specific fcntl commands
stress-fcntl: fix incorrect #endif placement
stress-fcntl: add some FreeBSD + Darwin fcntl commands
kernel-coverage: add ext2 and ext3 into the fs stress mix
README.md: update nodes for Android NDK builds
core-pthread: include <pthread.h> if it exists
stress-workload: include <time.h> to fix Android build issues
core-helper, stress-workload: include <time.h> to fix Android build issues
stress-crypt: ensure orig_setting is eos terminated, only copy what is required
README.md: add note on LTO performance improvements
README.md: document various build options
stress-ptr-cached: add metric on duration per pointer chase operation
stress-zlib: add anonymous mapped name for zlib data checksums
stress-zero: add anonymous mapped name for read/write buffers
stress-workload: add anonymous mapped name for generic data buffer
stress-vma: add anonymous mapped name for vma metrics
stress-vm: add anonymous mapped name for bit error counter page
stress-vm-addr: add anonymous mapped name for bit error counter page
stress-unshare: add anonymous mapped name for unshare metrics
stress-tlb-shootdown: add anonymous mapped name for tlb-shootdown buffer
stress-sysinval: add anonymous mapped name for various page mappings
stress-sysfs: add anonymous mapped name for shared pthread context data
stress-swap: add anonymous mapped name for mmap'd swap page
stress-sparsematrix: add anonymous mapped name for mmap'd sparse data
stress-sem: add anonymous mapped name for globally shared semaphore
stress-seal: add anonymous mapped name for write buffer
stress-schedmix: add anonymous mapped name for shared semaphore mappings
stress-rmap: add anonymous mapped name for page padding mappings
stress-ptr-chase: add anonymous mapped name for pointer nodes and pointers
stress-pseek: add anonymous mapped name for pseek process state and I/O buffers
stress-plugin: add anonymous mapped name for signal counter data
stress-pkey: add anonymous mapped name for pkey pages
stress-pipe: add anonymous mapped name for read/write buffers
stress-peterson: add anonymous mapped name shared lock structure
stress-msync: add anonymous mapped name for I/O read buffer
stress-mmapfiles: add anonymous mapped name for shared mmap'd file information
stress-mmap: add anonymous mapped name for page pointers and page index
stress-mlockmany: add anonymous mapped name for mlocked pages
stress-misaligned: add anonymous mapped name shared page for misaligned transactions
stress-min-nanosleep: add anonymous mapped name for nanosleep delay tracking
stress-mergesort: add anonymous mapped name for sorting data buffer
stress-memthrash: add anonymous mapped name for memory thrashing buffer
stress-memcpy: add anonymous mapped name for memcpy buffer
stress-matrix: add anonymous mapped name for matrices a,b and r
stress-matrix-3d: add anonymous mapped name for matrices a,b and r
stress-malloc: add anonymous mapped name for malloc tracking information
stress-madvise: add anonymous mapped name for single page mapping
stress-lsm: add anonymous mapped name for lsm data buffer
stress-jpg: add anonymous mapped name for rgb data and row pointers
stress-icache: add anonymous mapped name for object code
stress-far-branch: add anonymous mapped name for each page mapped for functions
stress-dfp: fix anonymous mapped page name, fp -> dfp
stress-dev: add anonymous mapped name for device state information
stress-cyclic: add anonymous mapped name for latencies
stress-cpu-sched: add anonymous mapped name for node masks
stress-context: add anonymous mapped name for context data
stress-atomic: add anonymous mapped name for atomic-info data
stress-ptr-chase: compare total with integer rather than float value
stress-monte-carlo: ensure results array is correctly initialized
stress-icache: catch and debug state if SIGSEGVs occur
core-helper: improve debug dump of SIG* issues
core-asm-x86.h: add cpuid implementation for 32 bit -fPIC builds on older toolchains
stress-atomic: add support for 128 bit atomics on 64 bit systems
stress-ng.h: minor clean ups, no code change
stress-ng: replace struct stressor_info with stressor_info_t
stress-has: replace struct stress_hash_method_info with typedef stress_hash_method_info_t
stress-list: replace struct list_entry with typedef list_entry_t
core-out-of-memory: implement stress_set_oom_adjustment for FreeBSD
core-out-of-memory: inline helper function stress_args_name
core-helper: implement stress_parent_died_alarm for FreeBSD
core-helper: use getdtablesize for max fd if it is available
core-helper, stress*: add stress_zero_metrics helper to zero metrics
stress-cpu-sched: rename pid to child_pid to avoid name shadowing
core*, stress*: cast return from calloc to appropriate type
core*, stress*: cast return from malloc to appropriate type
core-target-clones.h: add power11 to target clones
stress-syscall: fix kfreebsd Debian build, include <time.h>
stress-syscall: fall back to gettimeofday if clock_gettime is unavailable
stress*: cast munmap 1st arg and mmap return to appropriate types
stress-cpu-sched: add helper function to setup HR timer
stress-intmath: fix cut-n-paste errro in type, should __int128_t instead of __int64_t
stress-cpu-sched: add doing nothing asm for empty err exit path
stress-cpu-sched: remove check on HAVE_SCHED_GETATTR for prio variables
stress-cpu-sched: make declaration of cpus not dependant on HAVE_SET_MEMPOLICY
stress-cpu-sched: only use SCHED_RESET_ON_FORK if it is defined
core-target-clones.h: add Lunarlake target clones
stress-cpu-sched: add SCHED_RR, SCHED_FIFO and SCHED_DEADLINE schedulers
stress-hyperbolic: add hyperbolic cosh, sinh and tanh function stressor
stress-inotify: clean up some comments
stress-intmath: add support for 128 bit integers
stress-workload: default --workload-threads to 2 instead of zero
stress-fanotify: remove from scheduler clas
stress-inotify: remove from scheduler class
stress-inotify: fix spelling mistake "timed" -> "timed out"
Manual: add SCHED_EXT to supported scheduling policies
README.md: add another kernel bug reference
core-sched: move SCHED_EXT #define to core-sched.h
README.md: Update contributors list
stress-ptr-chase: add new pointer chasing cache/pointer stressor
README.md: Updat...
V0.18.05
stress-ng V0.18.05 "manic machine masher"
New Stressors
- --sighup, SIGHUP stressor
- --pseek, pwrite/pread concurrent seek position stressor
New Options
- --icmp-flood-max-size to specify max random icmp flood packet size
- --far-branch-flush to force instruction cache flushing
- --sem-sysv-setall for SYS-V semctl SETALL command
- --sem-shared for shared semaphore across sem stressors
Detailed Changelog
[Denis Ovsienko]
- README.md: Update Haiku particulars.
- stress-fcntl: fix multiple workers on Haiku
- stress-touch: Fix file name handling in stress_touch_dir_clean().
- Exempt Haiku from scheduling tests.
[Lukas Durfina]
- stress-vm: use correct method names for error messages
- stress-fp: support bf16
[Colin Ian King]
- Makefile: bump version
- README.md: add another kernel bug report
- stress-tree: only pack tree struct for 64 bit x86-64
- stress-iomix: don't report an error in EINTR on lseek
- stress-file-ioctl: only report there are no ioctls tested on instance 0
- stress-ng.h: define NAME_MAX for systems that don't define this
- stress-pseek: only define stress_peekio_pthread if using pthreads
- README.md: add another kernel bug reference
- stress-bad-ioctl: fix lock segfault on removal
- stress-cpu: add comment about pcc warning in union exerciser
- core-*: add gcc function attribute returns_nonnull for extra sanity checking
- stress-vecfp: minor space adjustments in array declaration
- stress-jpeg: break some long lines
- Manual: add notes about support for stress-ng
- README.md: add some more kernel bugs and performance improvement links
- README.md: Add another research paper link
- stress-fd-race: add even/odd fd stride close to random closing
- kernel-coverage: fix btrfs option -csum, should be --csum
- stress-close: clean up some block comments
- Manual: Fix typo "spinemm" ->" "spinmem"
- Manual: minor change, "note - " to "note: "
- README.md: Update number of stressors, 350+
- stress-dev: rename stat bufs to avoid name shadowing
- core- *: add gcc function attribute nonnull for extra sanity checking
- README.md: Add Lukas Durfina to contributor list
- stress-sighup: add send/recv handshake over pipe and sync on child death
- stress-sighup: add missing bogo-op counter
- stress-pseek: cast offsets to intmax_t to print with %j format specifier
- stress-icmp-flood: voidify return from stress_get_setting
- stress-sighup: add SIGHUP stressor
- stress-sigtrap: Fix short help, it has the wrong description
- stress-sigabrt: Fix short help, it has the wrong description
- stress-sigabrt: fix typo, SIGABORT -> SIGABRT
- core-asm-riscv.h: fix typo in comment
- stress-icmp-flood: add new --icmp-flood-max-size option
- stress-schedmix: remove trailing whitespaces
- stress-schedmix: add some randomness to deadline times
- stress-schedmix: add select and pselect timed delays to sched mix
- Makefile.machine: replace objdump with readelf to detect machine type
- Makefile: add $(PRE_V) before eigen if statement
- stress-jpeg: replace division with recipriocal multiply in plasma
- stress-icmp-flood: don't keep on setting packet up on each loop
- kernel-coverage: add /usr/sbin to $PATH
- stress-fp: fix incorrect placement of #if defined for ibm128 division
- stress-fp: add IBM powerpc ibm128 floating point add/mul/div operations
- stress-far-branch: add --far-branch-flush option to try to flush instruction cache
- README.md: update number of stressors, 350 are now available
- core-helper: add root like detection for Cygwin
- stress-dev: exercise more sound control ioctls
- core-config-check: enable oom-avoid for containerized environment
- stress-daemon: rename err exit labels for improved readability
- core-klog: log audit kernel log messages
- stress-dev: use strscpy for safe copying of strings
- stress-pseek: pwrite/pread concurrent seek position stressor
- Manual: fix --hdd rd-seq option description
- Manual: fix --hdd rd-rnd option description
- stress-hdd: ensure hdd_bytes_max is set to the max number of bytes written
- kernel-coverage: add --change-cpu per stressor and use --ksm for vm stressor case
- stress-iomix: exercise cachestat(2) with invalid flags and invalid fd
- stress-cgroup: add more cgroup controls to read/write
- stress-dev: exercise ioctl command TIOCCONS
- stress-dev: add /dev/sg* devices to be exercised by stress_dev_scsi_blk
- stress-dev: fix DM_LIST_VERSIONS ioctl and add some invalid ioctl calls
- stress-dev: fix dm ioctl stressor, use /dev/mapper/control
- stress-ng: remove check to stress_cwd_readwriteable
- core-config-check: add hint to use --oom-avoid on low memory systems
- Makefile: add source dependencies for stress-eigen-ops.o
- kernel-coverage: add more per file system mount options for increased kernel coverage
- stress-dev: exercise /sys/dev/* files on Linux systems
- core-helper: add naive Haiku libc information detection
- README.md: update contributors list
- stress-binderfs: exercise binderfs dev entry removal
- stress-mergesort: remove ALWAYS_INLINE from a comment
- stress-sigq: exercise invalid rt_sigqueueinfo call
- stress-xattr: exercise xattr on TMPFILE
- stress-tlb-shootdown: break func args into multiple lines
- stress-timerfd: minor alignment of data in source
- stress-sparsematrix: minor optimization hints
- stress-sock: make stress_send_error a PURE function
- stress-full: only declare and use variable w for linux builds
- README.md: Add LP#2080853 bug to known bugs found by stress-ng
- stress-full: enable of Solaris, FreeBSD and NetBSD
- stress-full: report errno for seek failures
- stress-af-alg: fix two heap memory leaks
- stress-af-alg: fix inverted assocdata allocation failure check
- Makefile: add rebuild dependency on Makefile.machine
- Makelfile.machine: remove tabbed empty line
- core-sort: add copy/swap helper functions for specific and generic sizes
- stress-fcntl: exercise Linux 6.12 F_CREATED_QUERY fcntl command
- stress-acl: stress_acl_cmp: constify acl1 and acl2 arguments
- core-helper: stress_get_libc_version: make educated guess that musl-libc is being used
- stress-file-ioctl: voidify function arg fd if it's not used
- core-helper: stress_get_fs_info: voidify filename if it's not used
- Makefile: make musl-gcc detection more robust
- README.md: Add another research paper link
- Makefile: only define _FORTIFY_SOURCE if it's not defined
- stress-numa: fix typo in comment
- kernel-coverage: add --interrupts option to each test run
- kernel-coverage: add --acl-rand option to acl stressor
- kernel-coverage: add --mmap-slow-munmap to mmap stressor
- kernel-coverage: add --memfd-zap-pte option to memfd stressor
- kernel-coverage: add --get-slow-sync get stressor option
- kernel-coverage: add --swap-self swap option
- kernel-coverage: add --sockfd -1 --sockfd-reuse test case
- kernel-coverage: add --yield -1 --yield-sched scheduler tests
- kernel-coverage: add --c-state to cpu stress test case
- kernel-coverage: add --cpu -1 --raplstat 1 --rapl test case
- kernel-coverage: add --sem-shared option for sem stressor
- kernel-coverage: add --sem-sysv-setall sem-sysv test case
- stress-af-alg: put fixed sized buffers on the stack rather than heap
- core-helper: make blocks the correct unsigned type
- stress-file-ioctl: add some per-file system specific ioctls
- kernel-coverage: add -v verbose option when running stressors
- kernel-coverage: run procfs stressors for longer
- stress-poll: exercise invalid fd being passed into poll()
- stress-sem-sysv: add option --sem-sysv-setall
- stress-dev: exercise linux /dev/bsd/* scsi block devices
- core-setting: print bool type values as true or false
- core-setting: remove need for dup'ing name string
- stress-dev: replace __u32 with uint32_t to fix musl libc builds
- core-*: print per-stressor settings when -v is enabled
- stress-dev: check for autofs #defines for stress_dev_autofs_linux
V0.18.04
stress-ng V0.18.04 "canny kernel crusher"
Bugfix release, bug fixes:
- fix vm memory % size parameter handling, https://bugs.launchpad.net/ubuntu/+source/stress-ng/+bug/2078871
- stress-numa: make all of buf map to the current numa node for correct NUMA page moving
- stress-af-alg: remove JMP debug message
Detailed Changelog:
- Makefile: bump version
- Makfile: add Makefile.machine to make dist rule
- stress-dev: clean up build warning on non-x86 builds
- stress-numa: rename ptr with str to fix name shadowing warning
- stress-vm: remove debugging setting if in statement
- Makefile.machine: add check for existence of readelf
- core-ftrace: remove PURE attribute on void return functions
- stress-*: fix vm memory % size parameter handling
- stress-vm: provide more information when mmap fails
- stress-numa: make all of buf map to the current numa node
- stress-numa: parse /proc/self/numa_maps to see if buf is on the expected node
- core-shim: remove a space
- core-*: add PURE attribute to pure functions
- core-killpid: constify variable saved_errno
- core-cpu: re-order CPUID strings, add some missing examples
- stress-umount: remove extraneous empty line
- stress-udp: add missing empty line
- stress-tmpfs: make variable i const
- stress-sparsematrix: move pointer next to inner scope
- stress-sockpair: convert nested if statement into switch statement
- stress-sigurg: inline helper function stress_send_error
- stress-sigsegv: remove empty line
- stress-sigrt: remove empty line
- stress-set: put rlimit resource ids into a const rlimit_resources array
- stress-session: make function argument err const
- stress-rotate: make variables lo and hi const
- stress-rmap: clean up switch statement, make i a register
- stress-resched: make variables percent and scale const
- stress-pci: reduce scope of pointer next
- stress-opcode: make variable tmp const
- stress-nice: make variable which const
- stress-mutex: make variable max const
- stress-mmap: make variable offset const
- stress-mlock: make variable mlocked const
- stress-*: add power10 builtin check support
- stress-mknod: constify variable j
- stress-memcpy: use the o1 and o2 variants in the "all" method
- stress-membarrier: remove empty line
- stress-led: reduce scope of pointer 'next'
- stress-klog: make buflen const
- stress-insertionsort: constify variable tmp
- stress-hdd: constify variable v
- stress-hash: explicitly use float values in chi computation
- stress-dev: add naive simple /dev/autofs exerciser
- stress-chattr: add mmap'd page modification to file, add metrics
- stress-dev: exercise /dev/cpu/0/msr ioctl reading of TSC
- stress-dev: add /dev/cpu/0/cpuid device stressor
- core-*: don't include <sys/sysctl.h> on Linux targets
- stress-cpu: constify some variables and add register to some variables
- stress-clock: constify variable clkid
- stress-chattr: constify variable bitmask
- stress-cgroup: constify variable offset
- stress-cacheline: constify variable 'now'
- stress-mlockmany: remove stray const in start of source
- stress-bitops: constify some variables
- stress-apparmor: constify variables, fix p wrap overflow using the ternary operator
- Manual: add in recursive hints to CPU stressor manual
- Makefile: improve machine detection and disable -fmodulo-sched for S390x builds
- stress-*: constify stressor_info_t structs
- stress-aiol: constify offset
- stress-af-alg: remove JMP debug message
- stress-acl: constify variables, clean up some code alignment
- stress-: voidify returns from sig() calls
- stress-sem: add --sem-shared option to share 1 semaphore with all sem instances
V0.18.03
stress-ng V0.18.03 "persistent process pressurizer"
New Stressors:
lockmix - mixed file locking stressor
fibsearch - Fibonacci search (like bsearch, but uses less compute)
bubblesort - inefficient classic bubble sort
New options:
--c-state - show C state residency at end of stress testing
--pause N - pause N seconds between each stressor invocation to allow for system to cool
,
New stressor classes:
fp, integer, ipc (inter-process communication), sort and vector
Detailed changelog:
[Aboorva Devarajan]
- core-target-clone: fix power9 target build issue
[Colin Ian King]
- Makefile: bump version
- stress-ng: add vector class to --class option
- stress-dekker: fix failures for out-of-order processors
- stress-ng: fix -x option for options with - in the name
- stress-syscall: rename sigset to sigmask to avoid gcc-4.4 variable
shadowing warning - stress-syscall: rename clock to clock_id to avoid gcc-4.4 variable
shadowing warning - stress-shm-sysv: rename syscall to syscall_name to avoid gcc-4.4
variable shadowing warning - stress-jpeg: rename func param time to whence to clean up gcc-4.4
name shadowing warning - stress-fd-race: rename dirfd to dir_fd to avoid gcc-4.4 variable
shadowing warning - stress-enosys: rename func param random to do_random to avoid name
shadowing gcc 4.4 warning - core-shim: rename dirfd to dir_fd to avoid gcc-4.4 variable shadowing
warning - README.md: move kernel issue to correct place in README file
- README.md: add another kernel issue to bug list for 2024
- stress-module: only increment bogo counter on successful module load
- stress-module: check for .ko module name ending
- stress-module: update module search failure message for compressed kos
- stress-module: ignore compressed .xz modules
- stress-module: try several test modules rather than just test_module
- core-shim: return ret instread of errno in shim_posix_fallocate
- stress-zlib: reduce checksum to 32 bits for faster compute
- core-shim: remove unused variable ret
- core-shim: make shim_posix_fallocate return error code on failure
- core-shim: check ret rather than errno on posix_fallocate failure
- core-shim: cater for EOPNOTSUPP in posix_fallocate failure
- stress-lsm: move ctx and ctx_end to inner loop scope
- stress-sigurg: clear bogo-op counter flag if child is killed during
bogo inc - README.md: Add another research paper link
- Manual: fix spelling mistake "subraction" -> "subtraction"
- test/test-libgbm.c: replace whitespace with tabs
- stress-dirdeep: remove debug printf statement
- stress-personality: check for no personalities using supported
callback - stress-efivar: remove need for packed attribute
- stress-get: exercise getlogin at end of stressor loop
- stress-uprobe: report why uprobe cannot be run with static builds
- stress-get: remove redundant #ifdef
- stress-bind-mount: check for multiple stat failures on bind mounted
directory - stress-efivar: fix access checks and check on attribute
- stress-efivar: specify efi var fields in terms of uint8_t types
- README.md: add another kernel bug found with stress-ng
- stress-inotify: remove const from helper void arg
- core-cpuidle: ensure there is plenty of space for filename snprintf
formatting - core-shim: only call stime for glibc < 2.31
- stress-lsearch: clean up some more pointer constification warnings
- stress-lsearch: clean up some constification warnings
- stress-fibsearch: remove re-declaration of pointer ptr
- stress-bsearch: clean up some constification warnings
- stress-binderfs: stress_binderfs_supported: return -1 for non-linux
builds - stress-zlib: correct comment for function stress_rand_data_inc16
- stress-mergesort: minor optimization re-ordering tweaks
- stress-heapsort: use copy and swap helper for different data sizes
- stress-sigq: add sigq to IPC class of stressors
- stress-*: add ipc (inter process communication) class
- stress-misaligned: use CLOCK_PROCESS_CPUTIME_ID for timer
- core-time: stress_duration_to_str: add flag report_secs to always
report secs - stess-cgroup: add mount EBUSY retry. Also add mount/umount retry debug
- core-config-check: fix memory load on string lowstr
- stress-lockmix: add a mixed file locking stressor
- core-config-check: warn if the run environment is not suitable for
stress-ng - Manual: Fix grammar on --log-lockless description
- *.c: remove trailing tabs and white space from ends of lines
- stress-lsearch: use simpler check to speed up comparisons
- stress-fibsearch: make array indexes ssize_t for potential -ve ranges
- stress-bsearch: rename bsearch-ternary to ternary in method option
- stress-bsearch: add a 3-way ternary search method
- stress-lsearch: add a key sentinel search method
- Makefile: add fibsearch (Fibonacci search) stessor
- stress-hash, stress-tree: add stressors to search class
- stress-bubblesort: rename bubblesort method to bubblesort-fast
- stress-sort*: add sort class
- stress-bubblesort: add bubblesort stressor
- core-cpuidle: name busy state C0 for x86 and BUSY for other arches
- README.md: add C-state residency example
- stress-vm: stress_vm_mod: replace while loop with two if statements
- core-cpuidle: add C-state measurements with --c-state option
- kernel-coverage: add umount sanity check on umount failures
- stress-*: add integer and fp classes
- stress-vec*: remove CLASS_CPU_CACHE flag
- stress-fd-race: add helper to close fds in different orders
- stress-close: exercise flag field with close_range call
- stress-inotify: remove empty line
- stress-oom-pipe: fix valid fd check before closing the fd
- stress-tee: ensure fd is closed on error exit path
- stress-poll: use correct array index variable for closing fds
- stress-link: exercise pathconf on oldpath instead of testpath
- stress-session: close pipe fds on error exit path
- stress-shm: close pipe fds on error exit path
- stress-vm-segv: close pipe fds on error exit paths
- stress-key: replace vararg system call with 5 arg system call
- stress-fd-race: fix error return paths not cleaning up allocated
resources - stress-close: clean up some file descriptor handling
- stress-tee: fix error handling closes on pipe file descriptors
- stress-x86syscall: initialize time1, time2 to zero
- stress-workload: add check for non-null threads array
- stress-sysbadaddr: close pipe fds if pipe succeeds
- stress-inotify: avoid double close on fd
- stress-syscall: fix fd leaks on pipes on tee syscall stress case
- stress-daemon: clean up file descriptor closing on error return paths
- core-helper: fix pipe file descriptor leak on error path
- core-asm-ret: constify stress_ret_opcode
- Makefile: add -fivopts -fmodulo-sched optimization options
- core-target-clones: add power10 cpu support
- Makefile: remove incorrect scan-build basename check
- stress-vma: fix void * pointer arithmetic warning on data + offset
- stress-*: exercise pathconf options on various files
- stress-get: exercise getlogin since this is a syscall on *BSD systems
- core-lock: use a single mapped page for all shared locks
- core-lock: put lock functions into per lock type struct
- README.md: add another reference link
- stress-waitcpu: only use umwait for x86-64 and LP64 (non-x32 builds)
- core-helper: rename stress_x86_smi_readmsr64 to stress_x86_readmsr64
- core-lock: provide created locks a name to track locks
- core-lock: add lock type into VMA anon name
- stress-numa: mmap all allocations and name the anon VMAs
- stress-numa: add simple page data checking
- stress-ng: remove "signal" from signal termination message
- stress-opcode: set child signal handlers before stress_shared_readonly
- stress-*: add some more pointer constifications
- stress-swap: produce more meaningful swap out metrics
- stress-misaligned: replace "got stuck" with "not fully tested"
- stress-resources: add stress_resources_access to access various
resources - stress-utime: exercise a wide range of huge times with utime
- Manual: add missing --ipsec-mb-feature option noaesni
- stress-cyclic: reduce spamming of the same error message with many
instances - stress-binderfs: check in init stage if binderfs mounts are supported
- stress-intmath: fix incorrect class flags, should be CLASS_CPU |
CLASS_COMPUTE - stress-ng: make g_opt_pause unsigned int and add pause time in
progress time - core-log: increase per line log buffer to 8K
- stress-ng: add pause option to add pauses between each stressor
invocation - stress-ng: show settings even if no stressors are run
- core-rapl: align stats with the tz stats
- stress-intmath: add signed integer math + - * % operations
- stress-waitcpu: replace ;; with ;
- stress-prefetch: replace ;; with ;
- stress-chattr: replace ;; with ;
- core-vmstat: replace ;; with ;
V0.18.02
stress-ng V0.18.02 "punchy process pounder"
New stressors:
- bitops - integer bit operations stressor (from Standford bithacks and Hacker's Delight)
- spinmem: spin memory access stressor (for memory contention)
- fd-race: file descriptor open/access/close race stressor
- sigill - SIGILL signal stressor
- sigvtalrm - SIGVTALRM signal stressor
- sigurg - SIGURG signal stressor
New options:
- rapl - show Intel x86 power utilization using RAPL (Running Average Power Limit)
- raplstat - show periodic Intel x86 power utilization using RAPL
Detailed changelog:
[Chunyu Hu]
- stress-hrtimers: follow sched setting
[Myd Xia]
- stress-ng: add qnx support
[Colin Ian King]
- README.md: remove extraneous spaces in examples
- README.md: Add RAPL power example
- README.md: add a I/O permuted stressor example
- stress-swap: clean up error messages when using stress_get_fs_type
- core-helper: add ZFS magic
- Add ELISA presentation "Improved system stressing with stress-ng"
- Manual: fix spelling mistake "desciptors" -> "descriptors"
- stress-physpage: fix zero fd check on close
- stress-chattr: initialize IOC_GETFLAGS arg before calling ioctl
- stress-sigurg: only use O_ASYNC if it is defined
- stress-pty: include sys/ioctl.h, cleans up cygwin build warning
- stress-sockfd: move rc and nbytes declaration into a code block
- stress-sockfd: add #ifdef around FIONREAD ioctl
- stress-physpage: use stress_mmap_populate for MAP_POPULATE mmaps
- stress-zero: cast ptr to clean up mmap warnings
- stress-sysfs: cast ptr to clean up mmap warnings
- stress-procfs: cast ptr to clean up mmap warnings
- stress-physpage: cast ptr to clean up mmap warnings
- stress-munmap: cast mmap return to munmap_context_t * to clean up pedantic warning
- stress-efivar: cast efi_var to void * for mmap and munmap
- stress-fork: cast unmap_start to void * for munmap calls
- stress-dev-shm: cast addr for mmap, mummap and msync calls
- core-cpuidle: clean up pedantic warning with gcc 10.3.0
- core-sched: remove unused function stress_set_deadline_sched
- Manual: add missing deadline cyclic-policy option, rename ff to fifo
- stress-cyclic: clear up pedantic warnings when no cyclic methods are available
- stress-cyclic: clear up pedantic warnings when no scheduling policies are available
- stress-logmath: fix build issue on Nixos, need lvalue
- stress-expmath: fix build issue on Nixos, need lvalue
- stress-sigurg: ignore return from F_SETFD fcntl call
- stress-gpu: trim newline off infoLog messages
- stress-open: report number of fds to be used after they have been adjusted
- stress-open: shrink number of fds if allocation is too large
- stress-oom-pipe: shrink number of fds if allocation is too large
- stress-sockfd: limit to 1024 * 1024 file descriptors
- stress-fd-race: limit to 1024 * 1024 file descriptors
- stress-userfaultfd: add missing HAVE_POLL_H and HAVE_POLL checks
- stress-sysbadaddr: add missing HAVE_POLL for bad_poll function
- stress-sigurg: remove redundant variable msgs
- stress-fd-race: remove unused variable writes
- stress-mq: only declare fds if poll() is available
- Makefile: disable smi stressor for regression tests
- stress-signest: add missing SIGURG signal
- stress-shm: retry shm mmap without MAP_ANONYMOUS if EINVAL is returned
- stress-fractal: cast info.data to void * for munmap call
- stress-ng: cast mmap return to stress_pid_t *
- stress-fd-race: move stress_fd_race_context_t declaration
- stress-fd-race: add build time check for pthread barrier support
- stress-bad-alt-stack: use zero_stack instead of bad_stack
- stress-ng: use localtime for completion times
- stress-ng: report permuted stressors and show progress
- stress-sigurg: add a SIGURG out-of-band socket signal stressor
- stress-sigpipe: initialize data before loop
- stress-sigpipe: remove need for a parent/child mechanism
- stress-sigill: add a SIGILL illegal instruction signal stressor
- stress-sigvtalrm: fix help information
- stress-*: add CLASS_SIGNAL class flags to stressors that generate signal loads
- stress-sigvtalrm: use user time as run time count check not wallclock time
- stress-sigvtalrm: sanity check signal count after 1 second of run time
- stress-sigvtalrm: add SIGVTALRM signal stressor
- stress-*: add built time check for poll() system call
- stress-fd-race: randomize syscalls on fd's
- README.md: add another link to a research paper
- stress-ng: sanity check if excluded stressor name is valid
- README.md: update number of stressors
- stress-fd-race: add ignore list of files not to exercise
- core-numa: ensure pointer str is initialized to NULL
- stress-fd-race: add a new stressor to race file descriptor access and closing
- core-lock: use #if/#elif rather than many #if/#endif sequences
- core-ftrace: make char * pointer num const
- stress-h*: add syncwait proc state for --sync-start state waits
- stress-*: add syncwait proc state for --sync-start state waits
- core-ignite-cpu: remove unused field cur_freq from struct stress_cpu_setting_t
- core-cpu-cache: rename index to idx to avoid name shadowing on index()
- core-affinity: only set cpu affinity if CPU affinity bits are set
- core-time: stress_duration_to_str: emit 0 secs if no time has been formatted
- stress-brk: add sanity check for sbrk always returning out of memory
- stress-spinmem: add CLASS_CPU_CACHE to class flags
- stress-ramfs: abort early on mount/umount EPERM errors
- stress-ramfs: cater for EPERM on containerized umount failure
- stress-io-uring: cater for EPERM on containerized io-uring setup permission denied
- README.md: make packages list more compact
- stress-umount: cater for EPERM on containerized mount failure
- stress-reboot: cater for EPERM on containerized reboot call failure
- stress-ramfs: cater for EPERM on containerized mount failure
- stress-netlink-proc: fix skipped rc code, it should be EXIT_NO_RESOURCE
- stress-numa: skip stressor on EPERM on get_mempolicy
- stress-netlink-proc: skip stressor on EPERM on bind (containerized)
- stress-key: skip stressor on EPERM on add_key in container
- stress-fp-error: relax fp pedantic error checking for musl-gcc builds
- core-helper: fix macro typo HAVE_COMPILER_MUSC -> HAVE_COMPILER_MUSL
- stress-binderfs: cater for EPERM on containerized mount failure
- stress-cgroup: cater for EPERM on containerized mount failure
- core-thrmal-zone: constify dirent pointer entry
- core-thrash: constify dirent pointer d
- core-mounts: constify pointer mnt
- core-resources: stress_resources_free: constify args parameter
- core-rapl: constify pointer entry
- core-numa: constify pointer str
- core-process: constify pointer ptr
- core-module: constify pointer l
- core-cpu-cache: only define type stress_generic_map_t for Linux builds
- core-cpuidle: constify pointers cpu_d and cpuidle_d
- stress-rdrand: fix build issues where HAVE_SEED_CAPABILITY is not defined
- core-parse-opts: add stress_get_{int|uint} prototypes
- stress-sigabrt: remove volatile from struct pointer sigabrt_info
- README.md: Add Linux Foundation 2024 ELISA presentation link
- core-madvise: use unsigned int for major and minor
- core-perf: add maple_tree/ma_op event
- stress-bind-mount: skip stressor we don't have access
- stress-waitcpu: Fix umwait0 and umwait1
- stress-*: name mmap'd regions to help debugging
- core-helper: add libc version to yaml output
- stress-ng: remove trailing tab
- core-lock: name anonymous mappings
- stress-ng: name anonymous mappings
- core-*: name anonymous mappings
- stress-vma: use stress_set_vma_anon_name to set anon vma name
- stress-vma: add more prctl macro build time checks
- Manual: update vma stressor description, 32 pages now being exercised
- stress-vma: name anonymous pages with prctl
- stress-vma: move stress_vma_continue_flag to enable mapped regions
- stress-ng: remove empty lines, reformat a comment block
- stress-ng: inline helper function stress_get_num_stressors
- stress-ng: inline helper function stress_append_stressor
- stress-ng: munge stessor names using stress_readable_name helper
- stress-ng stress_run_sequential: remove continue if statement
- stress-jpeg: remove debug
- stress-jpeg: fix overflow with brown noise generator
- stress-ng: stress_exclude_unsupported: add check for null stressor->info
- stress-spinmem: new spin write/read parent/child stressor
- stress-ng: add stress_readable_name to munge stressor names into a readable form
- stress-ng: remove stressor id, it's now deprecated
- stress-ng: stress_exclude_unsupported: match stressors by address and not id
- stress-ng: rework if (ss->ignore.run) comparisons
- stress-ng: remove stressor_find_by_name
- stress-ng: remove need to call stressor_find_by_id to find stressor
- stress-netlink-task: add static analysis sanity check on nlmsgbuf_len
- stress-opcode: check for small text lens before proceeding
- stress-signess: use STRESS_BIT_ULL for bitmask setting (part 2)
- bash-completion: refresh with new stressor options
- stress-chroot: add missing ( ) around && errno expressions
- stress-ng: fix SIGTERM on parent causing child to return bogus EXIT_SIGNALED
- stress-sock: set starting port to 2000
- stress-*: use globally defined MIN_PORT, MAX_PORT and cater for port wrap-around
- core*: stress-*: Fix various spelling mistakes and typos
- stress-usersyscall: Fix spelling mistake "syscallls" -> "syscalls"
- stress-chroot: allow EINVAL and ENAMETOOLONG for Haiku chroot syscall
- stress-madvise: add missing help in opts for unsupported builds
- stress-cache: make cache_flags no...
V0.18.01
stress-ng V0.18.01 "synchronized synthetic stressor"
New stressors:
- --min-nanosleep to measure minimum time nanosleep will sleep
New options:
- --sync-start to synchronize the start of stressing with invoked stressor instances
- --mmapfork-bytes to specify mmap size
- --yield-sched to specify scheduler type (deadline | idle | fifo | other | batch | rr)
- --pci-dev option to specify a specific PCI device to exercise
Detailed changelog:
[Daniel Andriesse]
- stress-vecwide: fix verify option by setting results vector res
[Po-Hsu Lin]
- stress-cache: check RISCV_HWPROBE_EXT_ZICBOZ support for
stress_cache_bzero
[Sergey Matyukevich]
- mmapfork: add --mmapfork-bytes option to specify mmap size
[Colin Ian King]
- Makefile: bump version
- stress-ng: cast s_pids to void * in munmap to clear up OpenHipster build warning
- stress-fsize: reduce scope of variable offset
- stress-pci: reduce scope of i and n_devs
- stress-landlock: reduce scope of ruleset_fd
- stress-cgroup: reduce scope of array values and make it static const
- stress-cache: reduce scope of some variables
- stress-munmap: add sscanf string size limit to avoid potential buffer overflows
- core-thermal-zone: use PRIu32 format specifier for uint32_t type
- core-madvise: add sscanf string size limit to avoid potential buffer overflows
- stress-chroot: just report chroot escapes with instance 0
- stress-ng: make stress_pid_t state flag 8 bits
- stress-kvm: add early /dev/kvm open permission checking
- stress-fractal: report co-ordinates as (xmin, ymin) .. (xmax, ymax)
- stress-ng: comment the stress_pid_t helper functions
- stress-ng: add atomic load/store helpers for stress_pid_t state
- core-shared-heap: increase initial size of shared heap
- stress-ng: always send a SIGCONT to a waiting process
- stress-prio-inv: indicate a force killed bogo op-counter state when child exits
- stress-ng: remove stress_sync_start_cont, and remove debug
- stress-open: don't populate mmap'd fd array, it may not be all used
- stress-ng: stress_sync_start_cont_list: check against number of pids in list
- stress-ng: stress_sync_start_cont_list: take into account finished stressors
- stress-timerfd: configure timer after sync start has completed
- stress-ng: remove unused variable waiting
- stress-ng: add delay while waiting for stressors to start in loop
- stress-timer: configure timer after sync start has completed
- stress-itimer: configure timer after sync start has completed
- stress-munmap: fix incorrect clz where size_t is not long long
- stress-min-nanosleep: fix incorrect clz where size_t is not long long
- core-thermal-zone: clean up formatting of multiply tz names
- stress-goto: reduce optimization level for clang
- stress-yield: fix build for various non-linux systems
- stress-pci: move stress_set_pci_dev to support all arches
- stress-min-nanosleep: provide unknown sched name
- stress-min-nanosleep: fix build for various non-linux systems
- core-ops: forgot to commit the io-uring-rand option
- io-uring: add --io-uring-rand option for randomized io-uring ops
- stress-io-uring: reduce memory impact for smaller memory systems
- stress-*: remove trailing whitespaces
- Add --sync-start option
- README.md: add 4 more kernel issues found with stress-ng
- stress-min-nanosleep: report scheduler name
- stress-cpu: minor code clean-ups
- README.md: update contributors name list
- stress-cpu: matrixprod: align matrices
- stress-cpu: idct: re-factor, move some calculations out of loop
- stress-cpu: fft: align data and pass as restrict pointers
- stress-min-nanosleep: use the more optimal log2 function
- stress-sleep: fix expected C state delay, fix typo for selects message
- stress-min-nanosleep: report shorted nanosleep measurement
- stress-min-nanosleep: add check for short nanosleeps
- README.md: add Sergey Matyukevich to contributors list
- Manual: add missing --mmapfork-bytes manual option
- stress-min-nanosleep: add stressor that measures minimum nanosleep delay times
- stress-*: pass the number of stressor instances into the stressor init callback
- core-time: check for CLOCK_REALTIME when using it
- stress-sleep: use monotonic clock and stress_time_now() clocks for time measurement
- stress-sleep: fix typo "to" -> "took"
- stress-yield: add --yield-sched scheduler options
- stress-*: use core-sched.h to define HAVE_SCHED_{GET|SET}_ATTR macros
- core-sched: define HAVE_SCHED_GETATTR and HAVE_SCHED_SETATTR
- README.md: add one more research paper that references stress-ng
- stress-workload: use stress_sched_types for scheduler type information
- stress-schedpolicy: use stress_sched_types for scheduler type information
- stress-schedmix: use stress_sched_types for scheduler type information
- core-sched: allow stress_sched_types to be in global scope
- stress-monte-carlo: print monte-carlo computations as debug
- stress-ping-sock: add pre-run check and explain why it may fail with EPERM
- stress-ng: report stressor name in munged format, replace _ with -
- lib: remove build dependency on libgcrypt20
- stress-workload: make c static since it's used in pthread contexts
- stress-pci: Add a new --pci-dev option to specify the pci device
- stress-shellsort: remove empty line
- stress-pci: use strcmp on dentry name for sort ordering
- stress-io-uring: use O_DIRECT when it is available on files
V0.18.00
Stress-ng Release V0.18.00 "systematic system smasher"
New stressors:
- mseal Linux 6.10 mseal() system call stressor
- mtx ISO C mutex stressor
- besselmath libm Bessel function stressor
- insertionsort classic O(N^2) insertion sort stressor
New options:
- --sockfd-reuse to force reuse of socket file descriptors
Detailed changelog:
[Fabrice Fontaine]
- core-sched.c: fix uclibc-ng build
- stress-sock.c: fix build without SO_ZEROCOPY
[Hsieh-Tseng Shen]
- stress-cache: add stress_cache_bzero() to support cache-based bzero
- core-asm-riscv.h: support riscv zicboz ext cbo.zero instruction
[John Kacur]
- stress-ng: stress-stream: Fix use of uninitialized variable
[Po-Hsu Lin]
- core-ops: fix --logmath-ops option
- core-ops: fix --binderfs-ops option
[Colin Ian King]
- stress-mincore: cater for mincore on NULL returning ENOMEM on kfreebsd
systems - stress-vm-segv: only use mprotect if system call is supported
- stress-mseal: only use madvise if system call is supported
- README.md: add two more research papers that reference stress-ng
- stress-cache: add STRESS_ARCH_RISCV check and voidify func args for
non-RISC-V - stress-flock: voidify i for non-linux builds
- stress-af-alg: add more verification when using --verify
- README.md: add another research paper citation
- Manual: add a couple more stress-ng examples
- stress-vm-segv: don't unmap self for OS X
- core-lock: use stress_asm_loong64_dbar for loong64 relax spin lock
delay - stress-urandom: ignore ENOSYS system call returns
- stress-sigsegv: allow BUS_ADRERR for bus error codes
- stress-fcntl: add Linux 6.10 fcntl command F_DUPFD_QUERY, improve
checking - stress-cache: remove extraneous {
- stress-cache: remove unused cache flags more succinctly
- core-lock: disable atomic spin locks for ARM
- stress-af-alg: replace spaces with tab in indentation
- core-resources: allocate mutexes for each resource array loop
- core-resources: use ISO C mtx mutex resources
- stress-af-alg: add forced abort after 5 seconds of alarms
- stress-af-alg: add checks for EINTR on recv/send calls
- core-mincore: add MADV_POPULATE_WRITE to madvise flags
- core-vecmath: add check for 32 bit PPC to work around build issue
- core-lock: only perform backoff for fast CPU relax pauses
- README.md: add another kernel issue found by stress-ng
- stress-efivar: ensure stress_efi_var_t is aligned to clean up build
warning - core-lock: remove ARM yield, fallback to shim_sched_yield
- core-cpu-cache: fix bitmask of cache coherency line size
- core-lock: fix missing spinlock destroy when removing a spinlock
- Makefile: allow COVERITY=1 to disable macros that confuse cov builds
- stress-mseal: cast pointer to uint8_t * to clean up void * pointer
addition warnings - stress-vm-segv: make addr a uint8_t * pointer to simplify pointer
addition - stress-*: rename variable index to avoid name shadowing with lib
function index - stress-sysbadaddr: reduce scope of variable newargv
- stress-sleep: ensure residency_ns is computed using unsigned long
multiplication - stress-nanosleep: reduce scope of variable i
- stress-mmaphuge: reduce scope of array filename
- stress-mmapfiles: reduce scope of variable delta
- stress-iomix: reduce scope of variable ret
- stress-fork: reduce scope of variable pid
- stress-dirname: rename dirname to dirpath to avoid name shadowing
dirname function - stress-dirdeep: constify char * pointer name
- stress-crypt: reduce scope of string str
- stress-cgroup: reduce scope of some variables
- core-config-check: constify static char array path[]
- stress_rndstr: remove decrement of len in stress_rndstr, make len
const - core-ftrace: constify a few char * pointers
- stress-sysbadaddr: add mseal()
- stress-sysinval: add mseal
- stress-enosys: add mseal system call
- stress-vm-segv: force stack segv by mprotecting pages to PROT_READ
- stress-vm-segv: force zero optimization to ensure stackvar is on stack
- stress-vm-segv: ensure stackvar is written to and read from
- stress-bad-altstack: fix OpenBSD, add MAP_STACK and don't throw errors
- stress-vm-segv: unmap stack to force SIGSEGVs in child
- core-cpu-cache.h: include <stdarg.h> for shim_builtin_prefetch()
- stress-timerfd: open file_fd before all timer fds are opened
- stress-mmap: make rc non-clobberable due to longjmp
- core-shim: force emulation if posix_fallocate returns EINVAL
- stress-mseal: replace variable fail with boolean keep_running
- Makefile.config: remove some debug echos
- stress-mseal: add Linux 6.10 mseal system call exercising stressor
- Makefile.config: add libgmp when checking libmpfr
- stress-mutex: remove OpenBSD sleep
- core-mwc: re-work mwc*modn() using bit masking and removing modulo
operation - stress-vm-segv: remove clflush for OpenBSD as this causes issue
- stress-mlock: ensure max is not larger than the max number of mappings
- stress-mutex: fix some potential race issues
- stress-mutex: NetBSD requires the yield and sleep
- stress-mutex: use zero usleep instead of yield for NetBSD
- core-shim: emulate posix_fallocate for FreeBSD
- stress-sigsegv: remove OpenBSD check now that BUS_OBJERR is used
- stress-sigsegv: handle SIGBUS code with correct BUS_OBJERR
- stress-fp-error: relax fp error checks on soft-float builds
- README.md: add another citiation
- stress-schedmix: remove trailing space at end of a line
- core-mwc: remove tab in empty line
- core-mwc: use stress_get_machine_id to add extra data to seed
- core-helper: add stress_get_machine_id to get a 64 bit machine id
- stress-dup: only use O_CLOEXEC if it is defined for dup3 calls
- stress-tun: cast int value to uint8_t type for PRIu8 format
- stress-schedmix: ensure all pids in pids array are initialized to -1
- stress-dev-shm: use correct format strings for unsigned type
- core-parse-opts: use correct format strings for unsigned types
- core-ignite-cpu.c: use correct format strings for int types
- stress-vnni: force -O2 at -Os/-Oz as well
- core-helper: fix spelling mistake in comment
- stress-ng.h: increase per-stressor metrics STRESS_MISC_METRICS_MAX
to 96 for af-alg - stress-loadavg: remove system limit of pthreads when reducing
loadavg-max - core-ftrace: show failed open filename in error message
- stress-besselmath: use double precision for check sum on float bessel
functions - stress-netlink-task: break out of loop on EINTR or EAGAIN sendto
errors - stress-vm: remove redundant assignments to pointer ptr
- stress-prime: remove redundant assignment to variable rate
- stress-munmap: fix file descriptor resource leak on error return path
- stress-af-alg: add some sanity checks on digest and info args
- stress-fault: ensure buffer is zero'd
- core-job: zero string txt, keep cppcheck happy
- clear up pedantic cppcheck warning
- core-builtin.h: remove long cast workaround macros for Bessel shim
wrappers - core-buildin: fix j*l macros
- core-lock: uncomment #undefs used for debugging new locks
- stress-dev: include missing <sys/ioctl.h>
- stress-ng.h: move #include <sys/times.h> into sources that require it
- stress-ng.h: move #include <stdarg.h> into sources that require it
- stress-ng.h: remove #include <sys/file.h>, it was commented out
- stress-ng.h: move #include <sys/file.h> into sources that require it
- stress-ng.h: move #include <sys/ioctl.h> into sources that require it
- core-shim: add __NR_fallocate check for fallocate syscall
- stress-ng.h: move #include <ctype.h> into sources that require it
- README.md: add two more kernel improvement references
- stress-ng: make stress_exclude_unimplemented static
- stress-ng.h: remove commented out math.h include
- stress-ng.h: move <math.h> into sources that require it
- stress-*: add ( ) around expressions
- core-*: add ( ) around expression
- core-cpu-cache: fix misplaced )
- core-parse-opts: use standard seconds in a year and not equinoctial
seconds - core-lock, stress-mtx: add build time checks for mtx_destroy, mtx_init
- stress-mtx: add mtx_t check and remove need for stack size attr
- core-lock: add OSI C mtx mutex option for locking
- stress-mtx: remove includes that are not required
- core-lock: lock name for sysv semaphore
- stress-mutex: fix --mutex-procs option
- stress-mtx: Add new ISO C mtx (mutex) stressor
- stress-besselmath: add a new Bessel function stressor
- stress-sockfd: voidify return from stress_socket_fd_send
- stress-insertionsort: add new insertion sort stressor
- core-ops: fix --powmath-ops option
- Manual: update list of classes for the --class option
- stress-ng: annotate stress_sigalrm_info_t fields and make sigalrm_info
static - stress-ng: add global lock create/destroy helpers
- stress-ng: fix incorrect name of function in comment
- stress-sockfd: add new --sockfd-reuse option to re-use file descriptor
- Manual: add size of the matrix-3d stressor matrix to the documentation
- Manual: add size of the matrix stressor matrix to the documentation
- core-ops: fix --expmath-ops option
- stress-zlib: add metric for the amount of input data that has been
compressed - stress-sigchld: replace debug SIGCHLD stats with metrics
- stress-seek: add total number of seeks metric
- stress-rawpkt: move debug packet stats to metrics
- stress-link: add link create/remove rate metrics
- stress-key: add successful key add/operation/remove rate as metric
- stress-icmp-flood: replace sendto % success debug with metrics
- Makefile: remove empty lines
- stress-dup: add number of dup calls as a metric...
V0.17.08
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
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