lkml.org 
[lkml]   [2017]   [Dec]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH 00/11] fs: use freeze_fs on suspend/hibernate
    Date
    On Thursday, November 30, 2017 12:23:45 AM CET Luis R. Rodriguez wrote:
    > This is a followup from the original RFC which proposed to start
    > to kill kthread freezing all together [0]. Instead of going straight
    > out to the jugular for kthread freezing this series only addresses
    > killing freezer calls on filesystems which implement freeze_fs, after
    > we let the kernel freeze these filesystems for us on suspend.
    >
    > This approach puts on a slow but steady path towards the original goal
    > though. Each subsystem could look for similar solutions. Even with
    > filesystems we're not all done yet, after this we'll still have to
    > decide what to do about filesystems which do not implement freeze_fs().
    >
    > Motivation and problem:
    >
    > kthreads have some semantics for freezing, which helps the kernel
    > freeze them when a system is going to suspend or hibernation. These
    > semantics are not well defined though, and it actually turns out
    > pretty hard to get it right.
    >
    > Without a proper solution suspend and hibernation are fragile on filesystems,
    > it can easily break suspend and fixing such issues are in no way trivial [1]
    > [2].
    >
    > Proposed solution:
    >
    > Instead of fixing such semantics and trying to get all filesystems to do it
    > right, we can easily do away with all freezing calls if the filesystem
    > implements a proper freeze_fs() callback. The following 9 filesystems have
    > freeze_fs() implemented as such we can let the kernel issue the callback upon
    > suspend and thaw on resume automatically on our behalf.
    >
    > o xfs
    > o reiserfs
    > o nilfs2
    > o jfs
    > o f2fs
    > o ext4
    > o ext2
    > o btrfs
    >
    > Of these, the following have freezer helpers, which can then be removed
    > after the kernel automaticaly calls freeze_fs for us on suspend:
    >
    > o xfs
    > o nilfs2
    > o jfs
    > o f2fs
    > o ext4
    >
    > I've tested this on a system with ext4 and XFS, and have let 0-day go at
    > without issues. I have branches availabe for linux-next [3] and Linus'
    > latest tree [4].
    >
    > Further testing, thoughts, reviews, flames are all equally appreciated.
    >
    > [0] https://lkml.kernel.org/r/20171003185313.1017-1-mcgrof@kernel.org
    > [1] https://bugzilla.suse.com/show_bug.cgi?id=1043449
    > [2] https://lkml.kernel.org/r/20171113103139.GA18936@yu-chen.sh.intel.com
    > [3] https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git/log/?h=20171129-fs-freeze-cleanup
    > [4] https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git/log/?h=20171129-fs-freeze-cleanup
    >
    > Luis R. Rodriguez (11):
    > fs: provide unlocked helper for freeze_super()
    > fs: provide unlocked helper thaw_super()
    > fs: add frozen sb state helpers
    > fs: distinguish between user initiated freeze and kernel initiated
    > freeze
    > fs: add iterate_supers_excl() and iterate_supers_reverse_excl()
    > fs: freeze on suspend and thaw on resume
    > xfs: remove not needed freezing calls
    > ext4: remove not needed freezing calls
    > f2fs: remove not needed freezing calls
    > nilfs2: remove not needed freezing calls
    > jfs: remove not needed freezing calls
    >
    > fs/ext4/ext4_jbd2.c | 2 +-
    > fs/ext4/super.c | 2 -
    > fs/f2fs/gc.c | 5 +-
    > fs/f2fs/segment.c | 6 +-
    > fs/jfs/jfs_logmgr.c | 11 +-
    > fs/jfs/jfs_txnmgr.c | 31 ++---
    > fs/nilfs2/segment.c | 48 ++++----
    > fs/super.c | 320 ++++++++++++++++++++++++++++++++++++++++---------
    > fs/xfs/xfs_trans.c | 2 +-
    > fs/xfs/xfs_trans_ail.c | 7 +-
    > include/linux/fs.h | 63 +++++++++-
    > kernel/power/process.c | 15 ++-
    > 12 files changed, 378 insertions(+), 134 deletions(-)
    >

    I'm assuming an update of this to be posted due to the comments from Jan
    on patch [3/11] and patch [7/11] probably.

    Is there anything else that needs to be addressed?

    Thanks,
    Rafael


    \
     
     \ /
      Last update: 2017-12-13 02:11    [W:4.053 / U:0.840 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site