Re: MUSB, strange incoming URBs

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

 



On Wed, May 25, 2011 at 11:41 AM, Andrew V. Stepanov <andrusha@xxxxxxxxx> wrote:
> Hello.
>
> I have:
> 1. Davinci DM365 board.
> 2. WIFI USB adapter (carl9170).
> 3. 2.6.34 kernel + all commits for MUSB from
> http://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-davinci.git
>
> I do UDP streaming with packet size ~ 1450 bytes.
> But streaming speed is too low.
> CPU burns at 100% load.
>
> readprofile shows:
>
> readprofile | sort -nr -k 3 |head -n 10
>  6033 davinci_interrupt                          9,5459
>  1335 handle_IRQ_event                           4,8370
>  111 arm926_dma_clean_range                     3,9643
>  558 sub_preempt_count                          2,9062
>  185 memcmp                                     2,5694
>
> With musb_hdrc.debug=3 I have noticed strange messages:
>
> musb_host_tx 1268: DMA complete but packet still in FIFO, CSR 2003
> musb_ep_program 715: <-- hw2 urb c74c8180 spd3 dev2 ep2in h_addr00
> h_port00 bytes 8192
> musb_ep_program 715: --> hw4 urb c7686e80 spd3 dev2 ep4out h_addr00
> h_port00 bytes 60
> musb_start_urb 265: check whether there's still time for periodic Tx
> musb_host_tx 1268: DMA complete but packet still in FIFO, CSR 2103
>
> ...
>
> musb_ep_program 715: --> hw4 urb c77dbf00 spd3 dev2 ep4out h_addr00
> h_port00 bytes 12
> musb_start_urb 265: check whether there's still time for periodic Tx
> musb_ep_program 715: <-- hw2 urb c7662a80 spd3 dev2 ep2in h_addr00
> h_port00 bytes 8192
> musb_ep_program 715: <-- hw2 urb c7662f00 spd3 dev2 ep2in h_addr00
> h_port00 bytes 8192
> musb_ep_program 715: <-- hw2 urb c7662c80 spd3 dev2 ep2in h_addr00
> h_port00 bytes 8192
> musb_ep_program 715: <-- hw2 urb c7662000 spd3 dev2 ep2in h_addr00
> h_port00 bytes 8192
> musb_ep_program 715: <-- hw2 urb c7662800 spd3 dev2 ep2in h_addr00
> h_port00 bytes 8192
> ....
>
>
> Now my UDP streaming:
>
> musb_ep_program 715: --> hw2 urb c768b980 spd3 dev2 ep1out h_addr00
> h_port00 bytes 1502
> musb_ep_program 715: <-- hw2 urb c74c8f00 spd3 dev2 ep2in h_addr00
> h_port00 bytes 8192
> musb_ep_program 715: <-- hw2 urb c74c8780 spd3 dev2 ep2in h_addr00
> h_port00 bytes 8192
> musb_ep_program 715: --> hw2 urb c768b980 spd3 dev2 ep1out h_addr00
> h_port00 bytes 1502
> musb_ep_program 715: --> hw2 urb c768b980 spd3 dev2 ep1out h_addr00
> h_port00 bytes 1502
> musb_ep_program 715: <-- hw2 urb c74c8e00 spd3 dev2 ep2in h_addr00
> h_port00 bytes 8192
> musb_ep_program 715: <-- hw2 urb c74c8180 spd3 dev2 ep2in h_addr00
> h_port00 bytes 8192
> musb_ep_program 715: --> hw2 urb c768b980 spd3 dev2 ep1out h_addr00
> h_port00 bytes 1502
> musb_ep_program 715: --> hw2 urb c768b980 spd3 dev2 ep1out h_addr00
> h_port00 bytes 1502
> musb_ep_program 715: <-- hw2 urb c74bbb00 spd3 dev2 ep2in h_addr00
> h_port00 bytes 8192
> musb_ep_program 715: <-- hw2 urb c74bb500 spd3 dev2 ep2in h_addr00
> h_port00 bytes 8192
> musb_ep_program 715: --> hw2 urb c768b980 spd3 dev2 ep1out h_addr00
> h_port00 bytes 1502
> musb_ep_program 715: --> hw2 urb c768b980 spd3 dev2 ep1out h_addr00
> h_port00 bytes 1502
> musb_ep_program 715: <-- hw2 urb c74bbd80 spd3 dev2 ep2in h_addr00
> h_port00 bytes 8192
> musb_ep_program 715: <-- hw2 urb c768bd80 spd3 dev2 ep2in h_addr00
> h_port00 bytes 8192
> musb_ep_program 715: --> hw2 urb c768b980 spd3 dev2 ep1out h_addr00
> h_port00 bytes 1502
> musb_ep_program 715: --> hw2 urb c768b980 spd3 dev2 ep1out h_addr00
> h_port00 bytes 1502
>
>
>
> 1502 - is my ethernet frame.
> What is 8192 ?
>
>
> On another USB RT2870/RT3070 Wireless Adapter I got fine picture:
>
> musb_ep_program 715: --> hw2 urb c763c900 spd3 dev2 ep1out h_addr00
> h_port00 bytes 1496
> musb_ep_program 715: --> hw2 urb c763c900 spd3 dev2 ep1out h_addr00
> h_port00 bytes 1496
> musb_ep_program 715: --> hw2 urb c763c900 spd3 dev2 ep1out h_addr00
> h_port00 bytes 1496
> musb_ep_program 715: --> hw2 urb c763c900 spd3 dev2 ep1out h_addr00
> h_port00 bytes 1496
> musb_ep_program 715: --> hw2 urb c763c900 spd3 dev2 ep1out h_addr00
> h_port00 bytes 1496
> musb_ep_program 715: --> hw2 urb c763c900 spd3 dev2 ep1out h_addr00
> h_port00 bytes 1496
> musb_ep_program 715: --> hw2 urb c763c900 spd3 dev2 ep1out h_addr00
> h_port00 bytes 1496
> musb_ep_program 715: --> hw2 urb c763c900 spd3 dev2 ep1out h_addr00
> h_port00 bytes 1496
>


