Hi, On Wed, Aug 02, 2023 at 04:13:54PM +0100, Matthew Wilcox (Oracle) wrote: > Add set_ptes(), update_mmu_cache_range(), flush_dcache_folio() and > flush_icache_pages(). Convert the PG_dcache_dirty flag from being > per-page to per-folio. > > Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> > Acked-by: Mike Rapoport (IBM) <rppt@xxxxxxxxxx> > Cc: "David S. Miller" <davem@xxxxxxxxxxxxx> > Cc: sparclinux@xxxxxxxxxxxxxxx This patch causes all my sparc64 qemu boot tests to crash. [ 4.890744] Unable to handle kernel NULL pointer dereference [ 4.891273] tsk->{mm,active_mm}->context = 0000000000000001 [ 4.891475] tsk->{mm,active_mm}->pgd = fffff80005452000 [ 4.891660] \|/ ____ \|/ [ 4.891660] "@'/ .. \`@" [ 4.891660] /_| \__/ |_\ [ 4.891660] \__U_/ [ 4.892116] modprobe(45): Oops [#1] [ 4.892555] CPU: 0 PID: 45 Comm: modprobe Tainted: G N 6.5.0+ #1 [ 4.892949] TSTATE: 0000004411001601 TPC: 00000000004565d8 TNPC: 00000000004565dc Y: 00000008 Tainted: G N [ 4.893307] TPC: <tlb_batch_add+0xf8/0x2a0> [ 4.893829] g0: ec3264ae48eeb037 g1: 0000000000000028 g2: 00000000000a010c g3: 0000060000000000 [ 4.894103] g4: fffff80004c8c1a0 g5: fffff8001dc2e000 g6: fffff80005440000 g7: fffff8001fe3f700 [ 4.894373] o0: fffff80005420008 o1: 000007feffffe000 o2: fffff80005443788 o3: fffff80004c8c1a0 [ 4.894642] o4: fffff80004c8cc88 o5: 0000000001a3c000 sp: fffff80005442ee1 ret_pc: 00000000006058c8 [ 4.894918] RPC: <__pte_offset_map_lock+0x68/0x120> [ 4.895118] l0: 0000000000605908 l1: 00000000011e8998 l2: 00000000011e8968 l3: fffff80005420008 [ 4.895392] l4: 000000000541e000 l5: fffff80005410060 l6: 00000000023c7800 l7: 00000000020fdee8 [ 4.895661] i0: fffff80005410020 i1: 000007feffffe000 i2: 0000060000052600 i3: 8000000002931fb2 [ 4.895931] i4: 0000000000000000 i5: 000000000000000d i6: fffff80005442f91 i7: 0000000000601718 [ 4.896204] I7: <change_protection+0x678/0x9e0> [ 4.896403] Call Trace: [ 4.896567] [<0000000000601718>] change_protection+0x678/0x9e0 [ 4.896807] [<0000000000601b80>] mprotect_fixup+0x100/0x2e0 [ 4.896990] [<0000000000652050>] setup_arg_pages+0x130/0x2a0 [ 4.897172] [<00000000006ba758>] load_elf_binary+0x358/0x13c0 [ 4.897367] [<0000000000652a00>] bprm_execve+0x2e0/0x8e0 [ 4.897540] [<0000000000653e24>] kernel_execve+0x144/0x200 [ 4.898023] [<000000000048775c>] call_usermodehelper_exec_async+0xbc/0x140 [ 4.898248] [<00000000004060e8>] ret_from_fork+0x1c/0x2c [ 4.898422] [<0000000000000000>] 0x0 [ 4.898641] Disabling lock debugging due to kernel taint [ 4.898860] Caller[0000000000601718]: change_protection+0x678/0x9e0 [ 4.899073] Caller[0000000000601b80]: mprotect_fixup+0x100/0x2e0 [ 4.899254] Caller[0000000000652050]: setup_arg_pages+0x130/0x2a0 [ 4.899435] Caller[00000000006ba758]: load_elf_binary+0x358/0x13c0 [ 4.899618] Caller[0000000000652a00]: bprm_execve+0x2e0/0x8e0 [ 4.899789] Caller[0000000000653e24]: kernel_execve+0x144/0x200 [ 4.899964] Caller[000000000048775c]: call_usermodehelper_exec_async+0xbc/0x140 [ 4.900177] Caller[00000000004060e8]: ret_from_fork+0x1c/0x2c [ 4.900349] Caller[0000000000000000]: 0x0 [ 4.900487] Instruction DUMP: [ 4.900517] 80886001 [ 4.900714] 126fffca [ 4.900797] 01000000 [ 4.900876] <c2582000> [ 4.900954] 83307013 [ 4.901032] 80886001 [ 4.901109] 02680007 [ 4.901187] 01000000 [ 4.901269] c2582000 [ 4.901353] [ 4.901535] note: modprobe[45] exited with preempt_count 2 Bisect log attached. Guenter --- # bad: [708283abf896dd4853e673cc8cba70acaf9bf4ea] Merge tag 'dmaengine-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine # good: [2dde18cd1d8fac735875f2e4987f11817cc0bc2c] Linux 6.5 git bisect start 'HEAD' 'v6.5' # bad: [53ea7f624fb91074c2f9458832ed74975ee5d64c] Merge tag 'xfs-6.6-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux git bisect bad 53ea7f624fb91074c2f9458832ed74975ee5d64c # good: [c873512ef3a39cc1a605b7a5ff2ad0a33d619aa8] Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net git bisect good c873512ef3a39cc1a605b7a5ff2ad0a33d619aa8 # good: [3b6bf5b1f8e3d17d7566027cdc5a8262991eb5bc] Merge tag 'spi-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi git bisect good 3b6bf5b1f8e3d17d7566027cdc5a8262991eb5bc # bad: [b96a3e9142fdf346b05b20e867b4f0dfca119e96] Merge tag 'mm-stable-2023-08-28-18-26' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm git bisect bad b96a3e9142fdf346b05b20e867b4f0dfca119e96 # bad: [bb7dbaafff3f582d18028a5b99a8faa789842678] mm: remove checks for pte_index git bisect bad bb7dbaafff3f582d18028a5b99a8faa789842678 # good: [601f006fddc66e369fdac7c572f981eafd159dac] powerpc/book3s64/radix: remove mmu_vmemmap_psize git bisect good 601f006fddc66e369fdac7c572f981eafd159dac # good: [7e5f42ae3413785c68c383acb787f9ce8f243096] mm: convert pmd_ptlock_free() to use ptdescs git bisect good 7e5f42ae3413785c68c383acb787f9ce8f243096 # good: [a644b0abbfe1d7cf775082cafdcc7b5f3c35becf] mm: convert split_huge_pages_pid() to use a folio git bisect good a644b0abbfe1d7cf775082cafdcc7b5f3c35becf # good: [994209410919f2b84b7e4ab2e78785d9715308ad] nios2: implement the new page table range API git bisect good 994209410919f2b84b7e4ab2e78785d9715308ad # bad: [9f1f5b60e76d44fa85fef6970b7477f72d3999eb] mm: use flush_icache_pages() in do_set_pmd() git bisect bad 9f1f5b60e76d44fa85fef6970b7477f72d3999eb # good: [665f640294540a941aabb81ae46dfc671aff5259] sparc32: implement the new page table range API git bisect good 665f640294540a941aabb81ae46dfc671aff5259 # bad: [4fbb7e7f47dbc631a9f5bad3171ccbca171ed1d3] xtensa: implement the new page table range API git bisect bad 4fbb7e7f47dbc631a9f5bad3171ccbca171ed1d3 # bad: [fd8132e6e9fdecb9ff7d1db98014d372e03f3c9d] um: implement the new page table range API git bisect bad fd8132e6e9fdecb9ff7d1db98014d372e03f3c9d # bad: [1a10a44dfc1d55ba84987da1f8377258a044499c] sparc64: implement the new page table range API git bisect bad 1a10a44dfc1d55ba84987da1f8377258a044499c # first bad commit: [1a10a44dfc1d55ba84987da1f8377258a044499c] sparc64: implement the new page table range API