[Devel] WARNING at mm/slub.c

Dmitry Monakhov dmonakhov at openvz.org
Mon Mar 20 02:53:52 PDT 2017


Denis Kirjanov <dkirjanov at cloudlinux.com> writes:

> On 3/16/17, Denis Kirjanov <dkirjanov at cloudlinux.com> wrote:
>> Hi guys,
>>
>> with the kernel rh7-3.10.0-327.36.1.vz7.18.7 we're seeing the
>> following WARNING while running LTP test suite:
>>
>> [11796.576981] WARNING: at mm/slub.c:1252
>> slab_pre_alloc_hook.isra.42.part.43+0x15/0x17()
>>
>> [11796.591008] Call Trace:
>> [11796.592065]  [<ffffffff8164c468>] dump_stack+0x19/0x1b
>> [11796.593076]  [<ffffffff8107b850>] warn_slowpath_common+0x70/0xb0
>> [11796.594228]  [<ffffffff8107b99a>] warn_slowpath_null+0x1a/0x20
>> [11796.595442]  [<ffffffff81649469>]
>> slab_pre_alloc_hook.isra.42.part.43+0x15/0x17
>> [11796.596686]  [<ffffffff811d8b68>] kmem_cache_alloc_trace+0x58/0x230
>> [11796.597965]  [<ffffffff813126ee>] ? kmapset_new+0x1e/0x50
>> [11796.599224]  [<ffffffff813126ee>] kmapset_new+0x1e/0x50
>> [11796.600433]  [<ffffffff8127c7ba>] __sysfs_add_one+0x4a/0xb0
>> [11796.601431]  [<ffffffff8127c83b>] sysfs_add_one+0x1b/0xd0
>> [11796.602451]  [<ffffffff8127baa7>] sysfs_add_file_mode+0xb7/0x100
>> [11796.603449]  [<ffffffff8127bb1a>] sysfs_create_file+0x2a/0x30
>> [11796.604461]  [<ffffffff812fe12c>] kobject_add_internal+0x16c/0x2f0
>> [11796.605503]  [<ffffffff812fe5b5>] kobject_add+0x75/0xd0
>> [11796.606627]  [<ffffffff811d8d17>] ? kmem_cache_alloc_trace+0x207/0x230
>> [11796.607655]  [<ffffffffa0563091>] __link_block_group+0xe1/0x120 [btrfs]
>> [11796.608634]  [<ffffffffa05661a0>] btrfs_make_block_group+0x150/0x270
>> [btrfs]
>> [11796.609701]  [<ffffffffa059fd5f>] __btrfs_alloc_chunk+0x67f/0x8a0
>> [btrfs]
>> [11796.610756]  [<ffffffffa05a2eb4>] btrfs_alloc_chunk+0x34/0x40 [btrfs]
>> [11796.611800]  [<ffffffffa055d62f>] do_chunk_alloc+0x23f/0x410 [btrfs]
>> [11796.612954]  [<ffffffffa055e61a>]
>> btrfs_check_data_free_space+0xea/0x280 [btrfs]
>> [11796.614008]  [<ffffffffa05898a1>] __btrfs_buffered_write+0x151/0x5c0
>> [btrfs]
>> [11796.615153]  [<ffffffffa058d056>] btrfs_file_aio_write+0x246/0x560
>> [btrfs]
>> [11796.616141]  [<ffffffff811eae92>] ?
>> __mem_cgroup_commit_charge+0x152/0x350
>> [11796.617220]  [<ffffffff811faff0>] do_sync_write+0x90/0xe0
>> [11796.618253]  [<ffffffff811fb81d>] vfs_write+0xbd/0x1e0
>> [11796.619224]  [<ffffffff811fc2bf>] SyS_write+0x7f/0xe0
>> [11796.620185]  [<ffffffff8165ccc9>] system_call_fastpath+0x16/0x1b
>> [11796.621145] ---[ end trace 1437311f89b9e3c6 ]---
>>
>
> Guys, I've found your commit:
>
> commit 149819fef38230c95f4d6c644061bc8b0dcdd51d
> Author: Vladimir Davydov <vdavydov at parallels.com>
> Date:   Fri Jun 5 13:20:02 2015 +0400
>
>     mm/fs: Port diff-mm-debug-memallocation-caused-fs-reentrance
>
>     Enable the debug once again, as the issue it found has been fixed:
>     https://jira.sw.ru/browse/PSBM-34112
>
>     Previous commit: 255427905323ac97a3c9b2d5acb2bf21ea2b31f6.
>
>     Author: Dmitry Monakhov
>     Email: dmonakhov at openvz.org
>     Subject: mm: debug memallocation caused fs reentrance
>     Date: Sun, 9 Nov 2014 11:53:14 +0400
>
> But I can't open a link to figure out the original reason for the patch.
Originally we found that
 [<ffffffff815c8cfa>] dump_stack+0x19/0x1b
 [<ffffffff8105da61>] warn_slowpath_common+0x61/0x80
 [<ffffffff8105db8a>] warn_slowpath_null+0x1a/0x20
 [<ffffffff815c5e55>] slab_pre_alloc_hook.isra.31.part.32+0x15/0x17
 [<ffffffff8119d8c5>] kmem_cache_alloc+0x55/0x210
 [<ffffffffa028fec1>] ? ext4_mb_add_groupinfo+0xe1/0x230 [ext4]
 [<ffffffffa028fec1>] ext4_mb_add_groupinfo+0xe1/0x230 [ext4]
 [<ffffffffa027fe66>] ext4_flex_group_add+0xba6/0x14b0 [ext4]
 [<ffffffffa0252ad9>] ? ext4_bg_num_gdb+0x79/0x90 [ext4]
 [<ffffffffa02819fd>] ext4_resize_fs+0x76d/0xe40 [ext4]
 [<ffffffffa0262ead>] ext4_ioctl+0xded/0x1110 [ext4]
 [<ffffffff811cc2db>] ? do_filp_open+0x4b/0xb0
 [<ffffffff811ce2f5>] do_vfs_ioctl+0x255/0x4f0
 [<ffffffff811d8f97>] ? __fd_install+0x47/0x60
 [<ffffffff811ce5e4>] SyS_ioctl+0x54/0xa0
 [<ffffffff815d9499>] system_call_fastpath+0x16/0x1b

This is pure bug, which resut in deadlock, or fscorruption. which I've fixed here
https://github.com/torvalds/linux/commit/4fdb5543183d027a19805b72025b859af73d0863
I've realized that his is whole class of locking issues which should be
detected on runtume that is why I've add this warning, I also send the
patch to mainstream http://www.spinics.net/lists/linux-btrfs/msg39034.html
which note that btrfs definitely has fs-reentrance issues
http://www.spinics.net/lists/linux-btrfs/msg39035.html

Dave does not like the way I've do the detection so patch was not
committed, but it exists in our tree, It is resonanable to replace
WARN_ON with WARN_ON_ONCE to prevent spamming. I'll send a patch



>
>
>
>> Thanks!
>>


More information about the Devel mailing list