New stressors
- eth-sniff - simple ethernet packet sniffer stressor
Notable Bug fixes
- stress-rofs: fix Cygwin SIGSEGV issue
- stress-str: fix index underflow on strncmp
- stress-ng: fix ionice-level upper limit to 7
New options
- --hdd-sleep - specify number of seconds between read/write cycles
- --numacopy-affinity - set CPU affinity relative to NUMA nodes
- --pipe-readers - specify number of pipe reader processes for pipe stressor
- --pipe-writers - specify number of pipe writer processes for pipe stressor
Notable new features
- internal re-working of option parsing
Many thanks to the following sponsors of the project (in alphabetical order)
- Bruce Underhill (Codethink)
- Chris Wayne
- Gilbert Morgan
- ELISA https://elisa.tech - Platinum sponsor
- Noura El Allam
Detailed Changelog
Liew Rui Yan
- stress-hdd: introduce '--hdd-sleep' option
Colin Ian King
- debian/changelog: update changelog
- Makefile: bump version
- debian/control: bump standards version to 4.7.4.1
- CITATIONS.md: Add another research paper link
- stress-ng: don't use NULL space for end of string break
- core-opts: ensure *flag option field is initialized to NULL and not zero
- Manual: Fix spelling mistake "muliple" -> "multiple"
- stress-utime: add UL suffix for the unsigned long long constant
- stress-utime: add ULL suffix for the unsigned long long constant
- stress-full: add ULL suffix for the unsigned long long constant
- stress-atomic: add ULL suffix for the unsigned long long constant
- Manual: fix tbl formatting close T}
- stress-workload: make array stress_workload_threads static
- stress-vm-rw: assign pointer with NULL instead of zero
- stress-syscall: zero ctx with memset
- stress-splice: use NULL for null pointer arg instead of zero
- stress-sockabuse: use NULL for null pointer arg instead of zero
- stress-sem-sysv: initialize pointer with NULL instead of zero
- stress-sctp: use NULL for null pointer arg instead of zero
- stress-ring-pipe: use NULL for null pointer arg instead of zero
- stress-reboot: use NULL for null pointer arg instead of zero
- stress-quota: use NULL for null pointer arg instead of zero
- stress-mremap: initialize pointer with NULL instead of zero
- stress-mmaprandom: initialize pointer with NULL instead of zero
- stress-madvise: use NULL for null pointer arg instead of zero
- stress-insertionsort: initialize pointer with NULL instead of zero
- stress-fd-abuse: use NULL for null pointer arg instead of zero
- stress-aio: assign pointer with NULL instead of zero
- stress-af-alg: use NULL for null pointer arg instead of zero
- core-time: add missing CONST to function prototype
- core-signal: add missing CONST to function prototype
- core-sched: add missing CONST to function prototype
- core-prime: add missing CONST to function prototype
- core-parse-opts: add missing CONST to function prototype
- core-filesystem: add missing CONST to function prototypes
- core-memory.h: add missing CONST to function prototypes
- core-net: add missing CONST to function prototypes
- core-helpr: align function prototypes
- core-hash: remove PURE annotation from hash functions
- CITATIONS.md: add two more research paper references
- Manual: fix typo
- stress-numacopy: ensure cpus is free'd on error return path
- stress-numacopy: remove redundant initialization of cpu_begin
- core-stack: don't forward declare __stack_chk_fail for Cygwin
- stress-aio: cater for Cygwin O_SYNC and O_DSYNC being the same
- stress-numa: minor change to NUMA info message
- stress-schedpolicy: avoid using clamping if not supported
- stress-sigill: allow si_code 128 for loong64 etc
- stress-open: use PRIu64 to print uint64_t open_max
- core-stack: don't forward declare __stack_chk_fail for NetBSD
- core-filesystem: use d_name local to reduce d-> dereferences
- CITATIONS.md: add two more paper references
- kernel-covergae: add --numacopy-affinity options
- kernel-coverage: add pipe readers/writers options
- stress-pipe: add --pipe-readers and --pipe-writers option
- stress-pipe: replace hard coded pipe min/max sizes with run-time min/max pipe sizes
- stress-pipe: check --pipe-size using system min/max pipe sizes
- stress-pipe: check --pipe-data-size using system min/max pipe sizes
- stress-numacopy: add --numacopy-affinity option
- stress-numacopy: fix copyright
- stress-ng: fix 0 and -ve options for all, seq, random, with, permute options
- stress-ng: stress-ng: move "all", "seq", "ranom", "with", "permute" option into main_opts
- README.md: add another kernel bug reference
- stress-ng: move "max-fd" option into main_opts
- core-helper: voidify unused arg
- CITATIONS.md: Add another research paper link
- stress-ng: move "oom-avoid-bytes" option into main_opts
- core-setting: allow duplicated setting to update previous value
- core-thrash: constify arg max_maps
- core-smart: fix typo "CBD_RESVERVED" -> "CBD_RESERVED"
- core-hash: make stress_hash_murmur_32_scramble param k register
- stress-vdso: rename arg dup to sym to avoid name shadowing with function dup
- stress-schedpolicy: rename variable syscall to syscall_name
- stress-schedpolicy: remove redundant if statement on use_clamp
- stress-mmaprandom: remove empty line
- core-sched: reduce scope of variable i
- stress-sysinfo: remove duplicated ret < 0 check
- stress-ng: allow --random option to take % number of CPUs
- core-net: increase port spacing between stressors from 256 to 1024
- stress-sockmany: handle ECONNREFUSED gracefully
- stress-sock: retry bind on EADDRINUSE failure
- stress-sockmany: retry bind on EADDRINUSE failure
- core-cpu: find largest number of TLBs for all CPUs
- Manual: Add note that --autogroup is a Linux only option
- disable clamping if sched_setattr does not support it for SCHED_OTHER and SCHED_BATCH
- stress-schedpolicy: fix missing space in error messsage
- stress-schedpolicy: disable clamping if sched_setattr does not support it
- stress-schedmix: skip over unavailable sched policies
- stress-schedpolicy: skip over unavailble sched policies
- stress-apparmor: ignore EEXIST errors
- stress-ng: move "class" option into main_opts
- stress-wcs: align wcs with str stressor comparisons
- stress-str: fix index underflow on strncmp
- stress-ng: remove some empty lines
- stress-ng: move "resctrl" option into main_opts
- stress-ng: minor cleanup
- stress-ng: move "taskset" option into main_opts
- stress-ng: fix ionice-level upper limit to 7
- stress-ng: move "sched-prio" option into main_opts
- stress-ng: move "sched" option into main_opts
- stress-wcs: ensure str1 and str2 never contain the same characters
- stress-str: ensure str1 and str2 never contain the same characters
- stress-atomic: Fix typo in comment "current" -> "currently"
- core-numa: fix stress_set_mbind for non-Linux systems
- stress-timermix: ignore itimer EINVALs for Cygwin
- stress-ng: only call stress_io_priority_ionice_class_get if optstr is set
- CITATIONS.md: add two more papers, referesh a link
- stress-ng: move "ionice-class" and "ionice-level" options into main_opts
- CITATIONS.md: Add another paper reference
- stress-ng: move "timeout option into main_opts
- stress-ng: move "rlimit-*" option into main_opts
- stress-ng: move "vmstat-units" option into main_opts
- stress-ng: move "mbind" option into main_opts
- stress-ng: move vmstat periodic option into main_opts
- stress-ng: move "seed" option into main_opts
- stress-ng: move OPT_sched_reclaim to opt_flags options
- stress-ng: move "quiet" option into main_opts
- stress-ng: move "no-madvise" option into main_opts
- stress-ng: move "timer-slack" option into main_opts
- stress-ng: stress-ng: move "sched-deadline" and "sched-period" options into main_opts
- core-parse-opts: check for sscanf errno, e.g. ERANGE overflows
- stress-ng: add upper limit to sched-runtime
- stress-ng: move "sched-runtime" option into main_opts
- stress-ng: move "cache-size" option into main_opts
- stress-ng: fix typo: "compact-mempory" -> "compact-memory"
- stress-ng: move simple global opts into a main_opts array
- stress-sysinval: remove variable j
- stress-sysinval: uncomment pause()
- stress-sysinval: use uint32_t for arg bit masks
- stress-sysinval: use MAX_SYSCALL_ARGS for syscall arguments limit
- stress-sysinval: generalize ARG_PTR to use 4 different page protections
- stress-sysinval: constify and reformat various arrays
- stress-tlb-numa: remove redundant assignment to ptr
- stress-sock: use a run time bad fd rather than ~0 for an invalid fd
- core-filesystem: improve stress_fs_bad_fd_get()
- core-signal: don't kill all stressors if a stressor's child terminates
- stress-eth-sniff: ethernet packet sniffer
- stress-rofs: use ENOTSUP instead of EOPNOTSUPP for listxattr error check
- stress-rofs: fix Cygwin SIGSEGV issue
- stress-open: ensure errno from open is returned correctly
- stress/core: use non-IANA registered ports 49152..65535 for stressor defaults
- stress-sockmany: exercise setsockopt TCP_USER_TIMEOUT
- stress-sockmany: add setsockopt TCP_SYNCNT
- core-interrupts: add missing emd of string check