Skip to content
This is a mirror of the upstream project at http://kernel.ubuntu.com/git/cking/stress-ng.git/ - stress-ng will stress test a computer system in various selectable ways. It was designed to exercise various physical subsystems of a computer as well as the various operating system kernel interfaces.
Branch: master
Clone or download
ColinIanKing Add kernel coverage test bash script
No support for this whatsoever. It is used to see how well stress-ng
exercises the kernel.

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Latest commit c088e7a Jun 19, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bash-completion bash-completion: add vm-madvise completion Jun 17, 2019
debian Debian: update changelog Jun 8, 2019
example-jobs Remove trailing space and tabs from end of lines Jul 4, 2018
mascot Add mascot svg Dec 24, 2014
snap Makefile: bump version Jun 7, 2019
test Add build time check for pidfd-send-signal system call Apr 17, 2019
.gitignore Add .gitignore Sep 10, 2018
.travis.yml Use trusty dist in travis Jun 25, 2018
COPYING Add COPYING file Mar 28, 2014
Makefile Add netlink taskstats stressor Jun 15, 2019
Makefile.config Add netlink taskstats stressor Jun 15, 2019
README README: update number of stressors Jun 15, 2019
README.Android Remove trailing space and tabs from end of lines Jul 4, 2018
TODO
config Makefile: save and re-load configuration Feb 16, 2017
core-affinity.c
core-cache.c core-cache: constify len2 Jun 11, 2019
core-cpu.c Rename core helper source, add core- prefix to souce Jan 11, 2019
core-helper.c core-helper: minor constification clean ups Jun 11, 2019
core-ignite-cpu.c Add shim_waitpid to silently handle EINTR by retrying Apr 16, 2019
core-io-priority.c core-io-priority: remove __linux__ check Jan 27, 2019
core-job.c core-job: fix optind check, should only check for non --job options May 31, 2019
core-limit.c Rename core helper source, add core- prefix to souce Jan 11, 2019
core-log.c core-log: reduce scope of empty_ts Apr 22, 2019
core-madvise.c Rename core helper source, add core- prefix to souce Jan 11, 2019
core-mincore.c Add more yield points when touching pages with mincore_touch_pages Jun 7, 2019
core-mlock.c Rename core helper source, add core- prefix to souce Jan 11, 2019
core-mmap.c Rename core helper source, add core- prefix to souce Jan 11, 2019
core-mounts.c Rename core helper source, add core- prefix to souce Jan 11, 2019
core-mwc.c core-mwc: add a constification Jun 11, 2019
core-net.c
core-out-of-memory.c core-out-of-memory: remove some empty lines Jan 27, 2019
core-parse-opts.c core-parse-opts: add some constifications Jun 11, 2019
core-perf-event.c Rename core helper source, add core- prefix to souce Jan 11, 2019
core-perf.c core-perf: fix spinlock error check Jun 15, 2019
core-personality.c rename personality.c to core-personality.c, update Makefile Jan 12, 2019
core-sched.c Rename core helper source, add core- prefix to souce Jan 11, 2019
core-setting.c stress-*: make various variables static Apr 20, 2019
core-shim.c core-shim: add a constification Jun 11, 2019
core-thermal-zone.c core-thermal-zone: add constifications Jun 11, 2019
core-thrash.c core-thrash: add zone compaction, make per process paging less aggres… Jun 10, 2019
core-time.c core-time: add constification Jun 11, 2019
kernel-coverage.sh Add kernel coverage test bash script Jun 19, 2019
smatchify.sh Update copyright year Jan 1, 2019
stress-access.c Move per stressor help info into each stressor May 1, 2019
stress-af-alg.c stress-af-alg: fix build error, add missing comma May 1, 2019
stress-affinity.c
stress-aio-linux.c Move per stressor help info into each stressor May 1, 2019
stress-aio.c Fix up missing options args on help for various stressors Jun 7, 2019
stress-apparmor.c Fix up missing options args on help for various stressors Jun 7, 2019
stress-atomic.c Move per stressor help info into each stressor May 1, 2019
stress-bad-altstack.c stress-bad-altstack: fix inverted logic of yield checks Jun 7, 2019
stress-bigheap.c Add more yield points when touching pages with mincore_touch_pages Jun 7, 2019
stress-bind-mount.c Move per stressor help info into each stressor May 1, 2019
stress-branch.c Move per stressor help info into each stressor May 1, 2019
stress-brk.c Move per stressor help info into each stressor May 1, 2019
stress-bsearch.c Move per stressor help info into each stressor May 1, 2019
stress-cache.c Move per stressor help info into each stressor May 1, 2019
stress-cap.c Move per stressor help info into each stressor May 1, 2019
stress-chdir.c Move per stressor help info into each stressor May 1, 2019
stress-chmod.c Move per stressor help info into each stressor May 1, 2019
stress-chown.c
stress-chroot.c check for capabilities rather than if euid is zero Jun 4, 2019
stress-clock.c Move per stressor help info into each stressor May 1, 2019
stress-clone.c Add more yield points when touching pages with mincore_touch_pages Jun 7, 2019
stress-close.c Move per stressor help info into each stressor May 1, 2019
stress-context.c Move per stressor help info into each stressor May 1, 2019
stress-copy-file.c Move per stressor help info into each stressor May 1, 2019
stress-cpu-online.c Move per stressor help info into each stressor May 1, 2019
stress-cpu.c Fix up missing options args on help for various stressors Jun 7, 2019
stress-crypt.c Move per stressor help info into each stressor May 1, 2019
stress-cyclic.c
stress-daemon.c Move per stressor help info into each stressor May 1, 2019
stress-dccp.c Move per stressor help info into each stressor May 1, 2019
stress-dentry.c Move per stressor help info into each stressor May 1, 2019
stress-dev-shm.c Fix up missing options args on help for various stressors Jun 7, 2019
stress-dev.c stress-dev: add hpet HPET_INFO ioctl dev check Jun 10, 2019
stress-dir.c Move per stressor help info into each stressor May 1, 2019
stress-dirdeep.c
stress-dnotify.c stress-dnotify: make dnotify wait loop yield Jun 7, 2019
stress-dup.c Move per stressor help info into each stressor May 1, 2019
stress-dynlib.c Move per stressor help info into each stressor May 1, 2019
stress-efivar.c check for capabilities rather than if euid is zero Jun 4, 2019
stress-enosys.c stress-enosys: replace multiple if statements with loop May 19, 2019
stress-epoll.c Move per stressor help info into each stressor May 1, 2019
stress-eventfd.c Move per stressor help info into each stressor May 1, 2019
stress-exec.c Move per stressor help info into each stressor May 1, 2019
stress-fallocate.c
stress-fanotify.c stress-fanotify: check if FAN_MARK_FILESYSTEM is defined Jun 10, 2019
stress-fault.c stress-fault: make minor page faults more stressy May 11, 2019
stress-fcntl.c stress-fcntl: ignore EINTR as a failed error return Jun 7, 2019
stress-fiemap.c Move per stressor help info into each stressor May 1, 2019
stress-fifo.c Move per stressor help info into each stressor May 1, 2019
stress-file-ioctl.c Move per stressor help info into each stressor May 1, 2019
stress-filename.c Move per stressor help info into each stressor May 1, 2019
stress-flock.c Move per stressor help info into each stressor May 1, 2019
stress-fork.c Move per stressor help info into each stressor May 1, 2019
stress-fp-error.c Move per stressor help info into each stressor May 1, 2019
stress-fstat.c Move per stressor help info into each stressor May 1, 2019
stress-full.c stress-full: move help info to start of function to fix build error May 1, 2019
stress-funccall.c stress-funccall: rename funcall -> funccall May 14, 2019
stress-funcret.c
stress-futex.c Move per stressor help info into each stressor May 1, 2019
stress-get.c stress_get: add deprecated _sysctl call to get sysctl info Jun 13, 2019
stress-getdent.c Move per stressor help info into each stressor May 1, 2019
stress-getrandom.c Move per stressor help info into each stressor May 1, 2019
stress-handle.c Move per stressor help info into each stressor May 1, 2019
stress-hdd.c Move per stressor help info into each stressor May 1, 2019
stress-heapsort.c sorting: fix comments of sorting functions Jun 1, 2019
stress-hrtimers.c stress-hrtimes: optimize the reaping process of child processes Jun 7, 2019
stress-hsearch.c Move per stressor help info into each stressor May 1, 2019
stress-icache.c stress-icache: fix build error, add missing comma May 1, 2019
stress-icmp-flood.c check for capabilities rather than if euid is zero Jun 4, 2019
stress-idle-page.c check for capabilities rather than if euid is zero Jun 4, 2019
stress-inode-flags.c stress-inode-flags: add another yield point check per ioctl Jun 7, 2019
stress-inotify.c Move per stressor help info into each stressor May 1, 2019
stress-iomix.c stress-iomix: add yield point in ioctl exercising Jun 7, 2019
stress-ioport.c Move per stressor help info into each stressor May 1, 2019
stress-ioprio.c stress-ioprio: add more yield points Jun 7, 2019
stress-iosync.c Move per stressor help info into each stressor May 1, 2019
stress-ipsec-mb.c Move per stressor help info into each stressor May 1, 2019
stress-itimer.c
stress-kcmp.c Move per stressor help info into each stressor May 1, 2019
stress-key.c Move per stressor help info into each stressor May 1, 2019
stress-kill.c Move per stressor help info into each stressor May 1, 2019
stress-klog.c Move per stressor help info into each stressor May 1, 2019
stress-lease.c Move per stressor help info into each stressor May 1, 2019
stress-link.c Move per stressor help info into each stressor May 1, 2019
stress-locka.c Move per stressor help info into each stressor May 1, 2019
stress-lockbus.c stress-lockbus: add a page boundary split lock Jun 18, 2019
stress-lockf.c Move per stressor help info into each stressor May 1, 2019
stress-lockofd.c Move per stressor help info into each stressor May 1, 2019
stress-longjmp.c Move per stressor help info into each stressor May 1, 2019
stress-loop.c stress-loop: add LOOP_SET_DIRECT_IO ioctl Jun 10, 2019
stress-lsearch.c Move per stressor help info into each stressor May 1, 2019
stress-madvise.c
stress-malloc.c Add more yield points when touching pages with mincore_touch_pages Jun 7, 2019
stress-matrix-3d.c Move per stressor help info into each stressor May 1, 2019
stress-matrix.c
stress-mcontend.c Move per stressor help info into each stressor May 1, 2019
stress-membarrier.c Move per stressor help info into each stressor May 1, 2019
stress-memcpy.c Move per stressor help info into each stressor May 1, 2019
stress-memfd.c Move per stressor help info into each stressor May 1, 2019
stress-memrate.c Fix up missing options args on help for various stressors Jun 7, 2019
stress-memthrash.c Move per stressor help info into each stressor May 1, 2019
stress-mergesort.c
stress-mincore.c Move per stressor help info into each stressor May 1, 2019
stress-mknod.c Move per stressor help info into each stressor May 1, 2019
stress-mlock.c Move per stressor help info into each stressor May 1, 2019
stress-mlockmany.c Move per stressor help info into each stressor May 1, 2019
stress-mmap.c stress-mmap: voidify unused argument mmap_mprotect Jun 5, 2019
stress-mmapaddr.c Move per stressor help info into each stressor May 1, 2019
stress-mmapfixed.c Move per stressor help info into each stressor May 1, 2019
stress-mmapfork.c Move per stressor help info into each stressor May 1, 2019
stress-mmapmany.c Move per stressor help info into each stressor May 1, 2019
stress-mq.c stress-mq: add lseek and poll on mq descriptor for Linux Jun 11, 2019
stress-mremap.c stress-mremap: remove empty line Jun 1, 2019
stress-msg.c stress-msg: declare get_procinfo only when required for linux Jun 14, 2019
stress-msync.c Move per stressor help info into each stressor May 1, 2019
stress-netdev.c
stress-netlink-proc.c check for capabilities rather than if euid is zero Jun 4, 2019
stress-netlink-task.c stress-netlink-task: voidify a few function returns and remove a whit… Jun 18, 2019
stress-ng.1 Manual: fix up cyclic-method options Jun 17, 2019
stress-ng.c Add netlink taskstats stressor Jun 15, 2019
stress-ng.h Add netlink taskstats stressor Jun 15, 2019
stress-nice.c Move per stressor help info into each stressor May 1, 2019
stress-nop.c Move per stressor help info into each stressor May 1, 2019
stress-null.c Move per stressor help info into each stressor May 1, 2019
stress-numa.c Move per stressor help info into each stressor May 1, 2019
stress-oom-pipe.c Move per stressor help info into each stressor May 1, 2019
stress-opcode.c Move per stressor help info into each stressor May 1, 2019
stress-open.c Move per stressor help info into each stressor May 1, 2019
stress-personality.c Move per stressor help info into each stressor May 1, 2019
stress-physpage.c check for capabilities rather than if euid is zero Jun 4, 2019
stress-pidfd.c stress-pidfd: replace goto's with continues May 30, 2019
stress-pipe.c Move per stressor help info into each stressor May 1, 2019
stress-pkey.c Fix up missing options args on help for various stressors Jun 7, 2019
stress-poll.c stress-poll: replace redo goto with a for-loop May 30, 2019
stress-prctl.c stress-prct: remove environ declaration, it is defined int unistd.h Jun 4, 2019
stress-procfs.c stress-sysfs: exercise /proc/thread_self earlier Jun 13, 2019
stress-pthread.c Move per stressor help info into each stressor May 1, 2019
stress-ptrace.c Move per stressor help info into each stressor May 1, 2019
stress-pty.c Move per stressor help info into each stressor May 1, 2019
stress-qsort.c sorting: fix comments of sorting functions Jun 1, 2019
stress-quota.c Move per stressor help info into each stressor May 1, 2019
stress-radixsort.c Move per stressor help info into each stressor May 1, 2019
stress-rawdev.c Move per stressor help info into each stressor May 1, 2019
stress-rawsock.c stress-rawsock: limit this to linux for the moment Jun 11, 2019
stress-rdrand.c Move per stressor help info into each stressor May 1, 2019
stress-readahead.c Move per stressor help info into each stressor May 1, 2019
stress-remap-file-pages.c Move per stressor help info into each stressor May 1, 2019
stress-rename.c Move per stressor help info into each stressor May 1, 2019
stress-resources.c stress-resources: fix missing guard on fd_ev Jun 11, 2019
stress-revio.c Move per stressor help info into each stressor May 1, 2019
stress-rlimit.c Add more yield points when touching pages with mincore_touch_pages Jun 7, 2019
stress-rmap.c Move per stressor help info into each stressor May 1, 2019
stress-rtc.c Move per stressor help info into each stressor May 1, 2019
stress-schedpolicy.c Move per stressor help info into each stressor May 1, 2019
stress-sctp.c stress-sctp: limit to ipv4 and ipv6 domains Jun 17, 2019
stress-seal.c Move per stressor help info into each stressor May 1, 2019
stress-seccomp.c stress-seccomp: add maximum seccomp bpf filter stress May 21, 2019
stress-seek.c
stress-sem-sysv.c stress-sem-sysv: add occasional reading of /proc/sysvipc/sem for linux Jun 14, 2019
stress-sem.c Move per stressor help info into each stressor May 1, 2019
stress-sendfile.c Move per stressor help info into each stressor May 1, 2019
stress-set.c Move per stressor help info into each stressor May 1, 2019
stress-shellsort.c stress-shellsort: remove base_index helper function Jun 4, 2019
stress-shm-sysv.c
stress-shm.c stress-shm: voidify memset return May 19, 2019
stress-sigfd.c Move per stressor help info into each stressor May 1, 2019
stress-sigfpe.c Move per stressor help info into each stressor May 1, 2019
stress-sigio.c Move per stressor help info into each stressor May 1, 2019
stress-sigpending.c Move per stressor help info into each stressor May 1, 2019
stress-sigpipe.c Move per stressor help info into each stressor May 1, 2019
stress-sigq.c Move per stressor help info into each stressor May 1, 2019
stress-sigrt.c Move per stressor help info into each stressor May 1, 2019
stress-sigsegv.c Move per stressor help info into each stressor May 1, 2019
stress-sigsuspend.c
stress-sleep.c Move per stressor help info into each stressor May 1, 2019
stress-socket-diag.c
stress-socket-fd.c Move per stressor help info into each stressor May 1, 2019
stress-socket.c stress-socket: add baroque mmap on socket fd Jun 10, 2019
stress-socketpair.c Move per stressor help info into each stressor May 1, 2019
stress-softlockup.c check for capabilities rather than if euid is zero Jun 4, 2019
stress-spawn.c Fix up missing options args on help for various stressors Jun 7, 2019
stress-splice.c Move per stressor help info into each stressor May 1, 2019
stress-stack.c Move per stressor help info into each stressor May 1, 2019
stress-stackmmap.c sterss-stackmmap: move help info to start of function to fix build error May 1, 2019
stress-str.c stress-str: fix incorrect size for str2 Jun 5, 2019
stress-stream.c Move per stressor help info into each stressor May 1, 2019
stress-swap.c check for capabilities rather than if euid is zero Jun 4, 2019
stress-switch.c Move per stressor help info into each stressor May 1, 2019
stress-sync-file.c Move per stressor help info into each stressor May 1, 2019
stress-sysbadaddr.c Move per stressor help info into each stressor May 1, 2019
stress-sysfs.c Move per stressor help info into each stressor May 1, 2019
stress-sysinfo.c Move per stressor help info into each stressor May 1, 2019
stress-tee.c Move per stressor help info into each stressor May 1, 2019
stress-timer.c Move per stressor help info into each stressor May 1, 2019
stress-timerfd.c Move per stressor help info into each stressor May 1, 2019
stress-tlb-shootdown.c Move per stressor help info into each stressor May 1, 2019
stress-tmpfs.c stress-tmpfs: add parentheses around magic number Jun 17, 2019
stress-tree.c Move per stressor help info into each stressor May 1, 2019
stress-tsc.c Move per stressor help info into each stressor May 1, 2019
stress-tsearch.c Move per stressor help info into each stressor May 1, 2019
stress-udp-flood.c Move per stressor help info into each stressor May 1, 2019
stress-udp.c stress-udp: limit to ipv4 and ipv6 domains Jun 17, 2019
stress-unshare.c Move per stressor help info into each stressor May 1, 2019
stress-urandom.c Move per stressor help info into each stressor May 1, 2019
stress-userfaultfd.c Move per stressor help info into each stressor May 1, 2019
stress-utime.c Move per stressor help info into each stressor May 1, 2019
stress-vdso.c Fix up missing options args on help for various stressors Jun 7, 2019
stress-vecmath.c Revert "stress-vecmath: align data to cache boundary and copy on init… Jun 4, 2019
stress-version.h Update copyright year Jan 1, 2019
stress-vforkmany.c stress-vfork: improve vforkmany stressor yielding Jun 7, 2019
stress-vm-addr.c Move per stressor help info into each stressor May 1, 2019
stress-vm-rw.c Move per stressor help info into each stressor May 1, 2019
stress-vm-segv.c Move per stressor help info into each stressor May 1, 2019
stress-vm-splice.c Move per stressor help info into each stressor May 1, 2019
stress-vm.c stress-vm: include options that are no-ops for some arches May 1, 2019
stress-wait.c Move per stressor help info into each stressor May 1, 2019
stress-watchdog.c Move per stressor help info into each stressor May 1, 2019
stress-wcstr.c stress-wcs: fix segfault because of using incorrect string pointer Jun 8, 2019
stress-xattr.c Move per stressor help info into each stressor May 1, 2019
stress-yield.c stress-yield: clarify yielder task types Jun 6, 2019
stress-zero.c Move per stressor help info into each stressor May 1, 2019
stress-zlib.c zlib: add lrand48 data source zlib method May 18, 2019
stress-zombie.c Move per stressor help info into each stressor May 1, 2019
syscalls.txt Add copyright boilerplate to some text files May 1, 2019
usr.bin.pulseaudio.eg

