From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Pavel Machek <pavel@ucw.cz>
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 18:22:50 +0100 [thread overview]
Message-ID: <200612051822.50999.rjw@sisk.pl> (raw)
In-Reply-To: <20061205152736.GA5029@ucw.cz>
Hi,
On Tuesday, 5 December 2006 16:27, Pavel Machek wrote:
> Hi!
>
> > > >(2) the race between the delivery of
> > > > the continuation signal and the freezer is damn hard to trigger (still I think
> > > > I can wirte some artificial code that would trigger this, although it would
> > > > involve a kernel thread sending SIGCONT to a user space process - provided
> > > > it's permissible ;-)).
> > >
> > > It is not really permissible, but I do not see how it would hurt...
> > >
> > > With that patch, we put TASK_STOPPED tasks into refrigerator, along
> > > with everyone else. SIGCONT is *not* going to help them out of
> > > refrigerator.
> > >
> > > We also ignore TASK_STOPPED now, so we'll not proceed until all
> > > stopped tasks are in refrigerator.
> > >
> > > Now... I'm not 100% sure I got the ptrace() cases right (and did not
> > > test that)... but TASK_STOPPED cases look pretty trivial to me now.
> >
> > Please note that currently (and with your patch) freezeable() returns 0 for
>
> I cerainly wanted freezable to return 1 for TASK_STOPPED... and I
> think this part of my patch should be doing it...?
>
>
> diff --git a/kernel/power/process.c b/kernel/power/process.c
> index 7bcc976..d56e494 100644
> --- a/kernel/power/process.c
> +++ b/kernel/power/process.c
> @@ -26,8 +26,7 @@ static inline int freezeable(struct task
> (p->flags & PF_NOFREEZE) ||
> (p->exit_state == EXIT_ZOMBIE) ||
> (p->exit_state == EXIT_DEAD) ||
> - ((p->exit_state == TASK_TRACED) && frozen(p->parent)) ||
> - (p->state == TASK_STOPPED))
> + ((p->exit_state == TASK_TRACED) && frozen(p->parent)))
> return 0;
> return 1;
> }
Ah, I didn't notice, sorry.
You should add
(p->exit_state == TASK_TRACED && p->parent->state == TASK_STOPPED) here
too, I think.
Also, have you verified that stopped tasks don't go to the refrigerator after
thaw_processes() is called?
Greetings,
Rafael
--
If you don't have the time to read,
you don't have the time or the tools to write.
- Stephen King
-------------------------------------------------------------------------
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
next prev parent reply other threads:[~2006-12-05 17:22 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
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 [this message]
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=200612051822.50999.rjw@sisk.pl \
--to=rjw@sisk.pl \
--cc=linux-pm@lists.osdl.org \
--cc=pavel@ucw.cz \
--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.