On Fri, 29 Jan 2021, David Hildenbrand wrote:
> Let's count the number of CMA pages per zone and print them in
> /proc/zoneinfo.
>
> Having access to the total number of CMA pages per zone is helpful for
> debugging purposes to know where exactly the CMA pages ended up, and to
> figure out how many pages of a zone might behave differently, even after
> some of these pages might already have been allocated.
>
> As one example, CMA pages part of a kernel zone cannot be used for
> ordinary kernel allocations but instead behave more like ZONE_MOVABLE.
>
> For now, we are only able to get the global nr+free cma pages from
> /proc/meminfo and the free cma pages per zone from /proc/zoneinfo.
>
> Example after this patch when booting a 6 GiB QEMU VM with
> "hugetlb_cma=2G":
> # cat /proc/zoneinfo | grep cma
> cma 0
> nr_free_cma 0
> cma 0
> nr_free_cma 0
> cma 524288
> nr_free_cma 493016
> cma 0
> cma 0
> # cat /proc/meminfo | grep Cma
> CmaTotal: 2097152 kB
> CmaFree: 1972064 kB
>
> Note: We print even without CONFIG_CMA, just like "nr_free_cma"; this way,
> one can be sure when spotting "cma 0", that there are definetly no
> CMA pages located in a zone.
>
> Cc: Andrew Morton <[email protected]>
> Cc: Thomas Gleixner <[email protected]>
> Cc: "Peter Zijlstra (Intel)" <[email protected]>
> Cc: Mike Rapoport <[email protected]>
> Cc: Oscar Salvador <[email protected]>
> Cc: Michal Hocko <[email protected]>
> Cc: Wei Yang <[email protected]>
> Cc: David Rientjes <[email protected]>
> Cc: [email protected]
> Signed-off-by: David Hildenbrand <[email protected]>
Acked-by: David Rientjes <[email protected]>