Re: [PATCH v2 5/8] mm/isolation: change pageblock isolation logic to fix freepage counting bugs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 08/07/2014 10:19 AM, Joonsoo Kim wrote:
Is it needed to disable the pcp list? Shouldn't drain be enough?
After the drain you already are sure that future freeing will see
MIGRATE_ISOLATE and skip pcp list anyway, so why disable it
completely?

Yes, it is needed. Until we move freepages from normal buddy list
to isolate buddy list, freepages could be allocated by others. In this
case, they could be moved to pcp list. When it is flushed from pcp list
to buddy list, we need to check whether it is on isolate migratetype
pageblock or not. But, we don't want that hook in free_pcppages_bulk()
because it is page allocator's normal freepath. To remove it, we shoule
disable the pcp list here.

Ah, right. I thought that everything going to pcp lists would be through freeing which would already observe the isolate migratetype and skip pcplist. I forgot about the direct filling of pcplists from buddy list. You're right that we don't want extra hooks there.

Still, couldn't this be solved in a simpler way via another pcplist drain after the pages are moved from normal to isolate buddy list? Should be even faster because instead of disable - drain - enable (5 all-cpu kicks, since each pageset_update does 2 kicks) you have drain - drain (2 kicks). While it's true that pageset_update is single-zone operation, I guess we would easily benefit from having a single-zone drain operation as well.

Vlastimil



--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]