All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nigel Cunningham <nigel@suspend2.net>
To: Pavel Machek <pavel@ucw.cz>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>, linux-kernel@vger.kernel.org
Subject: Re: [ 15/23] [Suspend2] Helper for counting uninterruptible threads of a type.
Date: Tue, 31 Jan 2006 15:42:59 +1000	[thread overview]
Message-ID: <200601311543.04302.nigel@suspend2.net> (raw)
In-Reply-To: <20060130222541.GK2250@elf.ucw.cz>

[-- Attachment #1: Type: text/plain, Size: 1986 bytes --]

Hi.

On Tuesday 31 January 2006 08:25, Pavel Machek wrote:
> On Po 30-01-06 23:18:28, Rafael J. Wysocki wrote:
> > Hi,
> >
> > On Thursday 26 January 2006 04:45, Nigel Cunningham wrote:
> > > Add a helper which counts the number of patches of a type (all
> > > or userspace only) which are in TASK_UNINTERRUPTIBLE state.
> > > These tasks are signalled (just in case they leave that state at
> > > a later point), but we do not consider freezing to have failed
> > > if and when they do not enter the freezer.
> > >
> > > Note that when they eventually leave TASK_UNINTERRUPTIBLE state,
> > > they will enter the refrigerator, but will immediately exit if
> > > we no longer want to freeze at that point.
> >
> > I think we need to do something like this to prevent problems with
> > freezing under load.
>
> That is dangerous... task in UNINTERRUPTIBLE may hold some lock,
> AFAICT.
>
> No, there's some simple bug in refrigerator, and I/we need to fix
> that. Signals work under load, so refrigerator should, too.

I know you understand English, Pavel! Re-read what I wrote previously! The 
problem is a race. You're telling processes that process I/O to freeze at the 
same time as you're telling processes that submit I/O to freeze. If kjournald 
(eg) enters the refrigerator while dd is still running, dd is going to have a 
chance of getting stuck, waiting for some I/O to complete.

This also means your sys_sync is totally useless if anything is submitting 
I/O, since there will still be I/O being submitted after the sync is done. 
This is why (in the numbers I submitted yesterday), the current 
implementation took so much longer than the new one. The sys_sync really only 
introduces a big delay. It needs to be done after the things that generate 
I/O have been stopped.

Regards,

Nigel

-- 
See our web page for Howtos, FAQs, the Wiki and mailing list info.
http://www.suspend2.net                IRC: #suspend2 on Freenode

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

  parent reply	other threads:[~2006-01-31  5:46 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
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       ` Nigel Cunningham [this message]
2006-01-26  3:45 ` [ 16/23] [Suspend2] Helper to signal all threads of a type 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=200601311543.04302.nigel@suspend2.net \
    --to=nigel@suspend2.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pavel@ucw.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 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.