Я пытаюсь поработать над этой проблемой: программа пользовательских пространств продолжает опрашивать буфер для получения запросов от модуля ядра и обрабатывать его, а затем отвечать ядру.
Я очень хочу найти решениебыстрее, поэтому вместо создания файла устройства и обмена данными через него я выделяю буфер памяти из пространства пользователя и помечаю его как закрепленный, чтобы страницы памяти никогда не выгружались.Затем пользовательское пространство вызывает специальный системный вызов, чтобы сообщить ядру о буфере памяти, чтобы модуль ядра мог получить физический адрес этого буфера.(поскольку программа пространства пользователя может быть переключена по контексту, и, следовательно, виртуальный адрес ничего не значит, если модуль ядра обращается к буферу в это время.)
Когда модуль хочет отправить запрос, он должен поместить запросв буфер через физический адрес.Вопрос в том, как я могу получить доступ к буферу внутри модуля ядра через его физический адрес.
Я заметил, что есть get_user_pages, но не знаю, как его использовать, или, может быть, есть и другие лучшие методы?
Спасибо.