Re: bug in ehci-hcd unlink speedups

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Geoff,

Thanks for letting us know about the problem.
Sorry for such a late responce.

Geoff Levand wrote:
> The commit 'USB: ehci-hcd unlink speedups' has a problem on PS3, and
> I guess other Cell based systems using the USB controller in the
> Toshiba Cell Super Companion Chip (SCC).

We examined what caused the problem, however we were not able to
reproduce the problem on SCC. We used a configuration with CONFIG_PM=y
and CONFIG_USB_SUSPEND=y. It seems that the problem may be caused
by connected device or its usage but not caused by SCC.

> The problem is caused by the change below.
> 
> It seems the frame_index register of the SCC does not increment when the
> USB device is idle, so the system often gets into a state where start_unlink_async()
> is not called, leaving the async timer continually being re-enabled via
> the 'action = TIMER_ASYNC_SHRINK' path.

It seems the problem is not unique to SCC. We have also tested on x86
PC with ICH10 USB2 ECHI controller and got the same problem. The
frame_index register does not increment at the idle state.

> This also causes the BUG below when the system shuts down.  It seems to
> be because there are still a few unlinked entries in qh->qtd_list
> that qh_destroy() tests for.

It seems there are two possibe causes. The one is that USB device
changed to idle state when the queue is not empty. The other one is
USB device does not return to running state when a new request comes
at idle state.

-- Yoshi
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux