Во многих случаях ядро выделяет физическую память для процесса. Очевидно, что речь идет об исключениях, связанных с виртуальной памятью, и системных вызовах. Я хотел бы точно отслеживать распределение этих страниц физической памяти, чтобы мы могли сделать что-нибудь интересное. Однако ядро настолько сложное, что я не могу перечислить все случаи. Простого использования mmu_notifier недостаточно, так как во многих случаях событие уведомления не вызывается. Буду признателен за любую помощь.
Я перехватываю системные вызовы и исключения, связанные с виртуальной памятью, а также использую mmu_notifier. Но этого недостаточно, поскольку спекулятивные предварительно выделенные физические страницы нелегко отследить по ошибочному адресу.
Подробнее здесь: https://stackoverflow.com/questions/782 ... inux-inclu
Мобильная версия