question for cma alloc fail issue

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

 



Hi All,

We are facing a cma memory alloc issue on linux 4.14.98 and lower version.

In our platform imx8m, we using cma to allocate large continuous memory
block to support zero-copy between video decode and display sub-system.
But after long time loop video playback test, system will report alloc
cma fail ret=busy. We take a deep look into cma.c found there are still
some big free areas in cma->bitmap that maybe can alloc 3595 pages.

Here are some questions:
1. in __alloc_contig_migrate_range() cc->nr_migratepages always been 0
Does cc->nr_migratepages = 0 means there is no page can be reclaimed or
migrated? Which kind of pages that cannot been reclaimed.

2. The pages that are free in cma->bitmap seem not free in Buddy system?
PageBuddy() test can also return false even if the page is in the free list in cma bitmap
I test the fail page with page_is_file_cache(page) which return 0.
comment show: 0 if @page is anonymous, tmpfs or otherwise ram or swap backed.
What does swap backed mean? Which one maybe occupy these pages?

Could someone give me a favor to debug this issue?

Best regareds
Jared Hu




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux