public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
From: Kay Sievers <kay.sievers@vrfy.org>
To: Michael-Luke Jones <mlj28@cam.ac.uk>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>,
	LKML <linux-kernel@vger.kernel.org>, Pavel Machek <pavel@ucw.cz>,
	pm list <linux-pm@lists.linux-foundation.org>
Subject: Re: [RFC][PATCH -mm 3/3] PM: Disable _request_firmware before hibernation/suspend
Date: Mon, 28 May 2007 14:47:19 +0200	[thread overview]
Message-ID: <1180356439.4242.95.camel@lov.localdomain> (raw)
In-Reply-To: <BDEF3C8A-D237-44C4-84E0-2218DFAE0E77@cam.ac.uk>

On Mon, 2007-05-28 at 13:26 +0100, Michael-Luke Jones wrote:
> On 28 May 2007, at 12:51, Kay Sievers wrote:
> 
> > Either the whole idea of userspace firmware-loading should be  
> > considered
> > as a problem impossible to do right because of its unsolvable side
> > effects. Or at least releasing loaded firmware should be the exception
> > for drivers which can be sure, that the firmware is not needed in
> > situations we try to work around here.
> 
> I don't believe that it is impossible. What is needed is some  
> thought, and maybe a loose spec.

Hehe, let's see. :)

> We need to think about safe ways of solving a simple problem: what to  
> do when userspace is unable to respond to a kernel uevent request. We  
> now have a timeout, whether it be handled synchronously or in the  
> background. I don't think either solution is good enough.
> 
> [RFC] Possible Plan:
> 
> 1) request_firmware() should stick around unmodified but be marked  
> __deprecated.
> 
> 2) request_firmware_nowait() as it stands should probably be removed.  
> After all, it only has 2 in-kernel users at the moment.

We should probably leave the whole firmware class alone, add something
new, and convert the current users. 

> 3) uevent interface should be notified when userspace handlers are /  
> are not available so that events can be queued to be handled when  
> userspace does turn up and re-register a hotplug event handler.

Uevents are queued by the netlink socket buffer. If userspace can't
receice them (udevd) while it's frozen, they will just be handled (in
the right order) when userspace runs again. We can queue up thousands of
events, and it should already work that way for a long time now.

> 4) request_firmware_async() introduced: asynchronous firmware loading  
> interface built on basis of 3, such that problems at early boot and  
> suspend / resume are avoided. Also request_firmware_async() taught to  
> retain firmware in memory by default such that subsequent calls do  
> not require a call to userspace if userspace is unavailable.

Something like this makes sense, yes.

> 6) Documentation on correct firmware loading behaviour for driver  
> authors written, together with migration notes for existing users of  
> request_firmware().
> 
> 7) Existing uses of request_firmware() converted.
> 
> *Grumble ahead*
> Unfortunately, I don't properly understand the uevent interface, so  
> some of the above may be inaccurate.

The event emission in the kernel and the userspace side is probably
fine. Two years ago, benh already run into exactly the same suspend
problems, and I think I addressed the problems on the uevent side.

> This is *not* my fault as there  
> is no decent documentation (and btw, telling me to write the  
> documentation is not the answer to that problem).

Sure, we always need at least one working example before we can even
tell what's the right way to do it. :)

