On 12/02/2011 03:09 PM, Aman Deep wrote: > Hi Sarah, > > My ARM board has an xHCI controller on it. > I have installed linux-2.6.35.12 on it. > > Observations: > ========== > When i connect USB Wifi dongle, I see the following phenomenon: > "ERROR no room on ep ring" message comes in the dmesg several > times(around a 100 times) and eventually > the kernel crashes. > I see that the TRBS_PER_SEGMENT #define is defined to 64. > When I change it to 256, I don't see this crash works fine. > > > When TRBS_PER_SEGMENT = 64, I see the following kernel messages: > xhci-sdp xhci-sdp.0: ERROR no room on ep ring > [ 261.072000] xhci-sdp xhci-sdp.0: ERROR no room on ep ring > [ 261.072000] Unable to handle kernel NULL pointer dereference at > virtual address 000000d3 EP ring may be full with current driver, but should not result in a NULL pointer dereference. Have you tried latest stable kernel? > [ 261.072000] pgd = c0004000 > [ 261.072000] [000000d3] *pgd=00000000 > [ 261.072000] ================================================================================ > [ 261.072000] SMP Send Stop Other CPU! > [ 261.072000] ================================================================================ > [ 261.072000] ================================================================================ > [ 261.072000] CPU1: stopping > [ 261.072000] KERNEL Version : 0070 > [ 261.072000] ================================================================================ > [ 261.072000] -------------------------------------------------------------------------------------- > [ 261.072000] [VDLP] DISPLAY PC, LR in KERNEL Level > [ 261.072000] pc:c03b02cc, ra:c03b0294 > [ 261.072000] -------------------------------------------------------------------------------------- > [ 261.072000] PC meminfo in kernel(0xc03b0298 to 0xc03b02cc) > [ 261.072000] 0280: > e3c23d7f e3c3303f > [ 261.072000] 02a0: e5933000 e3130002 0a000000 ebffec2d e3550000 > 1a00009e e1a0100d e3c13d7f > [ 261.072000] 02c0: e3c3303f e593600c e5931004 e596a0cc > [ 261.072000] -------------------------------------------------------------------------------------- > [ 261.072000] LR meminfo in kernel(0xc03afa94 to 0xc03b0294) > [ 261.072000] fa80: > 0a0000e4 e59f1518 e0031001 > [ 261.072000] faa0: e37106bb 05921000 03c3380f 05813000 059f3504 > 0a000133 e20304fe e35004fa > [ 261.072000] fac0: 059f34f8 0a000084 e3c31cff e59fc4f0 e3c1100f > e151000c 0a000003 e59f14e4 > [ 261.072000] fae0: e0031001 e35104fe 1a000001 e5921000 ea00011b > e1a01aa3 e1a01a81 e371050f > [ 261.072000] fb00: 0a000104 e350033f e5921000 1a000117 e3c3380f > e5813000 e59f34ac e2800341 > [ 261.072000] fb20: e5823004 e89da878 e210540e 1a000079 e59fc498 > e000c00c e35c0401 1a00001e > [ 261.072000] fb40: e59fc48c e59f448c e000c00c e15c0004 0a0000b5 > e59fc480 e000c00c e35c0612 > [ 261.072000] fb60: 0a0000b1 e59fc474 e000c00c e35c0401 05911000 > 03c03a0f 05813000 059f3460 > [ 261.072000] fb80: 0a000100 e59fc45c e59fe45c e000c00c e15c000e > 0a0000ae e59fe450 e59f4450 > [ 261.072000] fba0: e000e00e e15e0004 0a0000b9 e59fe444 e15c000e > 1a0000b4 ea0000b5 e59fc438 > [ 261.072000] fbc0: e59f5438 e000c00c e15c0005 1a000015 e59fc42c > e59f542c e000c00c e15c0005 > [ 261.072000] fbe0: 0a000091 e59fc420 e59f5420 e000c00c e15c0005 > 1a000005 e5913000 e384463a > [ 261.072000] fc00: e3844001 e5834000 e59f3404 ea0000dd e59f23bc > e59f33fc e0002002 e1520003 > [ 261.072000] fc20: 1a000077 ea000074 e59fc3ec e000c00c e35c0090 > 1a000007 e59f23e0 e0002002 > [ 261.072000] fc40: e3520090 0a000094 e59f33d4 e1520003 1a00007f > ea00008c e59fc3c8 e000c00c > [ 261.072000] fc60: e35c0090 1a000013 e59fc36c e59f43b8 e000c00c > e15c0004 0a000061 e59fc3ac > [ 261.072000] fc80: e000c00c e35c00d0 1a000088 e3c03aff e5911000 > e3833a02 e3130501 13c3300f > [ 261.072000] fca0: 13833001 e5813000 e3130020 e59f1380 e59f3380 > ea0000b2 e59f137c e0001001 > [ 261.072000] fcc0: e59f0378 e1510000 0a000057 e59f1370 e1530001 > 1a000003 e59f3368 e5823004 > [ 261.072000] fce0: e3a00002 e89da878 e3c33aff e5921000 e3c3300f > e3833001 e3130010 13c33c0f > [ 261.072000] fd00: 13833c02 e5813000 e3130601 e59f1338 e59f3338 > ea00009a e3550402 1a00000b > [ 261.072000] fd20: e59f1314 e0001001 e59f0324 e1510000 0a00003d > e5921000 e3c30aff e3130601 > [ 261.072000] fd40: e59f3310 e5810000 e59f130c ea00008c e59fc308 > e59f6308 e000c00c e15c0006 > [ 261.072000] fd60: 1a000029 e59fc268 e59f42f8 e000c00c e15c0004 > 1a000006 e5911000 e3c03aff > [ 261.072000] fd80: e3c3300f e3833001 e5813000 e59f32d8 ea00007c > e59f42d4 e59f52d4 e0004004 > [ 261.072000] fda0: e1540005 0a000004 e59f422c e2855020 e0004004 > e1540005 1a000005 e5921000 > [ 261.072000] fdc0: e3c33a0f e3c3300f e5813000 e59f32a4 ea00006c > e59fe2a0 e59f42a0 e000e00e > [ 261.072000] fde0: e15e0004 0a000002 e59fe294 e15c000e 1a000003 > e1a00003 e1a01002 ebfffeba > [ 261.072000] fe00: e89da878 ebfffec6 e89da878 e59f6274 e15c0006 > 1a000022 e59f41b4 e59f5268 > [ 261.072000] fe20: e0004004 e1540005 1a000001 e3a00000 e89da878 > e59fe254 e154000e 0a000012 > [ 261.072000] fe40: e59fe1a0 e59f4248 e000e00e e15e0004 1a000001 > ebfffee2 e89da878 e15e000c > [ 261.072000] fe60: 0a000007 e59f11a0 e0001001 e59f0224 e1510000 > 0a000002 e28000c0 e1510000 > [ 261.072000] fe80: 1a000003 e1a00003 e1a01002 ebfffec3 e89da878 > e1a00003 e1a01002 ebfffeaf > [ 261.072000] fea0: e89da878 e2006303 e3560301 1a000001 ebfffe75 > e89da878 e3550302 1a00000a > [ 261.072000] fec0: e5911000 e384463a e2003942 e3844001 e59f01c4 > e3530902 e5814000 e59f11bc > [ 261.072000] fee0: 01a03000 11a03001 ea000026 e355040a 1a000005 > e5913000 e384463a e3844001 > [ 261.072000] ff00: e5834000 e59f3198 ea00001e e20016fe e3510531 > 1a000007 e5921000 e3c33aff > [ 261.072000] ff20: e3833a01 e3130601 e5813000 e59f3174 e59f1174 > ea000012 e59f10c4 e0001001 > [ 261.072000] ff40: e59f00c0 e1510000 0a000011 e203140f e351040f > 0a00000e e35c040e e5921000 > [ 261.072000] ff60: 1a000002 e5813000 e59f3140 ea000005 e3c30a0f > e3130601 e5810000 e59f3130 > [ 261.072000] ff80: e59f105c 11a03001 e5823004 e3a00001 e89da878 > e3a00000 e89da878 e1a0f00e > [ 261.072000] ffa0: fff30020 f1020000 fe500f00 f8100a00 fe5f0f00 > f84d0500 fd700000 c03af4cc > [ 261.072000] ffc0: c03af02c f1010000 ff000010 c03af124 0f900010 > 0ff000f0 01200020 0fb000f0 > [ 261.072000] ffe0: 0fb00010 c03af45c 0ff00090 01400080 0ff000b0 > 012000a0 01600080 0f900090 > [ 261.072000] 0000: 01000010 fff000f0 e1200070 0ff000d0 01200010 > c03af08c 01600010 0f000090 > [ 261.072000] 0020: 0fe000f0 00200090 0e000090 01000090 0e1000d0 > c03af1b8 c03af160 0e10f000 > [ 261.072000] 0040: 0010f000 e1a0c00d c03af104 c03af808 c03af7a0 > 0210f000 c03af6ec c03af738 > [ 261.072000] 0060: 0f000010 06000010 068000b0 c03af3e4 0fa00030 > 06a00010 c03af38c 0ff00070 > [ 261.072000] 0080: 06b00030 06f000b0 07000010 03f000f0 07800010 > 07400010 07500010 c03b01a0 > [ 261.072000] 00a0: c03b00b8 c03aefc0 c03af34c c03af308 c03af430 > c03af494 e1a0c00d e92dddf0 > [ 261.072000] 00c0: e24cb004 e52de004 ebf23527 e5903030 e5906034 > e3a00000 e7e32853 e203c601 > [ 261.072000] 00e0: e5915040 e7914102 e12cf005 e1a0e00f e1a0f006 > e3500000 089dadf0 e1a00803 > [ 261.072000] 0100: e3a05000 e1a00820 e1a06000 ea000002 e2467001 > e2855001 e0066007 e3560000 > [ 261.072000] 0120: 1afffffa e2138502 e7e07c53 00444105 e2788001 > 33a08000 e0287007 e1a07107 > [ 261.072000] 0140: e0844007 ea00000a e2606000 e0066000 e16f6f16 > e35c0000 e266601f 1514a004 > [ 261.072000] 0160: 07916106 1781a106 05046004 e2406001 e0000006 > e3500000 e2844004 e2446004 > [ 261.072000] 0180: 1afffff0 e3130602 089dadf0 e3580000 10466105 > e0676006 e7816102 e89dadf0 > [ 261.072000] 01a0: e1a0c00d e92dd830 e24cb004 e52de004 ebf234ed > e1a04000 e5902034 e1a05001 > [ 261.072000] 01c0: e5913040 e3a00000 e12cf003 e1a0e00f e1a0f002 > e3500000 089da830 e59f3024 > [ 261.072000] 01e0: e1a00004 e5942014 e5933000 e0823003 e581303c > ebffffaf e5943014 e2833004 > [ 261.072000] 0200: e585303c e89da830 c0501a30 e1a0c00d e92ddff0 > e24cb004 e24dd064 e52de004 > [ 261.072000] 0220: ebf234d1 e50be078 e5923040 e1a07000 e1a09001 > e1a04002 e313000f 0a00001d > [ 261.072000] 0240: e3a00001 eb000123 e1a0100d e3c12d7f e3c2203f > e59f32e4 e5921014 e59f22e0 > [ 261.072000] 0260: e7922101 e7933002 e3530000 0a000005 e1a00004 > e1a01009 ebfffa32 e3500000 > [ 261.072000] 0280: 13a05001 1a000000 e3a05000 e3a00001 eb0000f6 > e1a0200d > [ 261.072000] -------------------------------------------------------------------------------------- > [ 261.072000] > [ 261.072000] Internal error: Oops: 17 [#1] PREEMPT SMP > [ 261.072000] last sysfs file: /sys/devices/virtual/net/bcm0/address > [ 261.072000] Modules linked in: > [ 261.072000] hid_microsoft(0xbf3e4000) kernel version : 0070 SMP > preempt mod_unload ARMv7 > [ 261.072000] mousedev(0xbf3db000) kernel version : 0070 SMP preempt > mod_unload ARMv7 > [ 261.072000] evdev(0xbf3d4000) kernel version : 0070 SMP preempt > mod_unload ARMv7 > [ 261.072000] usbhid(0xbf3c4000) kernel version : 0070 SMP preempt > mod_unload ARMv7 > [ 261.072000] dhd(0xbf331000) kernel version : 0070 SMP preempt > mod_unload ARMv7 > [ 261.072000] ftdi_sio(0xbf31e000) kernel version : 0070 SMP preempt > mod_unload ARMv7 > [ 261.072000] usbserial(0xbf30e000) kernel version : 0070 SMP > preempt mod_unload ARMv7 > [ 261.072000] usb_storage(0xbf2fa000) kernel version : 0070 SMP > preempt mod_unload ARMv7 > [ 261.072000] xhci_hcd(0xbf2e5000) kernel version : 0070 SMP preempt > mod_unload ARMv7 > [ 261.072000] ohci_hcd(0xbf2d6000) kernel version : 0070 SMP preempt > mod_unload ARMv7 > [ 261.072000] ehci_hcd(0xbf2c3000) kernel version : 0070 SMP preempt > mod_unload ARMv7 > [ 261.072000] usbcore(0xbf290000) kernel version : 0070 SMP preempt > mod_unload ARMv7 > [ 261.072000] tntfs(P)(0xbf223000) kernel version : 0070 SMP preempt > mod_unload ARMv7 > [ 261.072000] sdp_mac(0xbf219000) kernel version : 0070 SMP preempt > mod_unload ARMv7 > [ 261.072000] sdp_ahci(0xbf20e000) kernel version : 0070 SMP preempt > mod_unload ARMv7 > [ 261.072000] libata(0xbf1da000) kernel version : 0070 SMP preempt > mod_unload ARMv7 > [ 261.072000] sd_mod(0xbf1cb000) kernel version : 0070 SMP preempt > mod_unload ARMv7 > [ 261.072000] sr_mod(0xbf1c1000) kernel version : 0070 SMP preempt > mod_unload ARMv7 > [ 261.072000] cdrom(0xbf1b2000) kernel version : 0070 SMP preempt > mod_unload ARMv7 > [ 261.072000] fpi(P)(0xbf1a9000) kernel version : 0070 SMP preempt > mod_unload ARMv7 > [ 261.072000] mali_drm(0xbf1a3000) kernel version : 0070 SMP preempt > mod_unload ARMv7 > [ 261.072000] samdrv(P)(0xbf074000) kernel version : 0070 SMP > preempt mod_unload ARMv7 > [ 261.072000] rfs_fat(P)(0xbf025000) kernel version : 0070 SMP > preempt mod_unload ARMv7 > [ 261.072000] rfs_glue(P)(0xbf000000) kernel version : 0070 SMP > preempt mod_unload ARMv7 > [ 261.072000] > [ 261.072000] CPU: 22016 Tainted: P (2.6.35.13 #1) > [ 261.072000] PC is at do_page_fault+0xc0/0x350 > [ 261.072000] LR is at do_page_fault+0x88/0x350 > [ 261.072000] pc : [<c03b02cc>] lr : [<c03b0294>] psr: 60000193 > [ 261.072000] sp : d52f8090 ip : c03b0684 fp : d52f811c > [ 261.072000] r10: 20000193 r9 : 00000017 r8 : c04db438 > [ 261.072000] r7 : 000000d3 r6 : 00000007 r5 : 00000000 r4 : d52f81c8 > [ 261.072000] r3 : d52f8000 r2 : d52f8090 r1 : 00000004 r0 : 00000001 > [ 261.072000] Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM > Segment user > [ 261.072000] Control: 10c53c7d Table: 93b0004a DAC: 00000017 > [ 261.072000] Process (pid: 0, stack limit = 0xd52f62f0) > [ 261.072000] Stack: (0xd52f8090 to 0xd52f8008) > [ 261.072000] Backtrace(CPU 22016): > [ 261.072000] [<c03b020c>] (do_page_fault+0x0/0x350) from > [<c0039574>] (do_DataAbort+0x44/0xa8) > [ 261.072000] [<c0039530>] (do_DataAbort+0x0/0xa8) from [<c03ae02c>] > (__dabt_svc+0x4c/0x60) > [ 261.072000] Exception stack(0xd52f81c8 to 0xd52f8210) > [ 261.072000] 81c0: 00000001 00000004 d52f8210 > d52f8000 d52f8348 00000000 > [ 261.072000] 81e0: 00000007 000000d3 c04db438 00000017 20000193 > d52f829c c03b0684 d52f8210 > [ 261.072000] 8200: c03b0294 c03b02cc 60000193 ffffffff 00000109 > [ 261.072000] r7:000000d3 r6:00000007 r5:d52f81fc r4:ffffffff > [ 261.072000] [<c03b020c>] (do_page_fault+0x0/0x350) from > [<c0039574>] (do_DataAbort+0x44/0xa8) > [ 261.072000] [<c0039530>] (do_DataAbort+0x0/0xa8) from [<c03ae02c>] > (__dabt_svc+0x4c/0x60) > [ 261.072000] Exception stack(0xd52f8348 to 0xd52f8390) > [ 261.072000] 8340: 00000001 00000004 d52f8390 > d52f8000 d52f84c8 00000000 > [ 261.072000] 8360: 00000007 000000d3 c04db438 00000017 20000193 > d52f841c c03b0684 d52f8390 > [ 261.072000] 8380: c03b0294 c03b02cc 60000193 ffffffff 000001c9 > [ 261.072000] r7:000000d3 r6:00000007 r5:d52f837c r4:ffffffff > [ 261.072000] [<c03b020c>] (do_page_fault+0x0/0x350) from > [<c0039574>] (do_DataAbort+0x44/0xa8) > [ 261.072000] [<c0039530>] (do_DataAbort+0x0/0xa8) from [<c03ae02c>] > (__dabt_svc+0x4c/0x60) > [ 261.072000] Exception stack(0xd52f84c8 to 0xd52f8510) > [ 261.072000] 84c0: 00000001 00000004 d52f8510 > d52f8000 d52f8648 00000000 > [ 261.072000] 84e0: 00000007 000000d3 c04db438 00000017 20000193 > d52f859c c03b0684 d52f8510 > [ 261.072000] 8500: c03b0294 c03b02cc 60000193 ffffffff 00000289 > [ 261.072000] r7:000000d3 r6:00000007 r5:d52f84fc r4:ffffffff > [ 261.072000] [<c03b020c>] (do_page_fault+0x0/0x350) from > [<c0039574>] (do_DataAbort+0x44/0xa8) > [ 261.072000] [<c0039530>] (do_DataAbort+0x0/0xa8) from [<c03ae02c>] > (__dabt_svc+0x4c/0x60) > [ 261.072000] Exception stack(0xd52f8648 to 0xd52f8690) > [ 261.072000] 8640: 00000001 00000004 d52f8690 > d52f8000 d52f87c8 00000000 > [ 261.072000] 8660: 00000007 000000d3 c04db438 00000017 20000193 > d52f871c c03b0684 d52f8690 > [ 261.072000] 8680: c03b0294 c03b02cc 60000193 ffffffff 00000349 > [ 261.072000] r7:000000d3 r6:00000007 r5:d52f867c r4:ffffffff > [ 261.072000] [<c03b020c>] (do_page_fault+0x0/0x350) from > [<c0039574>] (do_DataAbort+0x44/0xa8) > [ 261.072000] [<c0039530>] (do_DataAbort+0x0/0xa8) from [<c03ae02c>] > (__dabt_svc+0x4c/0x60) > [ 261.072000] Exception stack(0xd52f87c8 to 0xd52f8810) > [ 261.072000] 87c0: 00000001 00000004 d52f8810 > d52f8000 d52f8948 00000000 > [ 261.072000] 87e0: 00000007 000000d3 c04db438 00000017 20000193 > d52f889c c03b0684 d52f8810 > [ 261.072000] 8800: c03b0294 c03b02cc 60000193 ffffffff 00000409 > [ 261.072000] r7:000000d3 r6:00000007 r5:d52f87fc r4:ffffffff > > > > I have a few questions with respect to this: > 1) fixing segment size -> 256 : Is this correct and is any other > value for TRBS_PER_SEGMENT possible? This is a temporary workaround. We need dynamic ring expansion here, which I'm working on but haven't got time to update it... > 2) After increasing size of TRBS_PER_SEGMENT i got below log : > usb 5-1: ep 0x4 - urb len = 0x5dc (1500), addr = 0x66ec8800, num_trbs = 1 > xhci-sdp xhci-sdp.0: WARN: short transfer on control ep > > ----------> usb5-1 is Xhci's first port. > Is this an error or a normal condition ? This is normal. > 3) If I want to set "ring segemts = 8", how do we modify this in kernel? > See following code in xhci_endpoint_init(), drivers/usb/host/xhci-mem.c: if (usb_endpoint_xfer_isoc(&ep->desc)) virt_dev->eps[ep_index].new_ring = xhci_ring_alloc(xhci, 8, true, true, mem_flags); else virt_dev->eps[ep_index].new_ring = xhci_ring_alloc(xhci, 1, true, false, mem_flags); Here driver allocates 8 segments for isoc endpoint and 1 segment for control/bulk/interrupt endpoint by default. You can modify the number here to change the number of segments allocated. Other than these changes, can you try the ring expansion patchset start here: http://marc.info/?l=linux-usb&m=131918645424329&w=2 To see if it helps in your situation? It's dynamic ring expansion patchset which is still under development. It should be applied to the latest kernel. Thanks, Andiry > > Thanks & Regards, > Aman > -- > 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 > > -- 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