提交 c124f5b5 编写于 作者: C Christoph Lameter 提交者: Pekka Enberg

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: NChristoph Lameter <clameter@sgi.com>
Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
上级 9b2cd506
...@@ -1818,7 +1818,7 @@ static int slub_nomerge; ...@@ -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) ...@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册