One IN URB consist from:

musb_advance_schedule 439: ... next ep2 RX urb c7697c00
musb_start_urb 251: qh c7707f00 urb c7697c00 dev2 ep2in-bulk, hw_ep 2,
c7744000/8192
musb_ep_program 715: <-- hw2 urb c7697c00 spd3 dev2 ep2in h_addr00
h_port00 bytes 8192
cppi_next_rx_segment 831: RX DMA1 seg, maxp 512 onepacket bds 1 (cnt
0) dma 0x87744000 len 512 0/8192
RXBD/S 87c65100: nxt 00000000 buf 87744000 off.blen 00000200 opt.plen e0000200
cppi_dump_rx 377: RX DMA1/S: 3 left, csr 0000, 00000000 H87c65100
S87c650e0 C87c650e0, B877420d8 L00d80128 000000d8 .. 87c650e0
musb_ep_program 893: RXCSR2 := 2020
davinci_interrupt 303: IRQ 00000000
cppi_interrupt 1172: CPPI IRQ Tx0 Rx2
cppi_dump_rx 377: RX DMA1/K: 0 left, csr 2200, 00000000 H00000000
S87c65100 C87c65100, B87744200 L02000000 00000200 .. 87c65100
cppi_rx_scan 1045: C/RXBD 87c65100: nxt 00000000 buf 87744000 off.len
00000200 opt.len d0000200 (0)
cppi_dump_rx 377: RX DMA1/completed: 0 left, csr 2200, 00000000
H00000000 S87c65100 C87c65100, B87744200 L02000000 00000200 ..
87c65100
cppi_next_rx_segment 831: RX DMA1 seg, maxp 512 onepacket bds 1 (cnt
0) dma 0x87744200 len 512 512/8192
RXBD/S 87c650e0: nxt 00000000 buf 87744200 off.blen 00000200 opt.plen e0000200
cppi_dump_rx 377: RX DMA1/S: 3 left, csr 2003, 00000000 H00000000
S87c650e1 C87c650e0, B8774428c L008c0174 0000008c .. 87c650e0
davinci_interrupt 303: IRQ 00000000
cppi_interrupt 1172: CPPI IRQ Tx0 Rx2
cppi_dump_rx 377: RX DMA1/K: 0 left, csr 2000, 00000000 H00000000
S87c650e0 C87c650e0, B8774428c L008c0174 0000008c .. 87c650e0
cppi_rx_scan 1045: C/RXBD 87c650e0: nxt 00000000 buf 87744200 off.len
0000008c opt.len d000008c (512)
cppi_dump_rx 377: RX DMA1/completed: 0 left, csr 2000, 00000000
H00000000 S87c650e0 C87c650e0, B8774428c L008c0174 0000008c ..
87c650e0
musb_host_rx 1483: <== hw 2 rxcsr 2000, urb actual 0 (+dma 652)
musb_giveback 324: complete c7697c00
carl9170_usb_rx_complete+0x0/0x17c [carl9170] (0), dev2 ep2in,
652/8192


What do this incoming URB with size 8192 bytes ?
--
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