README

stress-ng

stress-ng will stress test a computer system in various selectable ways. It
was designed to exercise various physical subsystems of a computer as well as
the various operating system kernel interfaces. Stress-ng features:

  * over 220 stress tests
  * over 50 CPU specific stress tests that exercise floating point, integer,
    bit manipulation and control flow
  * over 20 virtual memory stress tests
  * portable: builds on Linux, Solaris, *BSD, Minix, Android, MacOS X,
    Debian Hurd, Haiku, Windows Subsystem for Linux and SunOs/Dilos with
    gcc, clang, tcc and pcc.

stress-ng was originally intended to make a machine work hard and trip hardware
issues such as thermal overruns as well as operating system bugs that only
occur when a system is being thrashed hard. Use stress-ng with caution as some
of the tests can make a system run hot on poorly designed hardware and also can
cause excessive system thrashing which may be difficult to stop.

stress-ng can also measure test throughput rates; this can be useful to observe
performance changes across different operating system releases or types of
hardware. However, it has never been intended to be used as a precise benchmark
test suite, so do NOT use it in this manner.

Running stress-ng with root privileges will adjust out of memory settings on
Linux systems to make the stressors unkillable in low memory situations, so use
this judiciously. With the appropriate privilege, stress-ng can allow the ionice
class and ionice levels to be adjusted, again, this should be used with care.

