Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx> writes: > Isolated free pages shouldn't be accounted to NR_FREE_PAGES counter. > Fix it by properly decreasing/increasing NR_FREE_PAGES counter in > set_migratetype_isolate()/unset_migratetype_isolate() and removing > counter adjustment for isolated pages from free_one_page() and > split_free_page(). Other than a minor comment, looks reasonable to me. > --- > mm/page_alloc.c | 7 +++++-- > mm/page_isolation.c | 13 ++++++++++--- > 2 files changed, 15 insertions(+), 5 deletions(-) > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index b94429e..e9bbd7c 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -688,7 +688,8 @@ static void free_one_page(struct zone *zone, struct page *page, int order, > zone->pages_scanned = 0; > > __free_one_page(page, zone, order, migratetype); > - __mod_zone_page_state(zone, NR_FREE_PAGES, 1 << order); > + if (get_pageblock_migratetype(page) != MIGRATE_ISOLATE) No need to call get_pageblock_migratetype(). You have this information in migratetype variable. > + __mod_zone_page_state(zone, NR_FREE_PAGES, 1 << order); > spin_unlock(&zone->lock); > } > -- Best regards, _ _ .o. | Liege of Serenely Enlightened Majesty of o' \,=./ `o ..o | Computer Science, Michał “mina86” Nazarewicz (o o) ooo +----<email/xmpp: mpn@xxxxxxxxxx>--------------ooO--(_)--Ooo--
Attachment:
pgpqbMe08xwq_.pgp
Description: PGP signature