Управление памятью ядра Linux? - PullRequest
5 голосов
/ 18 января 2011

Будет ли ядро ​​Linux освобождать kmalloc'ом, а не kfree'd в памяти модуля ядра после выпуска модуля так же, как это работает с приложениями пользовательского пространства?

Ответы [ 2 ]

9 голосов
/ 18 января 2011

Ядро не будет выполнять сборку мусора для модуля.Если модуль kmalloc содержит фрагмент памяти и не kfree его до выгрузки модуля, этот блок будет выделен и недоступен до следующей перезагрузки.

1 голос
/ 24 апреля 2019

Как говорили другие, ядро ​​не будет выполнять сборку мусора для модуля, но драйверы устройств могут использовать devm_* типы выделения ресурсов (так называемые управляемые функции выделения ресурсов), и ядро ​​выполнит все необходимые очистки после того, как не будетдополнительная ссылка на устройство.

См. здесь закомментированный исходный код в исходном коде ядра для devm_kmalloc .

...