LINUX.ORG.RU

Выгрузка памяти ядра Linux в swap

 ,


1

3

Может ли само ядро Linux свою собственную память хранить/выгружать в swap раздел во время работы? Если да, как эту возможность включить или выключить и как узнать, включена она или выключена?

★★★★★

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

anonymous
()

Акстись, ядро никогда не свопится. У тебя дисковая подсистема отомрёт, что ты будешь делать? Забей как-нибудь всю свою память и посмотри на своего прекрастного друга OOM-Killer.

anonymous
()

Особенно весело будет когда ядро с такой возможностью решит выгрузить обработчик page fault'ов на диск.

edigaryev ★★★★★
()

Может ли само ядро Linux свою собственную память хранить/выгружать в swap раздел во время работы?

Какую именно память? Если код, то нет (мало какие ядра это умеют). Данные - может, но это невозможно включить или выключить - свопабельность определяется флагами, заданными при обращении к kmalloc.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Вот только что полез проверить флаги kmalloc. Нету там флага, который бы разрешал выгружать в своп выделенную память. Значит, в Линуксе никогда ядерная память не свопится. Флаг NOFS подразумевает, что ядро не будет заниматься выгрузкой в своп userspace страниц для освобождения физической памяти для требуемой аллокации.

Krieger_Od ★★
()

Нет, не может. В Линуксе свап предназначен только для выгрузки анонимной памяти процессов.

Deleted
()
Ответ на: комментарий от Krieger_Od

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

ЕМНИП, это GFP_USER.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Ну как бы да, но это уже не совсем «ядерная память», и операции с ней нужно проводить через специфическое API. Если я всё правильно понимаю и эта аллокация будет в userspace.

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

Судя по тому, что тут написано: http://www.linuxjournal.com/article/6930

The kernel's memory is not pageable.

В винде кстати память для драйверов можно сделать pageable https://msdn.microsoft.com/en-us/library/windows/hardware/ff554346(v=vs.85).aspx так что линукс в этом плане от винды отстает

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