Re: When will the lunacy end? (Was Re: [PATCH] uswsusp: addpmops->{prepare,enter,finish} support (aka "platform mode"))

From: Andrew Morton
Date: Mon Sep 25 2006 - 20:23:09 EST


On Tue, 26 Sep 2006 01:21:51 +0200
Pavel Machek <pavel@xxxxxx> wrote:

> Hi!
>
> On Mon 2006-09-25 16:06:48, Andrew Morton wrote:
> > On Tue, 26 Sep 2006 00:45:00 +0200
> > Pavel Machek <pavel@xxxxxx> wrote:
> >
> > > Anyways this boils down to "find which drivers are delaying suspend
> > > and fix them".
> >
> > The first step would be "find some way of identifying where all the time is
> > being spent".
> >
> > Right now, netconsole gets disabled (or makes the machine hang) and most of
> > these machines don't have serial ports and the printk buffer gets lost
> > during resume.
> >
> > The net result is that the machine takes a long time to suspend and resume,
> > and you don't have a clue *why*.
> >
> > And this is a significant issue, IMO. In terms of
> > niceness-of-user-interface, being able to suspend in twelve seconds instead
> > of twenty seven rates fairly highly...
>
> Your machines spend 15 seconds in drivers? Ouch, I did not realize
> _that_.
>
> (My machine suspends in 7 seconds, perhaps 2-3 of that are playing
> with drivers, so I just failed to see where the problem is).
>
> Are these your big SMP servers? Any SCSI involved?

It's my long-suffering Vaio laptop.

> Rafael has "fakesuspend" patches somewhere, but you can probably just
> swapoff -a, then echo disk > /sys/power/state. If you are lucky, that
> should be slow, too... fortunately you'll have useful dmesg buffer
> when you are done. CONFIG_PRINTK_TIMING or something, and you should
> have enough clues...?

That would help.

> 15 seconds spend within drivers is definitely _not_ okay.

I assumed it was the same for everyone else ;)
-
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/