Re: [PATCH 1/4] mm, page_alloc: Split buffered_rmqueue

2017-01-24 Thread Vlastimil Babka
On 01/23/2017 04:39 PM, Mel Gorman wrote: > buffered_rmqueue removes a page from a given zone and uses the per-cpu > list for order-0. This is fine but a hypothetical caller that wanted > multiple order-0 pages has to disable/reenable interrupts multiple > times. This patch structures buffere_rmque

[PATCH 1/4] mm, page_alloc: Split buffered_rmqueue

2017-01-23 Thread Mel Gorman
buffered_rmqueue removes a page from a given zone and uses the per-cpu list for order-0. This is fine but a hypothetical caller that wanted multiple order-0 pages has to disable/reenable interrupts multiple times. This patch structures buffere_rmqueue such that it's relatively easy to build a bulk

Re: [PATCH 1/4] mm, page_alloc: Split buffered_rmqueue

2017-01-17 Thread Vlastimil Babka
On 01/17/2017 10:07 PM, Mel Gorman wrote: > On Tue, Jan 17, 2017 at 08:20:08PM +, Mel Gorman wrote: > > I later recalled that we looked at this before and didn't think a reinit > was necessary because the location of cpuset_current_mems_allowed doesn't > change so I came back and took another

Re: [PATCH 1/4] mm, page_alloc: Split buffered_rmqueue

2017-01-17 Thread Mel Gorman
On Tue, Jan 17, 2017 at 08:20:08PM +, Mel Gorman wrote: > It's late so I'm fairly tired but assuming I can reproduce this in the > morning, the first thing I'll try is something like this to force a reread > of mems_allowed; > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index ebea51cc01

Re: [PATCH 1/4] mm, page_alloc: Split buffered_rmqueue

2017-01-17 Thread Mel Gorman
On Tue, Jan 17, 2017 at 07:17:22PM +0100, Vlastimil Babka wrote: > On 01/17/2017 07:07 PM, Jesper Dangaard Brouer wrote: > > > > On Tue, 17 Jan 2017 09:29:51 + Mel Gorman > > wrote: > > > >> +/* Lock and remove page from the per-cpu list */ > >> +static struct page *rmqueue_pcplist(struct z

Re: [PATCH 1/4] mm, page_alloc: Split buffered_rmqueue

2017-01-17 Thread Jesper Dangaard Brouer
On Tue, 17 Jan 2017 09:29:51 + Mel Gorman wrote: > +/* Lock and remove page from the per-cpu list */ > +static struct page *rmqueue_pcplist(struct zone *preferred_zone, > + struct zone *zone, unsigned int order, > + gfp_t gfp_flags, int migratetype) >

[PATCH 1/4] mm, page_alloc: Split buffered_rmqueue

2017-01-17 Thread Mel Gorman
buffered_rmqueue removes a page from a given zone and uses the per-cpu list for order-0. This is fine but a hypothetical caller that wanted multiple order-0 pages has to disable/reenable interrupts multiple times. This patch structures buffere_rmqueue such that it's relatively easy to build a bulk

Re: [PATCH 1/4] mm, page_alloc: Split buffered_rmqueue

2017-01-11 Thread Hillf Danton
On Tuesday, January 10, 2017 12:35 AM Mel Gorman wrote: > > buffered_rmqueue removes a page from a given zone and uses the per-cpu > list for order-0. This is fine but a hypothetical caller that wanted > multiple order-0 pages has to disable/reenable interrupts multiple > times. This patch struct

Re: [PATCH 1/4] mm, page_alloc: Split buffered_rmqueue

2017-01-11 Thread Jesper Dangaard Brouer
On Mon, 9 Jan 2017 16:35:15 + Mel Gorman wrote: > buffered_rmqueue removes a page from a given zone and uses the per-cpu > list for order-0. This is fine but a hypothetical caller that wanted > multiple order-0 pages has to disable/reenable interrupts multiple > times. This patch structures

[PATCH 1/4] mm, page_alloc: Split buffered_rmqueue

2017-01-09 Thread Mel Gorman
buffered_rmqueue removes a page from a given zone and uses the per-cpu list for order-0. This is fine but a hypothetical caller that wanted multiple order-0 pages has to disable/reenable interrupts multiple times. This patch structures buffere_rmqueue such that it's relatively easy to build a bulk

[PATCH 1/4] mm, page_alloc: Split buffered_rmqueue

2017-01-04 Thread Mel Gorman
buffered_rmqueue removes a page from a given zone and uses the per-cpu list for order-0. This is fine but a hypothetical caller that wanted multiple order-0 pages has to disable/reenable interrupts multiple times. This patch structures buffere_rmqueue such that it's relatively easy to build a bulk