Aleksa Sarai
99f34659e7
selftests: memfd: error out test process when child test fails
...
Patch series "memfd: cleanups for vm.memfd_noexec", v2.
The most critical issue with vm.memfd_noexec=2 (the fact that passing
MFD_EXEC would bypass it entirely[1]) has been fixed in Andrew's
tree[2], but there are still some outstanding issues that need to be
addressed:
* vm.memfd_noexec=2 shouldn't reject old-style memfd_create(2) syscalls
because it will make it far to difficult to ever migrate. Instead it
should imply MFD_EXEC.
* The dmesg warnings are pr_warn_once(), which on most systems means
that they will be used up by systemd or some other boot process and
userspace developers will never see it.
- For the !(flags & (MFD_EXEC | MFD_NOEXEC_SEAL)) case, outputting a
rate-limited message to the kernel log is necessary to tell
userspace that they should add the new flags.
Arguably the most ideal way to deal with the spam concern[3,4]
while still prompting userspace to switch to the new flags would be
to only log the warning once per task or something similar.
However, adding something to task_struct for tracking this would be
needless bloat for a single pr_warn_ratelimited().
So just switch to pr_info_ratelimited() to avoid spamming the log
with something that isn't a real warning. There's lots of
info-level stuff in dmesg, it seems really unlikely that this
should be an actual problem. Most programs are already switching to
the new flags anyway.
- For the vm.memfd_noexec=2 case, we need to log a warning for every
failure because otherwise userspace will have no idea why their
previously working program started returning -EACCES (previously
-EINVAL) from memfd_create(2). pr_warn_once() is simply wrong here.
* The racheting mechanism for vm.memfd_noexec makes it incredibly
unappealing for most users to enable the sysctl because enabling it
on &init_pid_ns means you need a system reboot to unset it. Given the
actual security threat being protected against, CAP_SYS_ADMIN users
being restricted in this way makes little sense.
The argument for this ratcheting by the original author was that it
allows you to have a hierarchical setting that cannot be unset by
child pidnses, but this is not accurate -- changing the parent
pidns's vm.memfd_noexec setting to be more restrictive didn't affect
children.
Instead, switch the vm.memfd_noexec sysctl to be properly
hierarchical and allow CAP_SYS_ADMIN users (in the pidns's owning
userns) to lower the setting as long as it is not lower than the
parent's effective setting. This change also makes it so that
changing a parent pidns's vm.memfd_noexec will affect all
descendants, providing a properly hierarchical setting. The
performance impact of this is incredibly minimal since the maximum
depth of pidns is 32 and it is only checked during memfd_create(2)
and unshare(CLONE_NEWPID).
* The memfd selftests would not exit with a non-zero error code when
certain tests that ran in a forked process (specifically the ones
related to MFD_EXEC and MFD_NOEXEC_SEAL) failed.
[1]: https://lore.kernel.org/all/ZJwcsU0vI-nzgOB_@codewreck.org/
[2]: https://lore.kernel.org/all/20230705063315.3680666-1-jeffxu@google.com/
[3]: https://lore.kernel.org/Y5yS8wCnuYGLHMj4@x1n/
[4]: https://lore.kernel.org/f185bb42-b29c-977e-312e-3349eea15383@linuxfoundation.org/
This patch (of 5):
Before this change, a test runner using this self test would see a return
code of 0 when the tests using a child process (namely the MFD_NOEXEC_SEAL
and MFD_EXEC tests) failed, masking test failures.
Link: https://lkml.kernel.org/r/20230814-memfd-vm-noexec-uapi-fixes-v2-0-7ff9e3e10ba6@cyphar.com
Link: https://lkml.kernel.org/r/20230814-memfd-vm-noexec-uapi-fixes-v2-1-7ff9e3e10ba6@cyphar.com
Fixes: 11f75a0144 ("selftests/memfd: add tests for MFD_NOEXEC_SEAL MFD_EXEC")
Signed-off-by: Aleksa Sarai <cyphar@cyphar.com >
Reviewed-by: Jeff Xu <jeffxu@google.com >
Cc: "Christian Brauner (Microsoft)" <brauner@kernel.org >
Cc: Daniel Verkamp <dverkamp@chromium.org >
Cc: Dominique Martinet <asmadeus@codewreck.org >
Cc: Kees Cook <keescook@chromium.org >
Cc: Shuah Khan <shuah@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:59 -07:00
Rong Tao
708879a1b4
selftests/mm: fix uffd-stress help information
...
commit 686a8bb72349("selftests/mm: split uffd tests into uffd-stress and
uffd-unit-tests") split uffd tests into uffd-stress and uffd-unit-tests,
obviously we need to modify the help information synchronously.
Also modify code indentation.
Link: https://lkml.kernel.org/r/tencent_64FC724AC5F05568F41BD1C68058E83CEB05@qq.com
Signed-off-by: Rong Tao <rongtao@cestc.cn >
Cc: Shuah Khan <shuah@kernel.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:58 -07:00
Vishal Moola (Oracle)
9a4bbd8d97
mm: remove pgtable_{pmd, pte}_page_{ctor, dtor}() wrappers
...
These functions are no longer necessary. Remove them and cleanup
Documentation referencing them.
Link: https://lkml.kernel.org/r/20230807230513.102486-32-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:58 -07:00
Vishal Moola (Oracle)
da9aefca78
um: convert {pmd, pte}_free_tlb() to use ptdescs
...
Part of the conversions to replace pgtable constructor/destructors with
ptdesc equivalents. Also cleans up some spacing issues.
Link: https://lkml.kernel.org/r/20230807230513.102486-31-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:58 -07:00
Vishal Moola (Oracle)
222107e160
sparc: convert pgtable_pte_page_{ctor, dtor}() to ptdesc equivalents
...
Part of the conversions to replace pgtable pte constructor/destructors
with ptdesc equivalents.
Link: https://lkml.kernel.org/r/20230807230513.102486-30-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:58 -07:00
Vishal Moola (Oracle)
b3311d707c
sparc64: convert various functions to use ptdescs
...
As part of the conversions to replace pgtable constructor/destructors with
ptdesc equivalents, convert various page table functions to use ptdescs.
Link: https://lkml.kernel.org/r/20230807230513.102486-29-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:58 -07:00
Vishal Moola (Oracle)
bb3be38853
sh: convert pte_free_tlb() to use ptdescs
...
Part of the conversions to replace pgtable constructor/destructors with
ptdesc equivalents. Also cleans up some spacing issues.
Link: https://lkml.kernel.org/r/20230807230513.102486-28-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be >
Acked-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:57 -07:00
Vishal Moola (Oracle)
380f2c1ae9
riscv: convert alloc_{pmd, pte}_late() to use ptdescs
...
As part of the conversions to replace pgtable constructor/destructors with
ptdesc equivalents, convert various page table functions to use ptdescs.
Some of the functions use the *get*page*() helper functions. Convert
these to use pagetable_alloc() and ptdesc_address() instead to help
standardize page tables further.
Link: https://lkml.kernel.org/r/20230807230513.102486-27-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Palmer Dabbelt <palmer@rivosinc.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:57 -07:00
Vishal Moola (Oracle)
5823b9fe04
openrisc: convert __pte_free_tlb() to use ptdescs
...
Part of the conversions to replace pgtable constructor/destructors with
ptdesc equivalents.
Link: https://lkml.kernel.org/r/20230807230513.102486-26-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:57 -07:00
Vishal Moola (Oracle)
61139e9a75
nios2: convert __pte_free_tlb() to use ptdescs
...
Part of the conversions to replace pgtable constructor/destructors with
ptdesc equivalents.
Link: https://lkml.kernel.org/r/20230807230513.102486-25-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Acked-by: Dinh Nguyen <dinguyen@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:57 -07:00
Vishal Moola (Oracle)
3e14fb19ad
mips: convert various functions to use ptdescs
...
As part of the conversions to replace pgtable constructor/destructors with
ptdesc equivalents, convert various page table functions to use ptdescs.
Some of the functions use the *get*page*() helper functions. Convert
these to use pagetable_alloc() and ptdesc_address() instead to help
standardize page tables further.
Link: https://lkml.kernel.org/r/20230807230513.102486-24-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:56 -07:00
Vishal Moola (Oracle)
bff28e6bd0
m68k: convert various functions to use ptdescs
...
As part of the conversions to replace pgtable constructor/destructors with
ptdesc equivalents, convert various page table functions to use ptdescs.
Some of the functions use the *get*page*() helper functions. Convert
these to use pagetable_alloc() and ptdesc_address() instead to help
standardize page tables further.
Link: https://lkml.kernel.org/r/20230807230513.102486-23-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:56 -07:00
Vishal Moola (Oracle)
382739797f
loongarch: convert various functions to use ptdescs
...
As part of the conversions to replace pgtable constructor/destructors with
ptdesc equivalents, convert various page table functions to use ptdescs.
Some of the functions use the *get*page*() helper functions. Convert
these to use pagetable_alloc() and ptdesc_address() instead to help
standardize page tables further.
Link: https://lkml.kernel.org/r/20230807230513.102486-22-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:56 -07:00
Vishal Moola (Oracle)
b45a12c007
hexagon: convert __pte_free_tlb() to use ptdescs
...
Part of the conversions to replace pgtable constructor/destructors with
ptdesc equivalents.
Link: https://lkml.kernel.org/r/20230807230513.102486-21-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:56 -07:00
Vishal Moola (Oracle)
e647333995
csky: convert __pte_free_tlb() to use ptdescs
...
Part of the conversions to replace pgtable constructor/destructors with
ptdesc equivalents.
Link: https://lkml.kernel.org/r/20230807230513.102486-20-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Guo Ren <guoren@kernel.org >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:55 -07:00
Vishal Moola (Oracle)
11b4fa8b2a
arm64: convert various functions to use ptdescs
...
As part of the conversions to replace pgtable constructor/destructors with
ptdesc equivalents, convert various page table functions to use ptdescs.
Link: https://lkml.kernel.org/r/20230807230513.102486-19-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Acked-by: Catalin Marinas <catalin.marinas@arm.com >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:55 -07:00
Vishal Moola (Oracle)
358d1c39c8
arm: convert various functions to use ptdescs
...
As part of the conversions to replace pgtable constructor/destructors with
ptdesc equivalents, convert various page table functions to use ptdescs.
late_alloc() also uses the __get_free_pages() helper function. Convert
this to use pagetable_alloc() and ptdesc_address() instead to help
standardize page tables further.
Link: https://lkml.kernel.org/r/20230807230513.102486-18-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:55 -07:00
Vishal Moola (Oracle)
c787ae5b39
pgalloc: convert various functions to use ptdescs
...
As part of the conversions to replace pgtable constructor/destructors with
ptdesc equivalents, convert various page table functions to use ptdescs.
Some of the functions use the *get*page*() helper functions. Convert
these to use pagetable_alloc() and ptdesc_address() instead to help
standardize page tables further.
Link: https://lkml.kernel.org/r/20230807230513.102486-17-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:55 -07:00
Vishal Moola (Oracle)
4f054c28f4
mm: remove page table members from struct page
...
The page table members are now split out into their own ptdesc struct.
Remove them from struct page.
Link: https://lkml.kernel.org/r/20230807230513.102486-16-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:55 -07:00
Vishal Moola (Oracle)
6326c26c15
s390: convert various pgalloc functions to use ptdescs
...
As part of the conversions to replace pgtable constructor/destructors with
ptdesc equivalents, convert various page table functions to use ptdescs.
Some of the functions use the *get*page*() helper functions. Convert
these to use pagetable_alloc() and ptdesc_address() instead to help
standardize page tables further.
Link: https://lkml.kernel.org/r/20230807230513.102486-15-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:54 -07:00
Vishal Moola (Oracle)
f92c494f42
x86: convert various functions to use ptdescs
...
In order to split struct ptdesc from struct page, convert various
functions to use ptdescs.
Some of the functions use the *get*page*() helper functions. Convert
these to use pagetable_alloc() and ptdesc_address() instead to help
standardize page tables further.
Link: https://lkml.kernel.org/r/20230807230513.102486-14-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:54 -07:00
Vishal Moola (Oracle)
4eaca96140
powerpc: convert various functions to use ptdescs
...
In order to split struct ptdesc from struct page, convert various
functions to use ptdescs.
Link: https://lkml.kernel.org/r/20230807230513.102486-13-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:54 -07:00
Vishal Moola (Oracle)
7e11dca14b
mm: create ptdesc equivalents for pgtable_{pte,pmd}_page_{ctor,dtor}
...
Create pagetable_pte_ctor(), pagetable_pmd_ctor(), pagetable_pte_dtor(),
and pagetable_pmd_dtor() and make the original pgtable
constructor/destructors wrappers.
Link: https://lkml.kernel.org/r/20230807230513.102486-12-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:54 -07:00
Vishal Moola (Oracle)
6ed1b8a09d
mm: convert ptlock_free() to use ptdescs
...
This removes some direct accesses to struct page, working towards
splitting out struct ptdesc from struct page.
Link: https://lkml.kernel.org/r/20230807230513.102486-11-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:53 -07:00
Vishal Moola (Oracle)
7e5f42ae34
mm: convert pmd_ptlock_free() to use ptdescs
...
This removes some direct accesses to struct page, working towards
splitting out struct ptdesc from struct page.
Link: https://lkml.kernel.org/r/20230807230513.102486-10-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:53 -07:00
Vishal Moola (Oracle)
75b25d49ca
mm: convert ptlock_init() to use ptdescs
...
This removes some direct accesses to struct page, working towards
splitting out struct ptdesc from struct page.
Link: https://lkml.kernel.org/r/20230807230513.102486-9-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:53 -07:00
Vishal Moola (Oracle)
edbaefe53c
mm: convert pmd_ptlock_init() to use ptdescs
...
This removes some direct accesses to struct page, working towards
splitting out struct ptdesc from struct page.
Link: https://lkml.kernel.org/r/20230807230513.102486-8-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:53 -07:00
Vishal Moola (Oracle)
1865484af6
mm: convert ptlock_ptr() to use ptdescs
...
This removes some direct accesses to struct page, working towards
splitting out struct ptdesc from struct page.
Link: https://lkml.kernel.org/r/20230807230513.102486-7-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:52 -07:00
Vishal Moola (Oracle)
f5ecca06b3
mm: convert ptlock_alloc() to use ptdescs
...
This removes some direct accesses to struct page, working towards
splitting out struct ptdesc from struct page.
Link: https://lkml.kernel.org/r/20230807230513.102486-6-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:52 -07:00
Vishal Moola (Oracle)
f8546d8494
mm: convert pmd_pgtable_page() callers to use pmd_ptdesc()
...
Converts internal pmd_pgtable_page() callers to use pmd_ptdesc(). This
removes some direct accesses to struct page, working towards splitting out
struct ptdesc from struct page.
Link: https://lkml.kernel.org/r/20230807230513.102486-5-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:52 -07:00
Vishal Moola (Oracle)
bf2d4334f7
mm: add utility functions for ptdesc
...
Introduce utility functions setting the foundation for ptdescs. These
will also assist in the splitting out of ptdesc from struct page.
Functions that focus on the descriptor are prefixed with ptdesc_* while
functions that focus on the pagetable are prefixed with pagetable_*.
pagetable_alloc() is defined to allocate new ptdesc pages as compound
pages. This is to standardize ptdescs by allowing for one allocation and
one free function, in contrast to 2 allocation and 2 free functions.
Link: https://lkml.kernel.org/r/20230807230513.102486-4-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:52 -07:00
Vishal Moola (Oracle)
9a35de4ffc
pgtable: create struct ptdesc
...
Currently, page table information is stored within struct page. As part
of simplifying struct page, create struct ptdesc for page table
information.
Link: https://lkml.kernel.org/r/20230807230513.102486-3-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:51 -07:00
Vishal Moola (Oracle)
f7bda0d85d
mm: add PAGE_TYPE_OP folio functions
...
Patch series "Split ptdesc from struct page", v9.
The MM subsystem is trying to shrink struct page. This patchset
introduces a memory descriptor for page table tracking - struct ptdesc.
This patchset introduces ptdesc, splits ptdesc from struct page, and
converts many callers of page table constructor/destructors to use
ptdescs.
Ptdesc is a foundation to further standardize page tables, and eventually
allow for dynamic allocation of page tables independent of struct page.
However, the use of pages for page table tracking is quite deeply
ingrained and varied across archictectures, so there is still a lot of
work to be done before that can happen.
This patch (of 31):
No folio equivalents for page type operations have been defined, so define
them for later folio conversions.
Also changes the Page##uname macros to take in const struct page* since we
only read the memory here.
Link: https://lkml.kernel.org/r/20230807230513.102486-1-vishal.moola@gmail.com
Link: https://lkml.kernel.org/r/20230807230513.102486-2-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Claudio Imbrenda <imbrenda@linux.ibm.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Hugh Dickins <hughd@google.com >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Cc: Geert Uytterhoeven <geert+renesas@glider.be >
Cc: Guo Ren <guoren@kernel.org >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Palmer Dabbelt <palmer@rivosinc.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:51 -07:00
Xiu Jianfeng
e1dea6d3c6
mm/z3fold: remove obsolete comment for struct z3fold_pool
...
Since commit e774a7bc7f ("mm: zswap: remove page reclaim logic from
z3fold"), zpool and zpool_ops have been removed, so also remove the
corresponding comments.
Link: https://lkml.kernel.org/r/20230814221142.486548-1-xiujianfeng@huaweicloud.com
Signed-off-by: Xiu Jianfeng <xiujianfeng@huawei.com >
Reviewed-by: Miaohe Lin <linmiaohe@huawei.com >
Cc: Vitaly Wool <vitaly.wool@konsulko.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:51 -07:00
Kemeng Shi
b5ffd29733
mm/page_alloc: use get_pfnblock_migratetype to avoid extra page_to_pfn
...
We have get_pageblock_migratetype and get_pfnblock_migratetype to get
migratetype of page. get_pfnblock_migratetype accepts both page and pfn
from caller while get_pageblock_migratetype only accept page and get pfn
with page_to_pfn from page.
In case we already record pfn of page, we can simply call
get_pfnblock_migratetype to avoid a page_to_pfn.
Link: https://lkml.kernel.org/r/20230811115945.3423894-3-shikemeng@huaweicloud.com
Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com >
Acked-by: Mel Gorman <mgorman@techsingularity.net >
Cc: Baolin Wang <baolin.wang@linux.alibaba.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: Matthew Wilcox (Oracle) <willy@infradead.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:51 -07:00
Kemeng Shi
a04d12c248
mm/page_alloc: remove unnecessary inner __get_pfnblock_flags_mask
...
Patch series "Two minor cleanups for get pageblock migratetype".
This series contains two minor cleanups for get pageblock migratetype.
More details can be found in respective patches.
This patch (of 2):
get_pfnblock_flags_mask() just calls inline inner
__get_pfnblock_flags_mask without any extra work. Just opencode
__get_pfnblock_flags_mask in get_pfnblock_flags_mask and replace call to
__get_pfnblock_flags_mask with call to get_pfnblock_flags_mask to remove
unnecessary __get_pfnblock_flags_mask.
Link: https://lkml.kernel.org/r/20230811115945.3423894-1-shikemeng@huaweicloud.com
Link: https://lkml.kernel.org/r/20230811115945.3423894-2-shikemeng@huaweicloud.com
Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com >
Acked-by: Mel Gorman <mgorman@techsingularity.net >
Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org >
Cc: Baolin Wang <baolin.wang@linux.alibaba.com >
Cc: David Hildenbrand <david@redhat.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:50 -07:00
ZhangPeng
368d983b98
mm: page_alloc: remove unused parameter from reserve_highatomic_pageblock()
...
Just remove the redundant parameter alloc_order from
reserve_highatomic_pageblock(). No functional modification involved.
Link: https://lkml.kernel.org/r/20230809073323.1065286-1-zhangpeng362@huawei.com
Signed-off-by: ZhangPeng <zhangpeng362@huawei.com >
Cc: Kefeng Wang <wangkefeng.wang@huawei.com >
Cc: Mel Gorman <mgorman@techsingularity.net >
Cc: Nanyong Sun <sunnanyong@huawei.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:50 -07:00
Charan Teja Kalla
b7108d6631
Multi-gen LRU: skip CMA pages when they are not eligible
...
This patch is based on the commit 5da226dbfce3("mm: skip CMA pages when
they are not available") which skips cma pages reclaim when they are not
eligible for the current allocation context. In mglru, such pages are
added to the tail of the immediate generation to maintain better LRU
order, which is unlike the case of conventional LRU where such pages are
directly added to the head of the LRU list(akin to adding to head of the
youngest generation in mglru).
No observable issue without this patch on MGLRU, but logically it make
sense to skip the CMA page reclaim when those pages can't be satisfied for
the current allocation context.
Link: https://lkml.kernel.org/r/1691568344-13475-1-git-send-email-quic_charante@quicinc.com
Fixes: ac35a49023 ("mm: multi-gen LRU: minimal implementation")
Signed-off-by: Charan Teja Kalla <quic_charante@quicinc.com >
Reviewed-by: Kalesh Singh <kaleshsingh@google.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: Suren Baghdasaryan <surenb@google.com >
Cc: Yu Zhao <yuzhao@google.com >
Cc: Zhaoyang Huang <zhaoyang.huang@unisoc.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:50 -07:00
Kemeng Shi
8fbb92bd10
mm/compaction: remove unused parameter pgdata of fragmentation_score_wmark
...
Parameter pgdat is not used in fragmentation_score_wmark. Just remove it.
Link: https://lkml.kernel.org/r/20230809094910.3092446-1-shikemeng@huaweicloud.com
Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com >
Reviewed-by: David Hildenbrand <david@redhat.com >
Acked-by: Mel Gorman <mgorman@techsingularity.net >
Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com >
Cc: Matthew Wilcox <willy@infradead.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:50 -07:00
Kemeng Shi
1305870529
mm/page_alloc: remove unnecessary parameter batch of nr_pcp_free
...
We get batch from pcp and just pass it to nr_pcp_free immediately. Get
batch from pcp inside nr_pcp_free to remove unnecessary parameter batch.
Link: https://lkml.kernel.org/r/20230809100754.3094517-3-shikemeng@huaweicloud.com
Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com >
Cc: Baolin Wang <baolin.wang@linux.alibaba.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Mel Gorman <mgorman@techsingularity.net >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:50 -07:00
Kemeng Shi
f142b2c253
mm/page_alloc: remove track of active PCP lists range in bulk free
...
Patch series "Two minor cleanups for pcp list in page_alloc".
There are two minor cleanups for pcp list in page_alloc. More details
can be found in respective patches.
This patch (of 2):
After commit fd56eef258 ("mm/page_alloc: simplify how many pages are
selected per pcp list during bulk free"), we will drain all pages in
selected pcp list. And we ensured passed count is < pcp->count. Then,
the search will finish before wrap-around and track of active PCP lists
range intended for wrap-around case is no longer needed.
Link: https://lkml.kernel.org/r/20230809100754.3094517-1-shikemeng@huaweicloud.com
Link: https://lkml.kernel.org/r/20230809100754.3094517-2-shikemeng@huaweicloud.com
Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com >
Cc: Baolin Wang <baolin.wang@linux.alibaba.com >
Cc: David Hildenbrand <david@redhat.com >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Mel Gorman <mgorman@techsingularity.net >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:49 -07:00
Aneesh Kumar K.V
1a8c64e110
mm/memory_hotplug: embed vmem_altmap details in memory block
...
With memmap on memory, some architecture needs more details w.r.t altmap
such as base_pfn, end_pfn, etc to unmap vmemmap memory. Instead of
computing them again when we remove a memory block, embed vmem_altmap
details in struct memory_block if we are using memmap on memory block
feature.
[yangyingliang@huawei.com: fix error return code in add_memory_resource()]
Link: https://lkml.kernel.org/r/20230809081552.1351184-1-yangyingliang@huawei.com
Link: https://lkml.kernel.org/r/20230808091501.287660-7-aneesh.kumar@linux.ibm.com
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com >
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com >
Acked-by: Michal Hocko <mhocko@suse.com >
Acked-by: David Hildenbrand <david@redhat.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Oscar Salvador <osalvador@suse.de >
Cc: Vishal Verma <vishal.l.verma@intel.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:49 -07:00
Aneesh Kumar K.V
603fd64dfa
powerpc/book3s64/memhotplug: enable memmap on memory for radix
...
Radix vmemmap mapping can map things correctly at the PMD level or PTE
level based on different device boundary checks. Hence we skip the
restrictions w.r.t vmemmap size to be multiple of PMD_SIZE. This also
makes the feature widely useful because to use PMD_SIZE vmemmap area we
require a memory block size of 2GiB
We can also use MHP_RESERVE_PAGES_MEMMAP_ON_MEMORY to that the feature can
work with a memory block size of 256MB. Using altmap.reserve feature to
align things correctly at pageblock granularity. We can end up losing
some pages in memory with this. For ex: with a 256MiB memory block size,
we require 4 pages to map vmemmap pages, In order to align things
correctly we end up adding a reserve of 28 pages. ie, for every 4096
pages 28 pages get reserved.
Link: https://lkml.kernel.org/r/20230808091501.287660-6-aneesh.kumar@linux.ibm.com
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com >
Reviewed-by: David Hildenbrand <david@redhat.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Hocko <mhocko@suse.com >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Oscar Salvador <osalvador@suse.de >
Cc: Vishal Verma <vishal.l.verma@intel.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:49 -07:00
Aneesh Kumar K.V
2d1f649c7c
mm/memory_hotplug: support memmap_on_memory when memmap is not aligned to pageblocks
...
Currently, memmap_on_memory feature is only supported with memory block
sizes that result in vmemmap pages covering full page blocks. This is
because memory onlining/offlining code requires applicable ranges to be
pageblock-aligned, for example, to set the migratetypes properly.
This patch helps to lift that restriction by reserving more pages than
required for vmemmap space. This helps the start address to be page block
aligned with different memory block sizes. Using this facility implies
the kernel will be reserving some pages for every memoryblock. This
allows the memmap on memory feature to be widely useful with different
memory block size values.
For ex: with 64K page size and 256MiB memory block size, we require 4
pages to map vmemmap pages, To align things correctly we end up adding a
reserve of 28 pages. ie, for every 4096 pages 28 pages get reserved.
Link: https://lkml.kernel.org/r/20230808091501.287660-5-aneesh.kumar@linux.ibm.com
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com >
Acked-by: Michal Hocko <mhocko@suse.com >
Acked-by: David Hildenbrand <david@redhat.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Oscar Salvador <osalvador@suse.de >
Cc: Vishal Verma <vishal.l.verma@intel.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:49 -07:00
Aneesh Kumar K.V
85a2b4b08f
mm/memory_hotplug: allow architecture to override memmap on memory support check
...
Some architectures would want different restrictions. Hence add an
architecture-specific override.
The PMD_SIZE check is moved there.
Link: https://lkml.kernel.org/r/20230808091501.287660-4-aneesh.kumar@linux.ibm.com
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com >
Acked-by: Michal Hocko <mhocko@suse.com >
Acked-by: David Hildenbrand <david@redhat.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Oscar Salvador <osalvador@suse.de >
Cc: Vishal Verma <vishal.l.verma@intel.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:48 -07:00
Aneesh Kumar K.V
e3c2bfdd33
mm/memory_hotplug: allow memmap on memory hotplug request to fallback
...
If not supported, fallback to not using memap on memmory. This avoids
the need for callers to do the fallback.
Link: https://lkml.kernel.org/r/20230808091501.287660-3-aneesh.kumar@linux.ibm.com
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com >
Acked-by: Michal Hocko <mhocko@suse.com >
Acked-by: David Hildenbrand <david@redhat.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Oscar Salvador <osalvador@suse.de >
Cc: Vishal Verma <vishal.l.verma@intel.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:48 -07:00
Aneesh Kumar K.V
04d5ea46a1
mm/memory_hotplug: simplify ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE kconfig
...
Patch series "Add support for memmap on memory feature on ppc64", v8.
This patch series update memmap on memory feature to fall back to
memmap allocation outside the memory block if the alignment rules are
not met. This makes the feature more useful on architectures like
ppc64 where alignment rules are different with 64K page size.
This patch (of 6):
Instead of adding menu entry with all supported architectures, add
mm/Kconfig variable and select the same from supported architectures.
No functional change in this patch.
Link: https://lkml.kernel.org/r/20230808091501.287660-1-aneesh.kumar@linux.ibm.com
Link: https://lkml.kernel.org/r/20230808091501.287660-2-aneesh.kumar@linux.ibm.com
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com >
Acked-by: Michal Hocko <mhocko@suse.com >
Acked-by: David Hildenbrand <david@redhat.com >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Oscar Salvador <osalvador@suse.de >
Cc: Vishal Verma <vishal.l.verma@intel.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:48 -07:00
Jinliang Zheng
9af7c7426c
writeback: remove redundant checks for root memcg
...
The check for root memcg will be done in wb_get_lookup(), so remove the
redundant one to simplify the code.
Link: https://lkml.kernel.org/r/20230808084431.1632934-1-alexjlzheng@tencent.com
Signed-off-by: Jinliang Zheng <alexjlzheng@tencent.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:48 -07:00
Xiu Jianfeng
97157d8908
mm: zswap: update comment for struct zswap_entry
...
Since commit 0bb488498c ("mm: zswap: remove zswap_header"), the 'offset'
has been replaced by swpentry, update the comment for it, and also add
comment for 'objcg'.
Link: https://lkml.kernel.org/r/20230808062056.292950-1-xiujianfeng@huaweicloud.com
Signed-off-by: Xiu Jianfeng <xiujianfeng@huawei.com >
Reviewed-by: Yosry Ahmed <yosryahmed@google.com >
Acked-by: Nhat Pham <nphamcs@gmail.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:47 -07:00
Kefeng Wang
3f32c49ed6
mm: memtest: convert to memtest_report_meminfo()
...
It is better to not expose too many internal variables of memtest,
add a helper memtest_report_meminfo() to show memtest results.
Link: https://lkml.kernel.org/r/20230808033359.174986-1-wangkefeng.wang@huawei.com
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com >
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org >
Cc: Matthew Wilcox <willy@infradead.org >
Cc: Tomas Mudrunka <tomas.mudrunka@gmail.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2023-08-21 13:37:47 -07:00