Re: musb Rx DMA (Mentor) failure when one DMA receive is started before the previous completes (??)

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

 



On Mon, Jun 29, 2009 at 04:50:38AM +0200, ext Hugo Vincent wrote:
> Hi all,
> 
> I'm still seeing a problem with musb receive DMA crashing when large
> transfers happen in rapid succession.
> 
> I've narrowed it down to this test case: Pinging the OMAP over USB
> ethernet gadget, with large (64K) ping packets. At the start, the
> system is otherwise idle. If the interval is set higher than the ping
> time (i.e. 0.05 = 50ms in the first example), then it doesn't crash.
> If I reduce the interval of these packets to 20 ms (second example
> below), then start loading the system (increasing the ping time
> through 20 ms), I see the crash (log below). Alternately, decreasing
> the ping interval to 10 ms causes the crash after one packet.
> 
> desktop ~$ sudo ping -i 0.05 -s 65507 192.168.2.2
> PING 192.168.2.2 (192.168.2.2) 65507(65535) bytes of data.
> 65515 bytes from 192.168.2.2: icmp_seq=1 ttl=64 time=19.4 ms
> 65515 bytes from 192.168.2.2: icmp_seq=2 ttl=64 time=19.4 ms
> 65515 bytes from 192.168.2.2: icmp_seq=3 ttl=64 time=19.4 ms
> ...
> --> Does NOT crash
> 
> desktop ~$ sudo ping -i 0.02 -s 65507 192.168.2.2
> PING 192.168.2.2 (192.168.2.2) 65507(65535) bytes of data.
> 65515 bytes from 192.168.2.2: icmp_seq=1 ttl=64 time=19.5 ms
> 65515 bytes from 192.168.2.2: icmp_seq=2 ttl=64 time=19.3 ms
> 65515 bytes from 192.168.2.2: icmp_seq=3 ttl=64 time=19.3 ms
> ...
> --> Does crash, as soon as the system is loaded a bit such that the
> ping time would increase beyond 20 ms.

I haven't managed to make it crash, but musb rtl 1.4 has a hw problem
where it can't handle simultaneous dma transfers. You have to use one
channel at a time.

One way to work around this issue, is to allocate channel on a
per-request basis. I have some patches for that but they're not clean
enough to be sent out and they probably break blackfin that has some
other issues with mentor dma.

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