Bug 109291 - The system cannot enter any suspend state.
Summary: The system cannot enter any suspend state.
Status: NEW
Alias: None
Product: File System
Classification: Unclassified
Component: XFS (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: XFS Guru
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-12-13 10:26 UTC by Michael Long
Modified: 2016-03-20 09:53 UTC (History)
2 users (show)

See Also:
Kernel Version: 4.4.0-rc
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Michael Long 2015-12-13 10:26:24 UTC
Kernel version: 4.4-rc, the kernels before are working fine.
Reproducable: always.

dmesg output:

[  101.428991] PM: Syncing filesystems ... done.
[  101.440624] PM: Preparing system for sleep (mem)
[  101.662377] Freezing user space processes ... (elapsed 0.001 seconds) done.
[  101.671201] Freezing remaining freezable tasks ... 
[  121.681830] Freezing of tasks failed after 20.005 seconds (1 tasks refusing to freeze, wq_busy=0):
[  121.690842] xfsaild/dm-6    S ffff88083fd15000     0  4583      2 0x00000000
[  121.697946]  ffff880803cb7e10 ffff88081c34e800 ffff88081aa58d00 ffff88083fd15068
[  121.705435]  0000000000000001 ffff880803cb8000 0000000000000000 0000000000000000
[  121.712917]  ffff8800b9450280 0000000000000000 ffff880803cb7ed0 ffffffff814b3891
[  121.720397] Call Trace:
[  121.722864]  [<ffffffff814b3891>] ? schedule+0x31/0x80
[  121.728004]  [<ffffffff8129c13c>] ? xfsaild+0x50c/0x5b0
[  121.733229]  [<ffffffff8129bc30>] ? xfs_trans_ail_cursor_first+0x80/0x80
[  121.739926]  [<ffffffff8129bc30>] ? xfs_trans_ail_cursor_first+0x80/0x80
[  121.746632]  [<ffffffff8106231d>] ? kthread+0xbd/0xe0
[  121.751687]  [<ffffffff81062260>] ? kthread_create_on_node+0x170/0x170
[  121.758216]  [<ffffffff814b6b1f>] ? ret_from_fork+0x3f/0x70
[  121.763787]  [<ffffffff81062260>] ? kthread_create_on_node+0x170/0x170

[  121.771831] Restarting kernel threads ... done.
[  121.776686] Restarting tasks ... done.

If you need more information, please let my know.
Comment 1 Dave Chinner 2015-12-13 21:36:12 UTC
The xfsaild is already idle and not running - it won't run again until some activity in the filesystem wakes it up again. Hence the xfsaild will never call
try_to_freeze() and be frozen by the freezer.

This looks like a bug in the freezer algorithm, not XFS. Likely caused by this change in 4.4-rc1:

commit 24ba16bb3d499c49974669cd8429c3e4138ab102
Author: Jiri Kosina <jkosina@suse.cz>
Date:   Mon Nov 2 13:46:58 2015 +1100

    xfs: clear PF_NOFREEZE for xfsaild kthread
    
    Since xfsaild has been converted to kthread in 0030807c, it calls
    try_to_freeze() during every AIL push iteration. It however doesn't set
    itself as freezable, and therefore this try_to_freeze() will never do
    anything.
    
    Before (hopefully eventually) kthread freezing gets converted to fileystem
    freezing, we'd rather mark xfsaild freezable (as it can generate I/O
    during suspend).
    
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Reviewed-by: Brian Foster <bfoster@redhat.com>
    Signed-off-by: Dave Chinner <david@fromorbit.com>

Note You need to log in before you can comment on or make changes to this bug.