From: Nigel Cunningham <nigel@suspend2.net>
To: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: linux-kernel@vger.kernel.org, Pavel Machek <pavel@suse.cz>
Subject: Re: [ 01/23] [Suspend2] Make workqueues freezeable.
Date: Fri, 27 Jan 2006 14:01:30 +1000 [thread overview]
Message-ID: <200601271401.31488.nigel@suspend2.net> (raw)
In-Reply-To: <200601270017.18773.rjw@sisk.pl>
Hi Rafael.
On Friday 27 January 2006 09:17, Rafael J. Wysocki wrote:
> Hi,
>
> On Thursday, 26 January 2006 04:45, Nigel Cunningham wrote:
> > Prior to this patch, kernel threads and workqueues are unconditionally
> > unfreezeable. This patch reverses that behaviour, making the default
> > for kernel processes to be frozen. New variations of the routines for
> > starting kernel threads and workqueues (containing _nofreeze_) allow
> > threads that need to run during suspend to be made nofreeze again.
>
> This looks like "let's make everything freezable and hunt for things that
> must not be frozen" kind of approach, but isn't it error-prone? I mean,
> for example, if someone creates a kernel thread that in fact must not
> be frozen, but forgets to use the _nofreeze_ call, things will break for
> some people and the problem will be worse than the current one,
> it seems.
You're right that the default is now to freeze threads. This is mostly because
the majority of kernel threads can and should be frozen because they're not
needed. If a thread is frozen which shouldn't be, the user (which will
hopefully be the developer testing their work) will experience a deadlock
when they try to suspend. If, on the other hand, we let threads run that
should be frozen, well - the outcome depends on what is done when the thread
should be frozen. Obviously it doesn't hurt too much to let kernel threads
run, or we'd see problems at the moment. For this reason, I consider this
patch more to be a nicety than a necessity. Nice because it makes kernel
threads behave in a manner consistent with what happens to userspace (hence
defaulting to freezing, rather than not).
Regards,
Nigel
--
See our web page for Howtos, FAQs, the Wiki and mailing list info.
http://www.suspend2.net IRC: #suspend2 on Freenode
next prev parent reply other threads:[~2006-01-27 4:05 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-26 3:45 [ 00/23] [Suspend2] Freezer Upgrade Patches Nigel Cunningham
2006-01-26 3:45 ` [ 01/23] [Suspend2] Make workqueues freezeable Nigel Cunningham
2006-01-26 23:17 ` Rafael J. Wysocki
2006-01-27 4:01 ` Nigel Cunningham [this message]
2006-01-26 3:45 ` [ 02/23] [Suspend2] Add new include/linux/freezer.h header Nigel Cunningham
2006-01-26 3:45 ` [ 03/23] [Suspend2] Allow a notifier to remove itself from the notifier list Nigel Cunningham
2006-01-26 3:45 ` [ 04/23] [Suspend2] Todo notifier for processes Nigel Cunningham
2006-01-26 3:45 ` [ 05/23] [Suspend2] Make the freezer use todo lists Nigel Cunningham
2006-01-26 3:45 ` [ 06/23] [Suspend2] Disable usermode helper invocations when the freezer is on Nigel Cunningham
2006-01-30 22:05 ` Rafael J. Wysocki
2006-01-31 3:24 ` Nigel Cunningham
2006-01-31 10:58 ` Rafael J. Wysocki
2006-01-31 23:21 ` Nigel Cunningham
2006-02-01 0:33 ` Rafael J. Wysocki
2006-01-26 3:45 ` [ 07/23] [Suspend2] Add which-to-thaw parameter to thaw_processes() calls Nigel Cunningham
2006-01-26 3:45 ` [ 08/23] [Suspend2] New freezer explanation for kernel/power/process.c Nigel Cunningham
2006-01-26 3:45 ` [ 09/23] [Suspend2] Quieten the freezer for normal operation Nigel Cunningham
2006-01-26 3:45 ` [ 10/23] [Suspend2] Add support for freezing filesystem bdevs Nigel Cunningham
2006-01-26 3:45 ` [ 11/23] [Suspend2] Modify freezeable for freezing kernel threads separately Nigel Cunningham
2006-01-26 3:45 ` [ 12/23] [Suspend2] Split freezing of threads according to whether user/kernelspace Nigel Cunningham
2006-01-26 3:45 ` [ 13/23] [Suspend2] Add support for thawing just kernel threads or all threads Nigel Cunningham
2006-01-26 3:45 ` [ 14/23] [Suspend2] Helper for counting freezeable threads of a type Nigel Cunningham
2006-01-26 3:45 ` [ 15/23] [Suspend2] Helper for counting uninterruptible " Nigel Cunningham
2006-01-30 22:18 ` Rafael J. Wysocki
2006-01-30 22:25 ` Pavel Machek
2006-01-31 0:02 ` Rafael J. Wysocki
2006-01-31 9:27 ` [RFC/RFT] finally solve "swsusp fails with mysqld" problem Pavel Machek
2006-01-31 16:17 ` Rafael J. Wysocki
2006-01-31 21:29 ` Pavel Machek
2006-01-31 22:30 ` Rafael J. Wysocki
2006-01-31 5:42 ` [ 15/23] [Suspend2] Helper for counting uninterruptible threads of a type Nigel Cunningham
2006-01-26 3:45 ` [ 16/23] [Suspend2] Helper to signal all " Nigel Cunningham
2006-01-26 3:46 ` [ 17/23] [Suspend2] Helper to prod processes that should have frozen but haven't Nigel Cunningham
2006-01-26 3:46 ` [ 18/23] [Suspend2] Helper: Did we fail to freeze all threads of a type? Nigel Cunningham
2006-01-26 3:46 ` [ 19/23] [Suspend2] Freeze all threads of a type Nigel Cunningham
2006-01-26 3:46 ` [ 20/23] [Suspend2] Modify process.c includes and export freezer state Nigel Cunningham
2006-01-26 3:46 ` [ 21/23] [Suspend2] Remove unused DEBUG undef Nigel Cunningham
2006-01-26 3:46 ` [ 22/23] [Suspend2] Modify swsusp to thaw kernel threads while eating memory Nigel Cunningham
2006-01-26 3:46 ` [ 23/23] [Suspend2] Don't scan LRU while freezer is on Nigel Cunningham
2006-01-26 11:55 ` [ 00/23] [Suspend2] Freezer Upgrade Patches Pavel Machek
2006-01-26 21:49 ` Nigel Cunningham
2006-01-26 23:10 ` Rafael J. Wysocki
2006-01-27 4:04 ` Nigel Cunningham
2006-01-27 12:18 ` Rafael J. Wysocki
2006-01-27 19:20 ` Nigel Cunningham
2006-01-27 23:22 ` Pavel Machek
2006-01-30 5:54 ` Nigel Cunningham
2006-01-30 11:50 ` Pavel Machek
2006-01-30 7:53 ` Stefan Seyfried
2006-01-30 11:53 ` 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=200601271401.31488.nigel@suspend2.net \
--to=nigel@suspend2.net \
--cc=linux-kernel@vger.kernel.org \
--cc=pavel@suse.cz \
--cc=rjw@sisk.pl \
/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