Re: [PATCH 2/2] usb: musb: musb_cppi41: revert to old timer poll intervals

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

 



On 11/11/2014 08:20 PM, Sebastian Reimers wrote:
> Hi Sebastian,
> Hi Daniel,
> 
> after some debugging the 25 microseconds loop only catches <1% of early_tx
> transfers (with your patch #1). Most of them are catched in the hrtimer (incl. re-loop) 
> between 30-60 microseconds. Any debug code suggestions to get reliable values? I`m
> not sure if my current affects timing.

protocol with trace_printk or measure max, min and avg with no output
and have a sysfs / debugfs file for output.

> With Daniels usb: musb: cppi41: tweak hrtimer
> values its better.
> The only negative is, that CPU usage is higher compared to PIO mode. 
> But maybe this is a restriction of DMA and smaller packet size.
> 
> cppi41_channel->total_len is 40 bytes.

It is higher because what happens now is very close to a busy loop. If
you take 40/10 => 4 so you setup your timer in 4us. There is the slack
of 20us but you see. And then you setup the next timer in 20us if I
remember correctly. Given the "normal" runtime of everything the system
has very little break between the reschedule.

You could measure the time with ktime_get() and compare the time you
need for setup DMA and "complete the DMA transfer" and compare it with
the time you need in PIO mode. Since it is "just" 40 bytes I would
assume that you might be better off without DMA. If so we could think
about rejecting DMA requests for transfers < x bytes and let PIO handle
it.

In USB-storage the protocol makes it possible to enqueue 16KiB as one
TX request where in PIO mode you would have to fill the FIFO 32 times.
You see the difference.

I've been browsing the manual and I don't see a possibility where I
could enqueue multiple DMA requests for one endpoint and then once the
first one completes, the next one would start on its own on the next
interval (in case of ISO). Then we could have relaxed poll interval ;)

> 48 kHz / 32 Bit - Stereo High Speed USB Host.

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