summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-11-21 14:56:59 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-10-20 14:59:54 +0200
commitbe708ff182fdc0eea140d6892f0a714fe6faf00a (patch)
treef6c91c217a02c3b173c63ab29940e62c3c4d1242
parentZONE(9): Fix uma_zone_set_max() (diff)
downloadrtems-libbsd-be708ff182fdc0eea140d6892f0a714fe6faf00a.tar.bz2
ZONE(9): Reduce BUCKET_MAX to 128
Reduces the worst-case per-processor caches.
-rw-r--r--freebsd/sys/vm/uma_core.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/freebsd/sys/vm/uma_core.c b/freebsd/sys/vm/uma_core.c
index 840c8766..7bfba2b2 100644
--- a/freebsd/sys/vm/uma_core.c
+++ b/freebsd/sys/vm/uma_core.c
@@ -226,7 +226,11 @@ struct uma_bucket_zone {
#define BUCKET_SIZE(n) \
(((sizeof(void *) * (n)) - sizeof(struct uma_bucket)) / sizeof(void *))
+#ifndef __rtems__
#define BUCKET_MAX BUCKET_SIZE(256)
+#else /* __rtems__ */
+#define BUCKET_MAX BUCKET_SIZE(128)
+#endif /* __rtems__ */
struct uma_bucket_zone bucket_zones[] = {
{ NULL, "4 Bucket", BUCKET_SIZE(4), 4096 },
@@ -237,7 +241,9 @@ struct uma_bucket_zone bucket_zones[] = {
{ NULL, "32 Bucket", BUCKET_SIZE(32), 512 },
{ NULL, "64 Bucket", BUCKET_SIZE(64), 256 },
{ NULL, "128 Bucket", BUCKET_SIZE(128), 128 },
+#ifndef __rtems__
{ NULL, "256 Bucket", BUCKET_SIZE(256), 64 },
+#endif /* __rtems__ */
{ NULL, NULL, 0}
};
@@ -733,6 +739,7 @@ cache_drain(uma_zone_t zone)
ZONE_UNLOCK(zone);
}
+#ifndef __rtems__
static void
cache_shrink(uma_zone_t zone)
{
@@ -782,7 +789,6 @@ cache_drain_safe_cpu(uma_zone_t zone)
bucket_free(zone, b2, NULL);
}
-#ifndef __rtems__
/*
* Safely drain per-CPU caches of a zone(s) to alloc bucket.
* This is an expensive call because it needs to bind to all CPUs