Page MenuHomeFreeBSD

D26426.id77796.diff
No OneTemporary

D26426.id77796.diff

Index: head/sys/vm/uma_core.c
===================================================================
--- head/sys/vm/uma_core.c
+++ head/sys/vm/uma_core.c
@@ -733,7 +733,15 @@
zone_domain_imax_set(zdom, zdom->uzd_nitems);
if (STAILQ_EMPTY(&zdom->uzd_buckets))
zdom->uzd_seq = bucket->ub_seq;
- STAILQ_INSERT_TAIL(&zdom->uzd_buckets, bucket, ub_link);
+
+ /*
+ * Try to promote reuse of recently used items. For items
+ * protected by SMR, try to defer reuse to minimize polling.
+ */
+ if (bucket->ub_seq == SMR_SEQ_INVALID)
+ STAILQ_INSERT_HEAD(&zdom->uzd_buckets, bucket, ub_link);
+ else
+ STAILQ_INSERT_TAIL(&zdom->uzd_buckets, bucket, ub_link);
ZDOM_UNLOCK(zdom);
return;
}

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 17, 4:39 AM (17 h, 32 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31639529
Default Alt Text
D26426.id77796.diff (710 B)

Event Timeline