Download Latest Version V0.19.02 source code.tar.gz (6.8 MB)
Email in envelope

Get an email when there's a new version of stress-ng

Home / V0.19.02
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2025-07-01 15.5 kB
V0.19.02 source code.tar.gz 2025-07-01 6.8 MB
V0.19.02 source code.zip 2025-07-01 7.8 MB
Totals: 3 Items   14.6 MB 26

stress-ng V0.19.02 "manic memory mangler"

New stressors

  • fd-abuse - file descriptor abuse stressor
  • mmapcow - memory mapping copy-on-write page stressor

New options

  • --cache-permute - permute --cache-enable-all cache options
  • --cachehammer-numa - move memory mapped memory around NUMA nodes
  • --spinmem-numa - move spinmem memory around NUMA nodes
  • --vm-flush - force memory mapped pages to be cache flushed

Notable improvements

  • cleanup of manual
  • exercise valid and invalid UTF-8 filenames in filename stressor
  • add memory and file size information to various stressors

Detailed Changelog

[Christian Franke] * stress-filename: report failure if any unlink() failed * core-helper: prevent loss of terminating signals due to siglongjmp

[Colin Ian King] * stress-mmapcow: add ( ) around expression * stress-misaligned: use x86 ds store for 64 bit builds only * stress-memrate: use x86 ds store for 64 bit builds only * stress-vm: use x86 ds store for 64 bit builds only * stress-fd-race: retry on socket failure on no fds or memory * stress-filename: fix UTF-8 32 bit codes * stress-filename: only perform UTF-8 test for ext filenames * stress-mmapcow: cast buf to void * on mmunmap call * Makefile.config: rename HAVE_FUTIMESAT to HAVE_FUTIMESAT_DEPRECATED * stress-vm: fix closed comment * stress-vm: handle out of memory retries more aggressively * stress-filename: randomly create truncated utf8 filenames * stress-filerace: add SEEK_HOLE and SEEK_DATA lseek whence * stress-fd-abuse: add SEEK_DATA and SEEK_HOLE for lseek whence * stress-filename: add utf-8 filenames to the mix * stress-cachehammer: fix build when HAVE_LINUX_MEMPOLICY_H is not defined * stress-cachehammer: fix build failure * README.md: add notes on how to make a PDF version of the manual * CITATIONS.md: add two more research paper links * stress-ng.h: add stress_instance_zero helper to detect initial stressor instance * stress-mmap: limit memory info to instance 0 * stress-cachehammer: add more read/writes, add verification * stress-cachehammer: add --cachehammer-numa to move pages around NUMA nodes * stress-spinmem: correct short help for numa option * stress-fd-abuse: use shim'd version of flistxattr * Manual: remove ancient deprecated option --vfork-vm * Manual: remove extraneous . * Manual: minor hash cleanup * Manual: replace = with (eq * Manual: replace open ' with ` * Manual: replace ^ with up arrow for 2^18 * Manual: add io class example * stress-utime: remove utime syscall shim, just use utime * stress-utime: don't directly call utime system call on m68k * stress-spinmem: flush on non-volatile data pointer * stress-mmapcow: use shim'd mlock2 for mlock2 system call * stress-spinmem: add a flush and memory barrier * Makefile: re-order CORE_SRC and CORE_SRC_GEN * stress-ipsec-mb: update comment * core-ops: forgot to check in new cache option * stress-cache: add --cache-permute option to permute cache flags * CITATIONS.md: remove duplicate entry * CITATIONS.md: add some more research paper links * stress-flipflop: fix short help info * stress-statmount: fix short help * Manual: use \d and \u to subscript some math expressions * Manual: replace addition with (pl * Manual: replace subtraction with (mi * Manual: Replace - with - on option descriptions * stress-vm: add one-zero --vm-method * stress-vm + Manual: sort --vm-methods * stress-: replace class with classifier * core-arch: move PPC64 before PPC * core-perf: add PMC read event counter * stress-mmapcow: add page merge/unmerge madvise and fix buffer resizing * stress-mmapcow: add --mmapcow-fork option * core-pthread: align comments * core-arch: add stress_get_arch to get build arch information * core-helper: ensure all YAML strings are in ' ' quotes * core-helper: use SOURCE_DATE_EPOCH for date/times for yaml output * core-cpu-cache: remove space * core-arch: sort architectures in alphabetic order * README.md: add two more kernel improvements from stress-ng analysis * README.md: fix notes on EXTRA_BUILDINFO=1 * stress-memthrash: report how much memory is being used * stress-misaligned: add x86 direct store method int64wrds * stress-memrate: add x86 direct store method write64ds * core-helper: use SOURCE_DATE_EPOCH for date/times * stress-vm: add x86 direct store method write64ds * stress-vm: add --vm-flush option to force cache flushing * stress-regex: add missing const in array declaration * stress-prime: add missing const in array declaration * stress-goto: add missing const in array declaration * stress-filename: add missing const in array declaration * stress-branch: add missing const in array declaration * stress-bad-ioctl: add missing const in array declaration * Add more files to .gitignore * stress-acl: don't enable for static builds * core-helper: report build type (static vs dynamlic linked) * stress-spinmem: add --spinmem-numa NUMA node option * stress-fd-abuse: set pipe size to random page size multiples * stress-mmapcow: add --mmapcow-mlock option to mlock pages * stress-utime: handle rare failure of localtime * stress-hrtimers: ignore return from bogo inc lock * stress-utime: report times of modify/access times fail * README.md: add another commit link to kernel code improved by stress-ng * stress-sync-file: report how much file system is being used * stress-revio: report how much file system is being used * stress-readahead: report how much file system is being used * stress-metamix: report how much file system is being used * stress-iomix: report how much file system is being used * stress-hdd: report how much file system is being used * stress-fpunch: report how much file system is being used * stress-fallocate: add in missing rescaling of total file bytes size * stress-copy-file: add in missing rescaling of total file bytes size * stress-fiemap: report how much file system is being used * stress-copy-file: report how much file system is being used * stress-fallocate: report how much file system is being used * core-helper: add stress_fs_usage_bytes to report file space used * stress-ng: add "be patient" of user sends many SIGINT signals * stress-powmath: optimize reciprical and replace * with increment of scale * stress-prio-inv: remove system time in time usage comparisons * stress-shm-sysv: make --shm-sysv-bytes behave the same as --shm-bytes * stress-vm-splice: report how much memory is being used * stress-vm-rw: report how much memory is being used * stress-vforkmany: report how much memory is being used * stress-userfaultfd: silently handle EAGAIN on reads * stress-userfaultfd: report how much memory is being used * stress-splice: report how much memory is being used * stress-shm: report how much memory is being used * stress-shm-sysv: report how much memory is being used * stress-pagemove: report how much memory is being used * stress-numa: report how much memory is being used * Manual: fix formatting for netlink stressor * stress-msync: report how much memory is being used * core-helper: should state available memory and not total memory * stress-mremap: report how much memory is being used * stress-mmaptorture: report how much memory is being used * stress-mmapfork: report how much memory is being used * stress-mmap: report how much memory is being used * stress-vm: ensure mmap size is not less than a page * stress-memrate: report how much memory is being used * stress-vm: report how much memory is being used * core-helper: add stress_usage_bytes to report memory usage * README.md: add another link to a bug found with stress-ng * stress-fd-abuse: clear up icc build warning * stress-eigen-ops: fix comparison to zero on floats * stress-mmapcow: add in missing volatile on cast * Add build time detection and use __builtin_strdup * stress-ng.h: Add more commments * stress-ng: use args pointer to ref args, and set args up in field order * stress-wait: remove old bogo ops range check cruft * stress-vforkmany: remove old bogo ops range check cruft * stress-sigvtalrm: remove old bogo ops range check cruft * stress-sigurg: remove old bogo ops range check cruft * stress-sigpipe: use bogo op counter via s_args * stress-rlimit: remove old bogo ops range check cruft * stress-ramfs: remove old bogo ops range check cruft * stress-bind-mount: remove old bogo ops range check cruft * stress-timer: move s_args * stress-itimer: move s_args * stress-hrtimers: remove need for stress_timer_stress_continue * stress-timer: move bogo check * stress-itimer: remove need for stress_timer_stress_continue * stress-timer: remove need for stress_timer_stress_continue * stress-itimer: remove stress_itimer_stress_continue * Remove snap checks, treat it as a first class citizen * core-thrash: start numa stressing on a random node * core-thrash: --thrash: move pages to different NUMA nodes * stress-vecwide: make read-only array stress_vecwide_funcs const * stress-vecshuf: make read-only stress_vecshuf_funcs array static * stress-vnni: make read-only array stress_vnni_methods const * stress-vnni: make read-only pointer name const * stress-x86syscall: make read-only array x86syscalls const * stress-vecfp: make read-only array stress_vecfp_funcs const * stress-sysfs: make read-only array stress_sysfs_wr_funcs const * stress-sysbadaddr: make read-only array bad_syscalls const * stress-switch: make read-only array stress_switch_methods const * stress-stackmmap: make read-only array name const * stress-rotate: make read-only array stress_rotate_funcs const * stress-procfs: make read-only array stress_proc_info static * stress-open: make read-only array open_funcs const * stress-open: make read-only array open_flags const * stress-memrate: make read-only array memrate_info const * stress-ipsec-mb: make read-only array stress_ipsec_funcs const * stress-iomix: make read-only array iomix_funcs const * stress-hash: make array hash_methods read-only and const * stress-filerace: make read-only array stress_filerace_fops const * stress-fd-abuse: make read-only array fd_funcs const * stress-far-branch: make read-only array sigs const * stress-fp: move metrics out of stress_fp_funcs, make stress_fp_funcs const * stress-dfp: move metrics out of stress_dfp_funcs, make stress_dfp_funcs const * stress-context: make help const * core-cpuidle: constify busy_state * stress-prctl: clean up some one line if statements * Manual: update list of exercise fcntl commands * Manual: fix --workload-threads, incorrect \ on t rather than - * stress-prctl: exercise prctl PR_FUTEX_HASH * stress-vma: use stress_kill_pid_wait for SIGKILL kill and wait * stress-sighup: voidify return from kill * stress-cpu-sched: use stress_kill_pid_wait for SIGKILL kill and wait * core-helper: where possible find and report drive device model * core-helper: add some more LIKELY/UNLIKELY branch hints * stress-mmapcow: add randomly chosen page modify/fault * stress-mmapcow: add estimated time to modify/page fault a page * stress-mmapcow: make numa_mask and numa_nodes static * Manual: add page fault notes on the mmapcow stressor * stress-stream: declare has_sse2 as false if SSE2 can't be supported * stress-stream: move exercising and verification into helper functions * core-config-check: check if intel pstate turbo is disabled * stress-x86syscall: improve syscall0 performance * stress-tlb-shootdown: move child specific code into stress_tlb_shootdown_child * stress-qsort: improve inlining of larger functions * stress-zeta: add OPTIMIZE3 OPTIMIZE_FAST_MATH to stress_cpu_zeta * core-nt-store: remove optimization hint on inline functions * core-nt-load: remove optimization hint on inline functions * core-bitops: remove optimization hint on inline functions * core-mwc.h: remove optimization hint on mcwmodn inline functions * stress-mmapcow: make mappings shared and unroll loop * stress-pagemove: ensure sz + page_size never overflows on 32 bit systems * stress-seal: use %jd for (intmax_t) format specifier * stress-msync: add stress_get_memfree_str info on memory allocation failure * core-numa: add sanity check on page_size * core-helper: add stress_get_memfree_str to report free memory information * stress-mmapcow: add threshold to limit large mmaps * stress-mmapcow: madvise MADV_COLLAPSE on mmap'd buffer * stress-mmapcow: handle munmap failures due to ENOMEM * stress-mmapcow: add missing \n on message, add more debug when mmap fails * stress-mmapcow: move numa init/deinit out of child * stress-mmapcow: remove debug * core-numa: switch buffer size and page size args in numa randomization function * stress-mmapcow: add --mmapcow-numa option * stress-mmapcode: add casts for void * addr for munmap and madvise * stress-mmapcow: add new memory map page modify and unmap stressor * stress-mmap: don't exercise MAP_STACK on FreeBSD * stress-ng: put stressor list head and head into a stress_stressor_list_t * stress-ng: add some comments * stress-fd-abuse: memset msghdr struct rather than set all fields to zero * stress-fd-abuse: reduce number of gettimeofday calls * stress-fd-abuse: add splice() * stress-fd-abuse: add copy-file-range and fix bind * stress-fd-abuse: add build time check for SIGIO * stress-fd-abuse: add sendfile system call * stress-fd-abuse: add socket send/recv family of calls * stress-hdd: use HAVE_READV/HAVE_WRITEV checks * stress-sysbadaddr: use HAVE_READV/HAVE_WRITEV checks * stress-fd-abuse: hase HAVE_READV/HAVE_WRITEV checks * Makefile.config: add build time detection for readv and writev * stress-fd-abuse: use stress_fd_t for fd info, add read/write calls * Manual: add note about log file being fsync'd on writes * stress-fd-abuse: add some delays to file actions that can lock/block * stress-ng: report if possibly OOM killed when metrics are corrupted * stress-fd-abuse: wrap main activity in oomable child wrapper * stress-fd-abuse: perform invalid shrink pipe size to sub-page size * stress-fd-abuse: add more socket domain types * stress-fd-abuse: voidify return from some function calls * stress-fd-abuse: add fcntl F_DUPFD on fd * stress-fd-abuse: add vmsplice, make signal hander generic for SIGIO and SIGPIPE * stress-fd-abuse: add flistxattr call * stress-fd-abuse: add lockf() calls * stress-fd-abuse: add setns call on fd (will always fail) * stress-fd-abuse: add epoll_create and waitid calls * stress-fd-abuse: open with no access * stress-fd-abuse: add some more file opening strategies * stress-fd-abuse: add #ifdef checks for some lesser used open flags * stress-fd-abuse: ensure fd is in range for select * stress-fd-abuse: handle and ignore SIGIO signals * stress-fd-abuse: run parent and child on same fds for more exercising * stress-fd-abuse: open file descriptor abuse * stress-cpu-online: replace % operator with compare and set

Source: README.md, updated 2025-07-01