diff options
author | Ryan Stone <rstone@FreeBSD.org> | 2021-01-29 21:13:57 +0000 |
---|---|---|
committer | Ryan Stone <rstone@FreeBSD.org> | 2021-02-03 21:16:51 +0000 |
commit | 660344ca44c63bfe4a16c3e57d0f6dbcbb5e083e (patch) | |
tree | 22cbdc1963a999bfa910222811f06284e1d82ea9 /sys/sys | |
parent | 8727c174b0fe44766bb7ea765dac6d5f82818103 (diff) | |
download | src-660344ca44c63bfe4a16c3e57d0f6dbcbb5e083e.tar.gz src-660344ca44c63bfe4a16c3e57d0f6dbcbb5e083e.zip |
Add a VM flag to prevent reclaim on a failed contig allocation
If a M_WAITOK contig alloc fails, the VM subsystem will try to
reclaim contiguous memory twice before actually failing the
request. On a system with 64GB of RAM I've observed this take
400-500ms before it finally gives up, and I believe that this
will only be worse on systems with even more memory.
In certain contexts this delay is extremely harmful, so add a flag
that will skip reclaim for allocation requests to allow those
paths to opt-out of doing an expensive reclaim.
Sponsored by: Dell Inc
Differential Revision: https://reviews.freebsd.org/D28422
Reviewed by: markj, kib
Diffstat (limited to 'sys/sys')
-rw-r--r-- | sys/sys/malloc.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/sys/malloc.h b/sys/sys/malloc.h index a11dd767efc5..54a05e94a3a2 100644 --- a/sys/sys/malloc.h +++ b/sys/sys/malloc.h @@ -54,6 +54,7 @@ */ #define M_NOWAIT 0x0001 /* do not block */ #define M_WAITOK 0x0002 /* ok to block */ +#define M_NORECLAIM 0x0080 /* do not reclaim after failure */ #define M_ZERO 0x0100 /* bzero the allocation */ #define M_NOVM 0x0200 /* don't ask VM for pages */ #define M_USE_RESERVE 0x0400 /* can alloc out of reserve memory */ |