LINUX.ORG.RU

CMA memory pool и early_memtest

 ,


0

2

Здравствуйте.

устройство на imx6ull, ядро 4.9.88 .

Хочу сделать тест оперативной памяти ядром (через параметр ядра memtest) оказалось что до теста выделяется CMA memory pool размером 320 MiB и эти 320 MiB не проверяются

CMA memory pool можно выключить, но я не знаю как это может сказаться на работе системы.

Подскажите, пожалуйста, в каких случаях нужно включать CMA memory pool ?

Подскажите, пожалуйста, может можно как то перемести выделение CMA memory pool после early_memtest ?


Про CMA не подскажу, но если итоговая цель – проверить ОЗУ в общем, то можно посмотреть ещё DDR Stress Test Tool.

apt_install_lrzsz ★★★
()

CMA (Contiguous Memory Allocator) может потребоваться устройствам, точнее драйверам, для организации DMA трансферов, в том случае, если устройство (конкретный аппаратный блок) не умеет в Scatter-Gather (SG) режим и требует непрерывный блок физической памяти для чтения или записи.

В Scatter-Gather режиме трансфер делится на блоки и можно их насобирать из кусков физической памяти.

В общем, если выключишь, сама система не должна загнуться, но если что-то очень хочет непрерывных блоков памяти больше одной страницы, то оно работать перестанет.

ЗЫ у нас на проекте активно используется в связке u-dma-buf, просто по причине того, что FPGA IP требуют меньше ресурсов, когда не используется SG. Проект на базе Xilinx ZynqMP (к вопросу, откуда взялся FPGA в одном адресном пространстве с CPU)

ЗЗЫ а ещё оно ломает выводы free, top и так далее. Т.е. размер CMA не вычитывается из общего размера доступной памяти. Система может думать, что памяти валом, а памяти нет. OOM Killer при этом может сработать, но системе уже будет плохо.

hatred ★★★
()
Последнее исправление: hatred (всего исправлений: 1)
Ответ на: комментарий от hatred

Спасибо за развернутый ответ.

У нас необходимости в CMA как таковой нет (gpu не задействован, видео кодеки и другие ускорялки графики не задействанны) полностью выключить не рискнул, уменьшил этот пул до 32МБ

psm666
() автор топика
Ответ на: комментарий от psm666

Пожалуйста. Я забыл добавить, что выделенный под CMA объём памяти резервируется и не используется в распределении. Т.е. ваши 32МБ будут «висеть» в воздухе, если никто их не использует. Чисто для информации.

hatred ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.