#linux
#linux
Вопрос:
Что-то определенно занимает CMA
буферы, но я не могу понять, что.
# cat /proc/meminfo | grep -i cma
CmaTotal: 262144 kB
CmaFree: 1272 kB
Системные сообщения практически ничего не показывают:
# dmesg | grep -i cma
[ 0.000000] cma: Reserved 256 MiB at 0x00000000c0000000
Я включил debugfs
for cma
, но я еще не понял, как его использовать:
/sys/kernel/debug/cma/cma-reserved# ls
alloc base_pfn bitmap count free maxchunk order_per_bit used
Ответ №1:
Я не уверен, как или если вы можете узнать, кто использует области CMA (я бы сам очень хотел знать), но я думаю, что я понял, как использовать debugfs.
Файлы в каталоге /sys/kernel/debug/cma / cma-reserved, который вы загружаете, содержат информацию о областях CMA, выраженную в номерах страниц (PFN) и количестве страниц.
Если вы cat /sys/kernel/debug/cma/cma-reserved/base_pfn
, например, увидите PFN адреса физической памяти, с которого начинается область CMA.
Аналогично, файлы count
, used
, и maxchunk
содержат количество страниц, зарезервированных для области CMA, количество тех страниц, которые используются в данный момент, и максимальное количество страниц, которое в данный момент доступно для выделения. Умножьте их содержимое на PAGE_SIZE вашей системы, чтобы получить количество в байтах.
alloc
и free
недоступны для чтения, но вы можете использовать их для ручного резервирования максимального количества страниц и освобождения любой из ранее зарезервированных областей, используя:
echo X > /sys/kernel/debug/cma/cma-reserved/alloc
или
echo X > /sys/kernel/debug/cma/cma-reserved/free
соответственно.
bitmap
это еще один читаемый файл, который содержит, ну … растровое изображение использованных или неиспользуемых страниц.
Проверьте также: https://www.kernel.org/doc/html/latest/admin-guide/mm/cma_debugfs.html