This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

USB camera with 3.17.8 Linux kernel; very high CPU usage attributed to software interrupts

Other Parts Discussed in Thread: DM3730

I use DM3730 on Gumstix Overo Firestorm-P COM and 3.17.8 Linux kernel. When capturing video streams from USB 2.0 cameras, the CPU usage is 60%. When using an earlier Linux kernel, 3.5 version, which did not support DMA, the CPU usage was only 30%. More interestingly, all of this usage is attributed (by Linux top tool) to software interrupts. Perhaps this problems is related to the EHCI driver and DMA.

For testing I used the code from the V4L2 specification with --mmal option.

  • Hi Tom,
    Probably there is some issue with the camera driver in 3.17.8 Linux kernel. I suggest you to compare the camera drivers in both kernels and try to test the CPU usage after importing the old driver to 3.17.8 Linux kernel.

    BR
    Tsvetolin Shulev
  • Hi Tsvetolin,

    To clarify, for the two scenarios I mentioned, the difference is more so between PIO mode and DMA mode, not just kernel versions.
    Is DM3730 known to work with some older UVC driver versions in DMA mode? Do you have a reason to believe the problem is in the UVC driver indeed?

    Thanks,

    Tom

  • I have got some addition information.

    1. There is the following error message from EDMA:

    [    0.515441] OMAP DMA hardware revision 5.0
    [    0.557342] edma-dma-engine edma-dma-engine.0: Can't allocate PaRAM dummy slot
    [    0.557434] edma-dma-engine: probe of edma-dma-engine.0 failed with error -22
    [    0.612030] omap-dma-engine 48056000.dma-controller: OMAP DMA engine driver

    Could it be related? How to fix it?

    2. The interrupts showing high activity during capture are:

    omap-dma-engine
    ehci_hcd:usb1