diff options
| author | Dave Jones <davej@redhat.com> | 2005-12-06 22:14:09 -0500 |
|---|---|---|
| committer | Dave Jones <davej@redhat.com> | 2005-12-06 22:14:09 -0500 |
| commit | fc457fa7c0cdbfe96812ba377e508880d600298f (patch) | |
| tree | 514049d61cf8b1587141a375ba3ec4f71e09a9db /mm/page_alloc.c | |
| parent | cc6e8de8f0fab61760bb7091fb19eef1406e17be (diff) | |
| parent | e4f5c82a92c2a546a16af1614114eec19120e40a (diff) | |
Merge ../linus/
Diffstat (limited to 'mm/page_alloc.c')
| -rw-r--r-- | mm/page_alloc.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index b257720edfc8..3b21a13d841c 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
| @@ -1772,16 +1772,16 @@ static int __devinit zone_batchsize(struct zone *zone) | |||
| 1772 | batch = 1; | 1772 | batch = 1; |
| 1773 | 1773 | ||
| 1774 | /* | 1774 | /* |
| 1775 | * We will be trying to allcoate bigger chunks of contiguous | 1775 | * Clamp the batch to a 2^n - 1 value. Having a power |
| 1776 | * memory of the order of fls(batch). This should result in | 1776 | * of 2 value was found to be more likely to have |
| 1777 | * better cache coloring. | 1777 | * suboptimal cache aliasing properties in some cases. |
| 1778 | * | 1778 | * |
| 1779 | * A sanity check also to ensure that batch is still in limits. | 1779 | * For example if 2 tasks are alternately allocating |
| 1780 | * batches of pages, one task can end up with a lot | ||
| 1781 | * of pages of one half of the possible page colors | ||
| 1782 | * and the other with pages of the other colors. | ||
| 1780 | */ | 1783 | */ |
| 1781 | batch = (1 << fls(batch + batch/2)); | 1784 | batch = (1 << (fls(batch + batch/2)-1)) - 1; |
| 1782 | |||
| 1783 | if (fls(batch) >= (PAGE_SHIFT + MAX_ORDER - 2)) | ||
| 1784 | batch = PAGE_SHIFT + ((MAX_ORDER - 1 - PAGE_SHIFT)/2); | ||
| 1785 | 1785 | ||
| 1786 | return batch; | 1786 | return batch; |
| 1787 | } | 1787 | } |
