diff options
author | Christoph Lameter <clameter@sgi.com> | 2008-04-14 12:13:29 -0400 |
---|---|---|
committer | Pekka Enberg <penberg@cs.helsinki.fi> | 2008-04-27 11:28:40 -0400 |
commit | c124f5b54f879e5870befcc076addbd5d614663f (patch) | |
tree | bedc4ce7ae68ea6de4c8aa6696b30801fedb15f6 /mm | |
parent | 9b2cd506e5f2117f94c28a0040bf5da058105316 (diff) |
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>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/slub.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -1818,7 +1818,7 @@ static int slub_nomerge; | |||
1818 | * system components. Generally order 0 allocations should be preferred since | 1818 | * system components. Generally order 0 allocations should be preferred since |
1819 | * order 0 does not cause fragmentation in the page allocator. Larger objects | 1819 | * order 0 does not cause fragmentation in the page allocator. Larger objects |
1820 | * be problematic to put into order 0 slabs because there may be too much | 1820 | * be problematic to put into order 0 slabs because there may be too much |
1821 | * unused space left. We go to a higher order if more than 1/8th of the slab | 1821 | * unused space left. We go to a higher order if more than 1/16th of the slab |
1822 | * would be wasted. | 1822 | * would be wasted. |
1823 | * | 1823 | * |
1824 | * In order to reach satisfactory performance we must ensure that a minimum | 1824 | * In order to reach satisfactory performance we must ensure that a minimum |
@@ -1883,7 +1883,7 @@ static inline int calculate_order(int size) | |||
1883 | if (!min_objects) | 1883 | if (!min_objects) |
1884 | min_objects = 4 * (fls(nr_cpu_ids) + 1); | 1884 | min_objects = 4 * (fls(nr_cpu_ids) + 1); |
1885 | while (min_objects > 1) { | 1885 | while (min_objects > 1) { |
1886 | fraction = 8; | 1886 | fraction = 16; |
1887 | while (fraction >= 4) { | 1887 | while (fraction >= 4) { |
1888 | order = slab_order(size, min_objects, | 1888 | order = slab_order(size, min_objects, |
1889 | slub_max_order, fraction); | 1889 | slub_max_order, fraction); |