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 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/
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/