Messages in this thread | | | Date | Tue, 28 Oct 2014 16:22:31 +0900 | From | Joonsoo Kim <> | Subject | Re: [PATCH v4 1/4] mm/page_alloc: fix incorrect isolation behavior by rechecking migratetype |
| |
On Mon, Oct 27, 2014 at 11:33:20AM +0100, Vlastimil Babka wrote: > On 10/23/2014 10:10 AM, Joonsoo Kim wrote: > > Changes from v3: > > Add one more check in free_one_page() that checks whether migratetype is > > MIGRATE_ISOLATE or not. Without this, abovementioned case 1 could happens. > > Good catch. > > > Cc: <stable@vger.kernel.org> > > Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com> > > Acked-by: Vlastimil Babka <vbabka@suse.cz> > > (minor suggestion below) > > > --- a/mm/page_alloc.c > > +++ b/mm/page_alloc.c > > @@ -749,9 +749,16 @@ static void free_one_page(struct zone *zone, > > if (nr_scanned) > > __mod_zone_page_state(zone, NR_PAGES_SCANNED, -nr_scanned); > > > > + if (unlikely(has_isolate_pageblock(zone) || > > Would it make any difference if this was read just once and not in each > loop iteration? > >
I guess that you'd like to say this to patch 2. I can do it, but, it doesn't any difference in terms of performance, because we access zone's member variable in each loop iteration in __free_one_page().
Thanks.
| |