NACK/Cmnt: [SRU][F][aws][PATCH 0/1] aws: disable CONFIG_DMA_CMA

Andrea Righi andrea.righi at canonical.com
Fri May 22 07:45:36 UTC 2020


On Wed, May 20, 2020 at 04:04:36PM +0200, Andrea Righi wrote:
> BugLink: https://bugs.launchpad.net/bugs/1879711
> 
> [Impact]
> 
> The option CONFIG_DMA_CMA seems to cause hibernation failures on the
> t2.* instance types (Xen).
> 
> With this option enabled device drivers are allowed to use the
> Contiguous Memory Allocator (CMA) for DMA operations. So, drivers can
> allocate large physically-contiguous blocks of memory, instead of
> relying on the I/O map or scatter-gather support.
> 
> However, on resume, the memory used by DMA needs to be re-initialized /
> re-allocated, but it may fail to allocate large chunks of contiguous
> memory due to the fact that we also need to restore the hibernation
> image, using more memory and causing a system hang during the resume
> process.
> 
> [Test case]
> 
> Hibernate / resume any t2.* instance (especially t2.nano, where the
> problem seems to happen 100% of the times after 2 consecutive
> hibernate/resume cycles).
> 
> [Fix]
> 
> Disable CONFIG_DMA_CMA.
> 
> NOTE: this option is already disabled in the generic kernel (see LP:
> #1362261).
> 
> With this option disabled the success rate of hibernation on the t2.*
> instance types during our tests jumped to 100%.
> 
> [Regression potential]
> 
> It is a .config change, no regression potential except for the fact that
> disabling this option also disables the module 'etnaviv' (Vivante
> graphic card), that is not really needed in the aws kernel.

Thinking more about this, it makes sense to disable this option only on
amd64 and keep it enabled on arm64, like we've done in the master
kernel.

In this way we would completely re-align with the master kernel, so it's
definitely a better option.

Therefore I'm nack-ing this patch, will send a v2 soon.

-Andrea



More information about the kernel-team mailing list