All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Nigel Cunningham <ncunningham@crca.org.au>
Cc: u.luckas@road.de, swetland@google.com,
	linux-pm@lists.linux-foundation.org
Subject: Re: [PATCH 3/9] PM: suspend_block: Abort task freezing if a suspend_blocker is active.
Date: Fri, 8 May 2009 16:40:43 +0200	[thread overview]
Message-ID: <200905081640.44894.rjw@sisk.pl> (raw)
In-Reply-To: <1241746532.19600.247.camel@nigel-laptop>

On Friday 08 May 2009, Nigel Cunningham wrote:
> Hi.
> 
> On Thu, 2009-05-07 at 18:22 -0700, Arve Hjønnevåg wrote:
> > 2009/5/7 Nigel Cunningham <ncunningham@crca.org.au>:
> > > Hi.
> > >
> > > On Thu, 2009-05-07 at 16:49 -0700, Arve Hjønnevåg wrote:
> > >> On Thu, May 7, 2009 at 3:41 AM, Pavel Machek <pavel@ucw.cz> wrote:
> > >> > If the code runs for 20 seconds, it is a bug to be fixed.
> > >>
> > >> The code gives up after 20 seconds, it does not normally run for 20
> > >> seconds. It is arguably a bug that it gives up after 20 seconds since
> > >> the time required to freeze all the threads grows with the number of
> > >> threads that are running. It could still be making progress after 20
> > >> seconds. Since the time required to freeze all tasks is the number of
> > >> tasks times the time it takes to interrupt each task there is no way
> > >> to ensure that the time required is insignificant. If we do not abort
> > >> task freezing when there is a wakeup event, then the worst case wakeup
> > >> latency is guarantied to be worse than the worst case latency for any
> > >> other uninterruptible kernel call.
> > >
> > > I agree with Pavel here. If freezing takes 20 seconds, something is
> > > wrong. (Remember that most tasks will not be running, and will therefore
> > > respond to the pseudo-signal and freeze immediately).
> > >
> > > In fact, I'd go further. In the thousands of times I've run the freezer
> > > over the years, it has never taken more than 1 second - let alone 20 -
> > 
> > One second is to long.
> 
> I agree. But a one second timeout is still better than a 20s timeout.
> 
> > > when freezing has been successful. A delay of 20 seconds was more
> > > relevant when the value included the time for syncing data to disk.
> > 
> > This patch does nothing with the 20 second timeout.
> 
> I know. Perhaps we should do something with it, though.

I tried some time ago, but it didn't really work well.

The timeout is actually a workaround for the problem that we don't really
know if tasks are going to react to our freeze requests and how much time it is
going to take.  The current value of 20 s was chosen after a number of
experiments showing that in some cases the freezing _was_ going to take so
much time.  Of course the question is whether it makes sense to give up earlier
even if tasks would eventually freeze, but that's a different issue.

Now, I think the Arve's approach is reasonable.  If we know in advace that
we're not going to suspend, it's better to stop the freezing as soon as
possible.

