From: Mike Rapoport <rppt@linux.ibm.com> To: Andrew Morton <akpm@linux-foundation.org> Cc: Michal Hocko <mhocko@suse.com>, Catalin Marinas <catalin.marinas@arm.com>, Palmer Dabbelt <palmer@sifive.com>, linux-mips@vger.kernel.org, Guo Ren <guoren@kernel.org>, linux-hexagon@vger.kernel.org, linux-riscv@lists.infradead.org, linux-arch@vger.kernel.org, Michael Ellerman <mpe@ellerman.id.au>, Helge Deller <deller@gmx.de>, x86@kernel.org, Russell King <linux@armlinux.org.uk>, Matthew Wilcox <willy@infradead.org>, Mike Rapoport <rppt@linux.ibm.com>, Geert Uytterhoeven <geert@linux-m68k.org>, Matt Turner <mattst88@gmail.com>, Sam Creasey <sammy@sammy.net>, Arnd Bergmann <arnd@arndb.de>, linux-um@lists.infradead.org, Richard Weinberger <richard@nod.at>, linux-m68k@lists.linux-m68k.org, Greentime Hu <green.hu@gmail.com>, nios2-dev@lists.rocketboards.org, Guan Xuetao <gxt@pku.edu.cn>, linux-arm-kernel@lists.infradead.org, linux-parisc@vger.kernel.org, linux-kernel@vger.ke Subject: [PATCH 00/15] introduce generic pte_{alloc,free}_one[_kernel] Date: Thu, 2 May 2019 18:28:27 +0300 [thread overview] Message-ID: <1556810922-20248-1-git-send-email-rppt@linux.ibm.com> (raw) Hi, I've tried to trim down the recipients list, but it's still quite long, so sorry for the spam. Many architectures have similar, if not identical implementation of pte_alloc_one_kernel(), pte_alloc_one(), pte_free_kernel() and pte_free(). A while ago Anshuman suggested to introduce a common definition of GFP_PGTABLE and during the discussion it was suggested to rather consolidate the allocators. These patches introduce generic version of PTE allocation and free and enable their use on several architectures. The conversion introduces some changes for some of the architectures. Here's the executive summary and the details are described at each patch. * Most architectures do not set __GFP_ACCOUNT for the user page tables. Switch to the generic functions is "spreading that goodness to all other architectures" * arm, arm64 and unicore32 used to check if the pte is not NULL before freeing its memory in pte_free_kernel(). It's dropped during the conversion as it seems superfluous. * x86 used to BUG_ON() is pte was not page aligned duirng pte_free_kernel(), the generic version simply frees the memory without any checks. This set only performs the straightforward conversion, the architectures with different logic in pte_alloc_one() and pte_alloc_one_kernel() are not touched, as well as architectures that have custom page table allocators. [1] https://lore.kernel.org/lkml/1547619692-7946-1-git-send-email-anshuman.khandual@arm.com asm-generic, x86: introduce generic pte_{alloc,free}_one[_kernel] Mike Rapoport (15): asm-generic, x86: introduce generic pte_{alloc,free}_one[_kernel] alpha: switch to generic version of pte allocation arm: switch to generic version of pte allocation arm64: switch to generic version of pte allocation csky: switch to generic version of pte allocation hexagon: switch to generic version of pte allocation m68k: sun3: switch to generic version of pte allocation mips: switch to generic version of pte allocation nds32: switch to generic version of pte allocation nios2: switch to generic version of pte allocation parisc: switch to generic version of pte allocation powerpc/nohash/64: switch to generic version of pte allocation riscv: switch to generic version of pte allocation um: switch to generic version of pte allocation unicore32: switch to generic version of pte allocation arch/alpha/include/asm/pgalloc.h | 40 +--------- arch/arm/include/asm/pgalloc.h | 41 ++++------ arch/arm/mm/mmu.c | 2 +- arch/arm64/include/asm/pgalloc.h | 43 +---------- arch/arm64/mm/mmu.c | 2 +- arch/arm64/mm/pgd.c | 4 +- arch/csky/include/asm/pgalloc.h | 30 +------- arch/hexagon/include/asm/pgalloc.h | 34 +-------- arch/m68k/include/asm/sun3_pgalloc.h | 41 +--------- arch/mips/include/asm/pgalloc.h | 33 +-------- arch/nds32/include/asm/pgalloc.h | 31 +------- arch/nios2/include/asm/pgalloc.h | 37 +-------- arch/parisc/include/asm/pgalloc.h | 33 +-------- arch/powerpc/include/asm/nohash/64/pgalloc.h | 35 +-------- arch/riscv/include/asm/pgalloc.h | 29 +------- arch/um/include/asm/pgalloc.h | 16 +--- arch/um/kernel/mem.c | 22 ------ arch/unicore32/include/asm/pgalloc.h | 36 ++------- arch/x86/include/asm/pgalloc.h | 19 +---- arch/x86/mm/pgtable.c | 33 +++------ include/asm-generic/pgalloc.h | 107 ++++++++++++++++++++++++++- virt/kvm/arm/mmu.c | 2 +- 22 files changed, 171 insertions(+), 499 deletions(-) -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@linux.ibm.com> To: Andrew Morton <akpm@linux-foundation.org> Cc: Arnd Bergmann <arnd@arndb.de>, Catalin Marinas <catalin.marinas@arm.com>, Geert Uytterhoeven <geert@linux-m68k.org>, Greentime Hu <green.hu@gmail.com>, Guan Xuetao <gxt@pku.edu.cn>, Guo Ren <guoren@kernel.org>, Helge Deller <deller@gmx.de>, Ley Foon Tan <lftan@altera.com>, Matthew Wilcox <willy@infradead.org>, Matt Turner <mattst88@gmail.com>, Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>, Palmer Dabbelt <palmer@sifive.com>, Paul Burton <paul.burton@mips.com>, Richard Kuo <rkuo@codeaurora.org>, Richard Weinberger <richard@nod.at>, Russell King <linux@armlinux.org.uk>, Sam Creasey <sammy@sammy.net>, x86@kernel.org, linux-alpha@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-hexagon@vger.kernel.org, linux-kernel@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-um@lists.infradead.org, nios2-dev@lists.rocketboards.org, Mike Rapoport <rppt@linux.ibm.com> Subject: [PATCH 00/15] introduce generic pte_{alloc,free}_one[_kernel] Date: Thu, 2 May 2019 18:28:27 +0300 [thread overview] Message-ID: <1556810922-20248-1-git-send-email-rppt@linux.ibm.com> (raw) Message-ID: <20190502152827.upHiYEvpCdQskJPtNvZCwX5P0aCDKk35stTEjUgYOoA@z> (raw) Hi, I've tried to trim down the recipients list, but it's still quite long, so sorry for the spam. Many architectures have similar, if not identical implementation of pte_alloc_one_kernel(), pte_alloc_one(), pte_free_kernel() and pte_free(). A while ago Anshuman suggested to introduce a common definition of GFP_PGTABLE and during the discussion it was suggested to rather consolidate the allocators. These patches introduce generic version of PTE allocation and free and enable their use on several architectures. The conversion introduces some changes for some of the architectures. Here's the executive summary and the details are described at each patch. * Most architectures do not set __GFP_ACCOUNT for the user page tables. Switch to the generic functions is "spreading that goodness to all other architectures" * arm, arm64 and unicore32 used to check if the pte is not NULL before freeing its memory in pte_free_kernel(). It's dropped during the conversion as it seems superfluous. * x86 used to BUG_ON() is pte was not page aligned duirng pte_free_kernel(), the generic version simply frees the memory without any checks. This set only performs the straightforward conversion, the architectures with different logic in pte_alloc_one() and pte_alloc_one_kernel() are not touched, as well as architectures that have custom page table allocators. [1] https://lore.kernel.org/lkml/1547619692-7946-1-git-send-email-anshuman.khandual@arm.com asm-generic, x86: introduce generic pte_{alloc,free}_one[_kernel] Mike Rapoport (15): asm-generic, x86: introduce generic pte_{alloc,free}_one[_kernel] alpha: switch to generic version of pte allocation arm: switch to generic version of pte allocation arm64: switch to generic version of pte allocation csky: switch to generic version of pte allocation hexagon: switch to generic version of pte allocation m68k: sun3: switch to generic version of pte allocation mips: switch to generic version of pte allocation nds32: switch to generic version of pte allocation nios2: switch to generic version of pte allocation parisc: switch to generic version of pte allocation powerpc/nohash/64: switch to generic version of pte allocation riscv: switch to generic version of pte allocation um: switch to generic version of pte allocation unicore32: switch to generic version of pte allocation arch/alpha/include/asm/pgalloc.h | 40 +--------- arch/arm/include/asm/pgalloc.h | 41 ++++------ arch/arm/mm/mmu.c | 2 +- arch/arm64/include/asm/pgalloc.h | 43 +---------- arch/arm64/mm/mmu.c | 2 +- arch/arm64/mm/pgd.c | 4 +- arch/csky/include/asm/pgalloc.h | 30 +------- arch/hexagon/include/asm/pgalloc.h | 34 +-------- arch/m68k/include/asm/sun3_pgalloc.h | 41 +--------- arch/mips/include/asm/pgalloc.h | 33 +-------- arch/nds32/include/asm/pgalloc.h | 31 +------- arch/nios2/include/asm/pgalloc.h | 37 +-------- arch/parisc/include/asm/pgalloc.h | 33 +-------- arch/powerpc/include/asm/nohash/64/pgalloc.h | 35 +-------- arch/riscv/include/asm/pgalloc.h | 29 +------- arch/um/include/asm/pgalloc.h | 16 +--- arch/um/kernel/mem.c | 22 ------ arch/unicore32/include/asm/pgalloc.h | 36 ++------- arch/x86/include/asm/pgalloc.h | 19 +---- arch/x86/mm/pgtable.c | 33 +++------ include/asm-generic/pgalloc.h | 107 ++++++++++++++++++++++++++- virt/kvm/arm/mmu.c | 2 +- 22 files changed, 171 insertions(+), 499 deletions(-) -- 2.7.4
next reply other threads:[~2019-05-02 15:28 UTC|newest] Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-05-02 15:28 Mike Rapoport [this message] 2019-05-02 15:28 ` [PATCH 00/15] introduce generic pte_{alloc,free}_one[_kernel] Mike Rapoport 2019-05-02 15:28 ` [PATCH 01/15] asm-generic, x86: introduce generic pte_{alloc, free}_one[_kernel] Mike Rapoport 2019-05-02 15:28 ` [PATCH 01/15] asm-generic, x86: introduce generic pte_{alloc,free}_one[_kernel] Mike Rapoport 2019-05-02 19:03 ` Paul Burton 2019-05-02 19:03 ` Paul Burton 2019-05-05 6:15 ` Mike Rapoport 2019-05-05 6:15 ` Mike Rapoport 2019-05-02 15:28 ` [PATCH 02/15] alpha: switch to generic version of pte allocation Mike Rapoport 2019-05-02 15:28 ` Mike Rapoport 2019-05-02 15:28 ` [PATCH 03/15] arm: " Mike Rapoport 2019-05-02 15:28 ` Mike Rapoport 2019-05-02 15:28 ` [PATCH 04/15] arm64: " Mike Rapoport 2019-05-02 15:28 ` Mike Rapoport 2019-05-03 10:05 ` Mark Rutland 2019-05-03 10:05 ` Mark Rutland 2019-05-05 6:19 ` Mike Rapoport 2019-05-05 6:19 ` Mike Rapoport 2019-05-02 15:28 ` [PATCH 05/15] csky: " Mike Rapoport 2019-05-02 15:28 ` Mike Rapoport 2019-05-03 16:03 ` Guo Ren 2019-05-03 16:03 ` Guo Ren 2019-05-03 16:18 ` Guo Ren 2019-05-03 16:18 ` Guo Ren 2019-05-02 15:28 ` [PATCH 06/15] hexagon: " Mike Rapoport 2019-05-02 15:28 ` Mike Rapoport 2019-05-02 15:28 ` [PATCH 07/15] m68k: sun3: " Mike Rapoport 2019-05-02 15:28 ` Mike Rapoport 2019-05-02 15:28 ` [PATCH 08/15] mips: " Mike Rapoport 2019-05-02 15:28 ` Mike Rapoport 2019-05-02 19:09 ` Paul Burton 2019-05-02 19:09 ` Paul Burton 2019-05-05 6:17 ` Mike Rapoport 2019-05-05 6:17 ` Mike Rapoport 2019-05-02 15:28 ` [PATCH 09/15] nds32: " Mike Rapoport 2019-05-02 15:28 ` Mike Rapoport 2019-05-07 6:49 ` Greentime Hu 2019-05-07 6:49 ` Greentime Hu 2019-05-02 15:28 ` [PATCH 10/15] nios2: " Mike Rapoport 2019-05-02 15:28 ` Mike Rapoport 2019-05-02 15:28 ` [PATCH 11/15] parisc: " Mike Rapoport 2019-05-02 15:28 ` Mike Rapoport 2019-05-02 15:28 ` [PATCH 12/15] powerpc/nohash/64: " Mike Rapoport 2019-05-02 15:28 ` Mike Rapoport 2019-05-02 16:56 ` Christophe Leroy 2019-05-02 16:56 ` Christophe Leroy 2019-05-05 6:23 ` Mike Rapoport 2019-05-05 6:23 ` Mike Rapoport 2019-05-02 15:28 ` [PATCH 13/15] riscv: " Mike Rapoport 2019-05-02 15:28 ` Mike Rapoport 2019-05-06 18:25 ` Palmer Dabbelt 2019-05-06 18:25 ` Palmer Dabbelt 2019-05-02 15:28 ` [PATCH 14/15] um: " Mike Rapoport 2019-05-02 15:28 ` Mike Rapoport 2019-05-03 13:28 ` Anton Ivanov 2019-05-03 13:28 ` Anton Ivanov 2019-05-02 15:28 ` [PATCH 15/15] unicore32: " Mike Rapoport 2019-05-02 15:28 ` Mike Rapoport
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=1556810922-20248-1-git-send-email-rppt@linux.ibm.com \ --to=rppt@linux.ibm.com \ --cc=akpm@linux-foundation.org \ --cc=arnd@arndb.de \ --cc=catalin.marinas@arm.com \ --cc=deller@gmx.de \ --cc=geert@linux-m68k.org \ --cc=green.hu@gmail.com \ --cc=guoren@kernel.org \ --cc=gxt@pku.edu.cn \ --cc=linux-arch@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-hexagon@vger.kernel.org \ --cc=linux-kernel@vger.ke \ --cc=linux-m68k@lists.linux-m68k.org \ --cc=linux-mips@vger.kernel.org \ --cc=linux-parisc@vger.kernel.org \ --cc=linux-riscv@lists.infradead.org \ --cc=linux-um@lists.infradead.org \ --cc=linux@armlinux.org.uk \ --cc=mattst88@gmail.com \ --cc=mhocko@suse.com \ --cc=mpe@ellerman.id.au \ --cc=nios2-dev@lists.rocketboards.org \ --cc=palmer@sifive.com \ --cc=richard@nod.at \ --cc=sammy@sammy.net \ --cc=willy@infradead.org \ --cc=x86@kernel.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: linkBe 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).