Re: [PATCH v9 28/69] mm/mmap: reorganize munmap to use maple states

From: Liam Howlett
Date: Wed Jun 15 2022 - 21:50:56 EST


* Yu Zhao <yuzhao@xxxxxxxxxx> [220615 17:17]:

...

> > Yes, I used the same parameters with 512GB of RAM, and the kernel with
> > KASAN and other debug options.
>
> Sorry, Liam. I got the same crash :(

Thanks for running this promptly. I am trying to get my own server
setup now.

>
> 9d27f2f1487a (tag: mm-everything-2022-06-14-19-05, akpm/mm-everything)
> 00d4d7b519d6 fs/userfaultfd: Fix vma iteration in mas_for_each() loop
> 55140693394d maple_tree: Make mas_prealloc() error checking more generic
> 2d7e7c2fcf16 maple_tree: Fix mt_destroy_walk() on full non-leaf non-alloc nodes
> 4d4472148ccd maple_tree: Change spanning store to work on larger trees
> ea36bcc14c00 test_maple_tree: Add tests for preallocations and large
> spanning writes
> 0d2aa86ead4f mm/mlock: Drop dead code in count_mm_mlocked_page_nr()
>
> ==================================================================
> BUG: KASAN: slab-out-of-bounds in mab_mas_cp+0x2d9/0x6c0
> Write of size 136 at addr ffff88c35a3b9e80 by task stress-ng/19303
>
> CPU: 66 PID: 19303 Comm: stress-ng Tainted: G S I 5.19.0-smp-DEV #1
> Call Trace:
> <TASK>
> dump_stack_lvl+0xc5/0xf4
> print_address_description+0x7f/0x460
> print_report+0x10b/0x240
> ? mab_mas_cp+0x2d9/0x6c0
> kasan_report+0xe6/0x110
> ? mast_spanning_rebalance+0x2634/0x29b0
> ? mab_mas_cp+0x2d9/0x6c0
> kasan_check_range+0x2ef/0x310
> ? mab_mas_cp+0x2d9/0x6c0
> ? mab_mas_cp+0x2d9/0x6c0
> memcpy+0x44/0x70
> mab_mas_cp+0x2d9/0x6c0
> mas_spanning_rebalance+0x1a3e/0x4f90

Does this translate to an inline around line 2997?
And then probably around 2808?

> ? stack_trace_save+0xca/0x160
> ? stack_trace_save+0xca/0x160
> mas_wr_spanning_store+0x16c5/0x1b80
> mas_wr_store_entry+0xbf9/0x12e0
> mas_store_prealloc+0x205/0x3c0
> do_mas_align_munmap+0x6cf/0xd10
> do_mas_munmap+0x1bb/0x210
> ? down_write_killable+0xa6/0x110
> __vm_munmap+0x1c4/0x270

Looks like a NULL entry being written.

> __x64_sys_munmap+0x60/0x70
> do_syscall_64+0x44/0xa0
> entry_SYSCALL_64_after_hwframe+0x46/0xb0
> RIP: 0033:0x589827


Thanks,
Liam