Page MenuHomeFreeBSD

D23980.id69282.diff
No OneTemporary

D23980.id69282.diff

Index: sys/vm/uma_core.c
===================================================================
--- sys/vm/uma_core.c
+++ sys/vm/uma_core.c
@@ -116,6 +116,16 @@
static uma_zone_t kegs;
static uma_zone_t zones;
+/*
+ * On INVARIANTS builds, the slab contains a second bitset of the same size,
+ * "dbg_bits", which is laid out immediately after us_free.
+ */
+#ifdef INVARIANTS
+#define SLAB_BITSETS 2
+#else
+#define SLAB_BITSETS 1
+#endif
+
/*
* These are the two zones from which all offpage uma_slab_ts are allocated.
*
@@ -1889,7 +1899,7 @@
}
#ifdef INVARIANTS
-struct noslabbits *
+static struct noslabbits *
slab_dbg_bits(uma_slab_t slab, uma_keg_t keg)
{
@@ -1900,7 +1910,7 @@
/*
* Actual size of embedded struct slab (!OFFPAGE).
*/
-size_t
+static size_t
slab_sizeof(int nitems)
{
size_t s;
@@ -1909,15 +1919,6 @@
return (roundup(s, UMA_ALIGN_PTR + 1));
}
-/*
- * Size of memory for embedded slabs (!OFFPAGE).
- */
-size_t
-slab_space(int nitems)
-{
- return (UMA_SLAB_SIZE - slab_sizeof(nitems));
-}
-
#define UMA_FIXPT_SHIFT 31
#define UMA_FRAC_FIXPT(n, d) \
((uint32_t)(((uint64_t)(n) << UMA_FIXPT_SHIFT) / (d)))
@@ -1958,18 +1959,6 @@
return (ipers);
}
-/*
- * Compute the number of items that will fit in a slab for a startup zone.
- */
-int
-slab_ipers(size_t size, int align)
-{
- int rsize;
-
- rsize = roundup(size, align + 1); /* Assume no CACHESPREAD */
- return (slab_ipers_hdr(size, rsize, UMA_SLAB_SIZE, true));
-}
-
struct keg_layout_result {
u_int format;
u_int slabsize;
Index: sys/vm/uma_int.h
===================================================================
--- sys/vm/uma_int.h
+++ sys/vm/uma_int.h
@@ -368,11 +368,6 @@
};
typedef struct uma_keg * uma_keg_t;
-#ifdef _KERNEL
-#define KEG_ASSERT_COLD(k) \
- KASSERT(uma_keg_get_allocs((k)) == 0, \
- ("keg %s initialization after use.", (k)->uk_name))
-
/*
* Free bits per-slab.
*/
@@ -391,29 +386,13 @@
uint8_t us_domain; /* Backing NUMA domain. */
struct noslabbits us_free; /* Free bitmask, flexible. */
};
-_Static_assert(sizeof(struct uma_slab) == offsetof(struct uma_slab, us_free),
+_Static_assert(sizeof(struct uma_slab) == __offsetof(struct uma_slab, us_free),
"us_free field must be last");
-#if MAXMEMDOM >= 255
-#error "Slab domain type insufficient"
-#endif
+_Static_assert(MAXMEMDOM < 255,
+ "us_domain field is not wide enough");
typedef struct uma_slab * uma_slab_t;
-/*
- * On INVARIANTS builds, the slab contains a second bitset of the same size,
- * "dbg_bits", which is laid out immediately after us_free.
- */
-#ifdef INVARIANTS
-#define SLAB_BITSETS 2
-#else
-#define SLAB_BITSETS 1
-#endif
-
-/* These three functions are for embedded (!OFFPAGE) use only. */
-size_t slab_sizeof(int nitems);
-size_t slab_space(int nitems);
-int slab_ipers(size_t size, int align);
-
/*
* Slab structure with a full sized bitset and hash link for both
* HASH and OFFPAGE zones.
@@ -460,7 +439,6 @@
data = (uintptr_t)slab_data(slab, keg);
return (((uintptr_t)item - data) / keg->uk_rsize);
}
-#endif /* _KERNEL */
STAILQ_HEAD(uma_bucketlist, uma_bucket);
@@ -579,6 +557,10 @@
("%s: Invalid zone %p type", __func__, (zone))); \
} while (0)
+#define KEG_ASSERT_COLD(k) \
+ KASSERT(uma_keg_get_allocs((k)) == 0, \
+ ("keg %s initialization after use.", (k)->uk_name))
+
/* Domains are contiguous after the last CPU */
#define ZDOM_GET(z, n) \
(&((uma_zone_domain_t)&(z)->uz_cpu[mp_maxid + 1])[n])

File Metadata

Mime Type
text/plain
Expires
Tue, Jan 27, 6:12 AM (5 h, 56 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28051465
Default Alt Text
D23980.id69282.diff (3 KB)

Event Timeline