Re: Why CMA allocater fails if there is a signal pending?

From: Russell King - ARM Linux admin
Date: Mon Mar 25 2019 - 06:26:49 EST


On Mon, Mar 25, 2019 at 04:37:09PM +0800, Peter Chen wrote:
> Hi Michal & Marek,
>
> I meet an issue that the DMA (CMA used) allocation failed if there is a user
> signal, Eg Ctrl+C, it causes the USB xHCI stack fails to resume due to
> dma_alloc_coherent
> failed. It can be easy to reproduce if the user press Ctrl+C at
> suspend/resume test.

It has been possible in the past for cma_alloc() to take seconds or
longer to allocate, depending on the size of the CMA area and the
number of pinned GFP_MOVABLE pages within the CMA area. Whether that
is true of today's CMA or not, I don't know.

It's probably there to allow such a situation to be recoverable, but
is not a good idea if we're expecting dma_alloc_*() not to fail in
those scenarios.

--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up