linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Anshuman Khandual <anshuman.khandual@arm.com>
To: Matthew Wilcox <willy@infradead.org>, Michal Hocko <mhocko@kernel.org>
Cc: linux-mm@kvack.org, akpm@linux-foundation.org,
	linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-arm-kernel@lists.infradead.org, linux-sh@vger.kernel.org,
	kvmarm@lists.cs.columbia.edu, linux-riscv@lists.infradead.org,
	linux@armlinux.org.uk, catalin.marinas@arm.com,
	will.deacon@arm.com, mpe@ellerman.id.au, tglx@linutronix.de,
	mingo@redhat.com, dave.hansen@linux.intel.com,
	peterz@infradead.org, christoffer.dall@arm.com,
	marc.zyngier@arm.com, kirill@shutemov.name,
	rppt@linux.vnet.ibm.com, ard.biesheuvel@linaro.org,
	mark.rutland@arm.com, steve.capper@arm.com, james.morse@arm.com,
	robin.murphy@arm.com, aneesh.kumar@linux.ibm.com, vbabka@suse.cz,
	shakeelb@google.com, rientjes@google.com, palmer@sifive.com,
	greentime@andestech.com
Subject: Re: [PATCH V2] mm: Introduce GFP_PGTABLE
Date: Wed, 16 Jan 2019 18:42:22 +0530	[thread overview]
Message-ID: <07d6a264-dccd-78ab-e8a9-2410bbef7b97@arm.com> (raw)
In-Reply-To: <20190116123018.GF6310@bombadil.infradead.org>



On 01/16/2019 06:00 PM, Matthew Wilcox wrote:
> On Wed, Jan 16, 2019 at 07:57:03AM +0100, Michal Hocko wrote:
>> On Wed 16-01-19 11:51:32, Anshuman Khandual wrote:
>>> 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.  Yet instead of spreading that goodness to all other
> architectures, Anshuman has gone to more effort to avoid doing that.
> 

The basic objective for this patch is to create a common minimum allocation
flag that can be used by architectures but that still allows archs to add
on additional constraints if they see fit. This patch does not intend to
change functionality for any arch.

Yes. There is opportunity for further clean up and consolidation like the
one you mentioned about accounting. Uses pages tables should have
__GFP_ACCOUNT and kernel ones should not. IIUC unfortunately not all arch
implement this right now. It is something which should not be arch specific.
Accounting semantics should be common for all archs. A default function
switching between GFP_PGTABLE for kernel and GFP_PGTABLE | __GFP_ACCOUNT
looking into mm_struct can help here.

Then there is __GFP_RETRY_MAYFAIL. Some archs use it for multi order page
allocation but some use for a single page as well.

If there is an agreement on __GFP_ACCOUNT and __GFP_RETRY_MAYFAIL we can
clean this up further.

  parent reply	other threads:[~2019-01-16 13:12 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-16  6:21 [PATCH V2] mm: Introduce GFP_PGTABLE Anshuman Khandual
2019-01-16  6:55 ` Mike Rapoport
2019-01-16 12:53   ` Anshuman Khandual
2019-01-16  6:57 ` Michal Hocko
2019-01-16 12:30   ` Matthew Wilcox
2019-01-16 12:34     ` Peter Zijlstra
2019-01-16 12:44     ` Michal Hocko
2019-01-16 13:27       ` Anshuman Khandual
2019-01-16 13:36         ` Michal Hocko
2019-01-16 13:12     ` Anshuman Khandual [this message]
2019-01-16 13:18       ` Matthew Wilcox
2019-01-16 13:33         ` Michal Hocko
2019-01-16 13:47         ` Christophe Leroy
2019-01-16 14:20           ` Matthew Wilcox
2019-01-17  9:56     ` Michael Ellerman
2019-01-16  7:10 ` Christophe Leroy
2019-01-16 12:39   ` Anshuman Khandual

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=07d6a264-dccd-78ab-e8a9-2410bbef7b97@arm.com \
    --to=anshuman.khandual@arm.com \
    --cc=akpm@linux-foundation.org \
    --cc=aneesh.kumar@linux.ibm.com \
    --cc=ard.biesheuvel@linaro.org \
    --cc=catalin.marinas@arm.com \
    --cc=christoffer.dall@arm.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=greentime@andestech.com \
    --cc=james.morse@arm.com \
    --cc=kirill@shutemov.name \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=marc.zyngier@arm.com \
    --cc=mark.rutland@arm.com \
    --cc=mhocko@kernel.org \
    --cc=mingo@redhat.com \
    --cc=mpe@ellerman.id.au \
    --cc=palmer@sifive.com \
    --cc=peterz@infradead.org \
    --cc=rientjes@google.com \
    --cc=robin.murphy@arm.com \
    --cc=rppt@linux.vnet.ibm.com \
    --cc=shakeelb@google.com \
    --cc=steve.capper@arm.com \
    --cc=tglx@linutronix.de \
    --cc=vbabka@suse.cz \
    --cc=will.deacon@arm.com \
    --cc=willy@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).