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 mcw*modn 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