DWC OTG TX path optimisation for 11-current

Hans Petter Selasky hps at selasky.org
Fri Jul 31 07:55:56 UTC 2015


On 07/31/15 05:52, Andreas Schwarz wrote:
> On 31.07.15, Andreas Schwarz wrote:
>> On 30.07.15, Hans Petter Selasky wrote:
>>> On 07/29/15 21:41, Andreas Schwarz wrote:
>>>> On 29.07.15, Hans Petter Selasky wrote:
>>>>
>>>>> On 07/29/15 17:45, John-Mark Gurney wrote:
>>>>>> Just for your information, when I start buildworld, the system
>>>>>>> responds very fast (console, ssh). After about one hour, it starts to
>>>>>>> print the following warnings:
>>>>>
>>>>> Did this happen before r285935 aswell or only after this revision?
>>>>
>>>> This will happen since ~r283xxx, there are some reports in this ml,
>>>> have a look at my post from 2015-06-03.
>>>>
>>>
>>> If this is easy to reproduce for you, can you try the SMSC patch I made?
>>
>> It's not so easy to reproduce, it will occur under high load (and disk IO)
>> situations, e.g.when building the world (-j4). But not in every case,
>> sometimes buildworld complete without a problem.
>>
>> If the system is in this state, it will react very very slow. System load
>> is high (without a causing process) and it will often hang (during shutdown)
>> when performing a reboot.
>>
>> I'll try your patch.
>
> This was fast. Patch (smsc.diff) did not help. I've applied the patch, compiled and
> installed the new kernel and started to build the kernel tool-chain. Just 10 minutes
> ago the problem occur again.
>

Hi,

Can you try this patch separately from the attached one?

> Index: sys/dev/usb/controller/dwc_otg.c
> ===================================================================
> --- sys/dev/usb/controller/dwc_otg.c	(revision 286002)
> +++ sys/dev/usb/controller/dwc_otg.c	(working copy)
> @@ -579,6 +579,9 @@
>  	sc->sc_irq_mask |= GINTMSK_RXFLVLMSK;
>  	DWC_OTG_WRITE_4(sc, DOTG_GINTMSK, sc->sc_irq_mask);
>
> +	/* clear RX FIFO level interrupt */
> +	DWC_OTG_WRITE_4(sc, DOTG_GINTSTS, GINTSTS_RXFLVL);
> +
>  	/* clear cached status */
>  	sc->sc_last_rx_status = 0;
>  }

The attached patch will add some more debug prints so that I know what 
is going on in the problematic function. You'll need to C&P me the 
resulting console prints.

--HPS

-------------- next part --------------
A non-text attachment was scrubbed...
Name: dwc_otg.diff
Type: text/x-diff
Size: 1882 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-arm/attachments/20150731/a07e18dc/attachment.bin>


More information about the freebsd-arm mailing list