On 26/04/13 04:40PM, Ira Weiny wrote: > Ira Weiny wrote: > > Alison Schofield wrote: > > > On Fri, Mar 27, 2026 at 09:03:26PM +0000, John Groves wrote: > > > > From: John Groves <[email protected]> > > > > > > [snip] > > > > > > > > > Description: > > > > > > > > This patch series introduces the required dax support for famfs. > > > > Previous versions of the famfs series included both dax and fuse > > > > patches. > > > > This series separates them into separate patch series' (and the fuse > > > > series dependends on this dax series). > > > > > > > > The famfs user space code can be found at [1] > > > > > > > > Dax Overview: > > > > > > > > This series introduces a new "famfs mode" of devdax, whose driver is > > > > drivers/dax/fsdev.c. This driver supports dax_iomap_rw() and > > > > dax_iomap_fault() calls against a character dax instance. A dax device > > > > now can be converted among three modes: 'system-ram', 'devdax' and > > > > 'famfs' via daxctl or sysfs (e.g. unbind devdax and bind famfs instead). > > > > > > > > In famfs mode, a dax device initializes its pages consistent with the > > > > fsdaxmode of pmem. Raw read/write/mmap are not supported in this mode, > > > > but famfs is happy in this mode - using dax_iomap_rw() for read/write > > > > and > > > > dax_iomap_fault() for mmap faults. > > > > > > > > > > Here's what I found: > > > > > > famfs-v10 on 7.0-rc5 + ndctl v84: > > > dax suite all pass 13/13, so no regression appears > > > > > > famfs-v10 on 7.0-rc5 + > > > (ndctl v84 w https://github.com/jagalactic/ndctl/tree/famfs > > > top 3 patches + edit daxctl-famfs.sh to use cxl-test: > > > > > > existing dax suite keeps passing > > > daxctl-famfs.sh oops w the new test at # Restore original mode" > > > seems easy to repoduce, maybe cannot go back to system-ram??? > > > > John have you been able to reproduce this? > > > > Ira > > John I've found a different crash with the daxctl-famfs.sh test. See > below. > > I got the ndctl repo with the test from Alison. > > I'm not at all clear what is happening at this point... > > Ira > > <crash> > > [ 519.007691] BUG: TASK stack guard page was hit at ffffc90001767fc8 (stack > is ffffc90001768000..ffffc9000176c000) > [ 519.007694] Oops: stack guard page: 0000 [#1] SMP NOPTI > [ 519.007697] CPU: 0 UID: 0 PID: 1465 Comm: daxctl Tainted: G O > 7.0.0-rc6ira+ #68 PREEMPT(full) > [ 519.007699] Tainted: [O]=OOT_MODULE > [ 519.007700] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS > edk2-20250812-19.fc42 08/12/2025 > [ 519.007701] RIP: 0010:sprintf+0xc/0x50 > [ 519.007709] Code: 24 10 e8 37 f8 ff ff c9 c3 cc cc cc cc 90 90 90 90 90 90 > 90 90 90 90 90 90 90 90 90 90 90 55 48 89 e5 48 83 ec 48 48 8d 45 10 <48> > 89 54 24 28 48 89 f2 be ff ff ff 7f 48 89 4c 24 30 48 89 e1 48 > [ 519.007710] RSP: 0018:ffffc90001767fd0 EFLAGS: 00010282 > [ 519.007712] RAX: ffffc90001768028 RBX: ffffc90001768068 RCX: > 0000000000001e08 > [ 519.007712] RDX: 0000000000000207 RSI: ffffffff82abab1c RDI: > ffffc90001768068 > [ 519.007713] RBP: ffffc90001768018 R08: 0000000000000000 R09: > 0000000000000001 > [ 519.007713] R10: ffffc90001768110 R11: 0000000000000002 R12: > 0000000000000800 > [ 519.007714] R13: ffffc90001768068 R14: 0000000000000000 R15: > ffffffff839c71c0 > [ 519.007715] FS: 00007fb94b807c80(0000) GS:ffff8880f9e9c000(0000) > knlGS:0000000000000000 > [ 519.007717] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > [ 519.007717] CR2: ffffc90001767fc8 CR3: 0000000077d2e005 CR4: > 0000000000770ef0 > [ 519.007720] PKRU: 55555554 > [ 519.007721] Call Trace: > [ 519.007722] <TASK> > [ 519.007723] info_print_prefix+0xc0/0xe0 > [ 519.007728] record_print_text+0x58/0x2d0 > [ 519.007730] printk_get_next_message+0xd8/0x220 > [ 519.007733] console_flush_one_record+0x1a5/0x390 > [ 519.007735] console_unlock+0x5a/0xe0 > [ 519.007737] vprintk_emit+0x2e8/0x340 > [ 519.007738] _printk+0x48/0x50 > [ 519.007741] ? printk_get_next_message+0x70/0x220 > [ 519.007743] __dump_page.cold+0x3c/0x331 > [ 519.007746] ? dump_page+0x1b/0x30 > [ 519.007748] dump_page+0x1b/0x30 > [ 519.007749] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007751] get_pfnblock_migratetype+0xa/0x20 > [ 519.007753] __dump_page.cold+0x1c6/0x331 > [ 519.007755] ? dump_page+0x1b/0x30 > [ 519.007756] dump_page+0x1b/0x30 > [ 519.007756] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007757] get_pfnblock_migratetype+0xa/0x20 > [ 519.007758] __dump_page.cold+0x1c6/0x331 > [ 519.007760] ? dump_page+0x1b/0x30 > [ 519.007761] dump_page+0x1b/0x30 > [ 519.007761] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007762] get_pfnblock_migratetype+0xa/0x20 > [ 519.007763] __dump_page.cold+0x1c6/0x331 > [ 519.007765] ? dump_page+0x1b/0x30 > [ 519.007765] dump_page+0x1b/0x30 > [ 519.007766] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007767] get_pfnblock_migratetype+0xa/0x20 > [ 519.007772] __dump_page.cold+0x1c6/0x331 > [ 519.007774] ? dump_page+0x1b/0x30 > [ 519.007775] dump_page+0x1b/0x30 > [ 519.007775] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007776] get_pfnblock_migratetype+0xa/0x20 > [ 519.007777] __dump_page.cold+0x1c6/0x331 > [ 519.007779] ? dump_page+0x1b/0x30 > [ 519.007780] dump_page+0x1b/0x30 > [ 519.007780] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007781] get_pfnblock_migratetype+0xa/0x20 > [ 519.007782] __dump_page.cold+0x1c6/0x331 > [ 519.007784] ? dump_page+0x1b/0x30 > [ 519.007785] dump_page+0x1b/0x30 > [ 519.007785] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007786] get_pfnblock_migratetype+0xa/0x20 > [ 519.007787] __dump_page.cold+0x1c6/0x331 > [ 519.007789] ? dump_page+0x1b/0x30 > [ 519.007790] dump_page+0x1b/0x30 > [ 519.007790] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007791] get_pfnblock_migratetype+0xa/0x20 > [ 519.007792] __dump_page.cold+0x1c6/0x331 > [ 519.007794] ? dump_page+0x1b/0x30 > [ 519.007795] dump_page+0x1b/0x30 > [ 519.007795] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007796] get_pfnblock_migratetype+0xa/0x20 > [ 519.007797] __dump_page.cold+0x1c6/0x331 > [ 519.007799] ? dump_page+0x1b/0x30 > [ 519.007800] dump_page+0x1b/0x30 > [ 519.007800] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007801] get_pfnblock_migratetype+0xa/0x20 > [ 519.007802] __dump_page.cold+0x1c6/0x331 > [ 519.007804] ? dump_page+0x1b/0x30 > [ 519.007805] dump_page+0x1b/0x30 > [ 519.007808] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007809] get_pfnblock_migratetype+0xa/0x20 > [ 519.007810] __dump_page.cold+0x1c6/0x331 > [ 519.007812] ? dump_page+0x1b/0x30 > [ 519.007813] dump_page+0x1b/0x30 > [ 519.007813] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007814] get_pfnblock_migratetype+0xa/0x20 > [ 519.007815] __dump_page.cold+0x1c6/0x331 > [ 519.007817] ? dump_page+0x1b/0x30 > [ 519.007818] dump_page+0x1b/0x30 > [ 519.007818] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007819] get_pfnblock_migratetype+0xa/0x20 > [ 519.007820] __dump_page.cold+0x1c6/0x331 > [ 519.007822] ? dump_page+0x1b/0x30 > [ 519.007823] dump_page+0x1b/0x30 > [ 519.007824] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007824] get_pfnblock_migratetype+0xa/0x20 > [ 519.007825] __dump_page.cold+0x1c6/0x331 > [ 519.007827] ? dump_page+0x1b/0x30 > [ 519.007828] dump_page+0x1b/0x30 > [ 519.007829] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007829] get_pfnblock_migratetype+0xa/0x20 > [ 519.007830] __dump_page.cold+0x1c6/0x331 > [ 519.007833] ? dump_page+0x1b/0x30 > [ 519.007833] dump_page+0x1b/0x30 > [ 519.007834] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007834] get_pfnblock_migratetype+0xa/0x20 > [ 519.007835] __dump_page.cold+0x1c6/0x331 > [ 519.007838] ? dump_page+0x1b/0x30 > [ 519.007838] dump_page+0x1b/0x30 > [ 519.007839] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007840] get_pfnblock_migratetype+0xa/0x20 > [ 519.007841] __dump_page.cold+0x1c6/0x331 > [ 519.007843] ? dump_page+0x1b/0x30 > [ 519.007843] dump_page+0x1b/0x30 > [ 519.007844] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007845] get_pfnblock_migratetype+0xa/0x20 > [ 519.007846] __dump_page.cold+0x1c6/0x331 > [ 519.007848] ? dump_page+0x1b/0x30 > [ 519.007849] dump_page+0x1b/0x30 > [ 519.007849] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007850] get_pfnblock_migratetype+0xa/0x20 > [ 519.007851] __dump_page.cold+0x1c6/0x331 > [ 519.007853] ? dump_page+0x1b/0x30 > [ 519.007854] dump_page+0x1b/0x30 > [ 519.007854] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007855] get_pfnblock_migratetype+0xa/0x20 > [ 519.007856] __dump_page.cold+0x1c6/0x331 > [ 519.007858] ? dump_page+0x1b/0x30 > [ 519.007859] dump_page+0x1b/0x30 > [ 519.007859] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007860] get_pfnblock_migratetype+0xa/0x20 > [ 519.007861] __dump_page.cold+0x1c6/0x331 > [ 519.007863] ? dump_page+0x1b/0x30 > [ 519.007864] dump_page+0x1b/0x30 > [ 519.007864] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007865] get_pfnblock_migratetype+0xa/0x20 > [ 519.007866] __dump_page.cold+0x1c6/0x331 > [ 519.007868] ? dump_page+0x1b/0x30 > [ 519.007869] dump_page+0x1b/0x30 > [ 519.007869] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007870] get_pfnblock_migratetype+0xa/0x20 > [ 519.007871] __dump_page.cold+0x1c6/0x331 > [ 519.007873] ? dump_page+0x1b/0x30 > [ 519.007874] dump_page+0x1b/0x30 > [ 519.007874] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007875] get_pfnblock_migratetype+0xa/0x20 > [ 519.007876] __dump_page.cold+0x1c6/0x331 > [ 519.007878] ? dump_page+0x1b/0x30 > [ 519.007879] dump_page+0x1b/0x30 > [ 519.007880] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007880] get_pfnblock_migratetype+0xa/0x20 > [ 519.007881] __dump_page.cold+0x1c6/0x331 > [ 519.007883] ? dump_page+0x1b/0x30 > [ 519.007884] dump_page+0x1b/0x30 > [ 519.007885] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007885] get_pfnblock_migratetype+0xa/0x20 > [ 519.007886] __dump_page.cold+0x1c6/0x331 > [ 519.007889] ? dump_page+0x1b/0x30 > [ 519.007889] dump_page+0x1b/0x30 > [ 519.007890] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007890] get_pfnblock_migratetype+0xa/0x20 > [ 519.007891] __dump_page.cold+0x1c6/0x331 > [ 519.007894] ? dump_page+0x1b/0x30 > [ 519.007894] dump_page+0x1b/0x30 > [ 519.007895] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007895] get_pfnblock_migratetype+0xa/0x20 > [ 519.007896] __dump_page.cold+0x1c6/0x331 > [ 519.007899] ? dump_page+0x1b/0x30 > [ 519.007899] dump_page+0x1b/0x30 > [ 519.007900] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007900] get_pfnblock_migratetype+0xa/0x20 > [ 519.007901] __dump_page.cold+0x1c6/0x331 > [ 519.007904] ? dump_page+0x1b/0x30 > [ 519.007904] dump_page+0x1b/0x30 > [ 519.007905] __get_pfnblock_flags_mask+0x6c/0xe0 > [ 519.007905] get_pfnblock_migratetype+0xa/0x20 > [ 519.007906] __dump_page.cold+0x1c6/0x331 > [ 519.007907] ? do_file_open+0xbe/0x150 > [ 519.007910] ? stack_depot_save_flags+0x24/0x910 > [ 519.007918] ? dump_page+0x1b/0x30 > [ 519.007919] dump_page+0x1b/0x30 > [ 519.007920] memmap_init_range+0x2f6/0x310 > [ 519.007922] move_pfn_range_to_zone+0xee/0x220 > [ 519.007924] mhp_init_memmap_on_memory+0x23/0xb0 > [ 519.007926] memory_subsys_online+0x122/0x1a0 > [ 519.007929] device_online+0x49/0x80 > [ 519.007931] state_store+0x8e/0xa0 > [ 519.007932] kernfs_fop_write_iter+0x136/0x1f0 > [ 519.007935] vfs_write+0x205/0x460 > [ 519.007937] ksys_write+0x57/0xd0 > [ 519.007938] do_syscall_64+0x106/0x5f0 > [ 519.007940] ? irqentry_exit+0x6c/0x520 > [ 519.007941] ? exc_page_fault+0x66/0x180 > [ 519.007942] entry_SYSCALL_64_after_hwframe+0x76/0x7e > [ 519.007944] RIP: 0033:0x7fb94ba3473e > [ 519.007946] Code: 4d 89 d8 e8 d4 bc 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 > 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> > c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa > [ 519.007946] RSP: 002b:00007fff47c8ddd0 EFLAGS: 00000202 ORIG_RAX: > 0000000000000001 > [ 519.007948] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: > 00007fb94ba3473e > [ 519.007948] RDX: 000000000000000f RSI: 00007fb94bc21a3e RDI: > 0000000000000004 > [ 519.007949] RBP: 00007fff47c8dde0 R08: 0000000000000000 R09: > 0000000000000000 > [ 519.007949] R10: 0000000000000000 R11: 0000000000000202 R12: > 00007fff47c8e3f8 > [ 519.007950] R13: 0000000000000006 R14: 00007fb94bc67000 R15: > 0000000000413d88 > [ 519.007951] </TASK> > [ 519.007951] Modules linked in: cxl_test(O) cxl_acpi(O) device_dax(O) > fsdev_dax kmem nd_pmem(O) nd_btt(O) cxl_pmu dax_cxl dax_pmem(O) cxl_pci > nd_e820 > (O) nfit(O) cxl_mock_mem(O) cxl_pmem(O) cxl_mem(O) cxl_port(O) cxl_mock(O) > libnvdimm(O) nfit_test_iomap(O) cxl_core(O) fwctl [last unloaded: cxl_acpi(O > )] > [ 519.007962] ---[ end trace 0000000000000000 ]--- > [ 519.007963] RIP: 0010:sprintf+0xc/0x50 > [ 519.007964] Code: 24 10 e8 37 f8 ff ff c9 c3 cc cc cc cc 90 90 90 90 90 90 > 90 90 90 90 90 90 90 90 90 90 90 55 48 89 e5 48 83 ec 48 48 8d 45 10 <48> > 89 54 24 28 48 89 f2 be ff ff ff 7f 48 89 4c 24 30 48 89 e1 48 > [ 519.007965] RSP: 0018:ffffc90001767fd0 EFLAGS: 00010282 > [ 519.007966] RAX: ffffc90001768028 RBX: ffffc90001768068 RCX: > 0000000000001e08 > [ 519.007966] RDX: 0000000000000207 RSI: ffffffff82abab1c RDI: > ffffc90001768068 > [ 519.007967] RBP: ffffc90001768018 R08: 0000000000000000 R09: > 0000000000000001 > [ 519.007967] R10: ffffc90001768110 R11: 0000000000000002 R12: > 0000000000000800 > [ 519.007967] R13: ffffc90001768068 R14: 0000000000000000 R15: > ffffffff839c71c0 > [ 519.007968] FS: 00007fb94b807c80(0000) GS:ffff8880f9e9c000(0000) > knlGS:0000000000000000 > [ 519.007969] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > [ 519.007969] CR2: ffffc90001767fc8 CR3: 0000000077d2e005 CR4: > 0000000000770ef0 > [ 519.007971] PKRU: 55555554 > [ 519.007972] Kernel panic - not syncing: Fatal exception in interrupt > [ 519.008404] Kernel Offset: disabled > [ 519.083400] ---[ end Kernel panic - not syncing: Fatal exception in > interrupt ]---
Dang. Obviously runaway recursion; I don't recognize anything in the stack, but will start trying to reproduce it. John

