kernel_optimize_test/arch/m68k
Peter Zijlstra ef22d8abd8 m68k: mm: Restructure Motorola MMU page-table layout
The Motorola 68xxx MMUs, 040 (and later) have a fixed 7,7,{5,6}
page-table setup, where the last depends on the page-size selected (8k
vs 4k resp.), and head.S selects 4K pages. For 030 (and earlier) we
explicitly program 7,7,6 and 4K pages in %tc.

However, the current code implements this mightily weird. What it does
is group 16 of those (6 bit) pte tables into one 4k page to not waste
space. The down-side is that that forces pmd_t to be a 16-tuple
pointing to consecutive pte tables.

This breaks the generic code which assumes READ_ONCE(*pmd) will be
word sized.

Therefore implement a straight forward 7,7,6 3 level page-table setup,
with the addition (for 020/030) of (partial) large-page support. For
now this increases the memory footprint for pte-tables 15 fold.

Tested with ARAnyM/68040 emulation.

Suggested-by: Will Deacon <will@kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Will Deacon <will@kernel.org>
Acked-by: Greg Ungerer <gerg@linux-m68k.org>
Tested-by: Michael Schmitz <schmitzmic@gmail.com>
Tested-by: Greg Ungerer <gerg@linux-m68k.org>
Link: https://lore.kernel.org/r/20200131125403.711478295@infradead.org
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
2020-02-10 10:57:48 +01:00
..
68000
amiga treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
apollo treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
atari m68k/atari: Convert Falcon IDE drivers to platform drivers 2019-11-18 10:18:59 +01:00
bvme6000 treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
coldfire m68k/coldfire: Use CONFIG_PREEMPTION 2019-11-11 10:54:40 +10:00
configs Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu 2020-02-06 08:13:23 +00:00
emu netdev: pass the stuck queue to the timeout handler 2019-12-12 21:38:57 -08:00
fpsp040
hp300 treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
ifpsp060
include m68k: mm: Restructure Motorola MMU page-table layout 2020-02-10 10:57:48 +01:00
kernel proc: convert everything to "struct proc_ops" 2020-02-04 03:05:26 +00:00
lib treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
mac m68k: mac: Revisit floppy disc controller base addresses 2019-08-19 13:24:10 +02:00
math-emu treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 74 2019-05-24 17:36:47 +02:00
mm m68k: mm: Restructure Motorola MMU page-table layout 2020-02-10 10:57:48 +01:00
mvme16x treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
mvme147 treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
q40 m68k: q40: Fix info-leak in rtc_ioctl 2019-10-21 09:08:15 +02:00
sun3 treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
sun3x arch/m68k/setup: Drop dummy_con initialization 2020-01-14 15:29:16 +01:00
tools/amiga
install.sh
Kconfig m68k: Implement copy_thread_tls() 2020-01-14 10:43:38 +01:00
Kconfig.bus
Kconfig.cpu
Kconfig.debug
Kconfig.devices
Kconfig.machine
Makefile kbuild: rebuild modules when module linker scripts are updated 2019-08-21 21:05:21 +09:00