All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@rjwysocki.net>
To: "Luis R. Rodriguez" <mcgrof@kernel.org>
Cc: viro@zeniv.linux.org.uk, bart.vanassche@wdc.com,
	ming.lei@redhat.com, tytso@mit.edu, darrick.wong@oracle.com,
	jikos@kernel.org, pavel@ucw.cz, len.brown@intel.com,
	linux-fsdevel@vger.kernel.org, boris.ostrovsky@oracle.com,
	jgross@suse.com, todd.e.brandt@linux.intel.com,
	nborisov@suse.com, jack@suse.cz, martin.petersen@oracle.com,
	ONeukum@suse.com, oleksandr@natalenko.name,
	oleg.b.antonyan@gmail.com, yu.chen.surf@gmail.com,
	dan.j.williams@intel.com, linux-pm@vger.kernel.org,
	linux-block@vger.kernel.org, linux-xfs@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 00/11] fs: use freeze_fs on suspend/hibernate
Date: Wed, 13 Dec 2017 02:09:49 +0100	[thread overview]
Message-ID: <7282138.2afjHhBgNp@aspire.rjw.lan> (raw)
In-Reply-To: <20171129232356.28296-1-mcgrof@kernel.org>

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

  parent reply	other threads:[~2017-12-13  1:10 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-29 23:23 [PATCH 00/11] fs: use freeze_fs on suspend/hibernate Luis R. Rodriguez
2017-11-29 23:23 ` [PATCH 01/11] fs: provide unlocked helper for freeze_super() Luis R. Rodriguez
2017-11-30 16:58   ` Jan Kara
2017-11-29 23:23 ` [PATCH 02/11] fs: provide unlocked helper thaw_super() Luis R. Rodriguez
2017-11-30 16:59   ` Jan Kara
2017-11-29 23:23 ` [PATCH 03/11] fs: add frozen sb state helpers Luis R. Rodriguez
2017-11-30 17:13   ` Jan Kara
2017-11-30 19:05     ` Luis R. Rodriguez
2017-12-01 11:47       ` Jan Kara
2017-12-01 21:13         ` Luis R. Rodriguez
2017-12-21 11:03           ` Jan Kara
2018-04-18  0:59             ` Luis R. Rodriguez
2018-04-18 10:12               ` Jan Kara
2018-04-20 18:49               ` Luis R. Rodriguez
2018-04-21 23:53                 ` Jan Kara
2018-04-22  1:22                   ` Luis R. Rodriguez
2018-04-22  2:53     ` Luis R. Rodriguez
2017-11-29 23:23 ` [PATCH 04/11] fs: distinguish between user initiated freeze and kernel initiated freeze Luis R. Rodriguez
2017-11-29 23:23 ` [PATCH 05/11] fs: add iterate_supers_excl() and iterate_supers_reverse_excl() Luis R. Rodriguez
2017-11-29 23:48   ` Rafael J. Wysocki
2017-11-29 23:48     ` Rafael J. Wysocki
2017-11-30  0:22     ` Luis R. Rodriguez
2017-11-30  0:22       ` Luis R. Rodriguez
2017-11-30  1:34     ` Dave Chinner
2017-11-30  1:34       ` Dave Chinner
2017-11-30  1:40       ` Rafael J. Wysocki
2017-11-30  1:40         ` Rafael J. Wysocki
2017-11-30 16:57   ` Jan Kara
2017-11-29 23:23 ` [PATCH 06/11] fs: freeze on suspend and thaw on resume Luis R. Rodriguez
2017-11-29 23:23 ` [PATCH 07/11] xfs: remove not needed freezing calls Luis R. Rodriguez
2017-11-30 16:21   ` Jan Kara
2017-11-30 20:32     ` Rafael J. Wysocki
2017-11-30 20:32       ` Rafael J. Wysocki
2017-11-30 23:30       ` Dave Chinner
2017-11-30 23:30         ` Dave Chinner
2017-11-30 23:40         ` Rafael J. Wysocki
2017-11-30 23:40           ` Rafael J. Wysocki
2017-11-29 23:23 ` [PATCH 08/11] ext4: " Luis R. Rodriguez
2017-11-29 23:23 ` [PATCH 09/11] f2fs: " Luis R. Rodriguez
2017-11-29 23:23 ` [PATCH 10/11] nilfs2: " Luis R. Rodriguez
2017-11-29 23:23 ` [PATCH 11/11] jfs: " Luis R. Rodriguez
2017-11-30 16:36 ` [PATCH 00/11] fs: use freeze_fs on suspend/hibernate Yu Chen
2017-11-30 16:41   ` Jiri Kosina
2017-11-30 16:50     ` Yu Chen
2017-12-01 19:05     ` Jeff Layton
2017-12-01 21:51       ` Dave Chinner
2017-11-30 17:01 ` Bart Van Assche
2017-11-30 17:01   ` Bart Van Assche
2017-11-30 19:42   ` Luis R. Rodriguez
2017-11-30 19:42     ` Luis R. Rodriguez
2017-11-30 20:53     ` Bart Van Assche
2017-11-30 20:53       ` Bart Van Assche
2017-11-30 20:53       ` Bart Van Assche
2017-11-30 21:03       ` Dave Chinner
2017-11-30 21:03         ` Dave Chinner
2017-11-30 21:51 ` Pavel Machek
2017-12-01  0:44   ` Luis R. Rodriguez
2017-12-13  1:09 ` Rafael J. Wysocki [this message]
2017-12-19 16:50   ` Luis R. Rodriguez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7282138.2afjHhBgNp@aspire.rjw.lan \
    --to=rjw@rjwysocki.net \
    --cc=ONeukum@suse.com \
    --cc=bart.vanassche@wdc.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=dan.j.williams@intel.com \
    --cc=darrick.wong@oracle.com \
    --cc=jack@suse.cz \
    --cc=jgross@suse.com \
    --cc=jikos@kernel.org \
    --cc=len.brown@intel.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=mcgrof@kernel.org \
    --cc=ming.lei@redhat.com \
    --cc=nborisov@suse.com \
    --cc=oleg.b.antonyan@gmail.com \
    --cc=oleksandr@natalenko.name \
    --cc=pavel@ucw.cz \
    --cc=todd.e.brandt@linux.intel.com \
    --cc=tytso@mit.edu \
    --cc=viro@zeniv.linux.org.uk \
    --cc=yu.chen.surf@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.