diff options
author | jeff <jeff@FreeBSD.org> | 2002-04-14 01:56:25 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2002-04-14 01:56:25 +0000 |
commit | 5b62962da48e486dba5ac344985ba49156a2d7ba (patch) | |
tree | 14a5ee8ba40bd0f5a835fc07d495f1d3dc0ebaf2 /sys/vm/uma_int.h | |
parent | ca0d3fbd5df04cdbd5d92cbf158ca4e831e3dab3 (diff) | |
download | FreeBSD-src-5b62962da48e486dba5ac344985ba49156a2d7ba.zip FreeBSD-src-5b62962da48e486dba5ac344985ba49156a2d7ba.tar.gz |
Fix the calculation that determines uz_maxpages. It was off for large zones.
Fortunately we have no large zones with maximums specified yet, so it wasn't
breaking anything.
Implement blocking when a zone exceeds the maximum and M_WAITOK is specified.
Previously this just failed like the old zone allocator did. The old zone
allocator didn't support WAITOK/NOWAIT though so we should do what we
advertise.
While I was in there I cleaned up some more zalloc logic to further simplify
that code path and reduce redundant code. This was needed to make the blocking
work properly anyway.
Diffstat (limited to 'sys/vm/uma_int.h')
-rw-r--r-- | sys/vm/uma_int.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/vm/uma_int.h b/sys/vm/uma_int.h index d0a55b2..3190bb8 100644 --- a/sys/vm/uma_int.h +++ b/sys/vm/uma_int.h @@ -272,6 +272,8 @@ struct uma_zone { #define UMA_ZFLAG_INTERNAL 0x0004 /* Internal zone, no offpage no PCPU */ #define UMA_ZFLAG_MALLOC 0x0008 /* Zone created by malloc */ #define UMA_ZFLAG_NOFREE 0x0010 /* Don't free data from this zone */ +#define UMA_ZFLAG_FULL 0x0020 /* This zone reached uz_maxpages */ + /* This lives in uflags */ #define UMA_ZONE_INTERNAL 0x1000 /* Internal zone for uflags */ |