Re: MIDI gadget allocating too much from coherent pool

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

 



On Thu, Sep 10, 2015 at 10:47:07AM +0100, Felipe Tonello wrote:
> Hi,
> 
> I have the following setup:
> 
> DSP (read sensors and read/send MIDI) <- UART -> SOC (imx6) <- USB
> MIDI GADGET -> HOST
> 
> When the throughput from the DSP is high, thus causing the throughput
> on the USB to be high as well, I get a Kernel Panic saying to increase
> the coherent_pool. I've used some crazy sizes like 1M, 4M and even 8M.
> Obviously when I increase, it takes longer to crash but it still
> crashes.
> 
> I am using linux-fsl 3.14.28.
> 
> The BT as follows:
> 
> [  193.619701] ERROR: 1024 KiB atomic DMA coherent pool is too small!
> [  193.619701] Please increase it with coherent_pool= kernel parameter!
> [  193.632261] Unable to handle kernel NULL pointer dereference at
> virtual address 00000000
> [  193.640358] pgd = 80004000
> [  193.643070] [00000000] *pgd=00000000
> [  193.646670] Internal error: Oops: 817 [#1] PREEMPT SMP ARM
> [  193.652162] Modules linked in:0d 0 :s0n2d:_5s2e.q2_2m1i
> snd_seq_midi_event snd_seq_dummy snd_seq snd_soc_cs4272
> snd_soc_fsl_ssi imx_pcm_dma imx_pcm_fiq snd_soc_imx_cs4272
> snd_soc_core snd_compress snd_pcm_dmaengine snd_pcm snd_te
>  [  193.689447] CPU: 2 PID: 16 Comm: ksoftirqd/2 Not tainted
> 3.14.28-1.0.0_ga+g91cf351 #1
>  [  193.697285] task: ea0a5100 ti: ea0d8000 task.ti: ea0d8000
>  [  193.702708] PC is at _ep_queue.isra.24+0x178/0x480
>  [  193.707508] LR is at 0xc43cee80
>  [  193.710657] pc : [<8039ea38>]    lr : [<c43cee80>]    psr: 600f0093
>  [  193.710657] sp : ea0d9de0  ip : 6e0ea000  fp : ea0d9e1c
>  [  193.722139] r10: 00005000  r9 : ea03c010  r8 : c43d05b4
>  [  193.727369] r7 : 00000000  r6 : 00000004  r5 : ea03c6f4  r4 : c43d0580
>  [  193.733899] r3 : c43d05bc  r2 : 00000000  r1 : 00000001  r0 : fffffff4
>  [  193.740433] Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM
> Segment kernel
>  [  193.747834] Control: 10c5387d  Table: 7aca804a  DAC: 00000015
>  [  193.753585] Process ksoftirqd/2 (pid: 16, stack limit = 0xea0d8238)
>  [  193.759857] Stack: (0xea0d9de0 to 0xea0da000)
>  [  193.764225] 9de0: 00000001 eaa72480 a00f0013 c43d05bc ea0d9e24
> 00000003 ea03c6f4 a00f0013
>  [  193.772413] 9e00: c43d0580 ea51a200 ea51a328 ea51a328 ea0d9e3c
> ea0d9e20 8039fc30 8039e8cc
>  [  193.780598] 9e20: 00000000 00000000 c4467000 c43d0580 ea0d9e7c
> ea0d9e40 7f078754 8039fbe8
>  [  193.788784] 9e40: ea03c6f4 ea51a2ec 80009990 6f000000 ea0d9e84
> ea51a330 ea51a334 00000000
>  [  193.796968] 9e60: 80718f40 00000000 ea0d8000 806d82bc ea0d9e8c
> ea0d9e80 7f0787a0 7f07832c
>  [  193.805153] 9e80: ea0d9ebc ea0d9e90 80031fe4 7f078798 80031f60
> 00000000 00000000 806dc080
>  [  193.826207] 9ec0: ffffffff ea0d9f0c 04208040 806dc0c0 ffffd672
> 80507358 0000000a 80718f40
>  [  193.834392] 9ee0: ea0d8000 806d8458 806dc080 00000002 80053c8c
> ea0d8000 ea0870c0 806e9cc8
>  [  193.842576] 9f00: 00000001 00000000 00000000 00000000 ea0d9f34
> ea0d9f20 80032490 800321f0
>  [  193.868396] 9f40: ea087140 ea0870c0 800512e0 00000000 ea0d9fac
> ea0d9f60 8004a458 800512ec
>  [  193.876582] 9f60: 30b80088 00000001 00000002 ea0870c0 00000000
> 00030003 ea0d9f78 ea0d9f78
>  [  193.884766] 9f80: 00000000 00000000 ea0d9f88 ea0d9f88 ea087140
> 8004a384 00000000 00000000
>  [  193.892952] 9fa0: 00000000 ea0d9fb0 8000ea58 8004a390 00000000
> 00000000 00000000 00000000
>  [  193.901137] 9fc0: 00000000 00000000 00000000 00000000 00000000
> 00000000 00000000 00000000
>  [  193.909322] 9fe0: 00000000 00000000 00000000 00000000 00000013
> 00000000 2001a1a0 61391094
>  [  193.917501] Backtrace:
>  [  193.919982] [<8039e8c0>] (_ep_queue.isra.24) from [<8039fc30>]
> (ep_queue+0x54/0x88)
>  [  193.927643]  r10:ea51a328 r9:ea51a328 r8:ea51a200 r7:c43d0580
> r6:a00f0013 r5:ea03c6f4
>  [  193.935554]  r4:00000003
>  [  193.938120] [<8039fbdc>] (ep_queue) from [<7f078754>]
> (f_midi_transmit+0x434/0x46c [g_midi])
>  [  193.946562]  r7:c43d0580 r6:c4467000 r5:00000000 r4:00000000
>  [  193.952299] [<7f078320>] (f_midi_transmit [g_midi]) from
> [<7f0787a0>] (f_midi_in_tasklet+0x14/0x18 [g_midi])
>  [  193.962129]  r10:806d82bc r9:ea0d8000 r8:00000000 r7:80718f40
> r6:00000000 r5:ea51a334
>  [  193.970039]  r4:ea51a330
>  [  193.972609] [<7f07878c>] (f_midi_in_tasklet [g_midi]) from
> [<80031fe4>] (tasklet_hi_action+0x84/0x114)
>  [  193.981928] [<80031f60>] (tasklet_hi_action) from [<8003232c>]
> (__do_softirq+0x148/0x260)
>  [  193.990107]  r10:40000000 r9:806dc080 r8:00000100 r7:ea0d8000
> r6:806dc080 r5:00000000
>  [  193.998018]  r4:00000000 r3:80031f60
>  [  194.001635] [<800321e4>] (__do_softirq) from [<80032490>]
> (run_ksoftirqd+0x4c/0x64)
>  [  194.009294]  r10:00000000 r9:00000000 r8:00000000 r7:00000001
> r6:806e9cc8 r5:ea0870c0
>  [  194.017203]  r4:ea0d8000
>  [  194.019773] [<80032444>] (run_ksoftirqd) from [<80051468>]
> (smpboot_thread_fn+0x188/0x278)
>  [  194.028059] [<800512e0>] (smpboot_thread_fn) from [<8004a458>]
> (kthread+0xd4/0xec)
>  [  194.035632]  r8:00000000 r7:800512e0 r6:ea0870c0 r5:ea087140
> r4:00000000 r3:ea0a5100
>  [  194.043468] [<8004a384>] (kthread) from [<8000ea58>]
> (ret_from_fork+0x14/0x3c)
>  [  194.050695]  r7:00000000 r6:00000000 r5:8004a384 r4:ea087140
>  [  194.056426] Code: e3a01001 e594203c e50b2030 e593200c (e5821000)
>  [  194.062529] ---[ end trace d9e83b0561ba691e ]---
>  [  194.067153] Kernel panic - not syncing: Fatal exception in interrupt
> 
> Any help will be very useful.
> 

Hi Felipe,

Try to see if dma_pool_free at free_pending_td is much less than
dma_pool_alloc at add_td_to_list

-- 

Best Regards,
Peter Chen
--
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