|
Lines 1290-1296
keg_small_init(uma_keg_t keg)
Link Here
|
| 1290 |
else |
1290 |
else |
| 1291 |
shsize = sizeof(struct uma_slab); |
1291 |
shsize = sizeof(struct uma_slab); |
| 1292 |
|
1292 |
|
| 1293 |
keg->uk_ipers = (slabsize - shsize) / rsize; |
1293 |
if (rsize > slabsize - shsize) { |
|
|
1294 |
/* Handle special case when we have 1 item per slab, so |
| 1295 |
* alignment requirement can be relaxed. */ |
| 1296 |
KASSERT(keg->uk_size <= slabsize - shsize, |
| 1297 |
("%s: size %u greater than slab", __func__, keg->uk_size)); |
| 1298 |
keg->uk_ipers = 1; |
| 1299 |
} else |
| 1300 |
keg->uk_ipers = (slabsize - shsize) / rsize; |
| 1294 |
KASSERT(keg->uk_ipers > 0 && keg->uk_ipers <= SLAB_SETSIZE, |
1301 |
KASSERT(keg->uk_ipers > 0 && keg->uk_ipers <= SLAB_SETSIZE, |
| 1295 |
("%s: keg->uk_ipers %u", __func__, keg->uk_ipers)); |
1302 |
("%s: keg->uk_ipers %u", __func__, keg->uk_ipers)); |
| 1296 |
|
1303 |
|
|
Lines 1473-1479
keg_ctor(void *mem, int size, void *udata, int fla
Link Here
|
| 1473 |
if (keg->uk_flags & UMA_ZONE_CACHESPREAD) { |
1480 |
if (keg->uk_flags & UMA_ZONE_CACHESPREAD) { |
| 1474 |
keg_cachespread_init(keg); |
1481 |
keg_cachespread_init(keg); |
| 1475 |
} else { |
1482 |
} else { |
| 1476 |
if (keg->uk_size > (UMA_SLAB_SIZE - sizeof(struct uma_slab))) |
1483 |
if (keg->uk_size > UMA_SLAB_SPACE) |
| 1477 |
keg_large_init(keg); |
1484 |
keg_large_init(keg); |
| 1478 |
else |
1485 |
else |
| 1479 |
keg_small_init(keg); |
1486 |
keg_small_init(keg); |
|
Lines 1820-1828
uma_startup_count(int vm_zones)
Link Here
|
| 1820 |
#endif |
1827 |
#endif |
| 1821 |
|
1828 |
|
| 1822 |
/* Memory for the rest of startup zones, UMA and VM, ... */ |
1829 |
/* Memory for the rest of startup zones, UMA and VM, ... */ |
| 1823 |
if (zsize > UMA_SLAB_SIZE) |
1830 |
if (zsize > UMA_SLAB_SPACE) |
| 1824 |
pages += (zones + vm_zones) * |
1831 |
pages += (zones + vm_zones) * |
| 1825 |
howmany(roundup2(zsize, UMA_BOOT_ALIGN), UMA_SLAB_SIZE); |
1832 |
howmany(roundup2(zsize, UMA_BOOT_ALIGN), UMA_SLAB_SIZE); |
|
|
1833 |
else if (roundup2(zsize, UMA_BOOT_ALIGN) > UMA_SLAB_SPACE) |
| 1834 |
pages += zones; |
| 1826 |
else |
1835 |
else |
| 1827 |
pages += howmany(zones, |
1836 |
pages += howmany(zones, |
| 1828 |
UMA_SLAB_SPACE / roundup2(zsize, UMA_BOOT_ALIGN)); |
1837 |
UMA_SLAB_SPACE / roundup2(zsize, UMA_BOOT_ALIGN)); |