summaryrefslogtreecommitdiffstats
path: root/sys/vm/uma_int.h
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2002-04-14 01:56:25 +0000
committerjeff <jeff@FreeBSD.org>2002-04-14 01:56:25 +0000
commit5b62962da48e486dba5ac344985ba49156a2d7ba (patch)
tree14a5ee8ba40bd0f5a835fc07d495f1d3dc0ebaf2 /sys/vm/uma_int.h
parentca0d3fbd5df04cdbd5d92cbf158ca4e831e3dab3 (diff)
downloadFreeBSD-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.h2
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 */
OpenPOWER on IntegriCloud