Messages in this thread Patch in this message | | | Subject | [RFC][PATCH] mm: percpu pages: up batch size to fix arithmetic?? errror | From | Dave Hansen <> | Date | Wed, 11 Sep 2013 15:08:59 -0700 |
| |
I really don't know where the:
batch /= 4; /* We effectively *= 4 below */ ... batch = rounddown_pow_of_two(batch + batch/2) - 1;
came from. The round down code at *MOST* does a *= 1.5, but *averages* out to be just under 1.
On a system with 128GB in a zone, this means that we've got (you can see in /proc/zoneinfo for yourself):
high: 186 (744kB) batch: 31 (124kB)
That 124kB is almost precisely 1/4 of the "1/2 of a meg" that we were shooting for. We're under-sizing the batches by about 4x. This patch kills the /=4.
---
linux.git-davehans/mm/page_alloc.c | 1 - 1 file changed, 1 deletion(-)
diff -puN mm/page_alloc.c~debug-pcp-sizes-1 mm/page_alloc.c --- linux.git/mm/page_alloc.c~debug-pcp-sizes-1 2013-09-11 14:41:08.532445664 -0700 +++ linux.git-davehans/mm/page_alloc.c 2013-09-11 15:03:47.403912683 -0700 @@ -4103,7 +4103,6 @@ static int __meminit zone_batchsize(stru batch = zone->managed_pages / 1024; if (batch * PAGE_SIZE > 512 * 1024) batch = (512 * 1024) / PAGE_SIZE; - batch /= 4; /* We effectively *= 4 below */ if (batch < 1) batch = 1; _
| |