Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Jan 2018 00:47:33 +0000 (UTC)
From:      Mark Johnston <markj@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r327981 - user/markj/netdump/sys/vm
Message-ID:  <201801150047.w0F0lXMC042989@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: markj
Date: Mon Jan 15 00:47:33 2018
New Revision: 327981
URL: https://svnweb.freebsd.org/changeset/base/327981

Log:
  Add a flag to disable per-CPU item caching in a given zone.

Modified:
  user/markj/netdump/sys/vm/uma.h
  user/markj/netdump/sys/vm/uma_core.c

Modified: user/markj/netdump/sys/vm/uma.h
==============================================================================
--- user/markj/netdump/sys/vm/uma.h	Mon Jan 15 00:29:17 2018	(r327980)
+++ user/markj/netdump/sys/vm/uma.h	Mon Jan 15 00:47:33 2018	(r327981)
@@ -265,8 +265,8 @@ uma_zone_t uma_zcache_create(char *name, int size, uma
 					 * information in the vm_page.
 					 */
 #define	UMA_ZONE_SECONDARY	0x0200	/* Zone is a Secondary Zone */
-/*				0x0400	   Unused */
-#define	UMA_ZONE_MAXBUCKET	0x0800	/* Use largest buckets */
+#define	UMA_ZONE_NOBUCKET	0x0400	/* Do not use buckets. */
+#define	UMA_ZONE_MAXBUCKET	0x0800	/* Use largest buckets. */
 #define	UMA_ZONE_CACHESPREAD	0x1000	/*
 					 * Spread memory start locations across
 					 * all possible cache lines.  May

Modified: user/markj/netdump/sys/vm/uma_core.c
==============================================================================
--- user/markj/netdump/sys/vm/uma_core.c	Mon Jan 15 00:29:17 2018	(r327980)
+++ user/markj/netdump/sys/vm/uma_core.c	Mon Jan 15 00:47:33 2018	(r327981)
@@ -1659,10 +1659,12 @@ zone_ctor(void *mem, int size, void *udata, int flags)
 	}
 
 out:
-	if ((arg->flags & UMA_ZONE_MAXBUCKET) == 0)
-		zone->uz_count = bucket_select(zone->uz_size);
-	else
+	if ((arg->flags & UMA_ZONE_MAXBUCKET) != 0)
 		zone->uz_count = BUCKET_MAX;
+	else if ((arg->flags & UMA_ZONE_NOBUCKET) != 0)
+		zone->uz_count = 0;
+	else
+		zone->uz_count = bucket_select(zone->uz_size);
 	zone->uz_count_min = zone->uz_count;
 
 	return (0);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201801150047.w0F0lXMC042989>