Re: Problems with suspend and USB storage

From: Alan Stern
Date: Thu May 15 2008 - 15:58:23 EST


On Thu, 15 May 2008, Rafael J. Wysocki wrote:

> On Thursday, 15 of May 2008, Bill Nottingham wrote:
> >
> > I've been testing suspend/hibernate with various USB devices under
> > 2.6.25.2. Test box is a Thinkpad T60 (uhci, ehci).
> > The results are somewhat dismal.
> >
> > Using USB as a hibernate device:
> > - A directly connected USB stick works OK as a hibernate device
> > - A directly connected USB hard drive works OK as a hibernate device
> > - A USB stick connected via an ExpressCard reader does not - it appears
> > to just not be there when the hibernate code attemps to write
> > the data.
> >
> > On resume (from either hibernate or suspend from RAM):
> > - Any 'in use' USB storage, whether it be as swap (a hibernate device),
> > or a mounted filesystem, immediately generates errors on resume. It
> > appears the filesystem and/or swap tasks are woken up before the
> > actual USB device - it enumerates the disks after the errors have
> > already been thrown.
> > - As a consequence, the USB devices shift their device names
> > - Using USB_PERSIST has no effect on this problem
> > - This appears to happen for all USB connection types (hard drive,
> > stick, via ExpressCard reader.)
> >
> > Is there any way to get sane behavior out of suspend/resume with
> > USB storage?
>
> Well, the problem is that USB storage devices are disconnected during suspend
> and hibernation and connected once again during resume. Then, however, we
> are not able to tell whether the device in the slot is the same that was in
> there before the system was put into the sleep state.
>
> I'm not sure if there's any workaround available in the current mainline.

You can try applying one of the gregkh-04-usb-* patches at

http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/

They include changes to the way hub-resume handling works, as well as
more debugging output. Be sure to enable CONFIG_USB_DEBUG and post the
relevant dmesg log.

Alan Stern

--
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/