From: NeilBrown <neilb@suse.de>
To: Dave Chinner <david@fromorbit.com>
Cc: Len Brown <lenb@kernel.org>,
rjw@rjwysocki.net, linux-pm@vger.kernel.org,
linux-kernel@vger.kernel.org, Len Brown <len.brown@intel.com>
Subject: Re: [PATCH 1/1] suspend: delete sys_sync()
Date: Thu, 14 May 2015 09:22:51 +1000 [thread overview]
Message-ID: <20150514092251.6d0625af@notabene.brown> (raw)
In-Reply-To: <20150511014428.GB15721@dastard>
[-- Attachment #1: Type: text/plain, Size: 2895 bytes --]
On Mon, 11 May 2015 11:44:28 +1000 Dave Chinner <david@fromorbit.com> wrote:
> On Fri, May 08, 2015 at 03:08:43AM -0400, Len Brown wrote:
> > From: Len Brown <len.brown@intel.com>
> >
> > Remove sys_sync() from the kernel's suspend flow.
> >
> > sys_sync() is extremely expensive in some configurations,
> > and so the kernel should not force users to pay this cost
> > on every suspend.
>
> Since when? Please explain what your use case is that makes this
> so prohibitively expensive it needs to be removed.
>
> >
> > The user-space utilities s2ram and s2disk choose to invoke sync() today.
> > A user can invoke suspend directly via /sys/power/state to skip that cost.
>
> So, you want to have s2disk write all the dirty pages in memory to
> the suspend image, rather than to the filesystem?
>
> Either way you have to write that dirty data to disk, but if you
> write it to the suspend image, it then has to be loaded again on
> resume, and then written again to the filesystem the system has
> resumed. This doesn't seem very efficient to me....
>
> And, quite frankly, machines fail to resume from suspne dall the
> time. e.g. run out of batteries when they are under s2ram
> conditions, or s2disk fails because a kernel upgrade was done before
> the s2disk and so can't be resumed. With your change, users lose all
> the data that was buffered in memory before suspend, whereas right
> now it is written to disk and so nothing is lost if the resume from
> suspend fails for whatever reason.
>
> IOWs, I can see several good reasons why the sys_sync() needs to
> remain in the suspend code. User data safety and filesystem
> integrity is far, far more important than a couple of seconds
> improvement in suspend speed....
To be honest, this sounds like superstition and fear, not science and fact.
"filesystem integrity" is not an issue for the fast majority of filesystems
which use journalling to ensure continued integrity even after a crash. I
think even XFS does that :-)
For those few toy filesystems which don't journal, like VFAT and ..... well,
VFAT, it may well make sense for VFAT to request a notification on suspend
and to do whatever is needed to ensure consistent on-storage structures.
"User data safety" is not very closely related to "sys_sync". That call
doesn't tell my emacs or my libre-office that now is a good time to auto-save.
All that "sys_sync" saves is data that has been written-but-not-fsynced.
That is only a small portion of "user data" and anyone who thinks it is
"safe" is already deluded (possibly deluded by over-exposure to ext3).
I am very much in favour of Len's patch. Not only does the sys_sync()
call have a real cost, but I believe it also has zero value.
Can you identify an actual case where the removal of sys_sync would introduce
a measurable cost?
NeilBrown
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 811 bytes --]
next prev parent reply other threads:[~2015-05-13 23:23 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-08 7:08 [PATCH 1/1] suspend: delete sys_sync() Len Brown
2015-05-08 14:34 ` Alan Stern
2015-05-08 16:36 ` Len Brown
2015-05-08 19:13 ` One Thousand Gnomes
2015-05-08 19:32 ` Len Brown
2015-05-08 19:52 ` One Thousand Gnomes
2015-05-08 20:39 ` Rafael J. Wysocki
2015-05-08 20:30 ` Rafael J. Wysocki
2015-05-09 19:59 ` Alan Stern
2015-05-09 20:25 ` Henrique de Moraes Holschuh
2015-05-11 20:34 ` Len Brown
2015-05-12 6:11 ` Oliver Neukum
2015-06-25 17:11 ` Henrique de Moraes Holschuh
2015-06-30 20:04 ` Len Brown
2015-07-01 12:21 ` Henrique de Moraes Holschuh
2015-07-02 3:07 ` Len Brown
2015-07-03 1:42 ` Dave Chinner
2015-07-04 1:03 ` Rafael J. Wysocki
2015-07-04 8:50 ` Geert Uytterhoeven
2015-07-05 23:25 ` Rafael J. Wysocki
2015-07-04 14:19 ` Alan Stern
2015-07-05 23:28 ` Rafael J. Wysocki
2015-07-06 11:06 ` Pavel Machek
2015-07-06 13:59 ` Rafael J. Wysocki
2015-07-07 10:25 ` Pavel Machek
2015-07-07 12:22 ` Rafael J. Wysocki
2015-07-06 0:06 ` Dave Chinner
2015-07-06 11:11 ` Pavel Machek
2015-07-06 13:52 ` Rafael J. Wysocki
2015-07-07 1:17 ` Dave Chinner
2015-07-07 12:14 ` Rafael J. Wysocki
2015-07-07 13:16 ` Oliver Neukum
2015-07-07 14:32 ` Rafael J. Wysocki
2015-07-07 14:38 ` Oliver Neukum
2015-07-07 15:03 ` Alan Stern
2015-07-07 22:20 ` Rafael J. Wysocki
2015-07-08 11:20 ` Pavel Machek
2015-07-08 14:40 ` Alan Stern
2015-07-08 22:04 ` Rafael J. Wysocki
2015-07-07 22:11 ` Rafael J. Wysocki
2015-07-08 7:51 ` Oliver Neukum
2015-07-08 22:03 ` Rafael J. Wysocki
2015-07-09 7:32 ` Oliver Neukum
2015-07-09 23:22 ` Rafael J. Wysocki
2015-08-04 19:54 ` Pavel Machek
2015-07-08 11:17 ` Pavel Machek
2015-07-07 13:42 ` Takashi Iwai
2015-07-06 10:15 ` Ming Lei
2015-07-06 10:03 ` Pavel Machek
2015-05-11 1:44 ` Dave Chinner
2015-05-11 20:22 ` Len Brown
2015-05-12 22:34 ` Dave Chinner
2015-05-13 23:22 ` NeilBrown [this message]
2015-05-14 23:54 ` Dave Chinner
2015-05-15 0:34 ` Rafael J. Wysocki
2015-05-15 0:40 ` Ming Lei
2015-05-15 0:59 ` Rafael J. Wysocki
2015-05-15 5:13 ` Ming Lei
2015-05-15 10:35 ` One Thousand Gnomes
2015-05-18 1:57 ` NeilBrown
[not found] ` <CAJvTdKn_0EZ0ZuqO2e4+ExD8kFWcy78fse4zHr3uFZODOroXEg@mail.gmail.com>
2015-06-19 1:09 ` Dave Chinner
2015-06-19 2:35 ` Len Brown
2015-06-19 4:31 ` Dave Chinner
2015-06-19 6:34 ` Len Brown
2015-06-19 23:07 ` Dave Chinner
2015-06-20 5:26 ` Len Brown
2015-05-15 1:04 ` NeilBrown
2015-05-15 14:20 ` Alan Stern
2015-05-15 14:32 ` Alan Stern
2015-05-15 14:19 ` Alan Stern
2015-07-06 10:07 ` Pavel Machek
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=20150514092251.6d0625af@notabene.brown \
--to=neilb@suse.de \
--cc=david@fromorbit.com \
--cc=len.brown@intel.com \
--cc=lenb@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=rjw@rjwysocki.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).