From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.5 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,SPF_PASS,USER_AGENT_MUTT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AB99DC43387 for ; Wed, 16 Jan 2019 13:36:58 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7B51D20675 for ; Wed, 16 Jan 2019 13:36:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="K33nSdQW" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7B51D20675 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=rCMXmFrGUBJ3Cb3Uz0mndaO7TrMjCChsknG4y9EiKwY=; b=K33nSdQWcapAnc xqoOIJFzSzHp3gaKlKHg69A3aBML9Rapae9t1S95JKZ0NnBqg8Ieya1qo4KMO18P7G01JJpVio6EP tuLJ2a0PhAW7/8IGRM70HoAAKsMBGdqvqf3Gk/liW8ot0kFabAILVQKRSmPsliEQxbGPZIkYRkOFB cWYYOZpVPV65H2blF9MPvxN70Fi9j4bBAkN1lV4/0VT9MpqhyINGfCL3B2d5T6qIyjcpAR3qmeqok wcl9nSht7Xh+O4eqZjdh7WQHUn14MHhntePB3rOJtlEPeeLPokwRbd3VQaLd/MIbjkUFL8u01Ao8L 1p2AdQJxFrpRmc6yerZA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gjlNF-0006UB-Fh; Wed, 16 Jan 2019 13:36:53 +0000 Received: from mx2.suse.de ([195.135.220.15] helo=mx1.suse.de) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gjlN9-0006Tg-K6; Wed, 16 Jan 2019 13:36:50 +0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 34AA6AF71; Wed, 16 Jan 2019 13:36:46 +0000 (UTC) Date: Wed, 16 Jan 2019 14:36:45 +0100 From: Michal Hocko To: Anshuman Khandual Subject: Re: [PATCH V2] mm: Introduce GFP_PGTABLE Message-ID: <20190116133645.GO24149@dhcp22.suse.cz> References: <1547619692-7946-1-git-send-email-anshuman.khandual@arm.com> <20190116065703.GE24149@dhcp22.suse.cz> <20190116123018.GF6310@bombadil.infradead.org> <20190116124431.GK24149@dhcp22.suse.cz> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190116_053649_407006_672CB382 X-CRM114-Status: GOOD ( 20.26 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mark.rutland@arm.com, linux-sh@vger.kernel.org, peterz@infradead.org, catalin.marinas@arm.com, dave.hansen@linux.intel.com, will.deacon@arm.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-riscv@lists.infradead.org, kvmarm@lists.cs.columbia.edu, mpe@ellerman.id.au, linux@armlinux.org.uk, Matthew Wilcox , mingo@redhat.com, vbabka@suse.cz, rientjes@google.com, palmer@sifive.com, greentime@andestech.com, marc.zyngier@arm.com, rppt@linux.vnet.ibm.com, shakeelb@google.com, kirill@shutemov.name, tglx@linutronix.de, linux-arm-kernel@lists.infradead.org, ard.biesheuvel@linaro.org, robin.murphy@arm.com, steve.capper@arm.com, christoffer.dall@arm.com, james.morse@arm.com, aneesh.kumar@linux.ibm.com, akpm@linux-foundation.org, linuxppc-dev@lists.ozlabs.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Wed 16-01-19 18:57:13, Anshuman Khandual wrote: > > > On 01/16/2019 06:14 PM, Michal Hocko wrote: > > On Wed 16-01-19 04:30:18, 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. > > > > Yes, I believe the only reason this is x86 only is that each arch would > > have to be tweaked separately. So a cleanup in _that_ regard would be > > helpful. There is no real reason to have ptes accounted only for x86. > > There might be some exceptions but well, our asm-generic allows to opt > > in for generic implementation or override it with a special one. The > > later should be an exception rather than the rule. > > Fair enough. So we seem to have agreement over __GFP_ACCOUNT for user page > tables but not for the kernel. But should we accommodate __GFP_RETRY_MAYFAIL > or drop them altogether (including multi order allocation requests) ? __GFP_RETRY_MAYFAIL is a leftover from __GFP_REPEAT times and from my recollection it was pointless there. Or do we have any pte allocations which are costly high order or that would rather fail than OOM kill and retry. Really there is no reason to preserve some code just because it is written that way. Anyway, as Mathew already pointed out. There is no real reason to convert all arches at once. If you carve out a common implementation and make it arch generic then you can go once arch at the time a reuse the generic implementation. If there are still some arches which differ only by __GFP_RETRY_MAYFAIL then talk to respective maintainers and ask them what is the underlying reason. See how that is a completely different and much more efficient way than trying to make GFP_PGTABLE special and keep the code around? -- Michal Hocko SUSE Labs _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel