From: Ming Lei <ming.lei@canonical.com>
To: Oliver Neukum <oneukum@suse.de>
Cc: "Bjørn Mork" <bjorn@mork.no>,
"David S. Miller" <davem@davemloft.net>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Jiri Kosina" <jkosina@suse.cz>,
"Alan Stern" <stern@rowland.harvard.edu>,
netdev@vger.kernel.org, linux-usb@vger.kernel.org,
linux-input@vger.kernel.org
Subject: Re: [PATCH 0/7] USB: don't recover device if suspend fails in system sleep
Date: Tue, 5 Mar 2013 22:03:06 +0800 [thread overview]
Message-ID: <CACVXFVMVqvye1edVmLECdrjip06Xd6YYJTPOU-nYut5qNGybwg@mail.gmail.com> (raw)
In-Reply-To: <2867446.m8zodPstBd@linux-5eaq.site>
On Tue, Mar 5, 2013 at 9:28 PM, Oliver Neukum <oneukum@suse.de> wrote:
> On Tuesday 05 March 2013 21:08:09 Ming Lei wrote:
>> On Tue, Mar 5, 2013 at 8:50 PM, Oliver Neukum <oneukum@suse.de> wrote:
>
>> > In other words, if we don't handle errors, there must be no errors,
>> > otherwise it doesn't matter what we do in the error case. We'd leave
>> > the problem to generic layers.
>>
>> Generic layers can't handle the driver's specific failure.
>
> We depend on stopping the HC forcing all devices into suspend.
> We know this is problematic. For example some disk enclosures
> need to flush cache. Fortunately for us this is done in the SCSI
> layer.
I mean only the driver can know its specific suspend failure
in its suspend callback, so it is reasonable to deal with it in its
resume() callback, suppose the policy to ignore suspend failure
isn't changed.
>
>> If driver records its suspend failure state in suspend(), resume()
>> should and can deal with it without much difficulty.
>
> Yes, but why bother? Either we can safely suspend in any state or
> we must not ignore errors.
In fact, for many drivers, its suspend() in system sleep just return 0,
for example, cdc_wcm/cdc_acm/hub, etc, so these drivers simply
ignore any failures from suspend() during system sleep.
For other drivers, if suspend() don't return success in system sleep,
it shouldn't try to recover the device, and its resume has to handle
the failure. Or do you have better approach? Suppose we keep
ignoring the suspend failure.
At least, I think URBs can't be submitted to device in its system
suspend failure path, which is generally one part of suspend
recovery for many usb drivers. Doing such recovery may confuse
resume() very much, and it is really wrong.
That is the inconsistency of handling system suspend between
usb drivers and usb core.
>
>> > Furthermore there is a small chance that although the device tree
>> > is walked, teh system suspend fails for another later reason that
>> > is not ignored. In that case the drivers need to do error recovery,
>> > albeit in resume().
>>
>> Yes, resume() need to handle the USB system suspend failure
>> either in normal resume or error recovery, both are basically same.
>
> In theory yes, in practice usually power is cut.
reset_resume() or rebind() can handle the power cut case, for example,
the suspend failure state can be ignored in reset_resume(), or rebind()
just forget previous suspend failure. Correct me if it is wrong.
Thanks,
--
Ming Lei
next prev parent reply other threads:[~2013-03-05 14:03 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-05 4:01 [PATCH 0/7] USB: don't recover device if suspend fails in system sleep Ming Lei
2013-03-05 4:01 ` [PATCH 1/7] USB: adds comment on suspend callback Ming Lei
2013-03-05 13:16 ` Ming Lei
[not found] ` <1362456103-24956-1-git-send-email-ming.lei-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
2013-03-05 4:01 ` [PATCH 2/7] USB: serial: handle suspend failure path correctly Ming Lei
2013-03-05 4:01 ` [PATCH 3/7] USBHID: don't recover device if suspend fails in system sleep Ming Lei
2013-03-05 4:01 ` [PATCH 4/7] usbnet: cdc_mbim: " Ming Lei
[not found] ` <1362456103-24956-5-git-send-email-ming.lei-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
2013-03-05 7:09 ` Bjørn Mork
2013-03-05 11:07 ` Ming Lei
2013-03-05 13:46 ` Bjørn Mork
2013-03-05 14:50 ` Ming Lei
2013-03-05 15:03 ` Bjørn Mork
2013-03-05 15:29 ` Ming Lei
2013-03-05 16:08 ` Bjørn Mork
[not found] ` <87wqtlommw.fsf-lbf33ChDnrE/G1V5fR+Y7Q@public.gmane.org>
2013-03-05 16:54 ` Alan Stern
2013-03-05 17:35 ` Bjørn Mork
2013-03-06 2:51 ` Ming Lei
2013-03-06 3:03 ` Ming Lei
[not found] ` <CACVXFVN=i10cVS3RQ7jGrJAfsC+r2t61z7XOVKWMAMqKKELZCg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-03-06 7:06 ` Bjørn Mork
2013-03-06 7:50 ` Ming Lei
2013-03-06 8:32 ` Bjørn Mork
2013-03-05 4:01 ` [PATCH 5/7] usbnet: smsc95xx: " Ming Lei
2013-03-05 4:01 ` [PATCH 6/7] usbnet: smsc75xx: " Ming Lei
2013-03-05 4:01 ` [PATCH 7/7] usbnet: qmi_wwan: " Ming Lei
[not found] ` <1362456103-24956-8-git-send-email-ming.lei-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
2013-03-05 7:09 ` Bjørn Mork
2013-03-05 12:27 ` Ming Lei
2013-03-05 5:14 ` [PATCH 0/7] USB: " Ming Lei
2013-03-05 7:03 ` Bjørn Mork
2013-03-05 10:55 ` Ming Lei
2013-03-05 12:50 ` Oliver Neukum
[not found] ` <3703451.5FViJ58GpZ-7ztolUikljGernLeA6q8OA@public.gmane.org>
2013-03-05 13:08 ` Ming Lei
2013-03-05 13:28 ` Oliver Neukum
2013-03-05 14:03 ` Ming Lei [this message]
2013-03-05 13:18 ` Bjørn Mork
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=CACVXFVMVqvye1edVmLECdrjip06Xd6YYJTPOU-nYut5qNGybwg@mail.gmail.com \
--to=ming.lei@canonical.com \
--cc=bjorn@mork.no \
--cc=davem@davemloft.net \
--cc=gregkh@linuxfoundation.org \
--cc=jkosina@suse.cz \
--cc=linux-input@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=oneukum@suse.de \
--cc=stern@rowland.harvard.edu \
/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;
as well as URLs for NNTP newsgroup(s).