Re: Issue observed with pm_runtime_put_sync

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

 



Manjunath,

"G, Manjunath Kondaiah" <manjugk@xxxxxx> writes:

> While using pm runtime API's with DMA, it was observed that, during
> omap_free_dma, pm_runtime_put_sync is called which results in warning
> dump.  It looks like, when cpu idle patch is under processing, DMA
> interrupt gets fired which inturn call omap_free_dma which results
> multiple spin_locks.
>  
> The DMA driver uses *_get_sync during omap_request_dma and *_put_sync during
> omap_free_dma.
>  
> Environment:
> Kernel:
> git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git
> Branch: master
> Commit: 99cf630 Linux-omap rebuilt: Fixed omap4 kernel panic without nosmp,
> updated to -rc7
> +
> DMA hwmod patches
>  
> defconfig: omap2plus_defconfig
> board: OMAP3630 Zoom3
>  
> Is this a known issue or issue with pm runtime API usage in DMA driver?

It's an issue in the runtime PM usage in DMA driver.

Specifically, the _sync versions of the API cannot be used from
interrupt context because they can sleep.

Are the _sync versions really needed at that point?  Without having the
code, I cannot tell, but I susupect that the async versions could be
used there instead.

If not, then the code will need to be reworked so the ISR is not doing
the actual work, but instead is scheduling work to be done later in
process context.

Kevin
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux