Re: pcmcia resume 60 second hang. Re: [patch 00/69] -stable review

From: Linus Torvalds
Date: Thu May 24 2007 - 18:12:51 EST




On Fri, 25 May 2007, Pavel Machek wrote:
> >
> > Equally arguably, we should just have a "resume_late()" call that can be
> > used to do this after everything is up and running.
>
> Yes, we can do that. But userland will see devices "not there" for a
> few seconds after boot.

No they won't.

Why the HELL cannot you realize that kernel threads are different?

The right thing to do is AND HAS ALWAYS BEEN, to stop and start user
threads only around the whole thing.

Don't touch those kernel threads. Stop freezing them.

Then, what you do is:
- stop user space
- suspend
- resume
- start user space

and at no point do you touch any kernel threads.

And yes, that "resume" part is multi-phase. We already have
"resume_early()" to do bus-level setup, and then "resume()" to do the
"make devices work". I was suggesting adding a "resume_late()" phase to
let the devices do things that require other devices to work, like doing
firmware loading.

But stopping kernel threads is STUPID. As long as we continue to do that,
it will never _ever_ work.

Yeah, we could re-start the kernel thread before "resume_late()", but the
fact is, they shouldn't have been stopped in the first place.

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