Skip to content

Releases: ColinIanKing/stress-ng

V0.18.07

01 Dec 16:10
Compare
Choose a tag to compare

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

31 Oct 10:17
Compare
Choose a tag to compare

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...

Read more

V0.18.05

02 Oct 08:30
Compare
Choose a tag to compare

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

06 Sep 22:54
Compare
Choose a tag to compare

stress-ng V0.18.04 "canny kernel crusher"

Bugfix release, bug fixes:

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

01 Sep 09:44
Compare
Choose a tag to compare

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

31 Jul 12:12
Compare
Choose a tag to compare

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...
Read more

V0.18.01

03 Jul 18:12
Compare
Choose a tag to compare

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

06 Jun 08:49
Compare
Choose a tag to compare

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...
Read more

V0.17.08

02 May 08:09
Compare
Choose a tag to compare

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

04 Apr 22:12
Compare
Choose a tag to compare

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