-
stress-ng (0.13.12-2ubuntu1) jammy; urgency=medium
* Fix malloc stressor verification (LP: #1972906)
- backport of upstream commit ddecc607f916f8c9561f40c7ddc7d9e5c7528ff1
-- Colin Ian King <email address hidden> Fri, 28 Oct 2022 08:21:41 +0100
-
stress-ng (0.13.12-2) unstable; urgency=medium
* Fix SIGINT sending alarm signal to all stressors (LP: #1966657)
- should be sending signal to the process group and not a specific pid
-- Colin Ian King <email address hidden> Mon, 28 Mar 2022 10:02:12 +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 <email address hidden> 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 <email address hidden>
* 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 <email address hidden> 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 <email address hidden> 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 <email address hidden> 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 <email address hidden> 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 <email address hidden> 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 implimentation 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 <email address hidden> 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 <email address hidden> 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
inheritence
* stress-misaligned: perform misaligned read/writes on page and cache
boundaries
-- Colin King <email address hidden> Tue, 28 Sep 2021 11:02:11 +0100