Thanks,
Rafael
_______________________________________________
linux-pm mailing list
linux-pm@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/linux-pm

  reply	other threads:[~2009-05-08 14:40 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-06  4:18 [RFC][PATCH 0/9] Suspend block api (version 3) Arve Hjønnevåg
2009-05-06  4:18 ` [PATCH 1/9] PM: Add suspend block api Arve Hjønnevåg
2009-05-06  4:18   ` [PATCH 2/9] PM: suspend_block: Add driver to access suspend blockers from user-space Arve Hjønnevåg
2009-05-05 20:12     ` Pavel Machek
2009-05-07  1:42       ` Arve Hjønnevåg
2009-05-07 10:32         ` Pavel Machek
2009-05-08  0:43           ` Arve Hjønnevåg
2009-05-08 14:22             ` Rafael J. Wysocki
2009-05-09  0:38               ` Arve Hjønnevåg
2009-05-05 20:16     ` Pavel Machek
2009-05-07  1:31       ` Arve Hjønnevåg
2009-05-07 10:43         ` Pavel Machek
2009-05-06  4:18     ` [PATCH 3/9] PM: suspend_block: Abort task freezing if a suspend_blocker is active Arve Hjønnevåg
2009-05-05 19:57       ` Pavel Machek
2009-05-07  1:51         ` Arve Hjønnevåg
2009-05-07 10:41           ` Pavel Machek
2009-05-07 23:49             ` Arve Hjønnevåg
2009-05-08  1:06               ` Nigel Cunningham
2009-05-08  1:22                 ` Arve Hjønnevåg
2009-05-08  1:35                   ` Nigel Cunningham
2009-05-08 14:40                     ` Rafael J. Wysocki [this message]
2009-05-08 22:27                       ` Nigel Cunningham
2009-05-08 23:01                         ` Rafael J. Wysocki
2009-05-09  0:12                           ` Nigel Cunningham
2009-05-12 10:05                           ` Pavel Machek
2009-05-12 16:55                             ` Rafael J. Wysocki
2009-05-12 19:33                               ` Pavel Machek
2009-05-12 10:04               ` Pavel Machek
2009-05-08  0:22         ` Rafael J. Wysocki
2009-05-06  4:18       ` [PATCH 4/9] Input: Block suspend while event queue is not empty Arve Hjønnevåg
2009-05-05 20:02         ` Pavel Machek
2009-05-07  1:57           ` Arve Hjønnevåg
2009-05-06  4:18         ` [PATCH 5/9] PM: suspend_block: Switch to list of active and inactive suspend blockers Arve Hjønnevåg
2009-05-06  4:18           ` [PATCH 6/9] PM: suspend_block: Add debugfs file Arve Hjønnevåg
2009-05-06  4:18             ` [PATCH 7/9] PM: suspend_block: Add suspend_blocker stats Arve Hjønnevåg
2009-05-06  4:18               ` [PATCH 8/9] PM: suspend_block: Add timeout support Arve Hjønnevåg
2009-05-06  4:18                 ` [PATCH 9/9] PM: suspend_block: Add timeout support to user-space suspend_blockers Arve Hjønnevåg
2009-05-06 17:17 ` [RFC][PATCH 0/9] Suspend block api (version 3) Kevin Hilman
2009-05-07 22:42   ` Arve Hjønnevåg
2009-05-08 16:01     ` mark gross
2009-05-08 23:36     ` Kevin Hilman
2009-05-15 19:58     ` Pavel Machek
  -- strict thread matches above, loose matches on Subject: below --
2010-04-23  1:08 [PATCH 0/9] Suspend block api (version 4) Arve Hjønnevåg
2010-04-23  1:08 ` [PATCH 1/9] PM: Add suspend block api Arve Hjønnevåg
2010-04-23  1:08   ` [PATCH 2/9] PM: suspend_block: Add driver to access suspend blockers from user-space Arve Hjønnevåg
2010-04-23  1:08     ` [PATCH 3/9] PM: suspend_block: Abort task freezing if a suspend_blocker is active Arve Hjønnevåg
2010-04-23  1:08     ` Arve Hjønnevåg
2009-04-30  3:09 [RFC][PATCH 0/9] Suspend block api (version 2) Arve Hjønnevåg
2009-04-30  3:10 ` [PATCH 1/9] PM: Add suspend block api Arve Hjønnevåg
2009-04-30  3:10   ` [PATCH 2/9] PM: suspend_block: Add driver to access suspend blockers from user-space Arve Hjønnevåg
2009-04-30  3:10     ` [PATCH 3/9] PM: suspend_block: Abort task freezing if a suspend_blocker is active Arve Hjønnevåg

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=200905081640.44894.rjw@sisk.pl \
    --to=rjw@sisk.pl \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=ncunningham@crca.org.au \
    --cc=swetland@google.com \
    --cc=u.luckas@road.de \
    /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.