Re: High CPU load produced by USB (DW2)

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

 



Hi Paul,

Nice to hear you  again! Hope you are doing well.

On 3/8/2018 1:51 PM, Paul Zimmerman wrote:
> On 03/06/2018 09:09 AM, Minas Harutyunyan wrote:
>> Hi,
>>
>> On 3/6/2018 10:45 AM, Minas Harutyunyan wrote:
>>> Hi,
>>>
>>> On 3/5/2018 11:14 PM, Marek Vasut wrote:
>>>> On 02/20/2018 06:51 AM, Minas Harutyunyan wrote:
>>>> [...]
>>>>>>>> Is there a way to reduce that or is that the absolute minimum in HS mode?
>>>>>>>>
>>>>>>> We already discussed, in this email thread earlier, why SOF interrupts
>>>>>>> required and unmasked.
>>>>>>> Only in case when connected device with CTRL+BLK EP's only (like flash
>>>>>>> drive) and directly connected to cores root HUB, SOF's will be masked.
>>>>>>
>>>>>> That's the setup I have on Altera SoCFPGA, yet the SOFs are still present.
>>>>>>
>>>>> Could you please send verbose lsusb on connected to dwc2 device
>>>>
>>>> See attached
>>>>
>>>>> and driver debug log.
>>>>
>>>> What exactly do you mean by this one ?
>>> Enable debugging messages and verbose debugging messages for dwc2 from
>>> make menuconfig. Provide dmesg starting from dwc2 load till HS device
>>> connected to dwc2 port and enumerated.
>>>
>>> Thanks,
>>> Minas
>>>
>> Driver debug log not required.
>> Based on lsusb output: to dwc2 port connected "Standard Microsystems
>> Corp. USB 2.0 Hub" to which connected your HS device "SanDisk Corp.
>> Ultra". Because of connected HUB, which have periodic endpoint
>> (Interrupt IN EP1) like all HUB's, dwc2 forced in Buffer DMA mode unmask
>> SOF interrupts.
> 
> Hmm. It seems to me that for hubs, where the interrupt EP is only used to
> poll for connection changes (so the accuracy of the polling interval is not
> important), an OS timer could be used instead of enabling SOF interrupts.
> 
> I have a Raspberry Pi 3 around here somewhere, maybe I'll dig it out and
> try playing around with this idea. No promises though!
> 

As I correctly understand, you suggest to mask SOF's and schedule in 
dwc2 timer with expiration time 125us*interval. Based on timer 
expiration get first urb from periodic queue and start transfer on 
Interrupt IN EPn. In this case interrupt count will be decreased by 
'interval' times. But how you going to recognized inside dwc2 that this 
Interrupt IN EPn is HUB endpoint or not?

Thanks,
Minas
--
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