linux/Documentation
Anshuman Khandual 399145f9eb mm/debug: add tests validating architecture page table helpers
This adds tests which will validate architecture page table helpers and
other accessors in their compliance with expected generic MM semantics.
This will help various architectures in validating changes to existing
page table helpers or addition of new ones.

This test covers basic page table entry transformations including but not
limited to old, young, dirty, clean, write, write protect etc at various
level along with populating intermediate entries with next page table page
and validating them.

Test page table pages are allocated from system memory with required size
and alignments.  The mapped pfns at page table levels are derived from a
real pfn representing a valid kernel text symbol.  This test gets called
via late_initcall().

This test gets built and run when CONFIG_DEBUG_VM_PGTABLE is selected.
Any architecture, which is willing to subscribe this test will need to
select ARCH_HAS_DEBUG_VM_PGTABLE.  For now this is limited to arc, arm64,
x86, s390 and powerpc platforms where the test is known to build and run
successfully Going forward, other architectures too can subscribe the test
after fixing any build or runtime problems with their page table helpers.

Folks interested in making sure that a given platform's page table helpers
conform to expected generic MM semantics should enable the above config
which will just trigger this test during boot.  Any non conformity here
will be reported as an warning which would need to be fixed.  This test
will help catch any changes to the agreed upon semantics expected from
generic MM and enable platforms to accommodate it thereafter.

[anshuman.khandual@arm.com: v17]
  Link: http://lkml.kernel.org/r/1587436495-22033-3-git-send-email-anshuman.khandual@arm.com
[anshuman.khandual@arm.com: v18]
  Link: http://lkml.kernel.org/r/1588564865-31160-3-git-send-email-anshuman.khandual@arm.com
Suggested-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Qian Cai <cai@lca.pw>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Tested-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>	[s390]
Tested-by: Christophe Leroy <christophe.leroy@c-s.fr>	[ppc32]
Reviewed-by: Ingo Molnar <mingo@kernel.org>
Cc: Mike Rapoport <rppt@linux.ibm.com>
Cc: Vineet Gupta <vgupta@synopsys.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Kirill A. Shutemov <kirill@shutemov.name>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Link: http://lkml.kernel.org/r/1583919272-24178-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-06-04 19:06:21 -07:00
..
ABI media updates for v5.8-rc1 2020-06-03 20:59:38 -07:00
accounting
admin-guide media updates for v5.8-rc1 2020-06-03 20:59:38 -07:00
arm
arm64 A fair amount of stuff this time around, dominated by yet another massive 2020-06-01 15:45:27 -07:00
block for-5.8-tag 2020-06-02 19:59:25 -07:00
bpf docs/bpf: Add BPF ring buffer design notes 2020-06-01 14:38:22 -07:00
cdrom
core-api padata: document multithreaded jobs 2020-06-03 20:09:45 -07:00
cpu-freq
crypto
dev-tools kcov: collect coverage from interrupts 2020-06-04 19:06:20 -07:00
devicetree media updates for v5.8-rc1 2020-06-03 20:59:38 -07:00
doc-guide media updates for v5.8-rc1 2020-06-03 20:59:38 -07:00
driver-api media updates for v5.8-rc1 2020-06-03 20:59:38 -07:00
fault-injection
fb media updates for v5.8-rc1 2020-06-03 20:59:38 -07:00
features mm/debug: add tests validating architecture page table helpers 2020-06-04 19:06:21 -07:00
filesystems Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
firmware_class
firmware-guide
fpga
gpu Merge tag 'drm-intel-next-2020-05-15' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2020-05-20 13:36:45 +10:00
hid
hwmon Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
i2c
ia64 docs: add IRQ documentation at the core-api book 2020-05-15 12:00:56 -06:00
ide
iio docs: filesystems: convert configfs.txt to ReST 2020-05-05 09:23:25 -06:00
infiniband
input
isdn
kbuild Documentation: kbuild: fix the section title format 2020-04-23 10:53:19 +09:00
kernel-hacking
leds
livepatch
locking A fair amount of stuff this time around, dominated by yet another massive 2020-06-01 15:45:27 -07:00
m68k
maintainer Documentation: fixes to the maintainer-entry-profile template 2020-06-01 09:36:07 -06:00
mhi
mips
misc-devices doc: misc-device: add uacce to toctree(index) 2020-05-05 09:41:59 -06:00
netlabel
networking Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
nios2
nvdimm nvdimm: fixes to maintainter-entry-profile 2020-05-25 10:19:19 -06:00
openrisc
parisc
PCI
pcmcia
power Power management updates for 5.8-rc1 2020-06-02 13:17:23 -07:00
powerpc
process A fair amount of stuff this time around, dominated by yet another massive 2020-06-01 15:45:27 -07:00
RCU rcu: Make rcu_read_unlock_special() safe for rq/pi locks 2020-04-27 11:03:50 -07:00
riscv
s390 docs: s390: Fix wrong label Guest2 instead of Guest3 2020-05-05 09:45:28 -06:00
scheduler
scsi
security A fair amount of stuff this time around, dominated by yet another massive 2020-06-01 15:45:27 -07:00
sh
sound
sparc
sphinx
sphinx-static
spi
target
timers timer: add fsleep for flexible sleeping 2020-05-06 17:03:34 -07:00
trace A fair amount of stuff this time around, dominated by yet another massive 2020-06-01 15:45:27 -07:00
translations media updates for v5.8-rc1 2020-06-03 20:59:38 -07:00
usb A fair amount of stuff this time around, dominated by yet another massive 2020-06-01 15:45:27 -07:00
userspace-api media updates for v5.8-rc1 2020-06-03 20:59:38 -07:00
virt ARM: 2020-06-03 15:13:47 -07:00
vm tools/vm/page_owner_sort.c: filter out unneeded line 2020-06-03 20:09:49 -07:00
w1
watchdog watchdog: update email address in conversion doc 2020-05-05 09:39:53 -06:00
x86 A fair amount of stuff this time around, dominated by yet another massive 2020-06-01 15:45:27 -07:00
xtensa
.gitignore
asm-annotations.rst
atomic_bitops.txt
atomic_t.txt
bus-virt-phys-mapping.txt
Changes
CodingStyle
conf.py
COPYING-logo
crc32.txt
docutils.conf
dontdiff
index.rst
Kconfig
kprobes.txt
logo.gif
lzo.txt
mailbox.txt
Makefile media updates for v5.8-rc1 2020-06-03 20:59:38 -07:00
memory-barriers.txt
nommu-mmap.txt
remoteproc.txt
rpmsg.txt
speculation.txt
static-keys.txt
SubmittingPatches
tee.txt
this_cpu_ops.txt
xz.txt