CMA allocation failure

From: Skidanov, Alexey
Date: Sat Jan 27 2018 - 04:38:04 EST


Hello,

I enabled CMA global area to be 8GB. Immediately after boot, I'm able to allocate the really big contiguous chunks of memory (about 8GB). But several minutes after the boot, there is some degradation in an ability of CMA to allocate contiguous memory buffers:

[ 2333.037004] cma: cma_alloc(): memory range at ffffea000f0a0000 is busy, retrying
[ 2333.037005] cma: cma_alloc: alloc failed, req-size: 500000 pages, ret: -16
[ 2333.037006] cma: number of available pages: 6@122+9@151+9@183+2096848@304=> 2096872 free of 2097152 total pages
[ 2333.037034] cma: cma_alloc(): returned (null)

The request to allocate 500000 pages (~2GB) is failed while the block of 2096848 contiguous pages are available.

One of the failure reasons is the user allocated pinned pages in the middle of the CMA reserved range. Can I somehow verify it? Can I get the details of such pinned pages (number of pages, source of pinning, etc. ... )?

Thanks,
Alexey
---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.