Move slabs out of chunks.

This commit is contained in:
Jason Evans
2016-05-29 18:34:50 -07:00
parent d28e5a6696
commit 498856f44a
21 changed files with 596 additions and 2332 deletions

View File

@@ -16,7 +16,7 @@ TEST_BEGIN(test_small_extent_size)
assert_d_eq(mallctl("arenas.nbins", &nbins, &sz, NULL, 0), 0,
"Unexpected mallctl failure");
assert_d_eq(mallctlnametomib("arenas.bin.0.run_size", mib, &miblen), 0,
assert_d_eq(mallctlnametomib("arenas.bin.0.slab_size", mib, &miblen), 0,
"Unexpected mallctlnametomib failure");
for (i = 0; i < nbins; i++) {
mib[2] = i;
@@ -71,12 +71,12 @@ TEST_BEGIN(test_huge_extent_size)
ceil = extent_size_quantize_ceil(extent_size);
assert_zu_eq(extent_size, floor,
"Large run quantization should be a no-op for precise "
"size (lextent_size=%zu, extent_size=%zu)", lextent_size,
"Extent quantization should be a no-op for precise size "
"(lextent_size=%zu, extent_size=%zu)", lextent_size,
extent_size);
assert_zu_eq(extent_size, ceil,
"Large run quantization should be a no-op for precise "
"size (lextent_size=%zu, extent_size=%zu)", lextent_size,
"Extent quantization should be a no-op for precise size "
"(lextent_size=%zu, extent_size=%zu)", lextent_size,
extent_size);
if (i > 0) {

View File

@@ -615,7 +615,8 @@ TEST_BEGIN(test_arenas_bin_constants)
TEST_ARENAS_BIN_CONSTANT(size_t, size, arena_bin_info[0].reg_size);
TEST_ARENAS_BIN_CONSTANT(uint32_t, nregs, arena_bin_info[0].nregs);
TEST_ARENAS_BIN_CONSTANT(size_t, run_size, arena_bin_info[0].run_size);
TEST_ARENAS_BIN_CONSTANT(size_t, slab_size,
arena_bin_info[0].slab_size);
#undef TEST_ARENAS_BIN_CONSTANT
}

View File

@@ -229,9 +229,9 @@ TEST_BEGIN(test_stats_arenas_bins)
{
unsigned arena;
void *p;
size_t sz, curruns, curregs;
size_t sz, curslabs, curregs;
uint64_t epoch, nmalloc, ndalloc, nrequests, nfills, nflushes;
uint64_t nruns, nreruns;
uint64_t nslabs, nreslabs;
int expected = config_stats ? 0 : ENOENT;
arena = 0;
@@ -266,12 +266,12 @@ TEST_BEGIN(test_stats_arenas_bins)
NULL, 0), config_tcache ? expected : ENOENT,
"Unexpected mallctl() result");
assert_d_eq(mallctl("stats.arenas.0.bins.0.nruns", &nruns, &sz,
assert_d_eq(mallctl("stats.arenas.0.bins.0.nslabs", &nslabs, &sz,
NULL, 0), expected, "Unexpected mallctl() result");
assert_d_eq(mallctl("stats.arenas.0.bins.0.nreruns", &nreruns, &sz,
assert_d_eq(mallctl("stats.arenas.0.bins.0.nreslabs", &nreslabs, &sz,
NULL, 0), expected, "Unexpected mallctl() result");
sz = sizeof(size_t);
assert_d_eq(mallctl("stats.arenas.0.bins.0.curruns", &curruns, &sz,
assert_d_eq(mallctl("stats.arenas.0.bins.0.curslabs", &curslabs, &sz,
NULL, 0), expected, "Unexpected mallctl() result");
if (config_stats) {
@@ -289,10 +289,10 @@ TEST_BEGIN(test_stats_arenas_bins)
assert_u64_gt(nflushes, 0,
"At least one flush should have occurred");
}
assert_u64_gt(nruns, 0,
"At least one run should have been allocated");
assert_zu_gt(curruns, 0,
"At least one run should be currently allocated");
assert_u64_gt(nslabs, 0,
"At least one slab should have been allocated");
assert_zu_gt(curslabs, 0,
"At least one slab should be currently allocated");
}
dallocx(p, 0);