Page MenuHomeFreeBSD

D23493.id67755.diff
No OneTemporary

D23493.id67755.diff

Index: head/sys/vm/uma_core.c
===================================================================
--- head/sys/vm/uma_core.c
+++ head/sys/vm/uma_core.c
@@ -544,7 +544,7 @@
ZONE_LOCK_ASSERT(zone);
- if ((bucket = TAILQ_FIRST(&zdom->uzd_buckets)) == NULL)
+ if ((bucket = STAILQ_FIRST(&zdom->uzd_buckets)) == NULL)
return (NULL);
if ((zone->uz_flags & UMA_ZONE_SMR) != 0 &&
@@ -555,7 +555,7 @@
dtor = (zone->uz_dtor != NULL) | UMA_ALWAYS_CTORDTOR;
}
MPASS(zdom->uzd_nitems >= bucket->ub_cnt);
- TAILQ_REMOVE(&zdom->uzd_buckets, bucket, ub_link);
+ STAILQ_REMOVE_HEAD(&zdom->uzd_buckets, ub_link);
zdom->uzd_nitems -= bucket->ub_cnt;
if (zdom->uzd_imin > zdom->uzd_nitems)
zdom->uzd_imin = zdom->uzd_nitems;
@@ -583,10 +583,7 @@
KASSERT(!ws || zone->uz_bkt_count < zone->uz_bkt_max,
("%s: zone %p overflow", __func__, zone));
- if (ws && bucket->ub_seq == SMR_SEQ_INVALID)
- TAILQ_INSERT_HEAD(&zdom->uzd_buckets, bucket, ub_link);
- else
- TAILQ_INSERT_TAIL(&zdom->uzd_buckets, bucket, ub_link);
+ STAILQ_INSERT_TAIL(&zdom->uzd_buckets, bucket, ub_link);
zdom->uzd_nitems += bucket->ub_cnt;
if (ws && zdom->uzd_imax < zdom->uzd_nitems)
zdom->uzd_imax = zdom->uzd_nitems;
@@ -1187,11 +1184,11 @@
target = drain ? 0 : lmax(zdom->uzd_wss, zdom->uzd_nitems -
zdom->uzd_imin);
while (zdom->uzd_nitems > target) {
- bucket = TAILQ_FIRST(&zdom->uzd_buckets);
+ bucket = STAILQ_FIRST(&zdom->uzd_buckets);
if (bucket == NULL)
break;
tofree = bucket->ub_cnt;
- TAILQ_REMOVE(&zdom->uzd_buckets, bucket, ub_link);
+ STAILQ_REMOVE_HEAD(&zdom->uzd_buckets, ub_link);
zdom->uzd_nitems -= tofree;
/*
@@ -2365,7 +2362,7 @@
ZONE_CROSS_LOCK_INIT(zone);
for (i = 0; i < vm_ndomains; i++)
- TAILQ_INIT(&zone->uz_domain[i].uzd_buckets);
+ STAILQ_INIT(&zone->uz_domain[i].uzd_buckets);
#ifdef INVARIANTS
if (arg->uminit == trash_init && arg->fini == trash_fini)
@@ -3930,7 +3927,7 @@
"uma_zfree: zone %s(%p) draining cross bucket %p",
zone->uz_name, zone, bucket);
- TAILQ_INIT(&fullbuckets);
+ STAILQ_INIT(&fullbuckets);
/*
* To avoid having ndomain * ndomain buckets for sorting we have a
@@ -3949,19 +3946,19 @@
}
zdom->uzd_cross->ub_bucket[zdom->uzd_cross->ub_cnt++] = item;
if (zdom->uzd_cross->ub_cnt == zdom->uzd_cross->ub_entries) {
- TAILQ_INSERT_HEAD(&fullbuckets, zdom->uzd_cross,
+ STAILQ_INSERT_HEAD(&fullbuckets, zdom->uzd_cross,
ub_link);
zdom->uzd_cross = NULL;
}
bucket->ub_cnt--;
}
ZONE_CROSS_UNLOCK(zone);
- if (!TAILQ_EMPTY(&fullbuckets)) {
+ if (!STAILQ_EMPTY(&fullbuckets)) {
ZONE_LOCK(zone);
- while ((b = TAILQ_FIRST(&fullbuckets)) != NULL) {
+ while ((b = STAILQ_FIRST(&fullbuckets)) != NULL) {
if ((zone->uz_flags & UMA_ZONE_SMR) != 0)
bucket->ub_seq = smr_current(zone->uz_smr);
- TAILQ_REMOVE(&fullbuckets, b, ub_link);
+ STAILQ_REMOVE_HEAD(&fullbuckets, ub_link);
if (zone->uz_bkt_count >= zone->uz_bkt_max) {
ZONE_UNLOCK(zone);
bucket_drain(zone, b);
Index: head/sys/vm/uma_int.h
===================================================================
--- head/sys/vm/uma_int.h
+++ head/sys/vm/uma_int.h
@@ -245,7 +245,7 @@
* for use.
*/
struct uma_bucket {
- TAILQ_ENTRY(uma_bucket) ub_link; /* Link into the zone */
+ STAILQ_ENTRY(uma_bucket) ub_link; /* Link into the zone */
int16_t ub_cnt; /* Count of items in bucket. */
int16_t ub_entries; /* Max items. */
smr_seq_t ub_seq; /* SMR sequence number. */
@@ -462,7 +462,7 @@
}
#endif /* _KERNEL */
-TAILQ_HEAD(uma_bucketlist, uma_bucket);
+STAILQ_HEAD(uma_bucketlist, uma_bucket);
struct uma_zone_domain {
struct uma_bucketlist uzd_buckets; /* full buckets */

File Metadata

Mime Type
text/plain
Expires
Fri, Aug 21, 1:37 AM (4 h, 53 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37017173
Default Alt Text
D23493.id67755.diff (3 KB)

Event Timeline