Re: mm: WARNING in __delete_from_page_cache

From: Dmitry Vyukov
Date: Wed Jan 27 2016 - 13:07:39 EST


On Wed, Jan 27, 2016 at 7:02 PM, Ross Zwisler <zwisler@xxxxxxxxx> wrote:
> On Sun, Jan 24, 2016 at 3:48 AM, Dmitry Vyukov <dvyukov@xxxxxxxxxx> wrote:
>> Hello,
>>
>> The following program triggers WARNING in __delete_from_page_cache:
>>
>> ------------[ cut here ]------------
>> WARNING: CPU: 0 PID: 7676 at mm/filemap.c:217
>> __delete_from_page_cache+0x9f6/0xb60()
>> Modules linked in:
>> CPU: 0 PID: 7676 Comm: a.out Not tainted 4.4.0+ #276
>> Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
>> 00000000ffffffff ffff88006d3f7738 ffffffff82999e2d 0000000000000000
>> ffff8800620a0000 ffffffff86473d20 ffff88006d3f7778 ffffffff81352089
>> ffffffff81658d36 ffffffff86473d20 00000000000000d9 ffffea0000009d60
>> Call Trace:
>> [< inline >] __dump_stack lib/dump_stack.c:15
>> [<ffffffff82999e2d>] dump_stack+0x6f/0xa2 lib/dump_stack.c:50
>> [<ffffffff81352089>] warn_slowpath_common+0xd9/0x140 kernel/panic.c:482
>> [<ffffffff813522b9>] warn_slowpath_null+0x29/0x30 kernel/panic.c:515
>> [<ffffffff81658d36>] __delete_from_page_cache+0x9f6/0xb60 mm/filemap.c:217
>> [<ffffffff81658fb2>] delete_from_page_cache+0x112/0x200 mm/filemap.c:244
>> [<ffffffff818af369>] __dax_fault+0x859/0x1800 fs/dax.c:487
>> [<ffffffff8186f4f6>] blkdev_dax_fault+0x26/0x30 fs/block_dev.c:1730
>> [< inline >] wp_pfn_shared mm/memory.c:2208
>> [<ffffffff816e9145>] do_wp_page+0xc85/0x14f0 mm/memory.c:2307
>> [< inline >] handle_pte_fault mm/memory.c:3323
>> [< inline >] __handle_mm_fault mm/memory.c:3417
>
> Having inline functions represented in the stack trace and having file
> names with line numbers seems really useful - how did you get this
> output? Is this a feature of some kernel patch applied for syzkaller?


I pipe normal kernel output through this script:
https://github.com/google/sanitizers/blob/master/address-sanitizer/tools/kasan_symbolize.py

If you are in linux source dir with vmlinux and modules, then you just do:
$ cat crash | kasan_symbolize.py