Что такое VM_BUG_ON_PAGE (PageLRU (страница) || PageUnevictable(страница))?

#memory-management #linux-kernel #crash #kernel #embedded-linux

#управление памятью #linux-ядро #сбой #ядро #встроенный-linux

Вопрос:

 [   19.492487] page dumped because: VM_BUG_ON_PAGE(PageLRU(page) || PageUnevictable(page))
[   19.500551] page->mem_cgroup:be008c00
[   19.504226] ------------[ cut here ]------------ //kernel panic here
[   19.508851] kernel BUG at mm/vmscan.c:1350!
[   19.513032] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM  

Пожалуйста, дайте мне знать, что означает это сообщение об ошибке?

Ответ №1:

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

Например.

Если вы зарезервировали область CMA размером 512 МБ, из области CMA любой процесс может использовать страницы (только ПЕРЕМЕЩАЕМЫЕ СТРАНИЦЫ), если процесс принимает страницу в качестве перемещаемой страницы из области cma, но заблокировал (VM_LOCKED) эту страницу с помощью mlock () после получения страницы, но когда запрашивается область CMA, смежная, ему не удается перенести эту заблокированную / закрепленную страницу.

Это стабильная ошибка ядра (4.12 ): ссылка на исправление