stress-ng (0.17.06-1) unstable; urgency=medium [Hsieh-Tseng Shen] * Manual: fix a few typos [Colin Ian King] * Makefile: bump version * stress-fd-fork: fix comment for STRESS_FD_DEFAULT * stress-fd-fork: fix spelling mistake "discriptors" -> "descriptors" * test/test-utime: zero buf * test/test/test-pthread-setaffinity-np: zero cpuset * stress-fork: voidify pid * Makefile.config: ensure all CONFIG_LDFLAGS are passed through LIB_ORDER filter * stress-sigsegv: ignore SEGV_ACCERR error check on OpenBSD * stress-hsearch: typedef ACTION if we don't have native hsearch support * Makefile.config: workaround a make issue on Nixos, add empty echo in loop * stress-aiol: fix interrupted or end of stressing aiol waits with -1 return * stress-peterson: add mfence to fix failures on out-of-order ARM cpus * stress-pci: report untested PCI rates as "unknown" rather than 0.00 * stress-ng.h: only define _FILE_OFFSET_BITS if it is not defined * stress-signest: add some more signals, sort them in name order * Makefile: add --cache-enable-all for slow-test-all and verify-test-all * stress-chroot: fix placement of colon in chroot escape message * stress-ng: add a few more percent wiggle room on end of run estimate * stress-stream: improve memrate message * stress-mq: add note to increase /proc/sys/fs/mqueue/queues_max for linux * stress-kvm: report KVM kernel API as a debug message * stress-dev: add notes about running as root to exercise more devices * Makefile: add --progress and remove --verbose from verify-test-all and slow-test-all * stress-mlock: remove extranous space in debug message * stress-fd-fork: report approx number of fds * stress-fd-fork: report how many fds were closed * core-shim: add warning disabling pragma on extern stime declaration * stress-fork: handle 32/64 bit address for 32 bit systems * stress-enosys: don't exercise > 32 bits for 32 bit systems * stress-exec: only use MAP_STACK if it is defined * stress-memfd: remove duplicated declaration of fd * stress-cpu-online: remove duplicated declaration of variable cpu * stress-monte-carlo: declare stress_mc_supported for HAVE_ARC4RANDOM * stress-fork: voidify unused arg fork_unmap for non-linux builds * stress-cache: voidify cache related flags and mask * stress-dev: swap calloc arguments to the correct way around * core-target-clones: add Arrowlake and Pantherlake CPU support * Dockerfile: remove kmod and xxhash * Dockerfile: add mpfr and judy from community repos * stress-sigsegv: methodically exercise reads from all VM address range * core-perf: add swiotlb perf event and bump event count up as we are running low * core-perf: add IRQ tasklet entry/exit metrics * core-perf: add IPI Raise event * stress-resources: only declare ppid if HAVE_PIDFD_OPEN is defined * stress-cpu-online: ensure cpu is initialized * core-klog: ignore cpu affinity warnings, these are benign * stress-cpu-online: round-robin CPUs for instances 1 and 2 * stress-cpu-online: always try a different cpu and don't try an already offlined cpu * stress-ng: Fix net_port_map lock failure * stress-cpu: don't check for onlining failure for more than 1 instance * stress-bitonic: rename bionicsort_count to bitonic_count * stress-shellsort: remove redundant 8 bit sort * stress-bitonicsort: Add another sorting stressor * stress-cpu-online: run a child process that tries to pin itself to offlined CPU * core-resouces: open another fd, based on the stdout of parent pid * stress-memfd: don't populate memfd mapped pages * stress-memfd: exercise each flag per iteration * stress-memfd: change memfd_fds to a int32_t * stress-memfd: create some filenames just one * stress-memfd: use close_range on fds, fall back to loop'd fd close * stress-enosys: add 24, 40, 48, 56 bit syscalls * stress-malloc: add some SEGV action information * stress-fd-fork: add --fd-fork-file option to specify file to dup * stress-fd-fork: add metrics on time to open all fds and open 10000 files per loop * stress-fd-fork: add --fd-fork-fds option to specify number of files to open * Manual: add note about fd-fork bogo-op rate dropping over time * Manual: recommend using the maxtrix-3d stressor for cache misses * stress-ng: avoid potential division by zero by total_run * stress-fd-fork: add a file descriptor copying via fork stressor * Manual: Fix typo "maybe" -> "may be" * stress-crypt: add --crypt-method to allow encryption method to be selected * Manual: update crypt stressor with list of all crypt methods used * stress-memfd: fix #endif, removed the wrong one * stress-memfd: remove debug #ifdef's * stress-memfd: make random madvise calls an optional opt-in with --memfd-madvise * stress-memfd: add in opt-in zap pte test option --memfd-zap-pte * stress-memfd: include for MEMFD huge page flags * TODO: add IP_LOCAL_PORT_RANGE * stress-ng: add estimated completion time for --progress option * stress-ng: add a --progress option to show --sequential run progress * stress-fork: disable --fork-unmap if --fork-vm is also enabled * stress-fork: remove stress_set_proc_state so libbsd can be removed * stress-fork: don't remove readable pages that may be used in dlsym searches * stress-syscall: only define SHADOW_STACK_SET_TOKEN if it's not defined * stress-fork: add --fork-unmap option to force unmapping of shared libs * Makefile.config: specify library link ordering * stress-clone: force lazy bind libc functions to be bound before clone is run * stress-stream: fix collapse stream-madvise option to use MADV_COLLAPSE * stress-fpunch: add --fpunch-bytes option to specify fpunch file size * stress-fork: force lazy bind libc functions to be bound before child is run * stress-fork: do immediate _exit() call for short lived processes * stress-fork: make help clearer on process creation naming * core-thrash: no need to snprintf a fixed path name, clean up code * stress-fork: align info array to cacheline * stress-skiplist: add bounds check on ln2n * Manual: fix misalignment of --misaligned-ops option * stress-cache: zero buffer before benchmarking read/write rates * stress-cache: correctly report the cache flags being used * stress-vforkmany: add --vforkmany-bytes option to specify mmap size * core-mincore: add missing --page-in OPT_FLAGS_MMAP_MINCORE check * stress-vforkmany: use waste_size instead of WASTE_SIZE for mmap'd waste region * stress-numa: add support for MPOL_WEIGHTED_INTERLEAVE * core-helper: use program_invocation_name to get program name * stress-monte-carloc: add arc4 cryptographically-secure pseudorandom generator * stress-numa: add NUMA hit/miss metrics * stress-context: make context regions smaller, move stack to new mmap'd area -- Colin Ian King Tue, 5 Mar 2024 16:43:38 +0000 stress-ng (0.17.05-1) unstable; urgency=medium [Nikolas Kyx] * stress-syscall: fix cmp_test_duration() return value [Colin Ian King] * Makefile: bump version * Makefile: add core-asm-loong64.h to HEADERS * stress-atomic: make atomic region 64 bytes wide, step through it * Manual: update caveat concerning bogo-op rates * Manual: update date * stress-unshare: silently ignore EACCES returns * core-pragma: drop packed gcc version to 9.4 * Manual: fix a couple of typos * stress-prio-inv: fix typo "cheduling" -> "scheduling" * core-helper: fix some spelling mistakes * stress-landlock: ensure all set bits work in mask and zero ruleset_attr before use * stress-sysfs: ignore SIGKILL as bad signal * stress-numa: fix one more %zu format specifier * stress-numa: use %zu format specifier for size_t * stress-monte-carlo: don't use getrandom for Solaris, it's very slow * core-vmstat: only account for CP_SPIN on OpenBSD if it exists * stress-stack: make rc no-clobberable, cleans up gcc 4.9.2 warning on kfreebsd * core-shim: disabled process_mrelease for SPARC * stress-monte-carlog: only define stress_mc_no_seed if it is required * core-perf: make filemap page cache description match existing style * stress-numa: report per instance mapping size to 1 decimal place * stress-numa: add --numa-bytes option to specify total memory size * kernel-coverage: add numa addr and node shuffling options * stress-numa: add --numa-shuffle-addr and --numa-shuffle-node * stress-numa: ensure pages get re-assigned to different nodes * stress-tree: disable warnings on misaligned pointer access * stress-numa: use stress_mmap_set_light to touch pages * core-pragma: add checks for gcc 10 * core-pragma: add missing \ * stress-monte-carlo: use generic supported and no_seed functions * stress-dev: add include ifdefs around stress_dev_ptp_linux * stress-dev: add macro VOID_ARGS to voidify common function args * stress-dev: remove UNEXPECTED checks, add more linux guarding * stress-dev: add some kvm ioctls * stress-dev: exercise UI_GET_VERSION ioctl on /dev/uinput * stress-dev: add RNDGETPOOL ioctl on /dev/random * stress-dev: exercise /dev/input/event* * stress-dev: add RTC RTC_IRQP_READ32 ioctl * stress-dev: add linux /dev/rtc ioctls, delay on -EBUSY * stress-mmap: add missing MMAP_SYNC flag * stress-ng.h: disable _FORTIFY_SOURCE when using PCC * stress-ng.h: disable _FORTIFY_SOURCE when using TCC * core-mmap: remove unused variable val * stress-sigsegv: make pointers uint8_t * to clean up void * pointer addition warnings * Makefile: don't enable -fipa for icc * stress-tree: allow tree node packed structures where packed is allowed on x86 * core-pragma: add -Waddress-of-packed-member to WARN_OFF macro * core-attribute.h: add PACKED macro for attribute packed * stress-tree: move u into it's own typedef and make tree node 8 byte aligned * stress-tree: avl: remove redundant assignments to taller * stress-tree: avl: add pointer r as a short cut for (*root) * stress-tress: avl: make variable taller a register * stress-tree: avl: remove sub_taller variable * stress-tree: avl: replace (*root) with node on new node * stress-tree: don't pass taller flag in avl_insert * Add build-time test for packed attribute * README.md: add DEBUG=1 make build instructions * stress-monte-carlo: add some more complex integrals to compute * stress-monte-carlo: fix ppc64 darn and add missing rand support check * stress-rseq: add check for __builtin_thread_pointer() * stress-monte-carlo: add Monte Carlo computation of pi and e * stress-rseq: remove debug '| 1' for sys/rseq.h include * stress-rseq: remove trailing white space * stress-rseq: remove invalid rseq test cases * stress-rseq: remove rate debug * stress-rseq: move critical section count into a stressor metric * stress-rseq: rework to work with rseq in glibc * stress-sigsegv: fix exact fault address check * stress-x86syscall: add geteuid, getgid and getuid * README.md: add another citation link * stress-prio-inv: remove undef of PTHREAD_MUTEX_ROBUST * stress-prio-inv: remove prio default case from switch * stress-prio-inv: add build time check for pthread_mutexattr_setrobust * stress-prio-inv: add build-time checks for various SCHED_* support * stress-prio-inv: update reason why stressor is not implemented * stress-prio-inv: move pthread_mutex_t dependant types * Add shim for dirent d_type * stress-landlock: shift left with correct sized integer * Makefile.config: cater for empty $LIB_BSD string * stress-time-warp: add a time/clock time warp checking stressor * stress-prio-inv: match order of STRESS_PRIO_INV_POLICY_* with stress_prio_inv_policies * stress-mmap: add --mmap-stressful * stress-prio-inv: add --prio-inv-policy to select scheduler policy * stress-prio-inv: use FIFO sched by default * README.md: add Nikolas Kyx to contributors list * Add new prio-inv (priority inversion) stressor * stress-mmap: add --mmap-slow-munmap option * core-perf: add some more trace events * stress-landlock: only exercise flags that are usable * core-shim: replace strlcpy with safer strscpy * stress-landlock: add more landlock access flags, add check for usability * core-mwc: optimize and generalize mwc*modn() functions, remove pwr2 helpers * stress-mmap: use non-mod random mwc functions for faster index generation * stress-mmap: add new option --mmap-write-check for opt-in write + checks * stress-factor: up the maximum digit size to 100000000 digits * stress-mmap: add --mmap2 option in short help * kernel-coverage: add new mmap options to mmap stress cases * stress-mmap: add opt-in randomized madvise on pages * core-mmap: touch + check just start of each page rather than filling them * debian/control: add libgmp-dev for factor stressor * README.md: update number of stressors (320+) and add loong64 arch * stress-mmap: touching pages should be using sz and not context->mmap_bytes * stress-mmap: add --mmap-mergeable option * stress-factor: clean up indentation * stress-mmap: reduce affect of mumap on stressor * stress-factor: add factorization stressor using libgmp * core-mmap: replace add/sub with xor * core-mmap: remove need for shift and compare, replace with add/sub * Manual: add "next generation" reference in title to explain why it is called stress-ng * core-mmap: replace compare + check for each value with 32 sum + check * Manual: add missing System V semaphore stressor title * stress-mmapfiles: ensure fd is closed on loop break paths * stress-mmapfiles: add ENOMEM check to bail out early * Manual: add notes to --mmapfiles stressor * stress-mmapfiles: add missing , between literal strings * stress-mmapfiles: remove ANONYMOUS mapping flag and use fd in mmap * stress-mmapfile: add file based memory mapping stressor * stress-cpu-online: move stressor back onto newly online'd cpu * stress-affinity: let main stress process reap all children * core-vmstat: Add OpenBSD implementation of stress_get_cpu_ghz * core-vmstat: add vmstat support for OpenBSD * stress-crypt: fix FreeBSD build issues * README.md: add note about snaps of stress-ng * core-shim: add missing shim block comments * Makefile: add support for Link Time Optimization * stress-ng: keep track of metrics overflow, report so. * stress-af-alg: add metrics for each af-alg crypto type * README.md: add another link to a kernel issue found by using stress-ng * stress-sysbadaddr: add Linux 6.8 lsm system calls * stress-waitcpu: add support for loong64 by using dbar instruction * stress-workload: RISC-V: use stress_asm_riscv_pause instead of a fence * stress-waitcpu: use RISC-V pause instruction for small delays * stress-waitcpu: only sanity check non-rates on non virt x86 systems * stress-eigen-ops.cpp: remove commented out debug code * stress-priv-instr: add loong64 privileged instructions * stress-pipe: add debug to log default pipe read/write sizes * core-*.h: add ALWAYS_INLINE annotation for small inline helpers * stress-regs: add loong64 implementation * core-asm-loong64.h: Add support for cpucfg instruction * stress-acl: terminate do-while stressor loop on acl error exit * kernel-coverage: exercise all ioschedulers on filesystems * stress-tsc: add rdtime.d instruction auto-built detection * stress-workload: add Loong64 support for dbar instruction * Manual: Add Loong64 implementation details for tsc stressor * stress-tsc: add Loong64 tsc reading support * core-asm-arch: initial support of Loong64 arch * Makefile: swap order of -U and -D FORTIFY_SOURCE * Makefile: ensure cc_supports_flag is defined outside the PEDANTIC flag settings * stress-io-uring: add optimizations - late sqe memset and optimize out zero stores -- Colin Ian King Thu, 1 Feb 2024 15:02:47 +0000 stress-ng (0.17.04-1) unstable; urgency=medium [Munehisa Kamata] * README.md: fix a typo in the contributor name * stress-acl: Fix stress_acl_info definition [Colin Ian King] * Makefile: bump version, change code name * README.md: add Cygwin to supported systems * kernel-coverage: add longer duration sysbadaddr test * stress-pthread: disable pthread_sigqueue call for CYGWIN * stress-tree: disable RB trees for CYGWIN * stress-sparsematrix: disable RB trees for CYGWIN * core-helper: add _start workaround for CYGWIN * core-shim: fix setdomainname check on HAVE_SETDOMAINNAME * stress-dir: don't reference non-POSIX d_reclen for CYGWIN * stress-mmapfork: use stress_mmap_populate for MAP_POPULATE * stress-xattr: workaround ENODATA not being defined for NetBSD * stress-metamix: voidify parameter temp_dir if O_DIRECTORY is not defined * core-time: voidify parameter dnow, cleans up Dilos build warning * stress-sysbadaddr: fix another valid fd check, should be >= 0 * stress-sysbadaddr: fix valid fd check, should be >= 0 * stress-sysbadaddr: close fdin rather than fdout on fdout open failure * stress-sysfs: use SCNu16 formate specifier for sscanf uint16_t * stress-sock: remove shadowed declaration of variable i * stress-vdso: add clock_getres * stress-sysinval: set dirfd mode, gid and uid back to original setting * stress-sigxfsz: retry setrlimit with smaller size if limit is too large * stress-copy-file: replace sizeof(char) with 8 * stress-copy-file: fix the max off_t, it's signed to cater for this * stress-sysbadaddr: use shim_cacheflush instead of direct system call * stress-sysbadaddr: pass different addresses to ppoll * stress-af-alg-defconfigs: re-order and remove blank lines * stress-mmap: add mprotect EACCESS error check for NetBSD * stress-metamix: add EBADF on fdatasync on read-only fd * stress-metamix: fix incorrect EBADF check * stress-metamix: ignore EBADF on fdatasync on read-only file * stress-ng: don't call mprotect if it does not exist * stress-syscall: add comment explaining why shell sort is used instead of qsort * stress-sysbadaddr: use VOID_RET for typed voidification of system call returns * Update copyright year to 2024 * Manual: remove . in Eigen description * stress-sock: exercise SO_SOCKET SO_* opts that return int type values * stress-sysbadaddr: only increment counter if a syscall is to be made * stress-sysbadaddr: avoid exercising system calls that will not fail * stress-sysbadaddr: add some more xattr system calls * stress-sysbadaddr: bad_fstat: exercise fstat on temp dir * stress-sysbadaddr: add copy_file_range * stress-sysbadaddr: add missing MIPS cacheflush system call * stress-syscall: add missing MIPS cacheflush system call * stress-sysbadaddr: exercise shim'd and non-shim'd syscalls * stress-sysbadaddr: exericse system call parameters with range of parameters * stress-sysbadaddr: only respawn child when bad addr breaks system call * core-version: define EQUAL_GNUC for all compiler times * stress-radixsort: remove array size specifiers to fix tcc build failures * core-builtin: add shim wrapper for __builtin_assume_aligned() * core-cache: add missing tab to clean up \ alignments * stress-vecshuf: remove redundant variables total_ops and total_bytes * stress-numa: Fix spelling mistake in comment * stress-memthrash: remove trailing space at end of line * README.md: update contributors list * stress-syscall: add the --syscall-top N option to report top N fastest syscalls * Manual: fix typo "fasted" -> "fastest" * stress-radixsort: reduce memory bandwidth by making length 2 bytes * stress-radixsort: clean up casting in IDX and IDX_T macros * stress-radixsort: remove signed conversions in radix_strlen * stress-radixsort: offset digit counter by 1 * stress-radixsort: optimize radixsort * stress-radixsort: add nonlibc implementation of radixsort * stress-heapsort: add new --heapsort-method option to help * stress-mergesort: add new --mergesort-method option to help * stress-mergesort: add some more memory copying optimizations * stress-mergesort: optimize for 4 byte data * stress-mergesort: remove base_ptr, replace with base * stress-mergesort: optimize copying of lhs and rhs to base * stress-mergesort: add missing base_ptr increment * stress-mergesort: optimize lhs and rhs copying * stress-mergesort: add nonlibc implementation of mergesort * stress-heapsort: optimize copy and swap for common size cases * stress-heapsort: add nonlibc implementation of heapsort * Makefile: add cc_supports_flag to simplify CFLAGS checking * Makefile: add gcc optimization flag -fipa-pta * stress-sysfs: exercise test resume command for /sys/power/disk * stress-pty: exercise cfgetispeed and cfgetospeed on leader and follower * stress-vecshuf: report shuffle rates as Harmonic Mean * stress-sysinval: add map_shadow_stack system call * stress-syscall: add map_shadow_stack call * core-*: add more comments * core-helper: assign val2 to avoid any static analysis warnings * stress-acl: add randomized acl attribute order shuffling with --acl-rand * Makefile.config: Fix incorrect addition of -DSTRFUNC to LDFLAGS * stress-ng: initialize values to 0.0 rather -1.0 * stress-acl: exercise all ACL types, ACL_TYPE_ACCESS and ACL_TYPE_DEFAULT * core-shim: shim_kill: don't allow SIGKILL on pid -1 * stress-ng: don't kill entire group or pid 1 (init) * stress-acl: uppercase ACL in help text * stress-acl: add ACL set vs get verification * stress_acl: rename acl functions, prefix with stress_ * stress-acl: exercise acl_get_file and add metrics for this * kernel-coverage: enable acl for reiserfs * README.md: add another link to a research paper * stress-open: add open using all the possible file modes * stress-acl: compute and cache all valid ACLs to improve performance * stress-vma: voidify returns using VOID_RET macro * Update documentation and debian/control for libacl dev libs * stress-acl: exercise POSIX ACLs using libacl * README.md: add another link to a research paper * stress-inotify: exercise ioctl command INOTIFY_IOC_SETNEXTWD * stress-sock: retry send on ENOBUFS * stress-sock: fix zerocopy - enable it via setsockopt and use flag appropriately * core-asm-x86.h: remove duplicated cpuid legacy implementation * kernel-coverage: add extra bcachefs format options for more test coverage * core-helper: stress_get_null: cast zero to uintptr_t before void * cast * stress-sem-sysv: reduce the rate at which proc info is being read * stress-vecwide: don't use target clones for gcc 9.4.0 * core-asm-x86.h: remove STRESS_ARCH_X86_32 variant of rdtsc * stress-vma: fix non-termination of vma pthreads and child processes * kernel-coverage: reduce tmp file system image size to 4000MB for bfs * stress-raw[pkg|udp]: only include linux/udp.h if netinet/udp.h does not exist * core-helper: add null function to obfuscate (void *)0 values * stress-workload: include sched.h required for aarch64-linux-android33-clang * stress-rawudp: fix type comparison warning, cast to in_addr_t * Fix missing headers and rindex/index for clang android static builds * stress-malloc: only declare trim_counter when it's required * Fix open calls that have extraneous mode flags on non-create opens * kernel-coverage: add collapse --stream-madvise option * stress-stream: add collapse --stream-madvise option * kernel-coverage: add in some extra stressing options -- Colin Ian King Fri, 5 Jan 2024 09:12:11 +0000 stress-ng (0.17.03-1) unstable; urgency=medium [Colin Ian King] * Makefile: bump version * Makefile: remove -g from CFLAGS * stress-sock: fix memory real on mmap_buffer * stress-malloc: replace pre-inc with post-inc on trim_counter * stress-tsc: only define stress_tsc_check when required * manual: update release date * stress-opcode: allow exit system call * stress-sysbadaddr: don't unmap shared memory, just make it read-only * stress-enosys: don't unmap shared memory, just make it read-only * stress-opcode: don't unmap shared memory, just make it read-only * stress-sysinval: don't unmap shared memory, just make it read-only * stress-tsc: clean up warnings with systems that do not support lfence * stress-sysonval: add in missing old/deprecated and new system calls * stress-enosys: add in missing __NR_* syscalls * README.md: add another kernel issue found by stress-ng * stress-malloc: mmap addr array and prefetch values * stress-malloc: only trim memory when new option --malloc-trim is used * stress-tsc: add the --tsc-rdtscp option * Add build-time check for rdtsc instruction -- Colin Ian King Sat, 9 Dec 2023 23:57:32 +0000 stress-ng (0.17.02-1) unstable; urgency=medium [Sascha Hauer] * stress-physpage: explicitly use 64bit type for physical addresses * stress-ng.h: define _FILE_OFFSET_BITS before including features.h [Rulin Huang] * Reduce the file operations if the unused pid can be found within several tries [Colin Ian King] * stress-bigheap: ensure value in *uintptr is initialized * stress-workload: clean up some clang-scan-build warnings * stress-workload: remove redundant assignments to variable t * stress-workload: remove redundant initialization of t_begin * stress-sigpipe: add wrapper to pipe_child to clear up tcc warning * stress-reboot: add wrapper to reboot_clone_func to clear up tcc warning * stress-vma: remove volatile cast, it is unnecessary * stress-lsearch: add casts to const char * to avoid void * arithmetic * stress-bsearch: cast base to const char * to avoid void * arithmetic * core-time: return -1 if time not available via stress_time_now_timespec * stress-msync: make pointer buf unclobberable * stress-msg: remove another invalid msgrcv calls that work for OpenBSD systems * stress-msg: remove invalid msgrcv calls that work for *BSD systems * core-shim: Fix non-PURE shim_enosys function * core-resources: include core-pthread.h for pthread types * stress-get: don't call gettimeofday with NULL values * core-shim/stress-get: use gettimeofday() for non-linux shim_time calls * core-shim: fix typo: tlock -> tloc * core-shim/stress-get: use time() for non-linux shim_time calls * stress-get: fix error messages, replace gettimeval with gettimeofday * stress-get: only exercise time(NULL) on Linux * core-helper: move ret inside #ifdef block * README.md: Update contributor list * stress-*: clean up a handful of spelling mistakes * stress-stream: unmap in correct idx order * README.md: add another link to a research paper * stress-prctl: munmap page_anon on error return path * stress-seal: unmap buf on error return paths * stress-cyclic: unmap latencies mappings on error return * stress-zero: unmap read/write buffers on error return paths * stress-stream: simplify error unmapping return paths * stress-rawdev: fix memory leak on mmap'd buffer on error return path * stress-fail: use fail error exit path for non-implemented /dev/full * stress-sockmany: fix memory leak on signal handler error return path * stress-signest: fix memory leak on signal handler error return path * stress-sock: fix memory leak on fork failure error return path * stress-sigpipe: fix memory leak on signal handler error return path * stress-stackmmap: make stack_sig non-clobberable * stress-sigbus: make ptr non-clobberable * core-helper: add stress_mmap_populate to mmap with MAP_POPULATE * stress-qsort: add missing tab * stress-bseach: add -O3 for nonlibc bsearch function * stress-waitcpu: add some more nops * stress-vm: remove volaile where it's not required, add memory barrier * stress-vm: speed up prime-gray-0 and prime-gray-1 by reducing total memory read/writes * stress-vm: speed up prime-0 and prime-1 by reducing total memory read/writes * stress-vma: provide different handlers for SIGBUS and SIGSEGV * stress-vma: optimize matrics, add cacheline pad and remove volatile * stress-vdso: add dummy function call to emulate minimal vdso function * stress-udp: don't memset the send buffer on each send * stress-trig: replace iterations with macro STRESS_TRIG_LOOPS * stress-trig: unroll loops, speed up by ~4.2% * stress-memthrash: only report lack of NUMA support with instance 0 * stress-schedmix: reduce compute overhead on prime number CPU load * stress-stack: unroll loop in stress_stack_alloc * stress-sockpair: optimize buffer setting and checking * stress-sockdiag: move bogo-op count to outside parser loop * stress-skiplist: use 8 bits for skip_list_random_level generation * stress-skiplist: optimize ln2 operation using clzl * stress-sigxfs: optimize counter increment, remove branch * stress-sigxfsz: don't make async_sigs volatile * core-helper: only declare array buf when it is required * core-helper: voidify function argument dumpable * core-helper: only declare array buf when it is required * core-shim: move include to core-shim.h * stress-gpu: move declarations for gpu_freq_sum and gpu_freq_count * core-numa: add stress_numa_nodes helper for non-linux builds * stress-stream: don't print numa nodes related info for non-linux systems * core-shim: add missing include of sys/uio.h required for struct iovec * stress-mmapfixed: fix array overflow, iterate over only the array elements * stress-gpu: ensure usec computations are using uint64_t type * stress-hsearch: voidify return from stress_get_setting * core-helper: use STRESS_MAXIMUM on maximum pid * stress-vma: add in extra protection flags and mmap flags for more stress * stress-vma: add PROT_NONE back * stress-vma: ensure page is always mappable * stress-ng: move ci counter struct into args and args into stat struct * stress-signal: don't use volatile for in-signal handler counter increment * stress-ring-pipe: replace % operator with compare and set * stress-resched: remove need to check for non-mapped yields array * README.md: add more research paper links * stress-remap: unroll a handful of loops * stress-regs: reference registers rather than v variable * stress-readahead: unroll some loops * stress-randlist: add prefetch to next pointer in list scanning * core-mwc: use clz for shift maximization for 8 and 16 bit mwci functions * core-sort: optimize of powers of 2 size for stress_sort_data_int32_shuffle * stress-gpu: only report GPU frequency if > 0.0 MHz * core-time: optimize get_time_now() * stress-procfs: use MAP_POPULATE on mmap to reduce read-fault hit * stress-procfs: perform less timeout checks on 1 byte reads and optimize timeout paths * stress-poll: switch order of read return checks * stress-opcode: inline and unroll loop in stress_opcode_random * stress-null: scale down mmaps to 1 once every 500 iterations * stress-nice: add ( ) to clarify precedence * stress-syncload: add yield delay for ppc * core-builtin.h: Add llabs builtin shim wrapper * core-ops: add in missing OPT_hsearch_method * stress-nanosleep: ensure no overflow occurs on 32 bit systems * stress-hsearch: add hsearch method for libc and non-libc versions * stress-mmaphuge: simplyfy the set and check memory exercising * stress-mmapfixed: make vec array uint32 to speed up mincore checking * stress-mmapfixed: move memset in stress_mmapfixed_is_mapped_slow * core-helper: add missing space between ) and { * core-helper: stress_process_dumpable: use stress_system_write to write data * core-helper: stress_get_memlimits: use stress_system_read to read data * stress-lsearch: use lfind_nonlibc in lsearch_nonlibc * stress-lsearch: add lsearch method for libc and non-libc versions * stress-bsearch: add --bsearch-method short help * stress-lockofd: remove yield point, it's not helping that much * stress-lockf: remove yield point, it's not helping that much * stress-locka: remove yield point, it's not helping that much * Makefile.config: echo the number of configurations in config.h * stress-jpeg: compute gradient image using float instead of double * stress-io-uring: add UNLIKELY hint on error return check * stress-iomix: stress-_iomix_rd_wr_mmap: just read 1 byte from page * core-mwc: move stress_rndstr from core-helper to core-mwc * stress-icache: add missing space before + operator * stress-hdd: optimize hdd_fill_buf * core-mwc: move stress_rndbuf from core-helper to core-mwc * stress-gpu: add GPU frequency metrics based on 10 samples per second * stress-ng: emit plural of instance if instances > 1 * core-config-check: replace "will" with "may" * stress-getrandom: reduce overhead of gettimeofday calls * stress-full: fix and optimize stress_data_is_not_zero * core-mwc: optimize modulo mwc32 and mwc64 functions * stress-fifo: add poll replacement to select, disable it for now * stress-far-branch: inline the branch shuffling, reduce iterations from 5 to 1 * stress-epoll: don't fill send buffer on each send * core-time: make function stress_timeval_to_double PURE * core-helper: add PURE annotation to two more helper functions * core-helper: optimize stress_rndstr * stress-clock: move memsets outside of loops for minor performance improvement * stress-bsearch: allocate bsearch array using mmap * stress-ng: fix short help for change-cpu, fix missing - * stress-bsearch: add bsearch method for libc and non-libc versions * stress-qsort: add in missing qsort-method short help * stress-ng: don't timeout until all stressors are spawned * core-helper: fix low memory swap check * stress-sigxfsz: remove unused include files * stress-sigxcpu: Add new SIGXCPU stressor * stress-sig*: add new class "signal", add signal stressors to this class * stress-cpu-online: write the string length rather than buffer size * core-helper: make inline helper function stress_chr_munge PURE * stress-pthread: constify variable trun * stress-pthread: use same racy pid for tgid rather than fetching one 3 times * README.md: Update contributors name list * stress-sigxfsz: Add new SIGXFSZ stressor * README.md: add some more kernel issues found with stress-ng * core-cpuidle: report C states with commas between each state * stress-sysbadaddr: add missing #include * Add in some missing includes * fix up build errors from unchecked in changes * stress-ng.h: move #include to sources that require it * stress-af-alg: add in missing #include * README.md: add another citation link * stress-ng.h: move #include to core-pthread.h * stress-ng.h: move #include to sources that require it * stress-ng.h: move #include to sources that require it * stress-ng.h: remove #include * stress-ng.h: move #include to sources that require it * core-helper: move MEM_CACHE_SIZE from stress-ng.h to core-helper.c * stress-stream: decouple the default guess cache size from MEM_CACHE_SIZE * core-attribute: add extra checks for attribute noinline * core-attribute: add extra checks for attribute always_inline * core-attribute: add extra checks for attribute weak * core-attribute: add extra checks for attribute noreturn * core-attribute: add extra checks for attribute warn_unused_result * core-attribute: add extra build checks for hot attribute * core-attribute: add PURE macro for gcc pure attribute * stress-crypt: use the correct size to strlcpy to * stress-cpu-online: report the sysfs file when writes fail * core-helper: take into consideration NUMA nodes for full cache size * stress-msync: mark fd as NOCLOBBER, clean up gcc 13.2.1 warning * Makefile: remove gcc optimization flags * Makefile: fix gcc detection for extra gcc optimization flags * stress-memthrash: add a buffer 8 bit reverse method * stress-malloc: use valloc in non-thread scenarios * stress-malloc: add valloc (or valloc emulation) for more calls to exercise * stress-hsearch: add -O3 optimization * stress-hsearch: move repeated verify flag check to a const bool * stress-fma: improve fma buffer copying * core-sort: minor re-ordering of load/stores and compute for minor speed improvement * core-sort: minor optimization in stress_sort_data_int32_init * stress-zlib: improve rarely0 and rarely1 performance * stress-ng: clean up some more whitespace / tab issues * stress-ng: replace spaces with tab * stress-zlib: implement rdrand filler for non-x86 systems * stress-zlib: improve performance of rdrand filling of buffer * stress-tree: remove the UNLIKELY hint in avl_find * stress-tree: remove the UNLIKELY hint in binary_find * stress-tree: remove TARGET_CLONES from binary tree find/insert * stress-stream: add TARGET_CLONES for index0 level streaming * core-nt-store.h: use a union cast for stress_nt_store_double store * stress-prefetch: clean up some source white space/tabs * stress-io-uring: tweak number of io-uring entries depending on CPU count * stress-io-uring: add --io-uring-entries N option to specify ring size * Revert "stress-context: avoid using alternative stacks in a swapcontext" * stress-fork: replace slow mwc8 with fair round-robin switch selection index * stress-hash: don't call expensive mwc reseed for non-verify mode * stress-branch: load next goto address in previous loop * stress-branch: re-order branching code to compute idx before jmp * test/test-crypt-r: check for support of GNU libcrypt data fields * stress-ng: Fix stupid extraneous { * Makefile.config: remove some trailing spaces * stress-*: improve rate metrics by using harmonic mean * kernel-coverage: remove scheduler names * stress-cpu: replace 64 bit mwc and 7 shifts with 2 x 32 bit mwc and 6 shifts * stress-crypt: remove redundant prefix initialization * stress-crypt: remove a few more args from stress_crypt_id call * stress-crypt: optimize crypt_r usage with less memory buffer copying * stress-memfd: store and read data in cacheline strides * kernel-coverage: add bcachefs * stress-metamix: remove empty line * stress-metamix: handle EINTR for fdatasync and fsync * stress-iomix: break out of stressor loops on EINTR for read or writes * core-helper: add bcachefs magic -- Colin Ian King Thu, 7 Dec 2023 11:24:11 +0000 stress-ng (0.17.01-1) unstable; urgency=medium [Andrey Gelman] * stress-led: use shim_strlcpy instead of strlcpy [Max Kellermann] * stress-splice: remove "Exercise 1 byte splice, zero flags" call [Colin Ian King] * Makefile: bump version * debian/control: move homepage URL * README.md: add a few more links to research papers * Manual: update date with release * stress-vnni: remove extraneous word just in some messages * core-config-check: only report non-tty attached message when not using a tty * core-cpuidle: remove redundant initialization of cc * stress-sigsegv: only reference expected_addr if SA_SIGINFO is defined * core-helper: rename si_code to sig_code to fix macro clash with Minix * stress-trig: cater for 16, 12 and other sized long doubles * stress-utime: cast integer constants to time_t for time_t struct values * stress-schedmix: fix build warning for SCHED_OTHER case * stress-schedmix: only declare case_sched_other when required * stress-trig: voidify return from call to stress_get_setting * stress-uprobe: check for concurrent access to /sys/kernel/debug/tracing/trace_pipe * stress-schedpolicy: only declare case_sched_other when is required * stress-sigsegv: add PROT_NONE read to force SIGSEGV * core-shim: just call stat libc funcs for stat/lstat/fstat * stress-trig: lower precision if long double is same size as double * stress-msg: pass down error from receiver to parent * stress-cpu: advise not to use --cpu-method all when specifying --cpu-load * stress-ng: remove need to include core-put.h * core-madvise: add mergeable madvise helper, use it on some mmap calls * stress-trig: drop precision for float trig functions, add NULL on opt_set_funcs * stress-trig: Add TARGET_CLONES to use optimial float instructions * stress-trig: add a new trigonometric function stressor * stress-workload: remove NOINLINE to fix clang builds * stress-workload: make buffer uint8_t * rather than void * * stress-workload: constify pointers w1 and w2 in stress_workload_cmp * stress-copy-file: make stress_copy_file_seek64 an inlined static helper * core-config-check: include core_config_check.h to check stress_config_check prototype * stress-ng: remove CASE_FALLTHROUGH macro * stress-ng: exit with EXIT_FAILURE if locks fail to create * stress-ng: exit with EXIT_FAILURE if shared heap cannot be allocated * core-helper: add missing check for HAVE_SYS_PRCTL_H when using prctl * core-helper: add extra macro check for HAVE_SYS_UTSNAME_H when using utsname * stress-sctp: add extra macro checks for SCTP_SS_* macros * stress-remap: voidify unused function parameter remap_mlock * stress-switch: add extra check for HAVE_KEY_T * stress-sem-sysv: add extra check for HAVE_KEY_T * stress-syscall: need to check for HAVE_REMOVEXATTR for syscall_xattr_name * stress-syscall: need to check for HAVE_GETXATTR for syscall_xattr_name * stress-wcs: add some extra macro sanity checking for wcs* functions * core-ftrace: add extra macro check for RB tree functionality * stress-sparsematrix: add extra macro checks for tree types * core-ftrace: check if HAVE_BSD_SYS_TREE_H is defined for trees * stress-ng.h: clean up some spacing in macros * stress-context: only report context address mapping for instance 0 * stress-context: avoid using alternative stacks in a swapcontext * stress-ng: add aligned padding for counter metrics, rename it to pad * core-log: move ABORT_FAILURES from stress-ng.h to core-log * core-try-open: move STRESS_TRY_* macros to core-try-open.h * stress-dup: move STRESS_FD_MAX from stress-ng.h to stress-dup * stress-ng: move a few more macros from stress-ng.h to stress-ng.c * stress-mknod: move DEFAULT_DIRS macro to stress-mknod * stress-ng: move macros from stress-ng.h to stress-ng.c * stress-link: move DEFAULT_LINKS macro to stress-link * stress-access: remove trailing tab * stress-context: add SIGSEGV debug handling * core-helper: only dump object code for SIGILL * core-helper: add sigsegv handler and more debug to handlers * stress-mpfr: clean up indentation * stress-workload: add fused-multiply-add workload method * stress-workload: add --workload method option to specify work exercising method * stress-workload: add pause/yield workload * stress-syncload: use arm asm built-in for yield * syscalls.txt: update Copyright dates * stress-udp: use SO_REUSEADDR before bind * README.md: add another kernel bug found by using stress-ng * stress-file-ioctl: remove size check on FIOQSIZE * core-shim: fix missing ; on stat calls * core-shim: add shim wrapper for stat * core-shim: add shim wrapper for lstat * stress-iomix: use shim_copy_filerange and 64 bit offsets * stress-fpunch: cast offset to intmax_t to match print format specifier * core-shim: shim_copy_file_range: use shim_off64_t instead of shim_loff_t * core-helper: make buffer tmp larger to avoid gcc-12.2.0 m68k warning * core-shim: add shim wrapper for fstat * stress-open: try O_TMPFILE on temp_dir first, then fall back to /tmp * stress-workload: scale workload by number of threads * stress-workload: use correct delay time between next work item for threaded workloads * stress-workload: add an evenly spaced scheduling distribution option * stress-workload: add in missing workload duration for poisson dist * core-helper: provide warning when using the 0 reset timer-slack setting * stress-workload: provide --timer-slack advice when quanta is low * stress-workload: add a poisson process method of scheduled time generation * stress-*: add support for more floating point types * Makefile.config: use actual _Decimal* type names * stress-*: use _Float128 or __float128 depending on what is available * stress-*: replace HAVE_FLOAT128 with HAVE__float128 * stress-*: replace HAVE_FLOAT80 with HAVE__float80 * stress-*: replace HAVE_FLOAT64 with HAVE_Float64 * stress-*: replace HAVE_FLOAT32 with HAVE_Float32 * stress-*: replace HAVE_FLOAT16 with HAVE_fp16 * stress-*: replace HAVE_FLOAT_DECIMAL* with HAVE_Decimal* * stress-workload: set workload_threads to zero if mq or pthreads not available * stress-workload: compare failed wq with cast value of -1 * stress-workload: add --workload-threads option to use threads * stress-workload: remove CLASS_INTERRUPT from class * stress-link: minor speedup for mass file unlinking for minix 3 fs * stress-workload: fix scheduler build issues for non-linux builds * stress-vma: use shim_mincore instead of mincore * stress-workload: add memory flush/read work item * stress-workload: fix missing break in switch * stress-workload: add yield instead of very small sleeps * stress-workload: add a getpid() workload * stress-vma: fix missing proc-maps metrics * kernel-coverage: add workload sched workers * stress-workload: add --workload-sched option * stress-workload: add more randomly selected workloads * stress-workload: print histograph in debug verbose mode only * stress-workload: add a new scheduling workload stressor * stress-access: remove trailing space * README.md: update contributors list * stress-shm-sysv: add more information on shmat failure * README.md: add two more research citations * kerne-coverage: mount hfs, hfsplus with -o rw, increase loopback to 4GB * stress-swap: handle ENOSPC more gracefully as a skipped stressor * stress-access: don't report chmod errors for some filesystems * stress-led: add LED /sysfs exercising stressor (Linux) * README.md: update contributors list * core-killpid: make killable timeout 10 minutes instead of 3 * core-helper: add musl gcc detection * Add HOT OPTIMIZE3 attributes to random data filling helper funcs * core-mwc: replace just OPTIMIZE3 with HOT OPTIMIZE3 on highly used mwc funcs * test/test-libxxhash.c: include string.h and make buffer static * Manual: update vma manual description to reflect recent vma changes * stress-vma: reduce number of concurrent vma processes per instances to 2 * stress-vma: fix 32/64 bit address generation * README.md: add two more research paper citations * core-*, stress-*: Add musl-gcc detection and HAVE_COMPILER_MUSL * stress-vma: add reading /proc/self/maps * stress-mva: add mprotect and msync * stress-vma: add mincore calls on pages * stress-procfs: use pthread_cancel to cancel pthreads before join * core-config-check: fix inverted tty message * stress-cgroup: fix duplicated open flags, use S_IRGRP | S_IWGRP * core-config-check: check for powersave cpu governor * core-shim: remove debug stress_process_info call * stress-open: report filesystem type on O_DIRECT open/create issue * stress-dev: use stress_kill_and_wait instead of kill and wait combo * core-shim: shim_wait: bail out after 3 minutes of waiting * core-helper: add stress_process_info to dump process state * core-*, stress-*: use %jd and (intmax_t) cast for all pid_t formatting * core-*/stress-*: rename pid to PID across system * core-killpid: give up killing PID and debug report this after 3 minutes * kernel-coverage.sh: add --mmaphuge-file option to text mix * stress-mmaphuge: add --mmaphuge-file option to attempt to mmap onto a 16GB file * core-config-check: add system configuration sanity checks * kernel-coverage.sh: add /usr/sbin to path for gcov tools * stress-sysfs: terminate child process and pthreads using helper -- Colin Ian King Thu, 9 Nov 2023 17:32:18 +0000 stress-ng (0.17.00-1) unstable; urgency=medium [ Colin Ian King ] * Makefile: bump version to 0.17.00 * core-out-of-memory: treat zero timeout as ignore timeout check * stress-nanosleep: voidify function parameter ctxt * stress-nanosleep: fix build issue on Oracle Linux 6.1 * README.md: add another research paper citation * test/test-swap.c: make array swapfile const * test/test-sendmmsg: fix incorrect indexes in msg_iov2 * test/test-recvmmsg: fix incorrect indexes in msg_iov2 * test/test-lseek: reduce scope of variables offset and ret * test/test-libkmod: constify pointer mod * test/test-inotify: constify pointer * README.md: update number of stressors * stress-af-alg: treat EINTR as non-fatal in error reporting * stress-vma: add madvise() calls to pages for extra contention * README.md: Add another presentation link * sreess-io-uring: remove verbose debug * stress-ng: remove redundant assignment to variable handler_set * stress-vma: remove redundant call to getpid * stress-metamix: remove unused calls to stress_exit_status * stress-cgroup: voidify return from fstat * stress-softlockup: cast mmap return to uint8_t * to clear up build warning * core-helper: fix uninitialized totalswap and freeswap for BSD stress_get_meminfo * stress-cgroup: exercise a child process in cgroup * stress-cgroup: exercise seek+read on cgroup files for more exercising * stress-landlock: silently ignore ENOSYS when EINVAL is intended * stress-cgroup: improve linux only build checks * stress-cgroup: minimal linux cgroup v2 stressor * stress-landlock: remove debug return 0 in landlock supported check * stress-io-uring: silently ignore EINVAL for unimplemented ops * core-shim: fix FTBFS, missing ; on membarrier call * README.md: Add citation link to another academic paper * stress-vma: cast mmap'd void pointer to stress_vma_metrics_t * * stress-nanosleep: re-order #defines and typedef for non-pthread builds * stress-dir: cast isdigit arg to int to clear up minix build warning * core-cpuidle: only define stress_cpuidle_cstate_add_unique for linux builds * stress-vma: use MAP_GROWSDOWN only if it is defined * stress-utime: only exercise VFAT utime bounds for 64 bit systems * core-pragma.h: remove -Wstringop-overflow for older toolchains * core-pragma: use -Wstringop-overflow on toolchains that support it * stress-vma: fix build issues with systems without MLOCK_ONFAULT * stress-softlockup: add rep sto on 1MB buffer for x86 * stress-landlock: traverse file system adding as many files as possible * stress-landlock: fix non-working flags, re-work stressor * stress-vma: Add a new virtual memory address stressor * presentations: Add kernel recipes 2023 presentation * stress-dev: remove shadowed pointer dev * core-cpuidle: remove unused variable max_cpus * core-shim: add waitpid build check and use waitpid if it is defined * core-shim: use membarrier if it is defined * stress-dev: exercise /dev/cdc-wdm* * README.md: add another performance issue found with stress-ng * stress-swap: add filesystem type when swapon fails * kernel-coverage: fix typo in ionice loop * kernel-coverage: add swap on file systems for more exercising * stress-getrandom: add invalid GRND_INSECURE | GRND_RANDOM | GRND_NONBLOCK flags * stress-dev: add Linux /dev/vmci version ioctls * stress-dev: exercise /dev/radio with v4l ioctls * stress-dev: add /dev/lirc ioctl get commands * stress-sysfs: add finer grained locking, add sysfs exercise metrics * stress-utime: exercise some more times outside specific ranges * stress-fallocate: use O_SYNC'd fallocate every 16 bogo-loops * core-shim: handle posix_fallocate error returns correctly * stress-open: exercise two different invalid futimesat times * stress-shm: exercise a range of fallocate modes on shm * stress-sleep: add C state residency sleep durations to exercise deep C state sleeps * stress-nanosleep: add --nanosleep-method to specify different nanosleep methods * stress-nanosleep: also use C state residency durations for nanosleeps * core-cpuidle: allocate cpu C states and residency info in linked list * stress-dir: use stat or fstat depending if open fails or not * stress-dev: randomize the order of devices * stress-apparmor: remove unused commented out variable counter_lock * stress-dir: add file open/close on concurrent directory accesses * stress-dev: exercise /dev/dm with queued IO under RCU protection * stress-dir: reduce scope of variable d and make it const * core-helper: reduce scope of variable duration, make t const * core-log: clean up redundant variable initialization and constifications * core-clocksource: add check to see if HPET clocksource is being used * stress-dir: exercise readdir and rewinddir after populating a directory * stress-metamix: make verification optional with --verify option * stress-metamix: allow small 512 byte sizes, and mmap + check pages * stress-*: remove SIGTERM kills before SIGKILL kills * stress-*: use stress_kill_pid_wait() for kill/wait combos * core-*: use stress_kill_pid_wait() for kill/wait combos * stress-*: use stress_kill_pid() for kill SIGKILLs * core-log: only sync writes to log file and not stderr, stdout * core-log: don't write to logfile if it is not opened * core-*: fix syscall typo process_release -> process_mrelease * core-out-of-memory: include core-killpid.h * core: use stress_kill_pid for SIGKILLs * core-killpid: use process memory relasing if signal is SIGKILL * core-helper: remove some empty lines * core-helper: join broken literal strings * stress-vecmath: fix call to stress_catch_sigill * stress-ng: remove some empty lines * core-helper: add SIGILL handler for code that uses target clones * stress-metamix: add a new stressor that exercises a mix of file metadata operations * stress-epoll: silently ignore -ve parameter passed to epoll_wait * README.md: Add citation link to FIRESTARTER 2 * stress-ng: move child stressor invoking code into stress_run_child * stress-ng: use stressor array size as limit for stressor loops * core-log: fix ptr and size changes per write * core-log: add pr_log_write_buf_fd helper for writes of buffer to a fd * core-log: change semantics of pr_lock/unlock * Manual: add more explanation why --log-lockess is useful * core-helper: Add 1 ms yielding in logging and fork child startup * README.md: add three more research paper links * README.md: add four more research paper links -- Colin Ian King Sun, 8 Sep 2023 20:30:11 +0100 stress-ng (0.16.05-1) unstable; urgency=medium [Anisse Astier] * stress-vnni: verify if selected method supports intrinsic in intrisinc mode [Erwan Velu] * Manual: Indent stressors to ease man page reading [John Kacur] * stress-ng: Fix text of license in stress-sleep.c [Hsieh-Tseng Shen] * stress-pty: don't treat EINTR as failure when tcdrain is interrupted [matoro] * core-asm-generic: reintroduce HAVE_ASM_NOP check [ Colin Ian King ] * Makefile: bump version * Makefile: add missing core-time.h from headers * Makefile: remove snap from make dist rule * stress-touch: fix missing help args for --touch-method and --touch-opts * stress-ng: fix missing arg for --timer-slack help * stress-stream: fix --stream-index help, missing arg * stress-ring-pipe: fix help, missing args for --ring-pipe-num and --ring-pipe-size * stress-mremap: fix type in mremap-mlock help * stress-module: use settings names and variable names that match boolean args * core-opts: module-no-modver and module-no-vermag are argless, fix these * stress-ng: fix --max-fd help, needs arg N * stress-dirmany: fix --dirmany-bytes option in help * stress-cache: fix help for cacheline writeback should be --cache-clwb * stress-affinity: add missing numeric arg in --affinity-sleep option help * stress-llc-affinity: Fix spelling mistake "memiry" -> "memory" * Makefile: restore verify-test-all to 5 secs per stressor * stress-misaligned: double the timeout time for very heavily loaded systems * stress-cpu-online: fix nixos build error, missing semicolon * stress-kvm: skip stressor if /dev/kvm is already in use * Makefile: ignore warning return values in regression tests * stress-syscall: Add BSD rfork() system call * README.md: add another kernel reference * stress-mlock: only show munlock metrics if they are available * core-opts: fix disabled --perf option * Add map_shadow_stack to TODO list * stress-enosys: add map_shadow_stack * stress-dev: only use stress_dev_hid_linux if HAVE_LINUX_HIDRAW_H is defined * stress-ng.h: define _RENTRANT for __sun__ builds for threading * test/test-builtin-bitreverse: don't use random() to remove OpenBSD warnings * tests: don't use random() to remove OpenBSD warnings * core-cpu-cache: cast uint32 values to uint64_t before multiply * stress-sigbus: unconstify ptr8, clean up pedantic warnings: * core-helper: stress_write_buffer: use void * for ptr rather than char * * core-setting: fix const warning with pedantic builds * core-sort: fix const warning with pedantic builds * stress-icache: make function stress_icache_func static * stress-zero.c: only declare mmap_counter and mmap_index for linux builds * stress-softlockup: reduce scope of variables t and d * stress-icache: reduce scope of variable val * stress-fma: fix return type of stress_fma_rnd_float to float * core-builtin: ensure shim_sqrtl returns long double * stress-bad-ioctl: constify pointers * stress-bad-ioctl: reduce scope of variables type, nr and ret * stress-aiol: cast result of multiply to same type as offset * core-cpu-cache: make cache_size match the same type as cpu->caches[i].size * stress-af-alg: constify pointer ptr * core-shim: shim_posix_fallocate: reduce scope of variable ret * core-numa: stress_parse_node: constify pointer str * core-affinity: stress_parse_cpu: constify pointer str * core-setting: remove unused field uintptr_t from struct * core-interrupts: change scope of pointer ptr * stress-watchdog: re-work code to remove need for watchdog_close label * Makefile: force vnni to be built with at least -O2 * stress-vnni: move scope of variable to inside loop * stress-far-branch: clean false positive gcc warning by initializing ptr * stress-bad-altstack: make variable rnd non-clobberable * Add --interrupts option to enable interrupt accounting * core-interrupts: parse /proc/interrupts once for all types * README.md: add another paper citation * README.md: add two more kernel issues found with stress-ng * stress-enosys: add fchmodat2 * stress-syscall: add fchmodat2 * test-chmod: add fchmodat2 Linux 6.6 call and shim, add fchmodat shim * core-opts.h: move PR_OPT option macros to core-opts.h * core-opts: move gnu long options into core-opts.c * stress-prctl: add build check for new prctl macros * stress-prctl: exercise PR_RISCV_V_{GET|SET}_CONTROL * stress-prctl: add PR_GET_AUXV * README.md: add another kernel issue found using stress-ng * stess-schedmix: reduce scope of variable policy and remove initialisation * test/test-vfork.c: replace exit with _exit * stress-jpeg: stress_rgb_compress_to_jpeg: ensure duration is initialized to zero * stress-dev: add lseek + read on /dev/nvram, voidify some args to /dev/hid * stress-dev: exercise linux /dev/hid ioctls * stress-dev: exercise linux /dev/acpi_thermal_rel ioctls * stress-ng.h: rename PR_* macros to OPT_FLAGS_PR_* * core-thermal-zone.h: move perf related structs and defines to core-thermal-zone.h * core-perf.h: move perf related structs and defines to core-perf.h * stress-ng.h: remove unused typedef stress_func_t * README.md: add Anisse Astier to contributors list * Manual: rename AF_ALG stressor title * stress-netdev: exercise invalid lengths in ifr_ifindex and ifc_len * core-helper.h: move stress_align_stack into core-helper.h * core-time: move function prototypes to core-time.h * move stress_pagein_self definition to core-thrash.h * core-helper.h: move stress_warn_once from stress-ng.h to core-helper.h * stress-ng.h: remove unused legacy function declarations * core-helper: move stress_sigchld_set_handler from stress-ng.c to core-helper.c * include core-killpid.h for stress_killpid definition * stress-ng.h: remove stress_killpid, it is in core-kill.h * stress-ng.h: remove stress_clean_dir * core-helper: move stress_clean_dir and helpers to core-helper.c * core-helper: rename pr_* helper functions to stress_* * Makefile: add core-shim.h to headers * core-helper: move function prototypes and macros to core-helper.h * core-shim: move function prototypes and typedefs to core-shim.h * Remove snapcraft yaml file * core-helper: provide non BSD no-op variants of getsysctl functions * stress-sock: enable --sock-msgs option, set default from 1 to 1000 messages * stress-sock: remove need to assign recvfunc pointer for every send * Manual: clarify support for --vmstat option * Manual: add --metrics RSS description * stress-dccp: add --dccp-msgs option, set default from 16 to 10000 messages * README.md: add some more citiations * Manual: minor stressor description tweaks * Manual: minor corrections * Manual: re-adjust first option after each stressor heading using .TQ * stress-ng: make --metrics brief dump just bogo-ops metrics, more metrics with --metrics option * stress-null: add --null-write for write only null benchmarking * core-shared-heap: move function prototypes to core-shared-heap.h * core-processes: move function prototypes to core-processes.h * core-sched: remove unused function stress_set_deadline_sched * core-sched: move function prototypes to core-sched.h * Makefile: add missing core-limit.h * stress-ng.h: replace lock declarations with include of core-lock.h * core-mwc: move function prototypes to core-mwc.h * core-log: move function prototypes to core-log.h * core-setting: move function prototypes to core-setting.h * core-*: add missing extern and missing inclusion of header in core*c * Add core-attribute.h and core-parse-opts.h * core-out-of-memory: move function prototypes to core-out-of-memory.h * core-lock: move function prototypes to core-lock.h * core-limit: move function prototypes to core-limit.h * core-job: move function prototypes to core-job.h * core-vmstat: move function prototypes to core-vmstat.h * core-try-open: move function prototypes to core-try-open.h * core-numa: move function prototypes to core-numa.h * core-mounts: move function prototypes to core-mounts.h * Makefile: add two missing header files * core-mmap: move function prototypes to core-mmap.h * core-mlock: move function prototypes to core-mlock.h * core-mincore: move function prototypes to core-mincore.h * core-madvise: move function prototypes to core-madvise.h * core-klog: move function prototypes to core-klog.h * core-killpid: move function prototypes to core-killpid.h * core-io-priority: move function prototypes to core-io-priority.h * core-interrupts: move function prototypes to core-interrupts.h * core-ignite-cpu: move function prototypes to core-ignite-cpu.h * core-cpuidle: move stress_log_cpuidle_info to core-cpuidle.h * core-affinity: move function prototypes to core-affinity.h * stress-ng: stress_class_info_t: constify class * stress-ng: stress_verifiable_mode: constify mode arg * stress-ng: move stress_kill_stressors to remove need for forward declaration * stress-ng: rename some variables, add some inlining * stress-ng: rename classes to stress_classes * stress-ng.h: minor clean-ups * stress-ng.h: move some compiler specific #define's * core-opts: move long option enum into core-opts.h * stress-ng: fix spelling mistake in --oom-avoid message * README.md: update list of contributors * Manual: minor indention fixup for some hdd stressor options * stress-ng.h: use STATX definitions for SHIM'd macros if they exist * stress-ng.h: some minor #define and comment clean-ups * stress-ng.h: remove old legacy HDD flags and fix starting bit for OPT_FLAGS_METRICS * stress-ng.h: annotate the bit flags for the option flags * stress-ng.h: remove g_caught_signal - it is no longer used * stress-ng.h: remove g_opt_parallel from header, it's only used in stress-ng.c * stress-ng.h: remove g_opt_sequential from header, it's only used in stress-ng.c * stress-sem-sysv: skip stressor if semaphore can't be initialized early * stress-zero: rate reduce the amount of mmap's in stressor loop * stress-zero: add --zero-read option just to benchmark /dev/zero reads * stress-dir: add directory renaming while exercising readdir * stress-vecshuf: implement shuffle if __builtin_shuffle does not exist * README.md: add two more research paper citations -- Colin Ian King Tue, 5 Sep 2023 08:51:23 +0100 stress-ng (0.16.04-1) unstable; urgency=medium * Makefile: bump version * core-asm-ret: move STRESS_ARCH_{LE|BE} macros from stress-far-branch to core-asm-ret * core-asm-ret: convert _ in name to - * stress-icache: fix missing assignment to ret * core-cpu-cache: #ifdef out more functions not required for non-linux builds * core-cpu-cache: #ifdef out functions not required for non-linux builds * core-cpu-cache: stress_cpu_cache_get_index: voidify args for non-linux build * core-cpu-cache: stress_cpu_cache_get_index: return 0 for non-linux systems * core-asm-ret: Add asm return function and re-use it in 3 stressors * stress-icache: don't exercise i-cache if not page aligned * stress-flushcache: don't exercise i-cache if not page aligned * stress-lockbus: add more compiler support checks * stress-icache: remove gcc constraint, there are no compiler constraints now * stress-flushcache: enable for more compilers (clang, icx, icc) -- Colin Ian King Sun, 13 Aug 2023 23:10:14 +0100 stress-ng (0.16.03-1) unstable; urgency=medium [ mingkwind ] * stress-cache: fix the help of the --cache-size option * stress-cache: Add --cache-size option, set cache-size = N, and ignore --cache-level option [ Colin Ian King ] * Makefile: bump version * Makefile: add core-asm-generic.h to HEADERS * Makefile: fix make dist rule to not include generated source * README.md: order kernel improvements in year order * README.md: fix URL to a citation * README.md: order the citations in published year order * Manual: update date * core-target-clones/stress-vnni: fix icx compiler target build issues * stress-ng: stress_run_permute: remove unused variable n * core-bitops.h: don't use __builtin_popcountll for PCC, it breaks * stress-dev: fix name shadowing on variable i, rename to j * test/test-__restrict: make arg src const * stress-vnni: make pointer c32 register const * stress-vdso: func_find: constify arg name * stress-switch: stress_switch_rate: constify arg method * stress-prefetch: stress_prefetch_data_set: constify pointer l3_data_end * stress-memhotplug: stress_memhotplug_removable: constify arg name * stress-pipe: reduce scope of pointer buf32 * stress-mmapfork: notrunc_strlcat constify arg src * stress-ng: stress_get_class_id: constify arg str * stress-ng: stress_exclude_unsupported: remove redundant ss initialization * core-cpuidle: remove redundant max_states > 0 check * stress-ng: don't wait for stressors that have been ignored * stress-ng: fix --perm bogo-op stats * core-helper: on 64 bit Solaris throws and error, so disable it * stress-sigbus: handle SIGSEGV as some *BSD systems generate these too * stress-sigbus: check for a range of allower si_codes for SIGBUS * stress-sigbus: check for BUS_ADRERR in si_code instead of SEG_ADRERR * test: test/mm-*: return data from vector to avoid optimizing out intrinsic calls * test: test/mm-*: add randomize vector setting to avoid optimizing out intrinsic calls * stress-mlock: ensure mappings_len is at least a page_size * core-helper: log the compiler information even if uname is not available * stress-ng: voidify function argument ticks_per_sec if it is not used * stress-ng: change test results ordering: skipped, passed, failed * stress-vnni: simplify check for stress_avx512_vnni_capable * core-cpu-cache: declare sysfs strings only for Linux * stress-sigbus: fix a comment * stress-pipe: define PIPE_BUF if it is not defined * README.md: add one more kernel issue found with stress-ng * stress-sigbus: remove shadow'd variable ret * stress-schedmix: check for MEMBARRIER_CMD_GLOBAL before using it * README.md: move some more bugs into the correct year * README.md: break bug reports into years found * core-cpu-cache: fix incorrect close for stress_cpu_cache_get_sh4 * README.md: add another citation * Makefile: use gcc -fsplit-loops optimization * stress-ng.h: shared_heap_t: fix spelling mistake slap -> slab * core-setting: move stress_setting_t from stress-ng.h to core-setting.c * Add --config option to dump out configuration #define's * core-target-clones: reformat target clones macro * stress-ng.h: put ignore flags into their own struct * core-vmstat: fix thermalstat headings, thermalzone headers were not being printed * Manual: update date * Manual: move and update the --with option to also refer to the --permute option * core-out-of-memory: don't report EACCES issues on oom adjustments * stress-ng: disallow --random with --sequential, --all or --permute * stress-ng: add --permute N option, run permutations of stressors * stress-vnni: fixup for big endian checksums * stress-ng: add new --with option to specify stressors to run with --seq or --all options * core-target-clones.h: Add graniterapids * stress-vnni: minor optimization on exercise loop and checksum * stress-vnni: don't call non-intrinsic methods if vnni_intrisic is set * stress-vnni: add --vnni-intrinsic option to exercise just intrinsic code * Add vnni (vector neural network instructions) stressor * stress-syncload: add some sqrt computations for more load variants * stress-waitcpu: constify function pointers in stress_waitcpu_method_t * stress-vecwide: constify vecwide_func and byte_size in stress_vecwide_funcs_t * stress-vecshuf: constify vecshuf_func and elements in stress_vecshuf_funcs_t * stress-vecfp: constify vecfp_func and elements in stress_vecfp_funcs_t * stress-vdso: constify function pointer in stress_wrap_func_t * stress-syscall: constify fields in syscall_method_t and syscall_t * stress-switch: constify function pointer in stress_switch_method_t * stress-rotate: constify function pointer in stress_rotate_funcs_t * stress-nop: constify func pointer in stress_nop_instr_t * stress-memthrash: constify function pointer in stress_memthrash_method_info_t * stress-memrate: constify function pointers in stress_memrate_info_t * stress-ipsec-mb: constify fields in stress_ipsec_features_t * stress-getrandom: constify flag in getrandom_flags_t * stress-fpunch: constify fields in stress_fallocate_modes_t * stress-chattr: constify fields in struct stress_chattr_flag_t * stress-cache: constify mask_flag_info and field flag * stress-atomic: make fields in atomic_func_info_t const * core-interrupts: constify fields in stress_interrupt_info_t * stress-zlib: constify morse data struct fields * core-perf: enable more perf events * README.md: add another citation * core-shim: typedef shim_rusage_who_t rather than using #define * core-cpu-cache: replace #define'd literal string with const char arrays * stress-ng: typedef shim_ino64_t instead of using a #define * stress-ng.h: replace #define's with typedefs for some shim'd types * stress-ng.h: add parentheses around shift in STRESS_BIT_U* macros * stress-af-alg-defconfigs: add more af-alg configurations based on 6.5-rc4 * core-perf: add some more perf metrics * README.md: add another kernel issue found with stress-ng * stress-swap: handle EPERM when we have permission * stress-swap: move stress_swapoff to core-helper, force swapoff when cleaning files at end * stress-swap: force remove any pre-existing swap files * stress_exclude_unsupported: skip over ignored stressors * stress-swap: add oomable wrapper to catch OOM'd stressor * stress-ng.h: remove space after __attribute__ * stress-ng.h: remove unused macro ALIGN_CACHELINE * core-helper: rename stress_proc_self_exe to stress_get_proc_self_exe * core-helper: rename stress_proc_self_exe_path to stress_get_proc_self_exe_path * core-helper: rename stress_fs_type to stress_get_fs_type * core-helper: rename stress_min_pthread_stack_size to stress_get_min_pthread_stack_size * core-helper: rename stress_min_sig_stack_size to stress_get_min_sig_stack_size * core-helper: rename stress_sig_stack_size to stress_get_sig_stack_size * core-helper: rename stress_min_aux_sig_stack_size to stress_get_min_aux_sig_stack_size * core-helper: rename stress_hostname_length to stress_get_hostname_length * core-helper: rename stress_text_addr to stress_get_exec_text_addr * core-helper: constify stress_handle_stop_stressing signum parameter * core-helper: stress_rndbuf: constify size parameter * core-helper: rename stress_signal_name to stress_get_signal_name * stress-ng.h: add more comments * stress-ng.h: re-organize misc shared data fields, remove warn_once_flags * stress-ng.h: move checksum specific data into checksum struct * stress-ng.h: move instance counts to instance_count struct * stress-ng.h: remove af_alg_hash_skip and af_alg_cipher_skip from shared data * stress-ng.h: move pr_ logging fields to struct pr * stress-ng.h: move mem_cache stressor fields to struct mem_cache * stress-ng.h: move cacheline stressor fields to struct cacheline * stress-ng: add spaces between comma separated sizes and times in example * stress-schedmix: only declare attr for deadline supported systems * stress-schedmix: move declaration of schedmix_sem * stress-*: add build check for struct ifreq * stress-sock: only exercise SIOCGIFADDR ioctl if it is defined * stress-schedmix: only declare buf array for linux builds * stress-ng: stop SIGALRM once tests are complete * stress-sparsematrix: constify pointer table * stress-opcode: fix cppcheck false positive check on small STRESS_OPCODE_SIZE values * core-cpu-cache: fix file descriptor leak on calloc error exit path * core-cpu-cache: use %zu for size_t sscanf format specifier * Makefile: ensure CONFIG_LDFLAGS += with no trailing spaces are filtered out * stress-pipe: voidify fd param in pipe_get_size for OS X builds * stress-mlock: voidify oom_avoid param for OS X builds * core-shim: add emulation for posix_fallocation if it is not available * core-bitops.h: Fix build issue with stress_bitreverse32 * kernel-coverage: fix typo in do_stress calls * core-vmstat: add stats showing number of stressors that received SIGALRM * kernel-coverage: add periodic status information on direct stress-ng invocations * kernel-coverage: add more options for more coverage * Makefile.config: ensure CONFIGS directory exists before touching * Makefile: pass CXX flags to Makefile.config on config rule * Makefiles: add override prefix to all CFLAGS and LDFLAGS settings * README.md: update build notes * Makefile: add cleanobj and cleanconfig rules * stress-hdd: fix verification on partially completed writing due to ENOSPC * stress-sigbus: only report no space error when not EINTR failure * stress-fault: handle EINTR interruption from a fallocate * stress-cpu-online: report the cpu number in message * core-cpuidle: only report cpu idle states if any are found * core-cpuidle: ensure singular and plural of CPU and state are correct * core-cpuidle.c: add debug showing CPU idle states * stress-pipe: fix incorrect position of space in --pipe-vmsplice help * stress-dev: use VOID_RET to voidify returns from ioctl calls * stress-dev: add FDWERRORGET ioctl * stress-pipe: add --pipe-vmsplice option to use vmsplice on pipe data * stress-ng: minor opt arg code clean-up * Add flag options to settings so they can be shown with --settings option * README.md: add two more citations * stress-schemix: only create semaphore if shared memory allocated correctly * stress-sendfile: fix fd leak on error exit path * stress-sigbus: add a new SIGBUS exercising stressor * stress-tlb-shootdown: exercise /sys/kernel/debug/x86/tlb_single_page_flush_ceiling * stress-ng: Add --settings option to show all the stored option settings * core-helper: define PR_SET_MEMORY_MERGE if it not already defined * stress-ng: cancel periodic alarm in child on stressor completion earlier * core-cpu-cache: add /proc/cpuinfo parsing for SH4 * core-bitops.h: move stress_nextpwr2 from stress-cpu to core-bitops.h * core-bitops.h: move stress_parity32 from stress-cpu to core-bitops.h * core-bitops.h: move stress_popcount32 from stress-cpu to core-bitops.h * core-bitops.h: move stress_bitreverse32 from stress-cpu to core-bitops.h * stress-schedmix: give each child a random nice value * stress-schedmix: add blocking on a semaphore * stress-mlockmany: break large mlock/munlocks into smaller chunks * core-shim: add a shim wrapper for posix_fallocate for expedited allocations * stress-dir: indicate dir stressor is cleaning up as early as possible * stress-unlink: indicate unlink is cleaning up as early as possible * stress-schedmix: get rusage and times stats for more load * core-helper: add more timeout checking in stress_redo_fork * core-out-of-memory: add timeout checks on re-fork and stressor re-invocation phases * core-helper: constify args for stress_read_buffer and stress_write_buffer * core-helper: replace stress_get_cc_version with stress_get_compiler * core-helper: rename stress_uint64_zero to stress_get_uint64_zero * core-bitops.h: move stress_swap32 from core-helper.c to core-bitops.h * core-helper: fix function name in comment block * core-helper: rename stress_tty_width to stress_get_tty_width * stress-sparsematrix: fix typo in help information, judt -> judy * stress-ng: make help options column 2 chars wider * core-asm-generic: rename shim_mb to stress_asm_mb, move to core-asm-generic * core-asm-generic: header for generic inline assembler * stress-ng: replace io with iomix as an example stressor * core-helper: add toolchain information to -v output * core-helper: add some more file system magic numbers * core-helper: remove duplicated MINIX2_SUPER_MAGIC * stress-schedmix: add --schedmix-procs option to specify number of child processes * stress-schedmix: add more scheduling exercising * stress-schedmix: add itimer for more scheduling wake-ups * stress-schedmix: correct copyright * stress-sock: remove unnecessary cast to double and comparisons * stress-schedmix: add mixed scheduling load stressor * kernel-coverage.sh: add some more stressor options * kernel-coverage: disable SMI from all stressors * stress-misaligned: check if timeout occurred before next iteration of stressor loop * stress-sock: declare count only if SIOCOUTQ is defined * Makefile.config: improve compiler checks to help cross-compilation * stress-set: exercise settimeofday with bogus tz * stress-sock: exercise SIOCGIFADDR for more kernel coverage * stress-mlock: ensure flag bit on address is masked off * stress-mlock: get bits from random uint8_t rather than uint32_t * stress-io-uring: fix build issues on systems without {GET|SET}XATTR ops * stress-sock: exercise ioctl SIOCATMARK for more kernel test coverage * stress-sock: add SIOCINQ/OUTQ metrics * stress-sock: fix UNIX socket by using sock_protocol 0, exercise SIOCUNIXFILE * Manual: remove unix from --udp-domain * stress-*: use args->time_end for the time to end * stress-misaligned: check for timeout before iterating again after a siglongjmp * stress-ng: add end time to per-stressor args * core-*: rename system_{read|write} to stress_system_{read|write} * stress-msg: exercise IPC_NOWAIT flag for more kernel coverage * stress-cpu-online: remove --cpu-online-all from global flags * stress-cpu-online: add new --cpu-online-affinity option * stress-dev: exercise CDROMSTART and CDROMSTOP ioctls * stress-io-uring: exericse IORING_OP_SETXATTR and IORING_OP_GETXATTR * stress-msg: periodically exercise IPC_NOWAIT * core-out-of-memory: relax a bit before retrying a fork * stress-mlock: relay a little on failed mappings table allocation * stress-dev: exercise /proc/sys/dev/cdrom/* on linux * stress-dev: set option for cdrom ioctl CDROM_SET_OPTIONS * stress-dev: set q.cdsc_format for CDROMSUBCHNL -- Colin Ian King Fri, 11 Aug 2023 09:13:53 +0100 stress-ng (0.16.02-1) unstable; urgency=medium * Makefile: bump version again * stress-cyclic: Fix segv caused by uninitialized variable cyclic_method * README.md: add repology information -- Colin Ian King Thu, 13 Jul 2023 08:44:47 +0100 stress-ng (0.16.01-1) unstable; urgency=medium [ Pino Toscano ] * debian/control: Update/improve the build dependencies (Closes: #1040582) - enable libkeyutils-dev also on ia64, as it is available there as well - enable libjudy-dev, libxxhash-dev, and libglvnd-dev on all the architectures, as they are not specific to a certain OS - switch the build dependencies that exist only on Linux from "!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64" to "linux-any": libkeyutils-dev, libapparmor-dev, apparmor, libaio-dev, libcap-dev, libsctp-dev, libatomic1, libkmod-dev, libgbm-dev [ Colin Ian King ] * Makefile: bump version * Manual: update date * stress-shm-sysv: abort early if we run out of shm resources * stress-hash: fix index overrun during initialization * stress-hash: fix index overrun in stress_hash_all * stress-nop: add NOCLOBBER to pointer instr, clear Solaris gcc 4.8.2 warning * stress-ng: fix sigprocmask, signals that need to be blocked are set, not zero'd * stress-bad-ioctl: replace next label with continue statement * core-setting: remove TYPE_ID_UINTPTR_T type * stress-zlib: replace null check in methods array with length check * stress-vm: replace null check in methods array with length check * stress-vm-addr: replace null check in methods array with length check * stress-switch: replace null check in methods array with length check * stress-sparsematrix: replace null check in methods array with length check * stress-opcode: replace null check in methods array with array length check * stress-misaligned: replace null check in methods array with length check * stress-cyclic: pass address of pointer rather than method address * stress-memcpy: replace null check in methods array with length check * stress-hash: replace null check in methods array with length check * stress-exec: replace null check in methods array with length check * stress-cyclic: replace null check in cyclic_methods with length check * stress-cpu: replace null check in cpu_methods with length check * Manual: fix typo in --cpu-offline-all option * Manual: some minor grammar changes * stress-ng: add --status N option to report stressor runs status every N seconds * stress-malloc: remove need for some global variables, clean up code * stress-schedpolicy: add --schedpolicy-rand option to select policy randomly * stress-bad-ioctl: fix fd leak * stress-chroot: add two standard methods of breaking out of a chroot as tests * stress-bad-ioctl: add --bad-ioctl-method to select how ioctl commands are changed * stress-stream: ensure number of elements is a multiple of unroll size * stress-ng: make child termination SIGALRM messages debug only * stress-ng: speed up child termination by blocking signals and skip excessive free'ing -- Colin Ian King Tue, 11 Jul 2023 11:24:12 +0100 stress-ng (0.16.00-1) unstable; urgency=medium * Makefile: bump version to 0.16.00 * core-helper: double size of temporary string buffer tmp * stress-ipsec-mb: use reverse compat macros for versions 0.55.00 * stress-ipsec-mb: add reverse compat macros for version 0.52.0 or earlier * Manual: fix eigen table * stress-mlock: clean up pedantic warning on uninitialized pointer mappings * stress-cache: clean up longjmp clobber warnings on openhipster 202104 * stress-mmap: check for NetBSD EPERM errors on page protection checks * stress-far-branch: disabled for NetBSD * stress-iomix: shrink file size if we hit EFBIG or ENOSPC * stress-copyfile: handle ENOSYS by skipping stressor * stress-misaligned: handle timeout by jmping back and restarting * kernel-coverage.sh: add more mlock options * README.md: fix ClearLinux libattr bundle name * stress-pagemove: add new --pagemove-mlock option * stress-memfd: add new --mefd-mlock option * stress-malloc: add new --malloc-mlock option * stress-llc-affinity: add new --llc-affinity-mlock option * kernel-coverage: add some more stressor options for more coverage * stress-physpage: voidify physpage_mtrr when not used * stress-bad-altstack: return EXIT_FAILURE insted of _exit(EXIT_FAILURE) * core-parse-opts: return 0 on err, clean up pedantic tcc warnings * stress-ng.h: undef _FORTIFY_SOURCE for TCC builds * core-killpid: break out of infinite loop and return via return path * stress-af-alg: add hmac(md5) to defconfigs * core-helper: add detection for Darwin libc * core-vmstat: clean up pedantic warning on const name array on OS X * stress-madvise: voidify hwpoison * stress-x86syscall: rename variables to avoid name shadowing * stress-open: remove shadowing variable ret * Manual: re-order options into alphabetical order, fix some hyphens * Manual: remove expand from tables now that x is being used * Manual: put code examples in courier font * Manual: use lx expand description in tables * Manual: add notes about the legacy io stressor * README.md: add another citation * Manual: remove x86 specific notes for icache stressor * stress-mmapaddr: remove trailing space * Manual: rephrase mlock options * stress-vm-addr: add new --vm-addr-mlock option * stress-waitcpu: only perform nop rate comparisons of x86 * stress-stream: add new --stream-mlock option * stress-shm-sysv: add new --shm-sysv-mlock option * stress-shm: add new --shm-mlock option * stress-remap: add new --remap-mlock option * stress-resources: add new --resources-mlock option * stress-mmapmany: add new --mmapmany-mlock option * stress-mmaphuge: add new --mmaphuge-mlock option * stress-mmapfixed: add new --mmapfixed-mlock option * stress-mmapaddr: add new --mmapaddr-mlock option * stress-mmap: add new --mmap-mlock option * stress-l1cache: add new --l1cache-mlock option * stress-forkheavy: add new --forkheavy-mlock option * stress-bigheap: add new --bigheap-mlock option * stress-switch: report pipe read/write failures as debug message only * core-out-of-memory: change stress_set_adjustment to pass args instead of args->name * core-helper: add stress_munmap_retry_enomem to retry munmaps on ENOMEM errors * stress-open: unlink correctly path'd temp file * stress-sparsematrix: initialize some pointers to clean up cppcheck errors * stress-atomic: set check2 to non-check1 value to ensure value gets overwritten * core-perf: remove redundant null check on sp * core-helper: cast to uintmax_t for %ju format specifier * README.md: add two more citation links * stress-fp: check for upper bounds of method index * stress-ng: fix potential null deref in stress_get_nth_stressor * stress-utime: force fsync in #ifdef block * stress-pipe: add missing const from pointer buf32 * stress-misaligned: fix unassigned timer.it_value field * stress-exec: add missing space in void * cast * core-vmstat: don't check for __APPLE__ if __FreeBSD__ is defined * core-helper: only declare tmp where it is required * stress-ng.h: remove unused shim_builtin_memmove macro * stress-open: use temporary directory for open+create files * stress-numa: exercise new linux system call set_mempolicy_home_node * stress-iomix: exercise new Linux cachestat system call * stress-aiol: ensure all fields in bad_ioc are zero * core-helper: fix SHIM_EXT2_IOC_SETFLAGS, pass &flags and not flags * core-killpid: set wstatus to zero * stress-vecfp: add some alignment hints * stress-shellsort: add some optimization hints * stress-steam: add more restrict and const pointer annotations * stress-physpage: only enable mtrr settings with the new --physpage-mtrr option * stress-get: remove duplicated getcontext call * Manual: correct the clock duration section * stress-pipe: default the pipe read/write size to 4096 * stress-pipe: use verify/non-verify variants of read and write helpers * core-*: send SIGALRM to child process if stress-ng parent dies * core-*: check for ss->ignore and skip if set * core-*, stress-*: rename bogo-op related functions and variables * core-cache: remove unavailable cache options from cache flags mask * stress-far-branch: fix typo in .opt_set_funcs * core-helper: report cache sizes when -v is enabled * core-cpu-cache: rename stress_cpu_cache_get_level_size cache size argument * core-helper: add stress_unset_chattr_flags to unset chattr flags * stress-apparmor: break from loop on fatal policy load * stress-alarm: disable SIGUSR1 during counter increment * stress-ng: account for stressors that had untrustworthy metrics * README.md: add a kernel regression found with stress-ng * stress-ng: account for stressors that are skipped before they are run * stress-*: remove trailing space at end of lines * stress-*: add SIGCHLD handling to inform parent child has terminated * stress-remap: use correct integer range checking function * stress-remap: add --remap-pages option to specify number of pages to remap * Manual: fix --regs-ops option, missing -ops * stress-mlock: set error return on mlock failure from child * stress-udp-flood: add sendto rate metrics and failure check verification * stress-udp-flood: replace main for loop with do-while * stress-watchdog: add verification of watchdog ioctl return values * stress-madvise: voidify return from stress_get_setting * stress-mlock: allocate appropriately sized mappings table * core-*, stress-*: replace errno = %d with errno=%d * stress-mlock: prefix errno value with errno= * stress-madvise: only enabled hardware page poisoning with --madvise-hwpoison * core-cpu: add more CPUID processor manufacturer ID strings * stress-brk: add --brk-bytes option to specify maximum brk size * stress-bigheap: add --bigheap-bytes option to specify maximum heap size * core-try-open: use increasing backoff delay and add keep_stressing check * core-shim: add kill wrapper shim_kill * core-vmstat: allow --vmstat, --thermalstat and --iostat use s,m,h time suffixes * stress-close: remove scheduler class flag, it's the wrong classification * stress-fanotify: replace fanotify stats with generic metrics * stress-af-alg: don't fail on ETIMEDOUT bind exit * core-klog: log hung task information * core-klog: raise priority of klog process, throttle process dumping rate * core-vmstat: increase running and block process count fields to 3 chars * core-processes: use variable j for iterating, not i, fixes clobbering * stress-icache: add more comment notes on how to check for icache misses * syscalls.txt: update for riscv specific system calls * stress-syscall: exercise new syscall riscv_flush_icache * stress-sysinval: exercise new syscall riscv_hwprobe * stress-syscall: exercise new syscall riscv_hwprobe * stress-nop: add comment about random being the last nop stressor * core-klog: fix order of kernel cmdline strings * core-resources: try memfd_create with MFD_NOEXEC_SEAL * core-interrupts: use int64_t for delta of interrupts * stress-far-branch: limit shift to avoid address request overflow * stress-vm-addr: remove redundant assignment of buf to NULL * stress-far-branch: voidify return from stress_get_setting * stress-softlockup: add more randomness is busy loop delay * stress-softlock: add busy loop to eat CPU for 1/100th second * stress-cyclic: remove use of softlockup_count * stress-softlock: spawn N children for N CPUs per stressor * stress-efivar: enable verification of EFI variable reading * stress-priv-instruction: add trapping count verification * stress-dynlib: add dlsym lookup time metrics * stress-x86syscall: add verification of getpid, time and gettimeofday syscalls * stress-lockbus: move metrics variables above x86 #ifdef * stress-forkheavy: ensure waitpid is waiting on a valid child pid * stress-lockbus: add bus lock duration metrics * stress-fpunch: replace %lu with PRIu64 format specifier * stress-far-branch: add --far-branch-pages option * core-affinity: allow affinity ranges of N-N to be interpreted as N * stress-af-alg: don't support tk transformations * stress-pipeherd: add verification check value in data * stress-x86syscall: exercise gitpid 0 arg syscall (stressor) * stress-x86syscall: exercise gitpid 0 arg systcall * stress-x86syscall: use size of array as for loop counter max * stress-fpunch: enable zero hole punch verification on --verify * core-klog: dump out processes on hard lockups * stress-udp: pass child error return status back to stressor main if failed * stress-udp: silently ignore EPERM sendto failures * core-interrupts: add FORMAT type hint * stress-func*c: use soft decimal float for s390x * core-helper: add extra paranoid checking for sysconf -- Colin Ian King Fri, 7 Jul 2023 09:43:57 +0100 stress-ng (0.15.10-1) unstable; urgency=medium * Makefile: bump version * core-shim: add shim_raise helper to workaround SH4 raise * stress-funccall: disable Decimal and complex floats for SH4 * stress-ipsec-mb: use the newer API, 0.53 has been deprecated -- Colin Ian King Thu, 15 Jun 2023 13:12:11 +0100 stress-ng (0.15.09-1) unstable; urgency=medium [ Eder Zulian ] * Manual: fix typo: non-interritable -> uninterruptible [ Colin Ian King ] * Makefile: bump version * stress-funcret: disable Decimal float for s390x * stress-funccall: disable Decimal float for s390x * README.md: update contributor list * stress-sctp: use pidptr to clean up gcc 5.5.0 type punning warnings * stress-jpeg: only define stress_jpeg_checksum_data if HAVE_OPEN_MEMSTREAM is defined * stress-jpeg: voidify unused variable verify for non-verification #ifdef paths * stress-funcret: variable old_b needs tainting to keep old compilers happy * stress-sigsuspend: cast pid_t to intmax_t for portable width printing of pid_t * stress-sigchld: don't check for si_code on OpenBSD * stress-sigrt: cast pointer from mmap to (stress_metrics_t *) * stress-udp: add in a back-off delay on ENOBUFS * stress-udp: handle ENOBUFS on recvfrom * stress-udp: use pidptr to clean up gcc 5.5.0 type punning warnings * stress-bigheap: rename si_code to sigcode to avoid macro name clash in minix * stress-bigheap: remove SA_SIGINFO #ifdef, fixed minix build failure * core-interrupts: cast char to int for clean minix build * stress-fstat: compare stat buf fields with known original * core-asm-x86.h: fix cpuid for 32 bit x86 * core-affinity: fix stress_change_cpu helper for non-linux systems * stress-stream: reduce the checksum floating point precision * core-interrupts: assert that number of interrupts does not exceed max * core-interrupts: only enable check on some specific x86 interrupts * core-helper: check for failed sysconf stack size calls * stress-misaligned: add timer to check for locked-up instructions * stress-mlock: don't make mlocked pages check a failure, just a debug message * stress-sleep: discount severe clock warping * stress-mq: add detection of system wide lack of file descriptors * stress-inotify: increase back-off time, keep retrying * stress-timer: cancel timer before deleting it * stress-funccall: ignore comparing some Decimal and Float types * stress-binderfs: bump timeout to 15 seconds * stress-fsize: remove failure from unexpected size issue * stress-hrtimers: skip stressor if low on resources on timer_create call * stress-mq: don't treat timeouts as hard failures * stress-dnotify: ignore stray SIGIOs * stress-eigen: add transpose and addition matrix operations * stress-dnotify: set F_NOTIFY flags to zero before closing * stress-waitcpu: add more slow * stress-x86cpuid: add verification on cpuid return register values * stress-ng: swap order of pid and started/exited messages * stress-wait: remove extraneous wait: prefix in messages * stress-kcmp: ensure EXIT_FAILURE is reported back to stress-ng * stress-kcmp: fix missing : on pr_fail message * stress-kmp: check bad file descriptors and silently ignore EBADF * stress-ng: reformat process exiting message, replace "process" with stressor name * core-resources: make tmp files smaller * TODO: remove --ksm option from TODO list * stress-urandom: make failed mmaping on urandom fd * stress-sparsematrix: use private mmapping rather than shared * stress-sigsegv: make shared mmapping private * stress-randlist: use private mmapping * stress-prefetch: use private mmapping rather than shared * stress-full: mmaps on /dev/full will fail, don't use MAP_ANONYMOUS * stress-dev-shm: mapping should not be anonymous, it's bound to fd * stress-dev-shm: make mapping anonymous private for better ksm performance * stress-ng: re-order --times option * stress-ng: update short help with missing general options * stress-ng: enable --ksm kernel samepage merging option * TODO: add ksm PR_SET_MEMORY_MERGE * TODO: add two more items to be implemented * syscalls: add riscv_hwprobe - TODO * stress-pthread: voidify snprintf return * core-ftrace: voidify snprintf return * stress-mmapmany: read /proc/self/smaps and /proc/self/maps * stress-hdd: use RWF_HIPRI when using O_DIRECT on pwritev2 writes * core-*/stress-*: fix a wide range of typos and spelling mistakes * stress-aiol: use O3 for data filling and checking * voidify returns from strlcpy and strlcat * stress-*sort: correct the message why the stressor is not implemented * stress-waitcpu: add a little slop in nop and wait cpu opcodes rate comparisons * stress-brk: reset index i on re-start on low memory, fixes random check failures * stress-stream: compare doubles using fabs and a small delta * stress-stream: make helper function stress_stream_checksum_data static * stress-stream: constify cast to clear up icc warning * stress-memrate: register and ALIGNED do not mix well with icc, remove ALIGNED hint * stress-rmap: use PRIxPTR format specifier for uintptr_t type * core-mmap: make page_end const * stress-funccal: usr helper macros to compare more esoteric float types * stress-vecfp: compare float and double with some slack * stress-udp: constify cast of data to pid_t * * stress-funccall: add helper macros to compare integer, float and complex types * stress-daemon: clear up name shadowing on variable rc * stress-prctl: verify that illegal prctl calls are handled correctly. * stress-sctp/udp: refactor: move 32 char string into core-helper * stress-sock: report number of messages send per second as extra metrics * stress-sctp: return EXIT_NO_RESOURCE on protocol not found * stress-timer: add timer_settime verification * stress-prefetch: add prefetch vs non-prefetch rate verification * stress-dnotify: dnotify_access_file: ensure file is removed * README.md: add another kernel bug found with stress-ng * stress-dnotify: remove error handling debug file size, return to 0 * stress-dnotify: check for ENOSPC, return errors down the call chain * core-helper: turn #if/#endif chain into #if/#elif/#endif * stress-vm-rw: make pointer end const * stress-dev-shm: make pointer end const * stress-dentry: reduce scope of rret * stress-dccp: make pointer addr_un const * stress-af-alg: make function parameter info const * core-vmstat: make pointer cpu_ticks const * stress-daemon: check for setsid failure, report and write status back to parent * core-helper: make pointer ptr32end const, declare buffer buf only where required * core-mmap: make pointers end and page_end const * stress-ng.h: make pointer ci const * test-libbsd.c: constify pointers * test-builtin-memcmp: remove redundant pointer ptr * stress-zlib: make pointer zlib_checksum_in const * stress-waitcpu: reduce scope of array msg * stress-vm-rw: make pointer end const, make pointers registers * stress-vm-addr: make ptr_end const, make pointers registers * stress-userfaultfd: constify pointer end, zero stack * stress-udp: constify pointer addr_un * stress-sysfs: constify pointer d * stress-syscall: constify pointer ss * stress-stream: constify pointer arguments in checksum function * stress-stackmmap: rename status to check_status * stress-stack: make pointer start_ptr const * stress-sockfd: make pointer addr_un const * stress-sock: make pointer addr_un const * stress-shm-sysv: make pointer end const * stress-shm: make pointer end const * stress-scpt: make pointer addr_un const * stress-rmap: make pointer end const * stress-rawpkt: make pointer eth const * stress-procfs: make pointers ctxt and d const * stress-memrate: make pointer write_end const * stress-netlink-task: make pointer id_ptr const * stress-pagemove: make pointer p const * stress-ng: constify a couple of pointers * stress-ng: move scope of count to one level lower * stress-mprotect: move array str to lower scope * stress-madvise: constify pointer ptr * stress-memrate: constify some pointers * stress-memthrash: make pointers fwd, rev registers * stress-l1cache: constify pointer cache_end * stress-ipsec-mb: constify read-only pointer end * stress-jpeg: minor optimization for stress_jpeg_checksum_data * stress-iomix: constify read only pointer buffer * stress-getdent: constify pointer d * stress-funccall: reduce scope of array msg * stress-funcret: reduce scope of array msg * stress-fp: fix incorrect index on assignment, should be [1] and not [0] * stress-chattr: ensure 1ULL is being shifted for 64 bit shifts * stress-ioport: add verification of invalid ioperm parameters * stress-ioport: note the usage of iopl * Remove end of line spaces and tabs * stress-rawdev: add verify checking * stress-rawdev: fix skip message, replace flood with rawdev * stress-bad-altstack: move child to helper, retry faulting, add verification * stress-timerfd: various checks are performed, so enable verify * stress-fma: add fused multiply and add syncload, repeat other loads x 4 * stress-mutex: pr_info should be pr_inf * stress-mutex: don't report pthread creation issues as a fail * stress-timer: make ENOMEM or EAGAIN on timer_again a resource skipping return * core-out-of-memory: don't remove temp files if retry on oomable death * stress-chattr: restore original chattr flags one by one * stress-chattr: only verify settings when 1 instance is running * stress-chattr: disable check for the moment * stress-sockdiag: this already checks for failures, so enable verification flag * stress-ng: add --change-cpu option for force child processes onto another CPU * core-helper: add libc version * stress-iomix: don't throw a write failure on ENOSPC * core-helper: report blocks available * core-helper: print the realpath of the temporary path * stress-brk: print address of shrink page error * stress-sctp: protocol not implemented should return EXIT_NO_RESOURCE * stress-ng: "no resource(s)" should be "no resources" * stress-sockfd: move sleep to after reporting error to avoid clobbering errno * core-vmstat: keep header and data togther using log locking * stress-chattr: add verification and improve error messages * stress-far-branch: add random located verification check function * stress-inode-flags: using a 0 flag will reset all flag bits to zero * stress-revio: add missing --revio-bytes in short help * core-helper: enable stress_get_cpu for all arches * stress-exec: silently ignore intentional EINVAL exec failures * stress-exec: only check WEXITSTATUS if WIFEXITED is true * stress-atomic: sanity check atomic ops on non-shared item work correctly * stress-tlb-shootdown: optimize mem writes and reads, periodically change cpu affinity * stress-session: add failure verification, return EXIT_FAILURE on failures * stress-session: fix typo in comment * stress-sleep: add underrun sanity check verification * stress-sleep: remove multiple counters, used shared counter with lock * stress-sigsuspend: add sigsuspend failure verification check * stress-rmap: add page data verification, store + check data per child * stress-smi: verify that regs are restored on SMI return * stress-fstat: re-work thread data to allow error return verification * stress-sigio: add verification on reads * stress-sigtrap: set metrics to index 0 * stress-sigrt: add verification and metrics * stress-race-sched: add system call return verification checks * stress-sigtrap: add verification of trap handler and measure trap handling rate * stress-eigen: set verify to always, sanity checking is always performed * stress-stackmmap: add stack data sanity verification on last 256 calls * stress-eigen: enable for all arches * stress-sigq: fix missing . in verify field * stress-cache: don't enable SIGBUS handling for x86 * stress-mlock: move helper function stress_mlock_pages * README: update build dependiency notes * stress-eigen: add Eigen 2d matrix stress cases * stress-physpage: voidify unused paramater success * stress-mlock: remove redundant return statement * stress-waitcpu: rename variable j to l to avoid shadowing * stress-mmapfixed: remove re-declaration of pointer buf64 * core-log: remove unused helper function pr_spin_lock * Makefile.config: Add compiler check and HAVE_COMPILER_* macros * stress-matrix-3d: minor comment fixes * stress-matrix: minor comment fixes * core-klog: ignore "hrtimer: interrupt took" messages * Manual: add note that the default timeout is 24 hours * stress-mlock: add mlock growth verification for linux * stress-signal: use pr_fail for failures, add verification * stress-waitcpu: add verification that nop wait is shortest delay * stress-resched: check if set policy is the current policy * stress-sigq: fix missing . before struct field name * stress-siqq: add verification of si_value.sival_int value * stress-sigpipe: add verification of SIGPIPE signals * stress-rawudp: add simple data verification check * stress-far-branch: remove opcode from message, it is redundant * stress-dev-shm: remove debug message of line and return value * core-klog: ignore kmod concurrent module probes in klog checking * stress-*: ensure verify flags are set in the unimplemented variants * stress-mprotect: return failures back to to caller * stress-ng.h: core-killpid api changes * core-killpid: return EXIT_FAILURE if waited-for processes fail * stress-mmaphuge: add memory contents verification check * stress-vforkmany: add verificatin of vfork starting and invocation metrics * core-helper: make passing NULL stack disable alternative stack * stress-funccall: abort early once a failure is detected * stress-funcret: enable 'all' method by default. Add metrics and verification * stress-funccall: return EXIT_FAILURE if success is false * stress-funccall: enable 'all' method by default. Add metrics * stress-funccall: enable verification * stress-udp: add low resource check and throttle check * stress-steam: unroll loops for more throughput * stress-stream: re-phrase metrics description * stress-stream: enable verification with --verify option * core-nt-store.h: fix double precision nt store * core-asm-x86.h: add sfence x86 helper * stress-clone: add sanity check to see if clone processes started OK * stress-apparmor: move verifiable flag to correct struct * stress-apparmor: add lock protected concurrent failure counter * stress-ng: treat SIGABRT as a critical failure * stress-ng: add exit status of stressor at termination to debug message * core-klog: ignore callbacks suppressed kernel log messages * core-klog: count number of klog messages and report these at end * stress-pkey: move from CPU to OS class * Makefile: always undefine _FORTIFY_SOURCE before defining it * stress-vm-splice: remove whitespace in tab'd column * stress-vm-splice: add 64 bit check pattern to verify vm-splice data * stress-sctp: use pid as data check in sctp data for run time verification * stress-nice: add verification of nice(1) changing priority * core-out-of-memory: clean temp directory and files on a OOM * core-klog: add two more kernel messages to silently ignore * stress-physpage: flag mtrr failure as a EXIT_FAILURE and enable verify * core-shim: use libc nice as a final resort for shim_nice * stress-deamon: add verify always option since the stressor checks if fork fails * stress-daemon: add --daemon-wait wait option * stress-dirmany: verify if files are created with stat * stress-dirmany: add verification count of files created * stress-dirmany: add create/removal file rates * stress-bigheap: use larger check values, use uintptr rather than uint8_t * stress-bigheap: use malloc for new allocations rather than realloc * stress-verify: close fd on error exit path, clean fd leak * stress-bigheap: add SEGV debugging feature * stress-udp: use pid as data check in udp packet for run time verification * stress-signest: add signal handling rate metrics and check for failures * stress-peterson: add yield in busy loop for RISC-V * stress-mpfr: minor corrections, add a yield point per method * stress-mpfr: exercise the GNU multi-precision floating point reliable library * stress-fp: enable optional verification option * stress-dev-shm: add memory contents verification * stress-binderfs: add missing .verify setting * stress-chroot: move .verify tag to appropriate struct * stress-rawsock: add hash check to raw data for test verification * stress-madvise: make setjmp failure a no resource failure * stress-verify: add verify mode failure returns * stress-misaliged: remove trailing tabs * stress-misaligned: add verification of data written * stress-rdrand: add more verification * stress-stack: enable verification by sanity checking last 128 stack frames * stress-prefetch: enable --verify option, make data random too * stress-rotate: enable --verify option * stress-goto: add branch hit verification * stress-sigchld: verify SIGCHLD siginfo si_code values * stress-fsize: enable verification * core-interrupts: ensure default start and stop counters are set at start * stress-close: remove an empty line * stress-flock: enable verification for exclusive file lock * stress-close: add close failure verification * stress-branch: add branch hit verification * stress-ng: make --verifiable option print out stressors without verify modes * stress-vecshuf: move .verify tag to appropriate struct * stress-vecfp: enable --verify option * stress-stack: add backwards traversal down stack frames to keep pages busy * stress-stack: remove accidentally added sleep call * stress-randlist: enable --verify mode * stress-io-uring: add OOMable child wrapper incase memory runs low * stress-nanosleep: add underrun verification check * stress-nanosleep: add check for clock_gettime failures * stress-munmap: use mincore to verify that a page has been unmapped * stress-mmap-fixed: add verification to see if remap'd page contains expected data * stress-jpeg: enable --verify on jpeg generated data * stress-dirmany: fix missing ) on help information * stress-dirmany: fix typo in help for --dirmany-filesize option * stress-denty: enable --verify data checks in dentry files * stress-brk: add verification of brk pages on shrink * stress-vecmath: move verify flag into implemented struct * stress-vecwide: enable verify, compare computations between two rounds * core-interrupts: add x86 IO-APIC miscount interrupt * core-interrupts: add check for ARM Err interrupt * stress-vecmath: add per stress loop checksum checking * core-interrupts: add SMI count check for x86 * core-helper: move smi reading function from stress-smi to core-helper * stress-fma: enable verify, compare computations between two rounds * stress-matrix-3d: unroll more loops for improved optimization * stress-matrix: unroll more loops for improved optimization * stress-matrix-3d: rename stressor name to match stressor source * stress-matrix-3d: add verification * core-builtin: add builtin shim for memcmp to use __builtin_memcmp * stress-matrix: add verification * core-interrupts: measure and report critical interrupts * core-perf: check for null stats when using random selection of stressors * core-klog: ignore loop capacity changed messages * core-perf: add extra pointer checks earlier in results dumping loop * stress-zlib: optimize ascii digits generator * core-klog: ignore x86 split log warnings * core-log: add helpers to reduce the number of getpid calls * stress-sysinval: use use shim_rorXXn builtin wrapper for rotate right * stress-zlib: use shim_ror32n builtin wrapper for 32 bit rotate right * core-sort: inline sort comparison functions + optimized bsearch to O3 * README.md: add another citation * core-cpu-cache.h: define HAVE_SHIM_MFENCE for risc-v case -- Colin Ian King Wed, 14 Jun 2023 21:49:19 +0100 stress-ng (0.15.08-1) unstable; urgency=medium [Fernand Sieber] * stress-cpu: Deduce waiting time in active cycle from idle time [Hui Wang] * snapcraft: remove a duplicated dependent package [Thinh Tran] * rawsock: locked up when parent sends SIGKILL to child [Colin Ian King] * Makefile: bump version * README.md: update contributors list * Manual: update date * stress-ng.h: rework OPTIMIZE_FAST_MATH to workaround cpp issue with pcc * stress-iomix: use pid_t type for pid array * core-killpid: use intmax_t to print format pid_t * Makefile: don't enable gcc flag -ftree-loop-vectorize for Solaris * core-helper: voidify stress_proc_self_exe_path for __sun__ builds * stress-ng: don't flag SIGALRM terminations of stressors as a failure * stress-sleep: cancel alarms on tidy up to avoid alarm cascade in pthreads * stress-fallocate: remove messy signal handler * core-klog: only declare stress_klog_kernel_cmdline for linux builds * stress-ng: add optional repeated SIGKILL force option to stress_kill_stressors * stress-fallocate: remove short file life hint * stress-fork: make 50% of forked children do immediate exit * core-lock: constify function argument lock * stress-tree: constify pointer node * stress-sleep: add missing __PCC__ ifdef constraint check * stress-rtc: move variables to local scopes * stress-module: improve module loading error message * stress-io-uring: constify various function arguments * stress-ipsec-mb: constify function argument job * stress-ipsec-mb: constify function argument p_mgr * stress-flock: move variable ret into local scope * stress-dnotify: reformat description declaration * core-vmstat: constify function argument tz_info * stress-crypt: constify function argument salt * stress-cache: constify function argument mem_cache * stress-aiol: constify function argument buffer * stress-affinity: constify info function argument * stress-sparsematrix: initialize x_node, y_node to clean up cppcheck warnings * stress-list: zero head to clean up pedantic static analysis warning * stress-wcs: set info name to the stressor name * stress-wcs: add index bounds check, keeps static analyzers happy * stress-cyclic: fix off-by-one comparison for cyclic_policy * stress-af-alg: add in some missing configs from 6.3 kernel * README.md: add another citation * stress-pthread: fix big endian tid addr for 32 bit systems (Closes #1036356) * stress-vecfp: replace debug metrics with standard metrics data, bump metrics to 40 * stress-vm-segv: use pipe for a synchronization mechanism * core-klog: remove extraneous tab * Add --stderr option, default output now to stdout * README.md: add another kernel bug found with stress-ng * stress-sock: handle corner-case where n is zero * core-klog: dump kernel cmdline just once * stress-ng: handle SIGALRM in stressor and parent more intelligently * core-builtin: use builtin versions of memset, memcpy and memmove * stress-dev: disable warning for -Wgnu-variable-sized-type-not-at-end * stress-getdent: remove % operator with compare and subtract * core-killpid: add helper stress_kill_and_wait_many to kill many pids * core-thrash: constify pointer state * stress-wcs: constify static array letters * stress-vecwide: constify pointer vec_args * stress-udp: constify static array patterns * stress-rawpkt: constify pointer idx * stress-pthread: move new_head to local scope, replace memcpy with assignment * stress-prefetch: constify addr pointer argument * stress-prctl: move temp variables to lower scopes * stress-opcode: constify function parameters page_size and op * stress-mmapfork: constify function pointer ptr * stress-madvise: initialization poison_count * stress-list: constify pointer entries_end * stress-inode-flags: constify pointer to data * stress-ng.h: ensure unsigned 1 is being left shifted to avoid signed warnings * stress-af-alg: avoid adding potential NULL ptr to length of buffer * stress-chdir: move paths, fds and mkdir_ok arrays into one array * stress-affinity: force random cpu choice to never be same as previous * stress-af-alg: add in some missing configs * stress-io-uring: clean up 32 bit build warnings on addr to user_data casts * core-killpid: add sanity checks to pid being killed * core-killpid: add signal number to stress_kill_and_wait * stress-dccp: move kill out of server to parent patj * stress-*: use stress_kill_and_wait for kill and wait * core: add stress_kill_and_wait helper to kill and wait for children * stress-resched: ensure pids are initialized to -1 * core-helper: stress_proc_self_exe_path: voidify unused args * stress-ng: remove empty line * stress-sctp: remove trailing space at end of line * Makefile: add gcc optimization flag -ftree-loop-vectorize * stress-{memthrash|zlib}: use memzero for zero data generation * Add build time check for __builtin_memset * stress-zlib: emit DEF/INF debug only for instance 0 * stress-atomic: workaround gcc 11 atomic nand builtin issues * stress-exec: add FreeBSD rfork and get executable name using sysctl * stress-signest: add signal ignoring and don't jmp on invalid jmpbuf * stress-af-alg: silently handle EOPNOTSUPP recv errors * README.md: add two more research paper citations * README.md: add link to another kernel improvement that used stress-ng * stress-af-alg: use recv on socket rather than read * stress-vecshuf: make function pointer const * stress-vecfp.c: make function pointer const * stress-sparsematrix: move get/put stats into metrics output * stress-xattr: handle fall-out when file system fills up * README.md: add another kernel bug found with stress-ng * stress-xattr: keep track of xsetattr calls that succeeded using a bitmap * core-helper: remove need for static buffer in stress_proc_self_exe_path * stress-dnotify: double timeout, ignore notifies that timeout * stress-io-uring: remove redundant check of a non-null pointer * core-helper: rework underscore mungification helper * stress-cacheline: use global shared index to fix cache index issue * stress-urandom: fix corruption of neighbouring mmap'd page * stress-inotify: make inotify_init failure message into just a warning * stress-unshare: replace %= with compare and reset * stress-softlockup: replace %= with compare and reset * stress-rawdev: replace %= with compare and reset * stress-open: replace %= with compare and reset * stress-inode-flags: replace %= with compare and reset * stress-fcntl: replace %= with compare and reset * stress-chmod: replace %= with compare and reset * stress-chattr: replace %= with compare and reset * stress-chroot: replace %= with compare and reset * stress-io-uring: set the setup to just enough reqs * stress-io-uring: fix completion error checks for cancellation * stress-io-uring: cancel if HAVE_IORING_OP_ASYNC_CANCEL is defined * stress-io-uring: silently ignore cancel errors * stress-io-uring: add async cancellation * stress-io-uring: increase ring size, force complete on ring submit EBUSY * core-out-of-memory: report why oom_score_adj can't be set * Add forced_killed_counter to indicate a child has been killed forcefully * stress-io-uring: perform completion at the end of a round of submits * stress-rotate: remove this from the cpu cache class * stress-vm: add conditional parentheses * stress-vecfp: add conditional parentheses * stress-tsearch: add conditional parentheses * stress-sysinval: add conditional parentheses * stress-sysfs: add conditional parentheses * stress-sync-file: add conditional parentheses * stress-socklockup: add conditional parentheses * stress-skiplist: add conditional parentheses * stress-sigsegv: add conditional parentheses * stress-shellsort: add conditional parentheses * stress-session: add conditional parentheses * stress-sem-sysv: add conditional parentheses * stress-seek: add conditional parentheses * stress-sctp: add conditional parentheses * stress-rlimit: add conditional parentheses * stress-rawdev: add conditional parentheses * stress-procfs: add conditional parentheses * stress-peterson: add conditional parentheses * stress-mremap: add conditional parentheses * stress-malloc: add conditional parentheses * stress-lsearch: add conditional parentheses * stress-inotify: add conditional parentheses * stress-hsearch: add conditional parentheses * stress-hdd: add conditional parentheses * stress-hash: add conditional parentheses * stress-futex: add conditional parentheses * stress-fstat: re-order operands of && for minor optimization * stress-fp: add conditional parentheses * stress-exec: add conditional parentheses * stress-dnotify: add conditional parentheses * stress-dev: add conditional parentheses * stress-cyclic: add conditional parentheses * stress-bad-ioctl: add conditional parentheses * stress-af-alg: add conditional parentheses, re-order && operators * core-resources: ensure resources are marked as free as soon as possible * stress-io-uring: throttle calls to stress_read_fdinfo * stress-io-uring: keep a cached copy of fileno(stdin) * stress-io-uring: defer unlinking file to end * stress-io-uring: fix statx command, don't use path, use fd to path * stress-sockmany: use 64 char ascii string as base for memset data, remove expensive % operator * stress-sockabuse: use 64 char ascii string as base for memset data, remove expensive % operator * stress-sock: use 64 char ascii string as base for memset data, remove expensive % operator * stress-epoll: replace % operators with compare + reset and memset data from stress_ascii64 * stress-reboot: replace expensive % operation with compare and reset * stress-dccp: use 64 char ascii string as base for memset data, remove expensive % operator * core-helper: add stress_ascii64[] for 64 bytes of ASCII data * core-vmstat: replace % operator with compare and reset * stress-pthread: use 64 bit tid_addr to fix stack clobbering on 32 bit platforms * stress-fma: add fused-multiple-add stressor * stress-cpu-online: classify some write failures as non-fatal * README.md: add another kernel issue found with stress-ng -- Colin Ian King Sun, 21 May 2023 15:27:37 +0100 stress-ng (0.15.07-1) unstable; urgency=medium [Shoily Rahman] * stress-rawpkt: use of rx ring to the rawpkt module [Luis Chamberlain] * stress-module: stress finit_module() and delete_module() [Colin Ian King] * Makefile: bump version * stress-memthrash: check for negative return from stress_numa_count_mem_nodes * stress-memthrash: add some numa sanity checking * stress-rawpkt: voidify blocknr if it is not being used * stress-memthrash: reduce copy128 hunks by half, use correct end offset * stress-memthrash: fix copy128 end offset * Makefile: shorten run time of verify-test-all rule, remove kernel log check * core-klog: exit klog child process rather than return * stress-timerfd: relax error message on timerfd creation w/o priv * stress-timerfd: add missing space in failure message * core-processes: don't use getpwuid for static builds * stress-zero: remove alignment from register pointer, icc does not support this idiom * stress-full: remove alignment from register pointer, icc does not support this idiom * core-helper: use char * pointers to avoid auto increment on void * ptr * stress-rawpkt: add built time check for struct tpacket_req3 * core-shared-heap: use shim_strlcpy as some systems don't have strlcpy * core-shared-heap: use strlcpy rather than strcpy as it is safer * stress-zlib: cast mmap'd memory to stress_zlib_shared_checksums_t * * stress-module: only declare helper functions if they are required * stress-module: voidify unused function args * stress-msync: fix missing pointer constifications * stress-ng.h: re-work unconstify macro * core-resources: cast 0 for pthread to pthread_t * stress-memcpy: replace references to b with str2/str3 * stress-tmpfs: don't assume page size is 4K, fixes PPC64 failure * stress-pthread: check for head being null * stress-malloc: avoid calloc allocatiob being less than a uintptr_t * stress-malloc: avoid zero sized callocs when performing len / n where len < n * core-helper: reduce scope of variable prev_flag * test/test-finit-module: ensure test is compilable * stress-wcs: reduce scope of variable t * stress-vdso: remove redudant shadowed declaration of pointer vdso_sym * stress-set: make bad_groups const * stress-sem-sysv: only declare variable nsems when required * stress-rawpkt: declare lable close_fd only when required * stress-seek: reduce scope of variable t * stress-sctp: make char array patterns const * stress-qsort: add ( ) to remove cppcheck precedence style warning * stress-malloc: remove shadow'd variable declaration ret * stress-mmap: rename shadow'd variable index with flag_perms_index, remove % operator * stress-ipsec-mb: only declare sz where it is required * stress-l1cache: fix incorrect cache size calculation * stress-revio: replace expensive % with compare and reset * stress-hdd: replace expensive % with compare and reset * stress-clone: replace expensive % with compare and reset * stress-affinity: check args counter as well as keep_stressing_affinity * stress-module: reduce scope of variable p and make it const * stress-module: use sscanf with specified size limit * stress-tmpfs: round file size to nearest 4K to avoid residual data in page * stress-sigfpe: declare variable verify only when required * core-resource: remove debug * stress-tmp: remove short life hint on tmpfs files to restore default data longevity state * stress-sem-sysv: use different key from core-resources sem keys * stress-resources: use the number of resources allocated to free * stress-switch: voidify semctl return * stress-bind-mount: make clone failure with EPERM a resource exit return * stress-sem-sysv: terminate children with SIGALRM and not SIGKILL * core-shared-heap: print shared heap stats if STRESS_SHARED_HEAP_DEBUG is defined * stress-lockbus: replace asm volatile with __asm__ __volatile__ * core-asm-x86.h: replace asm volatile with __asm__ __volatile__ * stress-itimer: add missing itimer-freq help information * stress-memcpy: exercise copying on smaller chunks to allow larger CPU scaling * core-log: ensure log file data is flushed hard * stress-ng: munge stressor name to replace _ with - * stress-rawpkg: memset tp to clear up static analysis warnings and #ifdef PACKET_RX_RING * stress-rawpkt: fix leak of file descriptor on error exit paths * stress-ng: provide passed/failed/skipped summary at end of run * stress-watchdog: remove incorrect CLASS_VM classification * Makefile: add verify-test-all make rule for test verification * stress-prctl: add missing ; for PR_SET_MEMORY_MERGE prctl * Revert "core-mwc.c: enable 64 bit multiply mwc, it is faster on 64 bit systems" * stress-wcs: replace '_' with '~' in string patterns * stress-numa: minor optimizations * core-mmap: clean up build warnings for HAVE_ASM_X86_REP_STOSQ path * stress-bigheap: add const bools for global mask'd options * core-mwc.c: enable 64 bit multiply mwc, it is faster on 64 bit systems * core-mwc: group mcw data together, also add 64 bit multiply version (not enabled) * README.md: add Shoily Rahman to contributors list * Manual: add rawpkt-txring option to manual * stress-rawpkt: ensure int type is saved as rawpkt-rxring * stress-poll: fix missing free of rnd_fds_index array * stress-zero: perform metrics less frequently * stress-x86syscall: use filtered array of funcs to improve call rate * stress-wcs: optimize random string filling, perform metrics less frequently * stress-vm-splice: add branch hints, add alignment, perform metrics less frequently * stress-vm-rw: add O3 optimizations on parent and child * stress-vm-rw: add branch hints, add alignment on used data structs * stress-vdso: remove inc_counter from vdso loop, removes counter overhead * stress-utime: add branch hints and measure metrics less frequently * stress-usersyscall: add branch hints and O3 optimization level * stress-udp-flood: add some branch hints * stress-udp: optimize send/recv, remove need for % operator * stress-tree: add two minor branch hints * stress-touch: rename main touch loop function * stress-timerfd: add some branch hints * stress-timer: add branch hints, some alignments and O3 * stress-tee: add branch hints and measure metrics less frequently * stress-sysinfo: add some branch hinting * stress-switch: use mmap'd page aligned pipe buffers, align sysv messages * stress-splice: reduce frequency of metrics measurement, add branch hints, align buffers * stress-sparsematrix: explicitly inline value_map * stress-sockpair: optimize using branch hints and some data alignments * stress-sockmany: add some branch hints * stress-sockfd: optimize using branch hints and some data alignments * stress-sockdiag: optimize using branch hints and some data alignments * stress-skiplist: use -O3 and add branch hints * stress-sigrt: optimization on memsets and add branch hints * stress-sigpending: add branch hints, align data structures * stress-signest: add some branch hint optimizations * stress-signal: minor optimizations * stress-sigio: use mmap'd read/write buffers, add branch hints * stress-sigfpe: minor optimizations, biggest win is removing % operator * stress-sigfd: add branch hints, some alignments and reduce memcpy overhead * stress-shm: minor optimization tweaks, very small gains * stress-sendfile: reduce metrics measurements frequency * stress-sem-sysv: add alignment and branch hint optimizations * stress-seek: reduce frequency of metrics measurement, add branch hints, align buffers * some minor optimizations to increase seek throughput * stress-seal: add some branch hints * stress-sctp: minor branch hint optimizations and remove expensive % operators * stress-schedpolicy: minor branch optimization hints * stress-malloc: add SIGSEGV handler in child * stress-ring-pipe: add some minor branch hint optimizations * stress-revio: add branch hints * stress-remap: optimize random shuffle and add branch hits, align array order * stress-readahead: optimize offset generation * stress-rawudp: add branch hint and O3 optimization * stress-rawsock: add branch hint and O3 optimization * stress-rawpkt: add branch hint and O3 optimization * stress-sem: add some more branch hinting * stress-ng: fix spelling mistake "geometic" -> "geometric" * stress-pagemove: move stress_pagemove_remap_fail to inside #ifdef hunk * stress-pty: add some optimization hints * stress-ptrace: add some optimization hints * stress-pthread: minor optimization hints * stress-poll: make buffer a uint16_t, halves payload, increases poll calls * stress-poll: pre-shuffle/randomize poll fds, remove random overhead per write * stress-pipeherd: add branch hints * stress-ping-sock: minor branch and port wrap optimizations * stress-personality: align an array, add branch hints * stress-pagemove: only measure mremap calls every 1000 calls, add branch hints * stress-mmap: page align various arrays, use more shuffling on index * stress-zlib: remove blocking complexity by putting checksum in shared memory * stress-msg: move #endif to correct position with respect to code block * core-shim: move module shim wrappers to below shim_enosys declaration * stress-null: gather metrics every 100 null reads * stress-netlink-task: minor optimization tweaks * stress-nanosleep: use mwc32 and mask for power of two random values * stress-inode-flags: voidify return from inc_counter_lock * core-mwc: check if max is zero before attempting zero division * stress-mutex: only measure mutex calls every 1000 calls, add branch hints * stress-msync: optimize page checking, check in 64 bit chunks * stress-mremap: only measure remap calls every 500 calls * stress-mq: minor optimization on mwc mod operation and switch ordering * stress-mmapfixed: minor optimizations to stress_mmapfixed_is_mapped_slow * stress-mlock: measure mlock/mlock2 duration every 1000 calls * stress-mincore: add some branch hinting * stress-memfd: use 64 bit nt stores where possible * stress-membarrier: reduce number of time calls, increases membarrier rate * stress-zlib: add more yield points to detect SIGALRM timeouts * core-processes: add stress_dump_processes to dump stress-ng process state * stress-madvise: use stress_mwc64modn_maybe_pwr2 for size modulo * core-mwc: add modulo mwc functions for max where max is probably a power of 2 * stress-longjmp: sample metrics time less frequently * stress-list: pass end of entries rather than number of entries * stress-kcmp: minor optimizations, reduced main loop by 0.5% according to perf * stress-judy: minor optimizations, very slim improvement * stress-inode-flags: add locked bogo-ops increment * stress-hdd: optimize data buffer setting * stress-fpunch: mmap buffers, alignment makes copying a little faster * stress-full: make buffer mmap'd, add zero check optimizations * stress-mmap: move stress_mmap_set_vma_name to core-helper, rename to stress_set_vma_anon_name * stress-zero: optimize stress_is_not_zero * core-thrash: add kmemleak scans * stress-*: use stress_file_rw_hint_short on temporary test files * core-helper: add stress_file_rw_hint_short file hint * stress-memfd: exercise memfd flags MFD_NOEXEC_SEAL and MFD_EXEC * stress-prctl: fix missing } * core-helper: add kernel samepage merging helper, use it when forking hard * stress-prctl: add new PR_* prctl options * snapcraft: remove UNEXPECTED setting * snapcraft: make libipsec-mb-dev depend on amd64 arch * snapcraft: move to snap22, add missing libs and -lrt flag * core-mmap: add prefetch in check loop * stress-mcontend: add more stress for x86 with lfence after reads * README.md: Add Luis Chamberlain to contributors list * stress-module: rename options, add '-' following the no part * core-shim: remove need for errno.h include, add definitions for module handling * stress-module: only fclose fp if file is opened * stress-module: remove module-sharedfd, clean up fd opening * stress-module: changes to conform to stress-ng coding style * stress-module: clean up gcc-10.2.1 build issues * core-mmap: fill memory with random 64 bit value * core-mmap: optimize, use 64 bit load/stores, add x86 rep sto for stores * stress-sockpair: try to avoid OOMing when using --oom-avoid option * stress-msg: split send/recv code into functions, improve optimizations * stress-sem: more even use of sem_wait, sem_trywait, sem_timedwait and add metrics * stress-sem: add branch hints and O3 optimization * stress-sock: optimizations, move to -O3 on client/server + branch hints * stress-pipe: terminate run when read from pipe is zero bytes * README.md: Add another citation * core-helper: don't report failure on prctl PR_SET_NO_NEW_PRIVS with errno EINVAL * stress-pipe: add handler to stop stressor on SIGPIPE * stress-switch: add handler to stop stressor on SIGPIPE * stress-af-alg: remove check for HAVE_LIB_IPSEC_MB * stress-eventfd: add branch hints * core-help: minor branch hints on system_read and system_write * stress-epoll: add branch hints * stress-dup: add branch hints, minor optimization on info struct layout * stress-copy-file: minor optimization repeated verify flag check * stress-context: optimize: remove padding, optimize bogo-checks * stress-close: add branch hints, add one more open type, replace % with & * stress-pipe: use EPIPE for stressor termination, remove need for pipe stop token * stress-pipe: verify just first 32 bits in buffer, add in more optimizations * core-helper: fix stress_rndbuf to fill entire buff * stress-switch: use register for active fd, saves a load each loop * stress-ng.h: add likely hints to keep_stressing() * stress-switch: add branch hints * stress-ng: move counter and flag into structure close to each other * stress-ng.h: align counter to cache boundary * stress-exec: remove logging the status on failed exec -- Colin Ian King Thu, 13 Apr 2023 16:52:11 +0100 stress-ng (0.15.06-1) unstable; urgency=medium * Makefile: bump version * README.md: add another citation * Manual: update date * debian/testing/fast-test-all: remove --klog-check * stress-ng: fix truncated pr_inf call * stress-ng: add --oom-avoid-bytes option for the free memory avoid allocation threshold * stress-cache: remove % operator, using compare and re-assign to zero * stess-msg: add --msg-bytes option to specify size of message being sent/recv'd * stress-msg: voidify return of msgctl * stress-*, test-*: remove trailing spaces at end of lines * stress-shm-sysv: define SHM_HUGE_* macros if required, drop IPC_PRIVATE error check * stress-shm-sysv: add SHM_HUGE_2MB flag when using SHM_HUGETLB * stess-shm-sysv: plumb in --sym-sysv-bytes option to correct ID * stress-shm-sysv: replace IPC_RMID with IPC_PRIVATE in error message * stress-shm-sysv: add missing space in error message * stress-cyclic: report the number of samples required for the test run * stress-memrate: make vector types based on uint32_t, add prefetch 128 * stress-memrate: make prefetch offset 2K * stress-memrate: remove inner loops for non-memory rate timed functions * stress-memrate: remove keep_stressing check, use siglongjmp in alarm handler * stress-memrate: add in further loop optimizations * stress-vm: explicitly add modulo inline helper function * core-helper: add stress_get_prime64 to get prime above a given value * core-helper: rename stress_get_prime64 to stress_get_next_prime64 * stress-memrate: fix --memrate-wr-mbs/rd-mbs, use best fit size, add memset writes too * stress-vm: skip stressor when out of resources, return EXIT_NO_RESOURCES * stress-vm: fix prime index accumulation overflow and speed up modulo * stress-vm: compute a new prime that is larger than sz rather than use PRIME_64 -- Colin Ian King Thu, 16 Mar 2023 12:47:17 +0000 stress-ng (0.15.05-1) unstable; urgency=medium [Erik Stahlman] * Populate jmp_env before it could be used [Julien Olivain] * Makefile: introduce PRESERVE_CFLAGS build flag * stress-regs: fix build on riscv32 * stress-mmap: fix build with HAVE_SYSCALL or __NR_mmap2 is undefined [Colin Ian King] * Makefile: bump version * Manual: simplify the contributors text and put a link to the README.md file * README.md: add contributors * README.md: update notes about icc, icx and musl-gcc * stress-ng.h: disable fast math for icc, it's not supported yet * core-pragma: generalize unroll n to unroll for Intel icc compiler * Manual: add bold notes about using bogo-ops as a benchmarking metric * stress-pthread: call sys_set_robust_list using copy of head on the stack * stress-pthread: disable set_robust_list calls * stress-mremap: pass an illegal remapping address rather than null * core-pragma: bump clang version for STRESS_PRAGMA_WARN_CPP_OFF * core-pragma: define STRESS_PRAGMA_WARN_CPP_OFF for different compiler versions * stress-qsort: cast return of mmap to same type as data * stress-ng: only define OPTIMIZE_FAST_MAST with fast math attribute for gcc 10+ * stress-brk: voidify two more args to clean up OS X build warning * stress-brk: clean up OS X build warning * stress-lockbus: enable for tested targets * stress-lockbus: enable riscv * stress-lock: try alternative __atomic_fetch_add if add_fetch is not available * stress-cpu: collatz: force compiler to generate collatz computation * stress-cpu: explog: add randomness, stash intermediates to force exp and log calls * stress-cpu: add some randomness to force code generation of computation * Makefile: fix typo, remove i after parisc * stress-tee: use correct format specifiers for size_t values * stress-chown: fix incorrect goto before zero ret check * Avoid division by zero * stress-cache: fix incorrect variable being passed to cache helper functions * stress-zero: exercise a couple of ioctls * stress-full: exercise a couple of ioctls * stress-shellsort: remove 8 bit sort, replace it with 32 bit mangling * stress-mergesort: remove 64 bit sort, replace it with 32 bit mangling * stress-heapsort: remove 8 bit sort, replace it with 32 bit mangling * core-sort: move stress_sort_data_int32_mangle from stress-qsort to core-sort * stress-rtc: add const to * ptr * stress-rmap: add yield check, helps BSD systems when touching many pages * stress-evivar: use a lookup table for names to ignore * stress-l1cache: add a l1cache method to select forward, random or reverse cache exercising * stress-wcs: remove redundant forward declaration of wcs * stress-str: remove redundant forward declaration of metrics * stress-x86cpuid: reduce scope of variables eax, ebx, ecx and edx * test/test-timerfd-create: remove unused variable fd * stress-vm-rw: memset stack to zero to silence pedantic static analyzers * stress-vdso: reduce scope of variable str * stress-ng: reduce scope of variable ret * stress-shm-sysv: rename sz to shmmax and add it to error message * stress-sigio: reduce scope of buffer * stress-rawdev: reduce scope of rate, constify rate and duration * stress-prctl: change scope of declaration of ret * stress-prctl: voidify ret * stress-mutex: only declare cpus if (HAVE_PTHREAD_SETAFFINITY_NP is defined * stress-ipsec-mb: move declaration of ptr into context that uses it * stress-cyclic: rename noclobber rc to ncrc * core-vmstat: move variables into more local context * stress-quota: memset dqinfo to zero to keep static analyzers happy * stress-open: fix open_flag_perm #if defs and mkdir missing mode * stress-prctl: move } to correct side of #endif * stress-list: add more struct list_entry * casts * stress-list: cast CIRCLEQ_FIRST return to struct list_entry * * stress-io-uring: fix incorrect declaration of statxbuf, make it static * core-resources: move } to correct location after #endifs * core-vmstat: zero vm_stat to keep static analyzers happy * stress-zlib: optimize double precision data generation * Add support for optimization attribute fast-math, use in cpu stressors * stress-tree: unroll loops for improved speed * stress-shm-sysv: get max shm size from /proc/sys * stress-quota: memset structs before quota calls * stress-cyclic: add bounds check for DEADLINE scheduler failure * stress-syscall: fix build issues with set_mempolicy * stress-syscall: fix typo on check for __NR_get_mempolicy * stress-open: fix missing ( * stress-msg: rename n to msgsz to avoid name shadowing * stress-mmaphugepage: reduce scope of variable flags * stress-madvice: reduce scope of a couple of variables * core-helper: memset vm_stat and use correct sscanf format for size_t * stress-enosys: make number unsigned and shift by 1U * stress-bind-mount: reduce scope of variable pid * stress-bind-mount: remove duplicated S_IRUSR in mkdir * core-shim: put return -1 in correct place for RISC-V shim_cacheflush * stress-msg: skip stressor on ENOSPC or ENOSYS * stress-wcs: ensure metrics are scaled by the number of calls mad * stress-str: ensure metrics are scaled by the number of calls made * stress-zero: fix build error on declaration of i for non-Linux builds * stress-yield: fix typo in args for FreeBSD build * stress-exec: fix build failure when clone/vfork/posix_spawn not available * stress-brk: cast nt load argument to uint32_t * * stress-wcs: add metrics for wide string functions * stress-str: fix array overflow, re-order code too. * stress-str: remove NULL entries from methods * stress-access: make pointer "metrics" static * stress-str: add metrics to string functions * stress-rtc: check for EINTR from ioctl calls * stress-fanotify: skip stressors when low on resources (fds or memory) * stress-quota: improve quota error handling * stress-sctp: fix typo in error message * stress-brk: add some minor optimizations * stress-brk: force read to "touch" a page, add helper to do this * stress-msg: add extra error handling * stress-tee: add more sanity checking in read/write/tee system calls * stress-gpu: run stressor inside OOM catcher, add jump to abort on SIGALRM * stress-alarm: use SIGUSR1 to signal termination of child rather than SIGKILL * stress-resched: send ALRM rather than KILL signal to child renicer process * stress-futex: send ALRM rather than KILL signal to waiter process * stress-sctp: report connect retry failure with correct errno * stress-exec: handle more error returns from execve calls * stress-x86syscall: report all metrics via the metrics interface * stress-yield: add metrics for the duration of each sched_yield call * stress-zombie: report number of zombies created as a metric * stress-userfaultfd: add early check to see if userfaultfd() is supported * stress-yield: make yielder count a debug message * stress-pipeherd: remove context switch info as it is in metrics * stress-gpu: add pre-run check to see if GPU device is accessible * stress-dirmany: move directory create/destroy times to metrics * stress-ng: metrics: base metrics on number gathered not number instances * stress-pthread: report number of pthreads created as % of expected total * stress-plugin: add plugin-so check before invoking stressors * stress-shm-sysv: handle ENOSPC, ENOMEM and EEXIST as non-fatal issues * stress-mq: report ENOSPC on a mq_open as out of resources and skip stressor * stress-vdso: report all metrics via the metrics interface * stress-switch: report switch rate using metrics interface * stress-revio: move extents metrics to metrics information * stress-gpu: prefix errno number with errno= for clarification * stress-chown: don't prematurely finish stressors on ENOENT or ENOTDIR * stress-chmod: remove CHECK macro now that is no longer used * stress-chmod: don't prematurely finish stressors on ENOENT or ENOTDIR * stess-flushcache: add oomable wrapper to restart if OOM'd * stress-gpu: set MESA_SHADER_CACHE_DISABLE to true to avoid warnings * stress-fpunch: move extent count to metrics information * stress-epoll: #ifdef out epoll retry count and timeout exit * stress-epoll: clean up error message, remove ; * stress-rawsock: add OOM retries to child processes, back off on ENOBUFS (LP: #1968361) * stress-x86cpuid: move STRESS_ARCH_X86 ifdef check * core-shim: add RISC-V implementation of cache flushing * stress-dup: use stress_close_fds to close file descriptors * stress-rlimit: use stress_close_fds to close file descriptors * stress-memfd: use stress_close_fds to close file descriptors * stress-io: use stress_close_fds to close file descriptors * core-helper: add stress_close_fds to close a range of file descriptors * core-log: add pr_metrics to log and tag metrics only data * stress-jpeg: don't free row_pointer, it is now mmap'd * core-perf: add more perf metrics * Manual: fix wrrd128nt alignment in --vm-method * core-sort: rename forward compares, add fwd into name, default to the original cmp method * core-hash: add more loop unrolling * core-sort: tweak comparison functions for less overhead on branching * core-sort: unroll shuffle loop * core-mmap: unroll inner loops for more throughput * core-hash: unroll mulxror and xorror hashes * core-perf: add in more comparisons of misses vs hits * stress-zlib: fix grammar in a comment * stress-rawpkt: cache align buffer and struct for minor speed up * stress-judy: minor if path hinting and optimization * stress-context: make context cache aligned, allocate it using mmap for page alignment * stress-swap: allocate 1 page using mmap instead of calloc * stress-zero: increase number of reads for more stable read rate metrics * stress-qsort: tweak sorting thresholds for some minor improvements in speed * stress-qsort: further optimization tweaks * stress-qsort: add optimizations for verification helper functions * stress-qsort: factor out forward/reverse verification helper functions * stress-jpeg: optimize performance, mmap row_pointer at start, unroll the loop * stress-qsort: voidify return from stress_get_setting * stress-ng.h: remove reduntant return from add_counter_lock * stress-copy-file: remove commented out junk fsync code * stress-qsort: add an alternative qsort implementation * stress-hrtimers: fix incorrect id being passed to timer_getoverrun * stress-hrtimers: optimize signal handler, use overruns to drive freq * stress-qsort: remove extraneous huge mmap flag macros * stress-qsort: use mmap'd memory for sorting rather than heap * stress-*: replace UNROLL macro with pragma versions * stress-madvise: remove two blank lines * core-helper: add missing newline * stress-cpu: add one more loop unroll * stress-matrix: unroll some loops * stress-x86cpuid: add some loop unrolling * stress-cpu: add some loop unrolling for some performance improvements * core-pragma: add loop unrolling pragma macros * stress-x86cpuid: use cpuid values from a table, add randomized selection * stress-opcode: use stress_reverse64 from core-bitops.h * core-cache: rename to core-cpu-cache as this is cpu specific caching * core-cache: rename all functions and types to start with stress_cpu_cache_* * stress-memrate: determine best power of two size from 1MB .. 1K for loops * stress-memrate: add --memrate-flush and fix memrate read/write rates for < 1MB sizes * stress-memrate: fix sub 1MB read/write rates * stress-memrate: allow memrate-byte sizes of L1, L2, L3 or LLC * stress-cache: remove variable j to clean up variable shadowing * stress-fiemap: add yields to help rt prempt kernels for smoother runs * stress-cache: add more cache metrics, scale bogo-ops to read/writes per 1K * stress-ng: make EXIT_NO_RESOURCES a skipped warning message and not a hard error * stress-chown: don't make file opening timeouts a fatal error * Manual: fix vm stressor method name, should be wrrd128 * stress-tsc: voidify return from call to stress_get_setting * debian/control: update standards version to 4.6.2 * Makefile: add CFLAGS to apparmor-data and core-personality compilation * stress-memrate: don't use rep stos* for x32 builds * stress-memthrash: don't use rep stosd for x32 builds * Makefile: add ia64 to architectures that don't support the -fstack-protector compiler option -- Colin Ian King Thu, 9 Mar 2023 15:46:53 +0000 stress-ng (0.15.04-1) unstable; urgency=medium [Khem Raj] * Include sys/timex.h for clock_adjtime * test-float: Make variables global [Nick Hanley] * Makefile.config: fix mktemp file leak * Makefile.config: style: consistently omit parens around call arguments * Makefile.config: style: replace trailing tabs with spaces [Colin Ian King] * Makefile: bump version * stress-waitcpu: reduce scope for variables t and j * stress-ng: reduce scope of variables inverse_n and f * stress-lsearch: reduce the scope of variable t * stress-cpu-online: reduce the scope of variable t * stress-cpu: add missing line * stress-bsearch: reduce scope of variable t * stress-misaligned: disable misaligned atomic ops on PPC64 with older gcc * stress-epoll: return client error return back to parent * stress-waitcpu: add check for PAUSE instruction * stress-vecwide: disable stress_vint8w16_t as this causes build failures * stress-memrate: only define stos helpers if STOS instructions are available * stress-syncload: fix #ifdef's around stress_syncload_rdrand * stress-wait: unconstify status to clear warning on OS X builds * Makefile: disable -fstack-protector-strong for hppa too * stress-sysinfo: don't fail on gvfs ENOTCONN errors * Makefile: disable -fstack-protector-strong for alpha * stress-tsc: add --tsc-lfence option to force tsc read serialization * Manual: update copyright year and date * stress-goto: add optimization tweak for icx compiler * core-helper: add Intel icx compiler version detection * stress-zlib: allow rdrand for 32 and 64 bit x86 * stress-waitcpu: disable umwait for x86-32 * stress-syncload: allow 32 bit x86 as well as 64 bit * stress-opcode: mark ops_ptr as NOCLOBBERable to clear up longjmp warning * Makefile: check and use hardening flags where available * stress-prefetch: move prefetch and increment to increase throughput * stress-prefetch: add check to see if prefetch* on x86 is available * README.md: add another citation of an academic paper * stress-prefetch: move read rates to metrics output * stress-prefetch: add locality hinted prefetch, move read loop into a macro * stress-prefetch: add ppc64 prefetch methods * stress-prefetch: add prefetch-method option to specify prefetch instructions * README.md: add some more citiations * README.md: add another kernel issue found with stress-ng * core-klog: add proc title status * core-ignite-cpu: add proc title status * core-vmstat: set proc title to indicate periodic stats process * stress-fault: add more signal failure information * stress-mremap: fix mremap with MAP_FIXED and no target address to use NULL * stress-waitcpu: annotate the address umonitor is waiting on * stress-vecwide: add 16 bit vector, add metrics, report stats in bit width * core-asm-arm.h: helper include file for ARM assembler helpers * stress-*: use generic stress_metrics_t type for per-stressor metrics * stess-ng.h: rename stress_metrics_t to stress_metrics_data_t * stress-waitcpu: add in ppc64 yieldy instructions * stress-waitcpu: use yield instruction for ARM * stress-waitcpu: use processor specific wait/pause instructions * README.md: add another kernel issue found with stress-ng * core-cache: allow x86 cache size checking for non-Linux/Apple systems * core-cache: attempt to find cache size using x86 CPUID info * stress-x86cpuid: add missing running and deinit proc state * stress-umount: set child process in running state * stress-rmap: set child process in running state * stress-pthread: remove pthread instance id from proc cmdline * stress-lease: set child process in running state * stress-kill: set child process in running state * stress-forkheavy: set child process in running state * stress-fifo: set child process in running state * stress-dir-deep: set run state earlier * stress-context: set run state earlier * stress-affinity: set child process in running state * stress-vdso: set run state earlier * stress-sigio: set child process in running state * stress-idle-page: fix swapped args in error message * stress-landlock: fix missing space between call & is in message * stress-dentry: remove "removing .. dentries" message * stress-chdir: inform user of delay in removing directories after 0.5 seconds * core-mwc: fix comment of stress_mwc64modn * stress-hdd: add read/write metrics * stress-opcode: use non-volatile pointer state for mmap/mprotect/munmap calls * core-cache, core-asm-x86: modify volatile pointer casting * stress-ipsec-mb: use shim_strlcat for a safer strcat * stress-umount: stressor to exercise racy umount calls * core-asm-x86.h: rework tpause to use rdtsc inlined code and return carry flag * core-cache.h: remove redundant #if 1 .. #endif * stress-opcode: print estimate of total run time when using -v mode * core-asm-ppc64.h: Enable msync instruction * core-helper: disable __stack_chk_fail for clang - it breaks clang-16 * stress-flushcache: use more asm inline helpers * stress-lock{a|f|ofd}: terminate contention process with SIGALRM * core-asm-sparc.h, stress-tsc: check for HAVE_ASM_SPARC_TICK when using tick opcode * core-cache: use stress_asm_sparc_membar from core-asm-sparc.h * core-cache: use stress_asm_riscv_fence from core-asm-riscv.h * core-cache: use stress_asm_x86_clflush from core-asm-x86.h * core-cache: use stress_asm_x86_clflush from core-asm-x86.h * core-asm-x86.h: move x86 cache ops to core-asm-x86.h * Makefile: add code fortify flags * core-asm-x86: add checks for rdrand and rdseek opcodes being supported * core-asm-sparc: remove extraneous tab * stress-tree: add some minor optimization tweaks * stress-tree: ensure all data is unique to avoid dups * stress-tsc: add tick instruction for SPARC implementation of clock tick read * core-asm-s390.h: header for inlined s390 assembler * core-asm-riscv.h: header for inlined RISC-V assembler * stress-af-alg: check if HAVE_LIB_IPSEC_MB is defined * stress-ipsec-mb: fix build failure for systems without ipsec-mb library * stress-zlib: add inc16 zlib data filling method * stress_atomic_lock_acquire: provide 5 seconds grace before bailing on Xi EAGAIN * stress-ipsec-mb: add ipsec-method option to select crypto/integrity to use * stress-ipsec-mb: re-work feature flag mechanism, add ipsec functions in an array * README.md: Add some more references and citations * stress-memthrash: add memsetstosd memory zero method * stress-sleep: reduce default threads per instance to 256, add more yield checks * stress-sleep: use x86 tpause where available * stress-opcode: map/unmap opcodes in parent, fclose stdio descriptors * stress-opcode: add siglongjmp handler for some signals, add metrics * stress-opcode: cater for different arch opcode sizes * stress-opcode: format opcode number as 8 hex digit wide string * stress-opcode: implement inc opcode method more efficiently * README.md: Add another bug found by stress-ng * Add core-asm-ppc64.h for ppc64 asm helper code * stress-zlib: remove unused function rand64 * core-asm-x86.h: add check for x86 arch * test/test-asm-x86-mov-dr0.c: replace asm volatile with __asm__ __volatile__ * Add stress_asm_x86_lock_add to core-asm-x86.h for memthrash MEM_LOCK macro * rename stress_x86_cpuid to stress_asm_x86_cpuid and move it to core-asm-x86.h * stress-zombie: remove empty line * core-asm-x86.h: add rdrand and rdseed x86 asm helpers * core-asm-x86.h: add rdtsc x86 asm helper * Move common x86 assembler into core-asm-x86.h * stress-atomic: fix non-indexing of atomic lock space * stress-memrate: use registers for rep stos, reduces stack loads * stress-memrate: inline and add OPTIMIZE3 rep sto* code * Manual: add rep sto x86 writes to the memrate stressor * stress-memrate: don't print out metrics to log, use --metrics instead * stress-memrate: use fast string write rep stos* instructions * stress-atomic: exercise atomic locks on different offsets * Makefile.config: don't build with libatomic for musl-gcc * stress-list: fix build issue with musl-gcc * stress-list: uncomment out HAVE_SYS_QUEUE_CIRCLEQ * stress-nop: add serialize opcode for x86 and opcode support for x86 * stress-nop: reduce tpause from 5000 to 100 for more responsive handling * Makefile: fix some missing config dependencies, remove gold ld * Makefile: replace include with some eval magic * Makefile: use -O2 as default only if -O option not defined in CFLAGS -- Colin Ian King Wed, 15 Feb 2023 15:50:31 +0000 stress-ng (0.15.03-1) unstable; urgency=medium [Anton Eliasson] * stress-cpu: Add verification to rand48 [Colin Ian King] * Makefile: bump version * Manual: update contributors names * stress-cpu: only verify rand48 for Linux glibc * stress-pci: disable reading of ROMs * core-ignite-cpu: randomly flip between cpu governors * Manual: update nop stressor INSTR to note nop15 is the largest nop for x86 * stress-version.h: rename to core-version.h * stress-list: add per list method metrics * core-helper: minor code reformatting for alphabet string * core-helper: add compiler information to yaml file * Add number of instances used in geometric mean metrics * stress-fp: add alarm check flag in main stress fp loop, remove debug * stress-fp: fix metrics, should be adding stats for all instances * Add --sn (scientific notation) for metrics * core-helper: add more gcc and icc version information -- Colin Ian King Thu, 19 Jan 2023 10:50:01 +0000 stress-ng (0.15.02-1) unstable; urgency=medium [Florian Weimer] * test/test-float.c: Avoid tickling an implicit int error * test-aligned-alloc: Define _GNU_SOURCE for the aligned_alloc prototype * test-fchmodat: Include for the fchmodat prototype * test-pidfd-getfd: Include if available for pidfd_getfd [Guilherme Janczak] * rework stress_strnrnd() [Yong-Xuan Wang] * stress-signest: disable alternative stack before unmap [Colin Ian King] * Makefile: bump verison, update to new code name * stress-forkheavy: cast mmap return to same type as pointer metrics * stress-fp: disable float128 for OpenBSD * stress-fp: disable float80 due to unresolved division by zero SIGFPEs * core-shared-heap: cast void * ptt to uintptr_t to clean up icc build warning * stress-matrix-3d: remove redundant redeclaration of variable j * stress-matrix: remove redundant redeclaration of variable j * stress-efivar: rename varname to get_varname to avoid name shadowing * stress-fp: add fp rates into metrics output, increase metrics to 24 slots * stress-fp: only count bogo-ops for float, double, long double * core-helper: silence a spurious gcc warning * stress-str: replace search for _ with + * README.md: update number of stressors * stress-fp: exercise various floating point values with +, *, / operations * stress-branch: add yield call for SH4 to allow it to be interrupted * stress-pci: add locking around PCI memory rate stats * stress-ipsec-mb: add locking around statistics being dumped in debug * core-shared-heap: ensure offset is always aligned to natural pointer alignment * stress-fault: restore signal handlers at end of stressor loop * stress-bad-altstack: replace STRESS_MINSIGSTKSZ with static size_t stress_minsigstksz * core-shared-heap: only report shared heap usage if it has been used * core-mwc: add stress_mwc*modn() functions for modulo'd range * core-builtin.h: convert macros into inline functions * stress-*: voidify return from snprintf * stress-str: fix prototype for test_strcpy_t * stress-list: evaluate entry->value ^ rnd before passing it into a macro * stress-wcs: add missing strdsc for stress_wcscpy testcase * core-shared-heap: add strdup for shared description metrics string * stress-ng: replace size of on index element j with 0 * stress-ng.h: divide by size of make allocator bitmap elements instead of 8 * stress-cpu: use a clang builtin for reversing bits * core-hash: replace hash_rol_uint32 with shim_rol32n * stress-wcs: remove variable failed, use info.failed instead * stress-str: bundle wcs function args into a struct, improves run time * stress-wcs: bundle wcs function args into a struct, improves run time * core-hash: use builtin rotate macros for rotating values * core-builtin: re-work rotate helpers, add generalised rotate left/right macros * stress-list: use builtin shim_ror64 * stress-resources: free resources before child exit * core-helper: fix stack size for non-first calls (incorrect cached value) * stress-pci: print PCI config and resource space read rates * core-helper: fix typo on STRESS_MAXIMUM macro * core-cache: Add 32 bit variants of 64 bit hashes * core-hash: add more comments to explain the nuances of memcpy * core-hash: xorror64: cast len to uint64_t before flipping bits * core-helper: simplify stack size calculations using STRESS_MAXIMUM macro * core-helper: limit iterations on stress_get_prime64 * stress-priv-instr: remove extraneous ) for SPARC (again) * stress-priv-instr: remove extraneous ) for SPARC * stress-mlock: fix typo on time function * stress-judy: move judy_ops array to function scope * core-resources: clean up code, voidify, constify, misc cleanups * stress-dirdeep: only report directories being deleted if it is taking a while to complete * stress-dirdeep: remove commented out cruft. * stress-evivar: ignore ioctl FS_IOC_SETFLAGS error return * stress-sigio: use metrics interface to report SIGIOs per sec * stress-malloc: add missing tab * stress-judy: add judy insert/find/delete rate metrics * stress-jpeg: add compression ratio metrics * stress-getdent: add duration metrics for getdent call * stress-dev-shm: use more efficient method to touch pages with data * stress-dirdeep: remove empty line * stress-icache: fix spelling mistake in comment * stress-flock: add lock/unlock flock metrics * stress-zlib: use the generic metrics API to report metrics * stress-unshare: add unshare() duration metrics * stress-touch: remove empty line * stress-tlb-shootdown: remove empty line * stress-mremap: add metrics * stress-mlock: remove extraneous tab * stress-mlock: add mlock/munlock metrics * stress-*: replace hard coded time constants with #defined constants * Add x86intrin.h implementations for rotate left/right * stress-*: use shim_rol/shim_ror builtins * stress-rotate: add builtin support for clang rotateleft/rotateright * stress-rotate: add a 8/16/32/64/128 bit rotate left/right stressor * Update copyright to 2023 * stress-matrix: rename matrix_3d_yx to matrix_3d_zyx * stress-matrix: add per method metrics * stress-matrix-3d: add per method metrics and bump metrics to 16 items * stress-memfd: add memfd_create metrics * Revert "core-helper: use 8K stack check if PTHREAD_STACK_MIN is less than 8K" * stress-memfd: use uint64_t ptr offset helper, re-order code * stress-memfd: add a zap pte linux stress test cast * stress-tty: exercise ldisc settings on stressor instance 0's ptys * stress-sparsematrix: force remove the unused splay function warnings * core-pragma.h: define STRESS_PRAGMA_WARN_CPP_OFF for clang * stress-resources: break from loop rather than use a leaky exit return * stress-forkheavy: free resources to clean up memory leak * core-helper: use 8K stack check if PTHREAD_STACK_MIN is less than 8K * core-*: silence sys/sysctl.h deprecated warning * stress-forkheavy: Add --forkheavy-allocs and --forkheavy-procs options * stress-shm-sysv: remove debug of memory sizes * stress-lockbus: only report splitlocks enabled on stressor instance 0 * stress-enosys: index into hash table using unsigned long * stress-cacheline: only print out the method being used on instance 0 * stress-atomic: move metric measurments closer to lock instructions * stress-atomic: make atomic ops operate on union'd data for more contention * Add new forkheavy stressor * stress-link: add EINTR check for Serenity OS * stress-syscall: add build time detection for select * stress-efivar: add support for reading vars from the sysfs file /sys/firmware/efi/efivars * core-out-of-memory: add wait/exit/run states * core-helper: add STRESS_STATE_ZOMBIE state * stress-mcontend: set process state to run for all threads * stress-*: print method being used only by first stressor instance * core-sort: fix missing int type for j * stress sort/search: add data helpers, add metrics * stress-priv-instr: add SPARC draina and halt instructions * stress-hash: add new xorror64 hash, a fast string hash * core-cache: add M68K cache sizes * Add build time check for SPARC membar instruction * stress-ng: fix space identation with tab * stress-ng: rename stress_misc_stats_t to stress_metrics and clean up code * stress-*: Add helper function stress_metrics_set to set metrics * stress-shm-sysv: add shm* syscall metrics * Add x86 mfence instruction auto build detection * stress-syscall: rename struct with stress_ prefix to avoid name clashes * core-vmstat: add OS X vmstat runnable/blocked process count * stress-mmap: make variable mask non-clobberable * stress-fault: make variables duration and count non-clobberable * core-cpu: rework cpuid macros to build on gcc 4.8 with and without -fPIC * core-nt-store: only use HAVE_XMMINTRIN_H with SSE supported by toolchain * README.md: add the Ubuntu stress-ng ppa * core-vmstat: Add OS X cpu system/user/idle stats in vmstat output * stress-brk: disable page touching for OS X * Revert "stress-brk: unmapping pages in brk will cause OS X segfaults, disable it" * Add more system statistics for OS X * core-vmstat: add OS X support for CPU frequency stats * core-vmstat: fix stress_get_cpu_ghz for non-FreeBSD and non-Linux builds * Add min, max CPU frequencies to --thermalstat stats * core-cache: move two more functions and rename cpusort to cpu_sort * core-cache: re-order functions and #ifdef for Linux, OS X, etc * core-cache: add OS X cache size support * stress-brk: unmapping pages in brk will cause OS X segfaults, disable it * core-thermal-zone: order thermal zone entries by type * README.md: add another citation "The TSN Building Blocks in Linux" * stress-branch: don't use -O3 on branch stessor for SH4 -- Colin Ian King Thu, 12 Jan 2023 17:27:22 +0000 stress-ng (0.15.01-1) unstable; urgency=medium [Davidson Francis] * core-thermal-zone: fix the average temperature calculation [Colin Ian King] * Makefile: bump version * debian/control: update standards version to 4.6.1 * stress-tlb-shootdown: fix missing temporary directory removal * stress-priv-instr: handle SIGBUS as SIGILL for FreeBSD * stress-procfs: rename shadowed variable offset to mem_offset * stress-brk: cast uint8_t ptr to void * for munmap * stress-syscall: remove redundant initialization of variable max * kernel-coverage: add two more stack stressor options * stress-stack: add a new --stack-unmap option to unmap pages in stack * stress-brk: regularly unmap pages in heap to create many heap mappings * stress-pagemove: fix modulo of negative issue causing page check failure * stress-procfs: clean up off_t and ptr cast warnings * stress-priv-instr: add support for aarch64 * stress-far-branch: set base to 0, remove mask * stress-priv-instr: fix swapped size and fd args to mmap * stress-priv-instruct: fix typo: HAVE_ASM_S390_PTLV -> HAVE_ASM_S390_PTLB * stress-priv-instr: onlt log unhandled instructions info if any ops are not trapped * stress-priv-instr: add privileged instruction stressor * stress-x86cpuid: fix short help message * stress-*, core-*: Fix uname success check for Solaris/OpenHipster * stress-x86cpuid: stressor does not verify, so set VERIFY_NONE * stress-rdrand: reduce number of loops to avoid timeout overrun * stress-x86cpuid: remove trailing spaces after comments * stress-ng: free names[i] at first opportunity * stress-syscall: clean up some valgrind uninitialized memory warnings * stress-syscall: set threshold based on total available syscall tests * stress-syscall: add restart_syscall system call * stress-x86cpuid: add some more CPUID leaf types * stress-nop: add some more x86 long nops, add metrics * core-thermal-zone: move scope of total and count, add division by zero check * stress-*: add missing space between + operator * Manual: update contributors * stress-x86cpuid: replace ns with nanosecs in metrics * stress-fault: double major faults using madvise PAGE_OUT where possible * stress-fault: triple minor page faults using MADV_DONTNEED where available * stress-tlb-shootdown: double TLB read/writes and misses * stress-x86cpuid: more cpuid method for cpu stressor and make new stressor * stress-touch: add spacing between list of touch opts * stress-softlockup: remove redundant fflush call * stress-open: add open duration metrics * stress-*: use pr_inf_skip for skipped stressor messages * stress-nanosleep: add option --nanosleep-threads * core-hash: align primes lookup table, slight improvement * README.md: add another research paper citation * stress-peterson: add note describing cache alignment optimization * stress-dekker: add note describing cache alignment optimization * stress-*: replace various empty signal handlers with stress_sighandler_nop * stress-page-swap: only define stress_pageswap_count_paged_out when required * stress-far-branch: move #endif to end of correct function * stress-far-branch: only define stress_far_mmap_try32 if required * stress-sysfs: add sys_skip_paths array for paths to skip reading * stress-rdrand: remove metrics from debug, they are in the metrics output * stress-urandom: add random read rate metrics * stress-remap: add remap page metrics * stress-pageswap: add duration per page swapout metrics * stress-mutex: add mutex locking rate metrics * stress-mergesort: style: replace ptr+1 with ptr + 1 * stress-memhotplug: add metrics reporting for successful offline/online operations * stress-dekker: add cache friendly padding in mutex and counters * stress-peterson: add cache friendly padding in mutex and counters * stress-peterson: add mutex duration metrics * stress-dekker: add mutex duration metrics * stress-cpu-online: add offline/online duration metrics * stress-munmap: use __builtin_clzl for faster log2(n) calculation * stress-idle-page: fix comment description of stressor * stress-far-branch: report that architecture may not be supported * stress-far-branch: trim stride to minimum size, add ppc6le implementation * stress-dentry: remove empty tabbed line * stress-fifo: add --fifo-data-size option to specify the data read/write size * stress-dup: add dup call duration metrics * stress-dentry: add some dentry create/access/unlink metrics * stress-brk: add sbrk page expand/shrink metrics * stress-binderfs: add mount/umount duration metrics * stress-bind-mount: add mount/umount duration metrics * stress-sockpair: add metrics for socketpair call rate and write rates * stress-sockpair: add potential sockpair sk leak test * stress-vm: add a checkboard method * stress-procfs: make helper function stress_proc_scandir static * stress-stream: remove redundant casts * stress-ng: move declaration of pointer munged * stress_vm: replace stress_vm_popcount with stress_vm_count_bits8 * stress-cpu/vm: use builtin popcount where available * stress-ng.h: make ALIGNED macro a no-op for Minix (wrong number of segments error) * stress-vm: fill memory from a 32 bit Galois linear feedback shift register * Manual: fix spelling mistake "iterively" -> "iteratively" * stress-far-branch: re-work mmap handling for 32 bit and improved random mmaps * stress-sparsematrix: add a splay tree implementation to the mix * stress-procfs: sanity check /proc/self/mem * stress-mmap: attempt to name VMA using prctl * workflows: unset env for Trivy upload * workflows: set env for Trivy * workflows: set correct name for env * workflows: append env setting into $GITHUB_ENV * workflows: add missing ) at end of expression * workflows: fix IMAGE_REPOSITORY env setting * stress-shm: move /dev/shm check to earlier in the setup phase * stress-shm: skip stressor if /dev/shm is not mounted with tmpfs on linux * stress-sysfs: check for zero sysfs entries after pruning the directory -- Colin Ian King Tue, 13 Dec 2022 09:26:11 +0100 stress-ng (0.15.00-1) unstable; urgency=medium [Meysam Azad] * add relevant docs to readme * remove playground stuff * update deprecated action * add workflow dependency * remove platform and add trivy image scan * take it for a test run * tag the image manually * feat(ci): build docker image for DockerHub [Kenny Gong] * correct macro name to avoid build fail on riscv [Thinh Tran] * core-log: fix pr_spin_lock() spin forever when timeout expired [Colin Ian King] * stress-vm-addr: add a yield point in address loop * stress-far-branch: voidify base and offset * stress-crypt: add Solaris ENOENT return check * stress-crypt: fix crypt call for systems without crypt_r * stress-chroot: cast mmap return to same type as metrics pointer * stress-atomic: cast mmap return to same type as metrics pointer * stress-access: cast mmap to same type as metrics pointer * stress-mmap: only declare pointer buf64 when it is required * stress-mmap: add build check for mprotect use in Step #10 * stress-mmap: add build check for mprotect use in Step #9 * stress-race-sched: add built time check for sched_setaffinity * stress-flushcache: remove voidification of non-existant args * stress-sigsegv: rework rdtsc assembler to clear up tcc compiler warning * core-mwc: remove target clones as clang does not support multiversioned clones * stress-sigsegv: correct the cache flushing, should be on the ptr address * stress-memthrash: remove pointer constifications * stress-link: fix missing ; after voidification of do_link * stress-fsize: use correct hex format specifiers and fix error message * stress-fsize: don't fail on fsize overflow checks, report these just once * stress-vm-addr: iterate over wider address range, remove ALIGN_VM macro * stress-cacheline: replace assignment with load and store assignments * stress-rawsock: add built time detection for just struct iphdr * stress-sparsematrix: fix some casting that fails on s390x * stress-tsc: fix build error on 32 bit x86 * stress-tsc: add verification that TSC is monotonically increasing * core-job: remove redundant assignment to ptr * core-job: check buf instead of ptr, cleans up cppcheck false positive * stress-ng.h: don't forward declare stressor_info_t as it is a C11 feature * stress-syscall: only declare clocks[] where needed * core-net: voidify unused args for non-net builds * stress-*: rename stress_not_implemented to stress_unimplemented * stress-*: add more explanation about stressors being unimplemented * stress-syscall: terminate sigsuspend syscall child processes * stress-list: fix help information * stress-tree: add metrics * stress-tree: add more fine-grained checks for RB and SPLAY trees * stress-l1cache: remove { } around 1 item statement * stress-hash: add two more hash functions * stress-syscall: disable mknodat on OS X * stress-fcntl: disabled F_GETLEASE on OS X, it fails * stress-race-sched: fix build issues with systems without scheduling * stress-stream: unroll index 0 level stream operations * core-perf: add missing tab before comment * core-job: remove empty line * core-mwc: use TARGET_CLONES in stress_mwc32 * Manual: update stream stressor with some additional notes * stress-stream: add read and write rates, correct fp op rate * Add gcc unroll optimization detection and use it in a few niche places * stress-madvise: add NOCLOBBER annotation on bool file_mapped * stress-memthrash: add explanation to the store after a prefetch * stress-goto: remove label direction for non-random gotos on each bogo loop * stress-branch: minor re-ordering of seed + label, speed up by ~11% * stress-dev-shm: add OOMable child wrapper to catch OOMing (LP: #1961076) * core-perf: add some more kernel related events * stress-sigsegv: fix incorrect sizeof on cacheflush call * stress-race-sched: force mix of scheduling activity based on random value * stress-sigsegv: ensure expected_addr is flushed back before sigsegv * workflows: turn uppercase chars in repo to lowercase * stress-numa: use %zu for size_t in pr_* statements * stress-memthrash: remove debug message on mbind returns * stress-memthrash: add numa mbind'ing of pages * stress-numa: size numa bitmask based on max number of numa nodes * Manual: remove some tabs and white spaces * stress-utime: remove tab * stress-race-sched: add yield before exiting child * stress-race-sched: also try to change scheduler for each process * stress-race-sched: add synchronized prev/forward methods * stress-race-sched: add option --race-sched-method for CPU selection * core-log: remove extraneous getpid call * stress-tsc: riscv: fix error message, should be rdtime and not rdcycle * stress-ng: add --log-lockless option to disable log message locking * core-log: add global shared memory check before dereferencing it * stress-efivar: disable for ALPHA * stress-shellsort: rename OPT_shellsort_integers to OPT_shellsort_size * stress-race-sched: add some renicing for child process * stress-sparsematrix: remove unused variable j * stress-race-sched: add stressor to exercise races on cpu affinity * stress-loadavg.c: force 64 bit multiply to avoid overflow on 32 bit multiply * stress-procfs: avoid misaligned pci reads on sh4, it causes SIGBUS * stress-vdso: return -1 for bad time() return rather than cast to int * stress-syscall: return -1 for bad time() return rather than cast to int * stress-sysbadaddr: return -1 for bad time() return rather than cast to int * stress-fsize: add in fallocate offsets to help debugging on failures * stress-clock/syscall: Forgot to check-in struct shim_timex changes * clean up build issues on OS/X * stress-sparsematrix: only declare hash judy struct if judy is supported * stress-vecwide: add stressor name and a key to debug performance data * stress-plugin: only report plugging loading failures on instance 0 * stress-ng: ensure geometric mean of misc stats uses non-zero valid data * stress-hrtimes: make failed interrupt sleep warning a debug message * Revert "stress-readahead: move modulo max size out of loop" * test/test-builtin-nontemporal-load: voidify returns * stress-tsc: reduce scope of variables duration and count * stress-tee: reduce scope of variable ret * stress-llc-affinity: make pointer buf_end const * stress-full: remove duplicated shadowed variable offset * stress-fault: move average_duration to deeper scope * stress-cache: move struct mask to deeper scope * core-net: reduce scope of variable j * core-shim: add shim'd clock_adjtime, add build time checks for struct timex * stress-syscall: fix missing ), after syscall_clock_adjtime * stress-rtc: make select timout smaller, adds more stress, less delays * stress-sparsematrix: fix mmap memory calculations on 32 bit systems * stress-*: report times in secs,nanosecs and clean up metric rates * stress-stack: add { } around if block * stress-sparsematrix: add mmap size limit * stress-sparsematrix: make data items 32 bit, double default items to store * stress-sparsematrix: disable hashjudy for 32 bit systems * stress-sparsematrix: replace Gets/Puts with gets/puts * stress-*: report times in secs,nanosecs and clean up metric rates * stress-syscall: report % of syscalls exercised * stress-prefect: replace GB/s with GB per sec * stress-l1cache: report cache line size in bytes * stress-dirmany: rephrase directory create/remove time * stress-*: replace seconds with secs, / with per * core-thrash: use stress_set_proc_state_str to set proc name * stress-gpu: format GPU source, add open failure errno * stress-utime: add utime call rate metrics * stress-usersyscall: add user system call metrics * stress-userfaultfd: add per pagefault metrics * stress-uprobe: add trace read rate metrics * stress-tee: add tee copy rate metrics * stress-stack: add --stack-pageout option * stress-sparsematrix: remove max, it was introduced during a debug * stress-sparsematrix: add a hybrid hash judy implementation * README.md: add another kernel issue found by stress-ng * stress-softmath: remove this partially implemented stressor * core-thrash: print thrashing state * stress-ng: remove "stress-ng" from stressor name messages * stress-gpu: add stressor name in pr_inf messages * stress-ng: calculate metrics using geometric mean rather than average * stress-sigabrt: add sigabrt signal handler latency metrics * stress-ramfs: add --ramfs-fill option to enable ramfs filling * strress-munmap: add page size munmap call duration metrics * Manual: remove the parameter from eventfd-nonblock option * stress-loadavg: add a --loadavg-max option to specify upper load average * stress-ioport: add metrics and write same value to port * stress-full: exercise random offset pread and fstat on /dev/full * stress-fp-error: remove empty lines * stress-*: sort and clean-up help options help * stress-sock: rename socket_* to sock_* to match stressor name * stress-sockmany: add --sockmany-port option to specify port to use * stress-sockabuse: add --sockabuse-port option to specify port to use * stress-rawsock: add --rawsock-port option to specify port to use * core-net: add helpers to reserve and release ports * stress-alarm: remove 3 from comment * core-cache: return zero for llc cache size for non-linux builds * icache: add missing #endif and fix another long section name * icache: make section names smaller and fix build issue for MACH OS X builds * stress-seek: use inc label only when FALLOC_FL_PUNCH_HOLE is defined * stress-chroot: voidify metrics arg for non-Linux builds * stress-bind-mount: move mkdir on path to stressor rather than child * stress-ng: fix incorrect premature run time duration information * stress-binderfs: add more clarity to skip test messages * stress-procfs: check if no proc entries exist after pruning * core-out-of-memory: fix array out-of-bounds read on index loop * stress-link: add { } around block. * stress-link: close temp_dir_fd if it is open, fixes fd leak (#2) * stress-exit-group: move pthread_count into locked context * stress-crypt: use safer strlcpy for string copying * stress-link: close temp_dir_fd if it is open, fixes fd leak * stress-link: compare temp_dir_fd with >= 0 rather than > 0 * stress-syscall: add clock_gettime error return check * stress-*: use VOID_RET to replace ret = func(); (void)ret; * stress-fsize: Add new file size stressor to exercise file limits * README.md: Add another academic paper citation * stress-vm-splice: remove tab * stress-mmap: add simple read-write protection checks on a page * stress-readahead: move modulo max size out of loop * stress-quota: remove commented out unused macros * stress-membarrier: add membarrier call rate metrics * stress-context: add swapcontext rate metrics * stress-access: put misc stats into slot 0 and not slot 1 * stress-access: add metrics for access call rate * README.md: add more stressor information and more OS tests * stress-vm-splice: add vm-splice metrics * core-vmstat: constify variable name * core-try-open: constify sleep_ns * core-time: constify variable now * core-smart: add constification to array * core-shim: add some constifications * core-perf: add more constifications * core-log: add constification * core-ignite-cpu: add constifications * core-helper: add some constifications * core-cache: minor code cleanup * stress-ng: revert killing all stressors on SIGALRM, it breaks --seq option * stress-ng: enable SIGALRM on parent to enforce all child terminations * stress-flushcache: add ppc dcbst and icbi flush instructions * core-icache: factor out icache return funcs into core-icache * stress-flushcache: cater for different cache sizes for icache * stress-flushcache: remove clear cache call on D$ * stress-flushcache: add yield points for slower platforms * stress-lockbus: only declare lockbus_nosplit for x86 * stress-ng: move fanotify info to correct place * Add new flushcache stressor to hammer icache and dcache flushes * stress-lockbus: add --lockbus-nosplit to disable split locks * Manual: minor text change for TLB * core-thermal-zone.h: rename 2nd arg in stress_tz_dump() * stress-ng.h: shim_nanosleep_uint64 arg should be named nsec * core-perf: use && instead of & in expression * stress-clone: add time warping check for -ve durations * stress-tsc: add average TSC read duration metrics * stress-splice: add metrics of splice data transfer rate * stress-sendfile: add metrics of sendfile data transfer rate to /dev/null * stress-seek: fix bogo-op increment and add avergae seek duration metrics * stress-rawudp: add recv data rate metrics * stress-rawsock: add recfrom data rate metrics * syscalls: update syscall implementation details * core-time: try to get time in nanosecond resolution, fallback to millionths if fails * stress-nanosleep: add average sleep overrun metrics * stress-fault: add page fault duration metrics * stress-copy-file: add copy file rate copying rate * stress-close: add close call rate metrics * stress-bigheap: add reallocs per second metrics * stress-fiemap: report that the the ioctl was not supported * stress-hdd: add this to the filesystem class of stressors * core-helper: add a few more file system magics * stess-fanotify: ensure filename2 is unlinked * core-helper: add ubifs magic to file system table * stress-sync-file: don't treat EINTR on fallocate as a failure * README.md: add another academic paper citation * stress-vecfp: add negation as vector math operation * stress-ring-pipe: improve resource free'ing on err exit paths * stress-*: print skipped info messages using pr_inf_skip * stress-ng: Add OPT_FLAGS_TZ_INFO to indicate we need thermal zone data * core-helper: use builtin bswap32 to swap uint32 bytes * stress-ring-pipe: add stressor to copy data around a ring of pipes * stress-open: pass pid to test functions rather than call getpid() * stress-pthread: add pthread create -> exec time metric * stress-kill: add kill() call rate metrics * stress-chroot: add chroot call rate metrics * stress-chdir: add chdir rate metrics * Makefile.config: fix typo on __ppc_get_timebase, was missing 'e' at end * stress-open: add a few more open test helpers * core-sort: undef macros once usedin core-sort.h, include header in core-sort.c * stress-rawpkt: add raw recv data rate in MB metrics * stress-rawdev: add pread rate metrics for all methods * stress-randlist: use single bit for randlist allocator type flag * stress-jpeg: add megapixel compression rate metrics * stress-icmp-flood: add packet and data rate metrics * stress-clone: add clone time duration metrics * stress-ng: sort options * stress-wcstr: rename to stress-wcs to match stress name * stress-remap-file-pages: rename to stress-remap to match stress name * stress-iosync: rename to stress-io to match stress name * stress-aio-linux: rename to stress-aiol to match stress name * core-try-open: add more comments * core-perf: add more comments * core-net: update function comments * core-ignite-cpu.c: add missing comments * core-helper: add missing function comments * kernel-coverage: fix mkfs.ntfs sector size -s option * stress-pagemove: add page remap rate metrics * stress-goto: add millions of gotos per second metrics * stress-crypt: add SHA-1 and SunMD5 crypt to stressor * stress-crypt: add per-crypt metrics * stress-ng: add more digits to misc metrics values * stress-mmap: report mmap2 not being used just by instance 0 * stress-atomic: add uint8..uint64 atomic op rate metrics * stress-pipe: rename variable bytes to avoid name shadowing * stress-zero: add /dev/zero read rate metrics * stress-udp-flood: add sendto metrics * stress-pipe: add write rate metrics and set minimum pipe write to 4K * stress-ping-sock: add ping sendto rate metrics * stress-dev: remove debug LOCK message * stress-null: add /dev/null write rate metrics * stress-getrandom: print out getrandom() bit rate * stress-bigheap: fix short help, should mention realloc and not calloc * core-helper: remove duplicated assignment of fs_type * kernel-coverage: add forceful killing of stressors and umount * stress-syscall: fix array overrun on --syscall-methods * core-helper: print temporary file path and file system type in pr_runinfo * stress-dir: start concurrent dir stressor later and check for open failure * Manual: remove note about not supporting GPU tests, since it now does * kernel-coverage: remove ftrace from main I/O tests as it slows throughput * stress-copy-file: add more yield points * stress-link: add --link-sync and --symlink-sync options * stress-fiemap: use O_SYNC where possible, else fall back to fdatasync * Add FUNDING yaml file * stress-far-branch: add sparc support * stress-far-branch: add signal handlers for SIGILL, SIGBUS, SIGSEGV * stress-far-branch: remove duplicated little endian macro * stress-far-branch: new stressor to exercise far function calls * core-sort: add in missing pointer constifications * stress-llc-affinity: Add a Lower level cache CPU/affinity stressor * stress_*search: Use core sorting comparison functions * Factor out sorting comparison functions, add new core-sort helpers * stress-lsearch: use #define'd shift for size * stress-tsearch: Fix duplicated random values causing search failures * stress-syscall: fix incorrect sort comparison * test-icc-mm_stream_si128: clean up clang warning -- Colin Ian King Fri, 19 Nov 2022 08:31:22 +0100 stress-ng (0.14.06-1) unstable; urgency=medium * Makefile: bump version * stress-sigsegv: only used expected_addr if SA_SIGINFO is defined * stress-*: rename CACHE_LINE* macros to STRESS_CACHE_LINE* * README.md: update number of stressors and arches supported * stress-vm-addr: remove redundant initialization of pointer buf * stress-pagemove: remove redundant assignment to variable page_num * stress-sync-file: remove redundant redeclaration of offset * stress-sigsegv: remove redundant (void *) cast * stress-sigfpe: force division by zero for x86, disable alarm for m68K * stress-ng: remove duplicated application name in error message * stress-sigsegv: compare sigsegv address with expected address * stress-fp-error: fix missing continuation * stress-fp-error: disable stressor for arc64 * stress-sigfpe: disable this stressor for arc64 as feraiseexcept is not implemented * core-arch: add ARC64 arch support macro STRESS_ARCH_ARC64 * stress-regs: fix compilation error with gcc-8 on armel and ppc * Makefile.config: sort libraries * Add libmd dependency for static builds * stress-plug: disable for static builds as it requires dlopen * stress-vm-addr: remove align attribute from register pointers * stress-pagemove: add a stressor to exercise page moving using remap fixed move ops * stress-memthrash: add a new swapfwdrev 64 bit mempory swapping method * stress-vm-addr: add address bit flip vm-addr method * stress-vm-addr: add a bitposn bit flipping powers of 2 address space striding method * stress-sigsegv: perform illegal vdso calls that can cause SEGVs * stress-sigsegv: generate SIGSEGV on illegal port read access * stress-sigsegv: generate SIGSEGV via TSC when TSC access is disabled * stress-vm: remove tabs in empty line * stress-tlb-shootdown: optimize for higher TLB read/write misses * stress-memthrash: add a translation lookaside buffer thrashing method * stress-vm: determine cache line size from cache info or default to 64 bytes * stress-vm-addr: add a bunch of optimizations to improve throughput * stress-zlib: minor register optimizations * stress-x86syscall: add register hint to loop counters * stress-wcstr: constify wide string function pointers * stress-wait: add missing line * stress-vm-segv: add missing space before { * stress-vm: add some constifications and add some parentheses * stress-verity: factor out variable rnd * stress-vecmath: add missing empty line * stress-vecfp: clean up some line white spacing * stress-vdso: make pointer sym const, add extra parenthesis on time expression * stress-tsearch: make pointers const * stress-tree: make variable median const * stress-timerfd: make variable r const * stress-itimer: make variables r and ret const * stress-sysfs: constify some variables * stress-sync-file: make variable offset const * stress-stream: constify some variables * stress-str: constify function pointers * stress-splice: Make variabls pipe_size and n const * stress-sparsematrix: constify some misc. variables * stress-skiplist: make variable v const * stress-shellsort: make variable temp const * stress-secretmem: make variable offset const * stress-rmap: make variable offset const * stress-rawdev: make variable offset const * stress-randlist: fix comment the describes the stressor * stress-procfs: make variable sz const * stress-pipeherd: make variable dt const * stress-personality: make variable p const * stress-opcode: constify a couple of variables * stress-msyncmany: make variable pattern const * stress-mlock: constify variable rnd * stress-loadavg: make variable t_end const * stress-ipsec-mb: constify some variables and minor code cleanup * stress-inotify: add parentheses to clarify logic * stress-hrtimes: make ns_adjust const * stress-file-ioctl: constify variables rnd and offset * stress-epoll: constify variable port * stress-enosys: reduce scope of pointer h * stress-dir: constify gray_code variable * stress-dentry: constify some variables * stress-cyclic: make some variables const * stress-cpu-online: make cpu const * stress-chroot: make dev static * stress-chdir: add some constifications * stress-cpu: constify some constant values * core-helper: implement stress_fs_type for OpenBSD * core-helper: implement stress_fs_type for FreeBSD * core-helper: fix cut-n-paste error in comment * core-helper: implement stress_get_meminfo for NetBSD * core-helper: remove debug info * core-helper: partially implement stress_get_meminfo for FreeBSD * core-smart: remove unnecessary empty smart helper functions for non-SMART builds * core-helper: move netbsd/freebsd sysctl helpers from core-vmstat.c * stress-bad-altstack: for munmap symbol to be fixed up before it is required * core-helper: add static helper stress_get_meminfo to get memory info * core-helper: extend stress_get_memlimits to return totalswap information * README.md: add another citation * Makefile: add -fma and -qoverride-limits icc optimization flags * Makefile: icc: enable various cpu specific optimizations * core-nt-store: restore HAVE_NT_STORE_DOUBLE * core-nt-store: add ICC compiler support for non-temporal stores * stress-hash: fix comment, add missing " * stress-sock: only close sfd if it was open * stress-sock: remove debug, checked in the wrong version with debug * stress-sock: simplify the ctrls fetching and free'ing * stress-bad-altstack: ensure ret is initialized * stress-chdir: clean up pedantic static analysis warning on chdir of null string * Manual. Update --pathological option documentation, add stressor names * stress-wcstr: voidify len2 and strdstlen unused function arguments -- Colin Ian King Tue, 27 Sep 2022 17:22:23 +0100 stress-ng (0.14.05-1) unstable; urgency=medium * Makefile: bump version * Debian/control: remove gold linker from build depends (Closes: #1019727) -- Colin Ian King Wed, 14 Sep 2022 11:59:59 +0100 stress-ng (0.14.04-1) unstable; urgency=medium [Alexandru Ardelean] * stress-sysinval: fix fstat/fstat64 compat check [Bryan W. Lewis] * stress-ng.h: harmonize header definition of stress_misc_stats_set [Camille Constans] * Fix buffer overflow if tty return width is zero [Fabrice Fontaine] * Makefile: fix build with kernel < 5.6 [Francis Laniel] * stress-regs: ppc64le: Fix compilation error for REGS_CHECK macro. [John Kacur] * stress-ng: stress-mmapmany: Remove deadcode * stress-ng: stress-dev: Fix test of open * stress-ng: stress-dev: Remove useless call to stress_dev_infos_opened * stress-ng: sparsematrix: Fix null check [Colin Ian King] * Makefile: bump version and code name * fast-test-all: add --vmstat 1 to show activity * Manual: update contributors * stress-procfs: workaround SIGSEGV/SIGBUS SH4 issues on 5.x * stress-sctp: remove unused variable msgs * stress-syscall: clean up a few more cppcheck style warnings * stress-syscall: fix always -ve return, return ret instead * stress-vecshuf: remove two redundant shuffles * stress-syscall: reduce scope of some variables * stress-sparematrix: compare i before using it as an index into array * stress-set: remove redundant assignments to variable ret * stress-atomic: voidify tmp to clean up cppcheck style warning * core-log: remove redundant continue statement at end of loop * core-helper: fix potential array overflow * stress-syscall: optimize shell sort comparison helper function * stress-syscall: re-order linux includes * stress-syscall: fix prctl calls for PR_GET_THP_DISABLE and PR_GET_TIMERSLACK * stress-syscall: check for KEYCTL_INVALIDATE being defined * stress-msync: fix data mapping, should be anonymous and not mapped to file * core-klog: scan for exceptions on the buffer buf, not on msg string * core-klog: disable code for non-linux builds * core-klog: add exceptions to ingore specific error messages * core-cache.h: disable ppc64 msync assembler * core-target-clones: Disable vector avx optimizations on older versions of gcc * stress-ng.h: check for failed lock acquire in inc_counter_lock * stress-yield: ensure residual is a signed integer for yielder computation * stress-syscall: add timeout check because alarm timer may be clobbered * stress-syscall: add yield points in wait spin loops * stress-aio-linux: remove fill of unused bufptr * core-log: remove inner scoped duplicated variable orig * stress-copy-file: handle cases where copy_file_range returns short copy lengths * stress-shm-sysv: don't exercise unaligned shmat with SHM_RND on FreeBSD * stress-syscall: fix accept4 HAVE_SYSCALL_ACCESS4 macro guard * stress-access: make stress_access_reap pid parameter a pid_t type * core-vmstat: FreeBSD should be reading vm.vmtotal and not vm.vmmeter * core-vmstat: remove NetBSD build for stress_get_cpu_ghz_average * core-vmstat: add NetBSD vmstat implementation * core-vmstat: add cpu user/sys/idle stats for FreeBSD * core-shim: use syscall for arch_prctl in preference to libc variant * stress-ng.h: add void in pr_lock_init prototype * stress-shm-sysv: move exercise_shmat to end of each test round * stress-syscall: fix pid == 0 child return from clone3 * stress-syscall: add clone3, rename sys_clone3 to shim_clone3 * stress-syscall: add rseq system call * stress-syscall: add execve system call and silence stdout/stderr * stress-syscall: add execve system call * stress-iosync: add missing : in pr_fail message * core-log: use pid as lock value, allows checking if spinlock owner is dead * stress-syscall: fix resource leaks * stress-mincore: don't exercise with huge range * Add lock_acquire failure checks in case of lockups * core-lock: add abort path on spinlock acquire * stress-syscall: add a few more system calls * stress-mincore: make vec a static to avoid any stack clobbering * stress-sigq: improve the keep stressing checks for better yielding * core-log: bail out if it takes more than 2 seconds to acquire spinlock * stress-sem-sysv: use unsigned int cast for semop size for DragonFlyBSD * stress-cyclic: add --cyclic-samples option to specify number of measurements to make * stress-kcmp: move declaration of mypid to clean up musl-gcc build warning * core-numa: add check for HAVE_LINUX_MEMPOLICY_H * stress-*: cast int32_t to uint64_t to match type of stress_check_range * stress-*: cast uint32_t to uint64_t to match type of stress_check_range * core-log: remove deprecated functions, make pr_lock_acquire static * stress-mincore: make function stress_mincore_expect static * stress-syscall: fix build failure on OpenWRT, rename stress_pidfd_open * README.md: move citation to correct place * stress-dentry: use shim_unlink rather than unlink * stress-syscall: clean up pcc warning about shadowed variable ret * stress-syscall: allocate linux dirents on heap rather than use stack * stress-syscall: use shim_rlimit_resource_t for rlimit id rather than int * stress-cpu: update normalized bogo-ops stats for callfunc * stress-cpu: force callfunc stressor method to perform deep nested calls on modified args * stress-dir: add some concurrent directory reading * stress-dentry: unlink non-existant files for more dentry look up failures * stress-access: add two concurrent file chmod+access child processes * stress-iosync: inform users that iomix is a better stressor for I/O testing * stress-ng: Fix bogo ops/sec (usr+sys time) stats when using getrusage * stress-syscall: make quotactl a Linux only system call test * stress-syscall: Fix OS X build failure, define xattr and lattr names correctly * Manual: Fix typo in syscall geomean2 entry * stress-syscall: remove symlinkat autodetection FIXME comment * Makefile.config: Add symlinkat build time detection * stress-syscall: remove FIX me comment on fstatat * stress-syscall: add lock/unlock around top 10 output * stress-numa: use %lu format specifier for unsigned long * stress-syscall: fix typo in fd name, fix build error * Makefile.config: Add build time check for fstatat * Makefile.config: Add test for sched_setaffinity, deprecate AFFINITY check * stress-exec: cast return from mmap to stress_pid_hash_t * * stress-malloc: disable aligned_malloc for OpenBSD * README: fix missing space * stress-enosys: remove SYS_sched_rr_stress_get_interval * core-log: add missing pr_lock_exited for non-locking variants * core-pragma: GCC pragmas for pop/push were added in 4.6.0, fix version * stress-syscall: Add new stressor to hammer a range of system calls * stress-mincore: add more mincore error checking * stress-io-uring: chek returned err rather than errno * stress-ng: only fetch backoff and ionice settings once * stress-ng: break stressor waiting code into smaller functions * stress-*: don't call pr_* with mutexes locked * core-log: improve locked logging primitives * stress-vecshuf: make stress_vecshuf_check_data static * core-helper: ensure hostname is free'd * stress-shm-sysv: free buffer on error return path * stress-zlib: cast DATA_SIZE to int to match assigned variable * stress-hash: use calloc for zero'd memory allocations * stress-hash: pre-allocate hash buffer, don't use stack based variable length array * stress-zlib: clean up some implict type casting issues * stress-cpu: add missing build time detection for complex sin/cos * stress-rawpkt: align buffer to 32 bit boundary for more efficiency * stress-opcode: using uint32_t type for opcode data * stress-sync-file: clean up implicit cast warnings on shim_off64_t and uint64_t * stress-readahead: add some explicit type casting for off_t, ssize_t type conversions * stress-mmapmany: make mappings a uint64_t pointer to avoid uint8_t to uint64_t conversions * stress-stack: make data a uint32 array to avoid type casting warnings * stress-sockdiag: families can be uint8_t instead of int, cleans up implicit cast warning * stress-sctp: cast sctp_sched to uint32_t * stress-lockbus: clean up overly pedandtic clang type cast warnings * stress-netlink-task: fix nlmsg_pid and nla_len types * stress-netlink-task: cmd should be uint8_t and not uint16_t * stress-af-alf: cast CMSG_DATA to uintptr_t to clean up pedantic warnings * stress-skiplist: use DEFAULT_SKIPLIST_SIZE for default skiplist size * stress-sem-op: cast -1 to size_t * stress-badaltstack: replace variable length array with fixed length array * stress-skiplist: replace variable length array on stack with heap allocated array * stress-ng/core-helper: add munging _ - strcmp, simplify stressor name finding * stress-ng: replace variable length array arglen with heap allocated array * stress-stack: replace variable length array with fixed length array * stress-shm-sysv: replace variable length array on stack with heap allocated array * stress-schedpolicy: replace variable length array on stack with heap allocated array * stress-numa: replace variable length array on stack with heap allocated array * stress-cyclic: replace variable length array on stack with heap allocated array * core-vmstat: replace variable length array on stack with heap allocated array * core-helper: replace variable length array on stack will heap allocated array * stress-sysfs: cast args->instance + 1 to uint64_t before multiplication * stress-udp: fix fd leak if stress_set_sockaddr_if fails * stress-sysfs: clean up static analysis overflow warning, make 50 a 50U * stress-dev: unlock spinlock on parport if ioctl fails * stress-copy-file: fix bytes_in/bytes_out check for preads * stress-futex: fix check for error or ENOSYS on futex_waitv * stress-sigfd: use correct size on mask * stress-sparsematrix: fix false positive warning on sparsematrix method overrun * stress-io-uring: fix incorrect index variable used in setting supported[] * core-perf: no need to report error return on failed locks, it's always -EINVAL * stress-sparsematrics: fix potential overflow on multiplication of sparsematrix_size * stress-procfs: set pollfd for ppoll call * stress-*: voidify ignored return from stress_get_setting call * stress-chmod: free mode_perms on error return path * stress-dccp: fix fd leak if stress_set_sockaddr_if fails * stress-udp: fix fd leak if stress_set_sockaddr_if fails * stress-exec: close fd if write fails, fixed fd leak * stress-fallocate: free mode_perms on error return paths * stress-sctp: fix fd leak if stress_set_sockaddr_if fails * stress-chattr: free flag_perms if mkdir fails * stress-sock: fix fd leak if stress_set_sockaddr_if fails * stress-swap: add check for mincore failure * stress-mcontend: fix double close on fd * stress-chmod: add zero check on mode_count to avoid % by zero warning * stress-bad-ioctl: fix calloc allocation failure, add a null check * stress-gpu: check for calloc failure on configs * stress-msync: use page_size for data size rather than sizeof(data) * stress-resources: remove tab in empty line * stress-mmapfork: voidify return from mmap, ignore it * Manual: clean up zlib options, add table formatting * stress-ng: disble warnings for vfork references * stress-exec: add vfork build time check, make stressor generic * stress-exec: add HAVE_CLONE checks to ensure clone is available * core-helper: deconstify getexecname pointer with strlcpy * core-helper: add stress_proc_self_exe to get path of executable * stress-getrandom: exerise libc getentropy() for more exercising * stress-mmapfixed: remove shim_msync ENOMEM check * stress-bad-altstack: add SIGILL handling and add #if defined checks * stress-ng: ensure checksum padding is zero and run_ok is set * stress-set: use shim_getdomainname * core-shim: add shim for setgroups to workaround size_t/int size arg * stress-ng.h: ensure futexes are aligned to 4 byte alignment * stress-str: voidify unused args for strcpy and strcat tests * stress-set: use INT_MIN for -ve setgroups size for EINVAL test * core-shim: fix 2nd arg to get/setdomainname enosys calls * stress-madvise: write out page sized data per write not pointer sized writes * stress-vecshuf: add missing __int128_t type check * stress-mmap: remove #if defined checks from retry label * stress-file-ioctl: move #endif to correct place * stress-exec: move linux #ifdef'd #endif to fix non-Linux build issues * core-helper: voidify unused paramater on stress_low_memory * stress-vecshuf: vector shuffling and permute stressor * Manual: add missing --oom-avoid option * stress-rdrand: scale rdrand rates to millions from billions * core-vmstat: fix swap and cache stats, now matches vmstat output * Add --oom-avoid option to try and avoid low-memory OOM killing * README.md: Add another resarch paper link * stress-madvise: Add MADV_COLLAPSE introduced in Linux 6.0 * README.md: Add another white paper URL * stress-sigrt: allocate pids array on heap rather than use stack * stress-sysinval: use macro for array size of stress_syscall_args * stress-switch: allocate pipe read/write buffer on heap * stress-fds: allocate file descriptors on heap before forking child * stress-sigpipe: replace variable length array with mmap'd memory * stress-seal: replace variable length array with mmap'd memory * stress-ping-sock: make ping packet sized a fixed size * stress-madvise: replace variable length arrays with allocated heap/mmap'd memory * stress-tmpfs: replace two variable length arrays with heap allocated struct * stress-ipsec-mb: add --ipsec-mb-jobs option, default to 256 * stress-ipsec-mb: attempt to use various aligned memory allocators * stress-ipsec-mb: replace viarable length arrays with heap allocated arrays * stress-sigsuspend: remove unused macro CACHE_STRIDE_SHIFT * stress-signest: cast size to intptr_t to clean up clang warning * stress-plugin: clean up some clang pedantic implicit type cast warnings * stress-cacheline: clean up some implicit casting warnings * stress-close: close a newly dup'd fd of stdout * stress-open: use dup to open a new file descriptor * stress-vecfp: initialize and store results using same type as vectors * stress-usersyscall: cast syscall return to long * stress-misaligned: make uint8_t * buffer ptr a uintptr_t to relax pedantic -Wcast-align warnings * stress-memthrash: put thread information in a heap allocated struct array * stress-memthrash: perform pointer arithmetic on uintptr_t value * stress-malloc: use size_t for malloc size and use MAX_MALLOC_BYTES macro * stress-apparmor: make array pids a fixed sized array * stress-vm-splice: mmap data array rather than use variable length array on stack * stress-enosys: allow int $80 to be called on clang builds * stress-dirmany: cast ptr diff to size_t to clear up pedantic clang warning * stress-dev: mmap buffer rather than using variable length page sized buffer on stack * stress-idct: make idct arrays fixed size of 8 x 8 * stress-inode-flags: use correct size_t for variable inode_flag_count * stress-icmp-flood: make array pkt a fixed sized * stress-dynlib: replace variable length array with fixed size * stress-set: don't use variable length arrays on the stack for hostname and longname * stress-set: cast size argument to size_t for setgroups call * stress-revio: remove unused macro REVIO_OPT_O_MASK * stress-resourced: don't mix declarations and code * stress-open: make open_count a size_t to clean up type conversion warning * stress-matrix: use DEFAULT_MATRIX_SIZE as the default matrix size * stress-matrix-3d: use DEFAULT_MATRIX3D_SIZE as default matrix size * stress-clock: make timer_fail and timer_id fixed sized arrays * core-arch: introduce STRESS_ARCH_X86_64 and STRESS_ARCH_X86_32 macros * stress-reboot: add NORETURN annotation and cast reboot params to int * stress-nop: add NORETURN annotation on stress_sigill_nop_handler * stress-vm: use stress-mwc32() for 32 bit random values, not the 64 bit version * stress-personality: replace variable length array with heap allocated memory * stress-msyncmany: mappings should be a uint64_t double ptr type * stress-randlist: remove unused macro * stress-quota: remove unused macros DO_* * stress-memrate: remove cast of variable i, not required * stress-pci: make variable length array a constant size of 4K * stress-mcontend: remove redundant array buffer * stress-str: replace variable sized arrays with pre-allocated buffer. Clean up type casting on funcs * stress-wcstr: replace variable sized arrays with pre-allocated buffer. Clean up type casting on funcs * stress-copy-file: add data filling and reduce copy-file chunks to 128 KB * stress-copy-file: replace seek/read with pread where possible * Makefile.config: add pread and pwrite build-time detection * stress-copy-file: replace variable length arrays with fixed sized buffers * stress-msync: replace a variable length array with mmap'd 1 page buffer * stress-mmap: cast return from syscall to uintptr_t before void * cast * stress-getdent: use getdent types for ptr and buf, fix inverted . filename check * stress-tlb-shootdown: use mmap'd buffer instead of variable length array * stress-get: use correct voidification type for syscall * stress-funccall: use inlined helpers for complex types, remove type conversion on put * stress-file-ioctl: make dedup buffer a fixed size * stress-file-ioctl: add explicit cast to struct field assignments * stress-sigio: declare variables first before executable statements * stress-af-alg: use size_t for sizes as these are used in array indexing and allocations * core-job: remove use of variable length array * stress-udp-flood: make udp buffer fixed size to remove need for variable length array * stress-userfaultfd: use MAX_USERFAULT_BYTES as the maximum limit for the size * core-shim: use #defined buffer size rather than const int * stress-ng: fix rusage and CPU consumed metrics * stress-ng: use double precision for u_time and s_time stats * stress-matrix-3d: move voidification after variable declarations * stress-memthrash: move voidifications after variable declarations * stress-mmapmany: declare max so not to assign max before other declarations * stress-prctl: declare page_anon before calling stress_set_proc_state * stress-resources: put sem code in local block * stress-sigpipe: assign s_args after buf is declared * stress-switch: declare prio before calling inc_counter * stress-udp: move ret declaration before statements * stress-urandom: assign ret after all the variables are declared * stress-loadavg: assign buf after all variables are declared * stress-inotify: move voidification to avoid mixing declaration and code * stress-file-ioctl: move declarations to avoid mixing declarations and code * stress-dnotify: move voidification after declarations * stress-crypt: move statement salt[1] = id to after delcarations * stress-close: move statement fd = -1 to after delcarations * stress-bad-altstack: move statement after delcarations * stress-mcontend: move statement after delcarations * stress-matrix-3d: move voidifications after declarations for strict C99 compliance * stress-matrix: move voidifications after declarations for strict C99 compliance * stress-cacheline: remove extraneous ; * stress-ng.c: Clean up some type casting and remove some extraneous ; * core-helper: move SUID_DUMP_* macros to where they are required * kernel-coverage.sh: add more exec stressor options * stress-exec: update --exec-max documentation * stress-sock: Fix memory leak on ctrls * stress-icache: need to keep PROT_EXEC when modifying the page * stress-vecfp: align vectors to 2048 byte boundary * stress-exec: add spawn fork method to use posix_spawn * stress-zlib: remove redundant final shift of v, it is not used * core-numa: Free nodemask, fix memory leak * core-cache: add shim_mfence implementations for ppc64 and sparc * README.md: add make clean to musl-gcc make example * core-shim: handle syscall to nice failing and retry with libc nice * core-klog: voidify return from snprintf * core-helper: constify stress_size_info_t fields * core-cache: use coding style for if/else code blocks * Makefile: should be removing core-perf-event.h not perf-event.h * debian/tests: add --metrics to fast-test-all * Makefile.config: fix typo: atomic_sto -> atomic_store_double * Makefile.config: fix typo: atomic_loa -> atomic_load_double * Manual: update contributors list * Manual: remove trailing whitespace * stress-exec: add parenthesis around expression to keep to stress-ng coding style * Manual: minor re-ordering of exec options, remove duplicated exec-method option * stress-exec: add an option to not call pthread * stress-vecfp: add vector floating point stressor --vecfp * stress-memthrash: remove HOT annotation from functions with TARGET_CLONES * Makefile: use ld-gold if it is available * stress-ng.h: Add parenthesis around constants * core-helper: move PAGE_4K* macros to core-helper.c * core-helper: move exit_status to core-helper, rename to stress_exit_status * stress-ng.h: remove stress_pstressor_info_t typedef * stress-ng.h: remove __sun__ externs, use shim wrappers for {get|set}domainname * stress-ng: replace switch statement with mapping table on exit status lookup * stress-ng: constify the pointer description * stress-cacheline: move val8 to inner loop scope * stress-cache: move variable declaration to inner scope * stress-ng: don't emit metrics on tests that don't have any * stress-ng.c: Add maximum RSS stats to --metrics output * stress-cpu: fix spelling mistake "const" -> "constant" * core-stressors.h: move STRESSOR macro and stressor names into core-stressors.h * stress-exec: re-work per-process context and stack allocation, add vfork * stress-exec: add fork method option to select the fork call to use * stress-vm: crank up optimization on read64 and write64 methods * stress-memthrash: rename swap32 to swap64 as it's swapping 64 byte hunks * stress-memthrash: add 128 byte chunk copying using 128 bit read/writes * stress-memthrash: add memory chunk swapping swap32 method * stress-ng.c: move stress_class_info_t from stress-ng.h * core-syslog.h: move syslog shims to new header, remove from stress-ng.h * core-cache.h: move cache specific structs and helper definitions to core-cache.h * core-pthread.h: move stress_pthread_args_t from stress-ng.h to core-pthread.h * core-pthread.h: move pthread shims from stress-ng.h to core-pthread.h * stress-bad-ioctl: use abstracted stress-ng locking * core-hash.h: move hash typedefs from stress-ng.h to core-hash.h * core-vmstat: move vmstat and iostat structs from stress-ng.h to core-vmstat.c * stress-ng.h: correct verification flag meaning in comment * stress-dev: move shim'd termios struct from stress-ng.h to stress-dev.c * stress-vm: move PRIME_64 from stress-ng.h to stress-vm * stress-ng.h: remove ppid field from per-stressor args struct * core-setting: add stress_set_setting_true helper to set bool settings to true * stress-malloc: add --malloc-zerofree option to zero memory before free'ing * stress-regs: bump gcc version to 8.0, on 7.5.x it runs out of spill space * stress-regs: bump gcc version to 6.0, on 5.x it runs out of spill space * stress-regs: only declare stash vars for required builds * stress-regs: rename cpu_regs to x86_cpu_regs and declare it only when required * stress-zombie: cater for systems that don't have getpgid * stress-regs: i386: don't check on v << 1, check ecx on v instead * stress-regs: add xmm8..xmm15 for SSE enabled CPUs * stress-regs: move mmx register code into helper function * stress-regs: add x86 mmx register exercising * stress-regs: Don't clobber frame pointer on ARM32 * stress-epoll: make minimum events zero rather than -ve * core-helper: remove include of sys/mount.h * core-shim: remove include of sys/mount.h * core-shim: add include of sys/pidfd.h if it exists * stress-reg: add yield point to bail out early of register checks fail * stress-regs: add register value sanity checks * stress-regs: add i386 verification, move stash to stash32 and stash64 * stress-regs: add verification, x86-64 and generic cases * stress-regs: fix stressor help information, was cut-n-pasted * stress-regs: cast v to 32 bit value before use for MIPS324R2 * stress-regs: add ARM (32 bit) implementation * stress-regs: add ARM64 (aarch64) implementation * stress-regs: add MIPS32R2 implementation * stress-udp: fix build failure when UDP_GRO is not defined * stress-regs: sh4: include all the registers for final sum * stress-regs: add 32 bit register sh4 implementation * stress-regs: ensure i386 is using 32 bit registers * stress-regs: ensure m68000 is using 32 bit registers * stress-regs: add hppa PA RISC implementation * stress-regs: add MIPS64R2 implementation * stress-regs: add sparc implementation * stress-regs: add ppc64 implementation * stress-regs: add alpha implementation * stress-regs: add RISC-V implementation * stress-regs: add m68000 implementation * stress-regs: add i386 implementation of regs shuffling * stress-regs: remove trailing \ in macro to fix build error * stress-regs: add register exercising stressor (gcc only) * stress-exec: force large environment E2BIG exercising * stress-*: Enable target clones for clang-14 * stress-vm: fix ptr128 increment error, should stide by +4 rather than +1 * stress-vm: make wrrd64 into a 128 bit variant, rename method * stress-exec: add execve method option to select the execve call to use * stress-icache: break out common code into helper functions * stress-vm: rename nt-write to wrrd64nt and try to use non-temporal reads * core-nt-load: load arg should be addr, fix it. * stress-malloc: declare variable n at the correct place * Add clang non-temporal load shims * stress-vm: add non-temporal memory hammering method nt-write * stress-vm: add in a missing mb between writes * stress-malloc: add posix_memalign, aligned_alloc, memalign allocators * stress-userfaultfd: check if posix_memalign is available * stress-ng: remove g_pgrp, replace with main_pid * stress-*, core-*: remove use of setpgid, it doesn't do anything useful * stress-udp-flood: add error checking on stress_set_sockaddr_if call * stress-udp: break client/server code into helper functions * core-net: update stress_set_sockaddr_if to return error and use stressor pid * stress-vm: remove unused variables * stress-hdd: fix missing baddata check to see if data is correct * stress-ng: remove unused variable cpu * core-smart: remove unused variable n * stress-ng: move pid field into stats struct, removes need for pids array * stress-udp: use unique port for each instance * stress-sctp: use unique port for each instance * stress-rawpkt: use unique port for each instance * stress-dccp: use unique port for each instance * stress-sock: use unique port for each instance * stress-sock: ignore ECONNRESET as reportable failure on sends * stress-sock: add SO_RESERVE_MEM socket option * stress-fanotify: Add Linux 5.18 FAN_REPORT_TARGET_FID flag * stress-prctl: exercise PR_SET_VMA * stress-fanotify: add Linux 5.17 FAN_RENAME flag * stress-close: handle failed close_range correctly, add open on fd 0 * stress-open: open /proc/self/fd/0 on linux systems * stress-open: optimize open flags and fix close_range close error check * Avoid redefining _FORTIFY_SOURCE * stress-plugin: remove DONE debug message * stress-plugin: add --plugin stressor to allow user code stressing via shared libs * stress-open: add a --open-max N maximum limit of open files * stress-quota: Fix wrong arguments order in shim_quotactl_fd() -- Colin Ian King Tue, 13 Sep 2022 22:22:22 +0100 stress-ng (0.14.03-1) unstable; urgency=medium [Colin Ian King] * Makefile: bump version and update code name * stress-sctp: voidify sctp_sched param for systems that don't use it * stress-rtc: declare timeout if select is supported * stress-rtc: declare rfds if select is supported * core-shim: handle punch hole fallocate ops on unsupported systems as a no-op * stress-cacheline: only declare affinity changing helper if affinity is available * stress-pipeherd: add O_DIRECT build time detection * Fix build failure on systems w/o O_DIRECT defined * stress-zlib: disable TARGET CLONES for bcd, it segfaults gcc 8.3.0 x86-64 * stress-smi: enable SMI register clobbering for x86-64 only * stress-tun: cast to correct type on bind call * README.md: Add another citation * stress-ng: remove extraneous fflush call * stress-dev: initialize try_failed to clear up stupid cppcheck warning * stress-close: only declare fd_rnd if is is required * core-helper: move scope of variable i to inner scope * stress-vm: alias array of uint64_t vars with vector, clean up cppcheck warning * core-numa: sscanf for unsigned int, use correct type for val * stress-pipeherd: enable packet mode on pipe for more context switching * kernel-coverage: add a few more mount options for more kernel test coverage * README.md: rename libgcrypt11-dev to libgcrypt-dev * stress-io-uring: report ENOMEM failure on io-uring setup * stress-cache: clear up cppcheck style warning * kernel-coverage.sh: Fix truncated xfs invocation * stress-apparmor: remove unused variable ret * stress-*: introduce inc_counter_locked; locked counter read and optional increment * stress-ng.h: Add missing space in VOID_RET macro * stress-epoll: ignore SIGPIPE signals * stress-epoll: remove get/set counter calls * stress-epoll: add child alarm handler to exit child immediately * stress-epoll: send SIGALRM to inform processes to terminate * stress-epoll: add --epoll-sockets N option to set maximum number of open sockets * stress-epoll: limit number of open socket fds to 4096 * stress-oom-pipe: allocate page sized buffers with mmap and fds with calloc * stress-oom-pipe: fix out of bounds access on buffer on write * Manual: use x symbol rather than x for multiply, fix typos * Manual: use up-arrow symbol instead of ^ * stress-ng.h: Add stress_set_mbind prototype * Add NUMA --mbind option * stress-memcpy: declare builtin wrappers if builtin functions are available * stress-gpu: add --gpu-devnode DEVNAME option to specify device node * README.md: clarify stress-ng name, add sh4 and Serenity OS to notes * stress-rmap: remove shared counters, optimize memory filling * stress-sigsuspend: use lock protected counter rather than per-child counters * stress-iomix: use lock protected counter rather than per-child counters * stress-memcpy: add methods naive_o1, naive_o2 for -O1, -O2 optimization levels * stress-apparmor: return EXIT_SUCCESS on successful completion * stress-dirdeep: handle cases where number of free inodes is reported as zero * stress-apparmor: keep retrying with corrupted apparmor data * stress-apparmor: removed shared memory for counters, use lock protected counter * kernel-coverage: add overlayfs * kernel-coverage: add exfat * kernel-coverage: add cacheline + affinity changing * stress-cacheline: add cacheline-affinity option * stress-mcontend: cache align buffer for minor performance improvement * stress-zero: exercise FIONBIO on /dev/zero * stress-dirmany: autoexpand filename to maximum allowed length * stress-handle: break allocatiom/open assign and check into multiple statements * stress-zlib: make some vars registers and clean up some white spaces * kernel-coverage: fix typo with stream index option, should be 3 and not 3A * stress-io-uring: fix build failures * stress-io-uring: add an xattr opcode for more test coverage * stress-kvm: handle EINTR more gracefully on ioctl calls * TODO: remove cacheline todo item * stress-io-uring: fix stressor: make ring 256 elements, memset output and using O_DSYNC * stress-chattr: sync chattr metadata to disk * stress-cacheline: clean up some cppcheck style warnings * stress-inode-flags: add fsync on file to force inode metadata updates * stress-open: add periodic syncs to force metadata to disk * stress-dirmany: force sync of metadata to disk for more I/O activity * stress-chmod: add sync call to ensure meta data is flushed to disk * stress-link: force sync to ensure metadat is written * stress-dirdeep: add sync to force metadata writes * stress-dentry: add sync call to ensure meta data is flushed to disk * kernel-coverage: add sync'ing on utime stressor * stress-chown: sync fd metadata to force more inode updates * stress-resched: clean up warnings for systems that don't support sched_setsceduler * Add build time detection for the syscall interface * stress-sysbadaddr: add itimer itimerval built time detection * stress-fanotify: add select build time detection * stress-resched: add detection of sched_setscheduler * Add select build time detection * test/test-pselect: disable pselect false positive for Serenity OS * stress-cpu/zlib: add drand, lrand and srand build time checks * stress-cacheline: set default cacheline size correctly * stress-*search: add build time check for searching functions * Add build-time check for key_t type for system V semaphores * stress-sysbadaddr: add get/setitimer build timer detection * stress-itimer: add get/setitimer build time detection * stress-dev: define O_DELAY as 0 if it is not defined * stress-iomix: cater for systems that don't support O_SYNC open flags * stress-sigsegv: don't check SEGV_ACCERR if it is not defined * stress-ng.h: undef ALWAYS_INLINE before redefining it * core-sched: stress-schedpolicy: add Serenity OS workarounds * kernel-coverage: taskset to CPU 0, run many instances on it * kernel-coverage: add iostat to get I/O stats during test run * stress-epoll: silently ignore EINVAL for sh4 * stress-fork: ensure vfork exits immediately and deprecate --vfork-vm option * stress-cacheline: add adjacent byte read exercising and byte copying methods * stress-cacheline: l1_cacheline_size is now size_t, so use %zd format specifier * stress-cacheline: add an atomic increment method * stress-cacheline: break cacheline exercising code into methods * core-vmstat: add missing colon after name of stat info name * stress-*: add missing colon after stressor name for "using stressor" method info * stress-cacheline: share cache data among all stressors * stress-cacheline: add a mix of different read/write patterns * stress-cacheline: add more store/read contention across cache line * stress-open: fix spelling in a comment, the the -> the * Manual: replace "the the" with "the" * stress-cacheline: add verify always tag since this does verifcation by default * stress-dirdeep: Fix incorrect indexing into directory array * stress-cacheline: change class to cache class since it exercises cache * stress-ng: rename duration to run_duration to avoid name shadowing * stress-cacheline: exercise a cacheline between processes * core-vmstat: resolve block stats device for /dev/xxNNN by removing N digits * stress-syncload: truncate sleeps to microsecond accuracy * stress-syncload: remove jitter and use one sleep for delay * docs: Fix a few typos * stress-cpu: add deinit settings in return paths of stressor * Manual: use multiply sign instread of x for multiply * stress-peterson: remove empty line * core-vmstat: remove debug. * core-vmstat: add auto sleep adjustment to ensure we don't skew sleeps * core-log: always report warnings, and warn if test succeeded but terminated early * debian/tests/fast-test-all: add klog checking * stress-sigfpe: define and check STRESS_CHECK_SIGINFO for SA_SIGINFO test * stress-sigfpe: silently ignore invalid error codes for HPPA * stress-zlib: rename xsum -> checksum * stress-copy-file: remove debug * stress-copy-file: handle EOF reads correctly * stress-ng: make start time for duration measurement start at fork time * stress-ng: make premature time slop a bit longer * stress-ng: add zero bogo-ops sanity checks for runs > 30 seconds * core-log: add warn message type PR_WARN * stress-ng: add some slop to duration of run * stress-ng: add a warning if a stressor finishes prematurely * core-target-clones.h: add Intel cooperlake target clones directive * stress-zlib: fix brown noise unrolled loop * stress-fork: add more madvise random options for --fork-vm option * TODO: add caching item to todo list * stress-ng: metrics: split out misc. metrics from bogo/ops metrics * stress-zlib: pass buffer as uint64_t start/end pointers, add some optimizations * stress-swap: initialize swap_info.last_page more efficiently * stress-mq: fix counter initialization, should be outside of loop * stress-vm-segv: remove redundant check if pid == 0 * stress-sysfs: remove redundant check if pid == 0 * stress-stackmmap: remove redundant check if pid == 0 * stress-shm: remove redundant check if pid == 0 * stress-shm-sysv: remove redundant check if pid == 0 * stress-ramfs: remove redundant check if pid == 0 * stress-filename: remove redundant check if pid == 0 * stress-enosys: remove redundant check if pid == 0 * stress-efivar: remove redundant check if pid == 0 * stress-bad-altstack: remove redundant check if pid == 0 * core-out-of-memory: remove redundant check if pid == 0 * stress-open: initialize open flags with open default flag values * TODO: remove inode consumer, this is performed in dir* stressors * Makefile.config: clean up SYSV config annotations * stress-dccp: add protocol not supported socket error check on server * stress-dccp: add protocol not supported socket error * stress-set: move pid to local scope * stress-aio-linux: ensure iov is nullified on allocation failure * stress-fault: remove redundant assignment to fd * core-helper: voidify filename in stress_fs_type * stress-sctp: clean up some warnings on OS X * README.md: add another kernel issue found by stress-ng * core-helper: fix build failure * stress-file-ioctl: exercise FICLONERANGE with invalid parameters * stress-file-ioctl: exercise FICLONERANGE with random offset and sizes * stress-sock: move ALIGN64 hint to correct place in declaration * stress-memcpy: use wrapper on builtins to avoid passing them as a function ptr * stress-*: report file system type in file based failure messages * core-helper: add functions to determine underlying file system type name * stress-futex: silently ignore EINTR on a wait * stress-zlib: cache align buffers * stress-vecwide: cache align vector variables * stress-tee: align data buffers to cache boundary * stress-sockmany: make data cache aligned * stress-sock: cache align recv/send structures * stress-sctp: make data cache aligned * stress-rawsock: make raw packet cache aligned * stress-pipe: allocate pipe buffer with mmap, keep it page aligned * stress-ping-sock: align data to cache boundary * stress-null: align data to cache boundary * stress-mutex: align futex to cache boundary * stress-key: align data to cache boundary * stress-icmp-flood: align packet to cache boundary * stress-full: align data buffer to cache boundary * stress-udp-flood: align data buffer to cache boundary * Manual: use lB2 format specifier rather than lBw(8n) * stress-memcpy: workaround gcc 8.3.0 segfault on memmove * stress-ng: ensure all stressors get SIGALRM on terminate signals * stress-memcpy: enable verification on each memcpy/memmove operation * stress-get: move pid_t variable pid to more local context, clean up icc warning * stress-smi: add register clobber checks for SMI calls * core-ignite-cpu: keep minimum freq same as max freq, crank to C0 via /dev/cpu_dma_latency * stress-fcntl: define F_GETOWNER_UIDS for linux if not defined * stress-pty: fix HAVE_TCGETATTR check, remove extraneous D * stress-pty: add some mission ptr ioctls for more kernel coverage * stress-rtc: toggle on/off RTC_AIE_*, RTC_PIE_*, RTC_UIE* ioctls * stress-dev: add block ioctl BLKGETDISKSEQ * stress-rawpkt: exercise setsockopt options for more kernel coverage * stress-rawpacket: issue invalid sockopt option for more kernel test coverage * stress-rawpkt: cater for different TPACKET hdr versions * kernel-coverage: use udp lite for ipv4 and ipv6 * stress-dirmany: print "0 bytes" rather than "0.0 bytes" for file size * kernel-coverage: add sctp scheduler options for more test coverage * stress-sctp: add sctp-sched option to specify SCTP scheduler * stress-sctp: add more socket options, add build time checks for sctp types * stress-procfs: add ppoll for more kernel testing * stress-aio-linux: add async preadv and pwritev commands -- Colin Ian King Wed, 20 Jul 2022 18:13:23 +0100 stress-ng (0.14.02-1) unstable; urgency=medium [Aleksandar N. Kostadinov] * README.md: alpine and container instructions * build container image [Dorinda Bassey] * stress-gpu: Add GPU stressor [Iyán Méndez Veiga] * Enable getrandom test on FreeBSD [Mayuresh Chitale] * stress-malloc: Fix for issue #201 [Colin Ian King] * Makefile: bump version and drop O3 to O2 * README.md: Add another paper citation * core-log: use VOID_RET on fwrite returns to clean up warning on Oracle Linux * stress-splice: voidify unused arg fd * stress-mlock: handle EPERM failure on Solaris * stress-get: voidify pid to clear up Nixos build warning * stress-memfd: cater for EINVAL on some BSD flavours * stress-sem-sysv: remove size_t cast on semop arg -1 * stress-fork: don't touch VM in vfork mode * stress-schedpolicy: undo voidify on schedpolicy call * test/test-builtin-bitreverse: access variables to clean up cppcheck warning * stress-swap: move variable ret to a deeper scope * stress-shm-sysv: move variable ret to a deeper scope * stress-dentry: move variable ret to deeper scope * stress-copyfile: move variables n, bytes_in, bytes_out to deeper scope * stress-binderfs: move ret to deeper scope * core-helper: add little endian check and 32 bit endian swapping * stress-rdrand: fix missing __ before volatile * Makefile.config: add extra check for compilation and linking * snapcraft: add in more dependencies * Makefile: define header variables for required dependencies * stress-fiemap: declare counter_lock only when it is required * stress-affinity: declare counter_lock only when it is required * stress-set: setgroups size arg maybe int or size_t, use int as type * core-*: use VOID_RET for return voidifications * stress-*: use VOID_RET for return voidifications * debian/control: add gpu stressor debian library dependencies * core-shim: constify stime prototype argument * stress-ng.h: move VOID_RET from stress-sockabuse to main header * Makefile: redirect apparmor parser output to /dev/null * stress-sigpipe: remove return from no-return function * core-out-of-memory: clean up name shadowing warning on variable ret * Clean up some more tcc warnings, minor changes * core-io-priority: return int from stress_get_opt_ionice_class on exit() * stress-ng: disable fortified source #define for tcc * stress-quota: minor type conversion clean ups * stress-splice: make flags unsigned int, clean up type warnings * stress-zlib: clean up some implicit type cast warnings * stress-zlib: annotate non-return function with NORETURN * stress-tree: fix for-loop initializer for i, replace ; with , * stress-timerfd: clean up some implicit type cast warnings * stress-tee: clean up some implicit type cast warnings * stress-syncload: clean up some implicit type cast warnings, make a bool static * stress-sockdiag: clean up some implicit type cast warnings * stress-set: clean up some implicit type cast warnings * stress-sem-sysv: clean up some implicit cast warnings * stress-seccomp: clean up implicit cast warnings, remove unused macro * stress-resources: cast size to off_t, add some struct padding * stress-fanotify: add Linux 5.19 FAN_MARK_EVICTABLE * core-out-of-memory: pass the error status back to parent * stress-switch: ensure sem_id is initialized to -1 * stress-swap: use uint32_t for swap size as this is the max limit * stress-rtc: clean up implicit type cast warning * stress-sparsematrix: clean up implicit type casts, optimize struct packing * stress-softlockup: add parentheses to mark code as explicitly dead * stress-sock: cast -1 to socklen_t in setsockopt call * stress-sigsegv: use uintptr_t cast for pointer math * stress-secretmem: make offset variable sz an off_t * stress-resched: clean up type cast warnings * stress-randlist: clean up casting issues, use mwc random numbers * stress-prefetch: clean up implicit cast warnings * stress-opcode: clean up unused macro warnings * stress-wait: rename _ prefixed function, prefix it with syscall * stress-vm-rw: use macro MAX_VM_RW_BYTES, cast pointers to void * * stress-vforkmany: remove redundant goto after exit call * stress-vecwide: clean up implicit type cast warnings * stress-usersyscall: clean up implicit type cast warnings * stress-unshare: fix type of clone_flag_count, it should be size_t * stress-zlib: use __asm__ __volatile__ instead of asm volatile * stress-smi: clean up implicit type cast warnings * stress-clone: remove macro CLONE_STACK_SIZE and break statement * stress-ptrace: clean up implicit type cast warnings * stress-prctl: fix implicit type conversion warnings * stress-physpage: clean up implicit type cast warnings * stress-pageswap: clean up pedantic build warnings * stress-null: cast uint32_t from random value to int * stress-mutex: make mutex variable static * stress-msyncmany: clean up some implicit type casts * stress-exec: don't use execve for absolute path without full path prefix * stress-ng: make --exec-exit exit with success * Makefile: don't limit inlining max sizes for ICC toolchain * stress-open: remove inline from two helper functions * stress-aio: remove inline from aio_fill_buffer * stress-bad-altstack: remove inline from stress_bad_altstack_force_fault * stress-numa: remove inline from single use helper function * stress-open: remove duplicated declaration of variable i, cleans up name shadowing * stress-touch: rename array touch_method to touch_methods * stress-x86syscall: clean up implicit cast warnings * stress-x86syscall: rename ___ prefixed array * stress-x86syscall: rename variables to remove _ prefix * stress-vm: use MAX_VM_BYTES for maximum VM limit size * stress-verity: remove __ prefix off reserved * stress-usersyscall: user __asm__ __volatile__ instead of asm volatile * stress-tsc: use __asm__ __volatile__ instead of asm volatile * stress-syncload: use __asm__ __volatile__ instead of asm volatile * stress-sigtrap: use __asm__ __volatile__ instead of asm * stress-reboot: exercise SHIM_LINUX_REBOOT_CMD_SW_SUSPEND with incorrect magic * stress-rdrand: clean up some implicit cast warnings * stress-rdrand: use __asm__ __volatile__ instead of asm volatile * stress-peterson: make peterson object static, move bools in struct to remove struct hole * stress-pci: add NORETURN attribute to handler that does not return * stress-nop: make some objects static, remove extraneous ; after macro * stress-msync: use MAX_MSYNC_BYTES for the maximum limit * stress-msg: cast size -1 to size_t * stress-mremap: use MAX_MREMAP_BYTES for limit, remove duplicated DEFAULT_MREMAP_BYTES * stress-mq: add explicit type cast for max_prio * stress-mprotect: clean up some integer type warnings on implicit casts * stress-mmapmany: cast ptr to void * for printing address * stress-mmaphuge: make size size_t to match mmap size argument * stress-mmapfixed: cast len to ssize_t to clean up implicit cast warning * stress-mmap: cast size parameter to off_t, clean up implicit cast * stress-mmap: use MAX_MMAP_BYTES for the maximum mapping size * stress-mmap: clean up shadowing of variable rnd * stress-mmap: clean up variable shadowing of variable ret * stress-mincore: remove redundant macro VEC_MAX_SIZE * README.md: Add another kernel optimization reference * Makefle: disable pedantic build warning * stress-memrate: cast i to int to clean up implicit cast warning * stress-memfd: clean up implicit cast on size and remove unused macro MAX_MEMFD_BYTES * stress-mcontend: use __asm__ __volatile__ for asm volatile * stress-memcontend: use shim_mb inline function for memory barrier * stress-malloc: cast addr to void * for printf %p format * stress-madvise: clean up some implicit cast warnings * stress-loop: rename __reserved to reserved to remove __ prefix * stress-lockofd: remove redundant macro LOCK_SIZE * stress-locka: remove redundant macro LOCK_SIZE * stress-loadavg: make instances same type as args->instances * stress-link: clean up implicit cast warnings * stress-itimer: clean up implicit cast warning * stress-iomix: clean up a handful of implicit cast warnings * stress-hrtimes: clean up some implicit cast warnings * stress-hdd: use uint64_t for offset rather than size_t * stress-hash: make hash_stats static, clear up implicit cast warning * stress-gpu: clean up some implicit casting warnings * stress-get: cast pid to id_t for getpriority call * stress-futex: use long type for nanoseconds to match timespec struct * stress-fstat: ensure unsigned flag parameter is correct type * stress-fpunch: clear up implicit cast warnings * stress-fpunch: add NORETURN annotation to handler that calls _exit * stress-fcntl: use size_t type for setfl_flag_count * stress-fanotify: use correct type for flags * stress-fallocate: use correct type for i and remove shadowed variable * stress-enosys: clean up syscall arg types and use __asm__ __volatile__ * stress-dirmany: remove unused macro DEFAULT_DIRMANY_BYTES * stress-dirmany: fix type of i_start parameter, should be uint64_t * stress-dirdeep: remove unused macro and cast int to a char * stress-dev: cast -1 to unsigned int * stress-dev: fix BLKROSET ioctl, missing fd and pass by ref * stress-cpu: clean up some implicit type casting warnings with explicit casting * core-builtin: case complex arg in shim'd csin/ccos to double * stress-cpu: rename _ prefixed macro with STRESS_ prefix * stress-copy-file: clean up some implicit type cast warnings * stress-clone: clean up some implicit type cast warnings * stress-chmod: make mode_count and mode_perms non-static * stress-chattr: clean up some type casting warnings * stress-cache: clean up some implicit type casts * stress-bad-ioctl: cast int to uint16_t to clean up implicit casting * stress-alarm: add explicit type casts to avoid any type conversion warnings * stress-aio-linux: add explicit type casts to avoid any type conversion warnings * stress-ng: include core-put.h for global put storage * stress-ng: use size_t for string pointer length * stress-ng: explicitly cast pid_t to pid arg in kill call * stress-ng.h: forgot to check in changes in statx and pkey_alloc shims * stress-affinity: move bools in struct for better packing * core-thrash: clean up some type warning issues * core-smart: add explicit type casts to avoid any type conversion warnings * core-shim/stress-pkey: add explicit type casts to avoid any type conversion warnings * stress-ng.h: make stats a flexible array rather than a zero length array * core-module: use correct type for flags parameter * core-locks: add ( ) around 0 to silence clang pedantic warning * core-helper: add explicit type casts to avoid any type conversion warnings * core-hash: add explicit type casts to avoid any type conversion warnings * stress-ng: use __asm__ __volatile__ instead of asm volatile * stress-ng.h: add some more struct padding * stress-landlock: add in some missing type casts * core-perf: replace _SNG_ macro prefix with STRESS_ * core-cache: remove need for variable sized arrays on stack * Makefile.config: add memory barrier asm build time support check * stress-ng.h: add struct padding to keep alignments naturally aligned * stress-ng: move two bools together to pack stress_stats_t more efficiently * stress-jpeg: tidy up some type conversion casting * stress-ng.h: add all args to deprecated function prototypes * stress-futex: zero futex with memset rather than set all fields * stress-ng.h: rename __ prefixed variables as these are reserved prefix chars * Manual: remove racy counter notes now that these are fixed * stress-malloc: clean up racy comment * stress-fiemap: replace racy counters with fast locking counters * stress-affinity: replace racy counters with fast locking counters * stress-malloc: replace racy counters with fast locking counters * stress-zlib: add a ror32 random data generator * core-helper: use register vars in stress_flag_permutation * core-helper: use builtin sqrt shim for prime computation * core-helper: optimize stress_uint8rnd4 a little more * stress-oom-pipe: fill pages so kernel page compaction works harder * stress-memfd: fill pages so kernel page compaction works harder * stress-dev: voidify function args for non-x86 builds * core-thrash: make fpmap non-clobberable by longjmp * stress-mprotect: cast ptr to void * to clean up OpenHipster warnings * stress-mmap: cast mmap return to uint8_t * to clean up OpenHipster warnings * stress-touch: remove the need for pthreads * stress-touch: use generic stress-ng locks rather than spinlock * core-lock: add more pthread mutex build time checks * stress-rawsock: remove PTHREAD dependency, move rawsock_lock * stress-mprotect: handle SIGBUS for OS X * core-thrash: implement no-op stress_pagein_self for non-Linux systems * stress-touch: use shim version of unlink * stress-open: use shim version of unlink and rmdir * stress-open: use open_arg2/3 helpers, remove debug * stress-ng: only destroy perf.lock if perf stats are enabled * README.md: Add NUMA performance regression link * core-helper: replace whitespaces with tabs * stress-memfd: allocate file space with fallocate * stress-resources: allocate memory using fallocate on memory fd * core-lock: add generic locking API * stress-inode-flags: clear all inode flags to enable tmp file deletion * stress-timerfd: add linux check to ioctl #define, use uint64_t as type * stress-dentry: remove empty line * stress-clock: move random seed setting to match stress-ng coding style * Manual: update contributors list * stress-zlib: add 5 bit GCR encoded random data method * stress-gpu: remove empty line * stress-gpu: use stress-ng variable declaration style * stress-gpu: minor formatting tweaks to match stress-ng coding style * stress-gpu: update copyright text * stress-gpu: some more failure checking clean-ups * stress-gpu: make egl_config_attribs static const * stress-gpu: re-work error handling messages to keep with stress-ng style * stress-gpu: constify some function args and make functions and objects static * stress-gpu: remove trailing space * stress-gpu: remove break in while loop for successful GPU bogo ops * stress-mmap: disable mmap random flags using mask * stress-sem-sysv: fix spelling mistake in comment * stress-xattr: exercise empty xattr value * stress-open: fix __NR_futimes syscall type, exercise more illegal tv values * stress-timerfd: exercise TFD_IOC_SET_TICKS ioctl * stress-dev: perform write of zero to page zero on /dev/mem * stress-splice: set randomly pipe sizes where possible * stress-splice: add random flag SPLICE_F_MORE, SPLICE_F_MOVE * stress-efivar: constify function arguments * stress-dev: constify function argument * stress-quota: constify function arguments * stress-pidfd: constify function arguments * stress-open: constify arguments * stress-netlink-proc: constify arguments * stress-l1cache: constify arguments * stress-touch: correct the copyright information * stress-ng: constify argument instance * stress-smi: Fix spelling mistake "MSI" -> "MSR" * stress-fallocator: remove debug printf * stress-nanosleep: clean up missing tab in table formatting * stress-icmp-flood: minor buffer + offset changes with const pointers * README.md: Add URL to Linux Foundation presentation * stress-touch: use shared memory for spinlock, fix locking issue; add all opts * stress-touch: handle EINTR on waitpid gracefully * stress-touch: remove empty line * stress-touch: add concurrency to exercise parallel touching in directory * Add touch stressor that open/create/closes/unlinks files rapidly * stress-mmap: handle SIGBUS for hugepage mappings * Add Linux Foundation Webinar slide deck (PDF) * stress-tlb-shootdown: add page writes to increase DTLB write misses * stress-zombie: move pid scope, re-use pid rather than head dereference * stress-zombie: use pid to check for process * core-thrash: add helper to pagein pages in a process, use this in fork stressor * stress-physpage: write to mmap'ing of the physical page if possible * README.md: use --stdout instead of stderr redirection * stress-chattr: exercise chattr flag permutations for more coverage * stress-sysinval: add more flag bits to flag arguments * stress-fcntl: exercise all SETFL flag permutations for more coverage * stress-unshare: remove tabs from empty line * stress-unshare: exercise all permutations of unshare clone flags * stress-shm-sysv: add some more shm mode flags * stress-fallocate: exercise all the permutations of fallocate mode flags * stress-clone: add check for zero clone permutations * stress-clone: exercise permutations of clone flags * core-helper: use unsigned int for flag shifting to avoid sign bit propagation * README.md: Add another issue found with stress-ng * stress-mmap: exercise all permutations of mmap flags for more coverage * stress-chmod: exercise all mode permutations for more coverage * stress-open: add *BSD and Solaris open flags for wider testing * stress-inode-flags: work through all permutations of inode flags * stress-open: exercise every open flag permutation * stress-mmap: ensure context.mmap_prot_perms is free'd if used * stress-mmap: exercise random protection flags * Usage rusage stats if they are available rather than times * stress-cpu: Fix comment, remove non-ASCII character * stress-cpu: normalized method cpu bogo ops for more consistent metrics * Manual: update contributors list * README.md: add libseccomp-dev for Alpine Linux * stress-schedpolicy: check for ENOSYS when setting policy * stress-sysfs: forceful kill using SIGKILL and not SIGHUP * core-shim: handle non punch fallocate workarounds * Add helper to generate bit flag permutations, use it in mprotect * README.md: update number of stressors * stress-mprotect: add mprotect stressor -- Colin Ian King Sun, 12 Jun 2022 12:09:02 +0100 stress-ng (0.14.01-1) unstable; urgency=medium [Alexander Kanavin] * Makefile: quote CC [Thinh Tran] * stress-rawsock: close recv socket once sender is closed [Colin Ian King] * Makefile: bump version * stress-jpeg: don't allocate row_pointer array on stack, use heap instead * stress-msyncmany: sanity check for null ptr * stress-sctp: remove shadowed variable ret * stress-zlib: fall back to stress_mwc64 if rdrand is not supported * stress-msync: cast address to void * to clean up build warning on OpenHipster * Add check for pthread_np.h as required for DragonFlyBSD * test-setmntent: clean up cppcheck style warning * test/test-endmntent: remove unused variable mount * stress-utime: use correct defines to check for verify * stress-utime: only declare variable verify when it is required * README.md: update Linux distro flavours * stress-mmapfixed: clean up build warning on unused variable page_mask * stress-madavise: voidify addr and size args * Makefile: add in Makefile.comfig build dependency * Makefile.config: disable FAST_MATH as this causes fp-error to regress * README.md: Add some more references to papers that use stress-ng * README.md: reference another academic paper * README.md: reference https://dl.acm.org/doi/10.1145/3519601 * README.md: remove extranous ] * README.md: add another kernel bug found with stress-ng * stress-sockmany: fix double "" build failure * stress-sockmany: add in missing --sockmany-if short help * stress-udp-flood: add in missing --udp-flood-if help * stress-rawudp: add --rawudp-if interface option to specify desired network interface * stress-udp-flood: add --udp-flood-if interface option to specify desired network interface * stress-udp: fix missing interface on socket setup * stress-sockmany: add --sockmany-if interface option to specify desired network interface * stress-sockabuse: fix help information, replace cut-n-paste help * stress-sctp: add --sctp-if interface option to specify desired network interface * stress-sock: return setting error status for --sock-if * stress-udp: return setting error status for --udp-if * stress-dccp: add --dccp-if interface option to specify desired network interface * core-net: remove deprecated helper stress_set_sockif * stress-sock: add --sock-if interface option to specify desired network interface * stress-udp: add --udp-if interface option to specify desired network interface * stress-rawsock: start recv only once all senders are up and running * stress-vm: add forward and reverse memory exercising, fwdrev method * stress-resources: add mutex create/destroy resource usage * stress-ng.h, stress-version.h: Add ICC support for alignment hinting * stress-jpeg: fix bitwise & on bits of RGB brown noise * Add clang builtin bit reversal build time checks * core-bitops.h: Add reverse64/32/16/8 integer reversal functions * Manual: update mmapfixed manual to reflect the new range mremappings * stress-mmapfixed: walk through a large address range based on random start * Makefile: remove trailing space * stress-jpeg: add brown noise source image type * stress-utime: add check for struct utimbuf and utime() * Add build-time checks for endmntent and setmntent * Makefile.config: re-format dependencies * stress-jpeg: use builtin shim wrappers for math functions * stress-cpu: use builtin roundl where possible * stress-cpu: use shim_exp and shim_log in stress_cpu_explog() * stress-cpu: use builtin cexp if it exists * Add FAST_MATH check for -ffast-math compiler option * stress-jpeg: clean up some spacing/table formatting * stress-zero: remove some empty lines * core-vmstat: run vmstats with real time deadline scheduling where possible * stress-rawsock: check keep stressing state before each send/recv * stress-rawsock: stagger start time of instances to reduce lockup races * stress-rawsock: make client wait for server to start * Makefile: rename verbose V and quiet Q prefix variables to PRE_V and PRE_Q * Update copyright on various source files * stress-zlib: add fast Lehmer random number generator * stress-mutex: swap order of options help around * stress-mutex: add --mutex-affinity option to enable random CPU affinity setting * stress-cpu: add div8 and div128 division cpu stressor methods * stress-signest: only dump out signal stats on instance 0 * stress-zlib: remove duplicated table of random data generators * stress-zlib: add a rdrand random data generator method * stress-madvise: don't poison zero pages that are in-core * stress-ng: log how stress-ng was invoked with -v verbose mode * stress-loop: constify loop_attr * stress-jpeg: make quality parameter const * stress-jpeg: make constants double, make row_stride const * stress-jpeg: rename 2 * pi as tau, use M_PI for pi constant * stress-usersyscall: make libc_path larger to avoid potiential overflows * stress-pthread: use && instead of & bit-wise operator * stress-klog: use || instead of bitwise operator * stress-loadavg: use && instead of bitwise & operator * core-thrash: make prot array larger to avoid sscanf overflow * stress-af-alg: ignore deprecated skciper ecb(arc4) * Add the msyncmany stressor * stress-cache: add --cache-clwb (cache line writeback) option * core-vmstat: call _exit() on vmstat termination * stress-mutex: add priority inheritence on mutex * Add a pthread mutex stressor --mutex, --mutex-ops and --mutex-procs options -- Colin Ian King Thu, 5 May 2022 23:45:24 +0100 stress-ng (0.14.00-1) unstable; urgency=medium [Mike Koreneff] * fix ipsec avx feature selection [Colin Ian King] * Makefile: bump version and update codename * stress-jpeg: add build time detection for open_memstream() * test/test-libjpeg: remove variable row_stride * stress-jpeg: reduce scope of variables t1 and t2 * stress-funcret: add a helper function to set variable data * stress-vm: clean up some static analysis pedantic warnings * stress-sockfd: clean up pedantic cppcheck warning * stress-jpeg: add --jpeg-image option to select source image type * README.md: Update library dependencies, add libjpeg * stress-jpeg: clean up some whitespace/tab indentations * Add more compiler version detection smarts. * stress-jpeg: make jpeg stats debug only * Makefile.config: fix typos in function names * stress-jpeg: Add jpeg compression stressor * stress-cpu: Replace another unicode char in comment with - * Add two more CPU loading mechanisms * stress-open: ensure openat/openat2 open file in the temp path * stress-inode-flags: remove empty line * stress-env: remove blank line * stress-dnotify: add in empty line * stress-tsearch: clean up conditional formatting * stress-chroot: clean up formatting of test_chroot_test_funcs * stress-apparmor: remove some blank lines * REAME.md: add another kernel fix to issues found by stress-ng * stress-cpu: add some branch optimization hints with LIKELY() * stress-dekker: add LIKELY hints * stress-cache: add LIKELY annotation on loop bounds check * stress-cache: add --cache-enable-all to enable all cache exercising options * stress-cpu: Replace unicode char in comment with - * stress-physpage: make functions static * stress-peterson: make functions static * stress-dekker: make functions static * stress-urandom: exercise off-page reads of /dev/random * stress-netlink-task: cast pointer to char * for pointer arithmetic warning fix * stress-landlock: cast argument to enum landlock_rule_type * Add build time check and a shim for enum __rusage_who_t * Add build time check and a shim for enum __ptrace_request * Add build time check and a shim for enum __pid_type * Add build time check and a shim for __itimer_which_t * Add build time check and a shim for __priority_which_t * Add build time check and a shim for __rlimit_resource_t * stress-sparsematrix: workaround clang warnings on JLFA macro * stress-peterson: cast return from mmap to clean up Solaris build warning * stress-dekker: cast return from mmap to clean up Solaris build warning * stress-ng: add workaround for setdomainname on Solaris * stress-ng: add workaround for getdomainname on Solaris * stress-madvise: cast buf to void * to clear up solaris build warnings * core-klog: fix build warning on unused variable for non-Linux builds * Makefile.config: check for sys/capability.h with test-cap test * stress-madvise: only print raced frees if MADV_FREE is defined * Makefile.config: fix tpause and pause instruction checks * Makefile.config: use makefile targets for each config check, speeds up config checking * stress-dev: avoid tty ioctls on /dev/ndctl devices * stress-utime: fix build failure; missing ; * stress-dev: avoid tty ioctls on /dev/nmem devices * stress-dev: pass size by reference for BLKBSZSET ioctl * stress-dev: fix misuse of TCOOFF, TCOON, TCOIOFF, TCION args * Makefile.config: add more CPU specific information for specific target clones * stress-utime: use system call for utime in preference to libc call * stress-quota: skip stressor if no quota enabled filesystems are found * stress-peterson: don't inc counter in p0 * stress-dekker: don't inc counter in p0 * stress-dekker: fix grammer in the short help information * Add the Peterson Algorithm stressor, --peterson, --peterson-ops * Add Dekker Algorithm stressor, --dekker, --dekker-ops * stress-lockf: remove some empty lines * stress-ng: add YAML open/close helper functions * kernel-coverage: add --klog check to sanity check for kernel splats * Makefile: add --klog-check to make slow-test-all rule * stress-ng: rename stress_get_pagesize to stress_get_page_size * stress-ng: call stress_get_pagesize just once * stress-ng: break overly long message into a few lines * stress-ng: move successful run message to later in termination phase * core-klog: use global shared flag so child can indicate error to main parent * core-klog: flag an error for stress-ng exit() when klog errors are detected * core-klog: prefix messages with klog-check: so they can be easily found * core-klog: make Out of memory message a warning * stress-madvise: move goto label to start of a statment * core-klog: use continues instead of gotos * Add --klog-check, a simple kernel log error checker * stress-madvise: add racy madvise/read checks * core-helper: bump minimum stack size for signal handlers to 64K * Manual: remove extraneous word, no major change * stress-tmp: exercise minimal xattr set/remove on tmp file system * stress-ng: silently ignore SIGALRM terminations in debug * README.md: Add ClearLinux library dependencies * Remove mtrr from TODO now that this is covered * stress-physpage: Add mtrr add/del on physical page for x86 * stress-dirdeep: don't print 2^64-1 inodes when we don't know how many are available * TODO: Remove floppy disk ioctls * stress-dev: reorder device entry checking, keep cdroms together * test/test-libxxhash: return hash value, clean up clang scan warning * stress-dirdeep: remove duplicated shadow'd declaration of variable ret * stress-pipe: fix name shadowing on variable pid * stress-dirdeep: add --dirdeep-files and --dirdeep-bytes options * stress-dirmany: add a file size option --dirmany-bytes * stress-dev: add in block device BLKBSZSET ioctl * stress-dev: add block ioctls BLKRASET, BLKFRAGET, BLKFRASET, BLKROSET * README.md: update commit sha for minix file system bug report * core-ignite-cpu: try to maximize intel-pstate cpu freqs * core-ignite-cpu: add energy_perf_bias setting * stress-longjmp: remove { } brackets * stress-ng: Fix SIGINT sending alarm signal to all stressors * stress-rawpkt: zero sadr to ensure struct is completely initialized * stress-rawpkt: add recv size sanity check before processing pkt data * stress-dev: remove duplicate floppy ioctls, add a couple more floppy ioctls * stress-prefetch: remove blank line * stress-dev: remove debug message * stress-dev: add first cut of simple floppy IOCTLS * core-target-clones: Add tigerlake, sapphirerapids and rocketlake target clones * Manual: update copyright for Colin Ian King * Manual: clean up grammar for the sparse matrix options * Manual: spell naive with nroff formatted double dotted i. * core-helper: add stress_get_open_count to find number of open files * Manual: fix missing comma between contributor names * Fix typo: smarg -> smart * Makefile: add uninstall make rule * stress-bind-mount: don't call _exit on SIGALRM * stress-resources: add yield point on dcache open resource for-loop * stress-pci: add more yield points for systems with many PCI devices * stress-fanotify: add out of file descriptor and out of memory failures * stress-bind-mount: add tmp directory removal * Update TODO list, add floppy disk ioctls to items to do * stress-dev: add two more CDROM ioctls * kernel-coverage: update copyright * stress-rtc: exercise illegal RTC ioctl * Manual: update contributors * kernel-coverage: increase sysfs coverage to 10 minutes * stress-sysfs: increase rate of sysfs files being exercised * stress-*: ensure boolean is assigned a boolean value * stress-pipe: exercise child's fd info for the opened pipe * stress-dev: exercise child's fd info for the opened device file * stress-efivar: exercise child's fd info for the opened file * stress-filename: exercise child's fd info for the opened file * stress-rtc: exercise RTC_PARAM_GET and RTC_PARAM_SET * kernel-coverage: enable memory thrasher for vm and brk stressors * stress-pci: remove white space and empty line * stress-file-ioctl: add FS_IOC_FSGETXATTR/FS_IOC_FSSETXATTR ioctls * stress-procfs: exercise invalid /proc/pci ioctl * stress-pci: attempt to read pci ROM via mmap * kernel-coveage: exercise UDP-GRO * stress-upd: add --upd-gro to enable Generic Receive Offload if supported * stress-shm-sysv: mlock/munlock 1st page of each mapping for more shm work * stress-shm: mlock/munlock 1st page of each mapping for more shm work * stress-kvm: add some more instructions into vm code * Makefile.config: remove debug make rules * stress-skiplist: add a level check to avoid static analysis false warning * core-ftrace: free object if RB_INSERT finds an existing matching node * stress-sparsematrix: free a new node if RB_INSERT finds existing value * stress-sparsematrix: reference object size by the actual type * stress-quota: replace memset with explicit setting of name and valid * stress-usersyscall: voidify return from syscall * stress-bind-mount: use shim wrapper for rmdir * Makefile: pass CC down to Makefile.config to allow clang scan build to work * stress-tree: replace spaces with tab in indentation * stress-dev: add some more CD-ROM ioctls for more coverage * stress-tree: add some more optimizations, ~8-15% faster btree * stress-tree: make btree functions static, manually inline node allocation * stress-tree: add a 31 node btree to the tree mix * stress-hsearch: add DragonFlyBSD notes on hdestroy semantics * README.md: move bug report to correct place in README * README.md: Add a Minix kernel bug found by stress-ng * README.md: Add a few more kernel fixes to bugs found by stress-ng * README.md: replace bug report URL with kernel commit SHA link * stress-madvise: add MADV_POPULATE_READ MADV_POPULATE_WRITE -- Colin Ian King Wed, 13 Apr 2022 08:41:14 +0100 stress-ng (0.13.12-1) unstable; urgency=medium [Maya Rashish] * stress-sysinval: correct typo timerfd_settime [Colin Ian King] * Makefile: add in core-vecmath.h to make dist rule * Manual: update date * Makefile: update version * Makefile: update code name to "refulgent coruscating seadragon" * core-shim: use system call for getcpu for S390x * stress-cpu: disable decimal math on s390x to avoid SIGILL * stress-usersyscall: check if user syscall mechanism is implemented * stress-sysbadaddr: include ptrace header * stress-sigsegv: only declare has_sse2 when it is required * stress-sysinval: cast return from mmap to clean up OpenHipster warning * stress-mmapmany: cast return from mmap to uint64_t * to clean up OpenHipster warning * core-vmstat: fix build warning in stress_find_mount_dev * core-vmstat: check for makedev/major macro include file * stress-dirdeep: check for null scanlist items * stress-dirdeep: don't exercise more inodes than those available * stress-zombie: voidify pid argument for non-linux builds * stress-sysinval: remove closed comment */ for getdtablesize * stress-radixsort: add in missing const in strcmp casts * stress-env: rename variable sz to env_sz to avoid name shadowing * stress-timer: remove blank line * stress-zombie: add zombie state check when --verify is enabled * stress-vm-segv: add simple test validation check * stress-usersyscall: add verify always flag since the inteface is being checked * stress-tee: add counter check to verify data is sane over pipes * stress-swap: add simple page check value to ensure swap works * stress-swap: add swap retries and measure swapped pages * stress-sparsematrix: add verify always flag * stress-sockpair: report system errors with pr_err rather than pr_fail * stress-sockmany: report system errors with pr_err rather than pr_fail * stress-sockfd: report system errors with pr_err rather than pr_fail * stress-sock: report system errors with pr_err rather than pr_fail * stress-sendfile: add verify flag, don't report system errors as failures * stress-sigsuspend: report system errors with pr_err rather than pr_fail * stress-sigrt: report system errors with pr_err rather than pr_fail * stress-sigq: report system errors with pr_err rather than pr_fail * stress-sigpipe: report system errors with pr_err rather than pr_fail * stress-sigio: report system errors with pr_err rather than pr_fail * stress-sigfpe: report system errors with pr_err rather than pr_fail * stress-sigfd: report system errors with pr_err rather than pr_fail * stress-sigchld: report system errors with pr_err rather than pr_fail * stress-shellsort: report system errors with pr_err rather than pr_fail * stress-sendfile: add verify flag, don't report system errors as failures * stress-rmap: report system errors with pr_err rather than pr_fail * stress-rlimit: remove a blank line * stress-radixsort: add optional sort order verification * stress-qsort: replace fail message on calloc failure with error message * stress-pidfd: add verify flag and replace a fail with an error message * stress-nanosleep: report error as an error not as a test failure * stress-mmapmany: add memory contents verification * stress-mmapaddr: indicate that verification is always on * stress-longjump: add a simple longjmp failure detection for verification * stress-lockofd: report system errors with pr_err rather than pr_fail * stress-lockf: report system errors with pr_err rather than pr_fail * stress-locka: report system errors with pr_err rather than pr_fail * stress-list: add verify flag since the lists are being santity checked * stress-lease: add one verification point on lease UNLOCK * stress-itimer: add verification of itimer signal handling * stress-iosync: add more verification checks on sync'ing calls * stress-hrtimers: add hrtimer interrupt detection for verification * stress-goto: fix cut-n-paste error in --goto-direction error message * stress-filename: add verify VERIFY_ALWAYS since stressor does validation * stress-exit-group: add simple check to see if exit_group exits * stress-env: make verify optional based on --verify setting * stress-env: add low memory checking and env var value checking * stress-ipsec-mb: add in missing core-cpu.h include * TOOD: add a couple more ideas of stress cases that could be added * test-v2di: reference variable __v2di to clean up cppcheck style warning * test-timerfd-settime: remove unused variable timerid * test-timerfd-gettime: remove unused variable timerid * test-sendfile.c: use variable count * stress-ng.h: move core-cpu prototypes into core-cpu.h * stress-vm: clean up pedantic volatile discard warning on prefetch * stress-sysinval: no need to make stress_syscall_exercised volatile * stress-pthread: rename pthreads to pthread_info * stress-memrate: clean up pedantic volatile discard warning on prefetch * stress-vm: replace aliased pointer with direct cast * stress-bind-mount: use umount2 to umount, check for files in bind mount * stress-cpu: add logistical map chaotic data computation method logmap * Manual: update bug filing URL * stress-alarm: move #defines to start of code * stress-aio: constify pattern argument * stress-aio: align macro constants * stress-aio-linux: constify some more function arguments * stress-aio-linux: align #define constants * stress-af-alg: add extra ( ) around comparison expressions * stress-access: use stress_check_capability to check if root * core-helper: inline helper function stress_check_root * stress-vm-rw: fix cut-n-paste error on PROCESS_VM_WRITEV check * stress-usersyscall: constify syscall argument * stress-uprobe: constify a flags function argument * stress-dirdeep: allow 36 directories per level * stress-dirdeep: enable inode estimation * stress-rseq: fix error message, fix spelling mistake * stress-*: use pr_fail to log stressor failure errors * stress-fifo: use pr_fail for stressor test failure cases * stress-memrate: include 64 bit prefetched read streaming * stress-vm: add 1K prefetch on read64 to get some more read performance * README.md: add another citation * Change verify boolean to a type, differentiate between optional and always verification * stress-utime: enable --verify time checking for one of the utime settings * stress-tree: add support for --verify option * stress-pageswap: add verification that checks start address contains stashed data * stress-ng: add help info for --verifiable option * stress-malloc: add verification that start address contains stashed data * stress-l1cache: add comments, remove trailing tabs * stress-l1cache: enable simple checking with --verify option * stress-copy-file: enable --verify check * Add sendfile system call autobuild detection * stress-iomix: add sendfile I/O file data copying mechanism * stress-iomix: add copy_file_range I/O copies for systems that support this * bash-completion: update copyright * Add the --verifiable option * README.md: add another kernel bug citation * stress-sysinval: use locking around multiple debug messages * stress-sysinval: use pre-allocated pool for hash items * stress-sysinval: use uint64_t for counters * stress-sysinval: fix typo in system call io_pgetevents* * stress-sysinval: disable stack clobbering check for child process * stress-einval: fix incorrect crash and timeout tracking * stress-enosys: add in more missing system calls * stress-sysinval: add more missing system calls * stress-clone: re-order CLONE_* flags in line with the linux header * stress-enosys: add in missing prlimit * stress-sysinval: Add in some missing system calls * stress-stream: only declare has_sse2 when HAVE_NT_STORE_DOUBLE is defined * stress-enosys: add a few missing system calls * Fix various spelling mistakes * stress-dentry: remove linux check around stress_dentry_state call * stress-dentry: fix incorrect position if #endif * Add xxhash library to build notes for Debian/Fedora/SUSE * stress-hash: add xxhash support * stress-revio: add more yield point checking * Manual: add in new vm stressor method --cache-lines * stress-dentry: log the number of new dentries created in cache * stress-seek: add lseek64 call if it is available * stress-memrate: fix memrate rate speed * Add vm stressor method --cache-lines to walk through memory in cache line steps * stress-vm: add cache block forward/reverse memory writes * stress-vm: fix typo in comment, remove extraneous word at * stress-physpage: add notes about why /dev/mem -EPERM errors * stress-vm: add 32 x 64 non-temporal write method * stress-vm: add 1028 bit vector write * stress-stream: cater for non-sse2 x86 cpus * stress-pthread: set process name to include thread instance number * stress-oom-pipe: bail out early on pipe creation when we hit an error * core-log: move #endif to re-enable locking * core-out-of-memory.c: fix oom adjustment for older kernel OOM interface * stress-stream: only use non-temporal stores for index0 writes * core-nt-store: fix up gcc macro check for double nt stores * stress-stream: use non-temporal stores to optimize streaming writes * stress-memrate: add 1024 bit read/write, use vectors for 128 bits if supported * stress-madvise: add more MADV_ options supported by other kernels * stress-mmap: add MAP_LOW32 Solaris mmap option * stress-mmapfork: rename macros, add MMAPFORK prefix * stress-dev: exercise various open options on device * stress-dev: cleanup UNEXPECTED macro indentation * stress-udp: remove some extraneous lines * stress-loadavg: add timeout poll for extra yielding detection * core-vmstat: implement non-linux method for stress_find_mount_dev * stress-usersyscall: move help, fixes build on non-Linux systems * stress-ng.h: forgot to add the stress_find_mount_dev prototype to stress-ng.h * stress-rawdev: determine underlying device using stress_find_mount_dev * stress-mmapfork: add #if defined checks for specific MADV flags * stress-pageswap: exercise page mapping, swap out, swap in and unmapping * Use intmax_t type and PRIdMAX to print format pid_t pids * stress-madvise: exercise /proc/$PID/smaps file * stress-daemon: make backoff a macro value * stress-sparsematrix: move blank line, it is in the wrong place * stress-memrate: use two variants of each reader/writer and unroll loops more * stress-vecwide: use core-vecmath.h to check for vector capability * stress-usesyscall: exercise non-libc bounded calls * stress-ng: make g_unsupported a local variable * stress-schedpolicy: run just stressor as DEADLINE * stress-sigsegv: generate SIGSEGV on x86 using msr read and misaligned reads * stress-fifo: Fix spelling mistake "stessors" -> "stressors" * stress-sysbadaddr: Fix spelling mistake "excute" -> "execute" * stress-chroot: fix spelling mistake in chroot help "chhroot" -> "chroot" * stress-ng: fix typo: untrustyworthy -> untrustworthy * stress-usersyscall: add user space system call stressing * stress-enosys: simplify expression * stress-dentry: move rdfds fd_set to code block * stress-dentry: move timeout to specific code block * stress-affinity: constify a pointer argument * README.md: Add another citation * stress-loop: add sync to avoid loop_set_block_size warning messages * stress-swap: disable CoW for swap, madvise pages to be swapped out * Move _ARCH_ macros into core-arch.h * stress-ng.h: remove EXIT_SUCCESS, EXIT_FAILURE macro checks/defines * stress-malloc: add heap trimming with malloc_trim * core-log: add ( ) to clarify operator precedence * cleanup: voidify some function returns * stress-misaligned: add 32 and 64 bit non-temporal writes * stress-misaligned: remove keep stressing check in results * stress-memthrash: use core-nt-temporal.h helper functions * core-nt-store.h: put non-temporal store helpers into header file * stress-enosys: remove REDO debug * stress-enosys: limit hash'd calls to less than 65536 * stress-enosys: hash on unsigned syscall number * stress-ng: clear /sys/kernel/debug/clear_warn_once where possible * stress-nop: add tpause wait * core-cpu: add in more x86 feature flag bits * stress-enosys: add more linux system calls * Manual: remove extraneous word "good" * stress-syncload: remove #if 0 debug * stress-syncload: add yield point in busy loop * Add core-vecmath for vector math op checking, add vector ops to syncload * stress-sparsematrix: zero pvalue only when pvalue is non-null -- Colin Ian King Sun, 6 Mar 2022 22:01:02 +0100 stress-ng (0.13.11-1) unstable; urgency=medium [Aboorva Devarajan] * stress-sem: fix macro definition [Jules Maselbas] * stress-rseq: inline the nop instruction and add Kalray VLIW nop * stress-nop: Fix nop asm instruction for KVX [Colin Ian King] * Debian: update changelog * debian: update copyright year * Makefile: bump version * Makefile: add two missing header files from make dist rule * Manual: update contributors list * core-log: forgot to check-in the --stdout changes * Add --stdout option to send run time messages to --stdout * stress-kvm: only allow on x86-64 for now. * stress-hash: set correct big endian checksum for mulxror64 * core-shim: fix build error on Minix, replace __NR_unlinkat with 0 * core-shim: fully implement shim_unlinkat * stress-clock: don't build shim_clock_adjtime if it is not required * stress-clock: fix build issue on BSD for shim_clock_adjtime * stress-dev: only define stress_dev_tty if TCGETS is available * stress-dir: include libgen.h for basename definition * stress-dev: include libgen.h for basename definition * core-shim: include core-pragma.h to fix OS X build failure * Manual: update contributors and date * Signed-off-by: Colin Ian King * core-*, stress-*: update copyright * stress-ng.h: Disable fortified build for PCC * stress-clock: move shim_clock_adjtime to stress-clock * core-*: add UNEXPECTED #ifdef checking * stress-*: add UNEXPECTED #ifdef checking * stress-dev: add unexpected build failure #else path detection * core-shim: move include linux/futex.h to core * stress-sysfs: move include linux/fs.h to stressor * core-helper: move include linux/fs.h to core * stress-udp: move include linux/udp.h to stressor * core-helper: move HAVE_PRCTL_TIMER_SLACK to core * stress-prctl: move include sys/capability.h to stressor * stress-sockmany: move include netinet/tcp.h to stressor * stress-sock: netinet/in.h and arpa/inet.h to stressor * stress-*: move include netinet/in.h and arpa/inet.h to stressors * stress-*: move include net/if.h to stressors * stress-*: move include netinet/ip.h to stressors * stress-dev: move include sound/asound.h to stressors * stress-dev, stress-pty: move include termio.h to stressors * stress-*: move include poll.h to stressors * core-log, stress-ng: move include syslog.h to core * core-perf: move include local.h to core * stress-fp-error, stress-sigfpe: move include float.h to stressor * stress-set: move include grp.h to stressor * core-mounts, core-vmstat: move include mntent.h to core * stress-resources, stress-sem: move include semaphore.h to stressors * stress-vdso: move include link.h to stressor * stress-*: move include utime.h to stressors * stress-mq, stress-resources, stress-switch: move include mqueue.h to stressors * stress-malloc: move include malloc.h to stressor * core-*, stress-*: move xattr includes to core and stressors * stress-sock: move include netinet/tcp.h to stressor * stress-icmp-flood, stress-ping-sock: move include netinet/ip_icmp.h to stressors * core-*, stress-*: move include sys/capability.h to core and stressors * stress-*: move include sys/select.h to stressors * stress-msg, stress-resource, stress-shmsysv: move include sys/ipc.h to core and stressors * core-*, stress-*: move include sys/sysmacros.h to core and stressors * core-*, stress-*: move include sys/statfs.h to core and stressors * core-*, stress-*: move include sys/swap.h to core and stressors * stress-swap: move include sys/swap.h to stressor * core-*, stress-*: include sys/un.h to core and stressors * core-shim: move include sys/random.h to core * stress-msg, stress-resources: move include sys/msg.h to stressor * stress-resources, stress-sem-sysv, stress-switch: move include sys/sem.h to stressor * stress-shm-sysv: move include sys/shm.h to stressor * core-*, stress-*: move include sys/mount.h to core and stressors * stress-*: move include sys/utsname.h to stressors * stress-get: move include sys/vfs.h to stressor * stress-ptrace, stress-vm-segv: move include sys/ptrace.h to stressors * stress-*: move include sys/statvfs.h to stressors * stress-*: move include sys/prctl.h to stressors * stress-*: move include sys/inotify.h to stressors * stress-ioport, stress-smi: move include sys/io.h to stressors * stress-fp-error, stress-sigfpe: move include fenv.h to stressors * stress-close, stress-fanotify: move include sys/fanotify.h to stressors * stress-*: move include sys/eventfd.h to stressors * stress-prctl: move include asm/prctl.h to stressor * stress-*: move include libgen.h to stressors * stress-sctp: move include netinet/sctp.h to stressor * core-shim: move HAVE_PKEY_GET/HAVE_PKEY_SET to core * stress-*: move HAVE_USERFAULTFD to stressors * stress-netlink-proc: move include linux/version.h to stressor * stress-key: move include keyutils.h to stressor * stress-dev, stress-getrandom, stress-urandom: move include linux/random.h to stressors * stress-af-alg: move include linux/socket.h to stressor * stress-*: move include linux/netlink.h to stressors * stress-*: move include linux/sockios.h to stressors * stress-get: move include linux/sysctl.h to stressor * stress-numa, stress-shm-sysv: move include linux/mempolicy.h to stressor * stress-opcode, stress-seccomp: move include linux/filter.h to stressor * stress-sockdiag: move include linux/rtnetlink.h to stressor * stress-rawpkt, stress-udp: move include linux/udp.h to stressor * stress-dev: move include linux/ppdev.h to stressor * stress-rawpkt: move include linux/if_packet.h to stressor * core-perf: move include linux/perf_event.h to corew * stress-membarrier: move include linux/membarrier.h to stressor * stress-*: move include linux/secccomp.h to stressors * stress-*: move include sys/epoll.h to stressors * stress-*: move include ucontext.h to stressors * core-*, stress-*: move include sys/auxv.h to core and stressors * stress-memrate, stress-memthrash: move include xmmintrin.h to stressors * core-helper: move include sys/mount.h to core * core-shim: move include sys/ustat.h to core * stress-fiemap: forgot to add in linux/fs.h * core-mounts: move include sys/ucred.h to core * stress-wcstr: move include bsd/wchar.h to stressort * stress-dynlib: move dynlib includes to stressor * stress-*: move include linux/fs.h to stressor * core-vmstat: move include sys/sysctl.h to stressor * core-vmstat: move include sys/vmmeter.h to stressor * stress-sockdiag: move include linux/sock_diag.h to stressor * stress-sockdiag: move include linux/unix_diag.h to stressor * stress-netlink-{proc|task}: move include linux/connector.h to stressor * stress-netlink-{proc|task}: move include linux/cn_proc.h to stressor * stress-dev: add in some missing scsi includes * stress-dev: move include scsi/scsi.h to stressor * stress-dev: move include linux/media.h to stressor * stress-dev: move include linux/hdreg.h to stressor * stress-dev: move include linux/ptp_clock.h to stressor * stress-procfs: move include linux/pci.h to stressor * stress-futex, stress-pthread: move include linux/futex.h to stressors * stress-dev: move include linux/hpet.h to stressor * stress-dev: move include linux/cdrom.h to stressor * stress-sockpair: call sockpair stressor from OOMable restart handler * stress-sockpair: try to make parent more OOM friendly * stress-sockpair: add EPIPE checking and EPIPE signal handler * stress-alarm: use the no-op signal handler * stress-loop: move include linux/loop.h to stressor * stress-opcode, stress-seccomp: move include linux/audit.h to stressors * stress-dev: move include linux/dm-ioctl.h to stressor * stress-dev: move include linux/kd.h to stressor * stress-landlock: move include linux/landlock.h to stressor * stress-kvm: move include linux/kvm.h to stressor * stress-open: move include linux/openat2.h to stressor * coreftrace, stress-*, move tree includes into core and stressors * stress-resources, stress-timerfd: move include sys/timerfd.h to stressors * stress-procfs: move include asm/mtrr.h to stressor * stress-*, core-shim: move include asm/ldt.h to stressor * stress-dev: move include linux/usbdevice_fs.h to stressor * Revert "stress-ng.h: remove usbdevice_fs.h" * core-smart: move include scsi/scsi_sg.h to core * stress-rtc: move include linux/rtc.h to stressor * core-shim: move include scsi/scsi_ioctl.h to core * stress-list: move include sys/queue.h to stressor * core-shim: move include asm/cachectl.h to core * stress-set: move include sys/fsuid.h to stressor * stress-tsc: move include sys/platform/ppc.h to stressor * stress-*.c: move include sys/uio.h to some stressors * stress-ng.h: remove usbdevice_fs.h * stress-dev: move include videodev2.h to stressor * stress-dev: move include vt.h to stressor * stress-rawpkt, stress-tun: move include if_tun.h to stressors * stress-af-alg: move include if_alg.h to stressor * stress-netlink-task: move include genetlink.h to stressor * stress-fiemap, core-helper: move include fiemap.h to stressor and core * stress-netlink-task: move include taskstats.h to stressor * stress-io-uring: move include io-uring.h to stressor * stress-binderfs: move include binderfs headers to stressor * stress-personality: move include personality.h to stressor * stress-rseq: move include rseq.h to stressor * stress-sigfd, stress-close: move include wchar.h to stressors * stress-wcstr: move include wchar.h to stressor * stress-sendfile: move include sendfile.h to stressor * stress-verity: move include fsverity.h to stressor * stress-userfaultfd: move include userfaultfd.h to stressor * stress-quota: move include quota.h to stressor * stress-watchog: move include watchdog.h to stressor * stress-spawn.c: move include spawn.h to stressor * core-module: move include libkmod.h into core-module * stress-apparmor: move include sys/apparmor.h to stressor * stress-aio-linux: move libaio.h include to the stressor * stress-ipsec-mb: update copyright * stress-ipsec-mb: move intel-ipsec-mb.h into the stressor * stress-judy, stress-sparsematrix: move Judy.h into stressors * stress-cpu, stress-funccall: move complex.h into stressors * stress-crypt: move crypt.h include into stress-crypt.h * stress-aio: move aio.h include into stress-aio.h * stress-ng.h: remove ioprio macros * core-io-priority.h: add include file with io priority macros * core-sched.c: move sched related macros to core-sched.c * stress-getdent.c: move getdent system call macros to stress-getdent.c * core-cache.h: move two more cache macros to core-cache.h * stress-ioprio: move ioprio related syscall macros to stress-ioprio * stress-mmap: move mmap2 related syscall macro to stress-mmmap * stress-schedpolicy: move sched attr related syscall macros to stress-schedpolicy * stress-ng.h: remove HAVE_SET_THREAD_AREA, it is not used * stress-membarrier: move syslog related syscall macro to stress-membarrier * stress-klog: move syslog related syscall macro to stress-klog * stress-pthread: move thread area related syscall macro to stress-pthread * stress-pthread: move robust list related syscall macros to stress-pthread * stress-kcmp: move kcmp related syscall macro to stress-kcmp * stress-key: move key related syscall macros to stress-key * core-perf: include core-perf.h * stress-fp-error: relax checks for icc compiler * core-ftrace: include core-ftrace.h * core-thrash: include core-thrash.h * core-thermal-zone: include core-thermal-zone.h * core-smart: include core-smart.h * core-hash: include core-hash.h * stress-misaligned: include core-target-clones.h * core-helper: fix stress_get_prime64, value should be different on each call * README.md: Add another kernel improvement where stress-ng was used * stress-ng.h: remove debug macro pr_dbg_v * core-cache.h: move shim_mfence to core-cache.h from stress-ng.h * core-cache.h: move shim_builtin_prefetch to core-cache.h from stress-ng.h * core-cache.h: move cache helper functions/macros to core-cache.h from stress-ng.h * stress-ng.h: remove macro STRESS_PAGE_IN, it it no longer used * core-net.h: move some network macros from stress-ng.h to core-net.h * stress-rawudp: add in missing core-net.h include * core-ftrace.h: move ftrace helper definitions to core-ftrace.h from stress-ng.h * core-net.h: move net helper definitions to core-net.h from stress-ng.h * core-thrash.h: move thrash helper definitions to core-trash.h from stress-ng.h * core-smart.h: more SMART helper definitions to core-smart.h from stress-ng.h * core-thermal-zone.h: more helper definitions to core-thermal-zone.h from stress-ng.h * core-perf.h: more perf helper definitions to core-perf.h from stress-ng.h * core-helper: add a no-operation signal handler stress_sighandler_nop * core-hash: fix verify checksum for hash mulxror64 * stress-apparmor: update copyright boilerplate message * stress-apparmor: include core-capabilities.h * core-mwc: move STRESS_MWC* macros to stress-mwc.c * stress-cpu.h: move FORCE_DO_NOTHING macro to stress-cpu.c * core-pragma: move pragma related macros to new header * Makefile: Add core*h as part of obj build dependencies * Makefile: add new core-*h files to make dist rule * core-capabilities: move *CAP* capability macros to new header * core-target-clones: move TARGET_CLONES macros to new header * core-put: fix copyright * core-put: move put helpers to core-put.h * stress-cache: make helper asm functions inline * core-mwc: move mwc struct typedef to core-mwc.c * stress-affinity: constify a couple of variables * stress-ng.h: Add in some spaces between #includes * stress-atomic: update copyright * stress-af-alg: constify some string pointers * stress-atomic: clean up macros * stress-switch: use the set_default callback to set the default method * stress-ng.h: cleanup, re-ordering, comment updates * core-perf: add NMI perf metric * stress-ng.h: move per-stressor macros to stressors * stress-fault: move initialization of i, update copyright * stress-fanotify: comment struct fields, update copyright * core-cpu: update copyright year * core-cache: add TiB and clear up some minor space formatting * stress-vecwide: limit to 2K wide * stress-switch: update copyright * stress-switch: add mq and sem-sysv methods * stress-null: exercise more with fcntl and ioctl * stress-null: add lseeks to /dev/null for more kernel exercising * stress-memthrash: add check for SSE2 for non-temporal writes * stress-memthrash: update copyright * stress-memthrash: add a 8 x 64 bit memset using non-temporal stores if possible * stress-memrate: only use non-temporal stores for SSE2 enabled CPUs * core-cpu: add sse and sse2 CPUID checks for x86 * stress-hash: add mulxror64 hash * Manual: move kvm options to correct place in manual * stress-hash: add 3 more hash functions to the mix * stress-str: remove assignment after typedef * README.md: Add Intel icc compiler notes * README.md: Add alpha to architectures validated with stress-ng * stress-str: fix index() test, remove code that got incorrectly merged in * stress-sparsematrix: deprecate judy arrays for 32 bit systems * stress-str,wcstr: deconsitify void * func pointer * README.md: add another linux commit that used stress-ng to improve performance * Various changes to make stress-ng build with the Intel compiler icc * core-cache: use correct type for value * Fix pcc and tcc build issues, add pcc + tcc version information * stress-ng.h: don't used deprecated attribute for non-gcc/clang toolchains * stress-enosys: disable x86 syscall exercising for tcc builds * stress-hash: make functions static * Disable deprecated warnings for pedantic builds * core-hash: Add in missing const to pointers * stress-hash: add 32 bit fetch optimized coffin hash * core-hash: add HOT attribute to hash functions * stress-hash: remove md5crc32c, it is way too slow * stress-hash: remove debug * stress-hash: check for error return string marker in md5 crypt result * stress-hash: don't exercise md5 if it fails * core-hash: add more hash methods * core-hash: Move adler, muladd32 and mullad64 from stress-hash to core-hash * stress-mwc: rename stress_mwc_seed and add stress_mwc_get_seed * stress-hash: add OPTIMIZE3 -O3 hint on adler hash function * stress-cache: constify bucket parameter * stress-hash: fix --verfiy checksum values * stress-hash: align buffer to 64 byte boundary * stress-hash: add the adler32 hash * stress-hash: add 3 more simple hash methods and a goodness score * Add --keep-files option * core-helper: unlink should be rmdir for failed stress_temp_dir_mk * stress-hash: remove empty line * stress-hash: use variable rate for hashing rate calculation * stress-hash: correct the big endian murmur3_32 hash checksum * stress-prctl: use linux uapi defined names for prctl * stress-sigsegv: add int instruction to trigger SIGSEGV on x86 * stress-sparsematrix: clean up variable name shadowing * stress-hash: constify a parameter * Move cpu hash stressors into a new hash test stressor * stress-chattr: add more yield points during chattr exercising * stress-fpunch: update copyright * stress-aio: update copyright * stress-aio: don't warn if cancelled is OK or EINTR * stress-fpunch: make children more yielding * stress-ng: ensure checksum region is large enough * stress-sparsematrix: use shim'd strlcpy to fix build issues (#170) * stress-cpu: fix crc32c checksum verification check * stress-sparsematrix: clean up some tab/whitespaces * stress-sparsematrix: add non-sparse mmap and sparse qhash methods * stress-cpu: add CRC32C to hash random strings * stress-sparsematrix: remove SIGALRM handling, replace with yield points * stress-sparsematrix: bail out early if put fails * stress-sparsematrix: make sparse destroy a void return func * stress-sparsematrix: add error checking in put failures * stress-sparsematrix: make del() void since the error return is ignored * stress-sparsematrix: optimize get(), return value rather than by pointer arg * stress-sparsematrix: add implementation using judy arrays * stress-sparsematrix: Add a sparse matrix memory/cache stressor * stress-crypt: add yield point per crypto iteration * stress-dev: add yield point while scanning for available devs * stress-misaligned: add yield point when scanning through list of functions * stress-misaligned: add more yield points for slower emulated systems * stress-pipeherd: add yield check on startup -- Colin Ian King Sat, 29 Jan 2022 23:24:25 +0100 stress-ng (0.13.10-1) unstable; urgency=medium * Makefile: bump date and update copyright year * Manual: update date * stress-kvm: rename regs to kregs to avoid name shadowing * core-shim: typedef statx buf to simplify different statx sizes * stress-set: only #define some macros if they are not already defined * stress-get: only #define some macros if they are not already defined * stress-memfd: only use MAP_POPULATE if it is defined * core-shim: make shim_cacheflush use builtin gcc variant where applicable * stress-ng.h: Add MIPS arch macro * stress-cache: disable cache flags one by one if SIGILL occurs * stress-cache: add cldemote instruction runtime and build time checks * core-shim: fix typo in cacheflush wrapper on bytes/nbytes arg * core-shim: use shim statx struct for __NR_statx call * stress-ng.h: don't define HAVE_GETCPU and HAVE_GETTID * stress-ng: voidify return from write * stress-syncload: remove need for atomic reads of start time * stress-syncload: remove stress_syncload_settime * core-shim: fix statx shim for non-Linux systems * stress-shm: zero msg struct to clean up valgrind warning * stress-schedpolicy: zero structs on get calls to silence valgrind warnings * stress-numa: memset nodemask to keep valgrind happy * stress-tmpfs: only define TMPFS_MAGIC if it is not already defined * stress-inode-flags: flags argument should be long int rather than int * stress-syncload: fix atomic load arg order reversal * stress-context: zero all context bytes to keep valgrind happy * stress-dev: add usb core device ioctl exerciser * stress-ng: improve error clean-up paths in main * stress-mcontent: update copyright year * stress-mcontend: add check for pause instruction * stress-cache: update copyright year * stress-ng.c: use static buffer to format message, write to stderr * stress-cache: remove space between arguments in function call * stress-dev: use invalid keycode to stop ESC being remapped * stress-sleep: update copyright * stress-sleep: add nanosecond sleep delays using pselect * stress-dev: remove debug continue statement * stress-dev: add yield point check while traversing devices * stress-fiemap: remove blank line * stress-dev: remove hashing, replace with device list and device state * stress-kill: kill unused pid for -ESRCH error * stress-fallocate: remove empty line * stress-eventfd: remove empty line * stress-procfs: rework procfs reverse read to force misaligned reads * Forgot to commit changes to stress-ng.h * core-shim: add missing comment blocks * core-shim: add statx system call autobuild detection * core-shim: Add mlock2 system call autobuild detection * core-shim: Add unshare system call autobuild detection * core-shim: Add memfd_create system call autobuild detection * core-shim: Add getrandom system call autobuild detection * core-shim: Add getcpu system call autobuild detection * core-shim: Add gettid system call autobuild detection * core-shim: Add cacheflush system call autobuild detection * stress-nop: add a random nop option * stress-nop: add S390 nopr nop variant * stress-nop: add mdoio, mdoom and yield nops for PPC64 * stress-kvm: re-word kvm help text, remove CLASS_MEMORY flag * stress-kvm: Fix GPL comment boilerplate * stress-kvm: don't treat EINTR on KVM_RUN as an error * Add Linux kvm stressor, initially just supporting x86 * stress-memfd: remove some blank lines * stress-memfd: clean up some minor white space issues * core-hash: remove UNLIKELY macro, it confusing cppcheck * core-cpu: update copyright and add more comment blocks * stress-softlockup: update copyright * stress-softlockup: remove redundant unset global timeout check * stress-softlockup: print some messages only from 1st instance * stress-procfs: fix pr_* messages, use correct stressor name and path name -- Colin Ian King Tue, 4 Jan 2022 22:20:02 +0100 stress-ng (0.13.09-1) unstable; urgency=medium * stress-syncload: add build time check that atomic ops on doubles is supported * stress-ng.h: Make start_time naturally aligned for improved atomic performance * stress-syncload: Remove sched yield * stress-ng.h: no need for start_time to be volatile * stress-syncload: use atomic load/store in preference to spinlock * stress-synload: add yield points for OS X builds * stress-x86syscall: reduce the scope of variable str * stress-x86syscall: reduce the scope of variable str * stress-randlist: reduce the scope of variable i * stress-aio: reduce the scope of variable ret * stress-cache: ensure variable cpu is not clobbered * stress-syncload: only declare ret if it is required * core-vmstat: only build stress_find_mount_dev for linux * core-vmstat: make stress_find_mount_dev static * stress-vforkmany, fork: use indirect vfork call * stress-nop: inline each nop instruction and add Kalray VLIW nop * stress-cache: ensure variable masked_flags is not clobbered * stress-bad-altstack: use valid smallest alternative stack * stress-skiplist: zero allocated list items and free list on alloc failure * stress-*fork: use vfork shim wrapper macro to use syscall or vfork * stress-memthrash: define stress_memthrash_flush only for x86 * stress-pthread: use calloc'd stack in preference to mmap'd one * Add hppa architecture and disable sigaltstack * stress-cache: move on to next round if SIGSEGV occurs w/o timeout * stress-cache: add more SIGSEGV detection and fix ret return * test-fanonify: remove include of stress-ng.h * core-cache: only perform sparc cache checks for sparc builds * stress-fp-error: workaround 1 / PI inexact fp error issue * core-cache: add Linux arch Alpha cache size detection * stress-ng.h: ensure ARCH specific #defines are defined to a value * Rename ARM asm macros and tests with ARM in name, part #1, ARM * Rename ppc64 asm macros and tests with ppc64 in name, part #1, ppc64 * Rename x86 asm macros and tests with x86 in name, part #1, x86 * Add autocheck of clflush x86 instruction and check if it is available at run time * Rename STRESS_ARCH_RISC_V to STRESS_ARCH_RISCV * Add RISC-V memory fence shim helper * core-vmstat: update copyright * stress-readahead: Update copyright * stress-iomix: update copyright * stress-iomix: try to drop cached data after sync'd to file * stress-iomix: add in missing comment * stress-iomix: add madvise calls to make reads more effort * stress-readahead: add fadvise call to try and drop cached data * core-vmstat: remove some trailing white spaces * core-vmstat: improve device name lookup for iostat * stress-ng: Fix --temp-path directory checking (#163) -- Colin Ian King Sun, 19 Dec 2021 20:42:44 +0100 stress-ng (0.13.08-1) unstable; urgency=medium [Alexander Kanavin] * Do not preserve ownership when installing example jobs [John Kacur] * stress-ng: Fix potential overrun in msgsnd [Colin Ian King] * Makefile: bump version * Manual: update date and update contributors * stress-misaligned: disable atomic ops for SH4 * stress-randlist: ensure memory pointed to by ptrs is free'd * debian/control: update standards version to 4.6.0 * stress-randlist: clear up gcc warning on openhipster * stress-cache: make loop variable j a register volatile * stress-sigfpe: add work around for M68K linux devices * stress-sigfpe: annotate expected use of specific fpe flags * stress-sigfpe: Add comment regarding floating point division by zero * Add syncload synchronized bursty load stressor * stress-ng: reformat long_options, align 2nd value * stress-randlist: fix the class type * stress-stackmmap: stash non-stack address to clean up scan-build warning * test/test-pthread-attr-setstack.c: remove redundant assignment to ret * stress-secretmem: fix memory leak on object mappings * test/test-getmntent: exercise mount struct * test/test-libkmod: voidify variable module_name * test/test-timer-create: remove redundant variable t * stress-dev: remove redundant assignment to variable claimed * stress-prctl: voidify return from prctl calls * stress-x86syscall: fix --x86syscall-func segfault * test/test-__restrict: use src dst names for ptr2, ptr1 and fix eos check * stress-mincore: unmap before closing fd, fixes a hidden file issue on fuse * stress-mcontend: unmap before closing fd, fixes a hidden file issue on fuse * stress-rmap: unmap before closing fd, fixes a hidden file issue on fuse * stress-ng: make pr_inf stat error message a verbose debug error message * stress-mincore: close fd before removing directory * stress-mcontend: close file early, ensure directory is deleted on error * stress-verity: add ENOSYS error return check for non-implemented verity functionality * stress-timer: set timer on each timer duration update * README.md: Add one more project citation * stress-goto: add a new stressor to exercise heavy goto branching * core-cpu: annotate cpuid registers that need to be set and values returned * stress-hrtimers: update copyright * stress-hrtimers: add --hrtimers-adjust for automatic rate adjustment * Rename stress_check_value to stress_check_max_stressors * stress-smi: use no-op command instant of 1 to trigger SMI * stress-cache: fix build issue * stress-cache: remove some white spaces * stress-cache: add --cldemote option * stress-cache: use random cache flags if none are provided * core-cpu: remove unnecessary inner #ifdef'd code * stress-cache: add --clflushopt option * Replace char *str = "text" with char str[] = "text" * core-cpu: declare stress_cpu_x86_extended_features only for x86 arches * stress-rdrand: only allow --rdrand-seed if rdseed instruction is available * Remove need for HAVE_CPUID_H and HAVE_CPUID checks * Remove __get_cpuid usage and build checking * stress-smi: use stress_cpu_x86_has_msr helper * stress-x86syscall: use stress_cpu_x86_has_syscall helper * stress-tsc: use stress_cpu_x86_has_tsc helper * stress-rdrand: use stress_cpu_x86_has_rdrand helper * stress-enosys: don't use __cpuid and check for SIGILL on syscalls * stress-cpu: use stress-ng cpuid rather than gcc __cpuid * core-cpu: add stress-ng x86 cpuid implementation * stress-lockbus: add sync_bool_compare_and_swap * stress-ng: make a couple of the inline helpers always inline * Fix some spelling mistakes in comments * core-perf: Add Cgroup Switches and add missing tab in CPU Migrations * stress-ng.h: implement shim_clflush as a cacheflush call * stress-memrate: use clang __builtin_nontemporal_store * stress-numa: exercise invalid MPOL_F_NUMA_BALANCING | MPOL_LOCAL mbind options * stress-memrate: add non-temporal (cacheless) writes for x86 * stress-fanotify: add FAN_FS_ERROR flag -- Colin Ian King Tue, 7 Dec 2021 13:19:23 +0100 stress-ng (0.13.07-1) unstable; urgency=medium * Makefile: bump version * Makefile: update copyright * manual: update date, author email and copyright * debian/copyright: update copyright * debian/control: update email address * stress-resched: move declaration of j, clean up build warning * stress-resched: fix build error on systems without sched_setscheduler * stress-sigq: exercise invalid signal on rt_sigqueueinfo call * core-log: don't open/close stdout, use fileno on stdout instead * stress-ng: remove commented out stress_set_proc_name call * stress-vecwide: add a wide vector math stressor * Makefile.config: add alderlake optimization target clones * stress-filename: stat file before creation, during and after unlink * stress-prctl: exercise Linux 5.15 ARCH_GET_XCOMP_ arch_prctl calls * stress-vm: add grayflip method. * debian/control: update standards version * stress-hdd: ensure offset is aligned to 512 byte boundary * Refine target-clones attribute to determine attributes at build time * stress-prctl: fix typo in comment: fine -> find * stress-futex: add Linux 5.16 futex_waitv call * Make one thousanth, one millionth and one billionth constants * core-vmstat: remove tabs and spaces * stress-atomic: add more contention by running 4 processes per stressor * stress-atomic: use lower optimization level on sh gcc * core-time: scale by multiplying by one millions * Add --resched rescheduling stressor -- Colin Ian King Mon, 16 Nov 2021 00:01:02 +0000 stress-ng (0.13.06-1) unstable; urgency=medium [Alexander Kanavin] * Makefile: do not write the timestamp into compressed manpage. [John Kacur] * stress-ng: Conscientious Language effort [Colin Ian King] * Makefile: bump version * Debian: update control - use ubuntu email * Add autobuild detection of sys/loadavg.h * stress-rdrand: add missing 2x32 read variant of rdseed * stress-dev: optimization: cache all dev entries in a hash table * debian/watch: update to use github tarball name mangling * debian/copyright: Fix URLs to project and email contact * Rename HAVE_STRLCPY and HAVE_STRLCAT to fix Nixos libbsd macro clash * stress-bad-ioctl: optimization: cache a copy of all dev names * voidify returns from fflush and fprintf calls * stress-mmap: exercise OpenBSD mquery system call on mapped pages * stress-madvise: add OS X MADV_ZERO_WIRED_PAGES madvise advise * stress-madvise: Add OpenBSD MADV_SPACEAVAIL madvise option * stress-mmap: Add some missing NetBSD and OpenBSD mmap flag types * Add stress_killpid helper to kill and fast reap memory * stress-bad-altstack: make stack write-only to cause double trap * stress-prefetch: stash pre_ptr to force compiler to use it in the benchmark loop * stress-kill: fix incorrect voidification of return value from kill * stress-vm-splice: break open statement into two statements * stress-branch: update copyright * stress-branch: remove empty line * stress-branch: shrink branch code, increase branches from 256 to 1024 * README.md Add another link to a performance regression found by stress-ng * stress-rdrand: add option to exercise rdseed x86 instruction * core-thermal-zone: replace non-alpha/digits in type name with _ * core-vmstat: disable iostat for non-linux systems * stress-atomic: don't perform atomic 64 bit ops on 32 bit platforms * core-vmstat: ensure all fields in vmstat_current are zero'd * stress-ng.h: Don't include sys/sysctl.h in Linux, it has been deprecated * Makefile.config: Fix sys/vmmeter.h autodetection * stress-atomic: Add finder build time detection of atomic intrinsics * core-vmstat: Add FreeBSD implementation to system statistics * core-helper.c: fix typo, GETLOADAVG should be HAVE_GETLOADAVG * core-vmstat: fix buffer overrun on therms * Add build time detection for getloadavg * Debian control: update homepage URL * README.md: Add tarball version information * Add build time pragma support detection * stress-bad-altstack: move pragmas to be around the function stress_bad_altstack_force_fault * stress-smi: make not being able to load a module non-fatal * core-vmstat: don't build in iostat metrics if major/minor macros aren't available * REAME.md: Fix typo, 650 -> 260 -- Colin King Thu, 28 Oct 2021 09:36:17 +0100 stress-ng (0.13.05-1) unstable; urgency=medium * Makefile: bump version * Makefile: rename README to README.md in the make dist rule * Manual: update date * README.md: Add note to run make clean after git fetch * README.md: add some examples * README.md: Clean up white spaces in markup * README.md: add citations * README: Rename to README.me and add github style markdown * Revert "stress-aio-linux: clean up valgrind uninitialized memory warnings" * stress-dev: only define PPGETTIME{32|64} if PP_IOCT is defined * stress-ng.h: Fix missing \ in STRESS_PRAGMA_WARN_OFF macro * Revert "stress-cache: add clobbering warning pragma workaround" * stress-cache: add clobbering warning pragma workaround * stress-dev: don't declare stress_dev_scsi_generic_linux for non-linux targets * stress-dev: remove EMU debug message * stress-aio: clean async io cancel, check status with aio_error * stress-vm: clear up volatile discards warning with pedantic build * stress-kill: send signals to a child process to add more stress * stress-branch: double number of branch points, makes prediction harder for CPU * stress-vm: add mscan vm memory exercising method * stress-malloc: add yield point in stress_malloc_page_touch * stress-link: make reandom number index size_t * stress-get: initialize some objects to keep valgrind happy * stress-dirdeep: fix cleanup of dirent objects * stress-aio: add polled wait for completion * stress-aio-linux: clean up valgrind uninitialized memory warnings * stress-context: memset context requires and more sigaltstack * stress-hsearch: free hash items * core-smart: re-write begin/end checks * stress-thermal-zone: don't pass a null type to stress_tz_type_instance * Manual: clarify the semantics of the --timeout, -t option * stress-uprobe: ensure libc.so is also matched as a valid libc so name * Manual: remove GNU tbl extensions for table widths * stress-dev: exercise Linux scsi generic ioctls * stress-io-uring: keep track of unsupported opcodes * stress-fpunch: add yield check while populating test file * stress-io-uring: print opcode name to help decode opcode to human readable text * stress-dev: add parallel port ioctl device exercising * stress-io-uring: add statx and sync_file_range io-uring ops * stress-crypt: add some more crypto methods to exercise * stress-cpu-online: just limit to maximum of 65536 cpus * stress-context: rename __ prefix with suitable name * stress-context: remove empty line * core-thrash: add more slab work by attempting to shrink slabs * stress-dev: add hwrng exercising for linux * stress-dev: shuffle dev names rather than mixup sort * stress-dev: add Linux floppy disk ioctls to dev stressor * stress-iomix: add sync'ing on written data at most every second * Add new --no-oom-adjust option to disable all oom adjustments * core-out-of-memory: fix inverted check on oomable process * stress-ng: add missing ftrace and oomable options from --help output * snapcraft: change project repo URL -- Colin King Mon, 11 Oct 2021 18:18:18 +0100 stress-ng (0.13.04-1) unstable; urgency=medium * Makefile: bump version * stress-fallocate: Fix ENOENT failure messages * stress-sock: remove redundant variable msg_len * stress-dccp: remove redundant variable msg_len * stress-prefetch: add missing volatile in pointer cast * core-vmstat: optimization: remove check for non-null * core-vmstat: reduce scope of variable ret * stress-mergesort: don't jmp out of mergesort on NetBSD * stress-vm-segv: Fix weird hangs on DragonFlyBSD * stress-chmod: add EPERM check to systems that also support EFTYPE * stress-rmap: fix rmap bogo-ops threshold * Fix typo: HAVE_LOFF_T -> HAVE_OFF_T * Add off_t type detection and use it if loff_t is not defined * stress-prefetch: prefix macros with STRESS_ to avoid FreeBSD macro conflict * stress-prefetch: fix mmap/munmap type warnings on OpenHipster * stress-prefetch: use correct format specifier for size_t variable l3_data_mmap_size * stress-prefetch: add stress_void_ptr_put and use it to stash pointers * stress-prefetch: Add a L3 prefetch read benchmarking stressor * stress-fifo: exercise invalid mmap on fifo fd * stress-fifo: periodically exercise FIONREAD on read end of pipe * stress-fifo: periodically perform invalid lseek on pipe fd * stress-pthread: use phread_mutexattr calls to use priority inheritance * stress-misaligned: perform misaligned read/writes on page and cache boundaries -- Colin King Tue, 28 Sep 2021 11:02:11 +0100 stress-ng (0.13.03-1) unstable; urgency=medium * Makefile: bump version * stress-remap: Fix build failure on systems without MAP_POPULATE -- Colin King Fri, 17 Sep 2021 12:33:12 +0100 stress-ng (0.13.02-1) unstable; urgency=medium [Fabien Malfoy] * core-helper: Quote the system-info.version value in YAML metrics [Danilo Krummrich] * core-vmstat: fix trim of devnames for nvme devices [Colin Ian King] * Makefile: bump version * Manual: update update contributors list and date * Signed-off-by: Colin Ian King * core-vmstat: make helper function static and constify arg * stress-opcode: clean up clang-11 pedantic build warning * stress-aio: perform retry if EBUSY occurs * stress-vm: constify end pointers * stress-stream: constify pointers idx1, idx2, idx3 * stress-opcode: make pointer ops_end const * stress-msync: make pointer buf const * stress-mcontend: constify pointer vdata * stress-malloc: move scope of ptr and end, constify end * stress-malloc: make parameters counters const * Treewide: fix spelling mistakes and typos * stress-cpu: use the __builtin_parity function if it is available * core-vmstat: fix assignment that should be a comparison * stress-io-uring: silently ignore ENOSPC failures * stress-io-uring: fix typo in comment * stress-prctl: move } around #endif * stress-procfs: add reverse seek/reads on non fifo procfs entries * stress-swap: periodically create invalid swap header * stress-loop: exercise invalid ioctl on loop control device * stress-loop: exercise invalid block sizes * stress-loop: perform invalid removal of device -1 * core-vmstat: use '\0' end of string rather than 0 * snapcraft: move to core20 and add some extra build dependencies in * Manual: update contributors list * stress-fanotify: add Linux 5.15 FAN_REPORT_PIDFD option * stress-ng: --thrash: drop caches at random periodical intervals * stress-prctl: remove tabs * core-vmstat: use shim_strlcpy instead of strcpy * stress-prctl: add Linux 5.15 PR_SPEC_L1D_FLUSH operation * core-vmstat: trim from dev name not the stat file * core-vmstat: handle devices such as /dev/sda1 -> /dev/sda * core-helper: handle SIGSTKSZ being potentially a sysconf call * Add --iostat option to periodically dump out I/O stats * stress-ng: fix dynlib-ops command, typo in dynlib * stress-loadavg: Fix spelling mistake "averge" -> "average" * stress-vm-rw: remove extraneous space in error message * stress-numa: add new MPOL_PREFERRED_MANY option * kerne-coverage: add more file system options and stressor test scenarios * Manual: fix context switch --switch-freq option -- Colin King Tue, 14 Sep 2021 14:14:14 +0100 stress-ng (0.13.01-1) unstable; urgency=medium [Maxime Chevallier] * stress-ng: Fix random stressor assignment [Colin Ian King] * Makefile: bump version * Manual: update date * stress-kcmp: move close to avoid fd1 leak on exit * stress-set: no need to initialize fsgid, remove assignment * stress-hdd: fill write/read buffer with random data * stress-set: initialize uid/gid variables * Add yielding check and success exit if we timeout * stress-fork: don't use getpgid if it is not available * stress-dir: only use mkdirat if it is available. * stress-hdd: voidify fd to clean up Minix build warnings * stress-wait: fix build warning on Minix * stress-pkey: add pkey_set build time detection * stress-pkey: add pkey_get build time detection * test: use pkey_mprotect call rather than system call * test: use pkey_alloc call rather than system call * stress-pkey: use pkey call if it is available * stress-xattr: fix build error when XATTR_SIZE_MAX is not defined * stress-sockpair: fix name shadowing of variable ret * stress-seccomp: unconstify seccomp_actions, clean up build warning * stress-malloc: rename malloc_touch to avoid name shadowing * stress-exit-group: remove duplicated declaration of ret * stress-set: exercise getresgid with valid and invalid arguments * stress-sem: exercise semop and semtimedop with invalid arguments * stress-sem-sysv: exercise semget with some invalid arguments * stress-sem-sysv: exercise semctl with invalid cmd parameter * stress-mq: cast UINT_MAX to long to clean up pedantic build warning * stress-seccomp: add more seccomp operation tests * core-try-open: voidify return from alarm, we are ignoring it * stress-madvise: only used MADV_* flags if they are defined (part 2) * stress-madvise: only used MADV_* flags if they are defined * stress-ramfd: exercise umount2 with and without illegal flags * Add build time check for umount2 system call * stress-userfaultfd: exercise userfaultfd with invalid flags * stress-swap: exercise invalid swapon flags * stress-swap: exercise invalid swapoff filename * stress-sock: exercise setsockopt invalid arguments * stress-set: exercise setresuid more thoroughly * stress-set: exercise setresgid more thoroughly * stress-fork: exercise invalid setpgid calls before child dies * stress-set: add missing voidified ret * stress-numa: exercise set_mempolicy with incompatible mode flags * stress-sigpending: exercise sigprocmask with some more options * stress-rseq: add a couple more invalid rseq calls * stress-key: exercise request_key with invalid arguments * stress-remap-file-pages: exercise with illegal prot flags * stress-quota: exercise quotactl Q_SYNC flush all NULL device name * stress-ptrace: exercise invalid ptrace calls * Makefile: force V to be undefined to avoid make V=1 build failures * stress-msg: remove empty line * stress-fstat: exercise statx with invalid arguments * stress-madvise: exercise process_madvise with invalid arguments * stress-hdd: add invalid read/write family calls * stress-sockpair: exercise invalid socketpair calls * stress-sock: exercise invalid sock calls * stress-numa: exercise move_pages with NULL nodes argument * stress-msg: exercise msgrcv with invalid arguments * stress-mq: exercise msgctl IPC_SET for more kernel coverage * stress-mq: exercise invalid mq_timedreceive and mq_receive calls * stress-mq: exercise invalid mq_unlink calls * stress-mq: exercise mq_close with invalid mq descriptor * stress-mq: exercise invalid mq_send* calls * stress-mq: exercise mq_open with various invalid arguments * stress-mq: exercise invalid mq descriptor on mq_notify * stress-mq: exercise invalid mq descriptor on mq_getattr/mq_setattr * stress-mremap: workaround pedantic static analysis warnings * stress-mremap: exercise invalid flags and new size * stress-mmap: call with invalid offset * stress-open: exercise openat2 with invalid usize argument * stress-handle: exercise open_by_handle_at with another bad fd * stress-pkey: exercise pkey_free with invalid pkey id * stress-pkey: exercise pkey_alloc with invalid access_rights * stress-aio-linux: exercise invalid io_submit calls * stress-aio-linux: exercise invalid io_setup calls * stress-aio-linux: exercise invalid io_getevents calls * stress-aio-linux: exercise invalid io_destroy calls * stress-aio-linux: exercise invalid io_cancel calls * stress-sigio: add yield checking while consuming data from SIGIO event * stress-sigio: don't report EINTR as errors on selects * stress-xattr: fix incorrect voidification of variable * stress-xattr: exercise invalid filename on listxattr calls * stress-xattr: remove overly long attribute to force ERANGE * Add stress_redo_fork helper to check errno and keep stressing flag * stress-bad-altstack: add altstack usage inside signal handler * stress-clone: exercise invalid modify_ldt arguments * stress-mknod: exercise invalid fd in mknodat call * stress-dir: exercise invalid fd on mkdirat call * stress-copy-file: exercise copy_file_range with invalid fds and flags * stress-membarrier: add build time check for MEMBARRIER_CMD_FLAG_CPU * stress-loadavg: voidify function return values * stress-fallocate: Add one more invalid mode combo * stress-dirdeep: exercise linkat with invalid flags * stress-readahead: exercise invalid offset and lengths for posix_fadvise * stress-close: exercise invalid flags in fchownat call * stress-sock: use invalid flags for accept4 call * stress-readahead: replace whitespace with tabs. * stress-sigio: drain as much as possible in SIGIO handler * stress-readahead: exercise illegal readahead on write-only file * stress-handle: exercise EOVERFLOW on small buffer * stress-msync: exercise invalid flags field in msync * stress-memfd: add some more invalid memfd pathnames * stress-kcmp: exercise kcmp with invalid PIDs * stress-membarrier: add missing cpu_id arg to membarrier call * stress-fpunch: add more yield points * stress-cap: exercise capset with invalid version and PID * stress-cap: exercise capget with invalid version and PID * stress-utime: exercise utimensat with illegal flags * stress-wait: exercise wait4 with various alternative options * stress-klog: exercise some invalid syslog read operations * stress-dev: avoid any actions on owner's tty * stress-cache: Add NOCLOBBER hints to pinned clean up build warnings * stress-alarm: Add alarm(2) and sleep(3) stressor * stress-kill: exercise illegal signal numbers and PID * stress-exit-group: fix mutex cleanup on exit * stress-cache: add NOCLOBBER hints to total and r to clean up build warnings * stress-key: only use KEYCTL_INVALIDATE if it is defined * Add new exit_group stress test. * stress-pidfd: use the new process_mrelease call on pre-waited process pidfd * core-shim: add wrapper to process_release * stress-cache: remove shim_clflush on bad_addr, breaks OS X * stress-malloc: move initialization of malloc_threshold to #ifdef block * stress-cache: remove __builtin___clear_cache call on bad_addr (LP: #1940593) * stress-get: exercise invalid rusage who fields * stress-key: exercise add_key with a range in invalid arguments * stress-sigfd: exercise signalfd4 with invalid mask pointer size * stress-sigq: add invalid SI_TKILL rt_sigqueueinfo call * stress-remap-file-pages: disable for SPARC * stress-ng.h: Add STRESS_ARCH_SPARC sparc arch macro * stress-cache: add in periodic invalid cache flush operations * stress-ng: disable SIGLARM alarm once child stressor has returned * stress-get: add a couple more test cases for ugetrlimit * stress-chroot: fix use-after-free error when free'ing path * stress-timer: add commented out invalid timer_delete call * stress-brk: add mergeable page hint with madvise * core-shim: use brk system call in preference to libc wrapper * stress-chroot: add two more corner test cases, add more comments * stress-cpu: add 16 bit division method div16 * stress-hdd: remove tab on empty line * stress-fpunch: fix typo in comment * stress-malloc: add --malloc-touch option to aggressively force pages into memory * stress-zlib: add some missing constifications * stress-vdso: make static array wrap_funcs const * stress-tun: make string buffer static const * stress-sysfs: make static string signum_path const * core-sched: constify static array sched_types * stress-nop: Fix opt_set_funcs undeclared * Manual: update contributors list * Manual: minor corrections in the cpu methods documentation * stress-l1cache: add a missing newline in the source * stress-fpunch: create temp file with holes and multiple extents * stress-affinity: add --affinity-sleep nanosleep delay option * stress-affinity: whitespace and comment clean-up * stress-revio: use stress_get_extents helper * Add file hole punching (and filling) stressor, --fpunch * stress-wait: constify pid_arg argument * stress-cpu: make variable solutions const, add some line spacing * stress-cpu: move queens_solutions into function * stress-cpu: make array factorials const * core-helper: remove some blank lines and add a missing comment block * stress-pidfd: fix comment, add missing "don't" * voidify return from various sleep calls * Clean up kill calls, voidify returns and remove unwanted debug kill -- Colin King Mon, 1 Sep 2021 17:57:59 +0100 stress-ng (0.13.00-1) unstable; urgency=medium * Makefile: bump version * stress-userfaultfd: constify a couple of function arguments * stress-timerfd: move label to inside if #ifdef * stress-pci: reduce the scope of pci_path * stress-pci: use unsigned int for %x sscanf format specifier * Manual: update date * core-helper: declare extern __stack_chk_fail * stress-loadavg: Fix build warning on unused pthread flags * stress-loadavg: fix build error on systems without pthreads * stress-mmaphuge: fix info name, copy-n-paste error * stress-mmaphuge: define HUGE macros only if MAP_HUGE_SHIFT is defined * stress-ng.h: remove toolchain check for NOCLOBBER macro * Add asm("") and builtin_expect() built time checks * stress-funccall: only define complex types if complex is supported * stress-ng.h: use HAVE_BUILTIN_MEMMOVE for __builtin_memmove usage * stress-io-uring: rename variable iov_len to iov_length to fix pcc failure * stress-funccall: only define complex types if complex is supported * Add __restrict keyword build time check * stress-shm-sysv: remove some commented out debug cruft * stress-shm-sysv: fix random key generation * stress-shm: fix comment, it is a POSIX shm stessor not SYS V * stress-shm-sysv: exercise shmat with RND option a little more * stress-hdd: ensure read is sync'd to the same random offsets as write * stress-hdd: fix --verify option * stress-opcode: allow child to die badly silently * Add new line between declaration and first executable statement * Add a huge page memory mapping stressor --mmaphuge * stress-mlockmany: add --mlockmany-procs option * help: wrap overly wide help text to tty width * core-helper: add stress_tty_width to get column width of terminal * stress-rawdev: fix typo in help * stress-list: add spaced between list options in help * stress-nop: add missing INSTR arg to nop-instr help * stress-rdrand: add rdrand instruction asm check * Break wide macro line into multi-line #define * Add stress-ng specific stack smashing error message * stress-nop: fix typo in --nop-instr help * Rename macro HAVE_DARN to HAVE_ASM_DARN * stress-nop: add --nop-instr option to specify nop instruction * stress-timerfd: add --timerfd-fds option to specify max fds to use * stress-bad-altstack: disable warnings on known illegal null ptr dereference * stress-dirmany: Add a stressor to rapidly create/remove empty files * Skip error messages on no resource skip stressor terminations * Add load average stressor, try to create insane load averages * stress-pthread: report strerror of correct error return value * stress-resources: Add timerfd_create/close * stress-timerfd: Add build time checks for timerfd_* calls * stress-resources: exercise pidfd_open, waste more fds * stress-open: use O_NDELAY open flag * stress-resources: reap pthread only if it was started * Add build time checks for complex creal and cimag libm functions * stress-funccall: re-organize to reduce #ifdef checking * stress-funccall: add some more types to pass * stress-physpage: exercise /dev/mem mmap'ing * stress-pci: update some comments, fix date * Add new PCI sysfs stressor to read/mmap PCI config and resources * Remove trailing tabs from various sources * stress-prtcl: use shim'd enum for PIDTYPE values * Determine minimal stack size via sysconf, then PTHREAD_STACK_MIN then guess * stress-memcpy: add naive_o0 and naive_o3 options * stress-af-alg: no need to report zero unused algorithms * core-madvise: Add MADV_POPULATE_READ and MADV_POPULATE_WRITE flags * stress-madvise: add MADV_POPULATE_READ and MADV_POPULATE_WRITE flags * core-mincore: use MADV_POPULATE_READ to fault pages in * Manual: update contributors list * stress-io-uring: fix typo in comment * stress-affinity: add new --affinity-pin and --affinity-delay options * core-helper: don't emit not implemented messages with --skip-silent * Manual: minor cleanups -- Colin King Mon, 2 Aug 2021 18:58:47 +0100 stress-ng (0.12.12-1) unstable; urgency=medium * Makefile: bump version * stress-smi: move "us" time closer to the time * stress-sock: Add return at end of stressor, cleans up cppcheck warning * core-setting: remove commented out line * stress-sockabuse: Add return at end of stressor, cleans up cppcheck warning * tests: add missing return at end of main * Add build time check for __get_cpuid() * stress-smi: remove tsc helper function, it is not required * stress-madvise: add NOCLOBBER annotation on ret * stress-mmapfixed: move unmap label inside #ifdef block * core-madvise: voidify function args for systems that don't support madvise * Add new munmap stressor, exercises munmap and fault handling * core-out-of-memory: rename signal to signal_idx to avoid name shadowing * core-helper: rename dirname to directoryname to avoid name shadowing * core-cache: rename index to idx to avoid name shadowing * stress-syscall: rename syscall to syscall_num avoid name shadowing * stress-rawudp: rename sin to s_in avoid name shadowing * stress-open: rename times to tv avoid name shadowing * stress-link: rename tmpfile to tmpfilename avoid name shadowing * stress-judy: rename index to idx to avoid name shadowing * stress-*: rename dirfd to dir_fd to avoid name shadowing * stress-branch: rename index to idx to avoid name shadowing * kernel-coverage: add vm option variations of fork, vfork and vforkmany * stress-fork: add --fork-vm and --vfork-vm options to exercise VM more * core-smart: ensure devs pointer is null * stress-vforkmany: add --vforkmany-vm to exercise VM more * stress-mmapfixes: use STRESS_OOMABLE_QUIET to silence faults * stress-mmapfixed: only perform fixed mapping on unmapped pages * core-helper: make static char array b36 const * core-hash: make primes array const * core-cache: format struct initialization in the coding style * Manual: update date and fix smi formatting * stress-smi: add smi entry in manual, make bogo-ops more frequent * stress-smi: use SHIM_CAP_SYS_RAWIO instead on CAP_SYS_RAWIO * test/test-libkmod: clean up test code * core-smart: only define helpers for stress_smart_read_devs if HAVE_SMART is defined * core-shim: fix shim_modify_ldt no system call build issue * README: Add kmod library package info * core-smart: only define stress_smart_read_devs if HAVE_SMART is defined * core-module: return -1 for no-op module unload helper * Add SMI stressor, trigger SMM calls and benchmark SMI duration * stress-ng: remove space at end of the line * Depluralize the options error warning * Add Unicode minus check on invalid options * core-cache: clean up parsing of cache size * core-smart: use scandir to read devices and sort the devices too * Add --smart option to dump S.M.A.R.T. device statistics changes * stress-af-alg: expand crypto failure message * Fix duration output missing when sequential mode * stress-ng: fix typo "filed" -> "file" * Move OPT_skip_silent to the non-arg lookup table * arg parsing: print out unrecognized options * Add bit shift helpers and use them for stress-ng mask flags * stress-prctl: re-order PR_* macro check by #define value * stress-prctl: add Linux 5.14 PR_SCHED_CORE prctl * Add --skip-silent option to silent skip stress tests that can't be invoked * stress-clone: move shim wrapper of modify_ldt to core-shim * stress-xattr: fix compare/assignment typo * stress-maxtrix: ensure matrix_method_name is initialized to NULL * stress-io-uring: perform 64 bit multiply to avoid 32 bit overflow -- Colin King Fri, 9 Jul 2021 09:32:15 +0100 stress-ng (0.12.11-1) unstable; urgency=medium [John Kacur] * stress-ng: Add tags to the makefile [Colin Ian King] * Makefile: bump version * Makefile: remove git-commit-id.h from dist rule * Manual: update date * stress-af-alg: make stress_af_alg_cmp_crypto static * stress-af-alg: clean up pedantic clang-12 build warning * stress-sock: voidify unused arg opt for stress_set_socket_zerocopy * stress-sock: clean up warnings when MSG_ZEROCOPY is not defined * stress-af-alg: set rc to EXIT_SUCCESS for ignore algos * stress-af-alg: don't re-try to use algos that are marked as internal * stress-af-alg: fix typo in skcipher * kernel-coverage: add --sock-zerocopy option to sock stressor * stress-sock: add a --sock-zerocopy option to use MSG_ZEROCOPY * stress-sock: fix recvmmsg infinite loop * kernel-coverage: add sock mptcp protocol to coverage testing * stress-sock: add --sock-protocol option (tcp or mptcp allowed) * stress-af-alg: sort af-alg algos based on type then name * stress-af-alg-defconfigs.h: update crypto defconfigs table * stress-mmap: add more invalid mmap and munmap calls * stress-mmap: add some invalid mmappings to exercise kernel more * stress-mincore: add file backed mmap'd page to mincore upon * Remove trailing space and tabs from end of lines * stress-enosys: change quotactl_path syscall to quotactl_fd * stress-inval: change quotactl_path syscall to quotactl_fd * Add git-commit-id.h to .gitignore * Add stress-ng version and git id to debug info * stress-netdev: turn stress_netdev_check into a macro, fix some ioctls * stress-sysfs: make killed child an error condition * stress-sysfs: catch killing signals when exercising sysfs * core-out-of-memory: fix typo in comment * stress-netdev: fix build time check for SIOCGIFADDR * stress-quota: change quotactl_path syscall to quotactl_fd * stress-fanotify: remove unnecessary : from message * stress-fanotify: clean up error messages * stress-ramfs: remove ramfs duplicated name in stressor message * stress-fanotify: add stressor name to information logged message * Add --seed N option to set the initial random number generate seed * snapcraft: add architectures remote build info * stress-ng: move --times check into stress_times_dump * core-ftrace: add missing void on stress_ftace_stop helper * core-ftrace: replace int return with void for stop/free functions * stress-signest: uncomment signals that got disabled during debugging * stress-signest: cater for systems that don't have alternative signal stacks * stress-signest: add stressor name to info on unique signals handled * stress-signest: add run time check * stress-signest: don't use SIGINT, it's meant for halting stress-ng * stress-signest: add more yielding termination * stress-signest: cast mmap return to uint8_t to clean up warning on gcc 6.5.0 * stress-mlock: voidify args to avoid warnings * Add new nested signal handling stressor, sigtest * stress-mlock: periodically perform misc invalid or unusual mlock calls * stress-mlock: remove CAP_IPC_LOCK check, this is not needed since Linux 2.6.9 * Add build time check for munlockall * core-helper: cater for ARM64 SVE stack sizes * stress-userfaultfd: only report insufficient privilege warning on instance 0 * Makefile: remove -g * stress-cpu: use more builtin math functions * core-helper: don't print not implemented message multiple times, clean up msg * stress-vforkfmany: silence warnings concerning vfork being deprecated -- Colin King Thu, 24 Jun 2021 19:11:03 +0100 stress-ng (0.12.10-1) unstable; urgency=medium [Rosen Penev] * stress-fp-error: add pre-compiler checks for all floating-point exceptions [Colin Ian King] * Makefile: bump version * stress-schedpolicy: use new_policy rather than policy * Manual: update date * stress-zlib: use sizeof the object rather than the type * stress-tree: use sizeof the object rather than the type * stress-sockmany: use sizeof the object rather than the type * stress-sockfd: use sizeof the object rather than the type * stress-seccomp: use sizeof the object rather than the type * stress-rmap: use sizeof the object rather than the type * stress-open: use sizeof the object rather than the type * stress-mmapmany: use sizeof the object rather than the type * stress-memthrash: use sizeof the object rather than the type * stress-memrate: use sizeof the object rather than the type * stress-malloc: use sizeof the object rather than the type * stress-lockbus: use sizeof the object rather than the type * stress-list: use sizeof the object rather than the type * stress-hrtimers: use sizeof the object rather than the type * stress-handle: use sizeof the object rather than the type * stress-fiemap: use sizeof the object rather than the type * stress-epoll: use sizeof the object rather than the type * stress-efivar: use sizeof the object rather than the type * stress-dev-shm: use sizeof the object rather than the type * stress-cyclic: use sizeof the object rather than the type * stress-clone: use sizeof the object rather than the type * stress-apparmor: use sizeof the object rather than the type * stress-affinity: use sizeof the object rather than the type * core-thermal-zone: use sizeof the object rather than the type * core-mounts: use sizeof the object rather than the type * core-helper: use correct sizeof for ram_f, ram_s * core-hash: use sizeof the object rather than the type * core-cache: use sizeof the object rather than the type * stress-xattr: fix memory leak of large_tmp on error return path * stress-fanotify: only declare and use fan_fd2 if required * stress-dup: voidify return from waitpid * stress-xattr: allocate large_tmp on the heap rather than the stack * stress-ng: use shim wrapped strlcpy * stress-usefaultfd: fix missing \n at end of pr_inf message * stress-sigabort: move scope of variable ret to deeper scope * stress-ng: move scope of variable total * stress-io-uring: return EXIT_NOT_IMPLEMENTED when io-uring is not implemented * stress-io-uring: check for ENOSYS on io-uring setup * stress-mq: move scope of variable ret * stress-fp-error: clean up build warning on d1, d2 when FE_INEXACT is not available * stress-fault: don't use t1, t2, dt if getrusage is not supported * stress-dev: fix memcpy/memset thinko * stress-ng.h: remove HOT annotation from keep stressing helpers * stress-stream: ensure initialized values are in range 0..0.99999 * stress-io-uring: constify stress_io_uring_setups array * stress-io-uring: don't abort early on close op setup on failed dup * stress-ng: fix memory leak, call stress_temp_path_free before stressor exits * stress-ng: fix memory leak, call stress_temp_path_free in usage * syscalls: add io_pgetevents to exercised syscalls * stress-aio-linux: exercise io_pgetevents if it is available * stress-aio-linux: attempt to call async fsync, don't redo if it fails * stress-io-uring: add madvise io-uring op * stress-io-uring: add close op, and zero fields on other ops * stress-aio: add aio_fsync call for more kernel coverage * kernel-coverage.sh: add reiserfs to the mix * kernel-coverage: disable core dump handlers such as apport * stress-io-uring: add READ and WRITE opcodes * stress-io-uring: add random block sized seek position for READV/WRITEV ops * stress-io-uring: drive opcode calls by a lookup table, add fallocate + fadvise ops * stress-io-uring: move completion handling to submit call * stress-io-uring: bump bogo-op counter for each successful completion * stress-io-uring: refactor op-code handling, add helper callbacks * stress-fcntl: exercise some invalid fcntl operations for more coverage * stress-vforkmany: fix handling on OS X where vfork() fails * stress-vforkmany: add another yield point after touching pages * stress-bad-altstack: force child death on recursive signals * stress-bad-altstack: Fix hang on OS X * stress-ng.h: disable MLOCKED macro on OS X as it clashes with NORETURN * stress-xattr: pass oversized xattr using a larger buffer * stress-urandom: pass entropy count in variable rather than by value * stress-urandom: initialize val to clean up valgrind warning * stress-sockabuse: call futimens with valid time * stress-sock: zero ifc to avoid valgrind warning * stress-shm: memset msg to zero, cleans up valgrind warning * stress-set: ensure array groups is zero'd, clean up valgrind warning * stress-sem-sysv: make the array more than large enough * stress-schedpolicy: memset attr to zero to clean up warnings from valgrind * stress-schedpolicy: memset large_attr to zero to clean up valgrind warning * stress-prctl: set arg2 in PR_GET_KEEPCAPS to zero * stress-prctl: set arg2 in PR_SET_CHILD_SUBREAPER zero * stress-eventfd: ensure buffer is zero'd before writing it * stress-dev: zero filename array, cleans up valgrind warnings * stress-clock: ensure initialized t1 is used to set the time * stress-procfs: remove debug printf * stress-procfs: ensure entire buffer is zero'd before scanning it * stress-procfs: fix negative index into dlist[] array * stress-fork: fix fork not being called * stress-fanotify: exercise fanotify FAN_CLASS_NOTIF | FAN_REPORT_DFID_NAME * Add per-stressor metrics to metrics output * kernel-coverage: add sysinfo for mounted fs coverage * kernel-coverage: use -1 to specify number of CPUS online -- Colin King Mon, 2 Jun 2021 13:12:11 +0100 stress-ng (0.12.09-1) unstable; urgency=medium * Makefile: bump version * Manual: update date * stress-iomix: cast full expression to off_t instead of 64 bit mwc value * stress-misaligned: only use target clones attribute if compiler supports it * stress-misaligned: fix build error on Hiaku-r1beta8 gcc 7.3.0 * stress-ng.h: enable attribute features for versions of clang * stress-ng.h: remove unused PACKED macro * core-ftrace: add ; after RB_* macros * test/test-mq-sysv.c: memset msg to clean up cppcheck warning * stress-misaligned: only use atomics if HAVE_ATOMIC is defined * stress-sigfpe: remove SA_SIGINFO check on err_code * stress-set: don't cast setgroups size to size_t for DragonFlyBSD * stress-sigpipe: declare function pipe_child if clone is available * stress-tree: fix build on DragonFlyBSD 6.0 * stress-null: only declare variable off on linux builds * stress-pthread: only declare lret if is required * stress-memthrash: fix SEGV due to incorrect offset based on uintptr_r cast * stress-sync-file: fix -ve offset on random sync file location * stress-ng: clean up implicit type warnings from pedantic clang build * stress-zlib: fix incorrect buffer size on compression * stress-zlib: fix --zlib-method option * stress-zero: clean up implicit cast warnings with pedantic clang builds * stress-yield: clean up implicit cast warnings with pedantic clang builds * stress-xattr: clean up implicit cast warnings with pedantic clang builds * stress-wait: clean up implicit cast warnings with pedantic clang builds * stress-vm-rw: clean up implicit cast warnings with pedantic clang builds * stress-udp: cast non-int instance to int for int math * stress-tmpfs: clean up implicit cast warnings with pedantic clang builds * stress-timerfd: remove an extra ; and clean up some type casting * stress-timer: clean up implicit cast warnings with pedantic clang builds * stress-tee: clean up 2 minor casts for function call arguments * stress-sysfs: clean up implicit cast warnings with pedantic clang builds * stress-bad-addr: cast procs to rlim_t on rlim_cur/max assignments * stress-sync-file: fix casting and sync loop * stress-switch: stress-schedpolicy: clean up implicit cast warnings with pedantic clang builds * stress-sockpair: cast val++ arg to uint8_t to match type * stress-schedpolicy: clean up implicit cast warnings with pedantic clang builds * stress-swap: cast lseek offset to off_t type * stress-stream: clean up implicit cast warnings with pedantic clang builds * stress-stack: clean up implicit cast warnings with pedantic clang builds * stress-splice: clean up implicit cast warnings with pedantic clang builds * stress-sockmany: cast non-int instance to int for int math * stress-sockfd: add NORETURN hint to child func, clean up type cast warnings * stress-sockabuse: clean up pedantic clang warnings * stress-shellsort: assign data the correctly typed values * stress-scpt: cast non-int instance to int for int math * stress-sock: cast non-int instance to int for int math * stress-shm-sysv: clean up various pedantic clang warnings * stress-shm: clean up a few off_t fallocate/ftruncate arg warnings * stress-set: clean up implicit cast warnings with pedantic clang builds * stress-sendfile: clean up implicit cast warnings with pedantic clang builds * stress-seccomp: add NORETURN to exiting signal handler * stress-seal: clean up implicit cast warnings with pedantic clang builds * stress-rmap: add NORETURN hint, clean up implicit cast warnings * stress-resources: clean up implicit cast warnings with pedantic clang builds * stress-rename: explicitly cast flags arg to renameat2 to unsigned int * stress-remap-file-pages: cast i to the same data type of data[] * stress-reboot: clean up implicit cast warnings with pedantic clang builds * stress-rawudp: clean up implicit cast warnings with pedantic clang builds * stress-sysinval: clean up implicit cast warnings with pedantic clang builds * stress-tsearch: assign data the correctly typed values * stress-tun: cast port to same type as addr.sin_port * stress-unshare: remove ; from macro UNSHARE definition * stress-rawsock: use correct ssize_t return variable for sendto * stress-rawpkt: add NORETURN hint on child, clean up implicit cast warning * stress-rawdev: clean up implicit cast warnings with pedantic clang builds * stress-radixsort: reduce n from size_t to n * stress-pthread: clean up implicit cast warnings with pedantic clang builds * stress-procfs: clean up implicit cast warnings with pedantic clang builds * stress-prtctl: cast args->page_size to intptr_t to match mask type * stress-poll: forgot to add int cast to buf comparison on sanity check * stress-poll: clean up implicit cast warnings with pedantic clang builds * stress-pkey: clean up implicit cast warnings with pedantic clang builds * stress-pipeherd: fix implicit type cast warnings, make float math double * stress-pipeherd: fix type of counter, it should be uint64_t * stress-netdev: fix type of n, it should be int, cast divisor instead * stress-pipe: clean up implicit cast warnings with pedantic clang builds * stress-pidfd: clean up implicit cast warnings with pedantic clang builds * stress-physpage: clean up implicit cast warnings with pedantic clang builds * stress-opcode: clean up implicit cast warnings with pedantic clang builds * stress-null: clean up implicit clang type warnings on mmapo offset arg * stress-nice: clean up implicit cast warnings with pedantic clang builds * stress-netlink-task: clean up implicit cast warnings with pedantic clang builds * stress-netlink-proc: clean up implicit cast warnings with pedantic clang builds * stress-opcode: add NORETURN on signal handler * stress-numa: clean up implicit cast warnings with pedantic clang builds * stress-netdev: clean up implicit cast warnings with pedantic clang builds * stress-mq: stress-msync: clean up some implicit type casting warnings * stress-msync: clean up some implicit type casting warnings * stress-msg: fix too long a constant or operand, clean up misc warnings * stress-mmapaddr: clean up some implicit type casting warnings * stress-mmap: clean up some implicit type casting warnings * stress-mknod: use mode_t for mknod mode type in stress_do_mknod * stress-misaligned: clean up some implicit type casting warnings * stress-idle-page: clean up implicit cast warnings with pedantic clang builds * stress-misaligned: add NORETURN on signal handler * stress-mincore: clean up some implicit type casting warnings * stress-mergesort: cast return from stress_mwc32 to int32_t * stress-memthrash: clean up some implicit type casting warnings * stress-memrate: clean up some implicit type casting warnings * stress-memfd: clean up implicit cast warnings with pedantic clang builds * stress-membarrier: ensure the cmd type to membarrier call is int * stress-matrix-3d: clean up some implicit type casting warnings * stress-matrix: clean up some implicit type casting warnings * stress-malloc: fix never reached memory reaping and clean up warnings * stress-lsearch: clean up implicit cast warnings with pedantic clang builds * stress-loop: clean up implicit cast warnings with pedantic clang builds * stress-longjmp: cast uint64_t to double to avoid precision loss * stress-lockofd: cast return from stress_mwc64 to off_t * stress-locka: cast return from stress_mwc64 to off_t * stress-link: clean up implicit cast warnings with pedantic clang builds * stress-l1cache: clean up implicit cast warnings with pedantic clang builds * stress-klog: cast uint32_t math to int to clean up implicit cast warning * stress-itimer: cast itimer_freq to double to clean up implicit cast warning * stress-ipsec-mb: clean up implicit cast warnings with pedantic clang builds * stress-io-uring: clean up implicit cast warnings with pedantic clang builds * stress-ioprio: cast ioprio_get who arg to int * stress-ioport: cast ioport from arg to unsigned long * stress-iomix: clean up implicit cast warnings with pedantic clang builds * stress-inotify: clean up implicit cast warnings with pedantic clang builds * stress-aio-linux: assign invalid value to offset and nbytes in a portable way * stress-misaligned: fix i386 built error for 128 bit integers * stress-icmp-flood: clean up implicit cast warnings with pedantic clang builds * stress-bad-altstack: remove void * cast of signal handler function * stress-hdd: cast ret to size_t to clear up build warning * stress-cpu-online: clean up build warnings * stress-af-alg: cast j to ssize_t to compare with send() return * stress-hdd: clean up implicit cast warnings with pedantic clang builds * stress-getdent: clean up implicit cast warnings with pedantic clang builds * stress-fanotify: clean up implicit cast warnings with pedantic clang builds * stress-fallocate: clean up implicit cast warnings with pedantic clang builds * stress-epoll: clean up implicit cast warnings with pedantic clang builds * stress-fp-error: clean up implicit cast warnings with pedantic clang builds * stress-filename: clean up implicit cast warnings with pedantic clang builds * stress-fiemap: clean up implicit cast warnings with pedantic clang builds * stress-file-ioctl: cast ~0 to uint16_t * stress-eventfd: clean up implicit cast warning with pedantic clang builds * stress-efivar: clean up implicit cast warnings with pedantic clang builds * stress-bad-altstack: add NORETURN on stress_signal_handler * stress-dup: clean up implicit cast warnings with pedantic clang builds * stress-dnotify: clean up implicit cast warnings with pedantic clang builds * stress-dev-shm: clean up implicit cast warnings with pedantic clang builds * stress-dev: clean up implicit cast warnings with pedantic clang builds * stress-dccp: clean up implicit cast warning with pedantic clang builds * stress-ioctl: clean up implicit cast warnings with pedantic clang builds * stress-aio: clean up implicit cast warnings with pedantic clang builds * stress-af-alg: clean up implicit cast warnings with pedantic clang builds * stress-verity: clean up pedantic build warnings * stress-utime: clean up pedantic clang warning * stress-cyclic: clean up some implicit type warnings * stress-cpu: clean up some implicit type cast warnings * stress-cpu: clean up type warnings * stress-sysbadaddr: clean up implicit type warnings, remove stress_badhandler * core-shim: fix get_mempolicy shim, 4th arg should be void * * stress-rtc: clean up int and ssize_t type conversions * stress-cache: add some minor int type cast conversion * core-perf: explicitly cast return from tolower to char * stress-softlockup: add NORETURN to signal handler, silence SIZEOF_ARRAY warning * stress-qsort: cast return from stress_mwc32() to match assigned type * stress-ping-sock: cast return from getpid() to match type of echo.id * stress-mmapfixed: use the stress_sig_handler_exit helper * stress-key: make variable len ssize_t to match return from system_read * stress-heapsort: cast return from stress_mwc32() to match assigned type * stress-getrandom: ensure flag is unsigned int to match getrandom flag arg * stress-full: make ptr a uint8_t to remove need for casting on put call * stress-flock: use ssize_t var for system_read return * stress-exec: clang in pedantic mode suggests pthread_dummy is zero'd * stress-bad-altstack: remove NORETURN * stress-apparmor: size arg of read should be size_t, cast it so * stress-bad-altstack: clean up pedantic clang build warnings. * Add autobuild detection of __attribute__((fallthrough)) * Use the stress_sig_handler_exit helper * core-helper: add stress_sig_handler_exit to exit on a signal * stress-bind-mount: add NORETURN MLOCKED_TEXT annotations to signal handler * stress-aio-linux: clean up gcc build warning * stress-apparmor: clean up gcc build warning * stress-get: add missing cast to clean up gcc build warning * stress-get: fix various pedantic clang build warnings * stress-crypt: remove _XOPEN_SOURCE define * stress-apparmor: clean up pedantic build warnings * stress-aio-linux: clean up multiple implicit type conversions * core-ignite-cpu: pass cpu as a int32_t argument * stress-fcntl: fix hint assignment, use UL not ULL * stress-mmapmany: fix format specifier for max * stress-madvise: make ~0ULL portable to 32 bit arches * stress-io-uring: mmap buffers with MAP_POPULATE * stress-io-uring: add more yield points in main loop * core-io-uring: include config.h * core-personality.c: include config.h * core-perf-event: include config.h * core-ignite-cpu: fix build warning, make cpu an int32_t * stress-sigpipe: use ssize_t for read return assignments, clean up child call * stress-sigio: use ssize_t for read return assignments * stress-sigfpe: add NORETURN to signal handler and clean up type warnings * stress-sigfd: use ssize_t for read return assignments * stress-sigsegv: add NORETURN to handler, fix cast on %p * stress-tree: remove extraneous ; after RB_* and SPLAY_* macros * stress-vdso: clean up some pedantic implicit type warnings * stress-userfaultfd: clean up pedantic warnings, add NORETURN to handler, fix cast * stress-ng: clean up some pedantic clang warnings * stress-ng: add OPT_undefined for undefined non-option * core-cache: clean up implicit type conversion warnings * core-vmstat: add appropriate type casts to clean up pedantic clang warnings * core-parse-opts: cast int values to double for mixed type math * operation * core-thrash: clean up type warnings * core-ignite-cpu: clean up type conversion warnings * core-perf: clean up various type conversion warnings * core-try-open: ensure status is zero, cleans up pedantic clang warning * stress-ng.h: make thermal zone type_instance a uint32_t * core-sched: clean up implicit type conversions * core-out-of-memory: initialize save_errno to zero, clean up clang warning * core-net: clean up type warnings and add wrap around check on port overflow * stress-skiplist: use unsigned long as value to save/fetch * stress-seek: clean up off_t implicit type conversion warnings * stress-lockbus: add NORETURN hint on stress_sigbus_handler * stress-lockbus: wrap macros with while .. do (0) wrapper * stress-enosys: add NORETURN hint on stress_badhandler * stress-enosys: clean up implicit type conversion changes * stress-bsearch: fix type warnings with a couple of changes * stress-mmapmany: clean up warnings, make max a long * stress-open: clean up missing int casts on fd comparison * core-helper: clean up various implicit type warnings * stress-open: clean up various implicit type conversions warning * stress-oom-pipe: use size_t for max pipe fd array size * stress-mmapmany: use size_t for max mappings rather then ssize_t * stress-mmapfork: clean pedantic %p warning * stress-mmapfork: add NORETURN hint on stress_segvhandler * stress-chmod: fix incorrect type in 3rd arg in do_fchmod * stress-cap: make constant unsigned * stress-fcntl: clean up implicit type casts * stress-fault: remove stray redundant ; * stress-env: fix implicit type conversion warning * stress-dirdeep: add explicit cast to char on int expression * stress-dir: add check for mode_t, use it or int * stress-ng: make g_unsupported static * stress-funccall: clean up implicit type cast warnings * stress-copy-file: clean up some implicit cast warnings * stress-clone: clean up some implicit type warnings * core-shim: fix extraneous ) build failure * stress-mcontend: clean up implicit type conversion warnings * stress-kcmp: cast to types of fields of kcmp_epoll_slot * stress-kcmp: clean up implicit type conversion warnings on kcmp call * stress-kcmp: wrap macros with while .. do (0) wrapper * stress-vecmath: fix int/uint type casting pedantic clang warnings * stress-vecmath: wrap macro OPS with while .. do (0) wrapper * stress-dev: move CDROMVOLCTRL check to around the IOCTL_TIMEOUT macro * stress-dev: wrap IOCTL_TIMEOUT with while .. do (0) wrapper * stress-chown: cast uid_t and gid_t parameters * stress-branch: simplify LIKELY macro expression to clean up warning * stress-atomic: add explicit type cast to atomic arguments * core-shim: clean up implicit cast of tv_nsec result * core-shim: cast syscall and shim_enosys returns to relevant return type * stress-sysinfo: replace macro with macro text * stress-madvise: ensure ~0 is a ULL type * stress-madvise: check return type for writes need to be ssize_t * stress-madvise: only define NUM_SOFT_OFFLINE_MAX if MADV_SOFT_OFFLINE is required * stress-madvise: add NORETURN hint on stress_sigbus_handler * stress-bad-ioctl: add NORETURN hint on stress_segv_handler * core-ftrace: count should be int64_t * core-ftrace: remove redundant ; after RB_* macros * stress-dynlib: add NORETURN hint on stress_segvhandler * stress-dnotify: remove unused macro DIR_FLAGS * stress-dentry: check return type for reads need to be ssize_t * stress-daemon: make buf uint8_t to clean up signedness warning on 0xff * stress-close: fix type conversion warning on float multiplication * stress-close: ensure final arg of close_range is unsigned int * stress-urandom: make ret argument in check_eperm call ssize_t * stress-urandom: make the buffer a uint8_t instead of char * stress-vforkmany: explicitly cast sleep time * stress-vforkmany: remove unused macro STACK_SIZE * stress-vm-splice: use correct types for splice return and iov.iov_len * stress-watchdog: add NORETURN hint for stress_watchdog_handler * stress-watchdog: ret should be ssize_t on write() return * stress-vm: pass buffer end to stress methods and use void *buf pointers * stress-vm: cast %p args to volatile void * * stress-vm: fix cast of sleep argument * stress-vm: remove ROR64 macro, it is no longer used * stress-vm: clean up some int to uint8_t implicit casts * stress-vm: explicitly cast int expression to uint8_t in ROR macro * stress-vm: fix rotate right on 8 bit values * stress-vm: use uint32_t for mwc seed values * stress-vm: wrap { } macros with do while (0) to avoid ; warnings * Move STRESSOR_DECL to stress-ng.h * core-thrash: warning clean-ups * core-time: explicitly cast ret to size_t * core-mounts: cast max to size_t to avoid memset implicit cast * core-mwc: clean up some implicit casting warnings * core-log: use size_t for data write lengths * core-hash: clean up implicit conversions with signedness changes * core-cache: remove redundant return 0 * core-mlock: use uintptr_t casts with unsigned long * core-vmstat: make vmstat_delay and thermalstat_delay static * stress-ng.h: Rename __STRESS_NG_H__ to STRESS_NG_H * stress-version.h: Rename _VER_ to STRESS_VERSION_NUMBER * stress-ng.h: Fix incorrect type in stress_long_double_put * core-cache: use sscanf to parse a uint64_t rather than atoi * core-cache: replace use of %ms with %c to get size * stress-dup: unlink info->fifoname before removing the directory * treewide: add ( ) around expressions in keeping with stress-ng coding style * stress-misaligned: user 2/4/8 byte variants of __atomic_fetch_add * stress-misaligned: allow 128 atomic increments on x86 * stress-misaligned: remove incorrect info increment * stress-misaligned: add increment and atomic increment methods * Manual: update --bad-altstack testing description * stress-bad-altstack: exercise BUS error on stacks * stress-vforkmany: fix times() info due to SIGKILLing children * stress-revio: unlink file as soon as possible * stress-dev: fix incorrect close, it should be removed * core-helper: add aborting: prefix to error message * stress-xattr: fix = typo, should be == for a comparison * stress-link: fix = typo, should be == for a comparison * stress-dev: report the name of the device that failed on a stat failure * stress-link: skip stressor on EPERM link errors * stress-chmod: silently ignore EPERM errors on chmod * stress-chattr: treat EINVAL on EXT2 ioctls as permissible * stress-verity: treat EINVAL on FS_IOC_ENABLE_VERITY as verity not supported * stress-copy-file: rename ret to copy_ret to avoid name shadowing * stress-fiemap: don't remove tmp dir if it's not been created * stress-copy-file: handle initial mkdir failure correctly * stress-copy-file: check for EINVAL on copy_file_range * stress-hdd: add workaround to O_DIRECT open failure cleanup * stress-aio-linux: disable O_DIRECT for filesystems that do not support it * stress-chdir: move yield point detection to start of loop * stress-dentry: add yield point detection before starting iteration * stress-mknod: add yield point detection before starting iteration * stress-filename: add probing of maximum filename length * stress-hdd: cater for read failure on vfat on ENOSPC * stress-xattr: silently ignore E2BIG error on *setxattr calls * stress-dup: fix tidy clean up paths for tmp path and mmap'd memory * stress-copy-file: don't rmdir the test directory if it was not created * stress-sync-file: treat EINTR as a SIGALRM/SIGINT termination w/o error * stress-splice: initialize buffer before writing it down the pipe * stress-quota: add quotactl_path support introduced in Linux 5.13 * stress-enosys: add quotactl_path system call * stress-sysinval: fix number of args to quotactl system call * stress-sysinval: add quotactl_path system call * Add missing whitespaces in expressions * stress-splice: add a looped pipe splice to the mix * stress-landlock: exercise illegal landlock_add_rule arguments * stress-ng: fix Liunx typo * stress-dirdeep: add sanity checks for scandir failures * core-helper: encode hashed filenames into base36 14 char string * stress-dev: remove debug message on device being processed * stress-landlock: replace security=landlock to lsm=landlock * stress-misaligned: work around misaligned segv on 128 bit reads * Add stress_sighandler_default to restore handler to SIG_DFL * stress-misaligned: report the misaligned stress methods used * stress-misaligned: add uint8_t * cast to clean up gcc 6.5.0 build warning * stress-fallocate: re-order variable declarations, cleans up clobber warning * stress-misaligned: add a new misaligned memory read/write stressor * stress-list: replace entry with entries * stress-dev: add TIOCGPTPEER ioctl * stress-dev: add TIOCSSERIAL ioctl * stess-splice: add workaround to failed splice from /dev/zero to pipe * stress-landlock: remove empty line * kernel-coverage: add more f2fs mkfs options to exercise the fs more * stress-landlock: fix ENOSYS error return on unimplemented syscalls * stress-landlock: exercise illegal landlock API arguments -- Colin King Sat, 22 May 2021 19:54:16 +0100 stress-ng (0.12.08-1) unstable; urgency=medium [Colin Ian King] * Makefile: bump version * stress-landlock: give hint that landlock LSM may need to be enabled * stress-landlock: voidify unused args in system call wrappers * stress-sigio: disable SIGIOs and close pipe end as soon as possible * stress-zlib: clean up clobber warnings * stress-ng: make us_total a temp variable in local scope * README: add in architectures and update stats * stress-iomix: add POSIX_FADV_* advice defined checks * stress-malloc: clean up void* -> void * * kernel-coverage: add more file systems and mount options * stress-sigio: fix segfault (LP: #1918095) * stress-xattr: add yield points in xattr loops * stress-inotify: break out of write loop on ENOSPC, update yielding * stress-dnotify: break out of write loop on ENOSPC, update yielding * stress-msg: replace tmp return variable rc with ret * stress-landlock: add Linux 5.13 landlock system call stressor * kernel-coverage: add more file systems into the coverage tests * stress-sysinval: add in landlock_add_rule and landlock_restrict_self * stress-enosys: add in landlock_add_rule and landlock_restrict_self * stress-sysinval: add landlock_create_ruleset to inval system call table * stress-enosys: add new Linux 5.13 landlock_create_ruleset syscall * stress-fallocate: replace space indentation with tab * stress-fallocate: handle SIGALRM and SIGINT more responsively * stress-fallocate: add more yield points * stress-link: add yield point check on each iteration * stress-membarrier: keep membarrier cmd flags in sync with kernel * stress-open: add an illegal all-bits set resolve flags setting * stress-open: work through the openat2 resolve flags for more coverage * stress-ng: add username if it is fetchable to syslog info * stress-ng: fix argument dumping from argv[] to syslog * core-setting: ensure string setting types are free'd * stress-stackmmap: Fix stack_sig mapping, add missing anonymous flag * stress-ipsec-mb: ensure all the timing data is set to 0.0 * stress-personality: just make zero sized array a 1 element sized array * stress-aio-linux: fix the allocation size of cbs * core-vmstat: ensure tz_info_list is initialized for non thermalstat_delay cases * stress-l1cache: add another L1 cache set size sanity check * stress-personality: make failed array 1 element when n == 0 * stress-sysinval: remove redundant re-assignment of syscalls_exercised * stress-af-alg: ensure info.name and info.type are free'd on failed add * stress-affinity: ensure pids array is zero'd before us * stress-vm: remove incorrect re-setting of counter c in 2nd loop * stress-vdso: remove redundant assignment to str * stress-userfaultfd: break assignment and check into two statements * stress-verity: check ioctl FS_IOC_GETFLAGS flags only if ioctl is OK * stress-udp: add missing voidifications on ignored return from setsockopt * stress-run: add missing voidifications on ignored return from ioctl * stress-sysinfo: don't stat on a null mnts[i] * stress-sysfs: voidify return from ppoll call * stress-procfs: only check statbuf.st_mode if fstat returned 0 * stress-fcntl: voidify returns of fcntl calls * stress-cap: voidify returns of capget calls * stress-cpu: add div32 cpu stressor method, remove k from div64 * stress-tsc: use clock time rdtime rather than cycles for RISC-V * stress-msg: cleanup resources on a fork failure * stress-msg: allocate msgq_ids on the heap, don't use the stack -- Colin King Thu, 6 May 2021 18:44:22 +0100 stress-ng (0.12.07-1) unstable; urgency=medium [Colin Ian King] * Makefile: bump version * core-helper: uncapitalize SWAP -> swap * stress-l1cache: only compute cache size if it is not provided * stress-l1cache: skip stressor if cache size is abnormal * stress-l1cache: check for correct ways and line_size * stress-fork: silence warnings concerning vfork being deprecated * stress-cpu: fix double arg cpow and pow macros * Fix typo in builtin rint config checking * Rename test-builtin-cpu-is.c to test/test-builtin-cpu-is-power9.c * stress-cpu: parameterise workaround math macros * Add build detection and use builtins for fabs, fabsl, rint, rintl, sqrt and sqrtl * stress-sigabrt: fix build warning when built with gcc-11 PEDANTIC * Use a void * pointer for the mapping to avoid munmap warning * stress-wcstr: don't exercise wcscmp on M68K * stress-shm-sysv: don't declare get_bad_shmid for M68K * stress-shm-sysv: don't declare bad_shmid for M68K * stress-shm-sysv: don't pass NULL args to shmctl on M68K * stress-fp-error: disabled full fp error checkking on M68K * Add M68K (Motorola 68000) family #define * stress-ng: rename variable exit_status to wexit_status * Add cppcheck-suppress annotations to silence cppcheck on known false positives * stress-sigfpe: don't declare err_code when SA_SIGINFO is not defined * stress-dev: clean up some cppcheck warnings * stress-bad-altstack: don't use null vdso address * stress-cpu: increase number of iterations for omega stressor * stress-dev: disable play/pause ioctl on CD-ROMs * core-cache: remove redundant null check on cpu_path * core-cache: remove some redundant code * core-cache: rework to make cache detection more robust * core-cache: cater for offline CPUs * core-cache: don't use auxvals if non of the AT_* cache defines exist * stress-prctl: exercise PR_SET_SYSCALL_USER_DISPATCH system call * emulation * core-helper: print cache level being used in more informative way * stress_cache_alloc: use mmap'd shared memory rather than calloc'd memory * core-cache: determine cache size via getauxval * core-cache: add support for linux SPARC 64 cache information * stress-sigabrt: use handler and non-handler modes of SIGABRT * Check for both __riscv__ and __riscv macros * stress-userfaultfd: skip test if EPERM is returned * stress-ng: translate stressor EXIT_FAILURE to EXIT_NOT_SUCCESS * stress-rdrand: add some simple 64 bit random data sanity checks * stress-list: add stress_list_slistt to all methods * stress-list: check for defined sys/queue.h macros before using them * stress-list: fix typo, should build if HAVE_SYS_QUEUE_H defined * stress-list: had hand-crafted slistt method * Add list stressor to exercise insertion/find/removal of various list types * stress-mknod: silently ignore EINVAL on mknod failures * stress-signal: fall back to libc signal() if syscall returns ENOSYS * core-helper: Add stress_get_stack_top to determine stack stop * Makefile: pass LDFLAGS to function test builds, echo configs on VERBOSE=1 * travis: update with more recent build disto and add more libraries * stress-chdir: ensure statbuf is initialized * Revert "stress-chdir: fchmod on recently fetched statbuf st_mode" * stress-pthread: make pthread stack shared and ensure it's resident * core-helper: Fix -k option, don't change the process name * stress-pthead: unmap stack after pthread has joined * stress-signal: dont call signal syscall directly * stress-memthrash: fix off-by-one array overflow on swap method * stress-memthrash: don't perform misaligned read/writes * stress-memthrash: calculate number of threads based on online CPU count * stress-fork: remove residual fork call * Makefile: Add MAN_COMPRESS to control stress-ng.1 compression on install rule * stress-fork: remove syscall(__NR_fork) * stress-fork: set pid and errno on an unknown fork case * stress-fork: done use fork shim helper, move code into core stressor loop * Add system information in -v debug output * core-perf: clean up false positive static analysis warning * test/test-mq-posix: memset msg to clean up static analysis warning * stress-chdir: fchmod on recently fetched statbuf st_mode * stress-matrix-3d: ensure maxtrix_3d_method_name is null * stress-aio-linux: ensure fds is set to null on error * stress-sysinval: remove extraneous ) in alloc_hugepages syscall info * stress-sysinval: re-work resource cleanup on error * stress-sysinval: add system call utilization stats * stress-ng: prefix functions with stress_ * stress-ng: rename stressors_{init|deinit} to stress_stressors_{init|deinit} * Rename stress_{map|unmap}_shared to stress_shared_{map|unmap} * Rename stress_free_stressors to stress_stressors_free * Rename stress_free_settings to stress_settings_free * Rename stress_free_temp_path to stress_temp_path_free * Break && macro checks into multi-lines to match stress-ng code style * stress-cpu: add float64 64 bit floating point cpu stress method * stress-cpu: add a lfsr32 cpu method -- Colin King Wed, 21 Apr 2021 19:40:15 +0100 stress-ng (0.12.06-1) unstable; urgency=medium [Helmut Grohne] * Add VERBOSE build options (Closes: #971719) [Colin Ian King] * Makefile: bump version * Makefile: update code name * Manual: update date * Makefile.config: move the HAVE_VLA_ARG * stress-zlib: add missing , between string literals * stress-cpu: don't run checksums on zero sized buffers * Makefile.config: re-order build time checks for pretty output * Makefile.config: remove extraneous .h from userfaultfd.h text * Makefile.config: remove leading space before swapcontext text * Makefile.config: fix missing "struct" test from message * Makefile.config: emit yes/no answer to config checks * Manual: clarify the 0 or less than zero number of instances * Makefile: generate config.h file from Makefile.config * Replace #if MACRO with #if defined(MACRO) * stress-sysbadaddr: don't use read/write if readv/writev are not available * stress-hdd: fall back to read/write if readv/writev are not available * stress-cyclic: rework when to define stress_cyclic_stats * stress-cyclic: build in stress_cyclic_stats only if it is required * stress-set: clear up static analysis warning -- Colin King Thu, 24 Mar 2021 13:14:15 +0000 stress-ng (0.12.05-1) unstable; urgency=medium [Witold Baryluk] * stress-cpu.c update proc state to RUN before the main loop [Colin Ian King] * Makefile: bump version * Manual: update date * stress-l1cache: add pointer casting for mmap/munmap for openhipster * stress-af-alg-defconfigs.h: minor sort re-ordering * stress-af-alg: make --af-alg-dump option dump the stringified type * stress-ioport: fix typo in comment * stress-l1cache: remove a line * stress-l1cache: skip stressor if l1cache info is zero * core-helper: rename __stress_get_stack_direction * stress-mmapfork: rename __strlcat to notrunc_strlcat * fast-test-all: omit l1cache as this requires cache info that may not be available * stress-l1cache: fix non-Linux build failure * stress-timer: periodically exercise /proc/self/timers * stress-cpu: add exim's nhash for one more hashing cpu exercising method * stress-ng: report skipped messages only on the first instance * stress-verity: add FS_IOC_READ_VERITY_METADATA ioctl * stress-pthread: report the maximum number of concurrent pthreads * stress-cpu: update short help information * stress-ng: add CPU % used per processor metrics * Manual: update contributors list * core-cache: assume CPU is online if online information not available * stress-io-uring: remove debug message * stress-l1cache: handle non-power of 2 alignments * stress-l1cache: remove unused variable ret * stress-l1cache: add new level 1 cache stressor * core-cache: fix fetching of cache ways information * stress-cyclic: add build time check for clock_gettime in stress_cyclic_usleep * stress-dentry: fix build warning of utime when utime is not declared * stress-rawsock: add build time check for HAVE_ICMPHDR * stress-dentry: add build time check for struct utimbuf -- Colin King Fri, 12 Mar 2021 09:44:11 +0000 stress-ng (0.12.04-1) unstable; urgency=medium [Colin Ian King] * Makefile: bump version * Manual: update date * stress-ng: remove duplicate shadowing statbuf declaration * core-helper: remove const from stack argument * stress-vforkmany: cast mmap return to uint8_t * * stress-sock: voidify unused argument rt * stress-rlimit: cast mmap return to uint8_t * * stress-context: cast mmap return to uint8_t * * core-helper: cast mmap return to uint8_t * stress-malloc: don't declare keep_thread_running_flag for non-pthread builds * stress-ng: use stat method of inode file mode checking * stack handling: use _SC_SIGSTKSZ and _SC_MINSIGSTKSZ * stress-sock: avoid some socket ioctls on RT kernels * core-helper: clean up stress_{read|write}_buffer code style * core-helper: replace void * pointer math with char * * stress-fiemap: use light weight racy counting for bogo-ops * stress-fiemap: add some extra fsync flushes for I/O blocking * stress-x86syscall: add build time checks for __NR* macros * stress-utime: fix build failure when O_PATH is not supported * stress-exec: don't perform exec_garbage if O_PATH is not supported * stress-exec: add build time check for O_PATH * stress-cyclic: add hint of how to fix -EBUSY warning * core-sched: make runtime 90% of deadline * stress-procfs: add RISC-V /proc/bus/pci/ PCIIOC_CONTROLLER ioctl test * stress-vm: add mfence to rowhammer method * core-vmstat: ensure *stat stats have headings dumped out every 25 iterations * stress-rename: explicitly zero strings, don't unlink if empty * stress-cache: remove stress_power_of_two * stress-mlock: rename max to lockmax to avoid name shadowing * core-helper: initialize info struct * core-ftrace: initialize statfs buf to zero * stress-tmpfs: initialize statfs buf to zero * stress-ng: initialize pointer names to NULL * stress-mmapfork: initialize info struct * stress-switch: initialize pipefds to clean up warnings * stress-dirdeep: initialize pointer namelist to NULL * stress-bad-altstack: remove redundant continue * stress-mmapaddr: remove redundant continue statement * stress-ng: fix incorrect memset size * core-cache: initialize another namelist to clean up warnings * core-helper: initialize loadavg array with zeros * core-cache: initialize namelist to clean up warnings * stress-wait: initialize siginfo_t info struct to zero * stress-ipsec-mb: initialize key array to zero * stress-dirdeep: initialize pointer namelist to NULL * core-helper: initialize statvfs buf to zero * stress-pipe: initialize pipefds array to zero * stress-sigq: initialize siginfo_t info struct to zero * core-vmstat: initialized cpu_list to clean up warnings * core-helper: initialize statvfs buf to zero * stress-ng: initialize sysinfo info to zero * core-helper: initialize statvfs buf to zero * stress-filename: initialize statvfs buf to zero * core-helper: initialize sysinfo struct to zero * stress-mremap: remove redundant continue * stress-hrtimers: remove continue statement * stress-sysfs: remove redundant continue statement * stress-readahead: remove redundant continue statement * stress-sigabort: remove redundant continue statement * stress-mmapaddr: remove redundant continue statement * stress-io-uring: set submit fields to unused once resources are released * stress-memhotplug: remove | operator, assignment will suffice * stress-sock: clean up indentation * stress-rawpkt: clean up indentation * stress-io-ring: fix up io uring buffer cleanups * stress-mknod: fix array read overflow on array modes[] * stress-verity: ensure fd is closed on error exit path * stress-poll: close poll_fds on error return path * core-mounts: memzero mnts array to be totally safe * stress-urandom: close fd_rnd_blk if it was open * core-setting: free setting->name if setting->u.str is null * stress-timerfd: close file_fd on error exit return * stress-bad-ioctl: ensure fd is closed on when breaking from loop * stress-utime: close dir_fd if it is open * stress-open: check for fd >= 0 and not just > 0 * stress-poll: free pipe_fds on error return, fix memory leak * stress-timerfd: close file_fd on error return path * stress-io-uring: don't unmap submit->cq_mmap if it is the same as sq_map * stress-zombie: declare head before shim_waitpid call * stress-ioport: don't seek on -ve offset * stress-urandom: don't select on fd_rnd_blk if it could not be opened * stress-stream: avoid a zero 64 bit division (redo) * stress-sockfd: add missing termination goto on sockopt failure * stress-mlock: check for -ve sysconf error return * stress-mremap: don't mlock a null *buf * Revert "stress-seek: fix potential -ve offset seek" * stress-close: don't close a -ve file_fd * core-helper: check sysconf for failure * stress-mremap: only unmap *buf if it is not null * stress-seek: fix potential -ve offset seek * stress-lease: fix double close on fd * stress-efivar: use len rather than n for mapping size calls * test/test-inotify: check return from inotify_add_watch * core-helper: limit stress_get_max_file_limit to SIZE_MAX * stress-efivar: fix potential -ve mmap size * stress-rename: only close tmp_fd if it has been opened correctly * stress-seek: fix potential -ve offset seek * stress-msg: memset buf to zero to silence static analyzer warning * stress-verity: ensure fd is close on error exit * stress-malloc: free addr on error exit return * stress-malloc: free addr on error exit return * stress-msg: memset buf to zero to silence static analyzer warning * stress-schedpolicy: voidify return from sched_getattr call * test/test-inotify: voidify return from inotify_add_watch * core-vmstat: check the keep stressing flag for termination * stress-mq: voidify return from munmap() * stress-timer: ensure all fields to sev are initialized * stress-cyclic: ensure all fields to sev are initialized * core-helper: ensure max_sysconf is assigned just once * stress-pthread: voidify unused value * stress-pipe: fix incorrect write size * stress-dev: voidify return from wait, we can ignore a failure * stress-timerfd: don't bump count or max_timerfd if create failed * stress-timerfd: remove redundant initialization of file_fd * stress-epoll: ensure all fields to sev are initialized * stress-hrtimes: ensure all fields to sev are initialized * stress-prctl: add missing voidifications from return from prctl * stress-loop: voidify return from fsync * stress-rename: remove stray break that was added during debugging * stress-utime: don't pass NULL filename, some kernels can't handle this * stress-io-uring: remove redundant initialization of rc * core-ftrace: set time_us to zero if sscanf fails * stress-epoll: indicate that n is to be ignored * stress-io-uring: check if calloc failed * stress-resource: don't close a fd if the open failed * stress-stream: avoid a zero 64 bit division * stress-ioport: add in missing re-seek before write * voidify some ignored returns from stress_get_setting calls * stress-handle: ensure mount_fd is closed on a realloc failure * stress-pipeherd: avoid division by zero * stress-verity: ensure fd is close on error exit * stress-zlib: initialize all fields to stream_inf, stream_def and xsum * stress-schedpolicy: ensure param is initialized for invalid policy call * core-try-open: ensure all fields to sev struct are initialized * stress-udp: set slen of getsocketopt arg for UDPLITE_RECV_CSCOV * core-thermal-zone: handle null tz_info->type when calling stress_tz_type_instance * stress-ng: remove temporary files if stressors are killed prematurely * stress-msg: check for msgrcv errors that can occur during termination * stress-cpu: join two lines, no functional change * stress-cpu: fix nsqrt method that was actually doing not much * Add --malloc-pthreads N option to run allocations in N pthreads * stress-cache: optimize out switch statement and % operators -- Colin King Thu, 25 Feb 2021 16:08:51 +0100 stress-ng (0.12.03-1) unstable; urgency=medium [Adrian Ratiu] * stress-ng.h: fix build-breaking HAVE_USTAT typo [Colin Ian King] * Makefile: bump version * core-vmstat: Add delay time in seconds to vmstat and thermalstat * stress-cache: use % operator on indexes into cache * core-try-open: Make pid_t print and scanning more portable * stress-ng.h: don't include on OpenIndiana * core-helper: clean up build warning on unused parameter name * core-helper: add build time guards for setproctitle * Manual: update names of contributors * stress-dccp: add SIOCOUTQ ioctl, added in Linux 5.9 * stress-fanotify: exercise fanotify_init flags using a table * stress-chmod: make index i a size_t rather than an int * stress-cache: fix up missing tab in macro * stress-bad-ioctl: remove extraneous tab in struct definition * stress-af-alg: make size argument a size_t rather than an int * stress-zlib: make size argument a size_t rather than an int * stress-epoll: fix epoll_pwait2 call, add missing sigset size * stress-rawdev: don't allocate buffers on stack, use mmap * Add stressor process state information in argv[0] * README: add static build instructions for RHEL * stress-wcstr: don't use libbsd wcsl* when building static images * Disable mlocked regions to avoid linking issues on RHEL static builds * stress-str: don't use libbsd strl* when building static images * core-shim: don't use libbsd strl* when building static images * stress-dup: force unlink fifo file on cleanup * core-vmstat: cater for deltas that are negative * core-shim: fix build warning if sbrk is not defined * core-vmstat: use shim wrapper of strlcpy to avoid compat linking issues * core-shim: fix missing who argument to rusage shim system call * core-net: fix build warning on ppid on systems that don't use it * core-vmstat: show n/a for CPU speeds that are zero or less * core-vmstat: ensure string therms is zero * stress-pipeherd: move memset of rusage to fix build error on Haiku * Add buildtime check for rusage.ru_nvcsw field * Add buildtime check for rusage.ru_minflt field * core-try-open: fix build error on GNU/HURD * test/test-sem-sysv.c: touch all fields in arg to silence cppcheck * stress-utime: add fsync after each utimensat * stress-sock: break long #if define checks with newline * stress-sock: clean up cppcheck style warning * stress-rawdev: no need to declare typedefs for no-op build case * stress-pthread: clean up cppcheck warning and use coding style for multiple #defines * stress-pipeherd: improve guarding and usage of getrusage variables * stress-poll: enable HAVE_PSELECT code path * stress-memhotplug: no need to declare typedefs for non-linux cases * stress-kcmp: need to declare typedefs for specific build case * stress-fault: remove OS specific guarding to check for getrusage * stress-exec: no need to declare typedefs for non-linux cases * stress-clone: no need to declare typedefs if clone is not supported * core-vmstat: clean up initialization of pointer ptr * core-vmstat: no need to check for null if we are checking for ' ' too * core-vmstat: ensure fclose occurs on non-null opend fp * stress-pipe: fix memory leak of buffer on error return path * core-vmstat: fix fd leak on cpu scaling frequency * tests: clean up some pedantic Coverity static analysis warnings * Add --thermalstat option to dump out CPU and thermal information * stress-dev: avoid ttyS* lockups on low latency kernels * stress-dev: avoid blocking lockups on ttys * Add a STRESS_TRY_AGAIN don't give up flag and simplify try-open * stress-dev: set argv[0] at more appropriate name change points * stress-dev: set /proc/$pid/cmdline to contain name of device being exercised * stress-dev: handle lockups on ttyS* blocking opens * Add a new --vmstat option to show info like vmstat(8) * stress-full: add mmap operations to /dev/full * Add shim wrapper for the getrusage system call and build time detection * stress-poll: add --poll-fds N option to exercise more file descriptors * stress-nice: add braces around comment and statement * Replace keep_stressing macro with inlined function, add args param * stress-longjmp: remove JMP_BUF_MAGIC0, it was never completed * stress-zero: allocate buffers using mmap rather than on stack * stress-memrate: add 128 bit read/write option * stress-af-alg-defconfigs.h: update crypto defconfigs table * stress-memcpy: use "all" method by default, gets more testing spread * stress-cache: remove modulo operators, speed up code * stress-cache: ignore sfence if not available, add missing help and optimize * Force keep_stressing_flag to always be inlined -- Colin King Sat, 13 Feb 2021 22:23:24 +0000 stress-ng (0.12.02-1) unstable; urgency=medium [Adriand Martin] * Solved minor issue in README.Android Fixed minor issue related to CC variable when cross compiling [Jianshen Liu] * Fix read of TYPE_ID_STR value from jobfile [Colin Ian King] * Makefile: bump version * simplify allocation and null check to help cppcheck * Manual: update date * Fix a couple of spelling mistakes * README: update stress test count * stress-cpu: add the Fletcher16 checksum as a new cpu stress method * stress-vm-rw: uncomment goto failure exit * stress-vm-rw: write/read in 1G chunks * Manual: pluralize the word stat. * Manual: update contributors information * stress-schedpolicy: fix build warning when building with musl C library * stress-cpu: fix const warning from clang pedantic build * test-stime: pass address of time_t object to stime * Remove empty source * Add missing copyright dates and attribution * Add helper functions to get and free the temporary file path * kernel-coverage.sh: add f2fs bfs btrfs tmpfs and ramfs * core-cache: remove some debug messages, they add noise * stress-sigsegv: force SEGV with illegal long instruction (x86 only) * stress-pipe: allocate pipe buffer from heap and not stack * Manual: update stress-cpu ackermann description * stress-cpu: reduce ackermann m term to reduce influence on all cpu methods * Remove #define for __NR_memfd_secret * stress-resources: fix mq files not being reaped * stress-cpu: add ipv4checksum method * core-helper: rename stress_ip_checksum to stress_ipv4_checksum * stress-dev: only perform open tries if never opened before * core-try-open: make helper function static * Use the new try stress_try_open error returns to ensure open fails are skipped * core-try-open: resolve some stress-dev blocking issues, add richer error return * core-try-open: quick stat check before expensive slow open * Fix spelling mistakes found using codespell * stress-vecmath: avoid overflow sign extension errors * stress-secretmem: fix void cast on mappings * stress-secretmem: free mappings on early error return * stress-resources: ensure early break from loop gets cleaned up * stress-cpu: add Murmur3_32 hash to cpu stressor * core-thermal-zone: add some more comments * Manual: add a --cpu-load example to one of the --cpu stressor examples * stress-ng: forgot to include type_instance field change in previous commit * core-thermal-zone: sort thermal zone types on type name and type name instance * stress-rseq: remove volatile from rseq structs * stress-rseq: rename signature to valid_signature to avoid name shadowing * core-helper: make dirname smaller, reduce stack size * Add new secretmem stress test * kernel-coverage: exercise ext4, xfs, jfs, minix and vfat * stress-dev: add SCSI_IOCTL_GET_PCI ioctl * stress-rename: replace AT_FDCWD with directory fd * stress-link: put end of string marker on buf and not newpath * stress-link: handle EMLINK failures on linking * stress-filename: add filename length limit when probing filename * stress-dir: handle EMLINK failures on mkdir * stress-chdir: handle EMLINK failures on mkdir * stress-aio-linux: unlink file if open failed * core-helper: add a helper to truncate long filenames * stress-chattr: handle ENOTTY errors when ioctls are not supported * Add build-time check for struct sockaddr_un * stress-ping-sock: also add EACCES socket failure check * Add a new ping-sock stressor to exercise "ping" sockets * Manual: clarify the number of stressors for sequential option too * Manual: clarify the number of stressors: * stress-ng: update copyright to 2021 * stress-dev: add RNDADDENTROPY and RNDRESEEDCRNG ioctls * stress-loop: break overly wide line * stress-loop: mmap in loop dev and touch + flush pages * stress-resources: allocate a page with memfd * stress-resources: allocate fd and page using memfd_secret() * Add shim for new Linux system call memfd_secret() * stress-rseq: exercise invalid rseq calls -- Colin King Thu, 21 Jan 2021 22:46:16 +0000 stress-ng (0.12.01-1) unstable; urgency=medium [David Turner] * stress-hdd: strengthen verification with --verify --hdd N [Dominik B Czarnota] * Fix off-by-ones strncmp in stress-dev.c [Colin Ian King] * Makefile: bump version * Manual: update contributors section and date * stress-rseq: fix ptr cast to uint64_t warnings on 32 bit arm * stress-rseq: only build with gcc * stress-epoll: fix incorrect call to epoll_pwait when pwait2 version does not exist * stress-hdd: minor optimization, move hdd_flags & HDD_OPT_WR_SEQ check outside of loop * Update syscalls and TODO now that rseq has finally been implemented * stress-rseq: add a restartable sequence rseq(2) system call stressor * stress-aio-linux: ensure checking is really correct * stress-open: limit maximum number of open file descriptors on 32 bit systems * stress-cpu: fix --cpu-load timer issues * stress-longjmp: fix typo in macro * Define constants for {nano|micro|milli}seconds and use these * stress-cpu: add -ve delay sanity check to handle clock warping * stress-readahead: replace white space with tabs * stress-sysinfo: don't make EPERM errors a hard failure * Make pid_t print and scanning more portable * stress-aio-linux: fix error handling and submit waits, add sanity data checks * stress-epoll: remove white spaces * stress-epoll: use epoll_pwait2 if it is available. * stress-clone: remove noisy clone information -- Colin King Sat, 26 Dec 2020 16:35:22 +0000 stress-ng (0.12.00-1) unstable; urgency=medium * Makefile: bump version * stress-epoll: fix sanity check for an unexpected epoll_ctl success * stress-funccall: disable ALWAYS_INLINE for PCC * stress-inotify: add void argument, fixes pcc build warning * stress-epoll: fix pcc build warning * stress-close: add invalid flags call to close_range * core-shim: add flags field to close_range shim to match 5.10 system call * stress-utime: voidify return using assignment and voidification * stress-stack: reduce scope of variable ret * stress-sock: clean up some cppcheck warnings * stress-mlock: put HAVE_MLOCKALL into a statement block * stress-affinity: add in missing voidification of ret * stress-brk: remove redundant return 0 statement * stress-pkey: limit pkey system call warning to just instance 0 * core-helper: don't use getpwent for static stress-ng builds: * stress-stack: rename sz to mlock_sz to avoid variable shadowing * stress-pthread: remove duplicate declaration of ret to clean up build warning * stress-msg: rename variable i to j to avoid name shadowing warning * stress-prctl: remove redundant declaration of environ * stress-msg: clean up variable shadowing * stress-yield: workaround FreeBSD usleep bug * stress-timer: workaround duplicated timer_delete segfault in FreeBSD * stress-ng.h: make shim_unconstify_ptr a static inline helper * stress-link: cast getpid() return to int for %d format specifier * stress-open: only declare obsolete_futimesat when it is required * stress-mmap: voidify page_size if HAVE_MPROTECT is not defined * stress-access: declare variable j only if HAVE_FACCESSAT is defined * stress-sem-sysv: silently ignore failures on semctl commands * stress-sem-sysv: ensure 4th arg of semctl is zero when not used * stress-sem-sysv: fix zero semaphores case in GETALL semctl * stress-brk: don't exercise mlockall with MCL_FUTURE if it is not defined * Fix clobbering of errno by error message logging before reading errno * stress-sem-sysv: move scope of array sems * stress-poll: make tv_nsec out of range value a 32 bit value * stress-mmap: only use PROT_GROWSUP and PROT_GROWSDOWN if supported * Fix ~0ULL cast to void * build warnings on 32 bit builds * kernel-coverage: add --pathological for sysinval stress * syscalls: update work to do and recent changes * stress-vm-splice: add pipe to memory vmsplicing * stress-utime: exercise utime family of calls with invalid filenames * stress-sysinfo: fix build issues introduced by previous commit * stress-sysinfo: exercise ustat with invalid major/minor * stress-userfaultfd: exercise UFFDIO_WAKE * stress-ramfs: exercise umount with some invalid pathnames * stress-binderfs: exercise invalid umount calls * stress-hdd: exercise invalid ftruncate/truncate fd/filename * stress-hdd: exercise invalid ftruncate/truncate size * stress-timer: exercise duplicated timer_delete * stress-pthread: add tkill to shim and exercise it * stress-pthread: add tgkill to shim and exercise it * stress-sync-file: exercise 0 nbytes sync, it has special semantics * stress-swap: exercise swapon with invalid path * stress-sysinfo: exercise invalid statfs path * stress-fstat: exercise stat, lstat on invalid path * stress-splice: exercise splice with some more invalid or untested arguments * stress-bad-altstack: exercise sigaltstack with various stack settings * core-helper: fix comment, min stack size can be MINSIGSTKSZ * stress-sysinval: only allow with --pathological option (LP: #1906447) * stress-shm-sysv: exercise duplicated shmdt on unmapped addresses * stress-shm-sysv: define MPOL_* only if required, add one more shmctl call * stress-xattr: exercise invalid setxattr arguments * stress-set: add timezone argument to get more kernel coverage * stress-nice: fix priority ranges, use correct offset in priority * stress-set: exercise invalid pid and pgid in setpgid call * stress-clone: exercise setns with invalid nstype and fd * stress-set: exercise sethostname with illegal length host * stress-set: exercise a range of setgroups calls * stress-set: exercise setdomainname with invalid name length * stress-pthread: exercise set_tid_address with NULL address * stress-pthread: exercise set_robust_list with invalid length * stress-numa: add in a mix of various set_mempolicy calls * stress-sendfile: add more kernel coverage tests * stress-sendfile: periodically exercise sendfile with invalid arguments * core-helper: find bad_fd in reverse fd order if RLIMIT not supported * stress-sem-sysv: disable SETALL and exercise long run of semops * stress-sem-sysv: exercise semctl with various invalid arguments * stress-sem-sysv: add SIGCHLD handler to ensure pause() gets interrupted * stress-schedpolicy: exercise sched_setscheduler with invalid arguments * stress-affinity: exercise sched_{get|set}affinity with invalid arguments * stress-schedpolicy: exercise sched_getscheduler with bad pid * stress-schedpolicy: exercise sched_{get|set}param with invalid arguments * stress-schedpolicy: exercise sched_getattr with invalid arguments * kernel-coverage: exercise sysinval for longer * stress-dir: exercise various invalid pathnames for rmdir and add comments * stress-xattr: exercise ENOENT error on removexattr calls * stress-remap-file-pages: exercised locked mremap and invalid mremap arguments * kernel-coverage: remove trailing whitespace * Revert "stress-file-ioctl: enable FIFREEZE and FITHAW file ioctls" * kernel-coverage: add mremap --mremap-mlock option to add to coverage testing * stress-sock: exercise various invalid recv, recv, recvmmsg calls * stress-reboot: update magic values, add two clearly invalid cmds too * stress-link: exercise invalid readlinkat calls * stress-link: exercise invalid readlink calls, remove redundant cleanup * stress-readahead: exercise invalid fd and range of readahead sizes * stress-readahead: improve I/O speed and reduce setup time * stress-vm-rw: exercise process_vm_{read|write}v with invalid arguments * stress-prctl: exercise prctl PR_SET_MM_AUXV and PR_GET_TIMERSLACK more * stress-poll: add some invalid arg tests for ppoll * stress-cpu: correct the Ackermann count now we are doing calls * stress-cpu: modify number of iterations to improve cpu instruction mix * stress-pkey: exercise pkey system calls a little harder * stress-pipe: add FIONREAD ioctl build time detection * stress-pipe: exercise the FIONREAD ioctl on pipe read end * stress-pidfd: exercise pidfd_open with invalid pid * stress-handle: exercise name_to_handle_at and open_by_handle_at further * stress-mmap: exercise munmap with two invalid unmap calls * stress-msync: exercise some invalid msync calls * stress-msg: add some unusual msgsnd arguments to exercise kernel * stress-msg: exercise msgget a little more, create many message queues * stress-msg: exercise msgctl with invalid msqid and commands * stress-mremap: add --mremap-mlock option to mlock pages into memory * stress-mmap: remove some empty lines * stress-clone: remove whitespace * stress-mremap: exercise MREMAP_DONTUNMAP on a remap * stress-mq: exercise fstat and mmap on mq descriptor * stress-mq: exercise mq_close and mq_unlink with invalid arguments * stress-mq: exercise mq_notify with SIGEV_NONE and invalid notify notifications * stress-mq: exercise mq_getattr with invalid mq and exercise mq_setattr * stress-mmap: add some extra illegal mprotect calls * stress-numa: exercise move_pages with various valid and invalid arguments * stress-clone: exercise modify_ldt with extra command types * stress-get: disable gettimeofday with NULL args (LP: #1905205) * kernel-coverage: add two stack stressor options * stress-stack: add --stack-mlock option to lock stack pages into memory * stress-mlock: exercise mlock/munlock with invalid or unusual arguments * stress-mknod: exercise mknod S_IFDIR * stress-dir: exercise illegal length directory name * stress-numa: exercise migrate_pages with invalid arguments * stress-memfd: exercise memfd_create with illegal arguments and more flags * stress-membarrer: exercise illegal command and flags * stress-numa: exercise mbind with various illegal arguments * stress-madvise: exercise invalid madvise arguments * stress-seek: add SEEK_HOLE/DATA walkthrough * stress-link: exercise illegal cross-device hard links * stress-keyctl: exercise more keyctl commands * stress-file-ioctl: remove whitespace * stress-ioprio: exercise IOPRIO_WHO_{PGRP|USER} for invalid set/get * stress-ioprio: exercise some invalid set/get arguments * stress-ioport: add iopl test and exercise io calls with invalid args * stress-klog: add .supported check before running * stress-klog: inform use when klog can't be accessed because of permission reasons * stress-file-ioctl: exercise SEEK_CUR, SEEK_END on FS_IOC_UNRESVSP* ioctls * stress-file-ioctl: exercise invalid block range for FIBMAP ioctl * stress-file-ioctl: force ENOMEM with invalid dest_count with FIDEDUPERANGE ioctl * stress-aio-linux: fix errno checking and exercise aio POLLing * stress-aio-linux: make FSYNC/FDSYNC commands occur more frequently * stress-aio-linux: use direct system calls and just cancel one async op * stress-get: use NULL args for gettimeofday, update comments * stress-getrandom: exercise GRND_NONBLOCK | GRND_INSECURE and illegal flags * stress-open: voidify unused arguments to obsolete function helpers * stress-sock: exercise illegal getsockname calls * stress-open: exercise obsolete futimes and futimesat calls * stress-access: fix AT_EMPTY_PATH check * stress-itimer: exercise getitimer on all the itimers * stress-get: exercise getgroups with zero and invalid gid size argument * stress-getdent: exercise getdents with illegal zero size * stress-pthread: exercise get_robust_list with invalid PID * stress-numa: exercise get_mempolicy with invalid maxnodes argument * stress-hdd: exercise futimes with invalid times * kernel-coverage: exercise noatime and syncfs hdd options * stress-flock: add periodic /proc/locks exercising * stress-flock: exercise illegal lock command combination * stress-flock: exercise LOCK_MAND with LOCK_READ, LOCK_WRITE * stress-access: avoid name shadowing by renaming array flags * TODO: add xattr todo item * stress-xattr: add more invalid attribute strings and sizes * stress-sync-file: exercise sync_file_range with more illegal arguments * stress-iomix: add illegal fdatasync call for more kernel exercising * stress-fcntl: reset default signal using F_SETSIG with 0 arg * stress-epoll: exercise epoll_ctl_add with an illegal fd, clean up some errors * stress-chroot: voidify unused args parameter in non-linux builds * stress-chroot: don't exercise EFAULT check on non-linux systems * stress-chmod: exercise illegal filenames * stress-chdir: exercise some invalid chdir and fchdir calls * stress-cap: add macro define checks to ensure code is always buildable * stress-cap: exercise capget with different capability versions and invalid pid * stress-brk: add --brk-mlock option to mlock future brk pages into memory * stress-open: exercise new openat2 system call * stress-access: try to use faccessat2 for faccessat -- Colin King Thu, 3 Dec 2020 11:07:41 +0000 stress-ng (0.11.24-1) unstable; urgency=medium [Colin Ian King] * Makefile: bump version * stress-sysfs: make variables i and n plain signed ints. * stress-procfs: make variables i and n plain signed ints. * stress-physpage: reduce the scope of variable 'data' * stress-open: reduce the scope of variable 'dir' * core-helper: stress_get_file_limit: bail out after 250 closed fds * stress-vm: remove leading whitespace from short help info * core-helper: clean up variable shadowing warning * stress-mlock: clean up build warnings on use of mmap and munmap on openhipster * stress-clone: fix build issue with NetBSD and clone * stress-clone: fix build issue with kFreeBSD and clone * stress-procfs: exercise PCI PCIIOC_CONTROLLER procfs ioctl * stress-procfs: clean up warning when stress_proc_info has zero elements * stress-procfs: add ability to exercise specific procfs files in novel ways * stress-bad-altstack: add /dev/zero mapped stack * kernel-coverage: increase sysfs and procfs coverage durations * stress-procfs: remove empty lines * stress-procfs: improve procfs coverage by improving striding method * stress-sysfs: remove printf debug * stress-sysfs: add more methodical way of stepping through sysfs files * core-helper: add stress_dirent_list_prune to remove . and .. from scandir list * stress-tsc: add s390x support for time clock reading * stress-sockdiag: force more diag messages by running through all bit flags * Add build time check for __atomic_add_fetch * stress-lease: break up multiple defined() macro checks * stress-inotify: clean up comments to function args * stress-get: exercise various system calls with defunct/invalid PID * core-helper: add a racy "find a potiential free pid" helper * stress-icmp-flood: constify pointers * stress-session: remove shadowed declaration of variable ret * stress-clone: use NULL for stack on clone3 * stress-session: silently ignore ECHILD or EINTR waitpid errors * stress-efivar: add comment to lseek helper function * stress-session: improve error handling from child process * stress-mlock: mmap mappings array as it can be huge * stress-shm-sysv: fix errno reporting in error messages * stress-shm-sysv: fix spelling mistakes in error messages * stress-shm-sysv: fix error message and false positive failure * stress-fstat: break up multiple defined() macro checks * stress-fcntl: break up multiple defined() macro checks * stress-efivar: exercise efivar file with lseek/read, mmap and ioctls * stress-efivar: fix typo in comment * stress-dup: add dup2 race stressing for Linux * stress-handle: remove the "ended" debug message * TODO: add watch_queue to TODO list * stress-getrandom: silently ignore EINVAL errors * stress-dentry: exercise dir file descriptor more * stress-chattr: exercise with random flags and perform get/unset of original flag * TODO: remove uprobes, this has now been implemented * stress-apparmor: reduce error reporting on ENOENT errors * stress-clone: fix clone issues found on ARM64 -- Colin King Fri, 13 Nov 2020 20:51:27 +0000 stress-ng (0.11.23-1) unstable; urgency=medium [ Helmut Grohne ] * Makefile: remove touch of stress-ng for stress-vecmath object rule (Closes: #973389) [Colin Ian King] * Makefile: bump version * Manual: update contributors and update date * stress-uprobe: use tracing pipe and ensure this works on older kernels * stress-ng.h: workaround ALIGNED macro warnings on PCC * stress-uprobe: use correct printf format specifier for a uint32_t * stress-sockdiag: break out for loop rather than return * stress-tmpfs: remove shadowed offset declaration * stress-splice: add one more pipe to exercise pipe to pipe splicing * stress-splice: exercise some invalid splice calls * stress-procfs: add single char procfs reads and fix --procfs-ops termination * stress-uprobe: fix int to ptr cast warning on 32 bit systems * stress-tmpfs: fix incorrect lseek failure check * stress-mlock: fix build check for MCL_ONFAULT and MCL_FUTURE * stress-procfs: remove duplicated /proc/self * stress-dnotify: use DN_MULTISHOT where possible * stress-open: exercise fdinfo for open'd file descriptors * stress-file-ioctl: exercise FS_IOC_GETVERSION ioctl * stress-ptr: exercise linux fdinfo for pty file descriptors * stress-getrandom: add GRND_INSECURE flag * stress-verity: add ENOSPC check * syscalls.txt: add arch_prctl to the system call list * stress-prctl: add arch_prctl to the prctl stressor * stress-rtc: add in a few more RTC ioctls * stress-file-ioctl: enable FIFREEZE and FITHAW file ioctls * stress-file-ioctl: correctly implement FS_IOC_ falloc ioctls * stress-dir: exercise invalid truncates on directory fd and path * stress-uprobe: skip stressor if non-linux * test/test-executable-start: ensure symbol is available * stress-open: fix some one more warning GCC 6.5.0 / OpenIndiana * core-mlock: use shim version of mlock * stress-open: fix some build warnings GCC 6.5.0 / OpenIndiana * core-helper: fix build issue on OS X get_etext extern name * core-helper: fix start of text segment address * stress-sock: rename pointer bug to avoid name shadowing * stress-uprobe: add a uprobe tracing stressor * stress-get: add statfs, fstatfs and statvfs calls * stress-udp: exercise some setsockopt/getsockopt options * stress-sock: exercise setsockopt options * kernel-coverage: exercise open with the open-fd option * stress-open: add --open-fd option to exercise opening /proc/$PID/fd/* files * stress-open: try to open as many files as possible * stress-sock: make loop index size_t * stress-sock: exercise a range of getsockopt INET4 and INET6 options * stress-sock: add TCP congestion control setting and getting * stress-vdso: fix symbol lookup on clang built kernels * core-shim: fix build issue, rename __process_madvise to __NR_process_madvise * Fix a few spelling mistakes * Manual: fix a handful of spelling mistakes -- Colin King Fri, 30 Oct 2020 11:17:24 +0000 stress-ng (0.11.22-1) unstable; urgency=medium [Colin Ian King] * Makefile: bump version * Manual: update date and update contributors kudos * stress-dev: make function static, cleans up gcc-10 pedantic builds * stress-sockdiag: drop const, cleans up pedantic clang-10 warning * stress-dev: exercise sound control device ioctls * stress-sockdiag: exercise a wider range of protocol families * stress-verity: exercise FS_VERITY_HASH_ALG_SHA256 and FS_VERITY_HASH_ALG_SHA512 * stress-fork: avoid potential variable clobbering by vfork * TODO: add uprobes as a todo item * stress-verity: read data back and check block contents * stress-quota: exercise Q_GETNEXTQUOTA and some invalid quota arguments * stress-efivar: re-work comment to something more sensible * stress-physpage: add attempt to seek and read on /dev/mem * stress-msync: skip sanity check on FreeBSD, this currently always fails * stress-madvise: fix incorrect placement of #endif * stress-sock: exercise socket fdinfo * core-helper: remove debug in stress_read_fdinfo * core: add stress_read_fdinfo to read linux fdinfo data * core-out-of-memory: remove extraneous tab * stress-pidfd: exercise PIDFD_NONBLOCK * core-out-of-memory: add a couple more yield points * stress-sock: exercise SIOCUNIXFILE on AF_UNIX socket domains * stress-sock: add FIOSETOWN, SIOCSPGRP, SIOCGSTAMP_NEW and SIOCGSKNS ioctls * stress-pthread: exercise pthread_sigqueue * stress-cyclic: on EBUSY report a recommendation to run with less instance * stress-cyclic: report instance that fails with errors such as EBUSY * stress-sigfd: add build time detection of the signalfd system call * Use intptr_t instead of ptrdiff_t for ptr to int casting * stress-vdso: fix typo, remove extraneous i in message * stress-io-uring: fix another cast warning on 32 bit arm systems * stress-io-uring: fix cast warning on 32 bit arm systems * stress-verity: fix cast warning on 32 bit arm systems * stress-hdd: fix fcntl F_SET_FILE_RW_HINT incorrect argument * Manual: replace "the the" with "the" in comment * stress-icache: replace "the the" with "the" in comment * kernel-coverage: re-work to get good overall coverage in a few hour run * stress-mlock: add more yield points * stress-wait: ignore issues with a zero si_signo (part 2) * stress-wait: ignore issues with a zero si_signo * core-helper: only declare rlim if it is required * test: test-cdrom_tochdr: memset header to clean up cppcheck style warning * stress-xattr: voidify an unused return value in ret * stress-timer: reduce scope of variable ret * stress-procfs: remove redundant eos check on *pptr * stress-madvise: move int ret to a code block * stress-madvise: move pointer unmapped to a code block * stress-dir: no need to close dirfd if it has not been opened * stress-dir: add flock build time checks for systems that do not support it * stress-schedpolicy: only exercise NULL params on Linux * stress-fork: fix return type of local_shim_fork, should return pid_t * core-shim: fix minix build warning - declare stime() the minix way * stress-rename: simplify renameat/renameat2 detection * stress-sockpair: add more intelligence to socketpair failure returns * stress-verity: handle ENOTTY on FS_IOC_ENABLE_VERITY failure * stress-sockpair: close fds and bail out correctly on termination * stress-wait: fix missing break on if statement * tests/test-stime: fix static analysis warning * stress-shm-sysv: make get_bad_shmid static * stress-context: fix pedantic build warning on shadowed variable name * stress-shm-sysv: fix build warning on unused parameter cap_ipc_lock * stress-xattr: line break some overly wide lines * stress-xattr: add build time check for XATTR_SIZE_MAX * Makefile: use $(GREP) for grep * stress-sysfs: add ppoll on sysfs fd * stress-sysfs: increase timeout to 1 millisecond * stress-get: don't report failure on EPERM failures * syscalls: update vhangup entry * stress-session: exercise vhangup for more kernel coverage * stress-session: check session id failure return with (pid_t)-1 * stress-fork: exercise vhangup to get more kernel coverage * Add auto build detection of vhangup system call * stress-fork: put pid and errno info into a struct * syscalls: update process_madvise information * stress-set: exercise stime() if it is available * stress-fork: remove trailing white space * core-shim: remove debug foo message * stress-madvise: remove new line * stress-tee: re-enable invalid tee flags check with kernel release check * core-helper: add helper functions to help with kernel release values * stress-tee: relax invalid flags test for the moment * stress-madvise: exercise process_madvise() * core-shim: update with correct process_madvise API * stress-fork: try to exercise native fork system call * stress-wait: try to use syscalls in preference to libc wrapped wait* calls * stress-brk: detect if sbrk is implemented and improve shim wrapper * stress-context: add pre/post context region canary checks * stress-chattr: prefix defines with SHIM_ to avoid name clashing * stress-sem-sysv: voidify return from memset * stress-access: declare bad_fd if HAVE_FACCESSAT is defined * stress-lease: don't report a failure on termination on interrupted wait * stress-dir: remove tab, make line an empty new line * stress-ng.h: clean up some white spaces/intentations * stress-dir: exercise flocks on a dirfd * stress-dir: stat directory entries * stress-dir: add dir mmap and improve yielding and directory cleanup * stress-dentry: split multiple defined() checks over lines * stress-rename: return error state from exercise_renameat2 * stress-rename: return error state from exercise_renameat * stress-rename: break defined() checks over multiple lines * stress-rename: some minor reformatting changes and code cleanup * stress-rawdev: don't use static buffer in stress_rawdev_path, add comments * stress-oom-pipe: exercise invalid pipe size setting, add more yield points * stress-longjmp: add canary memory clobbering checks and longjmp timings * stress-lockf: add occasional F_TEST lockf command * stress-lease: terminate child if lease file open fails more than 3 times * stress-lease: exercise F_GETLEASE to get the lease type * stress-lease: add lease read locking * stress-key: replace sys_ prefix on syscall wrappers with shim_ * stress-kcmp: prefix kcmp_epoll_slot with shim to avoid kcmp name clashes * stress-judy: update stressor comment * stress-icache: clean up incorrect tab spacing on a continuation marker * core-out-of-memory: do zero re-wait on failed first wait * stress-handle: use the oomable child helper * stress-handle: clean up code, add upper bounds on mount info being read * syscalls: update readlinkat entry * stress-link: exercise readlinkat and add build detection * Add a signal() exercsing stressor * stress-get: remove void argument in sgetmask call * stress-set/get: exercise obsolete system calls sgetmask/ssetmask * stress-set: exercise setfsuid() and add in build-time detection * stress-set: exercise setfsgid() and add in build-time detection * syscalls: update note for settimeofday * syscalls: add note for nfsservctl * stress-shm-sysv: fix failed open check on map_files open * stress-sockabuse: voidify returns of several system calls * stress-shm-sysv: voidify returns of several system calls * stress-pthread: voidify args with empty stress_pthread_tid_address * stress-verity: add a file system verity stressor * stress-file-ioctl: fix errno handling and remove temp directory * stress-shm-sysv: minor cleanups, make buffer smaller * stress-af-alg: check for ELIBBAD on bind * stress-dev: add termios2 ioctls * Add readlink shim to avoid calling readlinkat to get more kernel coverage * kernel-coverage: remove zombie max stressor, it's OOMing too much * syscalls.txt: update entry for lookup_dcookie * stress-get: perform lookup_dcookie calls on random cookies * stress-pthread: exercise set_tid_address if it is available * stress-get: add obsolete ugetrlimit call * stress-dir/mknod: use shim_strlcpy instead of strlcpy (LP: #1896010) * stress-mknod: add mknodat system call if it is available * syscalls: update entry for unlinkat * stress-dirdeep: add unlinkat call and autodetect syscall at build time * stress-dir: use mkdirat if it is available to create directories [Khalid Elmously] * stress-wait: add missing semi-colon [Piyush Goyal] * stress-tee: exercise tee syscall with 0 len * stress-tee: add check on tee for same pipes * stress-tee: exercise tee with invalid flags * stress-rename: correct a typo in a comment * stress-rename: exercise renameat2 on file fd * stress-rename: exercise renameat on bad fd * stress-rename: exercise valid renameat2 on RENAME_EXCHANGE flag * stress-rename: exercise renameat2 on file fd * stress-rename: exercise renameat2 on bad fd * stress-rename: add check for renameat2 EEXIST error * stress-rename: add check for renameat2 on ENOENT error * stress-rename: exercise renameat2 with invalid combination of flags * stress-rename: exercise renameat2 with invalid flags * stress-shm-sysv: add check for shmctl EIDRM error * stress-shm-sysv: exercise shmctl on invalid shmid * stress-shm-sys: exercise invalid commands in shmctl syscall * stress-shm-sysv: add check for shmget ENOENT error * stress-shm-sysv: increase kernel coverage for shmget syscall * stress-shm-sys: add check shmget EPERM error * stress-shm-sysv: add check for shmget syscall EINVAL error * stress-shm-sysv: add check for shmget syscall EINVAL error * stress-shm-sys: exercise shmget on invalid sizes argument * stress-shm-sys: exercise shmget on invalid flags * stress-shm-sysv: exercise shmat on unaligned address and SHM_RND * stress-shm-sysv: exercise shmdt on unaligned page address * stress-shm-sysv: exercise shmat on unaligned page address * stress-shm-sysv: exercise shmat with SHM_REMAP flag on NULL address * stress-shm-sysv: exercise shmat with all possible values of flags * stress-shm-sysv: exercise shmdt on invalid flag * stress-shm-sysv: exercise shmat on invalid fd * stress-xattr: add check on setxattr syscall XATTR_CREATE flag * stress-xattr: exercise invalid size argument setxattr syscall * stress-xattr: add check on setxattr syscall XATTR_REPLACE flag * stress-xattr: exercise invalid setxattr syscall * stress-aio-linux: exercise invalid io_setup syscall * stress-xattr: add check on lsetxattr syscall XATTR_CREATE flag * stress-xattr: exercise invalid size argument lsetxattr syscall * stress-xattr: add check on lsetxattr syscall XATTR_REPLACE flag * stress-xattr: exercise invalid lsetxattr syscall * stress-xattr: exercise invalid size argument fsetxattr syscall * stress-xattr: add check on fsetxattr syscall XATTR_CREATE flag * stress-xattr: add check on fsetxattr syscall XATTR_REPLACE flag * stress-xattr: exercise fsetxattr with invalid flags * stress-schedpolicy: exercise invalid sched_setparam syscalls * stress-schedpolicy: exercise invalid sched_getparam syscalls * stress-schedpolicy: exercise invalid sched_setattr syscalls -- Colin King Thu, 22 Oct 2020 19:51:52 +0100 stress-ng (0.11.21-1) unstable; urgency=medium [Colin Ian King] * Makefile: bump version * Manual: update date * stress-unshare: don't report ENOSPC as a failure in the unshare * Makefile: remove personality info, it is distracting * stress-clock: fix build warnings BSD systems * Makefile: remove -DHAVE_LINUX_IO_URING_H, it was included for testing * stress-dev: fix build warnings on non-Linux platforms * stress-dev: fix build error on non-linux systems with Xen guest checking * README: update number of stress tests * stress-dirdeep: add post recursion yield point check * stress-io-uring: add build-time checking for io-uring opcode enums * Makefile: provide personality build information * Makefile: make core first to keep order alphabetic * stress-io-uring: exercise NOP and FSYNC IO opcodes * stress-sysfs: skip over gcov sysfs debug files * stress-dirdeep: declare dirfd when HAVE_LINKAT is also defined * stress-dirdeep: exercise linkat in a few different ways * stress-clock: add build time check for TIMER_ABSTIME * core-helper: use shim strl* functions * stress-eventfd: remove { } for one line block statement * stress-eventfd: perform illegal writes periodically * stress-unshare: add in missing empty line * stress-io-uring: reap resources at end of test, exercise fdinfo * stress-io-uring: remove CLASS_INTERRUPT from stressor classes * Add stress_mk_filename to make a filename from full path and name * stress-inotify: fix build warning * io-uring: fix help, it was cut-n-pasted from io async stressor * Add io-uring stressor to exercise io-uring system calls * stress-inotify: some minor code style changes, no functional changes * stress-inotify: optimization: get bad fd just once * stress-inotify: fix build failures on systems without IN_MASK_CREATE and IN_MASK_ADD * stress-shm-sysv: exercise SYSV namespace objects * stress-sem-sysv: remove busy loop, replace it with pause * stress-sem: remove busy loop, replace it with pause * stress-fanotify: fix build warning on declaration of bad_fd * stress-fanotify: fix build failure with systems where FAN_MARK_INODE is not defined * stress-fanotify: fix name shadowing on function parameter mnts * stress-timerfd: fix shadowing of variable ret * stress-close: fix variable shadowing of ret * stress-dev: add some device timeouts on slow optical devices * stress-fallocate: remove some whitespaces/lines * stress-fallocate: exercise illegal offset and lengths * stress-fallocate: exercise illegal fallocate on a pipe * stress-fallocate: add a blank line * stress-fallocate: exercise some illegal modes * stress-dev: allow hpet checking if not a Xen guest * stress-timerfd: fix check of CLOCK_REALTIME_ALARM [Piyush Goyal] * stress-schedpolicy: exercise invalid sched_getattr syscalls * stress-timer:exercise nanosleep on invalid timespec * stress-clock: exercise clock_nanosleep on invalid timespec * stress-clock: Exercise clock_nanosleep on invalid clock id * stress-clock: exercise clock_adjtime on invalid clock id * stress-eventfd: exercise illegal writes on event fd * stress-eventfd: initialise the value written in event fd * stress-eventfd: read from event fd on a small buffer * stress-eventfd: exercise eventfd with invalid flags * Makefile.config: add build time check for epoll_create * stress-inotify: exercise inotify_rm_watch on non-inotify fd * stress-inotify: exercise inotify_rm_watch on invalid wd * stress-inotify: exercise inotify_rm_watch on bad fd * stress-inotify: Exercise inotify_add_watch on bad_fd * stress-inotify: exercise inotify_add_watch on already existing fd * stress-inotify: exercise inotify_add_watch with two operations * stress-inotify: exercise inotify_add_watch with bad mask * stress-inotify: exercise invalid inotify_init1 * syscalls.txt: add inotify_init syscall * stress-inotify: add syscall inotify1 and exercise it * stress-fanotify: exercise invalid combination of flags * stress-fanotify: add build time check for FAN_MARK_MOUNT * stress-fanotify: Add fanotify syscalls * stress-fanotify: Add test for fanotify_mark syscall * stress-fanotify: Exercise fanotify_mark on bad fd * stress-fanotify: Exercise fanotify_mark with invalid flag * stress-fanotify: add test_fanotify_mark * stress-fanotify: Exercise fanotify_init syscalls with different flags * stress-fanotify: Add fanotify_init syscalls * stress-timerfd: Exercise timerfd_settime with invalid flags * stress-timerfd: Exercise non valid timerfd file descriptor -- Colin King Wed, 16 Sep 2020 22:58:21 +0100 stress-ng (0.11.20-1) unstable; urgency=medium [André Wild] * Fix error if only HAVE_TERMIOS is not set * stress-zlib: Fixes race conditions during deflate/inflate * stress-ipsec-mb: Fixes out of bounds access of unterminated funcs array * stress-zlib: new zlib stressor options [Colin Ian King] * Makefile: bump version * stress-zlib: cast pid_t to int for %d format specifier * stress-timerfd: only define cap_wake_alarm when it is required * stress-open: cast pid_t to int for %d format specifier * stress-timerfd: add build checks for CLOCK_REALTIME_* timers * stress-memthrash: fix premature termination by OOM handler * stress-memthrash: fix typo in comment "Wait" -> "Wake" * stress-zlib: use %zd for ssize_t, fixes build warning on GNU/HURD * stress-vforkmany: improve waiting by terminating child * stress-open: fix build failures on systems that don't support O_PATH * stress-close: add directory clean up at end * stress-affinity: use 16 processes to hammer affinity changes per stressor * stress-af-alg: break some overly long lines * stress-af-alg: add string overflow sanity check * stress-access: break wide defined() checks to 2 lines * stress-madvise: make signal message text plural on > 1 SIGBUS signals * stress-zlib: move declaration of reval, voidify return from waitpid * stress-close: remove duplicated bad_fd declaration * stress-zlib: print args.stream_bytes as unsigned long long * stress-ng.h: build in target clone types if gcc supports the feature * stress-enosys: re-write int $80 x86-64 syscall * stress-dev: clean up indentation * syscalls.txt: add openat2 notes * Makefile.config: add config test for struct open_how * stress-open: call open() directly if possible * stress-open: add openat system call check and exercise it * stress-close: exercise new close_range system call [Piyush Goyal] * stress-timerfd: Exercise non valid timerfd file descriptor * stress-timerfd: Add invalid timerfd_gettime syscalls on bad fd * stress-numa: Add check mbind cannot succeed without capability * stress-pidfd: Exercise invalid pidfd_getfd syscall * stress-numa: Add MPOL_F_MEMS_ALLOWED flag get_mempolicy syscalls * stress-close: Exercise faccessat syscall on file fd * stress-xattr: Reorganise and exercise invalid fgetxattr syscall * stress-xattr: Exercise getxattr with small value buffer * stress-timerfd: Exercise invalid timerfd_create syscall * stress-timerfd: Add check timerfd_create cannot succeed without capability * stress-xattr: Exercise invalid lgetxattr syscall * stress-pidfd: Exercise pidfd_getfd syscall with bad_fd * stress-numa: Exercise invalid mbind syscall * stress-numa: Add invalid get_mempolicy syscalls * stress-numa: Exercise invalid get_mempolicy syscall * stress-xattr: Exercise invalid fgetxattr syscall * stress-close: Exercise faccessat syscall with invalid flags * stress-close: Exercise faccessat syscall on bad dirfd * stress-dev: Exercise VT_RESIZE and VT_RESIZEX ioctl syscall * stress-dev: Exercise KDGKBDIACR ioctl syscall * Makefile.config: Define Macros HAVE_UNIMAPDESC * stress-dev: Exercise KDGKBSENT and KDSKBSENT ioctl syscalls * stress-dev: Exercise GIO_UNISCRNMAP and PIO_UNISCRNMAP ioctl syscalls * stress-dev: Exercise GIO_SCRNMAP and PIO_SCRNMAP ioctl syscalls -- Colin King Mon, 7 Sep 2020 17:41:24 +0100 stress-ng (0.11.19-1) unstable; urgency=medium [Colin Ian King ] * Makefile: bump version * stress-cpu: add workaround for unnamed bit-fields * stress-dev: move opt_set_funcs and stress_set_dev_file to fix build issue * stress-stackmmap: cast stack to void * to avoid build warnings * stress-epoll: only declare epoll_ctl_mode if EPOLLEXCLUSIVE is defined * stress-epoll: fix broken epoll controls, add helpers * stress-vecmath: re-work vectorization of setup values * stress-procfs: rename ptr to pptr (path ptr) to avoid variable shadowing * stress-dev: add build autodetection for struct winsize * stress-dev: add build autodetection for struct termios * stress-dev: remove trailing whitespace * stress-dev: add build autodetection for struct kbentry * Makefile.config: re-order dm_ioctl check * Makefile.config: re-order vt_stat check * stress-dev: add build autodetection for struct vt_mode * stress-dev: add build autodetection for struct unimapdesc * stress-dev: add build autodetection for struct kbkeycode * stress-dev: add build autodetection for struct consolefontdesc * stress-dev: add ioctl header checks for console and vt ioctls * stress-dev: add build autodetection for struct v4l2_dv_timings * stress-dev: remove incorrect v4l2 ioctl test that's using wrong struct type * stress-dev: add build autodetection for struct v4l2_enc_idx * stress-dev: add check for v4l2_std_id * stress-dev: add build autodetection for struct v4l2_jpegcompression * stress-dev: add build autodetection for struct v4l2_audioout * stress-dev: add build autodetection for struct v4l2_audio * stress-dev: add build autodetection for type v4l2_std_id * stress-dev: add build autodetection for struct v4l2_framebuffer * stress-dev: add build autodetection for struct v4l2_capability * stress-dev: Add a new --dev-file option to specify the device to exercise * stress-procfs: force ENOENT on invalid procfs path traversal * stress-dev: add auto build config check for struct media_device_info * stress-dev: add auto build config check for cdrom_blk * stress-bad-ioctl: ensure we have a bad page without a following mapped page * Add PCC compiler build notes to README file * Add support to build with the pcc compiler * stress-dev: replace (void)ioctl with ret = ioctl() [Piyush Goyal] * stress-dev: Exercise KDGKBENT and KDSKBENT ioctl syscalls * stress-dev: Exercise VT_GETMODE and VT_SETMODE ioctl syscalls * stress-dev: Exercise GIO_UNIMAP and PIO_UNIMAP ioctl syscalls * stress-dev: Exercise KDGKBMETA and KDSKBMETA ioctl syscalls * stress-dev: Exercise KDGKBMODE and KDSKBMODE ioctl syscalls * stress-dev: Exercise GIO_FONT and PIO_FONT ioctl syscalls * stress-dev: Exercise KDGETKEYCODE and KDSETKEYCODE ioctl syscalls * stress-dev: Exercise GIO_FONTX and PIO_FONTX ioctl syscalls * stress-dev: Exercise CDROMPLAYBLK ioctl syscall * stress-dev: Exercise CDROMSETSPINDOWN ioctl syscall * stress-dev: Exercise CDROM_SELECT_SPEED ioctl syscall * stress-dev: Exercise CDROM_DEBUG ioctl call * stress-dev: Exercise GIO_CMAP and PIO_CMAP ioctl syscalls * stress-dev: Reorder the KDGKBTYPE ioctl call -- Colin King Mon, 24 Aug 2020 15:13:11 +0100 stress-ng (0.11.18-1) unstable; urgency=medium [Colin Ian King ] * Makefile: bump version * stress-stackmmap: cast mmap return to uint8_t to clean up build warning * stress-set: declare bad_uid and cap-setuid only for HAVE_SETREUID case * stress-dev: break multi #if defined checks across multiple lines (2) * stress-dev: add auto build config check for struct dm_ioctl * stress-dev: add auto build config check for struct vt_stat * stress-dev: add auto build config check for struct vt_mode * stress-dev: break multi #if defined checks across multiple lines * stress-dev: add auto build config check for dvd_authinfo * stress-dev: add auto build config check for dvd_struct * stress-dev: add auto build config check for cdrom_read_audio * Makefile.config: re-order cdrom checks into correct alphabetical order * stress-dev: add auto build config check for cdrom_subchnl * stress-dev: add auto build config check for cdrom_volctrl * stress-dev: add auto build config check for cdrom_mcn * Makefile.config: move cdrom struct checks to struct checking part of autodection * stress-dev: add auto build config check for cdrom_ti * stress-dev: add one more HAVE_CDROM_MSF check and break up #if defined checks * stress-dev: fix musl gcc build warning * stress-dev: use uint8_t and uint32_t instead of __u8 and __u32 types * stress-dev: add auto build config check for cdrom_msf * stress-dev: add auto build config check for cdrom_tocentry * stress-dev: add auto build config check for cdrom_tochdr * stress-stackmmap: don't use void * pointer arithmetic * stress-remap-file-pages: don't use void * pointer arithmetic * stress-aio-linux: use correct format specifier for size_t * stress-dev: fix matching #endif and } causing build warnings * stress-utime: add O_PATH fd test case for utimensat * stress-ng.h: add -Wnonnull to disabled warnings * stress-ng: Add SIGTTOU, SIGTTIN and SIGWINCH to the signal ignore array * stress-dev: voidify fd in cdrom stressor to avoid build warnings * core-helper: fix build warnings, add in missing const * stress-bad-ioctl: rename rc to ssjret to avoid name shadowing * Add auto build detection of linux/cdrom.h and define HAVE_LINUX_CDROM_H * test/test-aio-{read|write}: memset structs to avoid static analysis warnings * kernel-coverage.sh: add log file to capture test times * kernel-coverage.sh: make oom-pipe oomable * stress-dup: add more yield points * stress-numa: silently ignore migrate pages failures * stress-bad-ioctl: add random page data to the mix * Add a --bad-ioctl stressor that performs _IOR ioctl read commands * core-helper: make uid gap at least 250 to reduce race window * Add helper stress_get_unused_uid to find an unused uid * stress-nice: fix build issue when HAVE_SETPRIORITY is not defined * stress-aio: add autoconfig checks for aio-{cancel|read|write} * Makefile.config: ensure libatomic is linked in correctly * stress-sigtrap: move case statement to fix fallthrough build warning * core-out-of-memory: only fall back to old oom interface if new one does not exist * core-helper: remove stress_sigalrm_block() * core-log: remove pr_msg_fail() * stress-ng: remove dead code * stress-sigtrap: fix build error when SIGTRAP is not defined * fix a lot of spelling mistakes and typos * example-jobs: fix a couple more spelling mistakes * example-jobs: fix some spelling mistakes * stress-epoll: check for failure against the intended errno * stress-pty: rename struct fields to use follower/leader instead * kernel-coverage.sh: remove debug if/endif * kernel-coverage.sh: ensure log does not overflow and make script less OOM-able * core-mlock: ensure mlock address arg is const * stress-set: remove shadowed declaration of variable ret * stress-epoll: only build EPOLLEXCLUSIVE if it is defined * stress-get: rename array rlim to rlims to avoid name shadowing * stress-epoll: fix pedantic build mode failure [Piyush Goyal] * stress-dev: Exercise KDGKBTYPE ioctl call * stress-dev: Exercise KDGETMODE and KDSETMODE ioctl syscalls * stress-dev: Exercise KDGKBLED and KDSKBLED ioctl syscalls * stress-dev: Exercise valid and invalid KDSETLED ioctl calls * stress-dev: Add Stressor for Console Driver * stress-dev: Exercise CDROMREADMODE1 and CDROMREADMODE2 ioctl syscalls * stress-dev: Exercise CDROMREADRAW ioctl syscall * stress-dev: Exercise CDROMPLAYMSF ioctl syscall * stress-dev: Exercise CDROMPLAYTRKIND ioctl syscall * stress-dev: Exercise CDROMMULTISESSION ioctl sycall for CDROM driver * stress-dev: Add ioctl calls for CDROM driver * stress-dev: Exercise all possible DVD_READ_STRUCT ioctl syscalls * stress-dev: Add in the /dev/sr0 to the dev_funcs array * stress-dev: Exercise ioctl syscall for CDROM driver * stress-dev: Exercise CDROMVOLCTRL ioctl syscall * stress-dev: Add ioctl syscalls for cdrom driver * stress-dev: Add more readable ioctl calls for CDROM driver * stress-dev: Add readable ioctl calls for CDROM driver * stress-dev: Add ioctl calls for CDROM driver * stress-dev: Add stressor for CDROM driver * stress-dev: Add v4l ioctl tests * stress-dev: Add test for ioctl command VIDIOC_G_STD * stress-dev: Add test for ioctl command VIDIOC_G_AUDIO * stress-dev: Add test for ioctl command VIDIOC_G_INPUT * stress-dev: Add test for ioctl command VIDIOC_G_OUTPUT * stress-dev: Add memset for structure v4l2_capability * stress-dev: Add test for ioctl command VIDIOC_G_FBUF * stress-set: Test setreuid cannot succeed without capability * stress-getrandom: Exercise invalid getrandom syscall * stress-eloop: Pass efd2 as argument to test_eloop() * stress-nice: Test nice cannot increase priority with capability * stress-epoll: Test epoll instance cannot be added with EPOLLEXCLUSIVE flag * stress-nice: Exercise invalid nice syscall with invalid inc argument * stress-flock: Exercise invalid flock syscall * stress-epoll: Test EPOLL_CTL_MOD cannot be applied to EPOLLEXCLUSIVE * stress-epoll: Test for modification of EPOLL_EXCLUSIVE in epoll_ctl * stress-eloop: Add test for ELOOP error * stress-set: Add comment for setrlimit syscall -- Colin King Wed, 12 Aug 2020 15:41:22 +0100 stress-ng (0.11.17-1) unstable; urgency=medium [Colin Ian King ] * Makefile: bump version * Close build issue (fixed on previous upload) (Closes: #964638) * handle EFAULT for kernels that generate SIGSEGV * stress-get: handle EFAULT for kernels that generate SIGSEGV * stress-epoll: flag an error on bad events buffer if it returns more than 0 events * stress-open: add invalid O_TMPDIR and O_CREATE tests * stress-open: use stress_get_max_file_limit to get max file limit * core-helper: add stress_get_max_file_limit to return max file open limit * stress-open: retry opening on a failed open * stress-open: keep opening until the maximum open file limit is hit * stress-numa: fix indentation issue with comment * stress-get: move invalid getrlimit test to outside of the loop * stress-mincore: exercise mincore with MAP_NONE vec argument * Add some pages that can be used for invalid argument system call tests * stress-mincore: exercise some invalid and unexpected mincore arguments * stress-mlock: clean up some indentations * stress-mlock: improve the method of finding maximum mlockable size * stress-mlock: fix max limit on mlocked region size [Piyush Goyal] * stress-epoll: Exercise illegal epoll_pwait syscall with bad address * stress-epoll: Exercise illegal epoll_wait syscall with bad address * stress-get: Exercise illegal uname call with bad address * stress-set: Verify hard limit cannot be increased without capability * stress-set: Add condition to test rlim_curr > 1 * stress-set: Exercise invalid setrlimit syscall with invalid rlim argument * stress-get: Exercise invalid prlimit syscall with invalid resource argument * stress-set: Exercise invalid setrlimit syscall with invalid resource argument * stress-get: Exercise invalid getrlimit syscall with invalid resource argument * stress-mlock: Test mlock syscall cannot proceed without permission * stress-mlock: Exercise invalid mlockall syscall with invalid flag * stress-mlock: Exercise invalid mlockall syscall with only MCL_ONFAULT flag * stress-mlock: Exercise invalid mlock2 syscall with invalid flags * stress-epoll: Exercised Invalid epoll_wait syscall with invalid maxevents argument * stress-epoll: Exercised Invalid epoll_pwait syscall with invalid maxevents argument -- Colin King Mon, 27 Jul 2020 19:32:11 +0100 stress-ng (0.11.16-1) unstable; urgency=medium [Piyush Goyal] * stress-epoll: Exercise epoll_ctl syscall with EPOLL_CTL_MOD on fd not registered * stress-epoll: Exercise invalid epoll_ctl_add by adding already registered fd * stress-epoll: Reorder invalid epoll_ctl syscall with EPOLL_CTL_DEL operation * stress-epoll: Exercise epoll_ctl syscall with EPOLL_CTL_DEL on fd not registered * stress-epoll: Exercise epoll_ctl syscall with Invalid Operation * stress-epoll: Exercise epoll_create1 syscall with valid non-zero flags argument * stress-epoll: Exercise invalid epoll_ctl syscall with same fd and epfd * stress-epoll: Exercise epoll_create1 syscall with invalid flags argument * stress-epoll: Exercise epoll_create syscall with invalid size argument * stress-clock: Ensure clock_settime cannot proceed without privilege * stress-set: Added test checking settimeofday syscall cannot proceed without privileges * stress-numa: Exercise getcpu syscall with a non-null pointer to tcache argument * stress-dup: Exercise dup3 syscall with same oldfd and newfd * stress-dup: Added test exercising invalid dup3 syscall with closed fd * stress-dup: Added test exercising invalid dup3 syscall with invalid flag * stress-clock: Added test exercising clock_settime syscall with negative time * stress-clock: Added test exercising clock_settime syscall having an illegal clockid * stress-clock: Added test exercising clock_gettime syscall having an illegal clockid * stress-clock: Added test exercising clock_getres syscall having an illegal clockid * stress-pidfd: exercise pidfd_send_signal syscall by passing a pointer to info argument * stress-pidfd: Added tests exercising pidfd_open syscall with negative pid argument * stress-pidfd: Added tests exercising pidfd_send_signal syscall with illegal flags argument * stress-pidfd: Added tests exercising pidfd_open syscall with illegal flags argument * syscalls.txt: Removing the extra occurrence of getcwd * stress-get: Added Tests exercising getpriority calls having non-zero who argument [Colin Ian King ] * Makefile: bump version * stress-bad-altstack: add check for getauxval * stress-sigchld: only set SA_SIGINFO if it is available * stress-xattr: terminate with EXIT_NO_RESOURCE if system call not supported * stress-xattr: skip test if ENOSYS is detected * stress-mknod: remove debug message * stress-epoll: clean up some indentation * stress-sigfd: exercise with an invalid non-signal fd file descriptor * stress-sigfd: exercise signalfd with invalid fd and flags * stress-loop: add LOOP_CONFIGURE ioctl * stress-bsearch: add in missing empty line between declaration and statement * core-time: add ( ) to keep to the informal stress-ng coding style * core-thermal-zone: uncapitalize error message * core-shim: add comments for enosys wrapper * core-perf: constify some read-only structure fields * core-mlock: constify m_addr_start as it never changes * core-mincore: make uintptr const as it never changes * core-limit: remove blank line * core-job: make stress_chop an inlined helper function * stress-dccp: constify opt field in stress_dccp_opts_t * stress-dev: remove duplicated comment * stress-klog: use SHIM_* for CAP_SYS settings * stress-numa: add some ( ) according to the informal coding style * stress-klog: exercise more klogctl commands to improve kernel coverage * stress-mknod: exercise char and block device mknod calls * stress-epoll: remove extraneous space before a comment * stress-loop: exercise loop /sys/devices/virtual/block/loopX/loop/* attributes * stress-loop: exercise LOOP_CHANGE_FD with invalid fd * stress-loop: exercise LOOP_CTL_ADD * stress-loop: try to associate loop with a file backing with invalid fd * stress-loop: fsync on loop backed device * stress-loop: unlink backing file as soon as possible * stress-sysinfo: only define bad_fd when it is required * stress-nanosleep: remove unused opt_set_funcs * stress-dup: don't make do_dup3 conditional on HAVE_DUP3 * stress-sigchld: add new stressor that exercises SIGCHLD handling * stress-chattr: handle EOPNOTSUPP failures * stress-clock: cache the capability setting and move test * stress-set: rework error message to provide some extra info * stress-set: move tv to local scope to fix any build warnings * stress-ng.h: redefine SHIM_CAP_IS_ROOT to -1 * use SHIM_CAP_IS_ROOT instead of 0 for root capability checks * stress-ng.h: Add a SHIM_CAP_IS_ROOT shim capability * stress-ng.h: Update to the current full list of capabilities * stress-skiplist: remove debug helper function * core-shim: perform syscall if libc does not provide call but __NR_* is available * stress-dup: remove need for HAVE_DUP3 since this is handled in shim * core-shim: add syscall to dup3 if HAVE_DUP3 is not available * core-log: fix corrupted log when using --log-file and --log-brief options * stress-mmapaddr: exercise MAP_FIXED_NOREPLACE flag * stress-poll: else if statement braces * stress-pipeherd: fix typo on child pid comparison * rename stress_proc_stats_t to stress_stats * stress-ng: rename proc to stressor * rename num_procs to num_instances * stress-ng: rework the stressor startup loops * stress-nanosleep: drop number of pthreads to 8 * stress-bad-altstack: add VDSO as a target for the stack, add comments too * stress-pipeherd: fix where empty line is located * syscalls.txt: update nanosleep syscall * stress-nanosleep: add new nanosleep stressor * stress-sysinfo: exercise system calls with invalid path and fd * exercise kernel a little more to improve kernel coverage * stress-nice: ensure setpriority is called only if we have this system call * stress-kcmp: exercise some invalid kcmp calls * stress-dev: refactorization: use stress_hash_pjw * stress-personality: exercise invalid personalities * snap: remove deprecated version-script from snapcraft -- Colin King Tue, 21 Jul 2020 19:32:11 +0100 stress-ng (0.11.15-1) unstable; urgency=medium [bybug] * stress-sysinval: fix build failure for getresuid32 [Christopher Brown] * README: Fix some requirement names for RHEL/Centos/Fedora [Piyush Goyal] * syscalls.txt: Corrected typo in the name of getcwd syscall * stress-get: Added check for equality of return value and pointer passed in getcwd syscall * stress-get: Added tests exercising getpriority calls using illegal arguments * stress-get: Added tests exercising gettimeofday system calls using syscall() * stress-get: exercise gettimeofday syscall by passing a pointer to timezone * stress-get: handle ENOSYS from shim wrappers as no fatal, remove verify check * stress-get: Added tests exercising time system calls using syscall() * stress-get: exercise time syscall by passing a pointer to time_t * stress-nice: exercise illegal maximum priority to get more kernel test coverage (1) * stress-nice: exercise illegal maximum priority to get more kernel test coverage (2) [Colin Ian King ] * Makefile: bump version * Makefile: only build Makefile.config with one thread * Makefile.config: remove duplicate Android binder checks * stress-zero: remove duplicated assignment to ptr64 * stress-rlimit: rename array stack to avoid shadowing * stress-ioport: clean up shadowing of variable ret * stress-getrandom: reduce scope of variable ret * core-shim: voidify inc argument to shim_nice * core-shim: handle nice not being available * core-limit: ensire max_fd is initialized * stress-sockfd: silently ignore ETOOMANYREFS failures * stress-vm-addr: make helper function reverse64 inlined * stress-vforkmany: fix typo in comment, add notes about dirty hack * stress-memthrash: add memmove option to copy data * stress-seek: exercise invalid lseek system calls * stress-rlimit: fix segv caused by passing a NULL context and exercise all rlimit resource ids * test/test-timer-create: memset sev to set all fields to zero * Makefile.config: remove need for HAVE_NOT, and add MAKE_OPTS * Manual: update names of contributors * stress-fstat/manual: replace inaccurate language * stress-fcntl: exercise fcntl with some invalid arguments * stress-timerfd: don't set timers or exercise timers with an invalid fd * stress-timerfd: fix typo in timerfd error message and also print bad fd * README: add libatomic1 requirement * Add requirement for libatomic1 for atomic builds * Makefile: drop duplicated lib variables, they are picked up in Makefile.config * Makefile*: use -pthread instead of -lpthread * stress-enosys: ignore sigsuspend, it will stop the child * stress-enosys: set itimer before every type of system call * stress-enosys: cater for 32 bit compat sigsuspend syscall * stress-enosys: exit after a system call if process has forked * stress-fnctl: fix broken build, I pushed the wrong development change * stress-fanotify: remove trailing tab * stress-fanotify: exercise fanotify_init with invalid flags * stress-oom-pipe: optimize buffer writes, set buffer up once * stress-netlink-proc: remove empty line * stress-mq: remove some more white spaces and empty lines * stress-mq: remove blank line * stress-mlock: fix typo in comment "bogos" -> "bogus" * stress-mincore: munmap mapped page on ENOSYS error from mincore * stress-memfd: fix typo "uffer" -> "buffer" * stress-mcontend: unmap data[0] if data[1] fails to allocate * stress-mcontend: fix data[0] mmap failure * stress-kill: kill pid with signal -1 to force -EINVAL error * stress-ng: remove line feed before ) * stress-zlib: add a lfsr32 zlib option to generate 2^32-1 unique values * stress-zero: make buffer 64 bit aligned and optimize zero check * stress-zombie: remove zombie child overheads to increase zombie loading * core-shim: add shim to nice() system call * stress-tsc: remove x86 only notes to tsc option * stress-tsc: add rdcycle support for RISC-V * stress-enosys: bump compiler version requirement * stress-enosys: add legacy int 0x80 method of calling system calls * stress-urandom: exercise an invalid ioctl to get more kernel coverage * stress-getrandom: move bogo-op counter to inner loop * stress-getrandom: exercise GRND_RANDOM and GRND_NONBLOCK * stress-zero: include a range of /dev/zero mmap'ing flags to exercise * stress-ioport: exercise /dev/port if it can be opened * stress-sysinval: add mmap_pgoff system call * stress-memcpy: remove __ prefix, rename with test_ instead * stress-wcstr: remove __ prefix, rename with test_ instead * stress-str: remove __ prefix, rename with test_ instead * core-mwc: rename __mwc to mwc, there is no need for __ prefix * stress-clock: 'randomize' delays to mix in more unpredictability * stress-madvise: constify variable sz * Makefile: clean up POSIX suffix rule warning * README: fix typo * stress-ng: add --max-fd soft limit on file descriptors * Add note about libattr. * stress-ng.h: define _LINUX_SYSINFO_H only when using gcc with non-glibc libc (such as musl) * stress-ng.h: suppress kernel sysinfo.h -- Colin King Fri, 10 Jul 2020 13:53:34 +0100 stress-ng (0.11.14-1) unstable; urgency=medium [Rob Colclaser III] * stress-membarrier: return EXIT_NOT_IMPLEMENTED ifi MEMBARRIER_CMD_SHARED is not set [Colin Ian King] * Makefile: bump version * Manual: update date * stress-ng: add translation of 2 missing exit types to string * stress-ng: prefix local functions with stress_ to avoid name clashing * stress-bigheap: add in missing new line between declaration and statement * stress-*, core-*: remove some extraneous spaces * tests/test-user-desc: memset u_info object to clear up cppcheck warning * tests/test-serial-struct: memset serial object to clear up cppcheck warning * stress-sockabuse: remove duplicated EPIPE error check * stress-pthread: voidify return in ret, clean up a cppcheck style warning * stress-hdd: clean up another cppcheck style warning: * stress-hdd: clean up cppcheck style warning * stress-fcntl: fix incorrect location of braces { } in #if defs * README: add notes on how to build with musl C library * stress-rawsock: ensure addr argument to recvfrom is struct sockaddr * * stress-ng: fix shim_loff_t type, it should be long * core-shim: use futex call if FUTEX_WAIT is defined * stress-ramfs: exercise new mount system calls if specific #defines are defined * stress-iomix: voidify fd to fix build warnings if it is not used * stress-efivar: only exercise FS_IOC_*FLAGS if they are defined * stress-sockpair: improve preemption points * stress-sockpair: ignore ENOTCONN error on shutdown * stress-access: voidify bad_fd to workaround build warning on Minix * stress-xattr: exercise fxattr* with bad fd * stress-sync-file: exercise sync_file_range with bad fd * stress-sockfd: exercise sockfd with bad fd * stress-seek: exercise lseek with bad fd * stress-lockf: remove empty line * stress-lockf: exercise lockf with bad fd * stress-klog: remove whitespace * stress-iosync: exercise fsyncfs with bad fd * stress-getdent: exercise getdent* with bad fd * stress-fstat: exercise fstat with bad fd * stress-file-flock: exercise flock with bad fd * stress-file-ioctl: exercise ioctl with bad fd * stress-fcntl: exercise fcntl with bad fd * stress-copy-file: remove extraneous space * stress-close: exercise close with bad fd * stress-chown: exercise fchown with bad fd * stress-fallocate: remove whitespace * stress-chmod: exercise fchmod* with bad fd * stress-fallocate: exercise fallocate with bad fd * stress-access: exercise faccessat* with an invalid dir fd * stress-epoll: exercise epoll_ctl and epoll_wait with bad fd * core-helper: use the stress_get_bad_fd helper * core-helper: add stress_get_bad_fd helper (part 2) * core-helper: add stress_get_bad_fd helper * stress-close: remove white space pollution * stress-ng: propagate EXIT_METRICS_UNTRUSTWORTHY to exit status * stress-sysinfo: get a file system label if FS_IOC_GETFSLABEL ioctl is available * stress-close: close random unopened fd to exercise EBADF * fast-test-all: make it really test *all* stressors * Add a light weight ADT regression test * stress-sock: fix build failure on some 32 bit arches -- Colin King Wed, 17 Jun 2020 14:18:22 +0100 stress-ng (0.11.13-1) unstable; urgency=medium [Arjan van de Ven] * Use "arch=skylake-avx512" instead of "avx512f" in the TARGET_CLONES list [Chunyu Hu] * core-sched: init shim_sched_attr with zero [Thadeu Lima de Souza Cascardo] * stress-sysinval: fix build failure on 32-bit systems * stress-sysbadaddr: fix build when HAVE_GETHOSTNAME is not defined * stress-enosys: add some missing syscalls * stress-enosys: negate errno * stress-enosys: prevent segfault when doing syscall_find * stress-rawudp: fix bind sockaddr [Colin Ian King] * Makefile: bump version * Makefile: add code of conduct text file to make dist rule * stress-sysinval: disable for GNU/HURD * tests/control: disable tests as these are causing testing issues, a better test mechanism is required (Closes: #962620) * stress-dup: force invalid dups by using large fd * stress-sysinval: fix a cut-n-paste error with delete_module * fast-test-all: add checks for all the missing exit status values * Add a new exit status EXIT_METRICS_UNTRUSTWORTHY * stress-ng: fix typo "read" -> "ready" * stress-chdir: exercise chdir to a directory that does not allow access * stress-sysinval: add MISC args allowing finer system call argument passing * stress-prctl: exercise prctl interface with some invalid arguments * stress-sysinval: double check run time timeout * stress-ng: rename "metrics check" to "metrics-check" * stress-*: make child processes call sched_settings_apply * core-sched: add new sched settings helper sched_settings_apply * stress-ng: check and set sched DEADLINE settings if SCHED_DEADLINE is defined * stress-sysinval: disable OS X builds as syscall() has been deprecated * stress-sysinval: prefix syscall_arg* with stress_ to avoid OS X name clashing * core-out-of-memory: use waitpid rather than the shim delay'd wait wrapper * stress-sysinval: remove linux only check; it builds now on all supported platforms * stress-sysinval: cast pointers to void * for madvise call * stress-sysinval: remove the xattr checks, they are not required * stress-sysinval: only build tests syscall.h syscall() is available * stress-vm-rw: fix up unexpected read size error message * stress-mq: don't report EINTR errors as fatal issues * stress-aio: silently ignore ENOSPC write failures * stress-enosys: force child to be killed and reap * stress-{iomix,fiemap}: fix copying of args struct * Add a code of conduct document * stress-stream: make short duration message clearer * kernel-coverage: run sysinval stressor for 3 minutes on all cpus * stress-sysinval: improve syscall timeout metrics * stress-sysinval: add run-time sanity check for zero system calls being detected * stress-sysinval: shuffle system call order 50% of the time * stress-sysinval: add illegal access mode flags * stress-netlink-task: clean up build warning on 32 builds with gcc 4.6.3 * stress-nelink-proc: clean up build warning on 32 builds with gcc 4.6.3 * stress-netlink-proc: remove space between macro and open parenthesis * stress-urandom: fix some grammar mistakes in comments * stress-sysinval: remove incorrect comment about size of structure * Manual: add Thadeu to the list of contributors * stress-access: add Linux 5.8 faccessat2 system call * stress-sysinval: make the syscall stats more descriptive * stress-sysinval: allo some read/stat actions on filenames * stress-sysinval: add ARG_PTR_WR - writeable destination arguments * stress-inval: use a valid file descriptor for ARG_FD * stress-sockpair: remove double oom detection, we're using the oomable API already * stress-sysinval: don't call sigreturn, this spams the kernel log * stress-sysinval: force child to be killed and reap * stress-sysinval: make syscall stats debug level * stress-sysinval: add some more missing system calls * stress-sock: save and report the correct errno status * stress-sock*: handle EPIPE gracefully * kernel-coverage: add swap to fast seq tests * Make sysinval stressor Linux only for now * stress-sysinval: use alternative system call naming * stress-sysinval: don't modulo by zero if reorder size is 0 * stress-sysinval: unmap page if mprotect PROT_NONE is not available * stress-stackmmap: only mprotect stack ends if mprotect is available * stress-sysinval: clean up some 32 bit build warnings * Add sysinval invalid system call stress test * Add autoconfig detection and workaround for daddr_t * syscalls: add process_madvise to syscalls -- Colin King Wed, 10 Jun 2020 23:55:23 +0100 stress-ng (0.11.12-1) unstable; urgency=medium * Makefile: bump minor version * Setup the checksum before forking off child stressor (LP: #1880840) - fixes null checksum if child is killed before the stressor function gets invoked. -- Colin King Wed, 27 May 2020 09:53:11 +0100 stress-ng (0.11.11-1) unstable; urgency=medium * Makefile: bump version * Makefile: remove config from make dist rule * stress-stackmmap: make ends of stack inaccessible to stop clobbering non-stack regions * stress-dev: disable TIOCGETD for the moment as it causes some hang issues * stress-context: always swap context back to main microthread on termination * stress-sock: voidify fd arg to clean up build warning on Solaris * Add run-time autoconfig check for struct ifconf * stress-sem-sysv: test illegal semtimedop only if it is exists * stress-sem-sysv: workaround kfreebsd8 EINVAL on semtimedop * stress-sem-sysv: don't use semtimedop if it returns -ENOSYS * stress-sem-sysv: only exercise SEM_STAT on linux * stress-ng: fetch yaml filename before running stress tests * Makefile: rm -f the makefile on clean * stress-ng: Don't track config or show in diff * Makefile: remove the need for an empty config file * stress-ng: fix long form if -x option, use "exclude" instead of "list" * stress-ng: README: update libsctp name for RHEL, fedora, related distros * stress-memthrash: silently ignore ESRCH pthread_join failures * stress-madvise: voidify pthread_join return, we don't care about it * stress-inode-flags: voidify pthread_join return, we don't care about it * stress-dev: voidify pthread_join return, we don't care about it * shim_waitpid: allow a few retries before throttling retry * kernel-coverage.sh: move the quick spin through stressors to the end of the test * Fix --seq mode checksum with multiple stressors and sanity checking * stress-vm: fix bit error checking when bogo-ops limits reached * core-ftrace: fix removed filename setting statement * core-ftrace: remove setting of set_event_pid and refactor code * core-out-of-memory: return EXIT_SUCCESS on --oomable option (LP: #1879782) * stress-get: fix #ifdef check on getpagesize * core-out-of-memory: return EXIT_NO_RESOUCE on --oomable option (LP: #1879696) * core-shim: add delay before re-waiting * stress-dev: add block device lseeks and force return to be stashed * Add memory barriers an ready flag to check if counter is in a sane state * core-shim: rework waitpid again, terminate child on EINTR (LP: #1879447) * stress-dev: remove sleep and return EXIT_SUCCESS on child exit * stress-ng: add checksum sanity check on bogo ops stats and run flag * stress-mq: add SIGEV_SIGNAL events to exercise kernel * stress-shm-sysv: exercise shmctl and shmdt race on child exit * stress-shm-sysv: exercise NUMA mempolicy on shm * stress-sem-sysv: exercise some invalid options to get more kernel coverage * stress-sock: add a few more ioctls to exercise * syscalls: update preadv/preadv2 and pwritev entries * stress-hdd: use preadv, preadv2, pwritev, pwritev2 -- Colin King Tue, 26 May 2020 15:46:23 +0100 stress-ng (0.11.10-1) unstable; urgency=medium * Makefile: bump minor version * Debian: remove compat, use debhelper-compat in Build-Depends * core-ftrace + manual: update caveat about ftrace stats * stress-pty: fix incorrect placing of #endif's * core-ftrace: warn when --ftrace is used on systems that don't support it * core-ftrace: voidify unused argument in stress_ftrace_add_pid * kernel-coverage: add ftrace and class exercising * core-ftrace: move OPT_FLAGS_FTRACE check to core-ftrace * core-ftrace: try to filter by parent and child process IDs * core-ftrace: add caveat about tracing stats captured * core-ftrace: fix some resource free'ing issues * stress-efi-var: optimize check for . files * stress-efivar: remove free of efi_dentries * stress-chdir: ensure all fd's and filenames are invalid before testing * Add --ftrace option to get some kernel function tracing metrics * stress-pty: exercise tcdrain, tcflush, tcflow and tcgetattr * stress-vm: use mwc64() for random numbers rather than random() * stresss-vdso: add missing line * stress-pipe: fix build failure on non-Linux platforms on pr_fail * Replace pr_fail_err with pr_fail to allow more flexible error messages * Remove pr_fail_dbg and replace with pr_fail * Remove pr_fail_args_errno and pr_fail_errno * core-helper: remove directory if an error occurs on mkdir -- Colin King Fri, 15 May 2020 14:10:41 +0100 stress-ng (0.11.09-1) unstable; urgency=medium * Makefile: bump version * stress-mmap: use a mmap_func_t prototype to simplify function pointers * stress-pidfd: reduce scope of buffer * stress-mmap: cast return from syscall to void * * stress-mmap: fix typo on off_t type name * syscalls.txt: update information on reboot system call * stress-xattr: add lremovexattr for more kernel coverage * stress-set: exercise setdomainname * syscalls: update mmap2 usage * stress-mmap: add --mmap-mmap2 to try to use mmap2 if it is available * syscalls: update riscv_flush_icache status * core-shim: remove flags, this was in an older API and I forgot to remove it * stress-pthread: add call to set_thread_area for x86 only * stress-pthread: add call to get_thread_area for x86 only * stress-icache: add RISC-V to the allowed arches that can run this stressor * core-shim: use system call to __NR_riscv_flush_icache * core-shim: add missing ; on risc-v flush * Rename shim_clear_cache to shim_flush_icache, add RISC-V support * stress-daemon: add shim wrapper for exit_group and call it on child exit * stress-pidfd: try to exercise pidfd_getfd if it exists * stress-pidfd: add pidfd_open shim and exercise it on opening pid fds * syscalls: add missing syscalls to syscalls list * stress-clock: exercise clock_adjtime by adjusting clock by zero seconds * syscalls: update io_cancel * stress-aio-linux: add aio_cancel and ignore failures * stress-zlib: optimize BCD conversion and extend range of source random value * stress-zlib: wrap some overly long function declarations * stress-rawpkt: use strlcpy instead of strcpy * stress-procfs: use strlcpy instead of strcpy * stress-access: fchmod should be S_IRUSR | S_IWUSR and not 0666 * stress-dev: add HPET_IRQFREQ ioctl * core-thrash: remove ptrace as this can cause lockups * stress-hdd: add medium write lifetime hint if it is available * stress-rawpkt: perform SIOCINQ every 256 packets and clean up code * stress-rawpkt: ensure mac address is being used for mac src and dst addresses * stress-rawpkg: exercise SIOCOUTQ and SIOCINQ ioctls * stress-physpage: report incorrect read sizes correctly * Revert "Add STRESS_RISC_V arch macro and don't yield on this arch" * Revert "core-shim: disable native nanosleep for risc-v" * stress-rawpkt: move stress-rawpkt_getsockopts to correct #ifdef section * stress-rawpkt: remove include * stress-rawsock: occasionally exercise SIOCINQ and SIOCOUTQ ioctls * Manual: remove trailing space * core-ignite-cpu: remove an empty line * core: constify some variables * stress-ng: constify some variables * core-perf: disable TLB perf metric * core-shim: simplify the waitpid logic * core-shim: break out of shim_wait on non EINTR error * stress-sock: remove empty line * stress-rawpkt: remove some white spaces * stress-rawpkt: add getsockopt relevant settings fetches * stress-rawudp: remove debug raw messages received counter * stress-rawudp: fix clang-10 pedantic warning on const addr * Add rawpkt stressor to exercise raw packet tx and rx over loopback device * stress-rawudp: close socket on error return * core-helper: add some optimization hints to stress_ip_checksum * stress-rawudp: re-organize code to remove repeated data structure setting * stress-rawudp: fix option help info, fix spelling mistake * stress-ng: set the stressor name as early as possible * Add rawudp stressor to exercise raw UDP packet tx and rx * core-cache: clean up gcc-10 -fanalyzer warning -- Colin King Thu, 7 May 2020 12:33:53 +0100 stress-ng (0.11.08-1) unstable; urgency=medium * Makefile: bump version * Manual: update date * stress-sysbaddaddr: reduce scope of variable ret * core-sched: print uint64_t using PRIu64 format specifiers * stress-sysbadaddr: don't abort if write/exec mappings can't be made * stress-sysbaddaddr: use shim'd memfd_create * stress-pkey: only use PKEY_DISABLE_WRITE if it is defined * stress-filename: add more yield point checks to abort faster * core-shim: don't retry EINTR on termination flag (LP:# 1874367) * core-shim: expand comments on the posix clock comments * core-sched: move declaration of prefix to avoid build warnings * stress-fanotify: reorder FAN masks to alphabetical order * core-shim: wrap the posix clock calls to use system call * stress-sysbadaddr: add memfd_create system call * stress-pkey: exercise an invalid pkey_free call * stress-sysbadaddr: add some more mapped page protection variations * stress-remap-file-pages: exercise invalid remappings * stress-mlock: use MCL_ONFAULT option correctly * stress-mincore: exercise pages that are known to be mapped and unmapped * helper: make stress_warn_once simpler to use and remove flags * stress-sockabuse: remove tabs from empty line * stress-sync-file: remove shadowed variable ret * stress-wait: skip over sanity check of returned zero pid * Fix more supported helpers that are missing new name parameter * stress-apparmor: supported helper that s missing new name parameter * stress-sockfd: make bind failure on EADDRINUSE a resource issue * stress-sockfd: use SO_REUSEADDR to avoid bind failures * Handle ENOSPC mkdir failures as a resource allocation termination * stress-ioprio: don't terminate if we run out of resources * stress-chdir: use mkdir_ok array to track mkdir paths that are OK * stress-mq: ignore timeouts on timed message sends * stress-sockabuse: don't make connect failures terminal * stress-chdir: don't abort all the temporary directories can't be setup * stress-link: silently ignore out of resource limit failures * stress-key: skip over some expected non-fatal errors that should not abort the stressor * stress-chdir: make ENOSPC on setup a resource failure termination * stress-key: silently ignore ENOKEY * stress-key: skip over some expected non-fatal errors that should not abort the stressor * core-shim: re-try on EINTR a little more if they keep on occurring * stress-sockfd: use incrementing ports per stressor * stress-sockabuse: ensure correct errno value is reported on a connect failure * stress-sync-file: don't fail on ENOSPC, instead retry * stress-seal: don't fail on EBUSY on a F_SEAL_WRITE add fcntl * stress-lease: don't fail on EAGAIN error from fcntl * stress-ioprio: don't terminate if we run out of resources * stress-dnotify: don't terminate if we run out of resources * stress-inotify: also ignore test file write failures on ENOSPC * stress-inotify: don't terminate if we run out of resources * stress-seek: handle ENOSPC errors on write * stress-fiemap: make ENOSPC on writes non-fatal * Add SIGABRT stressor. Exercise SIGABRT sending via raise() and abort() * stress-zero: fully check if data from /dev/zero is zero * stress-epoll: retry on low resources causing system call failures * Fix one more arch specific supported helpers that is missing the new name parameter * Fix some arch specific supported helpers that are missing new name parameter * Pass the name of the stressor into the supported() handler * core-sched: prefix all messages with "sched: " rather than nothing or __func__ names * core-sched: remove some capitalization * core-sched: add spacing in messages, make the dbg only * stress-close: don't assume max_delay_us is non-zero * xattr: add removexattr system call * stress-session: randomly select the wait call if wait4 is available * stress-ng: remove unused sched_deadline_init * syscalls: add wait3 and wait4 * stress-wait: use wait3 if it is available * Add wait3 system call detection and shim wrapper * Add P_PIDFD #define for older linux/wait.h that don't yet define it * core-shim: add new process_madvise() shim * stress-chmod: use strlcpy instead of strcpy as it's safer * stress-session: cast pid to int to print it portably * stress-chmod: make dfd open optional if O_DIRECTORY is not supported * stress-wait: add wait4 call if it is available * stress-session: use wait4 if it is available * stress-chmod: fix BSD EFTYPE error failure * stress-session: add stressor to set and get session ids * core-sched: fix build errors with missing stress_set_deadline_sched on GNU/HURD * core-sched: fix unused parameter and unused variable warnings * manual: update contributors information * manual: fix some missing .TP commands and minor spelling clean up * stress-ng: add sched-reclaim option for deadline scheduler * stress-ng: support sched deadline * core-shim: disable native nanosleep for risc-v * Add STRESS_RISC_V arch macro and don't yield on this arch * Makefile: ensure spaces are removed before perf macros * stress-urandom: add select and read on blockable opened /dev/random * Replace white space with tabs before statements * Rename helpers, remove __ suffix and prefixes * stress-procfs: clean up name shadowing by renaming ptr to bptr * Use stress_dirent_list_free to free dirent lists * core-helper: add stress_dirent_list_free helper * stress-sysfs: process non-directory files before handling directories * stress-procfs: process non-directory files before handling directories * stress-procfs: only format path when required * syscalls.txt: update recvmmsg to note it is being exercised by sock stressor * stress-fanotify: remove some white spaces and empty lines * stress-resources: open non-existent files to expand dcache false hits * syscalls.txt: Update, add faccessat, fchmodat and fchownat * stress-chmod: Add fchmodat check and add it to chmod testing * stress-clock: add CLOCK_TAI * stress-clone: add CLONE_NEWTIME * stress-procfs: exercise known buggy seek and read issues * stress-procfs: add process /proc exercising * stress-numa: cater for systems where numa system calls are not provided * stress-netlink-proc: cater for connection refused on writev * stress-fanotify: add more fanotify support sanity checks * stress-kcmp: treat ENOSYS as a non-fatal error return from kcmp * stress-reboot: remove some blank lines * test/test-pthread-attr-setstack.c: make stack static * stress-fanotify: add FAN_DIR_MODIFY -- Colin King Thu, 23 Apr 2020 19:44:12 +0100 stress-ng (0.11.07-1) unstable; urgency=medium * Address multiple issues found with pedantic static analysis (LP: #1870193) - enabled higher static analysis settings and found and fixed a lot of bugs.. * Makefile: bump version * Manual: fix lintian warning on undefined macro * stress-zlib: fix clang warning of array subscripted by char * core-helper: make end-of-string assignment easier to comprehend * stress-reboot: use heap for clone stack, cleans up static analysis warning * core-cache: clean up pedantic warnings from static analysis * stress-af-alg: fix several memory leaks * stress-tun: fix close issues on sfd * stress-xattr: be overly pedantic and memset array tmp * stress-urandom: fix fd leak on fd_rnd_wr * stress-sysbadaddr: fix incorrect 2nd parameter to utimes call * stress-sockmany: fix fd leak, close file descriptor on error * stress-sockabuse: ensure addrlen is set to the length of addr * stress-sockabuse: close fd even when it is zero * stress-sockabuse: avoid closing unopened fd on error * stress-sock: ensure socklen setting is set before calling getsockopt * stress-sigfd: voidify return of read, we don't care if it fails * stress-sigfd: fix open error check * stress-shm: use shim helper and ignore error return * stress-ramfs: fix close of a -ve file descriptor * stress-pipeherd: remove redundant variable n * stress-mq: don't check values[prio] if prio is out of range * stress-memhotplug: fix leak of opendir descriptor * stress-judy: check allocated pvalue is not-null * stress-eventfd: fix incorrect open failure check * stress-cpu: gcd: fix potential multiply overflow * stress-cpu: ensure i64 is stashed in stress_cpu_intconversion * stress-clock: be extra pedantic and set and check timer_id values * stress-chattr: handle open failure correctly * stress-binderfs: fix failure error return path * stress-af-alg: fix incorrect size of buffer to randomize * core-helper: don't call ttyname a second time, use name instead * core-helper: ensure data is null terminated * core-cache: nullify a free'd cpus pointer before returning * stress-cpu: add missing Apéry constant cpu method * stress-zlib: add missing morse code generated text -- Colin King Wed, 1 Apr 2020 18:23:41 +0100 stress-ng (0.11.06-1) unstable; urgency=medium * Makefile: bump version * stress-dev: remove TIOCGETC and TIOCSETC ioctl to fix FTBFS on alpha - this is the 2nd attempt to fix this issue, this time I'm removing the use these specific ioctl commands. -- Colin King Mon, 30 Mar 2020 09:46:35 +0100 stress-ng (0.11.05-1) unstable; urgency=medium * Makefile: bump version * stress-dev: define a shim for struct tchar, fixes a FTBFS on arch alpha -- Colin King Sun, 29 Mar 2020 17:34:14 +0100 stress-ng (0.11.04-1) unstable; urgency=medium * Makefile: bump version * stress-sockabuse: reduce scope of variable sfd * stress-reboot: reduce scope of another ret variable * stress-reboot: reduce scope of variable ret * stress-skiplist: make function skip_list_free static * stress-madvise: relax constness of buf pointer * stress-reboot: don't pass args to clone, it is not required * stress-reboot: remove shadowed variable ret * stress-sysbaddr: add guard on bad_getdomainname and comment out bad_acct * stress-sysbadaddr: disable acct for the moment. * stress-sysbadaddr: limit clone to just linux for the moment * stress-sysbadaddr: pass incremented addresses to avoid restrict warnings * stress-sysinfo: cast void * to the appropriate arg types on system calls * stress-reboot: add and use SHIM_CAP_SYS_BOOT * stress-reboot: move help so it's always built in * Add a reboot stressor. This does not actually reboot a system. * stress-sigfd: exercise the fd info of the signalfd * stress-fcntl: pass uids array to fcntl for F_GETOWNER_UIDS cmd * stress-sysbadaddr: remove create, it can leave broken files in directory * stress-sysbadaddr: add in more system calls * stress-procfs: remove ARM64 workaround as this is now fixed * README: update stressor stats * stress-xattr: don't fail to build if HAVE_LGETXATTR is not defined * stress-xattr: don't fail to build if HAVE_LSETXATTR is not defined * stress-xattr: don't fail to build if HAVE_LLISTXATTR is not defined * core-shim: fix typo on LLISTXATTR detection * Add shims to xattr system calls * stress-pipeherd: fix typo in switch rate info * stress-sockabuse: remove xattr from OS X builds * stress-dev: add TCOOFF, TCOON, TCIOFF, TCION ioctls * stress-dev: add TIOCGETC and TIOCSETC ioctls * stress-rtc: exercise RTC_SET_TIME, RTC_IRQP_SET and RTC_VL_READ ioctls * stress-ustat: silently ignore bad ustat buf * stress-sockabuse: don't memset timespec if we don't have HAVE_FUTIMENS * stress-sockabuse: silently ignore EADDRINUSE error when binding * stress-sockabuse: use different port for each instance * stress-sockabuse: use DEFAULT_SOCKABUSE_PORT as the default post * stress-ng.h: update a couple of socket port definitions * core-shim: cast shim'd ustat arg to void * * stress-sockabuse: localize variable n to FIONREAD ioctl code block * core-shim: fix missing ; on shim_enosys call * Add a skiplist stressor * Add socket file descriptor abusing stressor * stress-madvise: exercise madvise on mappings in threads where possible * stress-cpu: remove tab * syscalls.txt: remove stray ' char * Add a shim for deprecated system call ustat * stress-eventfd: exercise /proc/self/fdinfo on the eventfd descriptors * stress-chattr: fix build failure for non-Linux platforms * Add chattr file attribute stressor * stress-dentry: pressurize the dentry cache with negative dentries -- Colin King Sat, 28 Mar 2020 22:36:12 +0000 stress-ng (0.11.03-1) unstable; urgency=medium * Makefile: bump version * core-try-open: break up assignment and check into two statements * stress-softlockup: reduce scope of old_nice_val * stress-softlockup: remove redundant assignment to old_nice_val * stress-cpu: workaround a cppcheck warning * stress-cpu: replace pointer casting with union type * stress-cpu: exercise struct element u32 * stress-cpu: fix incorrect assignment * stress-cpu: fix type on assignment of i64 * stress-cpu: reduce scope of some integer variables in a for-loop * stress-cpu: reduce scope of variables in a for-loop * stress-binderfs: move declaration of variable i into #if block * stress-binderfs: move label close_control to clear up warning * stress-binderfs: reduce scope of ret and t2 variables * stress-netlink-task.c: ensure pointer is const * stress-pthread: add build time check for pthread_attr_setstack * stress-pthread: define PTHREAD_STACK_MIN if it is not defined * stress-mmapfork: make stress_memory_is_not_zero a conditional build * snapcraft: add base info and remove need for libxattr1 * Debian: control: remove need for libxattr1 (Closes: #953905) * stress-ng.h: add more comments * stress-mmapfork: add madvise MADV_WIPEONFORK sanity check * stress-dentry: exercise with utime setting * Add intconversion cpu stressor method * Fix _ARCH macros not being used because of bad rename * Add a floatconversion cpu stressor method * stress-cpu: add long double sqrt to the sqrt stress method * Remove trailing tabs, minor tidy up * Remove trailing spaces, minor tidy up * core-parse-opts: fix a cppcheck warning, cast values to long and use %ld * stress-enosys: add x86 syscall calls * stress-ng.h: clean up some overly long function prototypes * Rename all get_{int|uint}* helpers to stress_{int|uint}* * core-parse-opts: add stress_ prefix to ensure helper functions * core-affinity: add stress_ prefix to helper functions * core-parse-opts: add stress_ prefix before check_* helper functions * Rename set_max_limits to stress_set_max_limits * Rename log_system_mem_info to stress_log_system_mem_info * stress-sleep: remove alternative stack * stress-procfs: remove alternative stack * stress-memthrash: remove unused label 'die' * stress-sysfs: remove alternative stack * stress-memthrash: remove alternative stack * stress-membarrier: remove alternative stack * stress-mcontend: remove alternative stack * stress-inode-flags: remove alternative stack * stress-fstat: remove alternative stack * stress-pthread: mmap each pthread's stack and improve failure checking * stress-dev: remove alternative stack * stress-pthread: remove alternative stack * core-parse-opts: cast *ptr to int to avoid clang 3.4 warning * stress-madvise: add FreeBSD madvise options * stress-mmap: add some FreeBSD mmap options * core-shim: fix braino on pointer declaration * core-shim: add unconstify helper for mlock on older sun systems * Fix PRAGMA_* macros that are missing STRESS_ prefix * Macros: put all values in ( ) * Add STRESS_ to PRAGMA macros * Rename warn_once to stress_warn_once * Rename align_stack to stress_align_stack * stress-cpu: remove tabs to keep continutation markers aligned * Rename MWC_ macros to STRESS_MWC_ * Rename arch macros, add _ARCH to signify they are architecture specific settings * Add SHIM_ prefix to ICACHE and DCACHE macros * core-time: rename timeval_to_double to stress_timeval_to_double and un-inline it * core-setting: stress_ prefix before settings helper functions * put*: add stress_ prefix before put* helper functions * mwc: add stress_ prefix before mwc random number helper functions * jobs: add stress_ prefix before job helper functions * cache: add stress_ prefix before cache helper functions * Rename args_t to stress_args_t * Rename opt_set_func_t to stress_opt_set_func_t * Rename help_t to stress_help_t * Rename pthread_args_t to stress_pthread_args_t * Rename cpus_t to stress_cpus_t * Rename cpu_t to stress_cpu_t * Rename cpu_cache_t to stress_cpu_cache_t * Rename cache_t to stress_cache_t * Rename scale_t to stress_scale_t * Rename shared_t to stress_shared_t * Rename proc_stats_t to stress_proc_stats_t * Fix typedef / struct type warning on proc_info * Rename tz_stat_t to stress_tz_stat_t * Rename tz_info_t to stress_tz_info_t * Rename proc_info_t to stress_proc_info_t * Rename mwc_t to stress_mwc_t * Rename put_val_t to stress_put_val_t * Rename setting_t to stress_setting_t * Rename perf_stat_t to stress_perf_stat_t * Rename class_info_t and class_t * Rename type_id_t to stress_type_id_t to avoid future name clashes * stress-mmap: add two OpenBSD mmap options * voidify return from munmap() * Rename helper mfence to shim_mfence * Rename helper shim cflush to shim_cflush * stress-binderfs: fix typo in non-linux build * stress-binderfs: add binder file system stressor * stress-vecmath: use macros to simplify vector initialization -- Colin King Mon, 16 Mar 2020 16:40:22 +0000 stress-ng (0.11.02-1) unstable; urgency=medium * Makefile: bump version * core-parse-opts: cater for -ve values * core-parse-opts: check for non-numeric in numeric args (Closes: #940515) * Manual: update contributors names * Fix --random mode * Allow negative --random for selecting number of online CPUs * stress-prctl: add PR_SET_IO_FLUSHER PR_GET_IO_FLUSHER prctl commands * stress-mmapfork: check if parent is OOM'd and force exit on early abort * stress-mmapfork: force reap on interrupt waiting for pid * stress-mmapfork: ensure we kill and reap child processes * stress-mmapfork: reap when no more process slots are free * stress-mmap: add in more yield points -- Colin King Tue, 3 Mar 2020 14:50:44 +0000 stress-ng (0.11.01-1) unstable; urgency=medium * Makefile: bump version * Ensure --aggressive mode terminates early (LP: #1858858) * stress-ptrace: also check for EACESS errors * stress-ptrace: add one more EPERM check * stress-ptrace: make EPERM non-fatal error, modify pr_info messages * snapcraft: add system-trace, hardware-random-observe interfaces * stress-ptrace: terminate in with failure if child cannot be ptraced -- Colin King Mon, 24 Feb 2020 10:48:23 +0000 stress-ng (0.11.00-1) unstable; urgency=medium * Makefile: bump version and change codename * stress-pipeherd: make sure child terminates with _exit() * kernel-coverage: add timer-slack timer setting * Fix --timer-slack correctly, fetch argument and set it * core-parse-opts: sanity check uint32 and int32 min/max values * Add environment stressor * Make several const objects static * stress-pidfd: voidify return from pause system call * stress-get: add missing check_do_run exit points after new get* system calls * stress-get: exercise a few more get* system calls * stress-pipeherd: add context switch stats * Add pipeherd stressor: a stress to simulate a thundering herd of pipe wakeups -- Colin King Wed, 12 Feb 2020 14:19:41 +0000 stress-ng (0.10.19-1) unstable; urgency=medium * Makefile: bump version * stress-mmapaddr: make stress_mmapaddr_child static * stress-wait: remove duplicated pr_fail message and cast pid_t to long int * stress-memrate: rename NANOSEC to STRESS_NANOSEC to avoid clashing * stress-cyclic: avoid NANOSEC* name classhes, rename to STRESS_NANOSEC * Fix the MAX_FILE_LIMIT shift, use 1ULL instead of 1UL * stress-sockfd: attempt to read from the fd passed over the socket * stress-fork: fix time_now calls to stress_time_now * stress-clone: move a #if defined that got moved to the wrong place * set maximum file size based on off_t size * set maximum memory limit to MAX_48 and maximized limits to MAX_32 * core-sched: prefix typedefs with stress_ * core-perf: prefix typedefs with stress_ * core-net: prefix typedefs with stress_ * core-ignite-cpu: prefix typedefs with stress_ * core-cache: prefix typedefs with stress_ * core-cache: prefix typedefs with stress_ * stress-*: prefix typedefs with stress_ * stress-pty: allocate the pty structure on the heap, don't use the stack * stress-stackmmap: ensure random data is pushed onto the stack * stress-stack: fill pages with non-zero content to avoid same-page merges * stress-spawn: fix up a comment * stress-wait: add waitid siginfo sanity checks * stress-wait: fix WIFCONTINUED check because of a typo in the check * core-helper: map signal number to signal name * core-shim: fix renaming of time_now to stress_time_now * core-helper: voidify arg fd in stress_is_dev_tty * stress-x86syscall: move scope of variable j * stress-vdso: measure test overhead to compute more accurate results * stress-x86syscall: measure test overhead to compute more accurate results * core-time: prefix helper functions with stress_ * core-thrash: prefix helper functions with stress_ * core-thermal-zone: prefix helper functions with stress_ * core-perf: prefix perf helper functions with stress_ * core-mount: add stress_ to mount helper functions * Add stress_ to mmap_set and mmap_check helper functions * Prefix mincore helper functions with stress_ * Rename madvise_random to stress_madvise_random * stress-zlib: scale the logmap value to produce harder to compress data * stress-zlib: add chaotic number generator using a logmap method * replace g_keep_stressing_flag with two helper functions * stress-memthrash: add byte swapping memory stepping thrasher * stress-sysfs: add bad sysfs files to hash table * Makefile: remove need to define __FreeBSD_Kernel__ * Add more stress_ prefixes to various core functions * core-ignite-cpu: prefix ignite_* functions with stress_ * core-cpu: rename cpu_is_x86 to stress_cpu_is_x86 * core-hash: remove need for str pointer * core-hash: optimize hash adding, reduce need for strdup and a free * stress-zombie: make max zombies a 32 bit * stress-clone: make max clones a 32 bit * stress-chdir: cleanup the chdir(cwd) loop * stress-memrate: clean up continuation lines * Rename set_oom_adjustment -> stress_set_oom_adjustment * Add stress_oomable_child helper to catch and restart OOM'd child processes * stress-chdir: use flags rather than #ifdef around the open call * core-hash: move various string hashing functions to core-hash -- Colin King Fri, 7 Feb 2020 14:37:11 +0000 stress-ng (0.10.18-1) unstable; urgency=medium * Makefile: bump version * stress-urandom: handle ENOTTY errors on ioctl() on older kernels -- Colin King Wed, 29 Jan 2020 14:09:22 +0000 stress-ng (0.10.17-1) unstable; urgency=medium * Makefile: bump version * stress-clock: reduce scope of variable ret * stress-shm: free addrs and shm_names on error * stress-shm: only use SA_NOCLDWAIT if it is available * stress-exec: clean up warning on gcc 4.8.5 * stress-exec: define err label only if required * Add core-try-open helper to check if a file can be opened without blocking * stress-exec: remove shadowed variables ret and rc * Add string hash helper to core, use this for device and scsi hashing * stress-dev: move handler to fix build warning * stress-dev: fix equality checks and incorrect stress_dev_tty_open call * stress-dev: add blocked device open sanity check * stress-cpu: add lowest common multiple sanity check on gcd computation * stress-clock: exercise clock_getres on a /dev/ptp0 clockid * stress-clock: exercise /dev/ptp0 on linux * kernel-coverage.sh: allow perf to run when non-root * stress-tmpfs: add MAP_HUGETLB mmap option and reduce sleep time * stress-mmap: remove duplicated no_mem_retries increment * stress-membarrier: exercise more membarrier commands * stress-fcntl: exercise F_SETOWN, F_SETOWN_EX and F_GETOWN_EX more * stress-exec: create and try to execute a garbage executable * stress-stream: fix failure message logging * stress-shm: add some more shm exercising on shm fd * stress-ramfs: rename mount point directory to mnt * stress-af-alg: add helpers to lookup hash types by name or type * stress-af-alg: remove ptr + 2 occurrences * stress-msg: exercise MSG_COPY if it is available * stress-aio-linux: ignore EINVAL on io submits for fdsync or fsync commands * stress-brk: silently ignore brk on a specific address failures * stress-sysfs: disable ROM test as this is causing some issues * stress-mq: use 0..127 priority levels chosen at random * stress-quota: add CAP_SYS_ADMIN prechecks before running the stressor * stress-sysfs: skip over /sysfs kernel debug interfaces -- Colin King Tue, 28 Jan 2020 16:00:02 +0000 stress-ng (0.10.16-1) unstable; urgency=medium * Makefile: bump version * Update copyright year to 2020 * Manual: update date * stress-bad-altstack: clean up clang pedantic build warning on variable shadowing * stress-aio-linux: use %zu for size_t instead of %zd * stress-mq: simplify file open and null check for static analysis tools * stress-aio-linux: use correct %zd print format specifier for size_t * stress-bad-altstack: move SIGSEGV handler to child * stress-bad-altstack: ensure we set the mmap'd alternative stack * stress-bad-altstack: aggressively re-try when we can't segfault the handler * stress-aio-linux: perform periodic async fdsync and fsync and use lots of open files * stress-aio-linux: add async reads and allocate buffers * stress-dev: Add TIOCMBIS and TIOCMBIC ioctls * stress-dev: add TIOCNXCL and TIOCEXCL ioctls * stress-dev: add a couple more tty specific ioctls * stress-aio: fix sleepy wait to make it interruptible * Manual: move the --set and --set-ops to the correct place * stress-sysfs: remove commented out debug * stress-sysfs: improve timeout on slow sysfs entries, get more coverage * stress-ramfs: create/lstat/remove symlink file on ramfs filesystem -- Colin King Fri, 10 Jan 2020 17:15:13 +0000 stress-ng (0.10.15-1) unstable; urgency=medium * Makefile: bump version * Manual: update date * stress-cyclic: only declare label redo_policy for SCHED_DEADLINE * stress-cyclic: don't perform E2BIG error check if SCHED_DEADLINE is not available * stress-cyclic: print out cyclic policy name using correct index * stress-cyclic: remove space before == operator * stress-cyclic: update to new policy if E2BIG occurs * stress-cyclic: handle differences in sched_attr sizes * stress-sock: ensure pointer recvfunc is ininitialized * stress-vm-segv: avoid void * pointer arithmetic, it is not portable * stress-sysbadaddr: avoid void * pointer arithmetic, it is not portable * stress-memthrash: fix up another void * math portability issue * stress-memthrash: avoid void * pointer arithmetic, it is not portable * stress-madvise: avoid void * pointer arithmetic, it is not portable * stress-clone: make rnd a uint32_t so 31 bit left shift is portable * stress-rds: remove prototype stressor * stress-ramfs: remove unnecessary initialisation of pid * stress-exec: move variable ret into section that requires it * stress-urandom: ignore -EINVAL errors on non-existent ioctls * stress-ramfs: ensure path does not overflow in snprintf * stress-urandom: fix build warning on non-Linux platforms * stress-urandom: only write to /dev/urandom on Linux * stress-mmap: fix missing stressor name in pr_inf messages * stress-mmap: clean up build warning on systems that won't retry * stress-eventfd: fix build issue with systems that don't support eventfd * stress-mmap: add MAP_{EXECUTABLE|UNINITIALIZED|DENYWRITE} flags * stress-mmap: use MAP_NORESERVE as we have a SIGSEGV handler * stress-dev: add some pre-checks before assuming dev is a tty * stress-mmap: add MAP_HUGETLB mmap flag * stress-dev: add more tty ioctls * stress-tun: add TUNGETDEVNETNS ioctl * stress-tun: add various tun related *SET* ioctls * stress-tun: add TUNGETVNET* ioctls * stress-tun: add TUNGETSNDBUF ioctl * stress-tun: add TUNGETVNETHDRSZ ioctl * stress-tun: add SIOCGIFHWADDR ioctl * stress-tun: add TUNSETNOCSUM ioctl * stress-xattr: add llistxattr system call * stress-procfs: add fstat operation on proc file and exercise namespace files * stress-procfs: handle DT_LNK symlinks like regular files * stress-fcntl: F_SETLKW at SEEK_END and SEEK_CUR file positions * kernel-coverage: add a couple more coverage options * stress-exec: add random 1 in 4 chance exec'ing from inside a pthread * stress-eventfd: add non-blocking option --eventfd-nonblock * stress-tun: disable tun/tap device info * stress-tun: add tap support with --tun-tap option * stress-ramfs: add some file/directory activity on ramfs * stress-iomix: silently ignore -EPERM write failures * stress-ramfs: alternate between ramfs and tmpfs memory based filesystems * kernel-coverage: add mmap odirect and osync options * stress-mmap: add --mmap-odirect and --map-osync file options * stress-swap: add random use of SWAP_FLAG_DISCARD if available * kernel-coverage: Add more options to get more kernel coverage * Manual: remove trailing space * stress-run: make bind EADDRINUSE not fatal * stress-tun: Add network tunnelling stressor using the TUN/TAP interface * stress-urandom: use SHIM_CAP_SYS_ADMIN instead of CAP_SYS_ADMIN * kernel-coverage: add --all option * stress-prctl: add 4 more prctl commands to exercise * stress-sem-sysv: add SETALL semctl * stress-fanotify: add more fanotify events, remove exec stats * stress-urandom: move next label to avoid skipping some more stress points * stress-urandom: exercise lseek and write on /dev/random * stress-urandom: add more ioctl calls to exercise kernel coverage * stress-loop: add xor and none crypto on loopback * stress-loop: exercise the LOOP_SET_BLOCK_SIZE ioctl -- Colin King Tue, 31 Dec 2019 01:37:31 +0000 stress-ng (0.10.14-1) unstable; urgency=medium * Makefile: bump version * stress-chdir: fix opening of paths[i] * stress-vecmath: don't use TARGET_CLONES on ppc64, it breaks some older compilers * stress-hrtimes: handle fork resource failures more gracefully. * stress-chdir: mix random value and grey code of nth file * stress-chdir: make paths more random and chdir to / for more stress * stress-wait: clean up a comment * stress-sem: add sem_getvalue call to increase coverage * stress-sem: add sem_timedwait to increase test coverage * sigprocmask: fix missing sigprogmask and add sigtimedwait * core-cache: remove / from cache path -- Colin King Mon, 16 Dec 2019 21:22:23 +0000 stress-ng (0.10.13-1) unstable; urgency=medium * Makefile: bump version * stress-dev: add TIOCMGET, TIOCGICOUNT and TIOCGSERIAL ioctls * stress-close: add more open types, don't chown files if root, remove AF_APPLETALK * stress-close: enable some more socket domains * test: add test-setproctitle.c, forgot to add this earlier * Where possible set the process title (argv[0]) * Change cache size information from info to debug level output * stress-ng: add missing space between switch statement and ( * Add SIGILL to signals that need to be handled, it was missing * stress-rdrand: fix typo in \n at end of info message * stress-sock: fix build issues on systems without HAVE_RECVMMSG * stress-sock: get the incoming CPU of the socket * stress-sock: get MTU size and set TOS to IPTOS_THROUGHPUT * kernel-coverage.sh: add random sock-opts flag * stress-sock: also exercice recvmmsg and recvmsg * stress-sock: remove debug * stress-sock: add a random send option for --sock-opt * core-mwc: fix mwc8() being reset when using mwc1() * stress-schedpolicy: silently ignore EBUSY returns (LP: #1853944) -- Colin King Mon, 9 Dec 2019 12:37:21 +0000 stress-ng (0.10.12-1) unstable; urgency=medium * Manual: update date * stress-sem-sysv: fix GETALL arg, it should not be pass by reference * stress-clock: fix segfault when timer_create fails * kernel-coverage.sh: add more hdd specific advice hints * stress-revio: fix fadv-seq option, it is currently disabled * stress-hdd: fix fadv-seq option, it is currently disabled * stress-sem-sysv: remove trailing whitespace * stress-udp: exercise SIOCOUTQ and SIOCINQ ioctls * stress-sock: exercise SIOCOUTQ and SIOCINQ ioctls * stress-udp-flood: add SIOCOUTQ ioctl * Include linux/sockios.h include if is available * stress-shm: add lseek to exercise shm * stress-sem-sysv: exercise GETALL semctl command * stress-sem-sysv: fix typo GEZCNT -> GETZCNT * stress-sysfs: add poll to sysfs exercising * stress-sysfs: add some more file specific operations on /sysfs files * stress-clock: don't wait for timer completions, makes test more aggressive * stress-madvise: add MADV_COLD and MADV_PAGEOUT advice flags * stress-msg: add random MSG_STAT_ANY msgctl call * stress-msg: check struct msginfo is available with HAVE_MSGINFO * kernel-coverage.sh: remove unix socket domain from udp stressor * stress-rdrand: increase rdrand read rate by adding inner loop * Manual: add clone3() to --clone description * core-shim: remove debug * stress-clone: convert NULL to a uint64_t for tls clone argument * stress-clone: exercise clone3() if it is available * stress-clone: add linux 5.5 CLONE_CLEAR_SIGHAND flag * stress-rdrand: remove rdrand32 * stress-rdrand: add support for Power9 darn instruction * stress-tsc: add time stamp counter support for ppc64 * stress-sockmany: clean up build warnings on openindiana * stress-stack: make altstack a void pointer, cleans up build warning * Fix --timer-slack from consuming the following arg (LP: #1853832) * stress-ng: add ppc64el target clones for power9 and generic * stress-fp-error: clean up error warning on non-standard fegetround prototypes * stress-memthrash: constify size arguments * stress-ipsec-mb: remove debug disabling of the stressor for x86 * stress-ipsec-mb: Add --ipsec-mb-feature option -- Colin King Wed, 27 Nov 2019 19:38:23 +0000 stress-ng (0.10.11-1) unstable; urgency=medium * Makefile: update version * Manual: update date * stress-dev: remove NetBSD mixup_sort variant, NetBSD 8.0 is now compliant * stress-schedpolicy: fix build warnings on BSD systems * Rename stress-socketmany to stress-sockmany to match the stressor name * Rename stress-socketpair to stress-sockpair to match the stressor name * Rename stress-socket-diag to stress-sockdiag to match the stressor name * Rename stress-socket-fd to stress-sockfd to match the stressor name * stress-sock: rename functions with sctp in name to sock * Rename sock stressor stress-socket.c to stress-sock.c * Add sockmany stressor to exercise many open socket connections * stress-dev: add initial /dev/ptp device exercising code * stress-schedpolicy: add SCHED_DEADLINE scheduling * stress-softlockup: force lowest niceness to be less nice * stress-softlockup: clean up a comment * kernel-coverage.sh: Add some more corner case stressors * stress-shm-sysv: silently ignore EINVAL when deleting shared memory * manual: add default number of system V shared memory segments * README: update number of stressors * stress-zero: add lseeks as these are allowed on /dev/zero * stress-zombie: don't give up when we hit out of memory * stress-schedpolicy: exercise sched_util_max if it is usable * stress-cache: add --cpu-sfence sfence instruction support (x86 only) * stress-af-alg: fix typo: rd -> rc * stress-af-alf: fix stack clobbering issue on arm64/armhf * stress-af-alg: report send/sendmsg EINVAL errors as debug, ignore for next time * stress-af-alg: add a preemption point on each crypto iteration -- Colin King Wed, 20 Nov 2019 16:24:11 +0000 stress-ng (0.10.10-1) unstable; urgency=medium * Makefile: bump version * stress-ipsec-mb: rename IPSEC to IPSec * stress-ipsec-mb: add helper function to get and memset the next job * stress-ipsec-mb: increment jobs count in stress_job_check_status * stress-ipsec-mb: check that jobs are complete as soon as possible * stress-funcret: rename counter ii to i * README: Fix typo in requests * README: Add contributing information -- Colin King Fri, 8 Nov 2019 13:44:15 +0000 stress-ng (0.10.09-1) unstable; urgency=medium * Makefile: bump version * Makefile: add stress-af-alg-defconfigs.h to the dist rule * stress-af-alg: make buffers static, reduces stack overhead * stress-af-alg: add opt_set_funcs helper for non-linux builds * Manual: update contributors and date * stress-af-alg: some minor code cleanups, no functional change * stress-af-alg: handle bind() ETIMEDOUT failures * stress-af-alg: add default configs to complement /proc/crypto list * stress-af-alg: add defconfigs with --af-alg-dump * stress-af-alg: introduce the --af-alg-dump option * stress-af-alg: skip 'internal' crypto algorithms * stress-af-alg: fix close(fd) to avoid bind() EBUSY * stress-af-alg: use 'aead' salg_type for CRYPTO_AEAD on bind() * stress-af-alg: fix sockaddr algorithm type on bind() * stress-stack: setup alternative stack in child only (LP: #1851316) * stress-stack: check for ENOMEM fork failure and retry * stress-stack: don't throw a fatal error when sigaltstack fails * stress-stack: return error code in child using _exit() and not return * core-madvise: Add 5.4 MADV_COLD and MADV_PAGEOUT hints * stress-prctl: add PR_GET_SPECULATION_CTRL exerciser * Manual: update af-alg description * Make a couple of const strings static * stress-af-alg: fix build errors on undefined macros * stress-af-alg: add aead support * stress-af-alg: remove some debugging messages * stress-af-alg: remove old unused crypto structures * stress-af-alg: only add crypto algorithms that are supported by the stressor * stress-af-alg: use crypto algorithm data from /proc/crypto * stress-clone: Add CLONE_NEWCGROUP * stress-daemon: add expanding backoff timeout * stress-daemon: keep retrying fork if we don't have enough resources * stress-daemon: add minor backoff before fork retry (LP: #1849595) * stress-vm: print stressor name using args->name rather than literal string * stress-readahead: print stressor name in failure message * stress-matrix-3d: use pr_fail for short error failure messages * stress-matrix-3d: use pr_fail_err for short error failure messages * stress-iomix: fix one more pr_fail message * stress-iomix: use pr_fail_err for short error failure messages -- Colin King Wed, 6 Nov 2019 01:03:05 +0000 stress-ng (0.10.08-1) unstable; urgency=medium * Makefile: bump version * README: Add SuSE package information * stress-x86syscall: use cpuid if it is available * README: Add Judy development library packages * Remove redundant stress-ng snapcraft makefile * stress-judy: Add Judy array stressor * Add memory hotplug stressor * stress-sendfile: add missing line after variable declaration * stress-dev: add some more linux keyboard ioctls to exercise * stress-tree: fix error messages when nodes are not found * stress-swap: detect for EINVAL errors on swapon * stress-filename: don't use chars in filename that throw EILSEQ errors * stress-fiemap: detect if file system can support FIEMAP ioctls * stress-zlib: make some char * pointers non-clobberable by longjmp * stress-urandom: add mmap'ing to /dev/urandom for more exercising * stress-zlib: use text_start and text_end based on stress-zlib object code * Add x86syscall vsyscall stressor * stress-tsc: fix info message when tsc is not supported -- Colin King Mon, 21 Oct 2019 11:47:22 +0100 stress-ng (0.10.07-1) unstable; urgency=medium * Makefile: bump version * Remove smatchify script, we now use other tools to static analyse stress-ng * core-helper: add sanity check if ttyname returns NULL to avoid null pointer dereferencing * stress-fp-error: fix checks for NaN and Inf (LP: #1846216) * Don't show utf8 chars on dump consoles (LP: #1846196) * stress-clone: make child process larger to make it more OOM-able (LP: #1845948) * core-out-of-memory: open and close proc interface after each write * Add autobuild detection of getsid() for better portability * stress-ng.h: only use x86 target clones for x86 arches * stress-rdrand: unroll loop x 4 more times for more throughput * inline the __keep_stressing function, reduce call overhead for more throughput * stress-stack: make alternative signal stack privately mapped (LP: #1845464) -- Colin King Tue, 1 Oct 2019 16:39:52 +0100 stress-ng (0.10.06-1) unstable; urgency=medium * Makefile: bump version * stress-mcontend: ensure mmap'd file is sync'd with zero data (LP: #1845011) * stress-rmap: don't make fallocate failures a rmap test failure (LP: #1845005) * stress-shm: fork and exit a child to exercise shm dup and removal * stress-ng: fix jobfile with classes (LP: #1706970) * stress-procfs: don't randomly read pci proc info on ARM64 * stress-procfs: remove bad buffer test, it's not portable * stress-sysfs: rename MAX_READ_THREADS to MAX_SYSFS_THREADS * stress-sysfs: remove bad address reads, these fault on ARM64 * stress-procfs: rename MAX_READ_THREADS to MAX_PROCFS_THREADS * stress-inode-flags: move open/close to controlling process * stress-sig: fix spelling mistake "siqqueue" -> "sigqueue" -- Colin King Mon, 23 Sep 2019 17:40:21 +0100 stress-ng (0.10.05-1) unstable; urgency=medium * Makefile: bump version * core-shim: fix typo in shim_move_mount * core-shim: use shim_enosys for more ENOSYS returns * Clean up shims for syslog(2) and syslog(3) * stress-ramfs: remove it from the filesystem test * stress-dirdeep: make inodes info into a debug message * Remove trailing tab from ends of lines * Remove trailing white space after statements * stress-vm: fix verification failure with gray code method * stress-socket: make EPIPE a non-fatal error condition * stress-udp: use correct default UDP port 7000 * stress-ng: rescan the exclusion list for --class stressors * core-shim: reset errno before each waitpid call * stress-socket: handle SIGPIPE as non-fatal * stress-physpage: don't abort on zero address physpage * Use HTTPS URL for kernel.ubuntu.com -- Colin King Thu, 12 Sep 2019 15:26:22 +0100 stress-ng (0.10.04-1) unstable; urgency=medium * Makefile: bump version * Remove execute bit on bash completion script * debian: rules: workaround dwz failures on arm64 -- Colin King Mon, 2 Sep 2019 18:43:41 +0100 stress-ng (0.10.03-1) unstable; urgency=medium * Makefile: bump version * core-cache: add checks for null strings * stress-cpu: fix build time checks for __cpuid() * Debian: update compat to level 12 * Manual: update date * stress-cpu: add a collatz sequence stressor * stress-dev: temporarily disable hpet test * stress-stack: use memory backed mmap'd alternative stack * stress-inode-flags: detect failures in pthread and propagate these back to parent (LP: #1841900) * Add a pthread return pointer to pthread args * stress-numa: move assignment to *node_ptr * core-helper: voidify return of fprintf * core-cache: voidify return of snprintf * stress-ramfs: voidify return of snprintf * stress-ng: voidify return of fprintf and fflush * core-job: voidify return of fprintf * core-sched: voidify return of fprintf * stress-get: voidify memset return * stress-seccomp: vodify memset return * stress-bind-mount: remove ` char in comment * stress-apparmor: remove redundant sizeof char * Add new 5.3 sched_attr fields, fixes EFBIG on sched_{get|set}attr * core-helper: don't call sched_getcpu on s390x -- Colin King Mon, 2 Sep 2019 14:23:22 +0100 stress-ng (0.10.02-1) unstable; urgency=medium * Makefile: bump version * stress-pthread: protect counter with spinlock not mutex lock * Manual: update date * stress-pthread: don't block forever on pthread_cond_wait() (LP: #1840867) * stress-pty: remove some white spaces in source * core-cache: ensure read buffer has trailing '\0' * core-cache: update comments * core-cache: use a fixed size buffer for reading in /sys info * stress-cpu: remove a debugging message * stress-pty: don't report a failure on EINTR (LP: #1840512) * stress-cpu: add an x86 cpuid instruction exerciser * stress-cpu: add a 64 bit division stressor * snapcraft: add automatic versioning * snapcraft: bump version * stress-pthread: don't tkill pthreads, can lead to futex blocking -- Colin King Wed, 21 Aug 2019 10:00:01 +0100 stress-ng (0.10.01-1) unstable; urgency=medium * Upload as source package (Closes: #934007) * Makefile: bump version * stress-cache: replace globbing with scandir, clean up pathnames * stress-sysfs: remove filename, it is now redundant * stress-sctp: voidify unused return * stress-mcontend: break multistatment lines * stress-sysfs: copy to sysfs_path rather than using sysfs_path as a pointer * stress-procfs: disable read to read-only buffer * stress-procs: fix incorrect strlcpy size * stress-procfs: don't use large filenames on small pthread stacks * stress-sysfs: remove redundant readlink * core-shim: voidify unused args in new mount shim helpers * bash-completion: remove the shebang at the start * stress-ramfs: fix umounting races * Move the "random" option in correct alphabetical order * Move new mount system call shims to core-shim.c * stress-ramfs: remove pathological setting * stress-ramfs: add capability check before running * Add ramfs stressor, this also exercises the new mount system calls * Add brk emulation for systems that don't support brk() * stress-clone: add CLONE_PIDFD (new with Linux 5.2) * stress-cpu: remove blank lines * stress-cpu: warn if CPU affinity may have been set * stress-vforkmany: fix build error * stress-vforkmany: wrap vfork syscall and put pragmas around it * stress-fork: move pragmas to outside the stress_vfork function * stress-opcode: fix missing space and remove redundant parentheses * stress-memrate: handle memory sizes < 1MB -- Colin King Sat, 10 Aug 2019 19:48:23 +0100 stress-ng (0.10.00-1) unstable; urgency=medium * Makefile: bump version, change code name * stress-fault: remove redundant variable offset * stress-netlink-task: remove redundant initialization of id * stress-pthread: abort if mutex lock is unlockable * stress-cpu: use CLOCK_PROCESS_CPUTIME_ID to measure CPU consumed * stress-cpu: clean up cpu load variables * stress-cpu: fix CPU loading calculation * stress-dev: move ret and buffer to lower scope * core_shim: Remove caddr casts for __sun__ * stress-mergesort: workaround heap corruption on OpenBSD with setjmp/longjmp * core-helper: keeping on ringing SIGALRM until stressors get the message * stress-memthrash: make stressors more yielding * Enable FORMAT macro (__attribute__ format) for clang * Add Tiny C compiler notes in README * stress-fork: add vfork timeout for OS X to workaround SIGARLM issues * stress-fork: do explicit keep_stressing() call rather than simple flag check * stress-pthread: use stress_sigalrm_pending helper and make set non-static * stress-fork: block SIGALRM and check for pending SIGALRMs * Add stress_sigalrm_pending and stress_sigalrm_block helpers * stress-fork: make fork_max a uint32_t and optimize wait and error check loops * Only use openlog/closelog if we have HAVE_SYSLOG_H defined * core-sched: fix build error on some BSD systems * stress-brk: exercise zero expansion of brk * stress-efivar: exercise efi variable interfaces a little more * core-out-of-memory: refactor code, add a set adjustment helper * core-sched: put sched types into a lookup table * stress-socket: remove debug * stress-dev: exercise /dev/nvram * stress-dev: try lseek and read on /dev/mem on x86 * stress-socket: exercise IP_MTU if it is available * stress-sctp: use setsockopt for more socket option exercising * stress-sctp: remove some debugging info * stress-sctp: add some sctp related getsockopt calls * stress-fcntl: don't make EPERM a fatal test failure * stress-chroot: don't make EPERM a fatal test failure * stress-fault: fix warnings on open indiania with gcc-8 -- Colin King Mon, 8 Jul 2019 20:14:21 +0100 stress-ng (0.09.60-0ubuntu1) unstable; urgency=medium * Makefile: bump version * Makefile: add kernel-coverage.sh to make dist rule * Manual: add capabilities requirements and missing idle-page notes * stress-cpu: make val an auto variable, we can't take address of a register * stress-pidfd: reduce scope of variable pid * stress-netlink-task: reduce scope of variable len * stress-utime: move if statement into a #if'def block * stress-softlock: replace spaces with tab in indentation * stress-softlockup: remove a duplicated return statement * stress-resources: move a keep stressing check inside a #if'def block * stress-lockbus: fix build warning on label "done" for non-x86 arches * stress-lockofd: rename dirname to pathname * stress-ng.h: rename a couple of function args to stop name clashing * core-shim: ensure mlock addresses are const arguments * stress-lockf: declare opt_set_funcs for all builds * core-shim: rename dirfd to dir_fd * stress-timerfd: rename exp to expval * stress-memrate: rename remainder to dur_remainder * stress-lockf: rename dirname to pathname * stress-locka: rename dirname to pathname * stress-inotify: rename dirname to pathname * stress-hdd: rename remainder to size_remainder * stress-filename: rename dirname to pathname * stress-fcntl: rename dirname to pathname * stress-fanotify: rename dirname to pathname * stress-dnotify: rename dirname to pathname * stress-chown: rename dirname to pathname * stress-dir: rename dirname to pathname * stress-chmod: rename dirname to pathname * stress-opcode: remove .set_default and add .opt_set_funcs for GNU/Hurd builds * stress-opcode: fix build warning on GNU/Hurd * stress-enosys: fix build warning when array size is zero * stress-rawsock: remove shadowed rc declaration * stress-rawsock: remove redundant __packed__ attribute * stress-netlink-task: fix const build warning * Add kernel coverage test bash script * stress-netlink-task: voidify a few function returns and remove a whitespace * stress-lockbus: add a page boundary split lock * stress-tmpfs: add parentheses around magic number * stress-sctp: limit to ipv4 and ipv6 domains * stress-udp: limit to ipv4 and ipv6 domains * bash-completion: add vm-madvise completion * bash-completion: add --stream-madvise completion * Manual: fix up cyclic-method options * stress-netlink-task: remove unused assignment to na->nla_len * core-perf: fix spinlock error check * README: update number of stressors * Add netlink taskstats stressor * stress-shm-sysv: add occasional reading of /proc/sysvipc/shm for linux * stress-sem-sysv: add occasional reading of /proc/sysvipc/sem for linux * stress-msg: declare get_procinfo only when required for linux * stress-msg: add occasional reading of /proc/sysvipc/msg for linux * stress_get: add deprecated _sysctl call to get sysctl info * stress-sysfs: exercise /proc/thread_self earlier * stress-lockbus: add split locks * stress-mq: add lseek and poll on mq descriptor for Linux * stress-rawsock: limit this to linux for the moment * stress-resources: fix missing guard on fd_ev * core-time: add constification * core-thermal-zone: add constifications * core-shim: add a constification * core-parse-opts: add some constifications * core-mwc: add a constification * core-helper: minor constification clean ups * core-cache: constify len2 * Add a raw socket rawsock network stressor * Add HAVE_LINUX_HPET_H config checks * stress-socket: add baroque mmap on socket fd * core-thrash: add zone compaction, make per process paging less aggressive * stress-dev: add hpet HPET_INFO ioctl dev check * stress-loop: add LOOP_SET_DIRECT_IO ioctl * stress-loop: add 64 bit info get/set ioctl calls * stress-fanotify: check if FAN_MARK_FILESYSTEM is defined * stress-fanotify: exercise remove and flush -- Colin King Sat, 22 Jun 2019 09:27:15 +0100 stress-ng (0.09.59.1-0ubuntu1) unstable; urgency=medium * Makefile: bump version * stress-wcs: fix segfault because of using incorrect string pointer -- Colin King Sat, 8 Jun 2019 19:39:12 +0100 stress-ng (0.09.59-0ubuntu1) unstable; urgency=medium * Makefile: bump version * Add bash completion script * Fix up missing options args on help for various stressors * stress-fcntl: ignore EINTR as a failed error return * stress-iomix: add yield point in ioctl exercising * stress-resources: add missing ifdef guard on fd_memfd * stress-resources: add more yield points * stress-ioprio: add more yield points * stress-inode-flags: add another yield point check per ioctl * stress-hrtimes: optimize the reaping process of child processes * stress-vfork: improve vforkmany stressor yielding * stress-dnotify: make dnotify wait loop yield * Add more yield points when touching pages with mincore_touch_pages * stress-bad-altstack: fix inverted logic of yield checks * stress-bad-altstack: add some more yield points * stress-yield: clarify yielder task types * stress-mmap: voidify unused argument mmap_mprotect * stress-str: fix incorrect size for str2 * stress-wcs: fill string with random characters to the correct length * stress-shellsort: remove base_index helper function * stress-shellsort: correctly constify return from base_index() * remove declaration of ret, it shadows a higher scoped declaration * stress-prct: remove environ declaration, it is defined int unistd.h * core-helper: voidify unused capability argument * Revert "stress-vecmath: align data to cache boundary and copy on initialization" * core-helper: fix missing int type in stress_check_capability declaration * check for capabilities rather than if euid is zero * stress-clone: make parent of clone'd processes less oomable * stress-vecmath: align data to cache boundary and copy on initialization * sorting: fix comments of sorting functions * Add shell sort CPU/memory stressor * stress-wcstr: cache align start of wide strings * stress-wcstr: remove a string randomization, exercises wcstr functions more * stress-str: use len1, len2 for string lengths * stress-mremap: remove empty line * Add in missing white space * Ignore SIGUSR1, don't let it stop stressing * core-job: fix optind check, should only check for non --job options * jobs: parse jobfile name from correct argv[] location * stress-pidfd: replace goto's with continues * stress-poll: replace redo goto with a for-loop * stress-prctl: also exercise PR_SET_PTRACER * stress-prlimit: add more PR_SET_MM exercising * stress-prctl: pass correct zero flags on PR_SET_MM_BRK * stress-str: remove an string randomization, exercises str functions more * stress-bad-altstack: install signal handler in child as early as possible (LP: #1830856) * stress-netdev: add in missing ioctls to exercise * stress-seccomp: add maximum seccomp bpf filter stress * Add --msg-types to manual * stress-mq: remove an unnecessary assignment * stress-mq: remove stop flag, just kill child to remove complexity * stress-msg: remove need for magic stop message, just kill child instead * stress-msg: make message 4 bytes, cache align it to get more throughput * stress-shm: voidify memset return * stress-enosys: replace multiple if statements with loop * stress-cyclic: refactor some code * stress-cyclic: add less accurate usleep sleep delays * zlib: add lrand48 data source zlib method * stress-funccall: rename funcall -> funccall * stress-clone: make parent of the clones child processes an OOMable target (LP: #1828788) * Add pass by value function return funcret stress tests * stress-fault: make minor page faults more stressy -- Colin King Fri, 7 Jun 2019 17:01:02 +0100 stress-ng (0.09.58-0ubuntu1) unstable; urgency=medium * Makefile: bump version once more * core-cache: cater for C libraries that don't support GLOB_ONLYDIR * stress-bad-altstack: move help info to start of function to fix build error * stress-icache: fix build error, add missing comma * stress-stackmmap: move help info to start of function to fix build error * stress-vm: include options that are no-ops for some arches * stress-vm: fix missing return 0 * stress-full: move help info to start of function to fix build error * stress-af-alg: fix build error, add missing comma * Add copyright boilerplate to some text files * Move per stressor help info into each stressor * stress-udp: only declare udp_lite variable if UDP lite is supported * stress-cache: move cache_flags declaration; fixes build error * stress-ng: free proc info when a proc is being removed from the list * Allow multiple definition of symbols when building a static image * stress-softlockup: fix spelling mistake "reslults" -> "results" * stress-cpu: fix spelling mistake "maxiumum" -> "maximum" * stress-sigsegv: fix spelling mistake "instread" -> "instead" * stress-ng: fix spelling mistake "functon" -> "function" * Fix spelling mistake "exercsing" -> "exercising" * stress-ng: fix spelling mistake "compressession" -> "compression" * stress-cpu: fix spelling mistake "Rapshon" -> "Raphson" * Add missing colon in error message text * stress-zlib: clarify precedence of & and ? operators * stress-stack: reduce scope of variable i * core-log: reduce scope of empty_ts * stress-aio-linux: fix build issue, missing , * stress-*: pass args using opt rather than optarg * stress-socket: make function stress_set_socket_domain static * stress-ng.h: compact up option flags * stress-*: remove the use of global opt flags for non-global stressor settings * stress-*: make various variables static * stress-*: make some more functions static * stress-funccall: make a few more functions static * stress-funccall: make functions static * Remove the declaration of stressor options in opt_set_funcs, move them to each stressor * Move STRESSORS macro to stress-ng.h and declare stress_id_t with it * stress-ng: remove STRESS macro and declare stress info objs using STRESSORS macro * core-shim: remove FUTEX_WAIT from shim_enosys call * core-shim: replace ENOSYS code with an inlined helper * Add build time check for pidfd-send-signal system call * Add new pidfd stressor that exercises pidfd_send_signal * Remove stress-pidfd.c from Makefile * stress-enosys: don't SIGKILL child when it is waiting to reap (LP: #1825089) * Add shim_waitpid to silently handle EINTR by retrying * stress-numa: fix undefined behaviour with left shift * stress-numa: fix calculation of max nodes (LP: #1803468) * stress-fanotify: add FAN_OPEN_EXEC_PERM and try all allowed masks one by one * stress-seal: exercise F_SEAL_FUTURE_WRITE * stress-cpu: don't use large fft arrays on the stack * stress-cpu: don't use large correlation arrays on the stack * stress-cpu: don't use large matrixprod arrays on the stack * stress-kcmp: rework capfail message to unconfuse static analysis tools * stress-af-alg: make several functions static * stress-sysfs: rename stat buf to stafbuf to fix name shadowing warnings -- Colin King Thu, 2 May 2019 08:48:11 +0100 stress-ng (0.09.57-0ubuntu1) unstable; urgency=medium * Makefile: bump version * stress-zlib: make buffer in static to avoid large stack allocations * stress-sysfs: only close ctxt.kmsgd if the fd is open * test/test-sendmmsg: fix another resource leak of sockfd * stress-epoll: remove redundant initialization of ret * stress-fifo: remove redundant initialization of rc * stress-fcntl: remove redundant initialization of rc * stress-sysfs: fix fd leak * core-perf: remove redundant variable rc * stress-zero: ensure initialized data is being written * test/test-posix-fadvise: remove unused label 'err' * core-log: add paranoid check for localtime returning NULL * test/test-mremap: remove unused pointer buf * stress-opcode: remove redundant initialization of rc * test/test-inotify: remove unused variable ret * stress-swap: remove redundant assignment of fd to -1 * test/test-sendmsg: close socket fd * stress-pty: remove redundant variable rc * test/test-posix-fadvise: remove redundant variable ptr * stress-memrate: remove redundant assignment to rc * stress-dev-shm: remove redundant assignment of sz_delta * stress-zlib: remove redundant initialization of flush * Make various large stack allocations static * stress-shm: fix end of string setting on wrong string * core-helper: initialize val2; cleans up static analysis warning * stress-pipe: use strncmp instead of strcmp on pipe stop message * stress-socket-fd: check for non-null addr before unlinking addr_un * stress-physpage: fix mapping address on failed mmap. * stress-zlib: fix double call to deflateEnd * stress-fcntl: improve checking of file creation * stress-shm-sysv: lock/unlock shm segment if SHM_LOCK/SHM_UNLOCK are defined * stress-af-alg: fix copy-n-paste error on pointer name * stress-af-alg: track unavailable af algs across multiple stressors (LP: #1813847) * stress-sysfs: add mmap and readlink operations on sysfs files -- Colin King Wed, 27 Mar 2019 12:16:20 +0000 stress-ng (0.09.56-0ubuntu1) unstable; urgency=medium * Makefile: bump version * stress-bigheap: poll with keep_stressing() rather than g_keep_stressing_flag * Fix typo in sysbadaddr help, sysbaddaddr-ops -> sysbadaddr-ops (LP: #1820251) * stress-shm: paranoidly memset msg; cleans up static analysis warnings * stress-nice: use setpriority or nice of both are available * stress-zlib: fix incorrect macro name, should be HAVE_BUILTIN_CTZ (LP: #1820252) * stress-udp-flood: add some random port flooding into the mix * stress-procfs: exercise procfs with mmap, ioctl and poll too * stress-xattr: use macro for the max number of xattr settings * README: add pcc as another supported compiler (LP: #1820253) * Disable matrix-3d options when building with pcc * stress-ng.h: don't use sync_synchronized when building with pcc * stress-ng.h: make __builtin_prefetch a variadic function * stress-matrix-3d: disable for PCC builds as this breaks the compiler * stess-ng.h: fully define __builtin_prefetch for pcc * Add build time check for gcc/clang label as a value feature * core-perf: add OOM and thermal zone trip perf stats (LP: #1820254) * core-perf: add filemap page cache perf stats (LP: #1820254) -- Colin King Fri, 15 Mar 2019 10:55:02 +0000 stress-ng (0.09.55-0ubuntu1) unstable; urgency=medium * Makefile: bump version * Remove need for alloca.h to be build checked or included * Manual: update stack stressor description, it no longer uses alloca() * Add tcc as supported compilers in README * core-helper: add missing __dso_handle for tcc * Add build check for __builtin_prefetch * Add build-time checks for __builtin_memcpy and __builtin_memmove * Add implementation of __builtin_ctz for systems that don't support this * core-helper: use correct etext and edata symbols for tcc builds * Use correct macro name HAVE_VLA_ARG and not HAVE_VLA_ARGS * matrix-3d: fix all matrix-3d settings, the name should not be matrix_3d* * Add check for variable length array support in function args * rename TYPEOF macro to CAST_TYPEOF as it really is used for type casting * Add build checks for complex.h and complex type * stress-close: remove debug message * stress-close: add more pthreads, remove some protocols and fsync * core-helper: remove redundant null check for case where NSIG or _NSIG are not defined * core-helper: use ptrdiff_t types for pointer math and fix start >= end check * core-mwc: use ptrdiff_t types to perform pointer math on different objects * stress-resources: remove use of alloca * stress-stack: remove need for alloca, expand stack by deep recursion * stress-funccall: add additional missing floating point types * stress-funccall: add in return type returns, remove structs * tests: clean up some cppcheck style warnings * stress-zlib: add extra brackets to explicitly clarify precedence * stress-unshare: guard declaration of euid with CLONE_NEWNET check * stress-switch: reduce scope of overrun and overrun_by * stress-ng: declare and assign last_page only when it is required * stress-ng: move get class setting before class is sanity checked * stress-hrtimers: remove redundant if check, ensure timer is always non-zero * stress-hdd: fix iovec buffer settings * stress-cpu: remove redundant multiply of gm, it's not used * stress-apparmor: reduce scope of variable tmp_counter * core-helper: reduce scope of buffer 'str' * core-helper: stress_text_addr: check for start >= end * core-helper: move start if #ifdef to remove unused code * Manual: update contributors list * stress-vm-addr: fix discarding of existing mappings * stress-ng: bring back error messages from getopt_long * stress-ng: fix ALWAYS_INLINE with gcc < v6.0.1 on s390/s390x * stress-ng: fix --class option * Add close race stressor, exercises various close kernel paths * Makefiles: make static build checking handle linking correctly -- Colin King Mon, 4 Mar 2019 16:01:23 +0000 stress-ng (0.09.54-0ubuntu1) unstable; urgency=medium * Makefile: bump version * stress-efivar: add in missing constifications * core-cache: fix strncpy - it was one byte too short and not copying end-of-string char * stress-efivar: properly work around gcc-9 -Waddress-of-packed-member warning * stress-efivar: pass naturally aligned pointer (stops gcc9 from complaining) * stress-pthread: don't unlock if previously an unlock failed * stress-zlib: avoid static analysis warnings about division by zero on zero text_len * stress-mremap: fix compare, was an incorrect assignment * stress-urandom: skip stressor if /dev/urandom and /dev/random don't exist -- Colin King Thu, 21 Feb 2019 18:15:55 +0000 stress-ng (0.09.53-0ubuntu1) unstable; urgency=medium * Makefile: bump version * Manual: update date * Manual: update contributing authors * stress-zlib: mark zero pipe reads as an interrupted pipe * stress-zlib: improve error handling messages * stress-sem: check for errno being zero for dilos * test/test-bsd-wchar: Explicitly include stdio.h * stress-af-alg: add yield detection before a blocking accept() * stress-socket: add yield detection before a blocking accept() * stress-sctp: add yield detection before a blocking accept() * stress-dccp: add yield detection before a blocking accept() * stress-epoll: add yield detection before a blocking accept() * stress-socket-fd: add more yield detection points * stress-ng: cast pid_t to int for printf * Add build time check for clearenv() * Voidify return from shim_sched_yield() * stress-vm-segv: add some voidifications on ptrace calls * Voidify return from fflush() * Voidify return from feraiseexcept() * Voidify return to shim_usleep() * Voidify return from snprintf * Voidify return from calls to shim_cacheflush * core-perf: add spinlock/unlock error checking * thermal-zone: remove degrees char and also add Kelvin too * Voidify return of sync() * stress-tree: ensure avl cleans it's nodes on free * Voidify return from memcpy() * Voidify return from memset() * Rename dummy variable to signum * stress-key: don't perform KEYCTL_CLEAR, add more error checking * stress-daemon: perform more SysV daemon like actions * stress-vdso: fix typo in comment * Handle ENOMEM fork failures by retrying * stress-ng: catch and report weird child termination issues -- Colin King Fri, 15 Feb 2019 12:05:01 +0000 stress-ng (0.09.52-0ubuntu1) unstable; urgency=medium * Makefile: bump version * Manual: update date * stress-clock: ignore EPERM errors on timer_create * stress-clock: ignore -EINVAL and -ENOSYS failures for gettime and getres * stress-sem-sysv: don't spam output with timeout info messages * stress-clock: ignore -EINVAL and -ENOSYS failures * stress-switch: remove debug * stress-switch: fix division by zero by switch_freq * Update number of stressors in README * Add 3D matrix stressor * stress-ng: update version info in manual * Add stress_get_uname_info to get specific uname info, tidy up -V output * stress-ng: add compiler version info into -V info * Add helper function to get compiler information * Fix some spelling mistakes. * stress-mlock: add zero sized mlock/munlocks * stress-udp: move declaration of variable val * stress-mmap: be less noisy on mmap failures and fix directory cleanup (LP: #1807732) * Add new --switch-rate context switch rate setting -- Colin King Wed, 6 Feb 2019 13:27:33 +0000 stress-ng (0.09.51-0ubuntu1) unstable; urgency=medium * Makefile: bump version * stress_numa: remove __linux__ check * Add build time checks for struct shmid_ds and struct shminfo * stress-mlockmany: add some invalid mlock/munlock calls for more stress * stress-clone: use shim_unshare instead of unshare * stress-clone: forgot to remove other __linux__ check * stress-clone: remove __linux__ checks * Add shim for getxattr to work around OS X 6 arg getxattr * stress-sleep: remove debug on join failure on bad threads * Add watchdog test to excluded tests as it can trigger reboots * stress-ng.h: remove a couple more __linux__ checks * Add build check for sched_rr_get_interval * stress-sysbadaddr: remove __linux__ checks * stress-sleep: fix broken --sleep-ops threshold counter * stress-sleep: improve main loop exit on alarm * stress-pthread: clean up warning on %d for pid_t types (missed one) * stress-softlockup: memset param to avoid old gcc warnings on struct initializer * stress-pthread: clean up warning on %d for pid_t types * Add build check for struct msginfo * stress-rlimit: fix warnings on gcc 6.4 on solaris * stress-hrtimers: fix warnings on gcc 6.4 on solaris * stress-cyclic: fix warnings on gcc 6.4 on solaris * stress-lockbus: fix warnings on gcc 6.4 on solaris * stress-cpu-online: remove empty line * stress-pty: remove __linux__ check and add ptsname check * Add checking for process-vm-readv and process-vm-writev * stress-pthread: add better error recovery and locking prevention checks * stress-pthread: make error messages a bit more informative * Add build detection of ino64_t * stress-bind-bound: add some extra clone flag checks * stress-memthrash: remove __linux__ check * Add name_to_handle_at and open_by_handle_at checks * stress-getrandom: clean up buffer size setting * Move ptsname check to correct alphabetic order place * Add check for ptsname * stress-resources: remove some more __linux__ instances * Add build check for sched_setscheduler * stress-iomix: replace __linux__ check with HAVE_SYNC_FILE_RANGE check * stress-cyclic: fix build warning on systems without sched_get_priority* * Add build detection for sched_get_priority_{min|max} * stress-cyclic: remove __linux__ checks, the code is generic enough now * stress-oom-pipe: replace __linux__ check with appropriate macro checks * stress-msg: remove __linux__ check, check instead IPC_INFO and MSG_INFO * stress-hrtimes: remove __linux__ check * Add build time check for splice * Add build time check for tee system call * Add build time check for vmsplice * test/test-off64_t.c: clean up cppcheck style warning * test/test-loff_t: clean up cppcheck style warning * stress-utime: clean up cppcheck style warning * sytess-sysinfo: fix some cppcheck style warnings * stress-pty: clean up some cppcheck style warnings * stress-clock: reduce scope of several variables * stress-apparmor: ensure we handle residual bogo ops * stress-apparmor: fix broken apparmor-ops accounting * core-helper: clean up unused variable warning * stress-poll: fix missing }, detected by cppcheck * stress-ng: remove extraneous ) bracket found by cppcheck * stress-af-alg: add missing ) in message * stress-sigfpe: ignore bogus -ve si_codes * Add build time checks for xattr family of system calls * stress-xattr: remove __linux__ check * stress-rlimit: remove __linux__ check * stress-lockbus: remove __linux__ check * stress-iomix: only perform ioctl's if the ioctl command is defined * stres-futex: remove __linux__ check * stress-dnotify: remove __linux__ check * stress-switch: replace __linux__ check with HAVE_PIPE2 check * stress-sleep: remove __linux__ check * Add build time check for crypt_r * core-out-of-memory: remove some empty lines * core-io-priority: remove __linux__ check * core-helper: remove __linux__ check on F_SETPIPE_SZ check * core-helper: replace __linux__check with HAVE_SCHED_GETCPU * stress-spawn: check if /proc/self/exe is supported * stress-spawn: remove __linux__ check * stress-pipe: replace GLIBC version check with check for O_DIRECT * Add build time checks for pipe2 * stress-timer: remove other __linux__ check * stress-timer: remove \ continuation from # if defined check * stress-timer: remove __linux__ check * stress-cache: fix warnings when sched_getcpu not available * Add build time checks for sched_getcpu * stress-yield: remove need for GLIBC version * stress-apparmor: remove need for __linux__ check * Add build time checks for sched_getaffinity * stress-aio: remove __linux__ check * stress-aio-linux: remove check for __linux__ * stress-mlock: use shim version of munlock() * debian/tests/fast-test-all: add mlockmany to the banned stress tests * stress-mlockmany: make this stressor CLASS_PATHOLOGICAL * Add more mlock/munlock iterations while child waits to be killed * stress-mlockmany: check for ability to mlock/munlock * stress-mlockmany: remove redundant low mem checks * stress-mlockmany: add more yielding points * stress-branch: make source more compact * Add build time check for semtimedop * stress-sigq: fix build warning on Solaris with gcc 4.8.2 * stress-sysbadaddr: fix cast * stress-sysbadaddr: fix pointer bump warnings * stress-resources: declare ret in block only if required * stress-mlockmany: replace MAX_LOOPS with 1024 * stress-clock: only define stress_clock_name if required * stress-sem-sysv: fix build issue with timeout undefined * stress-mlockmany: set default ptr to avoid any warnings * stress-cyclic: move stress_cyclic_itimer_handler to clean up build warning * stress-cyclic: move timerid into function, don't make it static * stress-sysbadaddr: use HAVE_NANOSLEEP check * stress-cyclic: make timer delay checks more portable * Add build time check for posix_madvise * stress-clock: add timer_getoverrun call to exercise this more * Add build time check for timer_getoverrun * Add build time check for timer_gettime * Add build time check for timer_settime * Add build time check for timer_create * Add build time check for timer_create * Add build time check for clock_nanosleep * Add build time check for clock_getres * Add build time check for clock_settime * Add build time check for clock_gettime * stress-sigrt: remove need for _POSIX_C_SOURCE check * stress-sigqueue: remove need for _POSIX_C_SOURCE check * Add build time check for sched_yield * stress-branch: add note to why we inlined mwc8 * stress-branch: add inline mwc8(), boosts cache misses * Add some addition x86 target clone targets * Add a mlockmany aggressive mlock stressor * stress-resource: add check that RLIMIT_MEMLOCK is available * Add CLONE_NEWCGROUP for stress-unshare.c * README: add libipsec-mb-dev to library list * core-mwc: add in aux_rand value to w term * stress-resources: mlock and munlock pages of memory * stress-vm-segv: remove debug printf * stress-vm-segv: use ptrace if available to stop apport spammage * stress-opcode: use seccomp trap rather than a kill * stress-opcode: add a text --opcode-method * stress-zlib: use new stress_text_addr helper * core-helper: add stress_text_addr text segment helper * stress-vm-segv: remove setrlimit on core dump size * stress-seccomp: catch child with SIGSYS trap * core-helper: attempt to set soft rlimit first * Makefile: remove -g CC option * stress-secomp: clean up incorrect indentation * stress-ipsec-mb: voidify job submission returns * Add missing idle-page mini help information * stress-sem: use trywait and do some yielding * stress-sem: run semaphore stressors as pthreads and not child processes * Fix typo in int128_t support message and don't support for < GCC 4.0.0 * core-shim: handle posix_fallocate error return correctly * stress-timerfd.c: rename TIMER_MAX to TIMERFD_MAX * Add build detection of various BSD related header files * stress-idle-page: return EXIT_NO_RESOURCE if sysfs entry does not exist * Add build detection of __int128_t types * Add build time check for alloca.h * core-log: add gnu printf format attribute for pr_msg_lockable * core-log: make pr_msg_lockable static to reduce scope * core-affinity: rename ptr to avoid variable shadowing warnings * stress-memcpy: fix naive memcpy and memmove, swap src and dest pointers * stress-ng.h: remove another unnecessary __linux__ check * Add build time detection of missing __kernel_long_t and __kernel_ulong_t * stress-ng.h: remove unnecessary linux check * stress-ng.h: remove some duplicated includes * core-helper: add more prctl build time checks * Add build checks for prctl and remove __linux__ checks * stress-ng: define IOPRIO_* macros if they are not defined * stress-ng.h: add build check for malloc.h * stress-ng.h: remove empty lines * Add build checks for loff_t and off64_t types * rename personality.c to core-personality.c, update Makefile * Replace deconstification with a opt arg duplication * stress-clone: remove a deconstification * Rename core helper source, add core- prefix to source * helper: prefix some helper functions with stress_ * Add a new idle scan page scanning stress test for Linux * Remove per-stressor umask as is now set before running each stressor * Set umask to owner before running each stressor * Add build time check for flock() * log: add comments and handle systems that don't support flock * Add log message locking. * stress-resources: guard pkey with HAVE_PKEY_* macro checks * Makefile.config: sort config function probing * Add posix_fallocate check and use shim_fallocate if it does not exist * stress-timerfd: use 256 timers for more stress and throughput * stress-procfs: remove empty line * stress-fanotify: use the mount_get()/mount_free() mount helpers * stress-iosync: force sync'ing on all accessible mount points * stress-ng.h: minor space reformatting * Add a --memcpy-method option to use different memcpy/memove functions * stress-fanotify: add kernel v5.0 FAN_OPEN_EXEC support * stress-ipsec-mb: allow static build now that ipsec lib has symbols exported -- Colin King Thu, 31 Jan 2019 16:45:31 +0000 stress-ng (0.09.50-1) unstable; urgency=medium * Makefile: bump version * Manual: update date * stress-fanotify: don't declare ret if it is not used * stress-ipsec-mb: make pr_inf message a debug pr_dbg message * stress-zlib: remove xsum value debug verify information * stress-ipsec-mb: add more explanation to why the stressor may be skipped * stress-ipsec-mb: check for IMB_* macros * stress-ipsec-mb: fix typo "avx" -> "avx2" * stress-ipsec-mb: Add SHA encryption * stress-ipsec-mb: fix hmac md5 error messages * stress-ipsec-mb: Add HMAC MD5 * stress-ipsec-mb: add CTR encoding * stress-ipsec-mb: don't enable for static builds * Update copyright year * debian/control: add ipsec library dependency * stress-quota: use linux quotactl API for linux only systems * stress-opcode: voidify name argument * stress-opcode: define stress_set_opcode_method for unimplemented build case * Forgot to add test/test-libipsec-mb.c * Add initial cut of ipsec-mb stressor for SHA, DES and CMAC * stress-af-alg: prefix macro constants with SNG to avoid clashes * stress-rdrand: remove assembler cpuid check * stress-fanotify: improve FAN mode checks for v4.20 * stress-resources: fork a child off on each resource eating child * Add --opcode-method [ random | inc | mixed ] option * shim: remove duplicated code for __APPLE__ case * stress-opcode: iterate 1024 times in each child * stress-stackmmap: fix leak of open file descriptor on ENXIO error * stress-opcode: comment why mwc32() is being called before forking * stress-opcode: remove unnecessary { } block scope * stress-opcode: use mwc8() instead of mwc32() when setting opcodes * snapcraft: make stress-ng binary static and add various plugs -- Colin King Wed, 2 Jan 2019 16:58:52 +0000 stress-ng (0.09.49-1) unstable; urgency=medium * Makefile: bump version * stress-udp-flood: remove check for struct iphdr and icmphdr * stress-icmp-flood: add check for struct iphdr and icmphdr * Add checks for struct iphdr and icmphdr * helper: remove libgen.h - it is not needed * Add check for fenv.h * Add check for float.h * stress-icmp-flood: fix typo in macro name check * Add checks for netinet/ip.h and netinet/ip_icmp.h * Move getopt.h to stress-ng.h * Add check for netinet/sctp.h * Add check for locale.h * stress-epoll: remove need for netdb.h, clean up define checks * Add checkfor libgen.h * stress-spawn: only test on linux * Add detection for posix_spawn * stress-socket: add check for SOL_TCP for BSD systems * Add check for net/if.h * Add check for netinet/tcp.h and clean up stress-socket a little * Move include of arpa/inet.h to stress-ng.h * Move include netinet/in.h to stress-ng.h * stress-dirdeep: remove include of dirent.h, it is already included in stress-ng.h * Add check for cpuid.h * Move include of keyutils.h to stress-ng.h * Move include of crypt.h to stress-ng.h * Add check for strings.h * Fix check on sys/msg.h, use correct macro for check * Use check for mqueue.h * Move pwd.h to stress-ng.h * Add check for mqueue.h * Move ucontext.h and search.h to stress-ng.h * Add check for semaphore.h * Add checks for aio.h and spawn.h * Move math,h and complex.h to stress-ng.h * Disable swap for SunOs/Solaris as the interface is different to Linux * stress-chown: don't count retries for NetBSD sched_yield retries * stress-raw-dev: replace __linux__ check with some more specific checks * test/test-sysinfo.c: force failure for sunos, this clashes with a different sysinfo * stress-ng.c: Add check for sysinfo system call * Add check for sysinfo system call * Add check for syslog.h * Add check for sys/epoll.h * Add check for poll.h * helper: remove include of sys/statvfs.h as it is include from stress-ng.h * Add check for sys/shm.h * Add check for sys/msg.h * Add check for sys/ipc.h * helper: use HAVE_SYS_STATVFS_H check for statvfs calls * stress-filename.c: use statvfs check * Add check for sys/statvfs.h * Add check for sys/statfs.h * Use check for sys/fanotify.h * Add check for sys/sysmacros.h * stress-rawdev: remove include of dirent.h, it is in stress-ng.h * Add check for sys/io.h * Add check for sys/inotify.h and various inotify types * Add check for termio.h and termios.h * Add check for sys/quota.h * Add check for deprecated include ustat.h * Add check for utime.h * Add check for sys/sysinfo.h * Move include of sys/timex.h from stress-get.c to stress-ng.h * Add check for sys/ucred.h * Add check for sys/mount.h * Add check for sys/param.h * Move include of mntent.h to stress-ng.h * Add check for sys/personality.h * perf-event: no need to check for __linux__, remove check * Add better checking for HAVE_LINUX_PERF_EVENT_H * stress-nop: undefined NOP macros to avoid name space clash * Move libaio.h from stress-aio-linux.c to stress-ng.h * Move several includes from stress-dev.c to stress-ng.h * Add check for linux/cn_proc.h * Add check for linux/unix_diag.h * Add check for linux/sock_diag.h * Add check for linux/rtnetlink.h * Add check for linux/netlink.h * Add check for linux/connector.h * stress-sock-diag: remove includes that are in stress-ng.h * stress-ng.h: remove check for HAVE_SWAP to include swap.h * Add check for linux/posix_types.h * stress-ng.h: more clean ups * stress-ng.h: more include cleanups * alphabetically re-order sys/includes * Move include of linux/if_alg.h to stress-ng.h * Move include of linux/socket.h to stress-ng.h * stress-dev: remove need for linux/random.h, it's included in stress-ng.h * stress-timerfd: clean up build warning on pid_t on sunos * Only include sys/swap.h if swapon/swapoff exist * stress-sendfile: return EXIT_NOT_IMPLEMENTED if sendfile returns ENOSYS * Add check for statfs system call * Add swapon/swapoff system call autodetection * stress-swap: don't use SWAP_FLAG_PREFER if it's not defined * stress-sysbadaddr.c: remove include of sys/vfs.h * Add build config check for sys/uio.h * Add build config check for sys/vfs.h * Add build config check for sys/swap.h * Add build config check for sys/timerfd.h * Move include of sys/apparmor.h to stress-ng.h * Add build config check for sys/sendfile.h * Add build config check for sys/signalfd.h * stress-netdev.c: remove include of sys/ioctl.h, it is included in stress-ng.h * Move include of sys/auxv.h to stress-ng.h * stress-socket-diag: remove include for sys/socket.h, it is include in stress-ng.h * Add build config check for netinet/in.h * Add build config check for sys/un.h * Add in version info computer unicode character * Add unicode 32 symbol for fire in the version info * Re-order pthread and libc library linker order (LP: #1807176) * Move include to stress-ng.h * stress-rawdev: remove sys/types.h as it is included in stress-ng.h * Rename HAVE_SYS_CAP_H to HAVE_SYS_CAPABILITY_H, move include to stress-ng.h * stress-urandom: move the include of linux/random.h to stress-ng.h * stress-loop: move the include of linux/loop.h to stress-ng.h * stress-futex: remove include/futex.h * shim: remove linux/futex.h include * Move the include of linux/rtc.h to stress-ng.h * Move the include of linux/watchdog.h to stress-ng.h * Move the include of linux/userfaultfd.h to stress-ng.h * Move the include of linux/futex.h to stress-ng.h * stress-seccomp: no need for __linux__ check, remove it * stress-opcode: fix build issue because if #if/#endif mismatch * Move linux/seccomp.h include to stress-ng.h * Add build config check for linux/filter.h * Add build config check for linux/audit.h * stress-seccomp: improve EACCES failure skip message information * Add build config check for sys/prctl.h * stress-udp-flood: check for EPROTONOSUPPORT socket failures * stress-stackmmap: handle ENXIO mmap failures on minix * stress-loop: remove redundant check for __linux__ being defined * Add build config check for linux/rtc.h * Add build config check for linux/version.h * stress-urandom: use HAVE_LINUX_URANDOM_H check * Add build config check for linux/watchdog.h, re-order some checks too * Add build config check for sys/timex.h * Add build config check for sys/utsname.h * stress-get: fix typo in comment * Use check for HAVE_LINUX_FUTEX_H for linux/futex.h * Move sys/select.h include into stress-ng.h * Add build config check for linux/fs.h * Add build config check for sys/fanotify.h * Add build config check for mntent.h * Add build config check for crypt.h * Add build config check for ucontext.h * Add build config check for sys/apparmor.h * Add build config check for sys/select.h * Add build config check for libaio.h * Add build config check for aio.h * Rename HAVE_SOCK_DIAG_H to HAVE_LINUX_SOCK_DIAG_H * stress-af-alg: add checks for and * stress-stackmmap: needs swapcontext * stress-ng: minor reordering of includes, minor changes * Remove include of semaphore.h as this is already included in stress-ng.h * stress-ng.h: fix include on semaphore.h * stress-resources: use posix semaphores if HAVE_SEM_POSIX is defined -- Colin King Thu, 13 Dec 2018 16:08:11 +0000 stress-ng (0.09.48-1) unstable; urgency=medium * Makefile: bump version * stress-dev: pass correct struct to SCSI_IOCTL_GET_IDLUN ioctl (LP: #1806024) * Remove full stop from some messages, like other messages * stress-spawn: fix skipping message, use stressor test name -- Colin King Fri, 30 Nov 2018 12:07:13 +0000 stress-ng (0.09.47-1) unstable; urgency=medium * Makefile: bump version * Manual: update date * Add in missing option --vdso-func to specific the vDSO function to call * stress-mcontend: check data[1] rather than data[0] for failed mmap * stress-dev: remove redundant null assignment to dev_scsi_new * log: use strncpy instead of less safe strcpy * README: add WSL as a supported platform * stress-itimer: skip stressor if itimer cannot be set * stress-schedpolicy: skip sched_setparam on EPERM errors * stress-key: skip stressor if add_key is not implemented * stress-netdev: ignore errors of EINVAL on ioctls * stress-ioprio: skip over failures that return -EINVAL * stress-file-ioctl: skip flag checking if ioctl fails * helper: forgot to use %s when printing cache pr_inf message * stress-file-ioctl: silently ignore ENOTTY ioctl failures * stress-file-ioctl: add in errno info on failure * helper: shrink cache defaults message, make it less verbose * stress-fcntl: cater for kernels that don't support some fcntl commands * stress-sigio: cater for kernels that don't support F_SETOWN * stress-udp: cater for kernels that don't support SO_REUSEADDR * cache: remove some empty lines, minor code cleanup * stress-tee: terminate with EXIT_NO_RESOURCE on ENOMEM on tee * stress-sctp: skip stressor if protocol is not supported (part 2) * Make cache size warnings less verbose * Add getauxval autoconfig detection * stress-vdso: only build test if AT_SYSINFO_EHDR is defined * README: add in more operating systems that the tool can build on * stress-sync-file: skip stressor if sync_file_range is not implemented * stress-switch: fall back to pipe() if pipe2() fails to work * stress-socket-diag: skip stressor if protocol is not supported * stress-sctp: skip stressor if protocol is not supported * stress-pipe: fall back to pipe() if pipe2() fails to work * exit_status: make ENOSYS return EXIT_NOT_IMPLEMENTED * stress-mq: skip stressor if POSIX message queues are not implemented * stress-mincore: skip stressor of mincore not implemented * stress-full: check if /dev/full exists, return EXIT_NOT_IMPLEMENTED if not available * stress-filename: cater for WSL on Windows 10 ENOENT errors * stress-filename: make probing more robust * stress-clock: handle kernels that return -EINVAL for timer_create * stress-vdso: make function vdso_sym_list_check_vdso_func static * stress-vdso: fix realloc null return check, don't check str * stress-vdso: ensure hash is initialized to NULL * stress-zlib: add gray code generator * stress-zlib: add brown noise and fix missing funcs from rand_data_funcs * stress-wait: voidify kill return * stress-vm: minor optimization, don't keep on recomputing max_ops arg * stress-vm: handle counter increments via helper functions * stress-bindmount: use get_counter instead of referencing counter * Add add_counter helper to add a value to the bogo op counter * Add a set_counter helper to set the bogo counter * Use get_counter rather than directly referencing *args->counter * mwc: use getauxval(AT_RANDOM) as a base seed if it is available * stress-switch: add more context switch info * stress-ng.h: add get_counter helper to get counter from args * stress-vdso: add arm64 vDSO symbol names * stress-vdso: scan all symbols and remove duplicates * Add vDSO stress test. * use a test program to conditionally set TARGET_CLONES (LP: #1800826) * Detect and use if it is available. * Fix build with uClibc-ng (LP: #1800829) * stress-ng.h: conditionally define _{LARGEFILE,LARGEFILE64}_SOURCE to fix build warning (LP: #1800828) -- Colin King Wed, 21 Nov 2018 17:03:43 +0000 stress-ng (0.09.46-1) unstable; urgency=medium * Makefile: bump version, remove -g and -pipe flags * Makefile: remove -pipe and -g CFLAGS * stress-ng: only defined TARGET_CLONES optimizations for x86-64 * stress-affinity: fix set affinity setting across all stressors (LP: #1803322) * stress-fault: add mmap failed resource checking, treat as non-fatal * stress-tlb-shootdown: retry for ENFILE errors on mmap * stress-udp: handle ENETUNREACH silently * stress-vecmath: work around gcc breakage on ppc64el -- Colin King Wed, 14 Nov 2018 13:01:57 +0000 stress-ng (0.09.45-1) unstable; urgency=medium * Makefile: bump version * Use alternative mmap strategy on last shared page if mprotect is not available * stress-dev: constify a char * function parameter, fixes warning * stress-dev: fix warnings on non-Linux systems * stress-dev: add 4.20 BLKGETZONESZ and BLKGETNRZONES ioctls * stress-tsc: add supported handler for non-x86 * stress-rdrand: add supported handler for non-x86 * stress-ng: add extra non-accessible page at end of shared region * thrash: assign return to variable and voidif * stress-getrandom: check if system call is available before testing * stress-cpu-online: ignore -EOPNOTSUPP failure, just keep on exercising the sys interfaces * stress-cpu-online: check if we can access sysfs file for updating * stress-cpu-online: add root check before running the stress test * stress-seccomp: add sanity check to see if SECCOMP_SET_MODE_FILTER works (LP: #1801856) * stress-dev: cache the scsi device names to reduce lookup overhead * stress-dev: remove debug cruft cache: turn macro MK_PATH to an inline'd static helper function * stress-dev: add SCSI device checking * stress-af-alg: handle ENOMEM failures on sendmsg (LP: #1801865) * stress-pty: handle EIO failures on opening /dev/ptmx * stress-loop: fix EBUSY error detection (LP: #1797544) * cache: optimize MK_PATH macro, remove double strlen call -- Colin King Fri, 9 Nov 2018 10:43:35 +0000 stress-ng (0.09.44-1) unstable; urgency=medium * Makefile: bump version * stress-dev: add HDIO_* ioctls * stress-file-ioctl: add FIBMAP ioctl to file * stress-dev: remove FIBMAP ioctl on device (LP: #1800609) * log: use snprintf instead of sprintf, it is safer -- Colin King Thu, 1 Nov 2018 11:45:01 +0000 stress-ng (0.09.43-1) unstable; urgency=medium * Makefile: bump version * stress-loop: check for specific loop ioctl commands * mounts: cater for minix requiring statbufs for mount information * stress-revio: ensure fiemap extent struct is zero'd (LP: #1798566) * Add autodetection of linux/futex.h * shim: revert back to checking if syscall is defined if calling via syscall() * test-pkey: also check if syscall is available * Add checks for linux/membarrier.h and membarrier system call * shim.c: update for KCMP and SYSLOG * Add HAVE_GETCPU getcpu system call check * test/test-fallocate: remove whitespace * Add HAVE_FALLOCATE fallocate system call check * Add HAVE_COPY_FILE_RANGE copy_file_range system call check * Add HAVE_SYNC_FILE_RANGE to Makefile.config * Add HAVE_SYNC_FILE_RANGE sync_file_range system call check * stress-apparmor: make another aa_kernel_interface_replace_policy failure an info message * Add autobuild detection for pkey family of system calls * stress-resources: use HAVE_USEFAULTFD check * Use HAVE_LINUX_USERFAULTFD_H and HAVE_USERFAULTFD checks * stress-apparmor: make aa_kernel_interface_replace_policy failure an info message * Use HAVE_SYS_EVENTFD_H and HAVE_EVENTFD checks * Add sys/eventfd header detection * Add HAVE_IOPRIO_{GET|SET}ATTR ioprio_{get|set}attr system call check * Add HAVE_KEYCTL keyctl system call check * Add HAVE_ADD_KEY add_key system call check * Add HAVE_REQUEST_KEY request_key system call check * stress-ng.h: re-order syscall checks alphabetically * Add HAVE_SCHED_{GET|SET}ATTR sched_{get|set}attr system call check * Add autobuild check and exercising of getdtablesize() * test/test-mremap: voidify newbuf to avoid cppcheck warning * test/test-ioport: return ret, fixes warning * stress-loop: clean up cppcheck warning on clr_loop not being used: * stress-kcmp: move slot to local scope * ignite-cpu: reduce scope of buffer and cpu * Add HAVE_KCMP kcmp system call check * Add HAVE_REMAP_FILE_PAGES check in Makefile.config * Add HAVE_SYSLOG syslog system call check * Add autobuild detection of remap_file_pages * Add HAVE_TGKILL tgkill system call check * Add HAVE_{SET|GET}_ROBUST_LIST {set|get}_robust_list system call check * Add HAVE_GETTID gettid system call check * Add HAVE_GETDENTS* check * Add autobuild detection of unshare * Add autobuild check for MLOCK2 * stress-revio: use shim_fdatasync * Abstract fdatasync with a shim * stress-getrandom: allow __APPLE__ as it provides getentropy * Add autobuild detection of sys/memfd.h * Add autobuild detection of memfd_create * stress-get: use HAVE_LOOKUP_DCOOKIE check * Add autobuild check for lookup_dcookie system call * Use the autobuild config HAVE_SENDMMSG check * Add autobuild detection of sendmmsg * Makefile.config: minor cleanups * Makefile.config: use more generic rules for checking * Makefile.config: use generic have_test_prog rule for asm nop test * Makefile.config: use generic have_test_prog rule for alignment build checks * Makefile.config: add and use generic have_test_prog rule * stress-ng.h: re-order shim_ function declarations * Add autoconfig check for execveat * Move shim_execveat to main shim source * README: Add Dilos to notes * Makefile: use standard grep for dilos * stress-sysbadaddr: make ro_page and rw_page void * rather than uint8_t * stress-sigsegv: clean up warnings on older gcc on solaris * stress-rmap: clean up warnings on older gcc on solaris * stress-mmapaddr: clean up warnings on older gcc on solaris * stress-vforkmany: cleans up warnings on older gcc on solaris * stress-memthrash: make mem void * rather than uint8_t * stress-madvise: make buf void * rather than uint8_t * stress-bad-altstack: make stack pointer void * rather than uint8_t * * stress-loop: add stress_loop_supported for non-linux platforms * cache: minor change to comment block * stress-loop: use HAVE_LINUX_LOOP_H build detection * Makefile.config: check for linux/loop.h * stress-loop: check for ioctl commands before using them * Add loopback stressor * stress-sysfs: work around race on TPM driver for Linux -- Colin King Thu, 18 Oct 2018 14:09:17 +0100 stress-ng (0.09.42-1) unstable; urgency=medium * Makefile: bump version * stress-quota: abort early if we get EPERM errors (LP: #1796248) * stress-get: fix check for HAVE_ADJTIMEX or HAVE_ADJTIME * stress-pthread: work around broken pthread join that returns ESRCH (LP: #1796249) * stress-chroot: check for EINVAL for Haiku * stress-link: disable link stressor for Haiku * stress-get: disable a couple of rlimit types for Haiku * stress-cpu: define expl as exp for Haiku as it's not yet defined * Update README, add Haiku notes * Makefile: add -lc for non-Haiku, and -lnetfork for Haiku * helper: fix warnings on systems where strsignal returns const char * * Add autodetection of nice * Add autodetection of setpriority, fall back to using nice if we don't have it * stress-get: only declare is_root when required for adjtime* functions * Add autodetection of adjtime * stress-get: don't declare array priorities if getpriority does not exist * Add automatic detection of getpriority * stress-fault: don't declare usage for Haiku * stress-fault: don't print ruseage stats for Haiku * stress-dev: disable for Haiku * Add more info to README file -- Colin King Fri, 5 Oct 2018 10:29:34 +0100 stress-ng (0.09.41-1) unstable; urgency=medium * Makefile: bump version * stress-dirdeep: clean up warning if O_DIRECTORY is not defined * stress-dir: clean up warning if O_DIRECTORY is not defined * stress-sysbadaddr: move ustat include to fix kfreeBSD build warnings * Manual: update date * Manual: update contributors list * Fixed thermal zone use after free bug in multi-process test. * thermal-zone: don't accumulate insane temperatures * stress-*: make sure structs are packed more efficiently * stress-dynlib: don't use if building a static image * stress-quota: keep if/else codestyle consistent * stress-sctp: break up declaration + assignment * stress-resources: add pkey alloc/free resource consumer * stress-numa: add in extra brackets to match coding style * stress-matrix: fix comment, not cpu stressor but matrix stressor * stress-kcmp: prefix kcmp consts with SHIM_ to avoid name clashes * syscalls.txt: add pkey_* and renameat* syscalls * stress-rename: use renameat2 system call if available * stress-rename: use renameat system call if available * Add autoconfig detection of renameat system call * Add autoconfig detection of renameat2 system call * Move pkey shims to shim.c * stress-pkey: add pkey memory protection thrash stress test * stress-enosys: add pket_get and pkey_set * stress-enosys: Add io_pgetevents * stress-enosys: add rseq system call * stress-dirdeep: add directory data sync'ing for more stress * stress-dir: add directory data sync'ing for more stress * stress-*: replace fsync with shim_fsync * Add shim helper for fsync, helps with no-op OS X fsync -- Colin King Wed, 26 Sep 2018 12:00:01 +0100 stress-ng (0.09.40-1) unstable; urgency=medium * Makefile: bump version * Manual: update date * log: cast fractions of seconds to long * stress-get: move timex declarations to HAVE_ADJTIMEX block statement * Use HAVE_MREMAP check for mremap system call * Add autobuild test for mremap system call * stress-malloc: use HAVE_MALLOPT check for threshold variable * stress-malloc: use HAVE_MALLOPT check for mallopt glibc function * Add mallopt glibc function autodetection * stress-ioport: fix check on HAVE_IOPORT and not IOPORT * stress-ioport: use HAVE_IOPORT check for ioport system call * Add autobuild test for ioport system call * stress-inode-flags: build valid stressor if specific ioctl flags are defined * stress-get: use HAVE_PRLIMIT check for prlimit system call * Add autobuild test for prlimit system call * stress-get: use HAVE_ADJTIMEX check for adjtimex system call * Add autobuild test for adjtimex system call * stress-get: move locals to block statements * stress-sysbadaddr: use autodetection config for getresgid and getresuid calls * stress-get: use autodetection config for getresgid and getresuid calls * Add autobuild checks for getresgid and getresuid * README: update dependencies information * stress-sysfs: exercise each sysfs for a specific time or number of iterations * Add shim_usleep_interruptible, an interruptible usleep * stess-sysfs: exercise each sysfs file for a 1/25 of a second * stress-sysfs: improve draining control in threads * Add .gitignore * stress-sysfs: back off pthreads when kernel log spamming is detected * manual: fix typo: multiple -> multiply * stress-sysfs: close file if we have messages that needed draining * Add bad alternative stack stressor * stress-procfs: free directory entries, fixes memory leak * stress-dirdeep: free directory entries, fixes memory leak * stress-dev: free directory entries, fixes memory leak * stress-sysfs: free directory entries, fixes memory leak * stress-sysfs: skip over sysfs files that produce a lot of kernel spamming * Add more info in the README file -- Colin King Wed, 12 Sep 2018 17:11:11 +0100 stress-ng (0.09.39-1) unstable; urgency=medium * Makefile: bump version * stress-hdd: add yield points * stress-dev-shm: add an extra yield point * stress-bigheap: add an extra yield point * stress-af-alg: add more yield points * tests: fast-test-all: add timestamp to log output * stress-fiemap: wrap overly wide #if defined checks * stress-enosys: add address passing args * Replace loop variable i with j * Fix typo in comment 9 -> 0 * stress-zlib: add comment, remove two white spaces * stress-zlib: add zlib-level compression level and zlib rate stats * Add timestamp to log with --timestamp option * Add -pipe to CFLAGS, speeds up build by a few seconds * Makefile: remove -Wabi on pedantic builds * Replace int type with int32_t on loop counters * Rename macro argument lower_name to name * Manual: add Khem Raj to contributors name list * TODO: Add restartable sequencues * stress-chown: be less fussy about -EPERM failures * stress-get: ignore EINVAL on getgroups failures * stress-get: ignore EINVAL on getpriority failures * stress-af-alg: check for EBUSY bind failures * stress-stackmmap: simplify SEGV handling using a child process * stress-mmapfixed: don't be so verbose about SIGSEGVs on fixed mmaps * stress-sysfs: add check for some broken sysfs files -- Colin King Tue, 4 Sep 2018 11:36:21 +0100 stress-ng (0.09.38-1) unstable; urgency=medium * Makefile: bump version * Makefile: ensure fast-test-all and slow-test-all build with config * stress-fork: print correct fork/vfork name on an error * stress-fork: don't throw error on EAGAIN or ENOMEM (LP: #1788385) * stress-sysfs: add SEGV detection and abort * stress-funccall: make deep calls perform more stack work * stress-fiemap: remove blank line * stress-dir: rename d_reclen to d_namlen for DragonFly BSD * stress-dev: clean up overly wide function prototypes * stress-dccp: make loop iterator size_t * stress-mmap: move } outside #if #endif, fix *BSD build error * stress-chdir: remove blank line * stress-access: remove empty line * stress-ng: don't enable TARGET_CLONES for musl * stress-ng: don't exit a failure if no stressors are run when some are not supported * stress-dnotify: check if dnotify is supported by linux kernel * stress-access: make bool is_root const * stress-access: make struct fields const * stress-mmap: add hole punching to mmap'd file * ignite-cpu: remove extraneous debug * Manual: add note about using --timer-slack 0 for high freq timers -- Colin King Thu, 23 Aug 2018 16:54:53 +0100 stress-ng (0.09.37-1) unstable; urgency=medium * Makefile: bump version * snapcraft: add stage packages and build with hardening settings * stress-chown: cater for OpenBSD chown returning 0 and errno being set * stress-zlib: don't report write failure if errno == 0 * stress-fp-error: relax checking for pre glib 4.8 * Add voidifications on ignored function returns * ignite-cpu: set freq governor and restore settings at end * ignite-cpu: try and set max cpu frequency scaling setting * cache: add G size specifier * Makefile: check for GNU/kFreeBSD and set __FreeBSD_Kernel__ * stress-sysbadaddr: only use ustat if HAVE_USTAT is defined * stress-ng.h: rename statx_timestamp to shim_statx_timestamp -- Colin King Mon, 13 Aug 2018 13:58:57 +0100 stress-ng (0.09.36-1) unstable; urgency=medium * Makefile: bump version * stress-schedpolicy: ignore EINVAL on non-POSIX policies * mungify _ to - on stressor name before calling the stressor * stress-seek: disabled SEEK_HOLE and SEEK_DATA for OS X * stress-fp-error: relax checking on non-Linux systems * stress-schedpolicy: skip FIFO if sched_get_priority_min/max return -1 * stress-mknod: fix cut-n-paste error on struct stress_info_t * stress-fp-error: be less pedantic with errno checks on non-Linux systems * stress-mknod: disable this for non-Linux systems * stress-affinity: check that process can set CPU affinity * stress-access: remove AT_SYMLINK_NOFOLLOW, it is not needed * stress-vm-segv: remove some old commented out debug text * stress-vm-segv: retry on ENOMEM on fork * stress-vm-segv: make child process non-dumpable * test/test_modify_ldt: fail for no-x86 architectures * stress-cpu: compute geometric mean by split mantissa and exponent method * stress-fork: turn warnings off around vfork and not fork * stress-dentry: fall back to using fcntl if flock is not available * Turn off warnings around vfork calls * Makefile: "SunOS" should be SunOS and not quoted in if statement * Makefile: check for SunOS to use non-default grep for -e capability * stress-dentry: don't flock the entry if we don't have flock flags -- Colin King Thu, 2 Aug 2018 14:39:41 +0100 stress-ng (0.09.35-1) unstable; urgency=medium * Makefile: bump version * stress-file-ioctl: check size against stat buf size * stress-file-ioctl: remove redundant buffer * stress-file-ioctl: print differences in sizes on error of FIOQSIZE ioctl * stress-sysfs: use shim_ spinlock type rather than direct structure * perf: use shim_ spinlock rather than direct call * stress-procfs: use shim_ spinlock rather than direct call * stress-procfs: use shim_ spinlock rather than native call * stress-dev: use shim spinlock rather than native call * stress-dccp: skip stressor if DCCP protocol not supported * stress-af-alg: return EXIT_NOT_IMPLEMENTED if protocol is not supported * rename set_cpu_affinity to stress_set_cpu_affinity * Update comment relating to stressor names * Make stressor command options match 1-to-1 with info and function names * Re-work STRESSOR macro so that we don't need upper case name anymore * Make stressor names with OPT_ options match * Make stressor names with stressor #defines match * Add more comments and make index i a size_t * Add helper to mlock stress-ng into memory * stress-procfs: use copy of proc_path and set to empty string rather than NULL * stress-dev: use copy of dev_path and set to empty string rather than NULL * stress-sysfs: copy sysfs_path while locked into path * stress-sysfs: don't nullify sysfs_path, set it to empty string and lock it * stress-personality: don't verify personality setting, it does not work * stress-sysfd: temporarily disable read access fstat error * rename snapcraft directory to snap -- Colin King Fri, 20 Jul 2018 12:19:44 +0100 stress-ng (0.09.34-1) unstable; urgency=medium * Makefile: bump version * Ensure all fail log messages set the error to EXIT_FAILURE * Manual: update contributors list * stress-opcode: make child process non-dumpable * Add bcd and utf8 zlib data methods to manual * stress-zlib: add 8 bit UTF-8 data stream * stress-zlib: put BCD data as bytes not 32 bit words * stress-zlib: add bcd data mode -- Colin King Mon, 16 Jul 2018 23:50:22 +0100 stress-ng (0.09.33-1) unstable; urgency=medium * Makefile: bump version * stress-pty: make open failure on ENOMEM non-fatal * stress-sockpair: handle EPERM error on read gracefully * stress-quota: don't count a pass as a failure * stress-quota: add some ESRCH failure debug info * stress-quota: don't fail if file system does not enable quota * stress-socket: don't make ECONNRESET on recv fatal * stress-spawn: skip if run as root * stress-spawn: fix comment * stress-vm: only declare stress_set_vm_flags if it is required * cache: remove unused function get_cache_name * stress-iomix: only declare stress_iomix_inode_ioctl when it is required * stress-sleep: remove sleep-max-adjustment handler * stress-pthread: remove pthread-max-adjustment handler * stress-unshare: only declare check_unshare when it is really required * stress-file-ioctl: only declare check_flag when it is really required * stress-dev: declare ret only for when it is used * stress-chroot: sanity check for ENOENT as a false positive * Add a slow-test-all make rule to perform more exhaustive testing * stress-dentry: remove redundant args argument * Add ptrace build autodetection * Update copyright year to 2018 in some odd files * Remove trailing space and tabs from end of lines * ignite-cpu: set process name to stress-ng-ignite * thrash: use the pagein method of forcing pages back into memory * thrash: add ksm memory merging (Linux only) * thrash: add kernel memory compaction (Linux only) * stress-dentry: add some misc operations on a directory fd * stress-dentry: add lookup failures to exercise directory searching * Add a watchdog stressor * stress-kill: add some early delay to give parent time to spawn stressors * stress-rtc: add select on RTC device * stress-netlink-proc: fix build with kernel v3.9 * stress-context: rename uc_link to uctx_link -- Colin King Thu, 5 Jul 2018 16:46:12 +0100 stress-ng (0.09.32-1) unstable; urgency=medium * Makefile: bump version * Makefile: add .travis.yml to make dist rule * stress-dev-shm: reduce scope of variable ret * stress-fstat: add yield point to get lower-latency in stopping * stress-dev-shm: handle interrupted wait to fix utime accounting * stress-dev-shm: use shim_fallocate for older kernels that don't support it * stress-pthread: don't block threads from SIGALRM for DragonFly BSD * stress-pthread: don't block threads from SIGALRM for OS X * stress-fstat: don't block threads from SIGALRM for OS X * stress-dev: skip devices that are not standard chr or blk devices * Check for chr or blk device using S_ISCHR/S_ISBLK * Fall back to mutexes instead of spinlocks for OpenBSD * stress-iomix: make kill and wait into two phases * stress-msg: add extra yield points for prompt death of children * stress-msg: add yielding to boost performance and help NetBSD * shim: make FreeBSD use the emulated fallocate for the moment * stress-zlib: constify data, cleans up clobbering warning * stress-dev-shm: close fd on exit * stress-sigpipe: move declaration of sigpipe_count * Add /dev/shm memory stressor * stress-dev: remove duplicated BLKSSZGET ioctl * stress-cyclic: reformat table contents * stress-clock: add 4.17 CLOCK_MONOTONIC_ACTIVE clock * stress-mmapfixed: add new 4.17 MAP_FIXED_NOREPLACE flag * stress-matrix: only print matrix method on first stressor instance * stress-matrix: add more yield points for snappier exits * stress-socket-fd: remove debug message * stress-socket-fd: add more yield points on fd recv and closing * stress-sctp: handle failures more gracefully, retry rather than abort * stress-cpu: Add LIKELY hint on callfunc stressor, speeds up by ~0.8% * stress-cpu: optimize primes a little further * Add UNLIKELY hint on sqrt stressor, speeds up by ~3% * stress-cpu: add UNLIKELY hint on hanoi zero depth * stress-ng: call free_settings to fix memory leak on process exits * cache: fix removed assignment to cpu count and make buffer larger * cache: use sizeof types to fix segfault * helper: put PRAGMAs around function rather inside function * Use trusty dist in travis * Force disabling of warnings on older versions of gcc * Add travis build yaml * stress-ng: rename abort to do_abort to avoid shadowing of global function abort * stress-zlib: rename rand to rnd to avoid shadowing with global function rand * stress-zlib: rename index to idx to avoid shadowing with global function index * stress-utime: rename times to timevals to avoid shadowing with global function times * stress-sigpending: rename sigset to _sigset to avoid shadowing of global sigset * stress-rtc: rename alarm to wake_alarm to avoid shadowing with function alarm * stress-rawdev: rename function shift to shift_ul * stress-link: remove need for symlink argument * rename acct to account to avoid shadowing with function acct * stress-fanotify: rename mount to mnt to avoid shadowing with function mount * rename times to timespec to avoid shadowing with global function times * stress-dev: rename stat to vt_stat to avoid shadowing with function stat * stress-cpu: rename gamma to _gamma to fix shadowing with function gamma * stress-context: rename link to uc_link to avoid shadowing with function link * stress-branch: rename index to _index inside macro to avoid global shadowing * Rename mount to mnt to ensure we don't shadow global function mount -- Colin King Wed, 27 jun 2018 19:12:17 +0100 stress-ng (0.09.31-1) unstable; urgency=medium * Makefile: bump version * cache: fix out of bounds access and potential null pointer dereferences * cache: fix various warnings when building with gcc-8.1.1 * stress-memfd: fix build warning on whence not being used * Makefile.config: add detection for APPARMOR_PARSER failures * perf: Add some more SW perf events * Makefile: fix perf HW events, need to pick up $(CFLAGS) * stress-matrix: add a square product matrix method * Ensure apparmor binary data is removed * Add extra sanity checking for apparmor builds * stress-mmapaddr: use correct signal handler * Re-order message queue stressor, it's not in the correct place * stress-timerfd: reduce scope of buffer * stress-efivar: reduce scope of varname and guid_str * stress-chdir: remove hard coded chdir_dirs setting * stress-rmap: child should _exit rather than return on error * stress-zlib: add a zero block data method * stress-sigfpe: just clear siginfo.si_code field * stress-sigfpe: use assignment rather than memset to zero siginfo * stress-timerfd: remove shadowed declaration of ret * stress-sigfpe: remove shadowed declaration of ret * Don't exit child sub-processes with exit() (LP: #1777564) * stress-inotify: fix various gcc-8 warnings * stress-sysbadaddr: pass non-aliased addresses to system calls * stress-filename: clean up gcc 8.1 warning * stress-fanotify: clean up gcc warning * Clean up gcc-8 warning by making filename 5 chars smaller -- Colin King Thu, 21 jun 2018 14:38:18 +0100 stress-ng (0.09.30-1) unstable; urgency=medium * Makefile: bump version * stress-socket: fix build warning if FIONREAD is not defined * Add sanity check that child stressor processes are not calling exit() * stress-sigio: don't exit in sighandler; return back normally * stress-utime: fix failing utimes and futimens calls * stress-memcpy: fix clobbering of stats data when copying b_str * stress-shm: perform extra file operations on shm file descriptor * Add new real time signal stressor, sigrt * stress-sigsegv: add some verification checking * stress-access: voidify return from umask * stress-splice: remove variable bytes, replace with ret * stress-apparmor: add a few more yield points * stress-fifo: retry on select timeout rather than terminate -- Colin King Fri, 15 jun 2018 16:52:25 +0100 stress-ng (0.09.29-1) unstable; urgency=medium * Makefile: bump version * Manual: fix spelling mistakes and update date * stress-sigfpe: remove need for fp_zero * stress-sigfpe: cater for systems without SA_SIGINFO * stress-socket: fix warning on unused variable ret * stress-sigfpe: remove feenableexcept, it is extraneous * stress-sigfpe: fix verify mode, match exception with error code * stress-sigfpe: zero siginfo struct * stress-apparmor: kill child processes aggressively * stress-sigfpe: reset fp exception states to fix math issues * stress-apparmor: add more yield point checking * Makefile.config: move pthread library to end to fix static linking issues * Fix typo in manual, --mmapfixedA-ops -> --mmapfixed-ops * stress-sigfpe: force more fpe exceptions, exercise handler more * stress-socket: use TCP_QUICKACK if available * stress-socket: add FIONREAD size peeking * stress-userfaultfd: exercise /proc/$pid/fdinfo/$timerfd proc file * stress-timerfd: exercise /proc/$pid/fdinfo/$timerfd proc file * Rename g_terminate_signum to terminate_signum and make it static * Renaming symbols to indicate they are used in process termination * Remove some unused old struct typedefs * Make some functions static * Deconstify some const pointers (ughh) * Add deconstifier helper. * remove redundant and shadowing variable ret * stress-dccp: add missing , * Move the class info into the stressor_info_t for each stressor * Rename class_t to class_info_t * stress-cpu: fix bitops checksum * stress-access: fix build warning on Solaris with %o on mode_t * stress-memthrash: restore accidentally removed function stress_set_memthrash_method * stress-mergesort: fix missing { * affinity: fix prototype of set_cpu_affinity * stress-cyclic: fix build warning on non-linux systems * Point to stress_not_implemented rather than wrapping each time * Add stressor_info_t for stress specific info * Clean up optarg handling, make it more table driven * Revert Add pr_* logging sleepy locks (LP: #1774571) * Add pr_* logging sleepy locks -- Colin King Fri, 8 jun 2018 11:30:00 +0100 stress-ng (0.09.28-1) unstable; urgency=medium * Makefile: bump version * stress-zlib: rename variable i to j to fix variable shadowing warning * stress-prctl: make function stress_prctl_child static * stress-fanotify: remove shadow'd declaration of ret * stress-access: remove redundant declaration of ret * stress-sysbaddaddr: fix indenting * stress-flock: fix indenting * stress-enosys: fix indenting * test/test-modify-ldt: return ret to stop clang warning * test/test-pselect: make rfds, wfds static, stop clang warnings * stress-clone: put statements of if block in { } * stress-shm-sysv: voidify return from shmctl call * stress-prctl: voidify return from prctl system call * stress-clone: voidify return from modify_ldt system call * stress-iomix: fix early termination due to incorrect bogo ops comparison * Manual: update thread information for memthrash stressor * stress-memthrash: add warning and hint about sub-optimal stressor choice * stress-af-alg: fix errno = ENOENT assignment, should be == comparison * stress-set: add autodetect for setregid, setresgid, setresuid, setreuid * stress-af-alg: skip over ciphers that may not exist * stress-af-alg: make ENOKEY a non-critical failure * stress-af-alg: forgot to add in \n * stress-af-alg: expand error message to capture more information * stress-shm-sysv: add exercising for SHM_SET for linux only * stress-shm-sysv: add SHM_LOCK/SHM_UNLOCK commands * stress-mq: POSIX mq on linux allows one to read MQ status, add this * stress-af-alg: add crc32c * syscalls.txt: update swapon/swapoff info * stress-hsearch: fix spelling mistake in comment * syscalls: update statx and umount system calls * stress-chown: add lchown system call * stress-xattr: exercise the filename based xattr system calls * stress-pthread: use tgkill and gettid system calls * syscalls: mark tkill as obsolete * syscalls: ignore ugetrlimit * stress-hdd: use truncate as well as the ftruncate * syscalls: add update to setsid * stress-set: add setsid call * stress-efivar: fix error return in efi_get_variable * split mlocked region into mlocked text segment and mlocked data segment * stress-ng.h: add empty macro definitions for ALIGNED and SECTION * stress-efivar: add ioctl and fstat exercising on efivar fd's * test/test-setpgid: don't pass -ve args * stress-set: voidify returns to discard warnings * Add set stressor -- Colin King Fri, 25 May 2018 16:18:12 +0100 stress-ng (0.09.27-1) unstable; urgency=medium * Makefile: bump version * Remove empty end lines from debian/control, debian/changelog * stress-filename: set rc to EXIT_SUCCESS if we get a timeout on again loop * stress-chdir: only use O_DIRECTORY if it is supported * stress-xattr: remove need to #include * stress-utime: only declare ts when required * stress-utime: don't use UTIME_NOW or UTIME_OMIT if they are not defined * stress-pthread: exercise set_robust_list linux system call * stress-zlib: fix parity data generator * Add build-time check for faccessat * Add new access/faccessat stressor * stress-zlib: reorder rand_data_funcs and add in missing funcs * stress-zlib: Add sweep sin wave double prevision data * Add parity bit data zlib method * stress-cpu: fix parity sum check * syscalls.txt: fix up utimensat * stress-utime: add utimensat system call * Add build check for utimensat * stress-efivar: keep track of bad efivars and don't re-read them * stress-ng.h: forgot to include when HAVE_MODIFY_LDT is defined * Update modify_ldt syscall * stress-clone: add modify_ldt call * Add build time check for modify_ldt * Update syscall.txt with latest syscall additions * stress-pthread: exercise setns() * stress-clone: exercise setns() * Add build time check for setns * syscalls.c: add fchdir * stress-chdir: add fchdir syscall * stress-zlib: add pink noise data generation method * stress-bind-mount: don't clone signal handlers in clone child * stress-bind-bound: respawn process to handle limit on bind mounts * Add a EFI variable reading stressor * Add prctl stressor * stress-ng.h: don't allow both HAVE_SYS_XATTR_H and HAVE_ATTR_XATTR_H * Forgot to commit changes to Makefile.config * xattr: autodetect for different xattr paths attr/xattr.h and sys/xattr.h * stress-dev: add BLKSECTGET ioctl -- Colin King Mon, 14 May 2018 14:31:12 +0100 stress-ng (0.09.26-1) unstable; urgency=medium * Makefile: bump version * Remove TARGET_CLONES on some functions that break on gcc 7.2 on kFreeBSD * Use nanosleep where possible for usleep, add nanosleep check * stress-dev: move wfds to select local scope to fix NetBSD warning * stress-dev: NetBSD hangs on select on some devices, so disable this * stress-dev: pass child failure status to parent * stress-dev: fix warning on char being passed to isdigit on NetBSD * stress-dev: NetBSD uses different sorting prototype * stress-sigio: don't do fcntl F_SETOWN for minix, it always fails * stress-sigio: fix hang in *BSD systems when we SIGALRM not handled * stress-sigio: exit in sighandler to force earlier termination * stress-sigio: add yield points to break out of heavy looping * shim: cater for systems that don't have mlock * stress-utime: check HAVE_FUTIMENS for declaration of ts * test/test-mq-posix: mq_* is defined but not implemented on kfreeBSD * test/test-syncfs: syncfs is defined but not implemented on kfreeBSD * stress-dirdeep: use HAVE_FUTIMENS * Makefile.comfig: fix typo in funtimens * test/test-futimens: check also for UTIME_NOW and UTIME_OMIT * Add build time check for futimens * test/test-dup3: trigger failure with FreeBSD kernel * stress-zlib: fix longjmp clobber warnings on data * stress-revio: make alloc_buf void * to avoid type punning warnings on gcc 3.4.3 * stress-hdd: make alloc_buf void * to avoid type punning warnings on gcc 3.4.3 * Add shim wrapper for mlock for Solaris compat reasons * stress-fanotify: peek into number of bytes to be read with FIONREAD * stress-crypt: include if on Solaris * stress-enosys: avoid warning on unused procs on Solaris * stress-sysbadaddr.c: avoid warning on unused procs on Solaris * stress-sysbadaddr.c: include termios.h for TCGETS * stress-vm-segv: remove debug, it is spamming the output * stress-sysbadaddr: don't use ustat if it is not defined * stress-sysbadaddr: ensure we have PTRACE_GETREGS defined * Workaround failing pthread spinlock on DragonFly BSD * stress-dev: add /dev/null nop to have at least one item in table * stress-wait: use HAVE_WAITID to check for waitid() call * stress-sysbadaddr + Makefile.config: Add HAVE_WAITID check * stress-sysbadaddr: fix conditional build on bad_clock_gettime * stress-sysbadaddr: use mincore shim to fix build on GNU/Hurd * stress-sysbadaddr: ensure TCGETS is defined * stress-file-ioctl: fix a file handle leak * Add sysbadaddr stressor to exercise system call bad address handling * stress-mmap: use new MAP_FIXED_NOREPLACE flag introduced in 4.17 * stress-clock: add CLOCK_MONOTONIC_ACTIVE that was added to Linux 4.17 * stress-oom-pipe: Explicitly drop capabilities to make root spawned processes more OOMable * Explicitly drop capabilities to make root spawned processes more OOMable * helper: remove some blank lines * stress-dev: add linux stress for /dev/{mem|kmem|port|kmsg} * stress-vm-segv: don't assume max size of size_t * stress-vm-segv: ensure we force SEGVs by invalidating I$ cache * Add --vm-segv option to force SEGVs on unmapping * stress-fork: make it more OOMable * stress-clone: make clone'd procs OOMable * make main process less likely to be OOM-able * snapcraft: add libsctp-dev * stress-tree: rename BSD trees to fix build error on OpenBSD 6.3 -- Colin King Fri, 27 Apr 2018 15:59:11 +0100 stress-ng (0.09.25-1) unstable; urgency=medium * Makefile: bump version * stress-ng: don't enable TARGET_CLONES for kFreeBSD (LP: #1765050) * stress-enosys: avoid calling vhangup with upper bits set (LP: #1757967) -- Colin King Wed, 18 Apr 2018 15:25:51 +0100 stress-ng (0.09.24-1) unstable; urgency=medium * Makefile: bump version * Misc small fixes detected by static analysis (LP: #1762848) * stress-fcntl: use | rather than |= to get new_flags * stress-tmpfs: clear mnts and check if mnts[i] is null * stress-sync-file: fix incorrect placement of break statement * stress-af-alkg: check for more NULL cmsg pointers * stress-pipe: ensure no uninitialized data is written to pipe * stress-fcntl: use | rather than |= to get new_flags * test/test-posix-memalign.c: free allocated buffer * test/test-fanotify.c: free buffer * stress-mmapfailed: check for null return from mremap * stress-af-alkg: check for NULL cmsg * stress-resources: don't open on a null slavename * stress-sysinfo: ensure mnts array is zero'd * stress-cpu: make loop index in jenkin func size_t to fix overflow * stress-vm: don't loop forever in child sleep loop * ignite-cpu: don't wait for parent to kill loop, add timeout check too * Double number of stressor processes up to 8192 * Add stream-index indexing option * Make some settings global to fix args confustion -- Colin King Wed, 11 Apr 2018 09:58:44 +0100 stress-ng (0.09.23-1) unstable; urgency=medium * Makefile: bump version * cache: revert using shim_str* funcs (LP: #1759515) Using the shim_* str functions breaks the cache globbing paths, so for now, revert these. -- Colin King Wed, 28 Mar 2018 10:40:10 +0100 stress-ng (0.09.22-1) unstable; urgency=medium * Makefile: bump version * stress-mmap: add extra checking on fd, don't do I/O on -ve fd * out-of-memory: ensure buffer is null-terminated * out-of-memory: move non-linux variant of process_oomed * out-of-memory: detect if a stressor was killed by the OOM killer and don't mark it as a strict stressor failure (LP: #1755245) * stress-mmap: add missing I/O to/from mmap'd buffer on mmap'd address * stress-ng.h: fix missing perf option (LP: #1758383) -- Colin King Fri, 23 Mar 2018 16:44:47 +0000 stress-ng (0.09.21-1) unstable; urgency=medium * Makefile: bump version * stress-dir: clean up warning on args on DragonFly build * stress-dir: skip the sanitycheck on DragonFly BSD * stress-rawdev: reduce the scope of 'ret' * stress-mmapaddr: reduce the scope of 'ret' * stress-mcontend: reduce the scope of variable 'cpu' * stress-matrix: remove redundant initialization of a to NULL * stress-filename: reduce scope of variable d * stress-enosys: declare variable lim when only required * stress-dev: make 'ret' local to ioctl test block scope * Makefile.config: fix epoll_create build checking * stress-ioprio: check for systems that don't support pwritev * shim: overlooked another fallocate glibc call to fixup * shim: use syscall to call fallocate, older glibc may not support it * perf: cater for systems that don't support linux/perf_event.h * stress-urandom: workaround __u32 definitions in pre-2.6.29 kernels * stress-epoll: detect if epoll_create1 exists * stress-netlink-proc: don't use PROC_EVENT_SID in kernels earlier than 2.6.31 * Add detection for linux/fiemap.h * test/test-librt.c: reorder functions in alphabetical order * stress-dirdeep: use shim_strlcat instead of strlcat * Replace strncat with safer strlcat * Add shim version of strlcat * Replace strncpy with safer strlcpy * Add shim and implementation of shim_strlcpy() * stress-dev: ensure we don't have a non-null terminated filename * stress-dev: don't sync on fd when open failed * stress-ng.h: check for spin lock failure * stress-dev: add #ifdef around stress_dev_tty * stress-dev: add #ifdef around struct termios tios declaration * stress-dev: remove gettid, only used during debug on linux * stress-dev: remove debug * stress-dev: randomly mix up device path scanning, limit to max 3 of same device * stress-dev: add missing /dev/random ioctl handling * stress-dev: add some Linux SCSI ioctls for block devices * stress-file-ioctl: fix missing #if / #endif around shim_fallocate * stress-procfs: mix up path name order to get a better spread * stress-sysfs: mix up path name order to get a better spread * stress-xattr: add missing setxattr and lsetxattr system calls * stress-utime: add NULL utimes time and non-nul utime parameters * stress-dir: add missing readdir() exercising * stress-file-ioctl: add missing FIDEDUPERANGE ioctl * stress-file-ioctl: exercise FS_IOC_RESVSP64 * stress-fcntl: ensure F_OWNER_GID is being exercised * stress-get: add Linux lookup_dcookie call * stress-dev: exercise tty ioctls on devices * stress-file-ioctl: disable FIFREEZE/FITHAW filesystem ioctls * test/test-ustat.c: ustat will fail on __arch64__, so don't enable it * stress-enosys: add extra paranoid check on reboot syscall check * stress-enosys: ensure all known syscalls are added to hash table (LP: #1755358) * Makefile.config: add -Wextra build check on ustat -- Colin King Wed, 21 Mar 2018 12:59:58 +0000 stress-ng (0.09.20-1) unstable; urgency=medium * Makefile: bump version * stress-procfs: remove debug (LP: #1755552) * stress-madvise: fix build issue for HPPA (LP: #1755551) * stress-dev: add missing FIBMAP to block dev stressor * Fix missing stressors in mini-help and re-order some * Remove duplicated "futex" stressor from stressor table -- Colin King Tue, 13 Mar 2018 17:58:49 +0000 stress-ng (0.09.19-1) unstable; urgency=medium * Makefile: bump version * stress-cyclic: fix typo in time measurement, us should be ns * stress-enosys: add checks on RLIMIT_* macros * bump target_clones attribute to gcc 5.5 * stress-mcontend: don't msync if it is not available * Disable target_clones attribute on GNU_HURD * stress-procfs: make stressor more stressful, less thread spawning * stress-enosys: wider sanity checks for fork/vfork/cloning (LP:#1753705) * Forgot to add test/test-personality.c * stress-enosys: try to limit fork run-away (LP:#1753705) * Add personality autoconfiguration detection * stress-mcontend: fix non-Linux build * stress-cpu: fix clang build error * Add new mcontend memory contention stressor * stress-af-algo: add a couple more crypto module tests * Add GCC-5 target_clones attribute * stressors: use the new cpu_is_x86 helper * Add cpu.c and cpu_is_x86 cpu detection helper -- Colin King Mon, 12 Mar 2018 10:30:58 +0000 stress-ng (0.09.18-1) unstable; urgency=medium * Makefile: bump version * stress-sysfs: sysfs_path does not need to be marked as volatile * stress-flock: make function stress_flock_child static * stress-dev: pass thread data using pthread_args_t context * stress-dev: rename ret to wret to fix variable shadowing * stress-seal: don't redefine MFD_ALLOW_SEALING * test/test-ustat: fail for GNU/HURD, it is not implemented * helper: use sz only in scope that requires it * stress-fcntl: fix build error in do_fcntl * Pass SHIM_PTHREAD_PROCESS_SHARED rather than 0 as flags arg to shim spin lock init * stress-dev: Fix compat shim build warnings on OS X * stress-dev: use abstracted pthread spinlock for portability sake * syscalls.txt: add getpagesize * stress-get: use getpagesize if it is available * helper: use getpagesize() for legacy systems without sysconf * Add automatic build getpagesize detection * stress-exec: where possible, use execveat() as well as execve() * syscalls.txt: add epoll_create and epoll_pwait to syscall table * stress-epoll: use epoll_create and epoll_pwait to get more coverage * stress-sock: use accept4 to add more system call coverage * stress-dev: add some block specific ioctls * stress-dev: add more seeking and shared memory mapping * syscalls: add ustat * stress-sysinfo: add legacy ustat() system call * Update syscalls log * stress-poll: add ppoll and pselect calls to add more stress coverage * stress-dev: make stressor more stressful, less thread spawning * stress-sysfs: only stress sysfs if spinlock succeeded and bump counter * stress-sysfs: remove redundant null check on path * stress-sys: make stressor more stressful, less thread spawning -- Colin King Wed, 28 Feb 2018 16:26:38 +0000 stress-ng (0.09.17-1) unstable; urgency=medium * Makefile: bump version * Manual: update date * stress-rawdev: make some functions static * stress-funcall: fix -Wmissing-declarations warning message * stress-file-ioctl: remove extraneous shadowed variable 'ret' * stress-madvise: make ret non-clobberable for gcc 4.2.1 * Add minimum GCC version for Pragma push/pop * shim: older gcc required pragmas outside of functions * stress-enosys: older gcc required pragmas outside of functions * Check for clang version when using pragmas * stress-file-ioctl: remove debug printf * Add new file-ioctl stressor * shim: disable warnings for brk and sbrk for OS X * Swap ordering on compiler detection on pragmas * stress-enosys: turn off warning on syscall, cleans up OS X warning * Add no warning pragma macros * Makefile: force sync after build in case reboot loses executable * stress-enosys: add syscall7 shim * stress-dirdeep: only print info message on instance #0 * stress-enosys: wrap with OOM catcher (LP: #1750787) * stress-dev: add bug reference to hpet failure * stress-enosys: exercise more arguments in syscall * Manual: udp-lite should be for ipv6 as well as ipv4 * Manual: update arch specific limitations on lockbus and memthrash stressors * Return EXIT_NOT_IMPLEMENTED when system call returns ENOSYS * stress-userfaultfd: don't fail with an error if ENOSYS is returned * stress-membarrier: don't fail with an error if ENOSYS is returned * stress-getrandom: don't fail with an error if ENOSYS is returned * helper: make zero more obscure so that optimizer won't optimize zero out * stress-filename: remove shadowed redundant variable ret * Makefile: build perf-event with $(CC) rather gcc * stress-wcstr: fix warning on systems without wcs functions * job: make fp non-clobberable, cleans up build warning on gcc 4.8.4 * stress-softlock: clean up clobbering warning on gcc 4.9.2 * mwc: add more information into the reseed mix * stress-filename: don't closedir on a NULL dir pointer * Move LIB_DL headers to stress-ng.h * stress-dynlib: try to read the function memory to force page fault * Manual: fix enosys-ops entry, missing e from enosys-ops * Add new dynlib shared library dynamic loading stressor * stress-tree: make nodes align naturally with padding * stress-tree: move data to start of struct, ensures natural alignment * stress-tree: clean splay nodes at removal time * stress-tree: ensure splay tree data is cleared * stress-exec: drop all capabilities before exec'ing * stack-mmap: add MAP_STACK flag -- Colin King Thu, 22 Feb 2018 14:04:11 +0000 stress-ng (0.09.16-1) unstable; urgency=medium * Makefile: bump version * Silence a build warning on %d for g_pgrp, cast to int * Use the new is_dot_filename() helper * Add is_dot_filename helper function to check for "." or ".." filenames * stress-filename: clean up temporary files on forced termination * stress-handle: catch any SIGKILL signals and report back * stress-filename: catch any SIGKILL signals and report back * Print process ID in [ ] braces * Add debug to inform us when stress-ng kills process group with SIGKILL * Makefile: make build output less noisy and cluttered * helper: add in compiler major minor info * stress-vecmath: don't built with clang less than version 5.0 -- Colin King Thu, 15 Feb 2018 17:41:32 +0000 stress-ng (0.09.15-1) unstable; urgency=medium * Makefile: bump version * debian/copyright: fix insecure debian copyright URL * debian/compat: update to 11 * debian/control: update debhelper to >= 11 * stress-bind-mount: ensure we have clone support with HAVE_CLONE check, fixes another FTBFS in ia64 * stress-wait: remove empty line * Rename array and type unsupported to supported * stress-flock: Add more flock lock types, add more stressing children -- Colin King Sat, 3 Feb 2018 15:02:11 +0000 stress-ng (0.09.14-1) unstable; urgency=medium * Makefile: bump version * stress-sigpipe: reduce scope of int ret * stress-wcsstr: sanity check to see if there are any wcs* functions * Add full wide char function autodetection * stress-chown: workaround a NetBSD hang on usleep * stress-chmod: workaround a NetBSD hang on usleep * stress-cpu: add __fp16 float16 support (ARM) * test/test-float: ensure test code is not overly optimized out * test/test-float.c: ensure build options are same as stress-cpu.c * Generalize float type config tests * stress-cpu: Add float32, float80 and float128 support * stress-ng: add some alignment tweaks to naturally align fields * Add a new vm-addr virtual memory address stressor * README: update number of stressors * stress-funccall: make functions non-static, force less optimization * stress-vm: add UNLIKELY annotations to improve performance * stress-procfs: don't write using a NULL badbuf * Add sigpipe stressor * Add bad write buffer to procfs write * stress-procfs: do proc writes only if proc_write is true * stress-vm-rw: fix build failure on ia64 with missing HAVE_CLONE -- Colin King Tue, 30 Jan 2018 13:17:21 +0000 stress-ng (0.09.13-1) unstable; urgency=medium * Makefile: bump version * Manual: update date * Makefile.config: reorder detection, no major change * stress-userfault: add missing check for HAVE_CLONE, should fix FTBFS for ia64 arch * Rename stress_hdd_opts to stress_set_hdd_opts * Rename stress_filename_opts to stress_set_filename_opts * stress-matrix: make a couple of functions static * stress-enosys: fix variable shadowing warning * Add HAVE_SYSCALL_H detection and try to get more syscall coverage * stress-enosys: add an a complete set of known syscalls to skip * stress-enosys: make index ssize_t, fixes GNU/HURD build warning * Ensure skip syscall array is at least 1 element * Add a new enosys system call stressor * test/test-notify: add sanity check on message length * stress-cyclic: cast longs to int64_t before multiply to fix overflow * stress-funccall: add arg swapped recursion to calls * stress-funccall: add large data structure passing * stress-vecmath: vectorize constants, make them const too -- Colin King Thu, 25 Jan 2018 16:45:43 +0000 stress-ng (0.09.12-1) unstable; urgency=medium * Makefile: bump version * stress-clone: fix build issue on systems without the clone system call * test/test-getmntent: remove unused variable 'n' * stress-revio: fix build warning on OS X builds * stress-swap: use mwc1() for single bit random value * stress-shm: use mwc1() for single bit random value * stress-shm-sysv: use mwc1() for single bit random value * stress-schedpolicy: use mwc1() for single bit random value * stress-key: use mwc1() for single bit random value * stress-iomix: use mwc1() for single bit random value * stress-dup: use mwc1() for single bit random value * stress-aio: use mwc1() for single bit random value * stress-madvise: add in new MADV options (Linux + BSD) * stress-membarrier: add in new membarrier commands to enum * Add fixed mmaping stressor, mmap-fixed * stress-fcntl: add F_GET_RW_HINT/F_SET_RW_HINT fcntl controls * stress-branch: optimization, remove a ! operator and align jmp table * stress-dev: add some extra per-device ioctl exercising * Makefile.config: generalize header detection * stress-madvise: perform random file or anonymous mapping for MADV_FREE * Add 1 bit mwc function * stress-madvise: add MADV_KEEPONFORK advise flag * Add reverse I/O stressor: revio -- Colin King Mon, 22 Jan 2018 16:33:39 +0000 stress-ng (0.09.11-1) unstable; urgency=medium * Makefile: bump version * Manual: update date * stress-sigio: don't build if missing various core functionality * stress-sigio: remove sigprocmask, this is not used now * Makefile: forgot to add the new stress-sigio stressor * Add new sigio asynchronous I/O SIGIO stressor * Add clone glibc wrapper autodetection, fixes ia64 builds * Manual: remove excessive misplaced escape chars -- Colin King Wed, 17 Jan 2018 17:01:02 +0000 stress-ng (0.09.10-1) unstable; urgency=medium * Makefile: bump version * stress-tlb-shootdown: ensure proc_mask is zero'd before use * Makefile.config: make fdatasync test fail if prototype is different * stress-rawdev: fix warning on non-linux builds * Manual: add another contributor to the manual * stress-unshare: throttle back when resources are getting low * stress-rawdev: make min/max block size #define values * stress-rawdev: ensure blksize cannot be less than 512 bytes * stress-rawdev: don't allow insanely sized block sizes * stress-rawdev: add a keep stressing check inside wiggle 2nd loop * stress-rawdev: ensure shifted values are never zero * stress-rawdev: use correct type for reading block size * stress-resources: ensure we don't have too many resource forks * stress-resources: try hard not to get too many OOMs * stress-dev: disable /dev/hpet testing when running as root * debian/control: skip requirement of libkeyutils-dev for ia64 * stress-matrix: fix broken xy vs yx matrix method selection * stress-vm: remove a duplicated check addr == ptr * stress-filename: compare to zero rather than <= 0 * stress-fcntl.c: fix syntax errors * Update copyright year -- Colin King Fri, 12 Jan 2018 13:47:57 +0000 stress-ng (0.09.09-1) unstable; urgency=medium * Makefile: bump version * stress-tlb-shootdown: only kill legitimate pids * stress-tlb-shootdown: make child processes more OOM-able * stress-rawdev: replace some spaces with tab for indentation * stress-ng.1: fix table for rawdev-method option -- Colin King Thu, 4 Jan 2018 01:37:11 +0000 stress-ng (0.09.08-1) unstable; urgency=medium * Makefile: bump version * Makefile.config: remove need for LIBBSD for wchar.h path detection * stress-rawdev: fix linking failure on non linux systems * Add wchar.h and bsd/wchar.h path detection, makes stress-ng.h cleaner * Add rawdev raw device read stressor * stress-vecmath: use uint128_put for 128 bit integer * Move ALIGNED and SECTION macros to stress-ng.h * Add OPTIMIZE0 level zero optimization hint macro * stress-socket-diag: remove some consts, cleans up clang warnings * Use the FORMAT macro for some printf style functions * stress-vm: fix warning when building with PEDANTIC=1 * stress-tlb-shootdown: fix unterminated comment * stress-timer: fix warning when building with PEDANTIC=1 * stress-itimer: fix warning when building with PEDANTIC=1 * stress-funccall: clean up warnings when building with PEDANTIC=1 * stress-physpage: only close an opened fd_pc file descriptor * stress-tlb: fix incorrect affinity on cores -- Colin King Sun, 31 Dec 2017 17:18:23 +0000 stress-ng (0.09.07-1) unstable; urgency=medium * Makefile: bump version * Makefile: add stress-version.h to make dist rules * test: clean up errors in config tests found by static analysis * Add lockf autoconfigure detection * stress-io: use HAVE_SYNCFS to detect syncfs availability * stress-dirdeep: use HAVE_SYNCFS to detect syncfs availability * Add syncfs autoconfigure detection * Add fdatasync autoconfigure detection * Add fsync autoconfigure detection * stress-flock: remove __sun__ restriction * Add posix_memalign autoconfigure detection * Add futimes autoconfigure detection * stress-zlib: remove restriction on __sun__ * stress-wait: only disable for broken GNU/Hurd * Makefile.config: add -Werror to fix build warnings on Minix * Add mount autoconfigure detection for BSD and Linux * stress-rmap: remove build restrictions on non-linux systems * stress-ng: ensure utsname.h is included for non-linux builds * stress-get: ensure utsname.h is included for non-linux builds * stress-get: fix build error on non-linux platform * Add x86 cpuid autoconfigure detection * Add strlcpy strlcat string func autoconfigure detection * helper: clean up utsname includes * Add uname autoconfiguration detection * stress-msync: replace __minix__ with HAVE_MSYNC * stress-mincore: use the HAVE_MINCORE macro rather than __gnu_hurd__ * Add sigwaitinfo and sigqueue autoconfig detection * stress-hdd: replace __gnu_hurd__ with more generic posix fadvise check * stress-wait: add notes on why this is disabled on GNU/Hurd * helper: use HAVE_SIGALTSTACK instead of minix and GNU/Hurd checks * stress-msync: enable build for GNU/Hurd * Add posix_openpt autoconfig detection * stress-mincore: remove extraneous space at end of error message * test/test-posix-fadvise: force failures GNU/Hurd * Add posix_fadvise autoconfig detection * test: force failures for mincore and msync for GNU/Hurd * stress-fcntl: fix incorrect usage of F_DUPFD_CLOEXEC flag * stress-get: remove __minix__ #define check * Add mincore autoconfig detection * Add msync autoconfigure detection * stress-mmap: call shim_msync rather than msync * Add mprotect autoconfigure detection * Add autoconfigure detection of sigaltstack * Add autodetection of mlockall and munlockall * Add mlock autodetection * Add getpgid autoconfigure detection * Add getpgrp autoconfigure detection * split out version macros into stress-version.h * Add dup3 autoconfigure detection * stress-trees: voidify return of get_setting for tree-method option -- Colin King Thu, 14 Dec 2017 18:12:01 +0000 stress-ng (0.09.06-1) unstable; urgency=medium * Makefile: bump version * Add more smarts in autodetecting wcs* functions * stress-tree fixes that got discovered after the 0.09.05 release: - stress-tree: minor changes to splay and rb tree setup and insertion - stress-tree: fix up tree method calling and add AVL tree * stress-tree: add binary tree * stress-tree: use faster method to populate data -- Colin King Fri, 8 Dec 2017 16:24:56 +0000 stress-ng (0.09.05-1) unstable; urgency=medium * Makefile: bump version * Makefile: remove .xz tarball instead of .gz on make clean rule * debian/control: update Standards-Version to 4.1.2 * Debian: watch: change watch URL to use .xz rather than .gz * Makefile: use xz compression on tarball make dist rule * Manual: Add more information in the tree description * stress-wcstr: fix build issues for GNU/kFreeBSD builds * Don't include bsd/wchar.h for GNU/kFreeBSD * libbsd test: Add *BSD support * stress-treee: don't build for __APPLE__ * Add DragonFly BSD to BSD support for libbsd * stress-tree: fix build for systems without libbsd * stress-ng: add funccall mini help options. * Add libbsd tree stressor * test/test-libpthread: remove POSIX semaphore checks * stress-ng.h: fix indentation * Move put values into global union, saves > 40K on x86 * Add the funccall function call stressor * Makefile: move fanotify stressor to correct alphabetical order place * stress-dev: perform open with O_RDONLY | O_WRONLY for ioctl opens * stress-clone: catch OOM'ing clone stressors and re-spawn them -- Colin King Wed, 6 Dec 2017 13:20:46 +0000 stress-ng (0.09.04-1) unstable; urgency=medium * Makefile: bump version * Manual: update date * stress-sigsegv: catch SIGBUS for systems such as __APPLE__ * stress-fault: catch SIGBUS for systems such as __APPLE__ * stress-mmapaddr: cast uint64_t value to intptr_t * stress-mmapaddr: set addr correctly, fixes null ptr issue * stress-mmapaddr: add mremapping if supported * stress-mmapaddr: add MAP_LOCKED random flag setting * stress-mmapaddr: 2nd mmap should check remap addr, and add MAP_32BIT * stress-mmapaddr: add random MAP_FIXED flag * Add stress-mmapaddr random address mmap stressor * stress-icache: remove constification of page_addr * stress-hrtimes: make a couple functions static * stress-vm-rw: constify pointer ctxt * stress-vm: add a couple of constifications in macros * stress-userfaultfd: constify a couple of function args * stress-tmpfs: constify rnd * stress-stream: constify advice in struct stream_madvise_info_t * stress-socket: constify type in struct socket_type_t * stress-pty: fix typo in comment * stress-mmapfork: constify ln * stress-mknode: constify greycode * stress-mincore: remove some empty lines * stress-mergesort: reorder statements and int declaration * stress-malloc: add some constifications * stress-ioport: constify flag * stress-icache: constify page_addr * stress-hdd: add some more constifications * stress-full: constify fields of a struct * stress-flock: constify ppid * stress-filename: add various variable constifications * stress-fiemap: add various variable constifications * stress-dirdeep: constify inodes_avail * stress-dentry: add a constification to a data structure * stress-clock: add a few more constifications * stress-branch: make array labels const * affinity: constify max_cpus * Add more comments to stress-ng.h * stress-vforkmany: call vfork syscall directly when possible * stress-open: only close fd's that have been opened * stress-cpu-online: only allow all CPUs to be offlined with 1 instance * stress-cpu-online: by default, don't offline/online CPU 0 -- Colin King Sun, 26 Nov 2017 22:46:23 +0000 stress-ng (0.09.03-1) unstable; urgency=medium * Makefile: bump version * Manual: update date * stress-physpage: move unsupported function * Add new physpage stressor * Manual: add more notes on the OOM behaviour of the stack stressor * Add in stressor name or core context as prefix in pr_dbg messages * stress-fanotify: write "test" rather than "foo" * stress-exec: don't allow this to run as root, skip rather than fail * stress-ng: remove semaphore.h, it is in stress-ng.h already * stress-hrtimers: don't kill pid 0 -- Colin King Sun, 19 Nov 2017 16:01:11 +0000 stress-ng (0.09.02-1) unstable; urgency=medium * Makefile: bump version * Manual: update contributors names and date * README: update, add OS X instructions and add clean rule * shim: cast to int for brk for __APPLE__ * stress-ng.h: fix missing _ off __APPLE_ macro name * Use shim_sbrk and shim_brk wrappers * Add shim for brk and sbrk * stress-pthread: use shim_sched_yield instead if pthread_yield * stress-ng.h: use shim spinlock in warn_once inline helper * pthreads: shim spinlocks so we can use mutex if not available * Makefile.config: add missing ( * Make BSD library more flexible, especially with __APPLE__ arch * stress-inode-flags: reset flags to zero at end of loop (LP: #1730297) * stress-inode-flags: move counter to bump once per loop iteration * stress-random: enable random stressor for __APPLE__ arch * stress-filename: default to POSIX filename chars for __APPLE__ * stress-filename: OS X can't have ':' in filenames * stress-fcntl: fix up incorrect name of failed system call * stress-fcntl: remove need for 2nd fd in F_DUPFD * stress-mmap: add MAC OS X mmap flags * stress-schedpolicy: disable this for __APPLE__ arch * sched: detect __APPLE__ and don't used sched funcs for this arch * stress-zlib: correct text start/end for all OS choices * test/test-libpthread: ensure we check all pthread functionality * Update README.Android notes -- Colin King Tue, 7 Nov 2017 14:54:23 +0000 stress-ng (0.09.01-1) unstable; urgency=medium * Makefile: bump version * stress-fcntl: fix build issue when F_OWNER_PGRP is not defined (LP: #1709905) * Makefile: remove special rule for wcstr * stress-rmap: fix bogo-ops max checks * stress-memthrash: make bogo-ops checking more granular * stress-iomix: make bogo-ops checking more granular * stress-sleep: make bogo-ops checking more granular * stress-socket-diag: make bogo-ops checking more granular * stress-socketpair: make bogo-ops checking more granular * stress-stack: make bogo-ops checking more granular * stress-dirdeep: make bogo-ops checking more granular * stress-sigsuspend: catch SIGUSR1 to avoid children getting killed * stress-nice: make bogo-ops checking more granular * stress-aio: make bogo-ops checking more granular * stress-shm-sysv: make bogo-ops checking more granular * stress-shm: make bogo-ops checking more granular * stress-sem-sysv: make bogo-ops checking more granular * stress-sem: make bogo-ops checking more granular * stress-resources: make bogo-ops check more granular * stress-open: make bogo-ops check more granular * stress-key: increment counter on tidy phase * stress-inode-flags: don't over-run bogo-ops count * stress-dup: check for bogo-ops more accurately * stress-dev: make bogo-ops count on per directory * stress-sysfs: make bogo-ops count on per directory * stress-timerfd: fix bogo-ops, counter was not being incremented * stress-vm: fix bogo_ops threshold checks * stress-yield: fix bogo-ops timeout and accounting * stress-iomix: improve counter checking to make termination more responsive * stress-itimer: ensure we stop timers when timer handler is saturated * stress-hrtimers: ensure we stop timers when timer handler is saturated * stress-timer: ensure we stop timers when timer handler is saturated -- Colin King Thu, 2 Nov 2017 15:06:11 +0000 stress-ng (0.09.00-1) unstable; urgency=medium * Makefile: bump major version * Makefile Add perf-event.c and usr.bin.pulseaudio.eg to dist rule * test/test-mathfunc.c: ensure link fails if function is not available * Add exporting of MATHFUNC for BSD builds * stress-ng: fix typo in comment * shim: remove leading tab on empty line * Add hrtimers stressor * sched: use pr_* logging and quiet flags rather than fprintf * Add CFLAGS and add -I to path so that stress-ng.h can be included * Add ioport (port 0x80) stressor * stress-resources: don't abort early on cleanup, fixes msg leaking * stress-cpu: use L suffix for all long double constants * stress-bigheap: cast uint8_t ptr to void * for %p format * stress-af-alg: remove unused macro SEMI_BLOCK_SIZE * stress-affinity: cast return type from stress_get_processors_configured * Remove ; at end of macro STRESS * Makefile: remove the rm of test-decimal.c, it is now redundant * Makefile: remove cpu decimal float test, it is in the Makefile.config * Move test config sources to test directory * stress-dev: catch SIGKILL et al on device access breakage * debian/control: change Priority to optional -- Colin King Thu, 26 Oct 2017 09:56:32 +0100 stress-ng (0.08.18-1) unstable; urgency=medium * Makefile: bump version * Manual: update date * debian/control: update Standards-Version to 4.1.1 * stress-hsearch: use sizeof on size of object and not the type * stress-vm: use sizeof on size of object and not the type * stress-ng: use sizeof on size of object and not the type * stress-radixsort: use sizeof on size of object and not the type * stress-shm: use sizeof on size of object and not the type * stress-zlib: use sizeof on size of object and not the type * stress-udp: use sizeof on size of object and not the type * stress-mlock: use sizeof on size of object and not the type * stress-sigsuspend: use sizeof on size of object and not the type * stress-tsearch: use sizeof on size of object and not the type * stress-stream: use sizeof on size of object and not the type * stress-yield: use sizeof on size of object and not the type * test-libbsd: use sizeof on size of object and not the type * stress-scpt: remove extraneous space * stress-qsort: use sizeof on size of object and not the type * stress-opcode: use sizeof on size of object and not the type * stress-mergesort: use sizeof on size of object and not the type * stress-lsearch: use sizeof on size of object and not the type * stress-heapsort: use sizeof on size of object and not the type * stess-fiemap: use sizeof on size of object and not the type * stress-cpu: fix setting of data values for stats data * stress-cpu: use sizeof on size of object and not the type * stress-cpu-online: use sizeof on size of object and not the type * stress-bsearch: use sizeof on size of object and not the type * stress-apparmor: use sizeof on size of object and not the type * stress-aio: use sizeof on size of object and not the type * perf: use sizeof on size of object and not the type * cache: use sizeof on size of object and not the type * stress-cpu: add statistics computations (stats cpu method) * Add eventfd autodetection * Add chroot autodetection * stress-cap: remove __linux__ check * stress-netdev: make errno EADDRNOTAVAIL non-fatal * Makefile: re-organize, put config probing into Makefile.config * Add swapcontext autoconfig detection * stress-zlib: add handler to catch code text read faults * stress-cyclic: print 64 bit signed 0 value dist stats correctly on 32 bit arch * stress-cyclic: fix up bucket info * stress-cyclic: dump more buckets and don't show lots of trailing zeros * stress-fiemap: add more yield points for snappier termination -- Colin King Wed, 18 Oct 2017 10:27:43 +0100 stress-ng (0.08.17-1) unstable; urgency=medium * Makefile: bump version * debian/control: update Standards-Version to 4.1.0 * perf: rename perf_info argument to pi to avoid shadowing warning * README: update number of stressors * stress-procfs: add some seeks to further exercise procfs * test-mathfunc: ensure we link in the math func * Fix test-mathfunc checks - fails on BSD. * Makefile: add test-mathfunc.c and add it to dist rule * Makefile + stress-cpu: add autodetection of missing math functions * perf: inline perf_type_tracepoint_resolve_config * perf: remove need for prefix of PERF_COUNT_ on perf counter names * perf: remove need for the HW_CACHE wrapper macro * perf: move PERF_INFO_TP macro * perf: increase width of label by 1 char * perf: rename STRESS_GOT to STRESS_PERF_DEFINED * Remove perf_get_counter_by_index, simplify code * Move perf_scale_t and perf_scale, make array const too * perf: remove helper function perf_get_label_by_index * perf: simplyify event handling, remove need for ids * stress-ng.h: remove redundant minix #if def * perf: remove some white spaces before tabs. bad formatting * perf: add some more perf hardware events * perf: add more trace point events * perf: fix spelling mistake in comment * perf: Add more units scaling, for when processors run really fast * Manual: update contributors * stress-key: bump timeout to 7200 seconds from 1 second * stress-opcode: fix build warning when SECCOMP_SET_MODE_FILTER is not defined -- Colin King Mon, 9 Oct 2017 10:15:36 +0100 stress-ng (0.08.16-1) unstable; urgency=medium * Makefile: bump version * stress-aio-linux: automatically scale requests (LP: #1711675) * stress-socket-diag: sockdiag_send zero return should be checked * stress-socket-diag: sockdiag_send should return 0 on stress test end * stress-socket-diag: ensure name is sockdiag and not sock-diag * Add swapon/off stressor -- Colin King Thu, 21 Sep 2017 10:17:11 +0100 stress-ng (0.08.15-1) unstable; urgency=medium * Makefile: bump version * Manual: update date * Abstract a shim for off64_t * shim: fix typo, error should be errno * stress-opcode: don't use seccomp if SECCOMP_SET_MODE_FILTER is not defined * stress-memrate: add volatile in void cast to fix buildw arning * stress-socket-diag: constify attr and cast * shim: move iopriority shims from io-priority.c to shim.c * stress-pthread: fix typo mutx -> mutex * Add cpu-online and oom-pipe stressors to the pathological class * shim: move shim_sync_file_range from stress-sync-file to shim * shim: use __NR_futex instead of SYS_futex in syscall * stress-dup: use dup3 shim * shim: add shim to dup3 * stress-mincore: reset random address if it matches previous address * syscalls.txt: update * stress-clock: add half-baked attempt to set timer * helper: remove extraneous and incorrect < 0 after prctl call * fix -x exclude option * stress-ng: make index size_t type * stress-opcode: add seccomp filtering to limit syscalls * helper: stress_drop_capabilities: don't allow new privileges * Enable SCHED_DEADLINE and rework some abstraction interfaces * timers: cast to type of tv fields rather than long long int * stress-madvise: add MADV_WIPEONFORK * stress-vforkmany: cleanup build warnings on munmap on openindiana * stress-memrate: cleanup build warnings on munmap on openindiana * stress-matrix: cleanup build warnings on munmap on openindiana * temporarily disable SCHED_DEADLINE scheduling -- Colin King Wed, 13 Sep 2017 13:35:59 +0100 stress-ng (0.08.14-1) unstable; urgency=medium * Makefile: bump version * Update TODO list * Add a latin (Lorem Ipsum) random text mode to zlib method * test-mq-posix: force failure for GNU/HURD * test-mq-posix: fix build failure because of missing * stress-resources: clean up warning when POSIX MQs are not available * include in stress-ng.h * stress-mq: make build depend on HAVE_MQ_POSIX being defined * Add branch stressor that exercises process branch prediction * stress-memrate: perform oom adjustment in child earlier than allocation * test-sock-diag: voidify array unix_diag to work around clang warning * stress-kcmp: fix kcmp shim and fully implement KCMP_EPOLL_TFD stressor * stress-semaphore: make POSIX semaphores depend on HAVE_SEM_POSIX * stress-resources: waste POSIX message queues * stress-resources: waste SYSV message queues * stress-resources: waste SYSV semaphores -- Colin King Thu, 7 Sep 2017 11:59:01 +0100 stress-ng (0.08.13-1) unstable; urgency=medium * stress-rdrand: use 32 bit rdrand for i386 * stress_drop_capabilities: voidify name to avoid warning * Enable 64 bit large file system support by default * debian/rules: Add hardening=+all * manual: fix several spelling mistakes * stress-cpu: fix spelling mistake "assigment" -> "assignment" * stress-ng: fix spelling mistake "afer" -> "after" * stress-opcode: drop all capabilities so we can't do much damage (LP: #1714044) * helper: add stress_drop_capabilities to drop all capabilities * stress-socket-diag: use new HAVE_SOCK_DIAG_H build time check flag * Add sock_diag.h auto configure build time checking * Add sockdiag stressor * stress-fcntl: fix build failure on SLES11 SP4 (LP: #1709905) * stress-cyclic: fix build warning on systems w/o atomic ops * stress-softlockup: fix build warning on systems w/o atomic ops -- Colin King Wed, 30 Aug 2017 22:06:11 +0100 stress-ng (0.08.12-1) unstable; urgency=medium * Makefile: bump version * helper: add more debug to filenames to help debugging * stress-inode-flags: fix incorrect path being used on directory (LP: #1712857) -- Colin King Thu, 24 Aug 2017 16:59:33 +0100 stress-ng (0.08.11-1) unstable; urgency=medium * Makefile: bump version * stress-zlib: use _start for OpenBSD builds * stress-zlib: don't build objcode stress method for sun targets * Manual: update date * Add objcode zlib stressor method to compress object code data * stress-zlib: sort zlib methods by name * exit immediately on end of --stressors option * stress-inode-flags: remove temp file and directory * Fix comment in helper * stress-radixsort: fix warning on calloc sizeof * Add new inode-flags stressor * stress-dev: correct a comment * stress-dev: add select and F_GETSIG fcntl calls -- Colin King Tue, 22 Aug 2017 11:11:12 +0100 stress-ng (0.08.10-1) unstable; urgency=medium * Makefile: bump version * stress-dirdeep: fix warning on unused variable ret on BSD systems * Update manual description for the --all option * job: allow classes to be run as jobs (LP: #1706970) * stress-dirdeep: don't remove directories in main exercise function * return EXIT_SUCCESS for class cpu? class command * stress-dirdeep: exercise files rather than create/delete * manual: fix wording in memthrash table * stress-dirdeep: Fix inode accounting, add more -v information feedback * Add --dirdeep-inodes option to limit of inodes being consumed: * parse-opts: don't allow negative percentages * Add stress_get_filesystem_available_inodes to get inode number * Add generialized percentage opt parser get_uint64_percent * helper: remove debug message from stress_get_filesystem_size * stress-ng: ensure --version option terminates immediately -- Colin King Mon, 7 Aug 2017 21:31:32 +0100 stress-ng (0.08.09-1) unstable; urgency=medium * Makefile: bump version * stress-memrate: don't fail so badly when we can't allocate memory * stress-ng: fix segfault on --memcpy, requires 1 arg and not zero * Manual: update date * stress-cpu: Minix also does not have lgammal so work around this * stress-dirdeep: fix clang + Minix build warning, cast char to int * stress-memrate: add OOM check detection * stress-cpu: NetBSD does not have lgammal so work around this * stress-radixsort: fix build issues on systems w/o libbsd * Add new memrate stressor * shim: trivial fix to comment typo * stress-cpu: optimize factorial calculation * job: avoid memory overflow on strncpy on txt * Add --matrix-yx option * iterate over size of classes and remove need for terminator * stress-radixsort: remove casting, clean up build warning with PEDANTIC=1 * README: Add notes on PEDANTIC builds * No need to extern define opterr, it is already defined in getopt.h * Fix static build issues with the use of getpwuid * Add longjmp handling to unwind parsing errors * Improve job error handling * Add a LIKELY annotation to the 75% likely path on mwc8() * Add a radixsort CPU/memory/cache stressor * stress-rmap: force faster termination and cleanups * stress-ng.h: forgot to commit matrix size increase to 8192 * stress-matrix: scale up default float values by 65535 * stress-matrix: don't allocate matrices on the stack, mmap them instead * stress-icache: call shim_cacheflush to flush ICACHE * Add --vm-madvise option * stress-ng: forgot to add in stream-madvise option in help * stress-resources: make memory mappings private and exercise random madvise * stress-vm: make mappings private, helps with hugepage madvise * stress-shm: make mappings private, helps with hugepage madvise * stress-memthrash: make mappings private, helps with hugepage madvise * stress-stream: add --stream-madvise option * manual: fix typo, --no-advise should be --no-madvise * stress-fcntl: add 4.13 hints F_GET_FILE_RW_HINT F_SET_FILE_RW_HINT -- Colin King Tue, 18 Jul 2017 09:34:47 +0100 stress-ng (0.08.08-1) unstable; urgency=medium * Makefile: bump version * manual: update date * stress-filename: sanity checks on sz_max file size * stress-cyclic: fix build warning on non-linux platforms * stress-open: ignore open_pt if building on GNU/HURD * make str const char *, fixup some PEDANTIC=1 build warnings * setting: fix const warnings with PEDANTIC=1 * stress-ng: make get_nth_proc a static function * job: rename argc to new_argc to fix shadowing parameter argc * stress-vforkmany: fix PEDANTIC=1 build warning on munmap * stress-softlockup: remove duplicate ret * Rename tmp vars so we don't shadow pid * stress-memthrash: fix build warnings with PEDANTIC=1 * stress-fstat: remove extraneous cast to void * * stress-dev: don't make path const * Rename array dccp_opts dccp_options to avoid name clashes * stress-static: make a few local functions static * exit_status: make it a WARN_UNUSED function * stress-iomix: add FS_IOC_GETFLAGS/SETFLAGS inode operations * stress-open: use posix_openpt and O_NOCTTY flag * stress-zombie: zombie-max should not be a byte size value * stress-vm: vm-hang option should be a time based option * stress-tsearch: tsearch-size should not be a byte size value * stress-sleep: sleep-max should not be a byte size value * stress-sem: sem-procs should not be a byte size value * stress-sem-sysv: sem-sysv-procs should not be a byte size value * stress-qsort: qsort-size should not be a byte size value * stress-pty: pty-max should not be a byte size value * stress-pthread: pthread-max should not be a byte size value * stress-mq: mq-size should not be a byte size value * stress-mergesort: mergesort-size should not be a byte size value * stress-memfd: memfd-fds option should not be a byte size value * stress-matrix: matrix-size option should not be a byte size value * stress-lsearch: lsearch-size option should not be a byte size value * stress-hsearch: hsearch-size option should not be a byte size value * stress-heapsort: heapsort-size option should not be a byte size value * stress-fork: fork-max and vfork-max options should not be a byte size value * stress-exec: exec-max option should not be a byte size value * stress-bsearch: bsearch-size option should not be a byte size value * stress-clone: the clone-max option should not be a byte size value * stress-dir: chdir-dirs option should not be a byte size value * stress-dirdeep: add a --dirdeep-dir option to make more dirs per level * stress-dir: dir-dirs option should not be a byte size value * stress-socket-fd: remove process name change on client and server * stress-memthrash: make child processes OOM-able -- Colin King Mon, 10 Jul 2017 13:40:50 +0100 stress-ng (0.08.07-1) unstable; urgency=medium * Makefile: bump version * test-inotify: initialize variable i to zero * Manual: update date * stress-cyclic: add pselect sleep method * stress-rmap: fix comment, remove 'of' * stress-netlink-proc: add more PROC event types * Add inotify build time detection * stress-get: re-format macro, no functional change * stress-dup: use fcntl(2) F_DUPFD to perform a dup * stress-dnotify: check if F_NOTIFY is available * test-fanotify: clean up some static analysis warnings * Ensure plural of cpus online and configured is correct * Add fanotify build time detection * stress-softlockup: fix builds where RLIMIT_RTTIME is not defined * stress-fanotify: only build if FAN flags are defined * stress-cyclic: fix build where RLIMIT_RTTIME is undefined (LP: #1700484) * test-sem-posix: voidify returns * test-mq_sysv: voidify ret rather than msg * stress-socket-fd: don't force overcommit on fd allocations (LP: #1692668) * stress-cyclic: use check_range instead of check_range_bytes for scalar values -- Colin King Wed, 28 Jun 2017 11:09:11 +0100 stress-ng (0.08.06-1) unstable; urgency=medium * Makefile: bump version * Debian/control: update standards version to 4.0.0 * Make test-sem-sysv.c fail for GNU/HURD * Make test-mq-sysv.c fail for GNU/HURD * Make test-affinity fail for GNU/HURD * stress-cyclic: fix build issues on non-Linux platforms * Clean up some warnings found on test config code * Add --cyclic-method to cyclic measurements stressor * Add build-time checks for SYSV shared memory APIs * stress-sigsegv: add NOCLOBBER hint to fix warning with gcc 5.4.1 * test-sem-posix: include time.h to build on BSD * stress-sem-sysv: make semtimedop a linux only feature * Add build-time checks for SYSV message queues * Forgot to add in new test-mq-posix.c test source * Add build-time checks for POSIX message queues * Add in cyclic help options * stress-vforkmany: add self adjusting waste memory allocation * stress-vforkmany: make child processes larger to be more OOM'able * stress-socket-fd: Add checks for sendmsg failures * stress-socket-fd: send SIGALRM rathe rather than SIGKILL to child * Add new --cyclic-dist distribution option * stress-vforkmany: allow children to be OOM'd (LP: #1698747) * sem-sysv: add linux checks for linux only semctl commands * Add SYSV semaphore autodetection at build time * job: voidify some function returns and constify len * stress-cyclic: fix tab/spacing indentation -- Colin King Wed, 21 Jun 2017 17:33:49 +0100 stress-ng (0.08.05-1) unstable; urgency=medium * test-sem-posix: don't build for FreeBSD kernels * stress-cyclic: only produce stats for first instance * stress-sem: hust build on systems that provide POSIX semaphores * stress-madvise: fix build warning with clobbered sz with gcc 3.4.3 * stress-vm: fix build warning on munmap * stress-fcntl: fix build issue on kFreeBSD * stress-softlockup: fix build error on GNU/HURD * stress-madvise: fix another BSD build warning * stress-madvise: fix build warnings on BSD * stress-cyclic: fix build issues on non-Linux systems * Add build time checks for POSIX semaphores * stress-cyclic: add NOCLOBBER hints to avoid gcc 4.9.2 longjmp warnings * fix bogo ops setting, this was broken in the set/get settings changes * stress-cyclic: avoid division by zero error * Add new real time cyclic stressor * Propagate stressor killed status back up to parent * Make --class cpu? exit 0 rather than 1 * stress-fcntl: only build in fd_get when it is required * stress-fcntl: only build in check_return if required * test-affinity: voidify unused rc return * stress-sigsegv: remove redundant null assignment to ptr * stress-rlimit: reduce scope of fds, ptr and oldbrk * stress-softlockup: constify fields in data structure * stress-seccomp: check for specific macros after including the headers * Add --abort option to force all stressor to abort if a stressor fails * stress-softlockup: try to synchronize start of all children * stress-futex: use shim'd futex calls * Add abstraction shims to futex operations * madvise: fix build failure because of incorrect build config check * Add new softlockup stressor, use with caution * Forgot to add test-affinity. * Add madvise build time checks * Add test-affinity to dist rule * stress-clock: don't do zero nanosecond sleeps * Add automatic affinity checking at build time * stress-sigsegv: produce fault using write to read-only page * stress-vforkmany: remove as many calls as possible -- Colin King Fri, 16 Jun 2017 11:42:56 +0100 stress-ng (0.08.04-1) unstable; urgency=medium * Makefile: bump version * debian/control: use libgcrypt20-dev (Closes: #864137) * stress-kcmp: add new KCMP_EPOLL_TFD to enums -- Colin King Mon, 5 Jun 2017 10:12:14 +0100 stress-ng (0.08.03-1) unstable; urgency=medium * Makefile: bump version * Manual: update date * stress-pthread: don't use pthread_yield for NetBSD and Solaris * stress-wait: fix waitpid, make sure it's waiting with correct flags * stress-wait: fix WCONINUED typo and add better waitpid error detection * stress-nice: where possible force a sched yield * stress-memcpy: force calls to memcpy and memmove * stress-longjmp: remove extraneous tab * stress-matrix: Add a few more simple matrix method * stress-longjmp: make it a little more stressy * Add OPTIMIZE1 -O1 optimization hint * Add NOINLINE macro for forcing no-inlining of small functions * stress-exec: Make exec fail detection more intelligent * Add comment hinting to fallthrough macro to help static analyzers * stress-epoll: fix comment about delay time * stress-cpu: make macro args distinguishable from function names * stress-cpu: correct a comment function name * stress-pthread: add pthread_yield() call for more scheduler stress * cache: add in missing const to argument * cache: minor code clean ups * constify set/get setting function args * stress-aio-linux: use DIRECT_IO and aligned buffers * Remove the main_opt_t and set/get these using the set/get settings * perf: constify n in perf_yaml_label * stress-cpu: add factorial computation and approximations method * manual: update contributors list, add Abdul Haleem * stress-ng: help: fix typo and replace method m with method M * stress-cpu-online: EBUSY shouldn't be a fatal error * Fix: Macro definition for SECCOMP_SET_MODE_FILTER * stress-socket-fd: fix fork failures correctly, make child oomable * stress-memthrash: try harder to get mmap'd memory * Update documentation and help for timeout, specify times in T * stress-ng: remove white space in some -ops help information * move help_t to main stress-ng.c as it's just local to that source * move ionice help to the generic options -- Colin King Thu, 1 Jun 2017 17:32:58 +0100 stress-ng (0.08.02-1) unstable; urgency=medium * Makefile: bump version * stress-dev: don't build for __sun__, it does not have DT_* macros * example-jobs/device.job: Add dev stressor * Move the --dev stressor to the CLASS_DEV class * example-jobs/memory.job: add memthrash example * Expand the default run time text into human time units for large times * stress-dev: remove linux only build constraint * stress-dev: use pthread_args_t rather than a special context struct * Makefile: update perf rule to match output of other CC rules * stress-dev: ensure we check for all watchdog names * Make zero timeouts run forever. * Add dev stressor to exercise /dev entries * stress-sockpair: make parent less oomable than the child * stress-memthrash: optimization tweaks, makes it run a bit hotter * stress-memthrash: add OOM detection handling * stress-memthrash: Add MAP_POPULATE to mmap'd region -- Colin King Thu, 18 May 2017 13:26:50 +0100 stress-ng (0.08.01-1) unstable; urgency=medium * Makefile: bump version * stress-memthrash: implement stress_set_memthrash_method for non-pthread builds * stress-memthrash: provide some feedback about the method being used * typedef a pproc_info_t ptr to proc_info_t type, we can use this on g99 * Revert "Use g11 as we are using C11 forward typedef declarations" * Use g11 as we are using C11 forward typedef declarations * stress-zlib: no need to initialize info * stress-str: no need to initialize info * stress-matrix: no need to initialize info * stress-cpu: no need to initialize info * stress-wcs: replace static option with set/get option settings * stress-wcs: rename stress_wcs_stressor_info_t to stress_wcs_method_info_t * stress-vm: rename stress_vm_stressor_info_t to stress_vm_method_info_t * stress-str: rename stress_str_stressor_info_t and use set/get method * stress-matrix: rename stress_matrix_stressor_info_t to stress_matrix_method_info_t * stress-cpu: rename stress_cpu_stressor_info_t to stress_cpu_method_info_t * Add --memthrash-method methods * stress-cpu: move HOT OPTIMIZE3 to correct function * thermal-zone: fix tab indentation * Add memthrash memory thrashing stressor * TODO: remove acl from list, it is covered by stress-xattr.c * stress-netdev: remove unused macro MAX_INTERFACES * Add new netdev (network device) stressor * stress-fork: remove unused static option variables * Add #! handling in jobs, allow one to run stress-ng from a job script -- Colin King Fri, 12 May 2017 17:03:49 +0100 stress-ng (0.08.00-1) unstable; urgency=medium * Makefile: bump version to 0.08.00 * Makefile: add test-aligned-128.c to dist rule * stress-vm: voidify return from get_setting call * Add an example job that exercises all the matrix methods * Quote the name of the stressor method to make it clearer * Allow multiple instances of the same stressor to be run * stress-vm: use new set/get_setting on vm-method option * stress-matrix: use new set/get_setting on matrix-method option * stress-cpu: add debug info on the cpu method being used * stress-ng: clean up some of the overly wide lines * Use struct field tags to specify field settings for new args_t * Comment new settings types * job: fix old gcc warnings, cast char to int before passing to isblank() * remove stressor_id_find(), it is no longer used * stress-iomix: voidify iomix_bytes for non-linux builds * stress-hdd: ensure flags are zero * Add check for no stress workers being run * Be tidy and free up stashed settings * stress-cpu: use set/get_settings on cpu-method option * stress-shm: allocate addr and shm_names on heap rather than stack * Ensure that when rounding to nearest page we don't round to zero * Add new set/get_settings() mechanism to stash settings * stress-vm-splice: ensure minimal mmap size is at least a page size * Use the correct number of procs for sequential running * Rework the proc info setup, clean up and refactor chunks of code * Pass a list of proc_info_t's to stress_run, remove not_runnable flag * Replace procs[] array with a doubly-linked list of proc_info_t * Track per stressor stats with a pointer to the shared stats data * stress-sync-file: clean up warning on signed integer comparison * More minor job fixups * scheduler.job: fix incorrect name of job * Add a hot-cpu example job * remove debug from --ignite-cpu option * Add scheduler class example job * manual: move mq options to correct location in man page * Add filesystem class example job * stress-hdd: ensure we do not divide by zero * test-libbsd: voidify returns from test calls * TODO: update things to do * Move number of instances into args struct, remove stressor_instances() * Add net class example job * Re-order the class names into alphabetical order * Add vm class example job * manual: add missing full stop in userfaultfd section * Add security class example job * Makefile: update dist and install rules to incorporate example jobs * Add pipe class example job * Add interrupt class example job * Add io class example job * Add device class example job * Add cpu-cache class example job * Add cpu class example job * Ensure stressor names are mungified from _ to - in class option * memory.job: make default run time 60 seconds per stressor * stress-mergesort: replace uint8_t sort with random mixer sort * stress-stream: remove args-> prefix from instance message * Add example memory job * man page: fix the resources option with line wrapping * man page: fix typo on sigpending-ops * Add new --job option allowing one to script stressors * split out arg parsing into a helper function, put opt data in a struct * snapcraft: remove icon and update snapcraft yaml * Add 128 byte cacheline alignment -- Colin King Sat, 6 May 2017 13:27:11 +0100 stress-ng (0.07.30-1) unstable; urgency=medium * Makefile: bump version * stress-fstat: fix build warning on struct shim_statx bufx on BSD* * stress-fstat: don't use statx if AT_SYMLINK_NOFOLLOW or AT_EMPTY_PATH are not defined * stress-rlimit: restore brk point without using sbrk(-MAX_RLIMIT_DATA) * stress-rlimit: fill in empty {} fields * Add statx system call to shim and fstat stressor * stress-ptrace: formally voidify return from various system calls * stress-lsearch: formally voidify return from lsearch() call * stress-cpu: ensure variable b and b_flt are not re-assigned * stress-*timer: explicitly use float rather than integer constant * STRESS_*BIT macros: cast 1 to desired type before shifting * stress-rlimit: formally voidify return from sbrk() call * stress-get: formally voidify returns from get*() calls * stress-chroot: fix missing else in fork return state checks * stress-cpu: use helper to write data to sysfs -- Colin King Thu, 20 Apr 2017 00:06:02 +0100 stress-ng (0.07.29-1) unstable; urgency=medium * Makefile: bump version * mwc: flush cached 8 and 16 bit values on reseeds (LP: #1681503) * voidify returns from various function calls * out-of-memory: #define constants and use these * Use the stress_handle_stop_stressing for child case * extern stress_handle_stop_stressing as it is a useful generic handler * Use new stress_sig_stop_stressing helper * Add stress_sig_stop_stressing helper to flag up end of stressing * stress-cpu-online: minor formatting clean-up of source * oomable option does not have any args, fix that * Add new --oomable option to stop OOM'd stressors from being restarted * stress-rlimit: add more rlimit limits, fix CPU limits -- Colin King Tue, 11 Apr 2017 10:54:26 +0100 stress-ng (0.07.28-1) unstable; urgency=medium * Makefile: bump version * shim: voidify flags argument to shim_mlockall * stress-mlock: forgot to use shim_mlockall rather than mlockall * stress-mlock: use munlockall/mlockall shims, rename mlock_shim to do_mlock * shim: add shims for mlockall and munlock all * mwc: optimize 8 and 16 bit mwc functions (LP: #1677645) * stress-ng.h: remove unused macro STRESS_IONICE * Clean up some formatting of macros and long lines * rename type stress_op to stress_op_t * rename type stress_id to stress_id_t * stress-ng.h: rename type stress_func to stress_func_t * stress-cpu: verify idct method more efficiently * Add autoconfig test for 64 byte alignment too * Fix test for 64K alignment (instead of 64 byte) * Makefile: add missing .PHONY and correct spelling of .PHONEY * Add autodetection for 64 byte alignment of functions (LP: #1676834) * stress-rmap: use shim fallocated rather than posix_fallocate * Makefile: no need to make configuration when making pdf -- Colin King Thu, 30 Mar 2017 17:26:17 +0100 stress-ng (0.07.27-1) unstable; urgency=medium * Makefile: bump version * Makefile: Add TODO list to make dist rule * manual: update date * stress-pty: don't conditionally build out stress_set_pty_max * Update TODO list * stress-memfd: use correct printf format specifier for uint64_t type * stress-chdir, stress-dir: remove unused static flags * stress-socket-fd: remove unused macro MAX_FDS * stress-memfd: fix comment * stress-chdir: correct the chdir-dirs option name * stress-chdir: set default to correct DEFAULT_CHDIR_DIRS * Add missing control for 4 stressors: (LP: #1676419) * - Add --pty-max option to specify max number of ptys to try to open * - Add --memfd-fds option to specify the number of memory file descriptors * - Add --dir-dirs option to specify number of directories to stress on * - Add --chdir-dirs option to specify number of directories * log: add some more comments * ignite-cpu: add some more minor comments * helper: add some more comments * stress-ng: add some more comments * stress-ng: remove some blank lines * mlock: remove const from m_addr_start to fix clang warning * stress-fanotify: remove const from metadata declaration * stress-cpu: remove unnecessary packed attribute on a union * rename optarg args to opt as these shadow the global oparg variable * fix up incorrect args to various stressors * net: make stress_set_sockaddr_port net_addr const * Minor layout re-formatting of long_options table * stress-ng: Set per stressor default settings using stressor_set_defaults * Manual: update copyright year * Add TODO list * stress-chroot: fix typo, ENODIR -> ENOTDIR * stress-vecmath: remove -O3 optimisation as this breaks gcc on ppc64el * Remove PEDANTIC=1 from makefile -- Colin King Mon, 27 Mar 2017 13:49:11 +0000 stress-ng (0.07.26-1) unstable; urgency=medium * Makefile: bump version * fast-test-all: revert back to maximum of 4 stressors * stress-zero: disable write to /dev/zero for minix * shim: fix build error and warnings on Minix builds * stress-fstat: allow threadless builds for systems without pthreads * stress-ng: fix cppcheck style warnings: reduce scope of variables i and j * stress-fstat: reduce scope of variable fd * stress-zlib: clean up cppcheck style warnings * stress-stackmmap: clean up cppcheck style warning * stress-bind-mount: use args_t wrapper for clone to fix warning * Wrap const *args_t to pass non const void * arg to pthread_create * stress-tmpfs: constify array mmap_flags[] * stress-shm-sysv: constify array shm_flags[] * stress-opcode: constify static array sigs[] * stress-mmap: constify mmap_flags * stress-af-alg: constify static data structures * test-asm-nop: add copyright boiler plate message * Make default cache size information debug only * thrash: add some function comments * shim: add more comments * Use the mincore shim to hide BSD/linux 3rd argument differences * Add shim for mincore(2) * shim: madvise: map madvise advice to posix_madvise advice * stressors: use shim_madvise rather than madvise * Add shim for madvise(2) * stress-fp-error: check for EDOM, ERANGE (LP: #1674000) * Make FORCE_DO_NOTHING build in a nop before other ways of doing nothing * stress-matrix: align matrices to 64 bytes to reduce cache stalls * stress-matrix: use restrict on arrays for more compute * stress-icache: add missing support for PPC64 * Add ppc64 arch to defined STRESS arch types * stress-icache: add missing support for IBM s390 * Add s390 arch to defined STRESS arch types * stress-icache: don't build in 64K page support for ARMEL * Makefile: replace 'got' with 'using' in autoconfiguration text * stress-getrandom: check for EINTR failures (from SIGALRM) * Makefile: generate apparmor raw binary data silently * Explicitly call pr_closelog() and flush pending output (Closes: #857942) -- Colin King Mon, 20 Mar 2017 10:32:35 +0000 stress-ng (0.07.25-1) unstable; urgency=medium * Makefile: bump version * helper: avoid calling sched_cpu on ppc64le * Makefile: remove NOTPARALLEL, it's not helpful * fast-test-all: remove xattr as it can break some file systems * Makefile: don't autoconfig if we are making dist clean or install * stress-mlock: add in const to void when calling mlock * stress-icache: unconstify page_addr to clean up build warnings * stress-vm: rename ret to waitret to fix variable shadowing * stress-chroot: rename ret to waitret to fix variable shadowing * stress-chroot: rename static path to temppath * Makefile: display config steps and don't break if config is not available * Add NOPARALLEL to config rules * Makefile: Add .PHONY to rules * manual: forgot to add the manual from the zlib changes * stress-madvise: avoid overuse of MADV_HWPOISON (LP: #1672387) * vecmath: use gcc __int128_t types if they are available * Makefile: remove -g flag from default build * README: update number of stressors and examples on how to build * manual: update contributors list * manual: fix escape around - for a stress-ng iomix example -- Colin King Thu, 16 Mar 2017 10:57:11 +0000 stress-ng (0.07.24-1) unstable; urgency=medium * Makefile: bump version * stress-fstat: remove siglongjmp, bad idea in threads * stress-fstat: forgot to sigfillset on set * helper: use correct format specifier to print size_t variable * syscalls: add statx entry to table * stress-fstat: run multiple threads on fstat for more stress * stress-wait: fix spelling mistake in comment * stress-socketpair: remove empty line * stress-null: add mmap'ing and msync writes to /dev/null * stress-memcpy: add in structure copying * stress-flock: remove empty line * stress-zero: privately mmap to /dev/zero rather than shared map * stress-zero: add write to /dev/zero as this is also allowed * stress-zlib: remove redundant assignment to ret * stress-zlib: use PRIu64 format specifiers for uint64_t types * stress-fcntl: fix build warning on minix * helper: sigaltstack is available for GNU/HURD * helper: fix random segfaults because of setting stack start incorrectly * stress-zlib: clean up some tabbing/whitespace alignments in table * stress-ng: don't use stress_set_zlib_method if zlib is not available * helper: set sa_flags to SA_ONSTACK to fix stackmmap segfault * stress-stackmmap: ensure signal handler stack is not on the stack * stress-stackmmap: fix random segfaulting * stress-atomic: fix build of this stressor * Add a stress_sigaltstack alt stack helper and use helper * Revert "helper: ensure ss_flags are set to SA_ONSTACK" * helper: ensure ss_flags are set to SA_ONSTACK * helper: GNU/HURD and Minix don't support sigaltstack, so ignore this * stress_sighandler: ensure signal handlers use alternative signal stack * stress-stackmmap: jump back to main loop via swapcontext * Forgot to check in modifications to stress-ng.[ch] for the zlib changes * stress-zlib: add check sum sanity checking and --zlib-method * affinity: voidify returns from printf family of calls * voidify returns from fflush * voidify returns from printf family of calls * voidify return from kill() * voidify return from close, fclose and closedir -- Colin King Mon, 13 Mar 2017 11:42:12 +0000 stress-ng (0.07.23-1) unstable; urgency=medium * Makefile: bump version * stress-fcntl: minix does not require fd_get * helper: use STRESS_SC_PAGES as defined in previous commit * helper: try to use avg available phys pages and then total phys pages * stress-ng.h: Re-organise ordering and formatting of macros * Clean up the GCC attribute macros * Add ALWAYS_INLINE gcc macro, force inlining of some critical functions * Add a NORETURN gcc attribute macro and flag waste_resources accordingly * stress-vm: initialize bit_error_count as MAP_FAILED * stress-vm: check for bit errors and report them rather than ignoring them * stress-bigheap: ensure heap growth size is rounded to pagesize * Add new helper to check sizes in bytes and print in human readable format * Allow memory stressors to run with ridiculously large allocations * Allow one to specify sizes of files or memory in % of total available. * Manual: clarify --cpu-load and --cpu-slice options * Print out stressors in a class when using --class ? -- Colin King Mon, 6 Mar 2017 15:02:01 +0000 stress-ng (0.07.22-1) unstable; urgency=medium * Makefile: update version * stress-vforkmany: move counter increment to pre-vfork stage * stress-vforkmany: don't call setpgid in a vfork child * stress-socket: unlink AF_UNIX path only if addr is not NULL * stress-dccp: unlink AF_UNIX path only if addr is not NULL * stress-iomix: remove redundant increments of posn * stress-iomix: ENOSPC on fallocate is a EXIT_NO_RESOURCE error * Update conversion tables, bytes and times * Emit metrics even when counter is zero if test has been successfully run * stress-futex: fix a broken comment * stress-ng: fix rounding error in bogo ops-calculation * stress-iomix: force page to be read even on high optimization levels * stress-iomix: fix mmap flags, should be PROT_READ | PROT_WRITE * stress-fcntl: reduce scope on variable fd -- Colin King Tue, 28 Feb 2017 17:59:58 +0000 stress-ng (0.07.21-1) unstable; urgency=medium * Makefile: bump version * Makefile: add test-asm-nop.c to dist rule * Makefile: add config to dist rule * stress-fault: fix build on BSD, missing g_ prefix on keep_stressing_flag * Makefile: save and re-load configuration * stress-apparmor: prefix global data with g_ * mwc: make __mwc static, it's not referred to globally nowadays * Prefix all globals with g_ to indicate they are in global scope * stress-chroot: make functions static * stress-iomix: fix build warnings with gcc 3.4.3 * stress-ng.h: include strings.h for sun builds for rindex * shim: fix build warning on FreeBSD * stress-icache: forgot to add addr voidification * shim: handle ENOSYS on posix_fallocate by using emulated fallocate * stress-icache: fix warning when madvise does is not being used * Add no-op nop cycle waster stressor * stress-icache: cater for 4K, 16K and 64K page sizes and alignments -- Colin King Fri, 17 Feb 2017 14:58:11 +0000 stress-ng (0.07.20-1) unstable; urgency=medium * fast-test-all: print system information * stress-key: handle ENOSYS on KEYCTL_SET_TIMEOUT and bail out early * stress-iomix: remove redundant directory removal on fallocate failure * shim: add emulation for failed fallocate(2) -- Colin King Thu, 9 Feb 2017 11:08:01 +0000 stress-ng (0.07.19-1) unstable; urgency=medium * Makefile: bump version * Manual: update date * stress-iomix: don't use fdatasync on non-linux systems * stress-chroot: make this unsupported for non-Linux systems * stress-iomix: use shim_msync instead of msync for portability reasons * stress-iomix: only use fadvise on linux * stress-iomix: only use MAP_POPULATE on systems that provide this flag * stress-iomix: only use FALLOC_FL_ZERO_RANGE on systems where it is available * Correctly default iomix size to 1GB * Move page_size to args struct, remove need for stress_get_pagesize calls * Add a new iomix mixed I/O stressor * stress-chroot: EINTR should not flag up as an error * Add a chroot stressor * Makefile: add pdf manual making rule * stress-socketpair: abort on read failure * stress-yield: remove args-> from instacne message text * stress-msync: add another missing \n * stress-sync-file: abort early on sync failures * stress-msync: add missing \n on error message -- Colin King Wed, 8 Feb 2017 13:47:31 +0000 stress-ng (0.07.18-1) unstable; urgency=medium * Makefile: bump version * stress-resources: don't build in timer data if SIGUNUSED is not defined * mwc: move inlined functions back into mwc.c * stress-resources: don't build timer code of SIGUNUSED is not defined, fixes builds on mips, mips64el, alpha, sparc64 -- Colin King Wed, 1 Feb 2017 07:03:54 +0000 stress-ng (0.07.17-1) unstable; urgency=medium * Makefile: bump version * fast-test-all: add more feedback on failed or skipped tests at end of test * stress-tlb-shootdown: ensure we have a sensible number of child processes * stress-fcntl: disabled F_DUPFD_* stressors for minix * stress-fcntl: ensure we are not dup'ing onto an already open fd * stress-fcntl: only use flock64 for linux * stress-fcntl: fix F_OFD_GETLK error message * stress-fcntl: use flock64 for locking fcntl calls * stress-get: treat EOVERFLOW on prlimit as not a fatal error * mincore: fix incorrect inverted logic to test for minix * fix build warning with missing const on BSD builds * fix build warnings with missing const on GNU/HURD builds * Make opt_all and wait_flag static, they do not need to be global * Fix up some spelling mistakes * ignite-cpu: make settings static * rename opt_do_wait to wait_flag as a more appropriate name * rename opt_sigint to caught_sigint * Replace opt_do_run with keep_stressing_flag * mincore: ensure we touch pages even when calloc or mincore fail * stress-ng: func_supported should be a void arg * stress-resouces: add calloc resource suckage * stress-resources: add posix semaphore resource suckage * stress-resources: add timer resource suckage * stress-resources: add socketpair to resource suckage * Optimize mwc64/32/16/8 functions * stress-noop: add loop and inc to show minimal stressor example * Optimize __keep_running helper * Add LIKELY/UNLIKELY macros * time.c: add another constification * helper, stress-ng.h: add a couple more constifications * cache: more constifications, remove comment from #endif * perf: use scientific notation to define double constants * stress-sleep: constify cast * constify args_t *args parameters * cache.c, stress-ng.h: move generic_map to cache.c, make it a typedef * stress-ng.h: add some more comments to various fields * stress-fifo: fix wrap around detection * stress-get: need to assign ret before checking it * stress-fcntl: remove "name: " prefix in error message * stress-icache: add missing ; to fix *BSD build * stress-tmpfs: use args->pid instead of getpid on pid * stress-hdd: fix build issue on GNU/HURD * stress-atomic: fix missing ; * use a new helper keep_stressing() to check if we should keep on running * Fix up pr_msg va_args, requires a shim * log: make args const * make pr_* macros into shim functions, shrinks the build size * pr_fail always writes to stderr, so remove the need to specify the stream * pr_err always writes to stderr, so remove the need to specify the stream * pr_tidy always writes to stderr, so remove the need to specify the stream * pr_dbg always writes to stderr, so remove the need to specify the stream * pr_inf always writes to stdout, so remove the need to specify the stream * Remove need to pass name in pr_fail_err, pr_fail_errno, pr_fail_dbg * Add stress_temp_filename_args helper * Add stress_temp_dir_args helper * Add stress_temp_dir_rm_args helper to rmdir given stressor args * Add stress_temp_dir_mk_args helper to mkdir given stressor args * Use arg->pid and arg->ppid rather than getpid() and getppid * stress-tsc: fix missing typo * Add pid, ppid and re-order args to pack more efficiently in args_t * Pass args to stressors via a args_t struct * Use the new mmap_check/set helper funcs * Add mmap set/check helpers * thrash: perform some sanity checks on mmap ranges * stress-tmpfs: remove unnecessary mypid variable * Add a tmpfs file/mmap stressor * stress-af-alg: fix fd leak, add close on error exit path * stress-af-alg: check for null ptr on cmsg to keep clang scan happy * stress-resources: reduce scopeof slavename, make it const char * * stress-netlink-proc: reduce scope of newname * stress-vm-rw: return EXIT_NO_RESOURCE on resource failure -- Colin King Tue, 31 Jan 2017 13:57:12 +0000 stress-ng (0.07.16-1) unstable; urgency=medium * Makefile: bump version * fast-test-all: remove vforkmany, this can be aborted by the OS * stress-numa: abort when no NUMA nodes found with EXIT_NO_RESOURCE * stress-numa: make determining number of nodes non-fatal * stress-numa: correctly deduce number of available NUMA memory nodes (LP: #1656419) * stress-*: make all pr_inf info messages write to stdout and not stderr * stress-numa: add some info about number of NUMA nodes found * stress-numa: add in better error failure abort and error return * stress-numa: probe for maximum number of NUMA nodes * stress-wcstr: fix build error for stress_wcscpy * stress-wcs: fix wcslcpy and wcslcat test cases * stress-wcs: improve failure detection, bail out early if tests fail * stress-str: fix strlcpy and strlcat test cases * stress-str: improve failure detection, bail out early if tests fail * stress-seccomp: add openat to system calls to fix failure on aarch64 * stress-seccomp: use pr_fail for seccomp errors -- Colin King Fri, 20 Jan 2017 19:44:11 +0000 stress-ng (0.07.15-1) unstable; urgency=medium * Makefile: bump version * fast-test-all: use --stressors to get the list of stressors * stress-ng: fix typo in tlb-shootdown-ops option * stress-ng: correct the alphabetical order of stressor names * fast-test-all: sync before running next test * mounts: cater for *BSD mount info fetching * stress-netlink-proc.c: fix build issue on non-Linux systems * Fix build issue introduced in commit 39025068b1fe1c2a72220 * stress-ng.h: remove double line spacing, add some comments * Manual: update contributors list * stress-rename: fix incorrect end of test logic * stress-ng: minor cleanup of spacing, some inlining and comments * Remove white space and replace ^ . with \t * Forgot to add in stress-netlink-proc.c * Add netlink-proc stressor * stress-rlimit: force checking of run time in case we miss SIGALRM -- Colin King Tue, 17 Jan 2017 13:43:22 +0000 stress-ng (0.07.14-1) unstable; urgency=medium * Makefile: bump version * Manual: update date * stress-socketpair: make stress_sockpair_oomable static * stress-socketpair: detect an oom-killed stressor * helper: don't use prctl PR_SET_DUMPABLE, it disables oom adjustment and hence we can easily overcommit when running as root (LP: #1654971) * out-of-memory: use /proc/self/... rather than /proc/$mypid/... * helper: use /proc/self/... rather than /proc/$mypid/... * stress-hsearch: don't free keys, some don't free them in hdelete * stress-vforkmany: use sighandler alternative stack * stress-context: make stack_sig static * Makefile: remove -g flag * stress-itimer: initialise start time * Add new --vforkmany stressor * stress-fanotify: ensure stress_fanotify_supported is built * Add fanotify stressor * Expand --get option in manual * stress-get: don't verify on adjtimex if not root, add sysfs calls * Add sysfs(2) shim wrapper * stress-membarrier: also exercise CMD QUERY * stress-dccp: report correct errno from connect failure * Makefile: update copyright year * update copyright year -- Colin King Tue, 10 Jan 2017 15:32:10 +0000 stress-ng (0.07.13-1) unstable; urgency=medium * Makefile: bump version * Makefile: rename check rule to fast-check-all * manual: update date * stress-udp: fix build warning on minix * stress-mmap: fix build issue with ms_flags on GNU/HURD and minix * add a make check rule to run debian/tests/fast-test-all * stress-pthread: add error checking on cond, mutex and spinlock init * add shim abstraction to msync, use this on various stressors * stress-pthread: check for init failures and use a spinlock on counter * add new dirdeep max depth directory stressor * README: Update info on libraries required for a full build * stress-cpu: fix missing bogo ops counter increment * enforce 64 byte alignment to buffer * stress-futex: fix typo in comment * ensure stacks are aligned to 64 byte boundaries * stress-hdd: use new align_address helper * helper: add align_address helper to align a address to power of 2 boundary * stress-sysinfo: only dump out info on number of mount points on instance 0 * trivial typo in man page -- Colin King Tue, 27 Dec 2016 19:40:19 +0000 stress-ng (0.07.12-1) unstable; urgency=medium * Makefile: bump version * stress-udp: minix fails on setsockopt SO_REUSEADDR, so ignore it * stress-get: don't use NULL delta, just pass a zero delta timeval struct * stress-fifo: catch EINTR as non-fatal error on open * stress-resources: fix warning message on unused parameter 'pipe_size' * debian/tests: remove dccp from fast-test-all * helper: fix build issues on non-linux targets * update date in the manual * stress-resources: add pty resource suckage * stress-resources: add inotify resource suckage * stress-resources: try to expande pipe to maximum allowed size * stress-oom-pipe: use stress_probe_max_pipe_size helper * helper: add stress_probe_max_pipe_size to fine max pipe size * Add Datagram Congestion Control Protocol dccp stressor * stress-resources: add single pthread as another resource hogger * ensure -v output is no wider than 80 chars to avoid line wrap on std tty * stress-schedpolicy: set policy with param, remove unused new_param -- Colin King Mon, 19 Dec 2016 14:33:23 +0000 stress-ng (0.07.11-1) unstable; urgency=medium * Makefile: bump version * thrash: bump the priority to 10 * thrash: use RR scheduler if possible on linux * stress-sctp: don't unlink on an address that is NULL * stress-schedpolicy: the set/get param was a bit unsound, fix it * stress-fault: silence a clang warning * stress-membarrier: pass thread arg as a ctxt_t * type * helper: make __stress_get_stack_direction static * stress-fstat: rename jump buffer to jmpbuf to avoid name shadowing * mlock: fix warning with older pre gcc 4.4 on solaris * helper: fix some more print pid_t warnings * fix warnings on printing pid_t type * stress-cpu: only use gcc optimise attribute on gcc 4.4 or higher * small cleanups to stress-ng.h * stress-personality: return EXIT_NOT_IMPLEMENTED if no personalities exist * replace #ifdef with #if defined() as the default idiom * makefile: use grep -e instead of grep -f * add support macro for gcc-7 switch statement case fallthrough -- Colin King Wed, 14 Dec 2016 18:15:14 +0000 stress-ng (0.07.10-1) unstable; urgency=medium * add copyright boiler plate on fast-test-all * stress-personality: move memset to avoid memset 0 sized array * forgot to add shim_getlogin to stress-ng.h * shim: add more secure version of getlogin * stress-mmapfork: fix typo on buffer sizeof * stress-link: ensure buffer returned from readlink is terminated with zero * shim_usleep: use nanosleep if it is available, fallback to older usleep * stressors: use shim_usleep instead of deprecated usleep * shim: abort early from shim_usleep if opt_do_run is false * add usleep shim * stress-opcode: rename signal handler dummy arg to signum * stress-membarrier: memset pthread_ret with correct size * stress-shm: use shim_fallocate rather than posix_fallocate * stress-hdd: workaround lack of posix_memalign on sun * stress-rmap: sun builds may not have posix_fallocate, so don't build it * stress-wait: work around long int pid_t warnings on Sun systems * stress-wcstr: sun wide char support has some wcs funcs missing * stress-flock: disable this stressor for sun machines * makefile: use -f instead of -e for Solaris versions of test -- Colin King Tue, 13 Dec 2016 19:43:11 +0000 stress-ng (0.07.09-1) unstable; urgency=medium * Makefile: bump version * helper: fix cppcheck warning by initialising val1 * stress-fstat: don't open /dev files to stat them when running as root * stress-fstat: don't bump counter if fstat fails * stress-fstat: perform end of test check earlier than later * stress-sync_file: use sync_file_range2() where required * allow for static building, using STATIC=1 make -- Colin King Tue, 6 Dec 2016 21:41:22 +0000 stress-ng (0.07.08-1) unstable; urgency=medium * Makefile: bump version * add NOCLOBBER macro and make some variables noclobberable * stress-aio-linux: clean up clang warnings * remove need to pass an argument to stress_get_stack_direction * add smatchify script to make dist rule * add smatchify static analysis script * stress-userfaultfd: remove unnecessary exit_status call * stress-socket: fix inconsistent indenting * fast-test-all: remove tailing tabs * snapcraft Makefile: remove trailing whitespace * stress-daemon: clean up fd closing and add SIGALRM handler * make daemon stressor a little more responsive to SIGALRMs * make snapcraft confinement strict * getrandom: add support for systems that support getentropy(2) * shim: add comment about shim functions * helper: remove caches = NULL for non-linux systems to fix build error * shim: fall back to allocation via writes on fallocate * stress-yield: remove need to use alloca, use calloc instead * manual: add Luis to contributors list and sort names alphabetically * shim: fix userfaultfd failures due to a typo * increase STRESS_PROCS_MAX to 4096 for higher load on large iron * stress-userfaultfd: work around static analysis false positive on fd * stress-stream: avoid re-assignment of cpu_caches on linux case * trash: remove traced, it is serving no purpose * helper: don't re-assign cpu_caches on __linux__ build * net: iterate to the size of domains rather than using sentinel * affinity: remove #includes as these are included in stress-ng.h * stress-oom: add in missing space between ooms and = -- Colin King Thu, 1 Dec 2016 11:45:11 +0000 stress-ng (0.07.07-1) unstable; urgency=medium * Makefile: bump version * fast-test-all: don't run spawn test for testing * fast-test-all: remove check for existence of stress-ng -- Colin King Fri, 25 Nov 2016 19:55:33 +0000 stress-ng (0.07.06-1) unstable; urgency=medium * update build rules for Solaris * add MINIX notes to README * shim: add check for posix_fallocate (fixes minix build error) * abstract loff_t as it is not available on *BSD systems * fix *BSD systems that don't support ino64_t and off64_t types * stress-fallocate: use shim_fallocate wrapper * shim: fix non-Linux build failure on shim_mlock2 * stress-fallocate: remove __linux__ only constraints on modes * cache: make DCACHE and ICACHE #defines kernel gemeric * remove white space and tabs at end of lines * shim: add mlock2 system call to shim * shim: add sched_getattr and sched_setattr shims * shim: prefix linux_dirent* structs with shim_ * stress-seal: use shim for memfd_create * stress-ng: minor re-ordering of structs and shim functions * shim: rename sys_ioprio_* to shim_ioprio_* * shim: add unshare system call to shim * shim: add seccomp system call to shim * shim: add userfaultfd system call to shim * shim: add some more __linux__ checks * stress-opcode: use shim_clear_cache * shim: add NUMA specific system calls to shim * shim: add memfd_create system call to shim * shim: add membarrier system call to shim * shim: add syslog system call to shim * shim: add kcmp system call to shim * shim: add __clear_cache GNUC cache clearing helper to shim * shim: add getramdom system call to shim * shim: add getdents and getdents64 system calls to shim * shim: add getcpu system call to shim * stress-get: use shim_gettid * shim: add gettid system call to shim * shim: add fallocate system call to shim * shim: add copy_file_range system call to shim * shim: add cacheflush system call to shim * add shim abstraction layer for sched_yield() * fast-test-all: add some feedback on when a test is being run * use pr_fail_err on some more error messages * fast-test-all: allow for STRESS_NG to specify stress-ng * stress-epoll: fix build for GNU/HURD * move all common #includes into stress-ng.h * stress-ng.h: Add alloc.h include for sun arch * stress-ng.h: include some more common headers and define _GNU_SOURCE * stress-schedpolicy: fix broken counter, it was never being incremented * stress-resources: fix broken counter, it was never being incremented * stress-personality: fix broken counter, it was never being incremented * stress-fp-error: fix broken counter, it was never being incremented * fix broken counter, it was never being incremented * stress-bind-mount: fix broken counter, it was never being incremented * stress-handle: fix memory leak on line and also bump counter * stress-apparmor: free apparmor_path to fix minor memory leak * ensure cache region is free before termination * stress-fstat: use sigsetjmp instead of sigjmp * wrap some overly wide lines * use pr_fail_err() instead of pr_fail where appropriate * reduce scope of iterator variable i * remove alloca in stressor_name_find * remove space prefixed on klog-ops option * mincore: touch pages even when mincore fails * update syscalls.txt * stress-schedpolicy: add sched_setattr/sched_getattr calls for Linux * stress-schedpolicy: add more sched syscalls, clean up code * add schedpolicy stressor * stress-ng.h: change macro param name in STRESS macro -- Colin King Fri, 25 Nov 2016 10:43:11 +0000 stress-ng (0.07.05-1) unstable; urgency=medium * Makefile: bump version and update codename * stress-fstat: fix resource leak on dp on error exit path * stress-fstat: forcibly abort any system call on SIGALRM * stress-aio-linux: use return as errno rather than errno * stress-aio-linux: use return as errno rather than errno * Need to #include when using clone(2) -- Colin King Thu, 17 Nov 2016 22:55:21 +0000 stress-ng (0.07.04-1) unstable; urgency=medium * Makefile: bump version * Add SIGUSR2 load average and memory stats information * Makefile: don't remove apparmor-data.o * Rename stress_sethandler to stress_set_handler * Manual: add notes on how to properly terminate stress-ng * Add SIGHUP to comment about terminating stress-ng * Makefile: clean up objects and apparmor-data.o * affinity: add some comments to functions * stress-cpu: add some optimisation hints * stress-cpu: add some more precision to constants * stress-fallocate: verify file size if posix_fallocate succeeded * stress-aio-linux: check for io_setup resource failures (LP: #1640547) -- Colin King Fri, 11 Nov 2016 12:42:12 +0000 stress-ng (0.07.03-1) unstable; urgency=medium * Makefile: bump version * stress-ioprio: use current pgrp and not global pgrp (LP: #1640631) -- Colin King Thu, 10 Nov 2016 00:00:01 +0000 stress-ng (0.07.02-1) unstable; urgency=medium * Makefile: bump version * Manual: Add exit status 4 EXIT_NOT_IMPLEMENTED to documentation * Treewide: remove messy #if defined() build checks * Allocate io_reqs on heap rather than alloca * Makefile: re-format PEDANTIC CFLAGS * stress-fiemap: fix up --fiemap-bytes option * stress-sock-fd: add --sockfd-port option * Add PEDANTIC build flags for extra checking * stress-icache: fix volatile cast warning * stress-vm: fix volatile cast warning * stress-socket: fix shadowing on addr * stress-mincore: addr does not need to be volatile * stress-ng, thermal_zone, remove shared param, it is global * parse-opts: fix char * cast warnings * perf: remove (char *) cast * helper: fix warnings * use gnu printf style attributes to pr_yaml * helper: cast pointer to const to fix warning * stress-poll: fix shadowing on ret, rename one to rc * Fix various bad castings for munge_underscore * stress-oom-pipe: fix shadowing on fd, rename to pfd to avoid confusion * stress-mq: remove shadowing variable attr * stress-hdd: remove duplicate declarations of ret; make it a ssize_t * stress-ng: make helper functions static * thrash: rename pid to thrash_pid * stress-zombie: make helper functions static * stress-zlib: make helper functions static * stress-xattr: remove redundant shadowing variable ret * stress-mremap: fix shadowing on rc, remove rc * stress-link: fix shadowing on ret * stress-rw-vm: fix shadowing of ret * stress-vm-rw: make helper functions static * stress-unshare: make helper function static * stress-tsearch: constify pointers * stress-socket-fd: make helper function static * stress-seek: fix shadowing on ret * stress-readahead: make helper function static, fix shadowing on ret * stress-qsort: constify pointers * stress-mlock: constify addr pointer cast * stress-mergesort: constify pointers * stress-memfd: fix shadowing of variable name * stress-fork: make helper function static * stress-lsearch: constify pointer casts * stress-itimer: make helper function static * stress-iopri: remove local pgrp that shadows global * stress-inotify: make helper func static, fix some const casts * stress-heapsort: fix constify warnings * stress-handle: make helper functions static * stress-fp-error: fix float comparison * stress-fifo: make helper function static, fix ret shadowing * stress-filename: make helper functions static * stress-fiemap: make helper functions static * stress-dnotify: make dnotify_attrib_file static, fix newpath const * stress-dentry: fix shadowing of variable j * stress-bsearch: correctly constify casts on i1, i2 * stress-bind-mount: make stress_bind_mount_child static * stress-cpu-online: make stress_cpu_online_set static * stress-clone: make stress_clone* helper functions static * stress-bsearch: constify i1 and i2 * stress-aio-linux: remove duplicate and shadowing variable ret * stress-af-alg: make helper functions static * Remove redundant re-declaration of mwc_seed * stress-cap: sscanf on pid_t should be %d * Make munge_underscore arg const char * * Mungify _ to - in stressor names in --stressors option -- Colin King Tue, 8 Nov 2016 15:58:11 +0000 stress-ng (0.07.01-1) unstable; urgency=medium * Makefile: bump version * manual: update date * stress-ng: fix build issues for Solaris * stress-rmap: fix warnings with gcc 3.4.3 * stress-rmap: Don't build for OpenBSD, it does not support posix_fallocate * stress-rmap: don't build for Minix * stress-rmap: rename macro CHILD_MAX to RMAP_CHILD_MAX * Add dnotify stressor * stress-*: voidify calls to setpgid * thrash: remove ptrace waits, not really required * thrash: use more standand %jx to scan in memory sizes * thrash: remove debug messages * manual: fix missing escape on - in --metrics-brief * Add --stressors option to show available stressors * cache: ensure path is set correctly for CPUs > 0 * cache: fix FIXMEs on determining the CPU number a process is running on * Add stress_get_cpu() helper to fetch CPU number process is running on * manual: fix typo --stack-full should be --stack-fill * stress-rmap: remove redundant NO_MEM_RETRIES_MAX * stress-apparmor: another fix to signal handler comment * stress-rmap: uncomment setpgid call * stress-rmap: replace white spaces with tab * Add rmap stressor * stress-apparmor: fix comment * stress-icmp-flood: just count number of sendto failures * Add --thrash option. Don't use it unless you are crazy. * debian tests: expand the SKIPPED notes on the test script * debian test: use STRESS_NG var for stress-ng * debian test: Use sh and make use POSIX string compare * Add proc helper to help with init/destroy stressor helpers * call stress_unmap_shared if share cache region allocation fails * Add stress_map_shared helper to mmap stress-ng shared region * generalise max proc limiting * Factor out random stressor setting into helper function * Factor out pathological stressor disabling into helper function * stress-resources: declare pid if O_TMPFILE is also defined -- Colin King Fri, 28 Oct 2016 11:49:41 +0100 stress-ng (0.07.00-1) unstable; urgency=medium * Makefile: bump version * Make ICMP flood stressor conditional build on OS basis * debian/rules: add hardening flags * helper: fix white space indentation (spaces replaced by tab) * stress-ng: bracket pid number on abort early message * stress-userfaultfd: catch OOMs and report these as no resource issues * stress-timer: make stress_timer_set static * stress-sysfs: add zero byte writes to sysfs files * stress-procfs: add zero byte writes to procfs files * stress-icache: ensure we mprotect on page aligned boundary * stress-opcode: unmap the shared region so we don't clobber it * stress-ng: generalise the run-time unsupported stressor checks * Add ICMP flood stressor * stress-shm*: minor change to comment * stress-rtc: fix ioctl() issues, use rtc_wkalrm for wake alarm ioctls * stress-rtc: add padding around rtc_tm to workaround an ioctl bug * stress-oom-pipe: fix pipe fd offset bug, causing writes to fd 0 on ppc64el * stress-ng: fix spelling of resrouces -> resources * stress-rtc: handle return code correctly and -EINTR aborts -- Colin King Mon, 17 Oct 2016 09:44:02 +0100 stress-ng (0.06.18-1) unstable; urgency=medium * Makefile: bump version * stress-resources: include alloca.h for __sun__ arch * stress-ng: add missing break from switch on OPT_NO_RAND_SEED case * stress-procfs/sysfs: abort rather than re-doing reads on read errors * Add --no-rand-seed option to force reproduceable test start conditions * stress-wcstr: use safe strlcat and strlcpy BSD* systems * stress-str: use safe strlcat and strlcpy on *BSD systems * stress-str: use safe strlcat and strlcpy if we have BSD string library * Makefile: explicitly add -lc flags, stops a warning on FreeBSD builds * stress-resources: pid variable declared only on specific builds * stress-resources: don't build in syscall shims if we don't use them * stress-mmapfork: set max strncat size appropriately * Remove old deprecated --vm-stride from man page * stress-resources: chew up less memory * Remove resources stressor from fast test all * stress-resources: add setpgid call * stress-resources: try harder to terminate on SIGALRM * Add resource stressor -- Colin King Mon, 3 Oct 2016 13:29:23 +0100 stress-ng (0.06.17-1) unstable; urgency=medium * Makefile: bump version * Update manual to explain the caveats with --perf * perf: detect when perf counters can't be used (LP: #1626009) - add better explanation on how to enable --perf as an unprivileged user -- Colin King Wed, 21 Sep 2016 10:25:17 +0100 stress-ng (0.06.16-1) unstable; urgency=medium * Makefile: bump version * Makefile: add test-libsctp.c to make dist rule * test-libcrypt: fix cppcheck warning * Debian/control: add libgcrypt11-dev * stress-procfs: clear stack before use * manual: update date * stress-sysfs: only report an info message on instance 0 * test-libsctp: add some checks for required macros * sched: fix build warning when building with clang on minix * sched: fix build warning when building with clang on minix * stress-stack: fix build warning when building with clang on minix * stress-mmap: fix build warning when building with clang on minix * stress-get: fix build warning with clang on minix * stress-sctp: add in missing --sctp-domain option, update manual * Update net helper to add addresses, add new SCTP stressor * Some minor cleanups to main stress-ng header, nothing major * rename get_unsigned_long to get_uint32 * Some more 80 column source line width fixes * stress-sysfs: use fstat rather than access on path * stress-procfs: forgot to re-open closed file * stress-procfs: add some illegal read calls to try to break procfs * stress-sysfs: add some illegal read calls to try to break sysfs * Make snapcraft confinement devmode * Minor formatting changes to ensure 80 column wide source * stress-tlb-shootdown: fix indentation * stress-context: don't build with sigaltstack if minix or hurd * stress-context: add use of sigaltstack and SS_AUTODISARM * helper: fix indentation * stress-opcode: fix indentation * stress-ioprio: remove duplicate and badly indented umask() call * stress-epoll: fix indentation on if statement * helper: set core size to zero if possible with setrlimit * helper: force number of cpus to be 1 if sysconf not available * net: declare missing in6addr_any for minix * stress-mmap: make mprotect a no-op for minix * stress-mmap: don't use msync for minix * stress-shm-sysv: don't use msync for minix * stress-stack: don't use sigaltstack for minix * sched: make this a no-op for minix * mlock: make this a no-op for minix * don't enable STRESS_MSYNC for minix * don't enable STRESS_YIELD for minix * stress-flock: don't yield if minix * mincore: make this a no-op for minix * madvise: this is a no-op for minix * stress-mlock: don't build for minix * stress-cpu: minix does not support cabsl, use cabs instead * stress-hdd: don't do madvise for minix * stress-get: minix does not have getpgrp() * stress-ng.h: don't build in mlock stressor if minix * forgot to guard MLOCK stressor with STRESS_MLOCK check * stress-get: minix does not have getpgid() * mounts: fix build issues for minix * mincore: fix build warning on minix * stress-ng.h: only include if it is available * stress-wait: cater for systems that lack WCONTINUED * stress-sigsuspend: remove header inclusion, not required * stress-quota: make err local to each code block * stress-quota: remove redundant err assignment * stress-quota: rename local errno so we don't alias global errno * stress-quota: fix cppcheck style warning * stress-madvise: fix cppcheck style warning * stress-clock: fix cppcheck style warning * stress-sysfs: fix cppcheck style warning, initialize stack * stress-ng: clarify precedence of & and ?, fixes cppcheck style warnings * stress-handle: ensure scanf %s field is limited to avoid overruns * Fix SunOS builds, add socket and nsl library link flags * Use mfence instead of __sync_synchronize for gcc pre 4.2 on x86 * Makefile: explicitly specify C standard using --std=gnu99 * stress-vm: don't use binary constants, gcc may not support these -- Colin King Fri, 16 Sep 2016 16:15:48 +0100 stress-ng (0.06.15-1) unstable; urgency=medium * Makefile: bump version * stress-af-alg: account for number of ENOENT crypto bind failures * stress-af-alg: don't report bind on ENOENT as a failure (LP: #1617788) - retry is performed, failures are accounted for in debug verbose -v mode -- Colin King Sun, 28 Aug 2016 19:02:11 +0100 stress-ng (0.06.14-1) unstable; urgency=medium * Makefile: bump version * stress-mmapfork: add more feedback on segv faults (LP: #1614099) -- Colin King Wed, 17 Aug 2016 14:28:18 +0100 stress-ng (0.06.13-1) unstable; urgency=medium * Makefile: bump version * Makefile: add snapcraft into make dist * ignite-cpu: ensure buffer is null terminated before calling strlen * stress-affinity: only check CPU move if sched_getaffinity succeeds * Add snapcraft packaging * stress-seccomp: inject some random BPF op codes * force indirect libc calls to enforce calls to libc wide str functions * stress-str: fix incorrect order on args in call to stress funcs * stress-str: force indirect libc calls to enforce calls to libc str functions * ensure cache info is only printed once * Manual: fix typo: build -> built -- Colin King Tue, 16 Aug 2016 11:38:12 +0100 stress-ng (0.06.12-1) unstable; urgency=medium * Makefile: bump version once more * Update manual page date since we've touched the manual * stress-seal: don't abort fatally if memfd_create is not available. * fast-test-all: cater for non-fatal test exit status * Add oom-pipe to fast-test-all exclusion list * Manual: clarify that return code 3 could refer to missing system call * stress-fcntl: handle EAGAIN lock requests more robustly * stress-fcntl: don't check initial GETLK status * stress-icache: don't fail if advice fails on EINVAL -- Colin King Fri, 15 Jul 2016 15:24:56 +0100 stress-ng (0.06.11-1) unstable; urgency=medium * Makefile; bump version * fast-test-all: don't run seccomp, it may not pass on some kernels * stress-fault: handle segfaults that occur on some BSD kernels * stress-icache: only madvice if MADV_NOHUGEPAGE is defined * stress-icache: don't assume that read/write/exec protection is allowed * Update cache-mfence helper. It supports ARM now. -- Colin King Thu, 14 Jul 2016 10:11:12 +0100 stress-ng (0.06.10-1) unstable; urgency=medium * Makefile: bump version again * stress-atomic + build: the autodetect smarts did not work, fix them - need to check that the linker also provides all the atomic built-ins too. -- Colin King Tue, 12 Jul 2016 17:29:46 +0100 stress-ng (0.06.09-1) unstable; urgency=medium * Makefile: bump version * stress-atomic: don't make tmp volatile, fixes clang warnings * Add smarts to Makefile to detect if atomic GCC functions are supported - fixes FTBFS issues on mips, mipsel, powerpc, m68k, powerpcspe, sh4 -- Colin King Tue, 12 Jul 2016 10:52:18 +0100 stress-ng (0.06.08-1) unstable; urgency=medium * Makefile: bump version * Manual: update date * stress-ptrace: EINTR is not a failure on waitpid * stress-tlb-shootdown: remove case where < 2 CPUs abort the test * Add GCC atomic ops stressor * stress-copy-file-range: handle ENOSPC as non-fatal * stress-icache: call __clear_cache() between code modifications. * Enable icache stressor for arm * Add renameat2 to syscalls * Add preadv2/prwritev2 to syscalls * stress-lockbus: use GCC builtin __atomic_add_fetch to test lock bus * stress-epoll: void return on timer_settime * Manual: update contributors, add Zhiyi Sun -- Colin King Tue, 12 Jul 2016 08:26:59 +0100 stress-ng (0.06.07-1) unstable; urgency=medium * Makefile: bump version * stress-msg: add in IPC_INFO, MSG_INFO, MSG_STAT msgctl calls * stress-vecmath: add more ops to make vecmath more demanding * stress-sync-file: sync on mode rather than on the sync_modes index * stress-opcode: use __builtin___clear_cache to avoid clang warning * stress-get: fix typo on syscall name * replace mfence with __sync_synchronize builtin * stress-bigheap: remove redundant call to stress_get_pagesize -- Colin King Fri, 24 Jun 2016 09:56:23 +0100 stress-ng (0.06.06-1) unstable; urgency=medium * Makefile: bump version * stress-shm-sysv: don't msync on GNU HURD, it is not implemented * stress-shm: don't msync on GNU HURD, it is not implemented * stress-ng: build in OPT_MEMFD_BYTES case if STRESS_MEMFD defined * manual: fcntl: add in missing locking commands * stress-socket: add --sock-type socket type option * Add Linux open file description locks stressor * Add POSIX advisory locking stressor * stress-fcntl: add more locking fcntl commands * man page: add --taskset example * stress-memfd: add better termination exit points, don't fail on EXNIO * stress-memfd: add a --memfd-bytes size specifier option * perf + Makefile: Add some smarts to detect available perf enums * stress-shm: msync the shm region * stress-shm-sysv: msync the shm region * stress-memfd: add hole punching to memory * stress-mremap: add MAP_FIXED remappings * stress-memfd: add random madvise to add some more page stress * stress-memfd: add seeks to memfd stressor * stress-xattr: rename name to attrname to stop shadowing on name * Update README stress test count * Add in missing seccomp from the --help info * Add a fcntl SEAL command stressor * README: update number of tests * time_now: return -1.0 for failed time fetch * stress-get: add getcpu system call * stress-dup: only close fd's that are open -- Colin King Fri, 10 Jun 2016 12:36:33 +0100 stress-ng (0.06.05-1) unstable; urgency=medium * Makefile: bump version * stress-mmap: ensure we don't leak fd, cleanup on exit * fast-test-all: don't run exec test * stress-mremap: catch SEGV and OOM restarts * stress-mmap: catch SEGV and OOM restarts * fast-test-all: exclude pty * Revert "stress-mremap: add random MAP_FIXED option to mremap" * stress-zero: #if def around ptr declarion for non-Linux systems * stress-zero: only perform /dev/zero mmapping on Linux * stress-cacheflush: remove sys_cacheflush for non linux systems * stress-shm-sysv: SHM_INFO and IPC_INFO are linux only * stress-cache: only call cacheflush on Linux systems * stress-filename: filename option should be from the .opt field * stress-rtc: fix some overly pedantic warnings from cppcheck * stress-shm: sync, expand and shrink shm region, extra stress * stress-open: use different forms of open flag combinations * stress-zero: mmap /dev/zero and check if the contents is zero * stress-pipe: sanity check pipe size setting * stress-dup: add dup2 on same fd exerciser * stress-fcntl: add some more fcntl commands * stress-seek: add SEEK_CUR, SEEK_END seek options * stress-utime: exercise UTIME_NOW and UTIME_OMIT settings * stress-userfaultfd: add poll to add some more kernel coverage * Add stress_set_nonblock to set fd to non-blocking I/O * stress-userfaultfd: add in zeropage handling * stress-mremap: add random MAP_FIXED option to mremap * stress-readahead: remove redundant if defined() checks on fadvise * Add SIGHUP trapping and send SIGALRM to all processes on death * stress-personality: only print number of personalities in instance 0 * syscalls: update pause information * stress-cache: use cacheflush() on systems that provide this syscall * syscalls: update ioctl entry * perf: add "per" / marking for per second * Add pty stressor * Add semtimedop to syscalls, it is present in stress-sem-sysv.c * stress-cap: add capset call for current stressor process * stress-shm-sysv: add some additional exercising of shmctl commands * stress-sem-sysv: exercise more of the semctl commands * Add trivial chown stressor * stress-dup: use dup3() on linux if it is available * Makefile: vecmath: make the file touch silent * stress-key: add request_key system call * syscalls: update pipe2 entry, this is now being exercised by stress-pipe * stress-mq: memset sigev to zero * stress-madvise: only build in if STRESS_MADVISE defined * Add madvise stressor * syscalls: add mq_timedsend to mq * stress-mq: use timed and non-timed versions of send/receive * stress-mq: add mq_notify calls every 1024 iterations * stress-link: lstat the link * Widen metrics dump stressor name field to 13 chars -- Colin King Fri, 27 May 2016 11:37:09 +0100 stress-ng (0.06.04-1) unstable; urgency=medium * Makefile: bump version * Makefile: remove gcc coverage build flags - these were accidentally added in the previous release and not removed -- Colin King Wed, 18 May 2016 19:16:45 +0100 stress-ng (0.06.03-1) unstable; urgency=medium * Makefile: bump version * stress-cap: cap data needs _LINUX_CAPABILITY_U32S_3 elements in size * stress-nice: add some randomness to the delay to unsync nicenesses * stress-opcode: remove white spaces -- Colin King Wed, 18 May 2016 15:06:34 +0100 stress-ng (0.06.02-1) unstable; urgency=medium * Makefile: bump version * Makefile + stress-vecmath: add more smarts to detect gcc build failures * stress-af-alg: don't fatally fail on bind on AF_ALG * stress-af-alg: fix up error messages * Add stackmmap stressor * stress-stack: ensure signal handling stack is aligned * stress-context: ensure stack is aligned to 64 byte boundaries * stress-opcode: disable signal count tracking * stress-opcode: clean up code a little * Add opcode stressor * update syscalls.txt * stress-ioprio: perform some io writes to exercise i/o priorities * Add ioprio stressor -- Colin King Sun, 15 May 2016 17:36:11 +0100 stress-ng (0.06.01-1) unstable; urgency=medium * Makefile: bump version * stress-af-alg: avoid any unterminated strings (unlikely) * debian/control: add libcap-dev to Build-Depends * stress-hdd: should use SIZEOF_ARRAY instead of sizeof * stress-full: don't close fd before trying a read * stress-af-alg: ensure the rng read size is correct * stress-af-alg: fix more -ve fd closes * stress-af-alg: don't close fd that is -ve * stress-tlb-shootdown: fix incorrect comparison on ENOMEM * stress-af-alg: check for errors on setsockopt * stress-full: try read test rather than skip if write fails * stress-full: clear buffer before we write -- Colin King Fri, 6 May 2016 22:58:01 +0100 stress-ng (0.06.00-1) unstable; urgency=medium * Makefile: new major version and codename * stress-msync: cast off_t to intmax_t to print with %jd format specifier * debian/control: update Standards Version to 3.9.8 * manual: update date * stress-msync: add in conditional STRESS_MSYNC build check * stress-af-alg: add simple rng to the mix * stress-af-alg: remove redundant type field info * manual: rephrase the --seq description * manual: clean up the SEE ALSO section * Add TLB shootdown stressor * stress-af-alg: remove (void)name * Add /dev/full stressor * stress-urandom: where possible also read data from /dev/random * Manual: update af-alg skciper section. * stress-hdd: work through all the --hdd-opts if --maximize is enabled * stress-xattr: fix error messages, they were reporting wrong syscall * stress-af-alg: use array size so we don't need NULL sentinels * stress-af-alg: Add skcipher stessing * stress-procfs: add /proc/tty, /proc/self, /proc/thread_self * stress-key: Add some more keyctl calls * Rename stressor names to match their command line name * Add msync stressor * Fix non-Linux build for set_cpu_affinity * stress-rtc: also read /proc/driver/rtc * Add RTC stressor * stress-get: use prlimit only with glibc >= 2.13.0 * stress-procfs: add more /proc directory traversal * stress-inotify: add ioctl FIONREAD to peek at available data on fd * Add the CPU affinity option '--taskset' * stress-cache: make pinned a linux only variable * stress-cache: fix pinned message, swap cpu and instance around * stress-cache: fix failure to build on GNU/HURD * Update contributions authors in manual * Ensure processes are kept to the CPU affinity set * taskset -c 4-7 stress-ng --cache 4 --stream 4 --yield 4 * Update README with other OS build notes * stress-spawn: make this a Linux only test * Disable MLOCKED sections for now on SunOS, we get linker issues * stress-ng: correct casts of void * * stress-ng: include alloca.h for SunOS * stress-ng: cater for systems that don't support RLIMIT_NPROC * mincore: cater for SunOS mincore API difference * stress-yield: correct casts of void * * stress-yield: include alloca.h for SunOS * stress-vm: correct casts of void * * stress-stream: correct casts of void * * stress-str: include strings.h for SunOS builds for index() prototype * stress-stack: include alloca.h for SunOS * stress-sigsuspend: correct casts of void * and uint64_t * * stress-mmapmany: correct casts of void * and uint8_t * * stress-mmap: correct casts of void * and uint8_t * * Fix alignment mask to ensure stacks are 16 byte aligned (LP: #1573117) * stress-mlock: correct casts of void * and uint8_t * * stress-icache: cast addr to (void *) in mprotect calls * mounts: SunOS requires *BSD style build arrangements * stress-hdd: cast data to (void *) to silence warning * stress-hdd: don't use futimes for Solaris UNIX * Add logging to syslog of free memory info post-OOM * Add system and memory syslog logging * stress-brk: catch EAGAIN errors on sbrk/brk * Remove debug log test message * stress-socket-fd: only build stressor if STRESS_SOCK_FD defined * Add logging of who and how stress-ng was invoked to syslog -- Colin King Wed, 4 May 2016 09:57:59 +0100 stress-ng (0.05.25-1) unstable; urgency=medium * Makefile: bump version * debian/control: update standards version to 3.9.7 * Ensure all clone() calls are 16 byte aligned for aarch64 (LP: #1573117) -- Colin King Fri, 22 Apr 2016 09:50:44 +0100 stress-ng (0.05.24-1) unstable; urgency=medium * Makefile: bump version * stress-mmap: handle SIGBUS signals (LP: #1569468) * stress-mmapmany: sanity check sysconf return * stress-mmapmany: detect SEGV deaths * stress-mlock: detect SEGV deaths * stress-brk: detect SEGV deaths * stress-bigheap: detect SEGV deaths * stress-memfd: detect SEGV deaths * stress-mmapmany: allocate mappings on heap rather than stack * stress-mlock: allocate mappings on heap rather than stack * stress-cpu: move sieve buffer to static to reduce stack size * stress-sem*: differentiate between which semaphore init that failed * stress-remap-file-pages: abort if remap fails * stress-fiemap: remove \n from pr_fail_err messages -- Colin King Thu, 14 Apr 2016 11:00:11 +0100 stress-ng (0.05.23-1) unstable; urgency=medium * Makefile: bump version * stress-aio: fix segfault on --maximumize option (LP: #1568335) * stress-chmod: just instance 0 should create the file (LP: #1568333) -- Colin King Sat, 9 Apr 2016 17:48:23 +0100 stress-ng (0.05.22-1) unstable; urgency=medium * Makefile: bump version * stress-af-alg: retry open if we get EAFNOSUPPORT (LP: #1564786) -- Colin King Fri, 1 Apr 2016 09:40:56 +0100 stress-ng (0.05.21-1) unstable; urgency=medium * Makefile: bump version * Add test-cap.c to Makefile dist rule * debian: tests: don't run remap stressor * stress-ng: add klog (syslog) stressor * syscalls: add remap_file_pages * Add page remapping stressor * stress-pthread: Add get_robust_list call * stress-sysinfo: exercise fstatfs() * Move wcs options to correct position in manual * Add the sync-file stressor * Add fp-error stressor * syscalls.txt: update some missing syscalls and some re-ordering * Add sys/capability.h and capget build time checks * stress-get: add prlimit * Update syscalls.txt with capget stressor * Add capabilities stressor -- Colin King Sun, 20 Mar 2016 11:39:31 +0000 stress-ng (0.05.20-1) unstable; urgency=medium * Makefile: bump version * stress-getdent: fix build warnings on systems with no getdents syscalls * Manual: update date * Debian/changelog: fix spelling mistake * stress-udp: fix two warnings on uninitialised addr * stress-socket-fd: fix two scan-build warnings * stress-getdent: init ret to -ENOSYS, fix scan-build warning * Use the generic signal handler helpers * helper: add generic signal handling/restoring helper functions * stress-oom-pipe: use stress_get_file_limit * stress-open: use stress_get_file_limit * stress-dup: use stress_get_file_limit * stress-socket-fd: use stress_get_file_limit * helper: add stress_get_file_limit to get max open files allowed * Add sockfd stressor * Add getdent stressor * stress-filename: use strncpy rather than strcpy * stress-qsort: use calloc * stress-cpu: zeta method should be counting in integers * stress-mergesort: use calloc * stress-heapsort: use calloc * stress-bsearch: use calloc -- Colin King Sat, 12 Mar 2016 17:58:42 +0000 stress-ng (0.05.19-1) unstable; urgency=medium * Makefile: bump version * stress-switch: don't initialize buf_size twice * stress-ng: don't stress-sleep options unless STRESS_SLEEP defined * stress-shm-sysv: comparing j < i - 1 is incorrect when i = 0 * stress-shm-sysv: parent should close read end of pipe * stress-context: make stacks larger, avoid segfault on kFreeBSD * stress-oom-pipe: handle condition where pipe size can't be set * stress-pipe: use O_DIRECT when possible * stress-switch: use O_DIRECT with 1 byte buffer is possible * stress-oom-pipe: ensure sz is set before we check it against prev_sz * Add stress-oom-pipe pipe buffer stressor * helper: fix comment on system_read() * stress-fallocate: add in default mode 0 * stress-iosync: fix build warning when using old glibc: * stress-fstat: add blocklist of paths not to open/fstat/close * correctly spell stress_adjust_pthread_max * stress-str: make some statics into static const * stress-socket: make socket_opts static const * stress-maxtrix: make some statics static const * stress-vm: make some statics static const * stress-wcstr: make variables static const * stress-get: make priorities static const * stress-filename: make filename_opts static const * stress-dentry: make dentry_removals static const * stress-cpu: make some variables static const * stress-clone: make flags and unshare flags static const * stress-chmod: make modes static const * perf: make perf_tp_info static const * cache: make struct generic_map const * helper: make stress_temp_path static const * stress-udp-flood: make data static const * stress-spawn: make exec strings static * Only define OPT_PTHREAD* macros if STRESS_PHREAD is defined * Minor #define changes, no functional change * stress-cpu: remove redundant initialisation of last_e * stress-cpu: don't build _Decimal stressors with clang * stress-shm-sysv: set entire shm_ids array to -1 * stress-fork: make child exit immediately and stash pid only in parent * stress-xattr: free buffer on error exit path * stress-timerfd: fix timer thresholding check * Add sleep stressor * stress-clock: add some comments and make source 80 column friendly * bigheap: reorder some variables on the stack for better packing * Add whitespace in return statement * thermal-zone: minor clean up * net: make loop iterator size_t * cache: minor code tweaks, no functional changes * cache: rework get_contents error return paths * cache: reformat function declarations to match the stress-ng code style * clean up and rename macro mk_path to MK_PATH * Ensure we do not under run string buffer * Add apparmor_parser executable check * time: make source 80 column friendly * thermal-zone: make source 80 column friendly * sched: make source 80 column friendly * perf: make source 80 column friendly * mlock: make source 80 column friendly * limit.c: remove redundant #includes * io-priority: make source 80 column friendly * ignite-cpu: make source 80 column friendly * Include stress-ng.h first for __kernel_long_t and __kernel_ulong_t -- Colin King Thu, 3 Mar 2016 17:20:01 +0000 stress-ng (0.05.18-1) unstable; urgency=medium * Makefile: bump version * stress-eventfd: fix incorrect return check on eventfd (LP: #1547450) * stress-mknod: fix == comparison on errno (LP: #1547446) * stress-tee: catch EINTR in splice() calls (LP: #1547434) -- Colin King Fri, 19 Feb 2016 12:40:24 +0000 stress-ng (0.05.17-1) unstable; urgency=medium * Makefile: bump version * stress-aio: don't cancel the signal handler before exiting (LP: #1547108) * stress-lockf: don't return failure if we get a timeout (LP: #154107) * stress-aio: don't return failure if we get a timeout (LP: #1547090) * Check for ENOMEM ENOSPC errors during init (LP: #1547062) * make stress_temp_dir_mk and stress_temp_dir_rm return -errno on failure * stress-dentry: fix file striding on clean-up (LP: #1547004) * Add stress_get_prime64 to stress-ng header * Add stress_get_prime64 to find a prime for filename striding * typedef possibly missing __kernel_long_t and __kernel_ulong_t * Add for linux builds * stress-aio-linux: fix clang scan-build warning * Makefile: only do build time config detection when building target -- Colin King Thu, 18 Feb 2016 17:52:11 +0000 stress-ng (0.05.16-1) unstable; urgency=medium * Makefile: bump version * Makefile: add test-libaio.c to dist rule * stress-seccomp: EINTR on waitpid is not a failure, so ignore it * stress-numa: aborted test should not be a failure, nothing got tested * stress-quota: check for EPERM, abort if we don't have permission * stress-kcmp: check for EPERM, abort if we don't have permission * debian/control: add libaio-dev dependency * stress-aio: use aiolib instead of direct system calls * Catch faults in child stressor and flag them as a fatal failure * stress-socket: only build in sendmmsg test for glibc 2.14 or higher * stress-iosync: build in syncfs call for glibc 2.14 or higher * Add detection for * stress-handle: only build in if we have glibc 2.14 or higher * ignite-cpu: don't print failure message as inf, make it dbg * stress-malloc: calloc'd size is too big, fix the size (LP: #1544575) * mincore: page align address of buffer before passing it to mincore -- Colin King Fri, 12 Feb 2016 19:02:59 +0000 stress-ng (0.05.15-1) unstable; urgency=medium * Makefile: bump version * fast-test-all: add pass/fail summary at end * fast-test-all: fix typo, socket-pair should be sockpair * stress-handle: specify width of integer in sscanf * Manual: expand the error exit code notes * stress-qsort: cast data to (uint8_t *) to stop static analysis warnings * stress-hdd: close file on a fstat failure * stress-futex: add backoff delay if futex is too much in contention * stress-sendfile: ignore EINTR on sendfile calls * stress-readahead: handle -ENOSPC as a non-failure condition * stress-vm-rw: re-organise the code into parent/child helpers * stress-userfaultfd: set stack size to be STACK_SIZE * stress-hdd: handle -ENOSPC as a non-failure condition * adt: remove socket-pair from tests * cache helper: output cache allocation size * stress-cpu-online: only report root requirement on instance 0 * stress-cpu-online: Don't report a failure if not run as root * Add L before cache level to make the debug less abstract * stress-denty: ENOSPC should not be a fatal error that stops the test * Fix -x option, compare munged strings to treat '_' like '-' * Ensure pathological class is disabled if we don't enable --pathological * stress-zlib: fix comparison which should not be an assignment * helper: fix double free on error exit -- Colin King Wed, 10 Feb 2016 10:35:16 +0000 stress-ng (0.05.14-1) unstable; urgency=medium * Makefile: bump version * Fix make dist - typo in test-libpthread.c * stress-fiemap: initialise counter at start of loop * stress-fiemap: ensure counter is being updated * adt: exclude bind mount from list of stressors * Don't emit warning on --pathological if number of stressors is zero * ignite-cpu: add null entry at end of list, don't scan by array size * Only include for linux for the bind mount stressor * stress-bind-mount: build stressor if STRESS_BIND_MOUNT defined * stress-bind-mount: stop cppcheck whining about uninitialised pid * stress-numa: don't fatally fail on -EIO with MPOL_MF_STRICT (LP: #1542741) * Enabled IGNITE_CPU with the --aggressive option * Add bind-mount stressor (LP: #1542010) * Add --ignite-cpu option to maximize CPU frequency * Make float decimal auto detect set -DHAVE_FLOAT_DECIMAL * Minor re-org of Makefile, and add more files to dist rule * Update README - increase number of stressors * adt tests: remove membarrier, it fails on older kernels in Debian * Add some more comments * stress-affinity: handle EINVAL when CPU(s) are offline * Set number of instances to on-line CPUs if N is -ve (LP: #1513546) * Remove opt_long, replace with get_int32 or get_uint64 * Add libpthread build time checks * Add librt build time checks * Remove commented out old link line * Add libcrypt check * Makefile: remove test-libz correctly * stress-cpu: make source 80 column friendly * Add FORCE_DO_NOTHING macro do force compiler to stop opimizing out loops * Add zlib stressor * stress-stream: cater for systems without L3 cache * stress-stream: only emit cache size info on instance 0 * Add libbsd-dev to README -- Colin King Mon, 8 Feb 2016 18:29:11 +0000 stress-ng (0.05.13-1) unstable; urgency=medium * Makefile bump version * Makefile: add test-libbsd.c to dist rule * adt: Bar a few more tests that can be problematic on different arches * stress-fifo: don't return and error status if we have to abort early * Exclude tests that may fail because system calls not fully implemented * Build stress-mergesort if STRESS_MERGESORT is defined * Built stress-heapsort if STRESS_HEAPSORT is defined * Make *put globals volatile to force gcc to compute values * Add BSD mergesort stressor * Add BSD heapsort stressor * madvise: add MADV_FREE * stress-vm-rw: don't close already closed pipe ends * stress-vm: just one top level iteration in rowhammer method * Use MAP_SHARED where appropriate * stress-qsort: fix typo in comment SIGARLM -> SIGALRM * Makefile: call make using $(MAKE) * stress-apparmor: reduce scope of ret * stress-shm: reduce the scope of variable n * stress-shm-sysc: reduce scope of variable n -- Colin King Thu, 4 Feb 2016 16:02:00 +0000 stress-ng (0.05.12-1) unstable; urgency=medium * Makefile: bump version * cache: memset globbuf, work around clang warnings * stress-cpu-online: free cpu_online on error return * fast-test-all: use the -v verbose flag * fast-test-all: Don't yet test copy-file * stress-copy-file: only build if syscall is supported * Change type of error messages in cache helper * cache: use %zd format specifier for size_t * cache: make source 80 column friendly * fast-test-all: return with error exit status * Tweak man page exit status table * Exit with status 2 if a stressor failured * Change mini help text to make it consistent * Add cpu-online to mini help * stress-cache: cater for non-powers of 2 cache size * Remove hard #undef __linux__ used during debugging * Re-work shared cache buffer allocation * stress-memcpy: fix segfault due to changes in allocation of cache buffer * Add kcmp to exclude list on adt test * Add cpu-online to exclude list on adt test * Make some helpers return int32_t rather than long * Add WARN_UNUSED macro and use it against functions that need return checks * Add CPU online stressor * Fix indentation issue after --hdd -- Colin King Thu, 28 Jan 2016 12:30:47 +0000 stress-ng (0.05.11-1) unstable; urgency=medium * Makefile: bump version * stress-stream: make L3 a uint64_t * stress-clock: fix build warning on non-Linux systems * stress-stream: fix FTBFS on non-Linux systems -- Colin King Tue, 26 Jan 2016 20:50:11 +0000 stress-ng (0.05.10-1) unstable; urgency=medium * Makefile: bump version * stress-stream: use new cache probing api * Add James Hunt to contributors in man page * cache: constify a few args and (void) fclose returns * Makefile: re-order cache.c in source list * stress-cache: make source 80 col friendly, use name instead of __func__ * Removed bogus check. * Reduce cache level to maximum available if specified too high. * New function to check max cache level. Also, reduced variable scope. * Merge branch 'master' into cache-handling * Rather than failing, display a message and fall back to defaults. * Reduce variable scope and remove redundant assignment. * stress-copy-file: off_t should be loff_t * Remove debug forced enabled of stress-file-copy * Merge branch 'master' into cache-handling * Add --cache-level=, --cache-ways=, and --cache-no-affinity to man page. * Add linux guard for cpu cache function prototypes. * Handle systems not providing cache details via sysfs * Dispense with cache.h. * get_contents(): Fixed resource leak. * Add --copy-file copy_file_range() stress test * Fix spelling mistake of "bandwidth" * Fix spelling mistake of "weird" in comment * man page: Fix formatting on vm stressor method table * Fixes for building on non-Linux platforms. * Add Linux support to specify cache type and size. * Fix column width of vm-method options * Fix column width of stream option description -- Colin King Tue, 26 Jan 2016 16:44:00 +0000 stress-ng (0.05.09-1) unstable; urgency=medium * Makefile: bump version * Fix incorrect position of \ in man page * stress-udp: fix UDP-Lite enable options * stress-af-alg: don't build for non-Linux systems * stress-udp: add error checking to setsockopt calls * Add auto detection of xattr.h to avoid build failures * Add auto detection of keyutils.h to avoid build failures * stress-numa: prefix abort message with stressor name * stress-udp: in UDP-Lite mode, limit checksum to 8 byte UDP header * Fix formatting of --hdd-opts in man page * Add --seek-punch option to punch holes in seek file * Add UDP-Lite option --udp-lite * Align bitfields in flags * stress-socketpair: handle ENFILE errors more gracefully * stress-filename: only emit filename information on instance 0 * Add fiemap stressor * stress-stream: kludge around a false positive from static analysis * Add --stream-l3-size option to specify stream L3 CPU cache size * stress-unshare: don't complain on -EINVAL * stress-stream: remove extraneous space between cache size and K * Use RESTRICT macro as an alias for __restict * Add stream memory bandwidth and computation stressor * Add 8 more bits to OPT_FLAGS * stress-aio: remove unused typedef * refactor random string filling using stress_strnrnd() * Add AF_ALG socket domain (hash) tester * Add more tracing perf events to --perf output -- Colin King Mon, 18 Jan 2016 11:07:02 +0000 stress-ng (0.05.08-1) unstable; urgency=medium * Makefile: bump version * Remove stress-leak.c, it was accidentally added * Update man page date * Debian control: Use dh_apparmor * Fix incorrectly placed #endif around TSEARCH * stress-iosync: (void)name if not building for Linux * stress-mlock: remove debug message * Add in options to *search stressors in mini built-in help * Add TSC read stressor * Remove some redundant (void)var statements * stress-get: rename gettid to sys_gettid to avoid name clash * Move uint64_put and double_put from helper.c to stress-ng.h * Rename macros STRESS_{MIN|MAX} -> STRESS_{MINIMUM|MAXIMUM} * Update debian copyright to 2016 * Update copyright year to 2016 * stress-iosync: don't close -ve fd -- Colin King Wed, 6 Jan 2016 15:22:12 +0000 stress-ng (0.05.07-1) unstable; urgency=medium * Makefile: bump version * stress-yield: include signal.h to build on FreeBSD * Exclude stressors that cannot be run * stress-matrix: add copy and mean methods * stress-yield: ensure at least 2 child processes per CPU * Update syscalls.txt with syncfs * stress-key: remove if def'd debug code * stress-iosync: add syncfs() for Linux only * Add --sock-nodelay option to disable the Nagle algorithm * stress-socket: split out client/server code into separate functions * stress-exec: remove (void)name; * stress-dentry: add 'random' ordering option * stress-affinity: set initial cpu to instance number * stress-clock: output name of clock timer id on error * Add --temp-path option * Debian/control: change priority because of apparmor dependency * Add apparmor to excluded adt tests * Add sendmsg and sendmmsg to syscalls.txt * Add --sock-opts option -- Colin King Sat, 26 Dec 2015 17:34:00 +0000 stress-ng (0.05.06-1) unstable; urgency=medium * Makefile: bump version * Makefile + stress-apparmor: generate binary data using od and sed -- Colin King Thu, 24 Dec 2015 00:10:00 +0000 stress-ng (0.05.05-1) unstable; urgency=medium * Makefile: bump version * Makefile: --no-print-directory is required when make calls itself * Add apparmor as a build dependency * Makefile: Add test-apparmor.c usr.bin.pulseaudio.eg to make dist dist * stress-seccomp: stop build warnings on systems without seccomp * Ensure test-appormor build test covers the aa API * Remove mwc_seed from mwc.c * Add load average stats to --times option * inline mwc_seed, faster and shrinks text size a bit * stress-apparmor: perform some more devious corruption actions * Debian: control: dependency should be libapparmor-dev * stress-spawn: move spawn_calls to correct accounting stats * Add a posix-spawn stressor * Add unshare stressor * stress-shm-sysv: ensure all shm_ids are initialised to -1 * Update Makefile to autogenerate AppArmor binary blob * stress-apparmor: add some random bit corruption * stress-apparmor: add profile add/replace/remove stressing * Debian: control: add libapparmor1 dependency * stress-apparmor: #if def global vars * README: Add note about requiring GNU make * Add initial simple AppArmor test, more features later -- Colin King Wed, 23 Dec 2015 13:58:00 +0000 stress-ng (0.05.04-1) unstable; urgency=medium * Makefile: bump version * stress-userfaultfd: fix 32 bit build warning * stress-shm: replace strides of 4096 with page size * stress-shm-sysv: replace strides of 4096 with page size * stress-mremap: replace strides of 4096 with page size * stress-mmap: replace strides of 4096 with page size * stress-bigheap: make stride the page size * parse-opts: ensure_positive: don't reassign ptr twice * stress-daemon: close dup'd fds on exit * Add daemon stressor * Move set_proc_name into helper, remove proc-name.c * helper: make timer slack also depend on __linux__ * stress_mlock_region: constify args * stress_get_stack_direction: constify arg * Remove coredump, merge functionality into helper * Update README * syscalls: add mlock2 * stress-mlock: add support for mlock2 * stress-aio: clear io_reqs before use and disable handler later * stress-rename: rename between directories -- Colin King Mon, 14 Dec 2015 16:10:00 +0000 stress-ng (0.05.03-1) unstable; urgency=medium * Makefile: bump version * stress-seccomp: avoid build failures on arm64 targets -- Colin King Sat, 5 Dec 2015 10:04:23 +0000 stress-ng (0.05.02-1) unstable; urgency=medium * Makefile: bump version * stress-get: define _DEFAULT_SOURCE to stop gcc 5.2.1 warnings * Add new seccomp stressor * stress-mmap: fix thinko, init no_mem_retires in correct place * stress-shm-sysv: add more allocation smarts * stress-shm-sysv: add mmap failure abort and OOM counting * stress-shm: add mmap failure abort and OOM counting * stress-seek: set a usable upper seek limit for 32 bit arches * stress-mmap: add mmap retry mechanism if we can't mmap memory * stress-memfd: trap SIGBUS as well as SIGKILL for OOM catching * stress-vm: add spacing on OOM restarts message * stress-malloc: add spacing on OOM restarts message * stress-memfd: add spacing on OOM restarts message * stress-vm: add mmap retry mechanism if we can't mmap memory * refactor stack direction checking function * stress-personality: fix warning on %lu being used on a size_t * stress-ptrace: re-enable this stressor and fix up pr_failed_* macro * Enable personality stressor -- Colin King Fri, 4 Dec 2015 12:49:02 +0000 stress-ng (0.05.01-1) unstable; urgency=medium * Makefile: bump version * stress-shm: break out of loops when ok is false * stress-fcntl: make F_SETOWN and F_GETOWN linux only for now * helper: fix warning on FreeBSD, unused args caused warnings * stress-switch: force more context switches * stress-pipe: add pipe-data-size and pipe-size options * stress-seek: only report error if SEEK_DATA/SEEK_HOLE supported * stress-seek: add SEEK_DATA and SEEK_HOLE seeks * syscalls.txt: add new userfaultfd syscall * Manual: note that userfaultfd is only for Linux * Add new userfaultfd stressor * stress-membarrier: rename pr_failed_err -> pr_fail_err * stress-cpu: force more jmps in cpu-jmp method * stress-brk: add occasional brk shrink to add a bit more variety * stress-shm-sysv: use some more random shm flags * stress-mmap: use some more random mmap flags * stress-fallocate: add some more fallocate modes * Rename pr_failed_* macros to pr_fail * log: rename logging functions * log: don't be silent when we have failure messages * stress-filename: Add more error handling feedback * Update debian/rules: enable debian build flags * Fix buffer not null terminated error with strncpy * Add filename stressor * Add --timer-slack option to adjust timer slackness * disable core dump via prctl() to avoid massive core files * Signal to child processes if parent has died. * log: make variables static -- Colin King Mon, 30 Nov 2015 10:55:00 +0000 stress-ng (0.05.00-1) unstable; urgency=medium * Makefile: bump version to 0.05.00, update codename * man page: fix wrapped line so 'lsearch' is not seen as a macro * shm stressors: make final write failures a debug message * shm stressors: exit child stressor if pipe write fails * Add POSIX shared memory stressor * stress-qsort: fix resource leak on error return path * man page: make it 80 column tty friendly * stress-qsort: bail out when SIGALRM triggers * stress-rlimit: disable handlers once we finish to avoid setjmp looping * log: remove debug cruft * Add --log-file logging option * stress-sem*: remove ; after while loop * stress-icache: force cache clear using __clear_cache * Make source more 80 column friendly * manual: clarify number of cpus * madvise: fix typo * stress-shm-sysv: make shm cleanup robust * stress-ng: remove setpgrp() calls * stress-sem-sysv: handle signal during setup phase correctly * stress-sem: handle signal during setup phase correctly * fix -k option: it does not require a parameter * stress-procfs: use non-blocking open -- Colin King Wed, 18 Nov 2015 23:05:00 +0600 stress-ng (0.04.21-1) unstable; urgency=medium * Makefile: bump version * Fix man page --handle options, errors found by lintian * Makefile: add personality.c to dist rule * Add dep8 tests * Add membarrier to syscalls.txt * Fix spelling mistake in membarrier error message * Add membarrier stressor * stress-sysfs: make sysfs reader more stressful * stress-procfs: make proc fs reader more stressful * Makefile: remove -g option * Add new lockbus cache line stressor * stress-get: add adjtime() call * Add utimes(2) call to stress-utime * stress-mq: also exercise mq_timedreceive * stress-key: don't abort on EDQUOT for a KEYCTL_UPDATE * Update syscalls.txt * Manual: update contributor list * stress-cpu: check complex supported by C lib (LP: #1500349) * Add handle stressor * stress-socket: add nagle disable build option * Move ionice options in manual to general settings section * Move --syslog option in manual to general settings section * Add stress-personality personality() stressor * Add mknod stressor * Add stress-exec execve stressor * stress-sysfs: add access() check on file -- Colin King Mon, 2 Nov 2015 17:03:00 +0600 stress-ng (0.04.20-1) unstable; urgency=medium * Makefile: bump version * cater for system V and BSD variants of setpgrp * stress-fifo: avoid blocking on reader to avoid deadlock (LP: #1497268) * stress-readahead: give feedback on premature exit * stress-aio: no need to free io_reqs, its now on the stack * Put all child processes under the parents process group ID (LP: #1497236) * Remove SIGUSR1 and SIGUSR2 trapping, we don't need to trap these * stress-fifo: check for run flag in child loop * stress-eventfd: check for run flag in child loop * stress-epoll: check for run flag on recv loop * stress-mq: check for run flag in child loop * stress-msg: check for run flag in child loop * stress-pipe: check for run flag in child loop * stress-sigfd: check for run flag in child loop * stress-socket: check for run flag in child loop * stress-switch: check for run flag in child loop * stress-tee: check for run flag in child loop * stress-vm-rw: check for run flag in child loop * stress-sigq: check for run flag in child loop * stress-kcmp: check for run flag in child loop * stress_sigsuspend: check for run flag in child loop * stress-socket-pair: check for run flag rather in child loop * stress-pipe: bail out on zero byte pipe reads (LP: #1496966) * stress-futex: bail out after 0.5 seconds of failed waits (LP: #1496963) * stress-clone: remove CLONE_VM unsharing (LP: #1496957) * stress-sigsuspend: remove spinlock to remove contention (LP: #1496439) * Put stack in per clone struct, reduce stack size * stress-aio: cancel signal handler at end of test (LP: #1496340) -- Colin King Fri, 18 Sep 2015 15:38:00 +0100 stress-ng (0.04.19-1) unstable; urgency=medium * Makefile: bump version * stress-cpu: data and idct should be floats for idct (LP: #1495882) * stress-cpu: use hex initialisers for G constants instead of binary * stress-numa: fix out of bounds memory read on ARM64 (LP: #1495761) -- Colin King Tue, 15 Sep 2015 10:43:11 +0100 stress-ng (0.04.18-1) unstable; urgency=medium * Makefile: bump version * Fix singular/plural of "stressors spawned" message (LP: #1494797) * stress-ureadahead: provide feed back when timeout occurs (LP: #1494784) * stress-timer, itimer: fix termination hangs (LP: #1494751) -- Colin King Fri, 11 Sep 2015 16:24:42 +0100 stress-ng (0.04.17-1) unstable; urgency=medium * Makefile: bump version * stress-fstat: open devices with O_NONBLOCK (LP: #1493717) * stress-epoll: ensure addr is initialised to NULL * stress-vm: Add sanity check for rowhammer sizes * stress-timer: fix incorrect setting of timer * stress-itimer: fix incorrect setting of timer * stress-shm-sysv: remove dead initialisation of sz * stress-hsearch: remove dead initialisation of max * thermal-zone: remove dead initialisation * stress-epoll: remove redundant retries assignment * stress-socket: remove redundant retries assignment -- Colin King Wed, 9 Sep 2015 09:08:00 +0100 stress-ng (0.04.16-1) unstable; urgency=medium * Makefile: bump version * Don't build in stress-clone features if clone() not available * stress-clone: add unshare call * stress-get: add timex info get * Update syscalls.txt with clone * Add clone stressor * Add the 8-queens solver to the CPU stressor * stress-key: add build checks on KEYCTL_* features -- Colin King Mon, 7 Sep 2015 10:03:00 +0100 stress-ng (0.04.15-1) unstable; urgency=medium * Makefile: bump version * Fix --vm-keep, it should be setting opt_flags * Update man page contributions -- Colin King Mon, 17 Aug 2015 08:41:00 -0700 stress-ng (0.04.14-1) unstable; urgency=medium * Makefile: bump version * Debian: control: don't depend on libkeyutils-dev for some arches * Don't parse NULL exclude list -- Colin King Thu, 30 Jul 2015 12:48:00 +0100 stress-ng (0.04.13-1) unstable; urgency=medium * Makefile: bump version, change code name * Move exclude parsing after we have parsed all the stressor options * stress-ng: fix unitialised n, found by clang * stress-key: handle clean up when we bail out early * stress-stack should not be part of the CPU stress class * Add the -x, --exclude test exclusion option * Add libkeyutils-dev to debian control * Update syscalls list * Add key stressor (keyctl, add_key) * stress-kcmp: bail out early after 5 kcmp test failures per instance * Remove some trailing white spaces from lines * stress-vm: replace logic with simplified version * stress-vm: parenthesis around macro definition * stress-rdrand: add more useful debug stats * Add instruction cache stressor * helper: fix spelling mistake * Manual: fix a few spelling mistakes * stress-str: make index a register size_t type * stress-wdstr: make index a register size_t type * stress-wait: tidy up formatting of function args * stress-mmapmany: use STRESS_MAX macro * stress-mmapfork: minor variable cleanup * stress-inotify: make mk_filename static * stress-matrix: replace #defined MATRIX_TYPE with typedef * coredump: make string static * mounts: make mount_add static, clean up code a bit * Put MIN/MAX macros into stress-ng.h * Small amount of white space empty line clean up * Unify SET/GET/CLR macros * stress-futex: move futex info into futex struct * stress-sem-sysv: move sem sysv info into sem_sysv struct * stress-sem-posix: move sem and init into sem_posix struct * stress-xattr: add flistxattr calls * Minor change to error message * Fix typo in man page, exerised -> exercised * stress-mq: use correct stressor name in dbg messages * stress-mq: add occasional use of mq_getattr() * Only call perf_* if --perf is actually being used * yaml: times and system-info are not arrays, but lists * Add perf tracepoint events * coredump: pid_t should be %u rather than %d, pids are not -ve * stress-mlock: avoid using void * ptr arithmetic * helper: fix signum comparisons, use && instead of || * stress-cache: don't keep fetching number of cpus available * stress-affinity: don't keep fetching number of cpus available * Make u_time, s_time, t_time, u_pc, s_pc, t_pc doubles * thermal-zone: cast to double rather than float * stress-cpu: ensure we don't get double promotion issues * minor adjustment to whitespace/tab indentation * perf: fix spelling mistake: Aligment -> Alignment * stress-cpu: add C union bit field stressor * Really ensure we don't report perf counters if they are not available * stress-sigfd.c: Fix compile warning * stress-sigfd: user SIGRTMIN instead of SIGUSR1 * coredump: remove redundant code * stress-mlock: clarify cast to void, ensure we are not doing void * math * stress-socketpair: reduce the scope of variable ret * stress-rlimit: reduce scope of variable ret * stress-fcntl: put each fcntl cmd into its own block * stress-brk: reduce scope of ptr * stress-cpu: reduce scope of loop variable * Add more system info to yaml output to help with test result gathering * stress-getrandom: cater for builds without the syscall defined * stress-aio-linux: clean up syscalls * Clean up memfd syscall wrapper * perf: call perf_event_open via a wrapper rather than direct syscall * stress-getrandom: rename __getrandom to sys_getrandom * stress-kcmp: break out early if we get multiple ENOSYS errors * Fix spelling mistake 1Mhz -> 1 MHz * README: fix spelling mistake * stress-kill: fix typo in comment * Remove 64 byte alignment on shared region, it does not save much * Tidy main vars up, add more comments, make ticks_per_sec int32_t * Add STRESS_ASSERT macro to catch incorrect stressor array size * Make quota block devices message a little clearer and fix typo * Use %s instead of %d in stress-malloc signum printing * Forgot to include signal.h in helper to get NSIG define * Print signal death number as human readable string * Warn user if cwd is not read-writeable * Show process name when a stressor process exits with an error * Fix typo "quotctl" -> "quotactl" in man page -- Colin King Wed, 29 Jul 2015 17:10:10 +0100 stress-ng (0.04.12-1) unstable; urgency=medium * Makefile: bump version * Fix segfault in metrics because MMAPFORK macro not defined correctly * Add --cpu-load-slice option for CPU stressor time slice tweaks * Minor re-organising of main globals and make ints into int32_t * stress-ng.h: extern some misc funcs * stress-pthread: make stress_pthread_func static * stress-lockf: make lock helpers static * stress-epoll: mlock handle_socket_sigalarm * stress-context: make stress_context_init static -- Colin King Wed, 15 Jul 2015 00:44:00 +0100 stress-ng (0.04.11-1) unstable; urgency=medium * Makefile: bump version * Add README and README.Android to make dist rule * Add README * Add Android porting notes, thanks to M.Srikanth Kumar. * For now, enable ptrace stressor for just linux * Remove unwanted sys/regs include from ptrace stressor * Make mmapfork help and options build on STRESS_MMAPFORK * Don't build ptrace stressor for GNU/HURD * Fix stress-mmapfork builds on non-Linux systems * Add ptrace stressor * Use -pthread rather that -lpthread to allow for static builds * stress-aio: cast to (long) for aio_buf for 32/64 bit portability * Update syscalls.txt with sigsuspend * Add sigsuspend stressor * Update syscalls.txt w.r.t obsolete wait3, wait4 calls * Add sigpending stressor * stress-symlink: add readlink to symlink stressor * Add getpeername call to sock stressor * stress-quota: ensure we closedir on dir on error exit path * stress-socket: initialise len to be sizeof(addr) * stress-socket: fix fd resource leak * Add mmapmany fork + mmap VM stressor * Re-order MEMFD in header * Add --yaml option to output data to a structured YAML file * socketpair: handle shutdown when we've maxed out socket fds * stress-sysinfo: Move ret so checks work on non-Linux systems * stress-sysinfo: fix build for non-Linux systems * Re-enable xattr tests * Update syscalls.txt, add getcpu * stress-numa: clean up code, add getcpu call * Update syscalls.txt with getsock* calls * stress-socket: correct dbg error text * stress-socket: call getsockopt() for more stress overhead * stress-socket: call getsockname() for more stress overhead * stress-quota: improve error handling reporting * stress-quota: minor resource leak and stat checks * Update syscalls.txt with quotactl * Add stress-quota quotactl stressor * Make SIEVE macro not size dependent * stress-aio-linux: change finish label, fixes close of fd -1 * Update syscalls.txt * Add a fcntl stressor * Re-order HDD and HSEARCH in stress-ng.h * Correct man page concerning the 0 stressor option * Use _SC_NPROCESSORS_CONF stressors when zero stressors selected * Update syscalls with NUMA test update * Add some NUMA clarifications in the manual * Add NUMA stressor * stress-lockf: re-align a comment * stress-kill: improve comment on kill on -1 pid * syscalls - rename aioabi to aiol * Add fstatvfs to sysinfo test * Add Linux asynchronous I/O io_* system call stressors * Add shutdown to syscalls * stress-socket: add socket shutdown * stress-socketpair: close with shutdown, don't use magic string * Update syscalls.txt * Make socket pair even more stressy * Close pipe, and don't report error on EPIPE as that is expected * Add socketpair stressor * Try to mlock all sig handlers and critical code into memory * If a fork fails, set pid num to zero to avoid killing pid -1 * Make log type name fields the same width * Change "stressors started" to "stressors spawned" * Emit perf not enabled message just once. * stress-brk: remove incorrect free on ptr -- Colin King Tue, 14 Jul 2015 10:20:00 +0100 stress-ng (0.04.10-1) unstable; urgency=medium * Makefile: bump version * Fix typo in macro, STRESS_UPD_FLOOD -> STRESS_UDP_FLOOD -- Colin King Thu, 2 Jul 2015 14:40:00 +0100 stress-ng (0.04.09-1) unstable; urgency=medium * Makefile: bump version * Make stress-udp-flood build dependent on AF_PACKET being defined * stress-udp-flood: close fd, fixes resource leak * Add UDP flood stressor * Stress up to number of cpus configured not number that are online * Avoid crazy temperatures in thermal zones * Move syslog help to correct section -- Colin King Thu, 2 Jul 2015 10:45:00 +0100 stress-ng (0.04.08-1) unstable; urgency=medium * Makefile: bump version * Only call tz_free() if STRESS_THERMAL_ZONES defined * Rename dump_* to *_dump * perf: re-organise, move dump into perf.c, more #if checks * Add --tz thermal zone option -- Colin King Wed, 24 Jun 2015 15:12:00 +0100 stress-ng (0.04.07-1) unstable; urgency=medium * Makefile: bump version * Make stress-sem conditional on STRESS_SEMAPHORE_POSIX * Make semaphore stressors linux only because of timeout * stress-sem: remove verbose timeout info, it can spam the output * stress-sem-sysv: Add timeout to semaphore wait * stress-sem: Add timeout to semaphore wait * stress-sem-sysv: ensure parent is waiting and not thrashing * stress-sem: ensure parent is waiting and not thrashing * stress-sem: remove verbose timeout info, it can spam the output * stress-sem-sysv: Add timeout to semaphore wait * stress-sem: Add timeout to semaphore wait * stress-sem-sysv: ensure parent is waiting and not thrashing * stress-sem: ensure parent is waiting and not thrashing -- Colin King Thu, 18 Jun 2015 16:34:00 +0100 stress-ng (0.04.06-1) unstable; urgency=medium * stess-sysfs: Do not read sysfs files when running as root (LP: #1464073) -- Colin King Fri, 12 Jun 2015 09:44:00 +0100 stress-ng (0.04.05-1) unstable; urgency=medium [ Colin Ian King ] * Makefile: bump version * mincore: fix build for GNU/HURD; make it a no-op * stress-mlock: don't build in munlockall for GNU/HURD * stress-mlock: don't build in mlockall, munlockall for GNU/HURD * Fix MINCORE dependency for GNU/HURD * Ensure maximum sizes don't exceed 4GB-1 for 32 bit systems * stress-crypt: only use re-entrant crypt_r on Linux for now * Make madvise build on non-GNU/HURD systems * Add perf reference in manual, update date * stress-vm-rw: zero msg_wr just to be totally safe * stress-crypt: use reentrant crypt_r to avoid any memory leaks * stress-zombie: free items on list head on exit * stress-lockf: free items on list head on exit * stress-wcstr: fix incorrect wide string size * Add int8, int16, int32 and int64 versions of mwc*() * Move results emitting code into dump_* functions * Increase various stressors upper memory limits * Make --aggressive force more CPU migrations and context switches * Fix comment for stress_get_ticks_per_second * perf: enable inherit flag to trace children * Update syscalls.txt with perf and getrandom * Add the new --getrandom stressor * Fix sigq options, missing because not using STRESS_SIGQUEUE * Add Christian Ehrhardt to the contributors list on man page * Fix help -h option, was --h, should be -h [ Christian Ehrhardt ] * stress-ng: avoid builtins when libs shall be tested * stress-ng: add stressor for wide character string operations * stress-ng: fix string names * stress-ng: avoid compiler error in stress-vector * stress-ng: fix EPOLL build -- Colin King Tue, 2 Jun 2015 20:35:00 +0100 stress-ng (0.04.04-1) unstable; urgency=medium * Makefile: bump version * stress-hdd: make buffer in read/write helpers uint8_t * * log: Reduce the scope of n, clean up cppcheck style warning * perf: cater for zero time_running case, avoid division by zero * Add --log-brief option to make output less verbose * print perf counters as , separated decimals * perf: scale using lookup table, add in quintillions * perf: Add back PERF_FORMAT_GROUP, we get wrong stats otherwise * perf: re-work to allow for more HW perf counters * Don't build in stress-context for OpenBSD * perf: fix build errors on GNU/HURD * Add --perf option * Fix STRESS_VECTOR, use the NEED_GNUC macro * Add context stressor to stress context switch save/restores -- Colin King Sun, 31 May 2015 13:33:00 +0100 stress-ng (0.04.03-1) unstable; urgency=medium * Makefile: bump version * Forgot to include new OPT_FLAG #defines * Allow --class option to specify a list of classes * Allow --seq and --all modes to have --class option * Make break stress help into generic and per stress test sections * stress-epoll: fix spelling mistake in comment "incomming" * Manual: break options into stress-ng specific options and stressors * Make sysfs conditionally compile on STRESS_SYSFS * Add sysfs stressor * Fix oom error message with corrupt name because name is not yet set * stress-cpu: dither: correct min x boundary check, off by 1 * Change scope of variables in stress_cpu_parity * stress-cpu: stash d and l to overcome over optimization * Call "stressors" workers * Manual, call stressors and processes "workers" * Sync up syscalls.txt with latest changes to stressors * Add chdir stressor * Add syncfs option to hdd stressor * stress-mlock: add mlockall/munlockall stressing too * Add fsync, fdatasync hdd stressor options * stress-cpu: add rand48 random number generator family cpu method * Add human readable time duration to results output -- Colin King Thu, 21 May 2015 16:24:00 +0100 stress-ng (0.04.02-1) unstable; urgency=medium * Makefile: bump version * stress-cpu: Add dithering stress cpu method * stress-cpu: re-order cpu methods * stress-cpu: Add parity computation method * Fix in-built help in a few places * Fix typo in manual, crc -> crc16 -- Colin King Mon, 11 May 2015 10:52:00 +0100 stress-ng (0.04.01-1) unstable; urgency=medium * Makefile: bump version * stress-rlimit: for now, make this Linux only * stress-rlimit: add loop limit checking * stress-mlock: report mlock failure with pr_failed_err() * stress-itimer: remove the build dep on STRESS_TIMER * stress-ng: Fix --seq mode * Add resource limit stressor, stress-rlimit * stress-chmod: use creat instead of open * Makefile: sort order of sources, stress-yield, stress-xattr * Add itimer stressor * Fix typo: mimcore -> mincore * Add mlock stressor * stress-stack: Don't need alloc.h included, it comes in stdlib.h -- Colin King Mon, 4 May 2015 21:08:00 +0100 stress-ng (0.04.00-1) unstable; urgency=medium * Makefile: bump to version 4.0, update codename * Update syscalls.txt with more annotations * stress-hdd: forgot to include sys/uio.h * mincore: cater for BSD mincore API difference * Move do_wait inside #if/#endif to avoid warning on BSD systems * Manual: sort --hdd-opts options * stress-hdd: add utimes metadata update --hdd-opts option * stress-xattr: also use fgetxattr * stress-dup: add dup2 call on same fd * stress-verify: refactor verify checking, small optimisation * stress-timer: add timer overrun accounting * stress-chmod: fix retries abort check * Re-order stack-fill option in table * Manual: fix spelling mistake, maxiumum -> maximum * stress-memfd: initialize fd and maps for correctly cleanup handling * Update syscalls.txt (added timerfd, minor other tweaks) * Add timerfd stressor * stress-timer: Fix random timers to adjust correctly by randomized rate * stress-memfd: make bogo ops match iterations rather than per memfd-create * Add stress-memfd stressor and fix mincore/pagein builds * Update syscalls.txt with a fuller set of syscalls * stress-get: add calls to time() and utime() * Add aggressive mode CPU affinity changing * stress-affinity: add a yield to push IPIs up * Make inotify test depend on glibc 2.9 or higher * Make aio test depend on glibc 2.1 or higher * Make affinity test depend on glibc 2.3.0 or above * Update syscall.txt with readv/writev * Add iovec readv/writev mode to --hdd-opts * stress-sem: don't report EINTR as an error on sem_wait * stress-chmod: give up of we took too many tries to create file * stress-epoll: add more delay on re-try connect failures * stress-epoll: use a saved errno to report error * Handle fork() EAGAIN correctly by re-trying * stress-lease: correct and improve failure error messages * stress-wait: increase wait timeout to 8 seconds * stress-inotify: break out of init loop if end of tests, increase retries * stress-sysinfo: make EACCES non-fatal error on stat -- Colin King Mon, 27 Apr 2015 13:24:00 +0100 stress-ng (0.03.22-1) unstable; urgency=medium * Makefile: bump version * stress-eventfd: check if termination flag set * stress-tee: handle EINTR in tee() * Make timeval_to_double an inlined func * stress-sigfd: return rather than _exit() on error -- Colin King Sat, 18 Apr 2015 13:04:00 +0500 stress-ng (0.03.21-1) unstable; urgency=medium * Makefile: bump version * stress-crypt: fix build on FreeBSD * stress-mmapmany: include signal.h to stop build warnings * Make features.h dependent on GLIBC * Make help info less than 80 chars wide * stress-lockf: explicitly ignore return from waitpid and kill * Add device, filesystem and pipe classes, re-classify some tests * stress-pthread: fix comment * Only allow futex test if system call is defined * Check if rdrand is supported if sequential mode selected * Make stress-lockf more aggressive with more concurrent locking * Rename NEED_GLIB to NEED_GLIBC and use on newer system calls * Add tee stressor * Fix wait spawn to return pid_t rather than int * Fix sem spawn to return pid_t rather than int * Fix sem-sysv spawn to return pid_t rather than int * Fix lease spawn to return pid_t rather than int * Fix fifo spawn to return pid_t rather than int * Fix epoll spawn to return pid_t rather than int * Fix typo: _GNUC__ -> __GNUC__ * Add crypt stressor * Add --timer-rand option for more of a mix in timer scheduling * Fix uninitialised timer frequency in stress-timer * Fix typo in manual * Check for fork EAGAIN failure, polled retry * Add mmanmany stressor * The current VFORK build check fails, just make it build w/o checks for now * Add zombie stressor - fill up process table with children wait to be reaped * stress-null: fix comment * Don't define HOT and OPTIMIZE3 for older versions of GNUC * Add glibc and gcc version macros, use them for rdrand and vm-rw stressors * Add depends on libattr1-dev * Option --readahead-bytes should only built in if readahead supported * stress-cpu: Use more optimal gray to integer conversion * stress-cpu: minor tweaks to ensure optimizer does not over optimize * Add and use OPTIMIZE3 -O3 macro * Forgot to add the --str-method to the help * Add the str string stressor * stress-xattr: fix incorrect clean up path on error * Add HOT macro, add it to cpu intensive busy loops * stress-readahead: build only if readahead allowed on system * Add xattr stressor * stress-kill: Add some more kill variations * Update syscalls table * stress-mmap: unmap buf, fixes resource leak * Add readahead I/O stressor * Add deep function call cpu stressor method * stress-vm: add rowhammer memory stressor -- Colin King Tue, 14 Apr 2015 16:15:00 +0500 stress-ng (0.03.20-1) unstable; urgency=medium * Makefile: bump version * sched: Fix build warning on get_sched_name on GNU HURD * stress-hdd: Fix incorrect format specifier %zu for a uint64_t * stress-fallocate: Fix off_t printf warnings on 32 bit GNU HURD * Fix resource leak (file descriptor) on error exit of stress-hdd * Fix Manual, clarify the action of hdd stressor * stress-aio: reduce scope of ret * Fix missing stressor name in pr_err() messages * Fix missing stressor name in pr_inf() and pr_dbg() messages * Fix missing stressor name in pr_fail() messages * stress-hdd: fix verify mode for hdd stressor * stress-hdd: fix missing read if no read preference specified * sched: fix default priority levels and lack of class name in messages * stress-hdd: fix read of end of file when generated with random writes * Fix extraneous leading space after the "hogs:" message * stress-hdd: fix false error reports on short reads * stress-hdd: fix noisy "incomplete reads" debug message * stress-fallocate: fix incorrect errors reported on fallocate sizes * stress-fallocate: fix error messages, they are rather meaningless * stress-aio: report correct errno on async error * stress-aio: handle EAGAIN and EINTR correctly * stress-hdd: POSIX_FADV_RND should be POSIX_FADV_RANDOM -- Colin King Thu, 26 Feb 2015 17:17:00 +0000 stress-ng (0.03.19-1) unstable; urgency=medium * Makefile: bump version * stress-sem: fix spelling mistake in comment: destory -> destroy * Manual: fix spelling mistake: successfull -> successful * Manual: fix typo: summaries -> summarise * Manual: vecmath: Replace x with \(mu multiply sign for correct formatting * Manual: Fix udp port description, add the default base port being used. * Manual: remove deprecated --hdd-sync option * Manual: fix typo: mremmap -> remap * Manual: Replace x with \(mu multiply sign * Manual: Fix typo: randonly -> randomly * Manual: Fix spelling mistake: hightest -> highest * Manual: Correct description for --fifo option * Manual: Fix spelling mistake and epoll_wait section * Rename id to s_id to stop variable shadowing * Move scope of j, removes shadowing of j too. * stress-aio: clean up clang warnings on integer conversions * Re-format and slightly re-word debian control description text * Remove trailing white spaces from lines and empty lines * Remove duplicated changelog entries * Fix macro expansion overflows on 32 bit architectures * stress-matrix: clean up some more cppcheck style warnings * stress-longjmp: move counter c, cleans up cppcheck style warning * stress-inotify: fix buffer bounds checking on inotify input * stress-ng: remove some debug that never got printed * stress-pipe: ret should be ssize_t * stress-hdd: ret should be ssize_t * stress-mmap: better error handling on write * out-of-memory: add better write error checking * stress-null: better error handling on write * stress-lockf: better error handling on write * stress-fault: better error handling on write * stress-vm-rw: better error handling on read/write * stress-sigfd: better error handling on read * stress-seek: better error handling on read/write * stress-procfs: better error handling on read * stress-poll: better error handling on read/write * stress-pipe: better error handling on read/write * stress-inotify: better error handling on read/write * stress-hdd: better error handling on read/write * stress-switch: cater for zero write w/o error * stress-fifo: better error handling on read/write * stress-pipe: better error handling on read/write * stress-urandom: better error handling on read * stress-zero: better error handling on read * stress-eventfd: better read/write handling * print correct number of hogs when --class is used -- Colin King Mon, 23 Feb 2015 15:58:00 +0000 stress-ng (0.03.18-1) unstable; urgency=medium * Makefile: bump version * Move order of hadamard matrix method, now in alphabetical order * Fix macro typos - STESS -> STRESS (LP: #1423241) * Add in matrix info into help -- Colin King Wed, 18 Feb 2015 16:08:00 +0000 stress-ng (0.03.17-1) unstable; urgency=medium * Makefile: bump version * Fix name clash on union on *BSD systems * Explicitly ignore return from wait*() calls by (void) cast * Add minimize/maximize to matrix size * Add --cache-prefetch option * Make opt_sequential int32 and print out hogs if --seq is being used * Handle builds for system calls that don't exist * stress-vm-rw: include missing header * Ignore args in kcmp for systems that don't support this call * Forgot ULL after fibonacci uint64_t assignment, warning on 32 bit mips * Add longjmp stressor * Constify a few more function args * Add in some shifts to vecmath * Constify a few more func args * Make cache no-ops into do {} while (0) statement * Move PR_* bit flags to bottom nybble, makes stress-ng smaller * Fix spelling mistake in manual: subtrace -> subtract * Forgot to capitalise the matrix product methods * Add two more matrix product methods * man page: long double floats -> floats for matrix * Add matrix stressor with a bunch of stressor methods * stress-shm-sysv: initialise shm_ids as -1 to indicate not set * Use semun union when passing values to semctl, fixes powerpc segfault * stress-rdrand: move #includes to fix build warning on ARM * Make mallopt code depend on GNUC and linux * Reduce MAX stress-fallocate allocation size for 32 bit systems * Move #includes in io-priority to stop build warnings * Add --malloc-thresh tuneable option * Used #if defined(...) consistently. * Munge stressor names when showing hoggers * Remove repeated #if defined() checks, simplify them into stress-ng.h * Add another example to the manual * Increase maximum lease breakers * stress-lease: max sure the pid array is large enough * Add --aggressive option * Don't print null string of no hogs listed when dispatching hogd * Add --minimize and --maximize options * Add --stack-fill option * Update syscalls.txt with recently added syscalls * stress-fallocate: only use fallocate if FALLOC_FL_* defined * stress-fallocate: employ linux fallocate on linux builds * Add --fallocate-bytes option -- Colin King Tue, 17 Feb 2015 18:28:00 +0000 stress-ng (0.03.16-1) unstable; urgency=medium * Makefile: bump version again * Fix missing .TP in man page * Re-work the "dispatching hogs" message to log atomically * Add --syslog option to log non-debug messages to syslog * stress-hdd: don't use strtok_r, we're not threaded * Just define KCMP_* ourselves, broken distros don't have linux/kcmp.h * stress-kcmp: close fd1, fix resource leak * Add kcmp stressor * Remove unnecessary { } * Remove redundant assignment of first enum to zero * Make --random 0 select the number of on-line CPUs * Forgot to make RDRAND check arch specific * Add check to see if rdrand is supported and skip stressor if not * stress-pthread: increase to 1024 pthreads per stressor * stress-pthread: handle error correctly; as from the return from pthread* * Make pr_failed more generic and make a new pr_failed_errno macro -- Colin King Fri, 13 Feb 2015 19:40:00 +0000 stress-ng (0.03.15-1) unstable; urgency=medium * Makefile: bump version * Don't make sieve static, it wastes space in the executable * Keep make quiet on builds that don't support _Decimal types * Makefile: more smarts to conditionally build stress-cpu * remove STRESS_FLOAT_DECIMAL * Try to build with _Decimal* floats, if fail, build without * Check for __int128 and _Decimal support * Don't complain about IPC_RMID failure if it's already been reaped * Don't report sem-op errors on EINTR * Only report OOM restarts and nomems if they actually occurred * stress-chmod: remove some unnecessary debug info * stress-socket: don't emit errno if EINTR * stress-udp: don't emit errno if EINTR * stress-chmod: only report number of retries if a retry occurred * stress-stack: handle OOM killer with monitoring parent * Add set_max_limits() to push user limits to maximum allowed * stress-cpu: re-work math stressors with macros * Add decimal{32|64|128} math ops in cpu stressor * Re-work floating point and complex floating point stressors * Re-work int stressors to use generic macro, and add int128 test -- Colin King Mon, 9 Feb 2015 23:28:00 +0000 stress-ng (0.03.14-1) unstable; urgency=medium * Makefile: bump version * Fix build warning for systems w/o _SC_PAGESIZE * Make semaphore creation non-fatal * Fix a few warnings on gcc 4.5.3 (NetBSD) * Make STRESS_SIGFD linux only * Re-order sendfile #define * Re-order hdd and hsearch #defines * Forgot to make futex linux only * Typo: replace __linux with __linux__ * Use pow since powl has less precision than advertised warning on FreeBSD * Forgot to remove mremap from help if non-Linux * Update manual, stress-mremap is linux only * Make mremap test linux only * stress-mremap: move to using page size helper * Add helper to get cpu clock ticks * Add number of processors online helper. * Add page size helper, we don't need to repeat the sysconf calls * Add malloc stressor * Add some more comments * Clean up BSD workarounds * stress-brk: wrap an overly long line * Add memory remapping stressor * Turn off madvise DONTNEED as it can cause us checking errors * Add another NetBSD long double workaround * stress-hdd - don't allow fadvise on GNU HURD * Add vmsplice stressor * Correct error message on pipe failure * Fix up latest stressors, re-order options and add vm-rw-* help * Add splice stressor * Add vm-rw stressor * Add read64 and write64 vm memory stress methods. -- Colin King Thu, 5 Feb 2015 15:22:10 +0000 stress-ng (0.03.13-1) unstable; urgency=medium * Makefile: bump version * Cater for non-existent long double math functions in NetBSD * mounts: forgot to handle NetBSD in mount detection * Make mounts build for NetBSD too * Disabled stress-wait for NetBSD - can't see how to do CONT sig wait * Cater for systems that do not have MAP_ANONYMOUS * Add NetBSD support to stress-stack * Make vector gcc'isms compile in for modern versions of gcc only * stress-hdd: void unused params * Also catch SIGILL for FreeBSD * Remove trapping of SIGILL * stress-qsort: fix cmp3 byte-wise re-ordering * include signal.h in stress-pthread to fix FreeBSD build * Minor source reformatting on stress-ng.c * Reduce the precision and number of iterations for nsqrt * stress-shm-sysv: also shrink and re-try if ENOMEM occurs * Add some feedback of shm-sysv had to shrink shared memory size * Cater for EINVAL on shmget if size is too large. * Mungify stressor names when invoking the stressor * Drop default System V shared memory size to 8MB for *BSD kernels * Add check for BSD invalid chmod mode bits error * Fix printing of stressor names, some names too long and _ -> - conversion * stress-cache: put { } braces around cflush and mfence * stress-mq: initialise mq to -1 to avoid gcc warning (false positive) * Add full read checks in stress-hdd read stressor loops * stress-hdd: remove debug cruft * Forgot to escape some - hyphens in manual * Stress-hdd: remove ad-hoc open flags, replace with --hdd-opts option * Manual: fix spelling, destory -> destroy * Add vector maths stressor * Man page: naive -> naïve * Manual, lease-breakers: for --> to * Don't handle SIGSEGV and SIGBUS * Don't build sem-sysv for GNU HURD * Add sections of man pages for sys calls and libc functions * Add System V shared memory stress test * Fix error path on SYSV sem creation - need to reap semaphore * Re-work POSIX sem test to be aligned with SYSV sem test * Remove POSIX semaphore header, not required * Add System V semaphore stressor -- Colin King Sun, 1 Feb 2015 15:22:10 +0000 stress-ng (0.03.12-1) unstable; urgency=medium * Makefile: bump version * Add udp to --help output * remove need to setup unix pathname in stress-socket * stress-epoll: use net helper funcs * stress-mq: memset msg to zero to stop valgrind complaining * Clear epoll_event struct; warning from valgrind * Add net helper functions, refactor udp and socket stressors * Add udp stressor * Reduce the minimum timer frequency to 1Hz * Remove duplicate error message in rdrand stressor * Correct error messages, removed "failed" and trailing "\n" * Clear alternative signal stack, stops cppcheck warning * Limit sscanf field to avoid overflows * Remove memory locking, it wasn't such a good idea after all -- Colin King Thu, 29 Jan 2015 11:49:00 +0000 stress-ng (0.03.11-1) unstable; urgency=medium * Makefile: bump version * Add --hdd-sync, --hdd-dsync, --hdd-direct, --hdd-noatime options * Add sigfd stressor * Move mount handling helper functions to mounts.c * Add --brk-notouch option * Account of out of memory nomems in stress-brk * Explicitly ignore *close*() failures with (void) cast * Update copyright at end of manual * Update syscalls.txt with brk/sbrk calls * Add a brk stress tester and --brk, --brk-ops options * Fix incorrect comment on bigheap stressor function -- Colin King Sun, 25 Jan 2015 14:23:00 +0000 stress-ng (0.03.10-1) unstable; urgency=medium * Makefile: bump version * Make mask ptrdiff_t and cast to allow clean 32 bit build * Use ptrdiff_t for addr math * Remove need for ms_flags if building for GNU HURD * Cater for GNU HURD not supporting mincore() * Cater for msync not functioning for GNU HURD * Add --mincore-random option * Update syscalls.txt with mincore test * Remove the page reading from mincore * Add mincore stressor -- Colin King Sat, 24 Jan 2015 13:43:00 +0000 stress-ng (0.03.09-1) unstable; urgency=medium * Makefile: bump version * Add bounds checking on data from /proc * Make stress-mq a no-op for non-Linux * Update syscalls table * Make mq a linux only stressor * Add mq stressor for POSIX message queues * Add --mmap-protect page protection settings option * Add the chmod stressor -- Colin King Tue, 13 Jan 2015 11:54:00 +0000 stress-ng (0.03.08-1) unstable; urgency=medium * Makefile: bump version * Update copyright year to sources * Add epoll stressor * stress-vm: reduce scope of addr * stress-mmap: clarify calculation precedence of & in ternary expr * stress-memory: reduce scope of addr * Fix --sequential mode, correctly set up number of procs and pid list -- Colin King Fri, 2 Jan 2015 09:57:11 +0000 stress-ng (0.03.07-1) unstable; urgency=medium * Makefile: bump version * Fix pluarity of --lease man page description * Fix int64 float descriptions in man page * Make lease help info appear only if it is supported * Make assumption about nice limits if getrlimit fails * Close and abort rather than close and break * Fix incorrect closing on in stress-lease * Clear buffer in lockf * Check return of unlocking fcntl call in stress-lease * Forgot to add stress-lease.c to Makefile * Add lease stressor and --lease, --lease-ops, --lease-breakers * Don't print full help on failed getopt '?' returns * Add dup stressor and --dup, --dup-ops options * Update syscalls table * Minor lockf corrections in manual * Add POSIX lockf file locking stressor * Fix int64_{float|double|longdouble} verifies * Add mixed integer and floating point cpu stressors * Manual: don't -> do not -- Colin King Wed, 31 Dec 2014 13:13:13 +0000 stress-ng (0.03.06-1) unstable; urgency=medium * Makefile: bump version * Makefile: add mascot svg to dist * Make getpid pid const * Don't use 0600 flags, use constants instead * Add --mmap-file and --mmap-async file based mmap options * Make stress-mmap helper functions static * Update manual for the new unix --sock-domain option * Add unix --sock-domain option * Add cache fencing and cache flushing to cache stressor * Add mascot svg * Fix comment in modulo-x comment, 20th -> 23rd -- Colin King Mon, 29 Dec 2014 15:57:00 +0000 stress-ng (0.03.05-1) unstable; urgency=medium * Makefile: bump version * Fix stress-poll random slow hangs running on --poll-ops N * Find index into stressors via id * stress-fifo: cater for zero reads on closed fifo * Tidy up stress-ng.h, re-ordering and adding more comments * Re-organise per stressor process info into procs * Remove hdd related global vars, add stress_set_hdd* helpers * Remove global socket_port, use helper stress_set_socket_port instead * Remove unused opt_vm_stride * Remove global mmap_bytes, use helper stress_set_mmap_bytes instead * Remove vm related global flags, add stress_set_vm_* helpers * Remove global cpu_load, use helper stress_set_cpu_load instead * Remove global sem_procs, use helper stress_set_sem_procs instead * Make opt_sequential static * Remove global fifo_readers, use helper stress_set_fifo_readers instead * Remove global pthread_max, use helper stress_set_pthread_max instead * Remove global seek_size, use helper stress_set_seek_size instead * Remove global qsort_size, use helper stress_set_qsort_size instead * Remove global sendfile_size, use helper stress_set_sendfile_size instead * Remove global hsearch_size, use helper stress_set_hsearch_size instead * Remove global lsearch_size, use helper stress_set_lsearch_size instead * Make opt_tsearch_size static * Remove global tsearch_size, use helper stress_set_tsearch_size instead * Replace opt_fstat_dir with stress_set_fstat_dir() * Replace sem_ok bool with OPT_FLAGS_SEM_INIT opt_flag bit * Remove opt_timer_freq, replace with stress_set_option_freq() * Make opt_class static * Make array opt_ops static * Make opt_backoff static * Make opt_sched and opt_sched_priority static * Make started_procs array static * Make procs, opt_ionice_class, opt_ionice_level static * No need to extern procs array * No need to extern opt_ionice_class, opt_ionice_level * Remove globals for fork/vfork opts, use stress_set_{fork,vfork}_max * Remove global opt_denties, use helper stress_set_dentries instead * Remove global bsearch_size, use helper stress_set_bsearch_size instead * Remove global bigheap_growth, use helper stress_set_bigheap_growth instead * Remove global aio requests, use helper stress_set_aio_requests instead * Remove tailing . on man page title -- Colin King Wed, 17 Dec 2014 14:37:41 +0000 stress-ng (0.03.04-1) unstable; urgency=medium * Makefile: bump version * Fix verify checks in int{64,32,16,8} cpu stressors * lock-mem: only use mlockall if _POSIX_MEMLOCK is defined * stress-vm: add finer grained bogo ops * Set MIN_OPS to be 1, 100 is quite large for slow vm tests * stress-vm: use PRIME_64 * stress-denty: use PRIME_64 * Define PRIME_64 to be large 64 bit prime value * Fix thinko in prime striding of memory * Add --denty-order option to try and mix up dentry unlinking order * Remove the reference to /tmp being used as sendfile data * Add pthread stressor * Re-work seek offset, the module fails on some arm 32 builds * stress-fifo: fix error message -- Colin King Fri, 12 Dec 2014 12:23:12 +0000 stress-ng (0.03.03-1) unstable; urgency=medium * Makefile: bump version * Update date in man page * IONICE_* opts are linux only * Remove unwanted column headings * Stress semaphore harder by multiple children * Update syscalls, add send recv * Add some more comments to stress-ng.h * Move some #defines around * stress-fork: use renamed constants * Add in more #define'd min/max/default constants * Re-order OPT_ case statement into alphabetical order * Hide vm stressor option inside stress-vm * Hide cpu stressor option inside stress-cpu * stress-fifo: close fifo on exit * stress-socket: add --sock-domain option * stress-socket: use send/recv instead of write/read * Use ssize_t for n to get write size * Add named fifo stressor * Break casting of uintptr_t into stages because GCC 4.9.2 complains * stress-vm: no need to check sz if it is a 32 bit integer * Force gcc not to optimise out the alloca -- Colin King Fri, 5 Dec 2014 23:19:00 +0000 stress-ng (0.03.02-1) unstable; urgency=medium * Makefile: bump version * free procs array in child stressor, stops valgrind complaining * stress-vm: don't use abs, use UNSIGNED_ABS instead * Ensure mwc internal state is initialised. * stress-memcpy: copy back buffer to share memory region * stress-affinity: add --affinity-rand option * man page: fix - hypenations * stress-vm: remove debug on vm stressor names, too noisy * mwc: move mwc constants into a struct and inline mwc * Deprecate --noclean option * Deprecate --vm-stride * man page: Fix spelling mistakes and re-phrase some text for clarity * stress-vm: use correct name when checking prime-gray-* results * Add --stress-vm documentation in man page * stress-vm: Add different vm stressors and --vm-method option -- Colin King Tue, 2 Dec 2014 16:13:15 +0000 stress-ng (0.03.01-1) unstable; urgency=medium * Makefile: bump version, update codename * More --metrics explanation, expand other mior options as well * Use %zu print format specifier for size_t variable * Fix builds for OpenBSD too * Makefile: minor tweaks to build rules * stress-cpu: remove cpow and csinl csinl for FreeBSD builds * stress-cpu: build without warnings with clang * madvise: fix build issues on FreeBSD * stress-sysinfo: build for FreeBSD * Fix build issues on FreeBSD * stress-cpu: zeta precision should be using cabsl * Use double complex for fft * stress-nice: include signal.h * stress-tsearch: use & rather than && * stress-lsearch: use & rather than && * opt_flags && OPT_FLAGS_VERIFY should be using & rather than && * Remove duplicate const * Remove duplicate func declaration, rename other to stress_func * Fix division by zero on r_total, emit zero if num procs is zero * Fix spelling mistake "performance" in man page * Fix float man page entry * Fix clongdouble man page entry * Add hsearch and class options to --help -- Colin King Thu, 27 Nov 2014 16:28:05 +0000 stress-ng (0.03.00-1) unstable; urgency=medium * Makefile: bump to version 0.03.00 * Clarify cpu stressors and tidy up the table formatting * Reduce number of loops for int, float and complex by factor of 10 * Add cpu complex stressors to man page * Add complex math stressors, make float macro use appropriate trig funcs * stress-aio: Fix spelling mistake "Succeeded" in comment * stress-cpu: fix spelling mistake "version" in comment * Add one more stress-ng example to man page * stress-sysinfo: make ret linux only * stress-sysinfo: make clk not linux only * Remove linux only restriction for --times option * sysinfo: check for times() returning -1 * Check for time() error correctly * Make stress-aio linux only * Output metrics in terms of time in wall clock and user+sys times * stress-socket: terminate child properly to fix process accounting * Make metrics based on child usr and sys ticks rather than wall clock times * Force gcc from over-optmising loop cpu stressor accumulates * Fix flock stress on open failure because of race on same file * Update syscalls text file * Add stack overflow stressor * Fix flock - ensure it locks on one file between all workers * Add hsearch stressor * Add async I/O aio stressor * Add --class option * stress-cpu: Move math constants and suffix them with L * Add Euler–Mascheroni (gamma) calculation in cpu-stress * Fix another spelling mistake in man page -- Colin King Mon, 24 Nov 2014 09:31:00 +0000 stress-ng (0.02.29-1) unstable; urgency=medium * Makefile: bump version * Fix spelling mistake in man page * Add seek stressor and --seek, --seek-ops, --seek-size options * Add memcpy memory copying stressor * Makefile: remove gcov options that got accidentally added -- Colin King Fri, 21 Nov 2014 10:19:00 +0000 stress-ng (0.02.28-1) unstable; urgency=medium * Makefile: bump version * stress-cpu: force matrixprod to actually save the results * Use temp dir helpers to run stressors in temp directory * Add temporary dir helpers -- Colin King Thu, 20 Nov 2014 09:40:00 +0000 stress-ng (0.02.27-1) unstable; urgency=medium * Makefile: bump version * stress-utime: use also utime and make futimes linux only * stress-fault: use posix_fallocate instead of fallocate * stress-fault: clarify negation on boolean expression * stress-hdd: close file on error exit path * Use PATH_MAX for filename sizes * stress-hdd: use temp filename helper * stress-fallocate: use temp filename helper * stress-inotify: use temp filename helper * stress-flock: open using S_IRUSR | S_IWUSR * stress-fault: open using S_IRUSR | S_IWUSR * stress-denty: open using S_IRUSR | S_IWUSR * stress-dir: use temp filename helper * stress-link: use temp filename helper * stress-rename: use temp filename helper * stress-utime: use temp filename helper * stress-sendfile: use temp filename helper * stress-flock: use temp filename helper * stress-fault: use temp filename helper * stress-dentry: use temp filename helper * Add stress_temp_filename for standard temp filename building * stress-dentry: include instance number in filename * Catch a range of signals and handle termination better * Re-work process wait by re-writing this with a helper * Fix build issues on Arch * Man page: tweak width for cpu methods to work on wide ttys * Only print out page fault stats to debug * Correctly wait for all running processes to terminate * Remove redundant exit check * Add page fault stressor * Remove -g flag from Makefile * Add lsearch stressor * Add tsearch stressor * Ensure we allocate in multiples of 8 elements * Add bsearch stressor * stress-poll: set data in correct place, fixes verify failures * Make hyperbolic cpu test more demanding * Make trig cpu test more demanding * Add 3 more hash cpu stressors -- Colin King Thu, 13 Nov 2014 10:49:00 +0000 stress-ng (0.02.26-1) unstable; urgency=medium * Makefile: bump version * Makefile: include syscalls.txt in dist * Fix cut-n-paste error on waitpid for socket_server * Ignore args in no-op mincore build case * Make mincore a no-op for GNU HURD * Don't allow wait stressor if building for GNU HURD * Forgot to make times option Linux only too * Make --times option Linux only * Only print the names of stressors if they are going to run * Ensure we have read all the inotify events * Add the new --times option to show system and user times * stress-msg: wait for child to exit * stress-inotify: ignore EINTR on select as an error * stress-eventfd: wait for child to die * stress-vm: wait for child to die * stress-switch: wait for child to die * stress-socket: wait for children to die * stress-sigq: wait for child to die * stress-poll: wait for child to die * stress-pipe: wait for child to die * stress-bigheap: wait on child after killing it * Add vfork to syscalls.txt * Add --vfork, --vfork-ops, --vfork-max options * stress-bigheap: don't treat EINTR on waitpid as an error * Add mincore to syscalls.txt * Add the --page-in option to page in out-of-core pages * stress-cpu: run all cpu methods rather than sqrt() by default * stress-vm: treat EINTR on waitpid as a not a reportable error * stress-eventfd: treat read/write EINTR as not a reportable error * stress-msg: treat EINTR as not a reportable error * Make poll and select act on multiple pipe fds * Add madvise to syscalls.txt * Enable random madvise() advice for mmaps, add --no-madvise option * Fix spelling mistake in coredump.c * Add table of syscalls/libc vs test coverage * stress-fstat: add more stat* calls, don't spin if no valid files * Modify started on text to be more like original stress tool * Add wait stressor and --wait --wait-pid options -- Colin King Sat, 8 Nov 2014 14:24:00 +0000 stress-ng (0.02.25-1) unstable; urgency=medium * Makefile: bump version * Write file entry removal info to stderr rather than stdout * Enable urandom for GNU HURD * stress-fnotify: handle fnotify running out of resource * Use timer_create for linux only * stress-eventfd: make it build only for linux systems * Forgot to add stress-eventfd.c * stress-inotify.c: reduce scope of dirent * stress-futex.c: reduce scope of variable ret * stress-cpu.c: reduce scope of variable fn * Replace stress fields with STRESSOR macro * Check for timeout as an error and sanity check inotify buffer size * Add stress-inotify and --inotify --inotify-ops options * man page: fix spelling mistake * parse-opts.c: fix spelling mistake * Makefile: fix spelling mistake * Fix more spelling mistakes in changelog * Fix spelling mistake in changelog * stress-clock: fully clear sevp * Re-order long_options to make it easier to find options * stress-sysinfo: move i to reduce scope * Fix type on null ptr check on mnt * Add sysinfo stressor and --sysinfo --sysinfo-ops options * Make STRESS_PROCS linux only in stress-ng.h * Add procfs stressor and --procfs --procfs-ops options * Update manual date * Add note about matrix produce CPU stressor * Fix rdrand unrolled comment * Re-order stress_op enum * Re-order stress_id enum * Remove redundant extra loop in stress_pipe * Add linux eventfd stressor * Add stress-clock, re-order man page and help info -- Colin King Mon, 3 Nov 2014 19:16:00 +0000 stress-ng (0.02.24-1) unstable; urgency=medium * Makefile: bump version * Free procs on calloc failure * stress-open: determine max number of fds allowed to open * stress-vm: Handle WIFSIGNALED if waitpid succeeded * Handle WIFSIGNALED if waitpid succeeded * stress sock should be called sock and not socket in the metrics info * Make futex waker verify less pedantic * fix getpriorities returning < 0 for valid priority values * Fix order of null stressor * Add get stressor and --get, --get-ops options * Add sendfile stressor and --sendfile, --sendfile-ops, --sendfile-size * Re-order options man page * Sort options in mini help * Add null stress test and --null, --null-ops options * Add zero stressor and --zero, --zero-ops options * Add kill stressor and --kill, --kill-ops options -- Colin King Thu, 30 Oct 2014 22:14:00 +0000 stress-ng (0.02.23-1) unstable; urgency=medium * Makefile: bump version * Initialise finish time in case it is never run (LP: #1387104) * Add futex stressor (LP: #1386831) -- Colin King Wed, 29 Oct 2014 10:32:00 +0000 stress-ng (0.02.22-1) unstable; urgency=medium * Makefile: bump version * Re-order some of the help options * Fix --random option to create semaphore if semaphore is chosen by random -- Colin King Sun, 26 Oct 2014 11:54:00 +0000 stress-ng (0.02.21-1) unstable; urgency=medium * Bump version again * Mixed up shared memory regions, fix these as --cache breaks -- Colin King Fri, 24 Oct 2014 21:13:00 +0100 stress-ng (0.02.20-1) unstable; urgency=medium * Makefile: bump version again * Remove shm_* and replace with mmap'd shared memory (fix GNU hurd issues) -- Colin King Fri, 24 Oct 2014 19:40:00 +0100 stress-ng (0.02.19-1) unstable; urgency=medium * Makefile: bump version * Don't enable stress-msg for GNU HURD * Make lock_mem_current a no-op for GNU HURD * Don't enable stress-sigq for GNU HURD * Need in stress-ng.h * Cater for systems where sem_init is not supported * shm_open on /tmp path (for kFreeBSD) * Fix non-linux build - don't build in options that are not available * sched.c: make this build on non-linux systems * io-proirity: make this more generic rather than linux specific * stress-nice: work around systems that lack RLIMIT_NICE * stress-mmap: fix kFreeBSD build failures, no MAP_POPULATE * kFreeBSD has no MAP_POPULATE * Update to latest policy standards * debian/control: update to keep in sync with new features -- Colin King Fri, 24 Oct 2014 16:46:00 +0100 stress-ng (0.02.18-1) unstable; urgency=medium * Makefile: bump version, add copyright, change codename, fix make dist -- Colin King Fri, 24 Oct 2014 09:24:00 +0100 stress-ng (0.02.17-1) unstable; urgency=medium * Makefile: bump version again * Break out of stress_run if we've timed out * Add more exit points to check for early abort * stress-vm: restart processes killed by OOM, add more exit checking * stress-bigheap: add more exit checking -- Colin King Thu, 23 Oct 2014 17:38:00 +0100 stress-ng (0.02.16-1) unstable; urgency=medium * Makefile: bump version * Make sequential minimum 0 * stress-fstat: free list on error return * Default to number of online cpus if --sequential 0 is used * Remove debug message -- Colin King Thu, 23 Oct 2014 13:01:00 +0100 stress-ng (0.02.15-1) unstable; urgency=medium * Makefile: bump version * Add rdrand stressor (Intel Ivybridge+) * stress-fstat: don't exit(), just return on error * stress-fstat: don't exit(), just return on error * stress-rename: don't exit(), return on error * stress-utime: don't exit(), just return on failure * Add more explanations to man page * Spread --random stressors more evenly * Fix minor issues in man page -- Colin King Thu, 23 Oct 2014 11:22:00 +0100 stress-ng (0.02.14-1) unstable; urgency=medium * Makefile: bump version * Compile in asm no-op hints only if using gcc * Make gcc optimisation hint a gcc only feature * Add verify mode to omega computation * Add verify mode to pi computation * Add verify mode on hanoi computation * Add verify mode to ln(2) computation * Add verify mode to psi computation * Add verify mode to phi computation and make it long double * Make nsqrt long double precision and add verify mode * Add verify on euler computation * Add verify on IDCT -- Colin King Thu, 23 Oct 2014 00:45:00 +0100 stress-ng (0.02.13-1) unstable; urgency=medium * Makefile: bump version * Properly report child exit error status * mlock all pages down on so they don't get swapped out * Add feedback on file system clean up on SIGINT * Move ioprio_set out of stress-ng.h to io-priority.c * Fix table width in stress-cpu stressors * Add -ve value sanity checking * Add --sequential option -- Colin King Wed, 22 Oct 2014 16:32:00 +0100 stress-ng (0.02.12-1) unstable; urgency=medium * Makefile: bump version * Reduce scope of variables * Add SIGFPE stressor --sigfpe --sigfpe-ops * Add --fork-max option * Move opt parsing to parse-opts.c * Remove unrequired headers from coredump * Re-organise code, move helper functions * Update man page on random cpu stressor -- Colin King Tue, 21 Oct 2014 13:16:00 +0100 stress-ng (0.02.11-1) unstable; urgency=medium * Makefile: bump version * Add fstat check in fallocate verify path * Add verify to stress-yield * Add verify to stress-vm * Add verify to stress-poll * Add verify to stress-fork * Add verify to stress-fallocate * Add verify on stress cpu sqrt * Add verify to bigheap * Add verify to stress-affinity * Abort stressors after a threshold of failures reached * Add --bigheap-growth option * Clean up nice cpu consumer, add a little more info in manual about this * Add --nice and --nice-ops for nice stressor * Re-order some man page options * Fix printf format specifier -- Colin King Sun, 19 Oct 2014 17:29:00 +0100 stress-ng (0.02.10-1) unstable; urgency=medium * Makefile: bump version * Make n ssize_t * Fix msg type field * Add --msg and --msg-ops System V msg send/receive stressor * Add --verify support to stress-pipe * Minor code cleanup * Print pid rather than status when printing failed stressor fork * Add verification of qsort * Add --verify example to manual * Add verify mode to integer cpu stressors * Enable OPT_FAIL for verify mode and all flags * Add MWC_SEED and MWC_SEED_W MWC_SEED_Z macros * Add mwc seeding helper * Use pr_fail on test verify failures * Add mmap memory verify * Minor comment fix * Add FAIL log state * Add --verify option -- Colin King Thu, 16 Oct 2014 23:12:01 +0100 stress-ng (0.02.09-1) unstable; urgency=medium * Makefile: bump version * Makefile: add more smarts to detect header file and Makefile changes * Re-structure sources, break into per test and helper funcs sources -- Colin King Mon, 13 Oct 2014 22:22:22 +0000 stress-ng (0.02.08-1) unstable; urgency=medium * Bump version * Add more sanity checking for numeric options * fflush output before we fork * Allow one to request number of stressors to match number of online CPUs * Fix up comment * Add hand optimised Hamming H(8,4) code cpu stressor -- Colin King Sun, 12 Oct 2014 22:33:00 +0100 stress-ng (0.02.07-1) unstable; urgency=medium * Makefile: bump version * Add computation of the reciprocal Fibonacci constant psi * Add computation of the omega constant as a cpu stressor * Add computation of pi cpu stressor -- Colin King Sat, 11 Oct 2014 20:07:00 +0100 stress-ng (0.02.06-1) unstable; urgency=medium * Makefile: bump version * Rename ctxt -> switch * Add metrics-brief example to man page * Add Towers of Hanoi CPU stessor * Add gray code cpu stressor * Add --metrics-brief option * Add brute force prime search * Add Sieve of Eratosthenes cpu stressor -- Colin King Sat, 11 Oct 2014 11:33:00 +0100 stress-ng (0.02.05-1) unstable; urgency=medium * Makefile: bump version * Add correlation cpu stressor * Add Zeta function cpu stressor * Add more information in manual * Add hash pjw and make jenkin hash iterate more -- Colin King Fri, 10 Oct 2014 16:26:00 +0100 stress-ng (0.02.04-1) unstable; urgency=medium * Makefile: bump version * Add hyperbolic function sinh cosh cpu stressor * Expand man page * Add CCITT CRC16 cpu stressor * Add compare + jmp cpu stressor * Add cpu explog stressor and tidy up man page * Add Ackermann function cpu stressor * Add log(2) computation for cpu stressor * Update man page * Add fibonacci cpu stressor, use register where appropriate -- Colin King Thu, 9 Oct 2014 21:16:00 +0100 stress-ng (0.02.03-1) unstable; urgency=medium * Bump version * Add --fstat, --fstat-ops and --fstat-path fstat stress options * Add --utime, --utime-ops, --utime-fsync options * Add -R, --rename, --rename-ops rename stressor -- Colin King Thu, 9 Oct 2014 11:03:00 +0100 stress-ng (0.02.02-1) unstable; urgency=medium * Makefile: bump version * bigheap: account for the type of out of memory conditions in debug * Forgot to update the man page for --big-heap options -- Colin King Tue, 7 Oct 2014 13:23:00 +0100 stress-ng (0.02.01-1) unstable; urgency=medium * Fix up errors found by coverity scan * Add bigheap stressor * Makefile: bump version * Add coredumping limits * Add oom killer adjustments * Add maxtrix product cpu stressor * Expand float and int tests to various sized arithmetic -- Colin King Tue, 7 Oct 2014 12:18:00 +0100 stress-ng (0.02.00-1) unstable; urgency=medium * Bump version to 0.02.00 * Minor tweaks to man page * Add qsort stressor and --qsort, --qsort-ops, --qsort-size options * Remove some whitespace * Add some notes about the CPU methods used * Add RGV <-> YUV cpu stress method * Add more bithack stressors to bitops cpu method, update man page * Remove --int, --int-ops, --float, --float-ops from help * Re-order cpu stressor methods alphabetically * Remove the need for cpu stressors to return anything * Remove --float and --float-ops and merge into cpu stress * Make uint64_put take 1 arg * Remove --int and --int-ops, merge into int cpu stress * Remove extraneous space * Add comments and some consts * Add IDCT and "all" cpu stress methods * Add euler and jenkins cpu stress methods * Add Fast Fourier Transform cpu stress method * Add Golden Ratio computation as a cpu stressor * Execute the correct stress function * Fix indexing error on procs <---> stress id * Add --cpu-method option to stress the CPU different ways * Add const where applicable, small code tidy up * Replace APP_NAME with app_name static string * Guard against bad flag type * Re-work print, saved ~60 bytes * Sort stressors by name order * Get page size for mmap using sysconf * Make *_put helper args const * Make maximum number of procs a #defined constant * Track mmap'd memory, this stops coverity scan getting confused * Add --hdd-write-size option * Add mmap stressor and --mmap, --mmap-ops, mmap-bytes options * Fully #define out unused stress tests * Check for end-of-table on stressors * Use err and dbg helpers to print syscall failures * Make short get_opt short int * Remove human readable label field, it's duplication * Make short opts a stress_op enum * Make all ops lo, hi thresholds the same (100,100000000) * Make options table driven for stress test options * Add segmentation fault stressor, --sigsegv and --sigsegv-ops options * Add directory stressors * Add link and symlink stressors * Fix help information, start -> stop -- Colin King Thu, 3 Oct 2014 10:44:00 +0100 stress-ng (0.01.32-1) unstable; urgency=medium * Makefile: bump version * Handle forced abort and tidy up when errors occur during start up * Add more termination checks to try to abort faster * Fix --sched option that had missing .TP * Remove duplicate const * Neaten up the see also list -- Colin King Thu, 28 Aug 2014 00:21:01 +0100 stress-ng (0.01.31-1) unstable; urgency=medium * Makefile: bump version * Minor fix-ups in man page * Re-order globals, saves 8 bytes * Make mwc uint64_t * Add some more comments * Remove DIV_OPS_BY_PROCS macro * Fix --keep-name help info (order and missing ') * Fix --sched man page option -- Colin King Tue, 19 Aug 2014 15:47:28 +0100 stress-ng (0.01.30-1) unstable; urgency=medium * Makefile: bump version * Fix up a few resource leaks * Add format length specifier to scanf on integers * Minor var cleanup from cppcheck * Re-work help info * Remove common functionality, make code smaller * Free procs more rigorously. * Clear sigqueue union, keeps valgrind happy * Free procs info at exit * Add more information in man page * Re-use stressor names in checks * Cast max_ops to (void) to avoid unused var warnings * Add --vm-locked option and force cpu affinity changes on cache stress * Fix spelling mistake in man page * Remove some extraneous white spaces * Remove commas from numbers in help * Align help info * Remove redundant code that got accidentally left in * Simplify hogs message * Keep track of per stress test ops count in opt_ops array * Add -P, --poll, --poll-ops zero timeout polling stress test * Add -k, --keep-name option to not change name of stress processes * Add -r, --random option to create N random stress processes -- Colin King Tue, 5 Aug 2014 17:25:01 +0100 stress-ng (0.01.29-1) unstable; urgency=medium * Makefile: bump version * Use si_value.sival_int instead of info.si_int (Closes: #756787) * Fix incorrect nesting of OPT_SIGQUEUE* -- Colin King Fri, 1 Aug 2014 23:25:23 +0100 stress-ng (0.01.28-1) unstable; urgency=medium * Makefile: bump version, change codename * Add sigqueue and sigwaitinfo stress, new --sigq, --siqq-ops options * Make mwc inline * Make opt_do_run volatile * Make -O2 default * Remove numerous printfs in help info * Remove lots of duplicate stress test names from code * Fixup print % qualifier * Clean all objects on make clean -- Colin King Wed, 30 Jul 2014 10:25:00 +0100 stress-ng (0.01.27-1) unstable; urgency=medium * Makefile: bump version * Add more info to man page * Add open stress test * Fix bug in semaphore range checking * Fix dbg message for stress_int * Add some more comments * Add more information in man page * Increase the -l option accuracy by biasing by the select() overhead time * Add missing comma to output -- Colin King Tue, 29 Jul 2014 00:33:31 +0100 stress-ng (0.01.26-1) unstable; urgency=medium * Makefile: bump version * Add semaphore stress, --sem and --sem-ops options -- Colin King Sun, 27 Jul 2014 16:24:22 +0100 stress-ng (0.01.25-1) unstable; urgency=medium * Makefile: bump version * More aggressive process termination to kill any lingering processes -- Colin King Sun, 20 Jul 2014 18:05:01 +0100 stress-ng (0.01.24-1) unstable; urgency=medium * Makefile: bump version * Makefile: add helper.c to make dist * Add integer stressor, --int and --int-ops options * urandom: cater for non-linux builds * Add --float and --float-ops floatin point stressors * Add urandom stress, -u, --urandom and --urandom-ops options * Make timer stress more responsive to SIGINTs * Forgot to add 'T' option to getopt -- Colin King Sun, 20 Jul 2014 17:38:43 +0100 stress-ng (0.01.23-1) unstable; urgency=medium * Makefile: bump version * Add snappier process termination * Add -h option * Add more debug on exit paths * Add more checking on sigaction * Minor code tidy up * Move time_now() * Use timeval helper in time_now() * Fix build error on GNU HURD -- Colin King Mon, 14 Jul 2014 11:49:41 +0100 stress-ng (0.01.22-1) unstable; urgency=medium * Makefile: bump version * Add directory entry thrashing * Track ftruncate errors -- Colin King Sun, 13 Jul 2014 17:19:05 +0100 stress-ng (0.01.21-1) unstable; urgency=medium * Makefile: bump version * Remove need for rand, it makes Coverity Scan complain * Check for freq divide by zero * Add in __linux__ build dependency on timers * Add timer stress test --timer, --timer-ops and --timer-freq options * Note that affinity options linux only in man page * opt_affinity_ops is linux only * Fix man page -F option * Add CPU affinity stress processes, add --affinity and --affinity-ops options -- Colin King Sat, 12 Jul 2014 21:50:00 +0100 stress-ng (0.01.20-1) unstable; urgency=medium * Makefile: bump version * Ignore return from ftruncate, we don't care * Fix spelling mistakes * Standardise error messages * Remove extraneous pid at end of pr_* messages * Add more information when error occurs -- Colin King Mon, 7 Jul 2014 20:00:00 +0100 stress-ng (0.01.19-1) unstable; urgency=medium * Makefile: bump version * Willfully ignore posix_fallocate() failures, we don't care * Terminate and tidy up flock stress temp file * Update help information * Make conditional stress tests no-ops rather than not including them * Add file locking stress, --flock and --flock-ops options * Add --vm-populate option * Add fallocate test and -F, --fallocate, --fallocate-ops options * Divide yield bogo ops by number of yield processes -- Colin King Mon, 7 Jul 2014 19:26:00 +0100 stress-ng (0.01.18-1) unstable; urgency=medium * Makefile: bump version * Add yield stress test and -y, --yield, --yield-ops options * Add ionice-class and ionice-level options (Linux only) -- Colin King Sun, 6 Jul 2014 11:14:00 +0100 stress-ng (0.01.17-1) unstable; urgency=medium * Makefile: update version * Add build hardening * Add scheduler options to man page * Allow --sched which to show available schedulers * Add --sched and --sched-prio options -- Colin King Fri, 4 Jul 2014 16:38:00 +0100 stress-ng (0.01.16-1) unstable; urgency=medium * Don't include prctl.h unless compiled for a linux target * Reduce scope of j loop index * Reduce scope of ret * Clarify bitwise operation * Remove duplicate consts -- Colin King Sat, 21 Jun 2014 14:24:15 +0100 stress-ng (0.01.15-1) unstable; urgency=medium * Initial Debian upload (Closes: #735674) * Makefile: bump version * Minor tidy-ups * Minor changes to man page -- Colin King Mon, 26 May 2014 10:39:00 +0200 stress-ng (0.01.14-1) unstable; urgency=medium * Makefile: bump version * Add -a, -all run all stress test option * Cast close returns to (void) when we don't care * Minor comment and code clean up * Re-order options in man page * Add socket stressors * Add CPU cache to hogs line * Fix up and re-order options in help info -- Colin King Thu, 22 May 2014 16:01:01 +0100 stress-ng (0.01.13-1) unstable; urgency=low * Makefile: bump version * Fill memory with something other that '0' * Add cache thrash stress options to man page * Add cache stress * Update man page with new pipe I/O options * Add pipe I/O loading test -- Colin King Tue, 20 May 2014 12:14:00 +0100 stress-ng (0.01.12-1) unstable; urgency=low * Makefile: bump version * Add some more comments * Remove atoi and use strtol to handle underflow/overflow checking * Add print format specifier * Fix status not being printed -- Colin King Mon, 19 May 2014 10:40:00 +0100 stress-ng (0.01.11-1) unstable; urgency=low * Makefile: bump version * Fix copyright * Makefile: Fix make dist, use plain old tar to omit debian contents * Add COPYING file * Add a -l --cpu-load option to load CPUs to a specified amount -- Colin King Fri, 28 Mar 2014 21:08:11 +0000 stress-ng (0.01.10-1) unstable; urgency=low * Makefile: bump version * debian/control: set arch to any * Fix up copyright company * Fix formatting of the copyright in the source * Re-write the description and make it a little clearer in the source * Detect and report if a worker stress process failed * Make process name changing linux only feature -- Colin King Mon, 20 Jan 2014 17:00:01 +0000 stress-ng (0.01.09-1) unstable; urgency=low * Initial release into Debian (Closes: #735674) * Makefile: bump version * Fix up description once more * Add some minimal comments * Re-work debian control again. -- Colin King Fri, 17 Jan 2014 11:52:13 +0000 stress-ng (0.01.08-1) unstable; urgency=low * Makefile: bump version * debian/control: Update debian control * debian/rules, remove override_dh_auto_build * debian/control: update, minor changes * debian/compat: update to 9 * Check for write fail -- Colin King Thu, 16 Jan 2014 13:47:11 +0000 stress-ng (0.01.07) trusty; urgency=low * Makefile: bump version * Fix typo in help info * Ensure we quit when ctxt switch parent is killed * Update man page date * Add context switch stress test * Add fork stress test * Update copyright year -- Colin King Thu, 16 Jan 2014 13:27:51 +0000 stress-ng (0.01.06) trusty; urgency=low * Makefile: bump version again * vm-keep does not have an optarg -- Colin King Fri, 6 Dec 2013 18:46:20 +0000 stress-ng (0.01.05) trusty; urgency=low * Makefile: bump version * Fix opt_vm_hang bug -- Colin King Fri, 6 Dec 2013 15:50:01 +0000 stress-ng (0.01.04) trusty; urgency=low * Makefile: bump version * ensure ret is initialized in print() * Fix some signed / unsigned comparison warnings * Make print return number of chars emitted and ignore some func returns * Makefile: add -Wextra * Set shm mem name to be unique on parent pid * handle out of memory error on procs * tidy up and constify where applicable -- Colin King Tue, 19 Nov 2013 12:57:22 +0000 stress-ng (0.01.03) saucy; urgency=low * Makefile: bump version * Make mmap failure non fatal -- Colin King Fri, 17 Oct 2013 19:38:31 +0100 stress-ng (0.01.02) saucy; urgency=low * Makefile: bump version * Set umask before using mkstemp -- Colin King Wed, 15 Oct 2013 15:28:33 +0100 stress-ng (0.01.01) saucy; urgency=low * Makefile: bump version * hdd: fix --hdd-noclean option * hdd: change buffer size, exit early if hdd-ops reached per write * Add default settings as #defines * Make metrics labels a little more understandable * Limit vm-ops to min of 100 -- Colin King Tue, 15 Oct 2013 16:20:05 +0100 stress-ng (0.01.00) saucy; urgency=low * Initial version -- Colin King Tue, 15 Oct 2013 13:35:40 +0100