Kay

  reply	other threads:[~2007-05-28 12:47 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200705272229.21263.rjw@sisk.pl>
2007-05-27 20:30 ` [RFC][PATCH -mm 1/3] PM: Hibernation and suspend notifiers Rafael J. Wysocki
2007-05-27 20:30 ` [RFC][PATCH -mm 2/3] PM: Disable usermode helper before hibernation/suspend Rafael J. Wysocki
2007-05-27 20:31 ` [RFC][PATCH -mm 3/3] PM: Disable _request_firmware " Rafael J. Wysocki
     [not found] ` <200705272230.04478.rjw@sisk.pl>
2007-05-28  9:49   ` [RFC][PATCH -mm 1/3] PM: Hibernation and suspend notifiers Nigel Cunningham
2007-05-28 13:12   ` Pavel Machek
2007-05-28 17:26     ` Rafael J. Wysocki
2007-05-28 15:56   ` Alan Stern
2007-05-28 17:29     ` Rafael J. Wysocki
2007-05-29 22:24     ` Rafael J. Wysocki
     [not found]     ` <200705300024.32455.rjw@sisk.pl>
2007-05-30 15:37       ` Pavel Machek
     [not found]       ` <20070530153740.GA4772@ucw.cz>
2007-05-30 20:44         ` Rafael J. Wysocki
     [not found]         ` <200705302244.25927.rjw@sisk.pl>
2007-05-30 21:11           ` Rafael J. Wysocki
     [not found]           ` <200705302311.40123.rjw@sisk.pl>
2007-05-30 22:24             ` Nigel Cunningham
2007-05-31  5:44               ` Rafael J. Wysocki
     [not found]               ` <200705310744.44488.rjw@sisk.pl>
2007-05-31 14:23                 ` Pavel Machek
     [not found]                 ` <20070531142357.GK27309@elf.ucw.cz>
2007-05-31 20:02                   ` Rafael J. Wysocki
2007-05-31 21:56                     ` Nigel Cunningham
2007-05-30 22:29             ` Pavel Machek
     [not found]             ` <20070530222956.GD27309@elf.ucw.cz>
2007-05-31  5:42               ` Rafael J. Wysocki
     [not found] ` <200705272230.56863.rjw@sisk.pl>
2007-05-28 13:04   ` [RFC][PATCH -mm 2/3] PM: Disable usermode helper before hibernation/suspend Pavel Machek
     [not found] ` <200705272231.54535.rjw@sisk.pl>
2007-05-27 20:45   ` [RFC][PATCH -mm 3/3] PM: Disable _request_firmware " Michael-Luke Jones
2007-05-27 20:49   ` Matthew Garrett
     [not found]   ` <20070527204955.GA22202@srcf.ucam.org>
2007-05-27 21:45     ` Rafael J. Wysocki
2007-05-27 21:49     ` Kay Sievers
     [not found]     ` <3ae72650705271449q37f523c3t5980541122ab871@mail.gmail.com>
2007-05-27 22:01       ` Rafael J. Wysocki
2007-05-27 22:04       ` Matthew Garrett
     [not found]       ` <20070527220412.GC22687@srcf.ucam.org>
2007-05-27 22:16         ` Kay Sievers
     [not found]         ` <1180304166.3131.66.camel@lov.localdomain>
2007-05-28  7:43           ` Rafael J. Wysocki
2007-05-28  8:48             ` Michael-Luke Jones
2007-05-28  9:06               ` Kay Sievers
2007-05-28 10:26                 ` Michael-Luke Jones
2007-05-28 12:01                   ` Kay Sievers
2007-05-28 12:07                     ` Michael-Luke Jones
2007-05-28 10:41                 ` Michael-Luke Jones
2007-05-29 21:19                 ` Rob Landley
2007-05-29 22:51               ` Rob Landley
2007-05-30 19:50                 ` Pavel Machek
2007-05-28 11:15             ` Pavel Machek
2007-05-28 11:24               ` Kay Sievers
2007-05-28 11:28                 ` Pavel Machek
2007-05-28 11:38                 ` Michael-Luke Jones
2007-05-28 11:45                   ` Pavel Machek
2007-05-28 11:51                   ` Kay Sievers
2007-05-28 12:26                     ` Michael-Luke Jones
2007-05-28 12:47                       ` Kay Sievers [this message]
2007-05-28 13:00                       ` Pavel Machek
2007-05-28 13:10                         ` Michael-Luke Jones
2007-05-28 11:28               ` Rafael J. Wysocki
     [not found]     ` <200705272345.04518.rjw@sisk.pl>
2007-05-27 22:01       ` Matthew Garrett
     [not found]       ` <20070527220158.GB22687@srcf.ucam.org>
2007-05-28  7:44         ` Rafael J. Wysocki
2007-05-28 16:09         ` Alan Stern
2007-05-28 16:12           ` Matthew Garrett
2007-05-28 16:43             ` Alan Stern
2007-05-28 16:54               ` Matthew Garrett
2007-05-28 20:03                 ` Alan Stern
2007-05-28 20:57               ` Pavel Machek
2007-05-28 22:29                 ` Alan Stern
     [not found]                 ` <Pine.LNX.4.44L0.0705281719200.10323-100000@netrider.rowland.org>
2007-05-29 20:09                   ` David Brownell
2007-06-04 11:00                   ` Pavel Machek
2007-05-28  8:30       ` Nigel Cunningham
2007-05-28 11:22         ` Rafael J. Wysocki
     [not found]   ` <6BD5252F-96CD-49D9-86C7-18115294D913@cam.ac.uk>
2007-05-27 21:55     ` Rafael J. Wysocki
2007-05-28 13:01     ` Pavel Machek
2007-05-29 20:41     ` Rob Landley
2007-05-28 13:07   ` Pavel Machek
2007-05-28 15:55   ` Alan Stern
2007-05-28 17:43     ` Rafael J. Wysocki
2007-05-28 20:51       ` Ray Lee
2007-05-28 20:59         ` Pavel Machek
2007-06-02  0:41 ` [RFC][PATCH -mm 0/2] PM: Hibernation and suspend notifiers (rev. 2) Rafael J. Wysocki
     [not found] ` <200706020241.53788.rjw@sisk.pl>
2007-06-02  0:43   ` [RFC][PATCH -mm 1/2] PM: Introduce hibernation and suspend notifiers Rafael J. Wysocki
2007-06-02  0:44   ` [RFC][PATCH -mm 2/2] PM: Disable usermode helper before hibernation and suspend Rafael J. Wysocki
     [not found]   ` <200706020243.20117.rjw@sisk.pl>
2007-06-03 16:41     ` [RFC][PATCH -mm 1/2] PM: Introduce hibernation and suspend notifiers Pavel Machek
     [not found]     ` <20070603164143.GB4093@ucw.cz>
2007-06-03 22:38       ` Rafael J. Wysocki
     [not found]       ` <200706040038.54161.rjw@sisk.pl>
2007-06-03 22:59         ` Pavel Machek
     [not found]         ` <20070603225903.GC2971@elf.ucw.cz>
2007-06-04  7:56           ` Rafael J. Wysocki
     [not found]   ` <200706020244.50180.rjw@sisk.pl>
2007-06-03 16:42     ` [RFC][PATCH -mm 2/2] PM: Disable usermode helper before hibernation and suspend Pavel Machek
     [not found] <20070604110052.GI4363@elf.ucw.cz>
2007-06-05 18:45 ` [RFC][PATCH -mm 3/3] PM: Disable _request_firmware before hibernation/suspend Alan Stern
     [not found] ` <Pine.LNX.4.44L0.0706051420351.2606-100000@iolanthe.rowland.org>
2007-06-05 20:26   ` Pavel Machek

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=1180356439.4242.95.camel@lov.localdomain \
    --to=kay.sievers@vrfy.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=mjg59@srcf.ucam.org \
    --cc=mlj28@cam.ac.uk \
    --cc=pavel@ucw.cz \
    /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