Re: [PATCH 09/33] mm: system wide ALLOC_NO_WATERMARK
On Wed, 2007-10-31 at 14:52 +1100, Nick Piggin wrote: > On Wednesday 31 October 2007 03:04, Peter Zijlstra wrote: > > Change ALLOC_NO_WATERMARK page allocation such that the reserves are system > > wide - which they are per setup_per_zone_pages_min(), when we scrape the > > barrel, do it properly. > > > > IIRC it's actually not too uncommon to have allocations coming here via > page reclaim. It's not exactly clear that you want to break mempolicies > at this point. Hmm, the way I see it is that mempolicies are mainly for user-space allocations, reserve allocations are always kernel allocations. These already break mempolicies - for example hardirq context allocations. Also, as it stands, the reserve is spread out evenly over all zones/nodes (excluding highmem), so by restricting ourselves to a subset, we don't have access to the full reserve. signature.asc Description: This is a digitally signed message part
Re: [PATCH 09/33] mm: system wide ALLOC_NO_WATERMARK
On Wednesday 31 October 2007 03:04, Peter Zijlstra wrote: > Change ALLOC_NO_WATERMARK page allocation such that the reserves are system > wide - which they are per setup_per_zone_pages_min(), when we scrape the > barrel, do it properly. > IIRC it's actually not too uncommon to have allocations coming here via page reclaim. It's not exactly clear that you want to break mempolicies at this point. > Signed-off-by: Peter Zijlstra <[EMAIL PROTECTED]> > --- > mm/page_alloc.c |6 ++ > 1 file changed, 6 insertions(+) > > Index: linux-2.6/mm/page_alloc.c > === > --- linux-2.6.orig/mm/page_alloc.c > +++ linux-2.6/mm/page_alloc.c > @@ -1638,6 +1638,12 @@ restart: > rebalance: > if (alloc_flags & ALLOC_NO_WATERMARKS) { > nofail_alloc: > + /* > + * break out of mempolicy boundaries > + */ > + zonelist = NODE_DATA(numa_node_id())->node_zonelists + > + gfp_zone(gfp_mask); > + > /* go through the zonelist yet again, ignoring mins */ > page = get_page_from_freelist(gfp_mask, order, zonelist, > ALLOC_NO_WATERMARKS); > > -- > > - > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to [EMAIL PROTECTED] > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH 09/33] mm: system wide ALLOC_NO_WATERMARK
Change ALLOC_NO_WATERMARK page allocation such that the reserves are system wide - which they are per setup_per_zone_pages_min(), when we scrape the barrel, do it properly. Signed-off-by: Peter Zijlstra <[EMAIL PROTECTED]> --- mm/page_alloc.c |6 ++ 1 file changed, 6 insertions(+) Index: linux-2.6/mm/page_alloc.c === --- linux-2.6.orig/mm/page_alloc.c +++ linux-2.6/mm/page_alloc.c @@ -1638,6 +1638,12 @@ restart: rebalance: if (alloc_flags & ALLOC_NO_WATERMARKS) { nofail_alloc: + /* +* break out of mempolicy boundaries +*/ + zonelist = NODE_DATA(numa_node_id())->node_zonelists + + gfp_zone(gfp_mask); + /* go through the zonelist yet again, ignoring mins */ page = get_page_from_freelist(gfp_mask, order, zonelist, ALLOC_NO_WATERMARKS); -- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/