Re: [PATCH 020/102] xfs: warn if direct reclaim tries to writeback pages

Mark Tinguely
2012-09-13T20:11:24Z

On 09/05/12 06:32, Mel Gorman wrote:
> On Mon, Aug 27, 2012 at 02:17:42PM -0400, Christoph Hellwig wrote:
>> On Thu, Aug 23, 2012 at 03:01:38PM +1000, Dave Chinner wrote:
>>> From: Mel Gorman<mgorman@suse.de>
>>>
>>> Upstream commit: 94054fa3fca1fd78db02cb3d68d5627120f0a1d4
>>>
>>> Direct reclaim should never writeback pages. For now, handle the
>>> situation and warn about it. Ultimately, this will be a BUG_ON.
>>
>> Is this actually the case on 3.0-stable?
>>
>
> No, it is not. AFAIK, 3.0-stable does not contain [ee72886d: mm: vmscan:
> do not writeback filesystem pages in direct reclaim] which is the absolute
> minimum required for commit [94054fa3: xfs: warn if direct reclaim tries
> to writeback pages] to make sense.
>

I hit this warning testing on a linux-30.42 with a x86_64.

WARNING: at fs/xfs/linux-2.6/xfs_aops.c:961 xfs_vm_writepage+0x63c/0x6a0()
Hardware name: S2721-533 Thunder i7501 Pro
Modules linked in: ext4 jbd2 crc16
Pid: 12122, comm: cp Not tainted 3.0.42 #2
Call Trace:
[<c1688bca>] ? printk+0x18/0x1a
[<c103a3ad>] warn_slowpath_common+0x6d/0xa0
[<c122afdc>] ? xfs_vm_writepage+0x63c/0x6a0
[<c122afdc>] ? xfs_vm_writepage+0x63c/0x6a0
[<c103a3fd>] warn_slowpath_null+0x1d/0x20
[<c122afdc>] xfs_vm_writepage+0x63c/0x6a0
[<c10901fd>] ? call_rcu_sched+0xd/0x10
[<c128ac8c>] ? radix_tree_delete+0x1cc/0x280
[<c110eb43>] ? free_buffer_head+0x23/0x30
[<c110ebaa>] ? try_to_free_buffers+0x5a/0x90
[<c10c2a82>] shrink_page_list+0x542/0x750
[<c10ca984>] ? __mod_zone_page_state+0x54/0x60
[<c10c3000>] shrink_inactive_list+0x190/0x360
[<c10c35e0>] shrink_zone+0x410/0x580
[<c10c40b0>] do_try_to_free_pages+0x100/0x360
[<c10c4439>] try_to_free_pages+0x89/0x120
[<c10baadb>] __alloc_pages_nodemask+0x3eb/0x650
[<c10e423c>] new_slab+0x4c/0x1a0
[<c168ad23>] __slab_alloc.constprop.65+0xed/0x1d5
[<c10f21f6>] ? getname_flags+0x26/0x150
[<c10e4f6b>] kmem_cache_alloc+0x11b/0x130
[<c10675bf>] ? tick_dev_program_event+0x3f/0x160
[<c10f21f6>] ? getname_flags+0x26/0x150
[<c10f21f6>] getname_flags+0x26/0x150
[<c10676fc>] ? tick_program_event+0x1c/0x30
[<c10f60bf>] user_path_at_empty+0x1f/0x80
[<c1090c98>] ? rcu_irq_exit+0x8/0x10
[<c1040a07>] ? irq_exit+0x37/0x90
[<c101a834>] ? smp_apic_timer_interrupt+0x54/0x90
[<c10f613a>] user_path_at+0x1a/0x20
[<c10ed12e>] vfs_fstatat+0x4e/0x80
[<c10ed17b>] vfs_lstat+0x1b/0x20
[<c10ed431>] sys_lstat64+0x11/0x30
[<c10e74ff>] ? filp_close+0x4f/0x70
[<c10e7577>] ? sys_close+0x57/0xa0
[<c1690f25>] syscall_call+0x7/0xb