To build, the following libraries will ensure a fully functional stress-ng
build

Debian, Ubuntu:

  * libaio-dev
  * libapparmor-dev
  * libattr1-dev
  * libbsd-dev
  * libcap-dev
  * libgcrypt11-dev
  * libipsec-mb-dev
  * libkeyutils-dev
  * libsctp-dev
  * zlib1g-dev

RHEL, Fedora, Centos:

  * libaio-devel
  * libattr-devel
  * libbsd-devel
  * libcap-devel
  * libgcrypt-devel
  * keyutils-libs
  * libsctp-devel
  * zlib-devel

NOTE: the build will try to detect build depedencies and will build an image
with functionality disabled if the support libraries are not installed.

To build on BSD systems, one requires gcc and GNU make:
        CC=gcc gmake clean
	CC=gcc gmake

To build on OS X systems, just use:
	make clean
	make

To build on MINIX, gmake and clang are required:
	CC=clang gmake clean
	CC=clang gmake

To build on SunOS, one requires GCC and GNU make, build using:
	CC=gcc gmake clean
	CC=gcc gmake

To build on Dilos, one requires GCC and GNU make, build using:
	CC=gcc gmake clean
	CC=gcc gmake

To build on Haiku Alpha 4:
	make clean
	make

To build a static image (example, for Android), use:
	make clean
	STATIC=1 make

To build with full warnings enabled:
	make clean
	PEDANTIC=1 make

For more information, see: http://kernel.ubuntu.com/~cking/stress-ng/

I am keen to add to the stress-ng project page any citations to research or
projects that use stress-ng.  I also appreciate information concerning kernel
bugs or performance regressions found with stress-ng.
You can’t perform that action at this time.