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