All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pavel Machek <pavel@ucw.cz>
To: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: suspend-devel List <suspend-devel@lists.sourceforge.net>,
	pm list <linux-pm@lists.osdl.org>,
	Stephen Hemminger <shemminger@osdl.org>
Subject: Re: [PATCH -mm 1/2]: PM: Fix handling of stopped tasks
Date: Tue, 5 Dec 2006 11:25:30 +0100	[thread overview]
Message-ID: <20061205102530.GA5306@elf.ucw.cz> (raw)
In-Reply-To: <200612032350.23067.rjw@sisk.pl>

Hi!

> Currently, if a task is stopped (ie. it's in the TASK_STOPPED state), it is
> considered by the freezer as unfreezeable.  However, there may be a race
> between the freezer and the delivery of the continuation signal to the task
> resulting in the task running after we have finished freezing other tasks.
> This, in turn, may lead to undesirable effects up to and including a
> corruption of data.
> 
> To prevent this from happening we first need to make the freezer consider
> stopped tasks as freezeable.  For this purpose we need to make freezeable()
> stop returning 0 for these tasks.  We must remember, however, that the
> stopped tasks need not receive the continuation signal before thaw_processes()
> is called, so as soon as PF_FREEZE is set for them try_to_freeze_tasks()
> should stop counting them as the ones to wait for.  Additionally, if there's a
> traced task (ie. a task in the TASK_TRACED state) the parent of which has
> PF_FREEZE set and is stopped, try_to_freeze_tasks() should not wait for it.
> Moreover, if there are some stopped tasks that haven't received the continuation
> signal before thaw_processes() is called, we must clear PF_FREEZE for them so
> that they don't go to the refrigerator when it's no longer desirable.
> 
> Still if a stopped tasks receives the continuation signal after the freezer
> has returned, it should immediately go to the refrigerator.  For this reason
> we need to place the call to try_to_freeze() in get_signal_to_deliver() right
> after the relock label.
> 
> It is also reasonable to change the error paths so that the names of stopped
> or traced tasks which have not frozen are not reported to the user, because in
> the majority of cases they would be false positives.
> 
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>

Okay, lets go ahead with this one. (ACK) I still think we should be
able to find some simpler solution, I'll take a look.
									Pavel

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

  reply	other threads:[~2006-12-05 10:25 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-03 22:18 [PATCH -mm 0/2]: SMP-safe freezer Rafael J. Wysocki
2006-12-03 22:50 ` [PATCH -mm 1/2]: PM: Fix handling of stopped tasks Rafael J. Wysocki
2006-12-05 10:25   ` Pavel Machek [this message]
2006-12-05 10:34   ` Pavel Machek
2006-12-05 11:06     ` Rafael J. Wysocki
2006-12-05 14:13       ` Pavel Machek
2006-12-05 14:22         ` Rafael J. Wysocki
2006-12-05 11:24     ` Pavel Machek
2006-12-05 11:38       ` Rafael J. Wysocki
2006-12-05 14:12         ` Pavel Machek
2006-12-05 14:26           ` Rafael J. Wysocki
2006-12-05 14:33             ` Rafael J. Wysocki
2006-12-05 15:27             ` Pavel Machek
2006-12-05 17:22               ` Rafael J. Wysocki
2006-12-05 21:03     ` Rafael J. Wysocki
2006-12-05 21:26       ` Rafael J. Wysocki
2006-12-05 21:42         ` [Suspend-devel] " Rafael J. Wysocki
2006-12-05 22:19       ` Pavel Machek
2006-12-05 22:18         ` Rafael J. Wysocki
2006-12-06  0:07           ` [linux-pm] " Nigel Cunningham
2006-12-05 22:36       ` Pavel Machek
2006-12-05 22:45         ` Rafael J. Wysocki
2006-12-05 23:08           ` Rafael J. Wysocki
2006-12-05 23:45             ` Pavel Machek
2006-12-06  0:02               ` [Suspend-devel] " Nigel Cunningham
2006-12-06 23:13               ` Rafael J. Wysocki
2006-12-08 11:21                 ` Pavel Machek
2006-12-08 11:49                   ` Rafael J. Wysocki
2006-12-08 13:05                     ` Rafael J. Wysocki
2006-12-08 22:07                     ` Rafael J. Wysocki
2006-12-08 23:36                       ` Pavel Machek
2006-12-09 15:35                         ` Rafael J. Wysocki
2006-12-10  0:27                           ` Rafael J. Wysocki
2006-12-10 10:45                             ` Rafael J. Wysocki
2006-12-10 20:00                               ` Pavel Machek
2006-12-10 11:26                     ` Rafael J. Wysocki
2006-12-03 23:10 ` [PATCH -mm 2/2]: PM: SMP-safe freezer Rafael J. Wysocki
2006-12-04 10:30   ` Pavel Machek
2006-12-04 14:03     ` Rafael J. Wysocki
2006-12-04 19:44       ` Pavel Machek
2006-12-04 19:56         ` Rafael J. Wysocki
2006-12-05  5:43         ` [linux-pm] " David Brownell
2006-12-05 11:14           ` [Suspend-devel] " Rafael J. Wysocki

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=20061205102530.GA5306@elf.ucw.cz \
    --to=pavel@ucw.cz \
    --cc=linux-pm@lists.osdl.org \
    --cc=rjw@sisk.pl \
    --cc=shemminger@osdl.org \
    --cc=suspend-devel@lists.sourceforge.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 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.