public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: mjg59@srcf.ucam.org, linux-kernel@vger.kernel.org,
	linux-pm@lists.linux-foundation.org
Subject: Re: [PATCH] Remove process freezer from suspend to RAM pathway
Date: Wed, 4 Jul 2007 23:36:57 +0200	[thread overview]
Message-ID: <200707042336.58466.rjw@sisk.pl> (raw)
In-Reply-To: <E1I6ATN-0007QS-00@dorka.pomaz.szeredi.hu>

On Wednesday, 4 July 2007 21:25, Miklos Szeredi wrote:
> > Remember what I wrote a few minutes ago about khubd and ksuspend_usbd
> > wanting to resume devices during a system suspend transition?  This is
> > exactly what happens when those threads aren't frozen.
> 
> OK, let me summarize the situation as I see it now: there are two
> camps, the pro-freezers and the anti-freezers.
> 
> Pro-freezers say:
> 
>   - don't remove the freezer, otherwise we'll have to deal with
>     numerous problems in drivers

And these problems will generally be difficult to reproduce reliably and debug.

> Anti-freezers say:
> 
>   - let's remove the freezer, which causes numerous problems
> 
> Alan summerized the pro-freezer arguments well I think.  What are the
> anti-freezer arguments then?
> 
> After having looked at the freezer and done some experiments with it,
> the most obvious problem looks to be, that it can get stuck on a
> process doing uninterruptible sleep.

That's correct.

> And yes, this can happen if a fuse filesystem daemon is frozen before a
> filesystem user is.  And this is not something that can be fixed in fuse,
> some filesystem calls (rename(2) for example) are simply not restartable.
>
> This doesn't explain the deadlocks, but it could cause failure to
> suspend which would be pretty annoying.

I think the only thing that can deadlock in that context is the sync.  At
least, I don't see anything else.

> Does this affect other things than fuse?

Not that I know of.  It may affect user space drivers, but there's no data on
that.

> Can this be fixed?
> 
> It seems to be a fundamental problem with the freezer: while it does
> make sure that user processes are not calling into drivers during
> suspend, it also disallows perfectly harmless non-driver calls as
> well.

