On Thu, Feb 15, 2018 at 04:46:44AM -0800, Matthew Wilcox wrote: > On Thu, Jan 25, 2018 at 03:21:44PM +0800, Aaron Lu wrote: > > When freeing a batch of pages from Per-CPU-Pages(PCP) back to buddy, > > the zone->lock is held and then pages are chosen from PCP's migratetype > > list. While there is actually no need to do this 'choose part' under > > lock since it's PCP pages, the only CPU that can touch them is us and > > irq is also disabled. > > I have no objection to this patch. If you're looking for ideas for > future improvement though, I wonder whether using a LIST_HEAD is the > best way to store these pages temporarily. If you batch them into a > pagevec and then free the entire pagevec, the CPU should be a little > faster scanning a short array than walking a linked list. Thanks for the suggestion. > It would also puts a hard boundary on how long zone->lock is held, as > you'd drop it and go back for another batch after 15 pages. That might > be bad, of course. Yes that's a concern. As Mel reponded in another email, I think I'll just keep using list here. > > Another minor change I'd like to see is free_pcpages_bulk updating > pcp->count itself; all of the callers do it currently. Sounds good, I'll prepare a separate patch for this, thanks! -- 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>