Page MenuHomeFreeBSD

D33869.1794494601.diff
No OneTemporary

Authored By
Unknown
Size
878 B
Referenced Files
None
Subscribers
None

D33869.1794494601.diff

Index: sys/vm/uma_core.c
===================================================================
--- sys/vm/uma_core.c
+++ sys/vm/uma_core.c
@@ -5303,6 +5303,33 @@
}
}
+static void
+zone_match_and_reclaim(uma_zone_t zone, void *arg)
+{
+ const char *name = arg;
+
+ if (strcmp(zone->uz_name, name) == 0)
+ uma_zone_reclaim(zone, UMA_RECLAIM_DRAIN_ALL);
+}
+
+static int
+sysctl_uma_zone_reclaim(SYSCTL_HANDLER_ARGS)
+{
+ char name[256] = { [0] = '\0' };
+ int error;
+
+ error = sysctl_handle_string(oidp, name, sizeof(name), req);
+
+ if (error != 0 || req->newptr == NULL)
+ return (error);
+
+ zone_foreach(zone_match_and_reclaim, name);
+
+ return (0);
+}
+SYSCTL_PROC(_vm, OID_AUTO, uma_zone_reclaim, CTLTYPE_STRING | CTLFLAG_RW, NULL,
+ 0, sysctl_uma_zone_reclaim, "A", "Reclaim all caches from a zone");
+
/* See uma.h */
int
uma_zone_exhausted(uma_zone_t zone)

File Metadata

Mime Type
text/plain
Expires
Thu, Nov 12, 2:43 PM (5 h, 15 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
41677827
Default Alt Text
D33869.1794494601.diff (878 B)

Event Timeline