Re: request_firmware() hotplug interface, third round.

Oliver Neukum (oliver@neukum.org)
Sat, 17 May 2003 09:02:58 +0200


Am Samstag, 17. Mai 2003 06:50 schrieb David Gibson:
> On Sat, May 17, 2003 at 12:13:49AM +0200, Oliver Neukum wrote:
> > Am Freitag, 16. Mai 2003 18:09 schrieb Alan Cox:
> > > On Gwe, 2003-05-16 at 09:07, Oliver Neukum wrote:
> > > > So, if I understand you correctly, RAM is only saved if a device
> > > > is hotpluggable and needs firmware only upon intial connection.
> > > > Which, if you do suspend to disk correctly, is no device.
> > >
> > > Thats just because the interface is a little warped not the theory.
> > > On a resume you need to reload firmware and you already handle
> > > rediscovery on USB bus for example because the devices can change
> >
> > Right. But the order of resumption is fixed by hardware needs.
> > So during resumption you cannot use block devices and therefore
> > not start a hotplug script. Or did I miss something?
>
> For devices that aren't essentialy to get userspace running
> (e.g. network on a laptop running from local disk), the firmware
> request doesn't have to happen during the hairy part of resumption.

Not true for network cards. Somebody might be running NFS
over it. The problem is that you cannot tell (or rather shouldn't - it's
a layering violation).

Anything that is used for paging needs to be back to life before
you can think about resurrecting user space.
Also you need to bring keyboards back to life early to make
sysreq work.

Secondly, you need a way to get essential devices to work in
all cases. If you implement it, why not use it?

> The device could just mark itself as unusable at suspend time, then at
> resume it schedule_work()s something to reload the firmware and
> complete reinitialization. Shortly after userspace is back in action,
> the device will come back to life.

Is supposed to. You cannot put blind trust into that. You need to use
a pretty arbitrary timeout to deal with this.

I fail to see technical improvements here.

Regards
Oliver

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/