On 03.08.20 15:28, Charan Teja Kalla wrote: > Thanks David for the comments. > > On 8/3/2020 1:35 PM, David Hildenbrand wrote: >> On 02.08.20 14:54, Charan Teja Reddy wrote: >>> When onlining a first memory block in a zone, pcp lists are not updated >>> thus pcp struct will have the default setting of ->high = 0,->batch = 1. >>> This means till the second memory block in a zone(if it have) is onlined >>> the pcp lists of this zone will not contain any pages because pcp's >>> ->count is always greater than ->high thus free_pcppages_bulk() is >>> called to free batch size(=1) pages every time system wants to add a >>> page to the pcp list through free_unref_page(). To put this in a word, >>> system is not using benefits offered by the pcp lists when there is a >>> single onlineable memory block in a zone. Correct this by always >>> updating the pcp lists when memory block is onlined. >> >> I guess such setups are rare ... but I can imagine it being the case >> with virtio-mem in the future ... not 100% if this performance >> optimization is really relevant in practice ... how did you identify this? > > Even the Snapdragon hardware that I had tested on contain multiple > onlineable memory blocks. But we have the use case in which we online > single memory block and once it is filled then online the next block. In > the step where single block is onlined, we observed the below pageset Out of interest, why? Is it to optimize energy consumption? -- Thanks, David / dhildenb