slub: pack objects denser
Since we now have more orders available use a denser packing. Increase slab order if more than 1/16th of a slab would be wasted. Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>hifive-unleashed-5.1
parent
9b2cd506e5
commit
c124f5b54f
|
@ -1818,7 +1818,7 @@ static int slub_nomerge;
|
||||||
* system components. Generally order 0 allocations should be preferred since
|
* system components. Generally order 0 allocations should be preferred since
|
||||||
* order 0 does not cause fragmentation in the page allocator. Larger objects
|
* order 0 does not cause fragmentation in the page allocator. Larger objects
|
||||||
* be problematic to put into order 0 slabs because there may be too much
|
* be problematic to put into order 0 slabs because there may be too much
|
||||||
* unused space left. We go to a higher order if more than 1/8th of the slab
|
* unused space left. We go to a higher order if more than 1/16th of the slab
|
||||||
* would be wasted.
|
* would be wasted.
|
||||||
*
|
*
|
||||||
* In order to reach satisfactory performance we must ensure that a minimum
|
* In order to reach satisfactory performance we must ensure that a minimum
|
||||||
|
@ -1883,7 +1883,7 @@ static inline int calculate_order(int size)
|
||||||
if (!min_objects)
|
if (!min_objects)
|
||||||
min_objects = 4 * (fls(nr_cpu_ids) + 1);
|
min_objects = 4 * (fls(nr_cpu_ids) + 1);
|
||||||
while (min_objects > 1) {
|
while (min_objects > 1) {
|
||||||
fraction = 8;
|
fraction = 16;
|
||||||
while (fraction >= 4) {
|
while (fraction >= 4) {
|
||||||
order = slab_order(size, min_objects,
|
order = slab_order(size, min_objects,
|
||||||
slub_max_order, fraction);
|
slub_max_order, fraction);
|
||||||
|
|
Loading…
Reference in New Issue