On 06/05/2013 11:10 AM, Andrea Arcangeli wrote:
Require more high order pages in the watermarks, to give more margin for concurrent allocations. If there are too few pages, they can disappear too soon.
Not sure what to do with this patch. Not scaling min for pageblock_order-2 allocations seems like it could be excessive. Presumably this scaling was introduced for a good reason. Why is that reason no longer valid? Why is it safe to make this change? Would it be safer to simply scale min less steeply?
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx> --- mm/page_alloc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 3931d16..c13e062 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1646,7 +1646,8 @@ static bool __zone_watermark_ok(struct zone *z, int order, unsigned long mark, free_pages -= z->free_area[o].nr_free << o; /* Require fewer higher order pages to be free */ - min >>= 1; + if (o >= pageblock_order-1) + min >>= 1;
Why this and not this? if (order & 1) min >>=1; Not saying my idea is any better than yours, just saying that a change like this needs more justification than provided by your changelog...
if (free_pages <= min) return false;
-- All rights reversed -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>