On Sun, Apr 12, 2020 at 05:09:49AM -0400, liliangleo wrote:
Zero out the page content usually happens when allocating pages,
this is a time consuming operation, it makes pin and mlock
operation very slowly, especially for a large batch of memory.
This patch introduce a new feature for zero out pages before page
allocation, it can help to speed up page allocation.
The idea is very simple, zero out free pages when the system is
not busy and mark the page with PG_zero, when allocating a page,
if the page need to be filled with zero, check the flag in the
struct page, if it's marked as PG_zero, zero out can be skipped,
it can save cpu time and speed up page allocation.
We are very short on bits in the page flags. If we can implement this
feature without using another one, this would be good.
If the bit is only set on pages which are PageBuddy(), we can definitely
find space for it as an alias of another bit.