Matthew Wilcox [off-list ref] writes:
On Wed, Jan 16, 2019 at 07:57:03AM +0100, Michal Hocko wrote:
quoted
On Wed 16-01-19 11:51:32, Anshuman Khandual wrote:
quoted
All architectures have been defining their own PGALLOC_GFP as (GFP_KERNEL |
__GFP_ZERO) and using it for allocating page table pages. This causes some
code duplication which can be easily avoided. GFP_KERNEL allocated and
cleared out pages (__GFP_ZERO) are required for page tables on any given
architecture. This creates a new generic GFP flag flag which can be used
for any page table page allocation. Does not cause any functional change.
GFP_PGTABLE is being added into include/asm-generic/pgtable.h which is the
generic page tabe header just to prevent it's potential misuse as a general
allocation flag if included in include/linux/gfp.h.
I haven't reviewed the patch yet but I am wondering whether this is
really worth it without going all the way down to unify the common code
and remove much more code duplication. Or is this not possible for some
reason?
Exactly what I suggested doing in response to v1.
Also, the approach taken here is crazy. x86 has a feature that no other
architecture has bothered to implement yet -- accounting page tables
to the process.
powerpc does __GFP_ACCOUNT for user page tables too. Shamelessly cribbed
from the x86 version of course :)
cheers