The problem is that when the freezer was designed (I didn't do that, BTW),
there was no FUSE and similar things, so it's not prepared to cope with
such interdependencies between user space tasks.

We had an analogous problem with vfork() and it was solved by using the
PF_FREEZER_SKIP flag.  Perhaps we can do similar thing with FUSE.

Greetings,
Rafael


-- 
"Premature optimization is the root of all evil." - Donald Knuth

  parent reply	other threads:[~2007-07-04 21:36 UTC|newest]

Thread overview: 187+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20070703211227.GA28758@srcf.ucam.org>
2007-07-03 21:16 ` [PATCH] Remove process freezer from suspend to RAM pathway Alan Stern
     [not found] ` <Pine.LNX.4.44L0.0707031713530.8010-100000@iolanthe.rowland.org>
2007-07-03 21:20   ` Matthew Garrett
     [not found]     ` <200707032337.52544.rjw@sisk.pl>
2007-07-03 21:36       ` Matthew Garrett
     [not found]       ` <20070703213639.GA29149@srcf.ucam.org>
2007-07-03 21:47         ` Oliver Neukum
2007-07-03 22:46         ` Rafael J. Wysocki
2007-07-04  3:38       ` Paul Mackerras
     [not found]       ` <18059.5690.908102.273897@cargo.ozlabs.ibm.com>
2007-07-04 10:42         ` Rafael J. Wysocki
2007-07-04 10:58           ` Paul Mackerras
2007-07-04 11:25             ` Rafael J. Wysocki
     [not found]             ` <200707041325.55779.rjw@sisk.pl>
2007-07-04 11:34               ` Paul Mackerras
2007-07-04 11:51               ` Miklos Szeredi
2007-07-04 12:41               ` Theodore Tso
     [not found]               ` <18059.34264.421573.246262@cargo.ozlabs.ibm.com>
2007-07-04 14:12                 ` Dmitry Torokhov
2007-07-04 15:38                 ` Alan Stern
2007-07-04 19:07                   ` Alan Stern
     [not found]               ` <20070704124133.GA5836@thunk.org>
2007-07-04 14:40                 ` Rafael J. Wysocki
     [not found]               ` <E1I63Nv-0006Z9-00@dorka.pomaz.szeredi.hu>
2007-07-04 14:41                 ` Rafael J. Wysocki
2007-07-04 14:45                   ` Miklos Szeredi
2007-07-04 15:03                     ` Oliver Neukum
     [not found]                     ` <200707041703.21808.oliver@neukum.org>
2007-07-04 15:17                       ` Rafael J. Wysocki
     [not found]                       ` <200707041717.05149.rjw@sisk.pl>
2007-07-05  0:29                         ` Paul Mackerras
     [not found]                         ` <18060.15209.274437.471074@cargo.ozlabs.ibm.com>
2007-07-05 12:29                           ` Rafael J. Wysocki
2007-07-12 15:13                           ` Pavel Machek
2007-07-04 15:42                 ` Alan Stern
2007-07-04 19:25                   ` Miklos Szeredi
     [not found]                   ` <E1I6ATN-0007QS-00@dorka.pomaz.szeredi.hu>
2007-07-04 21:36                     ` Rafael J. Wysocki [this message]
2007-07-05  8:37                       ` Miklos Szeredi
     [not found]                       ` <E1I6Mq2-0008WB-00@dorka.pomaz.szeredi.hu>
2007-07-05 12:39                         ` Rafael J. Wysocki
     [not found]                         ` <200707051439.37737.rjw@sisk.pl>
2007-07-05 12:39                           ` Miklos Szeredi
2007-07-05 16:10                             ` Jeremy Fitzhardinge
     [not found]                             ` <468D17FA.8040201@goop.org>
2007-07-05 17:45                               ` Miklos Szeredi
2007-07-05  0:43                     ` Paul Mackerras
     [not found]                     ` <18060.16064.519060.755991@cargo.ozlabs.ibm.com>
2007-07-05 12:49                       ` Rafael J. Wysocki
2007-07-05  0:36                   ` Paul Mackerras
     [not found]                   ` <18060.15630.812698.367707@cargo.ozlabs.ibm.com>
     [not found]                     ` <200707051451.38497.rjw@sisk.pl>
2007-07-05 12:50                       ` Johannes Berg
     [not found]                       ` <1183639825.3818.38.camel@johannes.berg>
2007-07-05 13:47                         ` Rafael J. Wysocki
2007-07-05 12:51                     ` Rafael J. Wysocki
2007-07-05 14:25                     ` Alan Stern
2007-07-03 21:37     ` Rafael J. Wysocki
2007-07-03 22:21     ` Alan Stern
     [not found]     ` <Pine.LNX.4.44L0.0707031814440.8010-100000@iolanthe.rowland.org>
2007-07-03 22:42       ` Matthew Garrett
     [not found] <200707082046.36864.rjw@sisk.pl>
2007-07-08 20:22 ` Alan Stern
     [not found] ` <Pine.LNX.4.44L0.0707081619090.11049-100000@netrider.rowland.org>
2007-07-08 21:08   ` Pavel Machek
2007-07-08 21:21   ` Benjamin Herrenschmidt
     [not found]   ` <1183929708.3388.306.camel@localhost.localdomain>
2007-07-09  6:52     ` Oliver Neukum
     [not found]     ` <200707090852.03429.oliver@neukum.org>
2007-07-09  9:14       ` Benjamin Herrenschmidt
2007-07-09 11:56         ` Rafael J. Wysocki
     [not found] <1183871941.3388.286.camel@localhost.localdomain>
2007-07-08 20:17 ` Alan Stern
     [not found] <Pine.LNX.4.44L0.0707072224270.10912-100000@netrider.rowland.org>
2007-07-08  5:14 ` Benjamin Herrenschmidt
     [not found] ` <1183871661.3388.282.camel@localhost.localdomain>
2007-07-08  5:19   ` Benjamin Herrenschmidt
2007-07-08 19:15   ` Rafael J. Wysocki
2007-07-08 20:16   ` Alan Stern
2007-07-08 20:55   ` Pavel Machek
     [not found]   ` <200707082115.27363.rjw@sisk.pl>
2007-07-08 21:03     ` Benjamin Herrenschmidt
2007-07-08 21:07       ` Pavel Machek
2007-07-08 21:45       ` Rafael J. Wysocki
     [not found]       ` <200707082345.27859.rjw@sisk.pl>
2007-07-08 21:54         ` Benjamin Herrenschmidt
     [not found]   ` <Pine.LNX.4.44L0.0707081517540.11049-100000@netrider.rowland.org>
2007-07-08 21:01     ` Pavel Machek
2007-07-08 21:20     ` Benjamin Herrenschmidt
2007-07-08 21:35     ` Rafael J. Wysocki
     [not found]     ` <1183929611.3388.303.camel@localhost.localdomain>
2007-07-08 22:06       ` Rafael J. Wysocki
     [not found]       ` <200707090006.32712.rjw@sisk.pl>
2007-07-09  0:33         ` Benjamin Herrenschmidt
2007-07-09  0:57           ` Kyle Moffett
     [not found]           ` <FFA29D56-3400-4EA3-8CE8-C1EF75484510@mac.com>
2007-07-09  1:32             ` Benjamin Herrenschmidt
2007-07-09  6:47       ` Oliver Neukum
     [not found]       ` <200707090847.43378.oliver@neukum.org>
2007-07-09  9:13         ` Benjamin Herrenschmidt
2007-07-09  9:23           ` Oliver Neukum
     [not found]           ` <200707091123.57400.oliver@neukum.org>
2007-07-09  9:33             ` Benjamin Herrenschmidt
2007-07-09 14:57               ` Adrian Bunk
2007-07-09 10:02         ` Pavel Machek
2007-07-09 10:05           ` Benjamin Herrenschmidt
2007-07-09 16:03       ` Alan Stern
     [not found] <Pine.LNX.4.44L0.0707072218030.10912-100000@netrider.rowland.org>
2007-07-08  4:39 ` Benjamin Herrenschmidt
2007-07-08 18:46   ` Rafael J. Wysocki
2007-07-08 18:26 ` Rafael J. Wysocki
     [not found] <1183855732.3388.240.camel@localhost.localdomain>
2007-07-08  2:53 ` Alan Stern
     [not found] <Pine.LNX.4.44L0.0707071255590.26860-100000@netrider.rowland.org>
2007-07-08  0:48 ` Benjamin Herrenschmidt
     [not found] <1183781219.3388.225.camel@localhost.localdomain>
2007-07-07 17:19 ` Alan Stern
     [not found] <Pine.LNX.4.44L0.0707062210470.7605-100000@netrider.rowland.org>
2007-07-07  4:06 ` Benjamin Herrenschmidt
     [not found] <Pine.LNX.4.44L0.0707061034540.3737-100000@iolanthe.rowland.org>
2007-07-07  3:44 ` Benjamin Herrenschmidt
2007-07-07 11:49   ` Pavel Machek
2007-07-08  0:40     ` Benjamin Herrenschmidt
2007-07-07 16:17   ` Alan Stern
2007-07-08  0:42     ` Benjamin Herrenschmidt
     [not found]     ` <1183855362.3388.233.camel@localhost.localdomain>
2007-07-08  2:24       ` Alan Stern
2007-07-08 18:20       ` Rafael J. Wysocki
     [not found] <EAA83A3B-1534-458B-A6F8-D090D670D4E7@mac.com>
2007-07-07  2:59 ` Alan Stern
     [not found] <Pine.LNX.4.44L0.0707061114190.3737-100000@iolanthe.rowland.org>
2007-07-07  0:43 ` Kyle Moffett
     [not found] <Pine.LNX.4.44L0.0707051023520.3728-100000@iolanthe.rowland.org>
2007-07-05 17:42 ` Miklos Szeredi
2007-07-05 20:43   ` Alan Stern
     [not found] <20070703224215.GA30081@srcf.ucam.org>
2007-07-04 14:38 ` Alan Stern
     [not found] ` <Pine.LNX.4.44L0.0707041030540.25704-100000@netrider.rowland.org>
2007-07-04 14:58   ` Matthew Garrett
     [not found]   ` <20070704145818.GA7784@srcf.ucam.org>
2007-07-04 15:02     ` Oliver Neukum
2007-07-04 15:57     ` Alan Stern
     [not found] <fa.ftLWBLCc+XqdYjiuxoPg+qyuUOE@ifi.uio.no>
     [not found] ` <fa.Oxrm8HYXTOF4jv5LrTjEe16lCE0@ifi.uio.no>
     [not found]   ` <fa.d3GOse+YbAb42uYwLymWkJiH9Fw@ifi.uio.no>
2007-07-04  0:17     ` Robert Hancock
     [not found]     ` <468AE700.7080102@shaw.ca>
2007-07-04  0:34       ` Matthew Garrett
     [not found]       ` <20070704003424.GA30958@srcf.ucam.org>
2007-07-04 10:21         ` Rafael J. Wysocki
     [not found] <20070703202329.GA27927@srcf.ucam.org>
2007-07-03 21:10 ` Alan Stern
     [not found] ` <Pine.LNX.4.44L0.0707031708080.8010-100000@iolanthe.rowland.org>
2007-07-03 21:12   ` Matthew Garrett
     [not found] <20070703042916.GA17240@srcf.ucam.org>
2007-07-03  4:54 ` Nigel Cunningham
     [not found] ` <200707031454.42078.nigel@nigel.suspend2.net>
2007-07-03  5:21   ` Matthew Garrett
     [not found]   ` <20070703052130.GA17605@srcf.ucam.org>
2007-07-03  5:24     ` Nigel Cunningham
2007-07-03  5:48   ` Benjamin Herrenschmidt
     [not found]   ` <1183441706.10386.73.camel@localhost.localdomain>
2007-07-03  6:08     ` Nigel Cunningham
     [not found]     ` <200707031608.06348.nigel@nigel.suspend2.net>
2007-07-03  7:19       ` Benjamin Herrenschmidt
     [not found]       ` <1183447184.10386.102.camel@localhost.localdomain>
2007-07-03 12:56         ` Rafael J. Wysocki
     [not found]         ` <200707031456.40890.rjw@sisk.pl>
2007-07-03 21:14           ` Benjamin Herrenschmidt
     [not found]           ` <1183497290.3388.4.camel@localhost.localdomain>
2007-07-03 21:32             ` Rafael J. Wysocki
     [not found]             ` <200707032332.49694.rjw@sisk.pl>
2007-07-03 21:35               ` Benjamin Herrenschmidt
     [not found]               ` <1183498555.3388.14.camel@localhost.localdomain>
2007-07-03 22:43                 ` Rafael J. Wysocki
2007-07-05  9:30             ` Pavel Machek
     [not found]             ` <20070705093013.GA3228@elf.ucw.cz>
2007-07-05 22:46               ` Benjamin Herrenschmidt
     [not found]               ` <1183675615.3388.81.camel@localhost.localdomain>
2007-07-05 23:13                 ` Nigel Cunningham
     [not found]                 ` <200707060913.05644.nigel@nigel.suspend2.net>
2007-07-05 23:20                   ` Benjamin Herrenschmidt
     [not found]                   ` <1183677643.3388.105.camel@localhost.localdomain>
2007-07-05 23:35                     ` Nigel Cunningham
     [not found]                     ` <200707060935.12706.nigel@nigel.suspend2.net>
2007-07-06  1:19                       ` Kyle Moffett
2007-07-06  3:54                       ` Benjamin Herrenschmidt
     [not found]                       ` <1183694055.3388.108.camel@localhost.localdomain>
2007-07-06  4:03                         ` Nigel Cunningham
     [not found]                         ` <200707061403.15932.nigel@nigel.suspend2.net>
2007-07-06  4:41                           ` Benjamin Herrenschmidt
2007-07-06  5:25                             ` Nigel Cunningham
2007-07-06  5:01                           ` Kyle Moffett
     [not found]                           ` <CF605B91-2425-4FC2-9434-5F8877EEEEEB@mac.com>
2007-07-06  5:53                             ` Nigel Cunningham
2007-07-10  2:07                             ` Nigel Cunningham
     [not found]                             ` <200707101207.16711.nigel@nigel.suspend2.net>
2007-07-10  3:03                               ` Kyle Moffett
     [not found]                       ` <CF60EC03-0171-4052-924D-57555A393168@mac.com>
2007-07-06  1:37                         ` Nigel Cunningham
2007-07-06  3:59                         ` Benjamin Herrenschmidt
     [not found]                         ` <1183694347.3388.114.camel@localhost.localdomain>
2007-07-06  7:35                           ` Rafael J. Wysocki
2007-07-06  9:03                             ` Benjamin Herrenschmidt
2007-07-06 14:38                           ` Alan Stern
2007-07-06 15:42                         ` Alan Stern
2007-07-05  0:03     ` Pavel Machek
2007-07-03  5:49 ` Benjamin Herrenschmidt
2007-07-03  5:51 ` Benjamin Herrenschmidt
2007-07-03  6:13 ` Oliver Neukum
2007-07-03  7:37 ` Romano Giannetti
     [not found] ` <1183448224.12649.14.camel@localhost>
2007-07-03  8:20   ` Oliver Neukum
2007-07-03 13:12   ` Rafael J. Wysocki
     [not found] ` <200707030813.53481.oliver@neukum.org>
2007-07-03  6:51   ` Miklos Szeredi
2007-07-03 12:13   ` Matthew Garrett
     [not found]   ` <20070703121313.GA21318@srcf.ucam.org>
2007-07-03 13:09     ` Rafael J. Wysocki
2007-07-03 12:56 ` Rafael J. Wysocki
     [not found] ` <1183441748.10386.75.camel@localhost.localdomain>
2007-07-03 13:07   ` Rafael J. Wysocki
     [not found] ` <1183441887.10386.77.camel@localhost.localdomain>
2007-07-03 13:08   ` Rafael J. Wysocki
     [not found]   ` <200707031508.45595.rjw@sisk.pl>
2007-07-03 15:09     ` Rafael J. Wysocki
     [not found]     ` <200707031709.29968.rjw@sisk.pl>
2007-07-03 17:20       ` Oliver Neukum
2007-07-03 20:59         ` Rafael J. Wysocki
2007-07-03 21:35           ` Benjamin Herrenschmidt
     [not found]           ` <1183498518.3388.12.camel@localhost.localdomain>
2007-07-03 22:33             ` Rafael J. Wysocki
2007-07-04 23:39         ` Pavel Machek
     [not found]         ` <20070704233909.GB2719@elf.ucw.cz>
2007-07-05  6:53           ` Oliver Neukum
2007-07-03 18:26       ` Oliver Neukum
2007-07-03 19:13         ` Miklos Szeredi
2007-07-03 19:32           ` Oliver Neukum
2007-07-03 19:47             ` Miklos Szeredi
2007-07-03 21:20             ` Benjamin Herrenschmidt
2007-07-03 21:48               ` Oliver Neukum
     [not found]               ` <200707032348.42796.oliver@neukum.org>
2007-07-03 21:56                 ` Benjamin Herrenschmidt
     [not found]                 ` <1183499792.3388.16.camel@localhost.localdomain>
2007-07-03 22:04                   ` Oliver Neukum
     [not found]                   ` <200707040004.16357.oliver@neukum.org>
2007-07-03 23:08                     ` Benjamin Herrenschmidt
     [not found]                     ` <1183504112.3388.45.camel@localhost.localdomain>
2007-07-04  8:10                       ` Oliver Neukum
2007-07-04 23:45             ` Pavel Machek
     [not found]             ` <20070704234523.GC2719@elf.ucw.cz>
2007-07-05 12:25               ` Rafael J. Wysocki
     [not found]               ` <200707051425.07904.rjw@sisk.pl>
2007-07-05 12:38                 ` Nigel Cunningham
     [not found]                 ` <200707052238.27889.nigel@nigel.suspend2.net>
2007-07-05 13:35                   ` Rafael J. Wysocki
     [not found]                   ` <200707051535.46196.rjw@sisk.pl>
2007-07-05 13:36                     ` Nigel Cunningham
     [not found]                     ` <200707052336.27585.nigel@nigel.suspend2.net>
2007-07-05 13:59                       ` Rafael J. Wysocki
     [not found]                       ` <200707051559.58479.rjw@sisk.pl>
2007-07-05 21:49                         ` Nigel Cunningham
     [not found]                         ` <200707060749.08665.nigel@nigel.suspend2.net>
     [not found]                           ` <200707060940.23248.rjw@sisk.pl>
2007-07-06  7:39                             ` Miklos Szeredi
     [not found]                             ` <E1I6iPL-0003Hj-00@dorka.pomaz.szeredi.hu>
2007-07-06  7:51                               ` Oliver Neukum
2007-07-06  9:09                                 ` Miklos Szeredi
2007-07-06  9:16                                   ` Nigel Cunningham
2007-07-06  9:33                                     ` Miklos Szeredi
2007-07-06  7:40                           ` Rafael J. Wysocki
2007-07-03 21:09         ` Rafael J. Wysocki
2007-07-03 19:27       ` Pavel Machek
     [not found]       ` <20070703192729.GA2125@elf.ucw.cz>
2007-07-03 21:25         ` Rafael J. Wysocki
2007-07-03 21:16     ` Benjamin Herrenschmidt
2007-07-03 16:03 ` Alan Stern
2007-07-03 16:05   ` Matthew Garrett
2007-07-03 16:57     ` Alan Stern
2007-07-03 17:02       ` Matthew Garrett
2007-07-03 19:33         ` Alan Stern
2007-07-03 19:42           ` Matthew Garrett
2007-07-03 19:54             ` Alan Stern
2007-07-03 20:23               ` Matthew Garrett
2007-07-04 23:33 ` Pavel Machek
2007-07-03  4:29 Matthew Garrett

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=200707042336.58466.rjw@sisk.pl \
    --to=rjw@sisk.pl \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=miklos@szeredi.hu \
    --cc=mjg59@srcf.ucam.org \
    /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