github ColinIanKing/stress-ng V0.19.03
stress-ng V0.19.03 "savvy system smasher"

latest release: V0.19.04
one month ago

Improvements

  • More progress feedback when sending ^C (SIGINT)
  • Clean up manual
  • Improved portability

New Options

--spinmem-yield - force sched_yield() calls in spinmem loops
--ioport-port - specify x86 I/O port to exervises
--stream-prefetch - enable prefetching on stream reads
--llc-affinity-size - specify the lower-level-cache size
--far-branch-pageout - force pages out on far branch instruction pages

Detailed changelog

  • debian/control: fix missing , in build dep list
  • stress-utime: use PRIdMAX format specifier for intmax_t
  • core-numa: fix arg order in null-op stress_numa_randomize_pages
  • stress-shm-sysv: use PRIxPTR format specifier for intptr_t types
  • stress-easy-opcode: add HAVE_MPROTECT check
  • stress-mmapcow: add build time check for madvise support
  • stress-fd-abuse: fix #ifdef checks for posix_fadvise
  • READMD.md: update build notes for Minix, need binutils
  • stress-cyclic: add missing #ifdef guards on tidy label
  • core-shim: replace #elif with #else
  • stress-utime: add missing #ifdef guards on stress_utime_str
  • stress-utime: reduce scope for variable t
  • stress-fd-abuse: remove in6addr_any for minix builds
  • stress-cyclic: voidify ret if it is not used
  • core-shim: add shim_enosys call for shim_setgroups
  • core-cpu-cache: add stress_cpu_x86_has_clfsh check for clfsh opcode
  • core-cpu-cache: call shim_cacheflush if __builtin___clear_cache is not supported
  • README.md: add another kernel improvement commit link
  • stress-module: use %zu format specifier for size_t type
  • stress-file-ioctl: cast int value to off_t to silence static analysis warnings
  • stress-fallocate: move use_sync declaration to inside #ifdef construct
  • stress-cpu-sched: reduce scope of variable timer_ret
  • core-signal: reduce scope of array buf
  • core-filesystem: reduce scope of array path
  • core-madvise: reduce scope of ptr, make it a uint8_t * type
  • stress-mmaphuge: cast int value to off_t to silence static analysis warnings
  • stress-mmaptorture: make read-only array hex static const
  • CITATIONS.md: add another refererence link
  • stress-eigen: use %zu format specifier for size_t type
  • stress-physmmap: add metrics for the max number of pages mmap'd
  • stress-pci: replace "unknown" with "untested"
  • core-mwc: defer assigment of pointer ptr32end
  • core-filesystem: defer assignments of ptr and end
  • core-shared-cached: use %zu format specifier for size_t type
  • Manual: rework the chi squared close to 1.0 description of a good hash
  • Manual: reference manual sections for system calls or library calls
  • Manual: replace stress-ng with stress-ng
  • Manual: replace +/- with (+-
  • README.md: add another kernel bug reference
  • stress-syscall: make unused args in prctl zero
  • stress-syscall: pass "" for special and a page for addr
  • stress-sigurg: zero atmark flag before SIOCATMARK ioctl call
  • stress-sctp: ensure flags is zero before calling sctp_recvmsg
  • stress-schedmix: add bounds check on max fd for select family calls
  • stress-pipeherd: ensure data is all zero, cleanup valgrind warning
  • stress-numa: pass zero size for empty sets
  • stress-monte-carlo: make random buffer pool static
  • stress-mmap: ensure all context field are initialized
  • stress-fileface: fix index typo, set tv[1].tv_sec and not tv[0].tv_sec
  • stress-fifo: unmap if mmap'd address is not MAP_FAILED
  • stress-crypt: limit orig_setting seed and remove seed[]
  • stress-mpfr: free variable zero, fixes memory leak
  • stress-swap: update comment about vdso
  • stress-fork: update comment about vdso
  • core-thrash: update vdso comment
  • stress-pthread: set continue flag to false when stopping stressor threads
  • stress-sigurg: add missing ioctl name in error message
  • stress-handle: add another skip if system call is not implemented
  • stress-handle: skip stressor of system call is not implemented
  • stress-shm-sysv: zero errno before calling system calls that may succeed
  • stress-module: use shim_strlcat instead of strlcat
  • stress-syscall: only declare msg for SENDMSG and RECVMSG
  • core-mwc: cast args to rol32/ror32 to uint32_t to fix gcc-15.1.1 build warning
  • stress-ng.h: add deprecated warnings for strlcpy and strlcat
  • core-filesystem: use shim_strscpy instead of strlcpy
  • core-filesystem: increase buf size to avoid any truncation
  • core-stack: add missing include <sys/auxv.h>
  • stress-fractal: use __atomic_fetch_add_4 for 32 bit int addition
  • stress-pseek: use PRIu64 to print uint64_t value
  • stress-msync: use PRIu64 to print uint64_t value
  • stress-pseek: use uint64_t for pseek_io_size
  • stress-msync: using uint64_t instead of size_t for file size
  • stress-mmap: add FreeBSD MAP_ALIGNED_SUPER mmap flag
  • core-madvise: fix addition of void * pointer, cast to uintptr_t first
  • stress-gpu: use %d instead of %u to sscanf an int
  • core-shim: fix incorrect #endif placement
  • core-parse-ops: cast percent to uint64_t before comparing to integer constant
  • stress-ng: remove unused variable kill_count
  • stress-gpu: make stress_get_gpu_freq_mhz static
  • stress-sysfs: forgot to check in changes
  • core-mmap.h et al, re-organise header includes
  • test-libpthread: include signal.h
  • stress-far-branch: clean up some pedantic warnings
  • core-shared-cache: include core-shared-cache.h
  • core-prime: include core-prime.h
  • core-mmap.h et al, re-organise header includes
  • stress-sock: only declare vec, j and msghdr when required
  • stress-sock: only declare vec and i when required
  • stress-ng: cast uid_t to intmax_t when printing debug messages
  • core-builtin: fix macro typo for shim_tanhl
  • Makefile.config: add build time check for tanhl
  • core-builtin: add workaround for missing tanhl
  • Makefile.config: add build time checks for mknod()
  • stress-syscall: add build time check HAVE_GETGROUPS
  • stress-syscall: add build time check HAVE_UTIMES
  • stress-utime: declare timevals if HAVE_UTIMES is defined
  • stress-utime: add HAVE_UTIMES check
  • Makefile.config: add build time check for utimes()
  • Makefile.config: add build time detection for srandom()
  • Makefile.config: add build time detection for random()
  • core-helper: add stess_no_return no return function helper
  • stress-fifo: move declaration of wrap_mask
  • Makefile.config: add build time detection of getgroups()
  • stress-sysbadaddr: use shim_timezone_t instead of struct timezone
  • stress-sysbadaddr: add missing <sys/select.h>
  • stress-rmap: add build time check for MS_ASYNC and MS_SYNC
  • Makefile.config: add build-time detection of mkfifo
  • stress-far-branch: voidify offset param
  • stress-urandom: include <sys/select.h>
  • test-libpthread: add checks for pthread_cancel, pthread_kill
  • stress-fd-abuse: add missing <sys/select.h>
  • stress-dev: include missing <sys/select.h>
  • stress-*: add build time check for <sys/file.h>
  • Makefile.config: add build time check for <sys/file.h>
  • stress-cyclic: include <sys/select.h>
  • stress-iomix: add build time check for MS_ASYNC and MS_SYNC
  • core-shim: add build-time check for setgroups
  • Makefile.config: add build-time check for setgroups()
  • core-shim: include <sys/select.h> for select() call
  • stress-vm: add build time check for MS_SYNC
  • stress-mmap: add build time check for MS_ASYNC and MS_SYNC
  • stress-vma: use shim_munlock instead of munlock
  • stress-vma: use shim_msync() instead of msync()
  • stress-ng: replace vfork with fork if vfork does not exist
  • stress-*: use shim_pause() instead of pause()
  • core-shim: make shim_pause match the pause semantics
  • core-shim: add build time detection of pause, add shim_pause wrapper
  • stress-verify: use shim_sync()
  • stress-loop: use shim_sync()
  • stress-touch: use shim_sync()
  • stress-syscall: use sync directly if HAVE_SYNC is defined
  • stress-open: use shim_sync()
  • stress-mknod: use shim_sync()
  • stress-mcontend: use shim_sync()
  • stress-iomix: use shim_sync()
  • stress-io: use shim_sync()
  • stress-fanotify: use shim_sync()
  • stress-dirdeep: use shim_sync()
  • stress-dir: use shim_sync()
  • stress-dentry: use shim_sync()
  • core-shim: add shim_sync wrapper for sync
  • core-builtin: add shim wrapper for round()
  • core-builtin.h: add build-time check for roundl
  • core-shim: add build time check for struct timezone; replace with shim
  • core-helper: workaround limited tick functionality in FiwixOS
  • core-builtin: provide builtin-check for tanl
  • Makefile.config: add build-time check for tanl, fix sinl
  • stress-sock: add build-time check for recvmsg
  • stress-sock: add build-time checks for sendmsg and recvmsg
  • stress-fd-abuse: add build-time checks for sendmsg and recvmsg
  • stress-syscall: add built-time checks for sendmsg and recvmsg
  • Makefile.config: add build time check for recvmsg
  • Makefile.config: add build time check for sendmsg
  • stress-fractal: explicitly use __atomic_fetch_add_8 on uint64_t value
  • stress-syscall: add build-time check for HAVE_NICE for nice system call
  • stress-syncload: use shim_nice rather than nice
  • stress-shm-sysv: use shim_nice rather than nice
  • stress-sock: add build-time checks for SOL_SOCKET
  • stress-mmaptorture: add build time check for siglongjmp
  • stress-mmap: add build time check for siglongjmp
  • stress-misaligned: add build time check for siglongjmp
  • stress-malloc: add build time check for siglongjmp
  • stress-syscall: add build-time check for SOL_SOCKET
  • stress-stack: add build time check for siglongjmp
  • stress-spinmem: add build time check for siglongjmp
  • stress-sock: add build-time checks for SOL_SOCKET
  • stress-sigsegv: add build time check for siglongjmp
  • stress-signest: add build time check for siglongjmp
  • stress-sigill: add build time check for siglongjmp
  • stress-sigfpe: add build time check for siglongjmp
  • stress-sigbus: add build time check for siglongjmp
  • stress-rlimit: add build time check for siglongjmp
  • stress-cyclic: add build time check for siglongjmp
  • stress-cachehammer: add build time check for siglongjmp
  • stress-fd-abuse: add missing build-time checks
  • stress-cache: add build time check for siglongjmp
  • stress-zlib: add build-time checks for various socket #defines
  • stress-udp: add build-time checks for various socket #defines
  • stress-tree: add build time check for siglongjmp
  • stress-sockmany: add build-time checks for various socket #defines
  • stress-sockpair: add build-time check for MSG_OOB
  • stress-sockabuse: add build-time checks for various socket #defines
  • stress-sock: add built-time checks for various socket #defines
  • stress-revio: fix typo: BUF_ALIGNEMENT -> BUF_ALIGNMENT
  • stress-shellsort: add build time check for siglongjmp
  • stress-radixsort: add build time check for siglongjmp
  • stress-qsort: add build time check for siglongjmp
  • stress-priv-instr: add build time check for siglongjmp
  • stress-prime: add build time check for siglongjmp
  • stress-peterson: add build time check for siglongjmp
  • stress-nop: add build time check for siglongjmp
  • stress-mergesort: add build time check for siglongjmp
  • stress-memrate: add build time check for siglongjmp
  • stress-lockbus: add build time check for siglongjmp
  • stress-list: add build time check for siglongjmp
  • stress-insertionsort: add build time check for siglongjmp
  • stress-heapsort: add build time check for siglongjmp
  • stress-dekker, stress-fault: fix typo "sort" -> "support"
  • stress-get: add build time check for siglongjmp
  • stress-fault: add build time check for siglongjmp
  • stress-dekker: add build time check for siglongjmp
  • stress-bubblesort: add build time check for siglongjmp
  • stress-bitonicsort: add build time check for siglongjmp
  • stress-bigheap: add build time check for siglongjmp
  • Makefile.config: Add build-time check for siglongjmp
  • core-sched: fix sched_priority argument
  • core-resources: don't use AF_INET6 if it is not defined
  • core-net: don't use AF_INET6 if it is not defined
  • core-memory: don't use sysinfo for FiwixOS
  • core-madvise: fix voidification of unused func args
  • core-helper: don't use loadavg if SI_LOAD_SHIFT is not defined
  • stress-loadavg: set number of threads to 4 for --minimize option
  • stress-ng: throttle spamming of output when user is hammering SIGINT
  • stress-ng: provide feedback of stressor termination progress on SIGINTs
  • Manual: be consistent with large numbers, don't use , to mark off thousands
  • core-mwc: fix assignment with ^=
  • stress-ng: print pids as intmax_t cast types
  • core-mwc: add more mixing to spread random seed bits around
  • Manual: add another example
  • stress-spinmem: add --spinmem-yield option to force scheduling yields
  • stress-spinmem: set verify to none as there is no explicit verification
  • stress-spinmem: minor source cleanup
  • stress-spinmem: add 128 bit spinmem support
  • core-config-check: check for broken x86-64 lahf instruction
  • core-cpu: add more CPUIDX EAX=80000000 bits and lahf_lm check
  • core-ftrace: make stress_ftrace_start return void, clean up ftrace comments
  • core-asm-ret.h: add warn unused attribute on stress_asm_ret_supported
  • core-parse: fix percentage file size args based on --temp-file option
  • core-filesystem: stash temp path into a stress-ng name variable string
  • stress-sleep: ignore EINTR on early sleep terminations
  • CITATIONS.md: Add another paper link
  • stress-hdd: report extents per file
  • stress-ioport: add --ioport-port option to select the I/O port to use
  • core-filesystem: report /dev name if we can't resolve device model
  • stress-ng: add missing new line
  • stress-fiemap: remove empty line
  • stress-fd-race: remove two blank lines
  • stress-iomix: inline function stress_iomix_rnd_offset
  • stress-exit-group: inline helper function keep_running
  • stress-dir: inline some helper functions that are called just once
  • core-mincore: perform madvise in two calls
  • stress-cgroup: inline stress_cgroup_remove_nl
  • stress-cachehammer: make hammer_valid PURE
  • stress-numa: fix typo: shiffle -> suffle
  • core-madvise: make stress_madvise_pid_all_pages use an array of advice
  • README.md: Add a link to kernel commit that used stress-ng for testing
  • stress-syscall: set errno to zero before nice system call
  • stess-far-branch: remove redundant stress_exit_status call
  • stress-gpu: ensure error return is passed down to caller
  • stress-far-branch: ensure file fd is closed on error return paths
  • stress-gpu: break from main stressor loop on no resource error
  • stress-shm-sysv: remove redundant goto at end of for-loop
  • stress-xattr: fix tmp_fd file open check
  • stress-cacheline: reference s_pids if s_pids is non-null
  • stress-xattr: exercise getxattrat, listxattrat, removexattrat and setxattrat
  • stress-shm-sysv: improve 'random' key find mechanism
  • stress-ng: remove sched and io priority setting from main parent
  • core-opts: forgot to check in OPT_llc_affinity_size
  • core-cpu-cache: add RISC-V device tree parsing for cache information
  • stress-llc-affinity: add --llc-affinity-size option to specify LLC cache size
  • stress-inode-flags: exercise a range of attr flags
  • stress-io-uring: just memset sqe before each io-uring op
  • stress-io-uring: add support for HAVE_IORING_OP_FTRUNCATE
  • Manual: format mu using (*m for microseconds
  • stress-inode-flags: exercise file_getattr and file_setattr
  • core-shim: add shim_file_getattr and shim_file_setattr
  • core-shim: add Linux 6.16 file_getattr and file_setattr syscall shims
  • core-shim: Add support for FALLOC_FL_WRITE_ZEROES
  • stress-fallocate: Add support for FALLOC_FL_WRITE_ZEROES
  • stress-shm-sysv: distribute keys evenly across instances and segments
  • CITATIONS.md: add another paper link
  • Manual: Fix typo "SIGSEV" -> "SIGSEGV"
  • stress-procfs: avoid concurrent access on /proc/$PID/{maps|ctty} on Cygwin
  • stress-far-branch: only check for check_flag if a complete round is made
  • stress-far-branch: fix mmap'd file pages
  • stress-ng: set wexit_status on fatal signals
  • stress-stream: reformat macros, minor code style changes
  • stress-stream: remove ALWAYS_INLINE
  • stress-stream: add --stream-prefetch option
  • stress-ng: rename getdents title to reflect the purpose
  • stress-crypt: add bcrypt, bsdicrypt, descrypt and gost-yescrypt
  • stress-cacheline: fix --sync-start process synchronization
  • stress-cacheline: fix typo in comment, 116 -> 16
  • stress-bitops: add another way to count bits using triple mask and shifts
  • stress-module: only declare fd_in and fd_out for LZMA code path
  • stress-module: decompress .ko.xz modules using liblzma
  • core-mmap: move stress_mmap_populate from core-memory to core-mmap
  • CITATIONS.md: replace deprecated lkp-tests link with commit sha
  • core-shared-cache: move shared cache helpers to core-shared-cache
  • core-cpu: add some more x86 cpu identifiers
  • core-filesytem: minor code cleanups and optimizations
  • stress-far-branch: cast ptr to void * for munmap call
  • stress-far-branch: only declare stress_far_branch_pageout when required
  • core-cpu-freq: add in missing sys/sysctl.h for BSD systems
  • core-helper: add back sys/sysctl.h for BSD builds
  • stress-far-branch: add MADV checks for label l1
  • core-helper: remove redundant includes
  • core-signal: move signal helpers to core-signal from core-helper
  • core-filesystem: move filesystem helpers to core-filesystem from core-helper
  • stress-gpu: silently discard MESA errors
  • stress-gpu: move stress_get_gpu_freq_mhz to stress-gpu
  • stress-gpu: rdirec MESA log messages to /dev/null
  • core-prime: include math.h for systems without builtin_sqrt
  • stress-far-branch: move label l2 to first statement
  • core-mwc: move stress_uint8rnd4 from core-helper to core-mwc
  • core-net: move stress_ipv4_checksum from core-helper to core-net
  • core-capabilities: move capabilities related helper code into core-capabilities from core-helper
  • core-prime: move prime related helper code into core-prime from core-helper
  • core-memory: move memory related helper code into core-memory from core-helper
  • stress-ng.h: include core-stack.h
  • core-stack: include core-stack.h
  • core-stack: more stack related helper code into core-stack from core-helper
  • core-cpu-freq: move cpu freq specific code into core-cpu-freq.c
  • stress-cachehammer: reference the correct count [4]
  • stress-far-branch: rephrase number of file mapped functions
  • stress-far-branch: report size of the functions
  • stress-far-branch: flush I$ with shim_cacheflush call
  • stress-far-branch: flush I$ after each text page has been created
  • stress-far-branch: use correct index into funcs array
  • Manual: correct the --verify output to match the current behaviour
  • stress-far-brach: minor optimizations
  • stress-far-branch: ensure 1/16 pages are file mmap'd
  • stress-far-branch: 50% of time try 32 bit address for mmap'd pages
  • stress-far-branch: add periodic branch shuffle
  • stress-far-branch: add MADV_RANDOM and MADV_WILLNEED hints
  • core-madvise: add stress_madvise_willneed to perform MADV_WILLNEED
  • core-madvise: add stress_madvise_random to perform MADV_RANDOM
  • core-madvise: rename stress_madvise_random to stress_madvise_randomize
  • stress-exec: use libc fexecve exec call
  • stress-far-branch: make 1 in 16 branch pages file backed mmappings
  • stress-far-branch: pageout and offline main far-branch loop
  • stress-far-branch: add pageout and softline of pages
  • CITATIONS.md: add some more research paper links
  • stress-filename: add readdir() filename sanity checking

Don't miss a new stress-ng release

NewReleases is sending notifications on new releases.