Разница между копированием памяти пространства пользователя и отображением памяти пространства пользователя - PullRequest
0 голосов
/ 19 января 2020

В чем разница между копированием буфера пространства пользователя в буфер пространства ядра и отображением буфера пространства пользователя в буфер пространства ядра, а затем копированием буфера пространства ядра в другую структуру данных ядра?

Что я хотел сказать is:

  1. Первый метод - copy_from_user() function.

  2. Второй метод, скажем, буфер пространства пользователя отображается в пространство ядра и ядро ​​передается с физическим адресом (скажем, с использованием /proc/self/pagemap), затем пространство ядра вызывает phys_to_virt() по переданному физическому адресу, чтобы получить соответствующий виртуальный адрес ядра. Затем ядро ​​копирует данные из одной из своих структур данных, скажем skb_buff, в виртуальный адрес ядра, полученный при вызове phys_to_virt().

    Примечание: phys_to_virt() добавляет смещение 0xc0000000 к переданный физический адрес для получения виртуального адреса ядра, верно?

Второй метод описывает функциональные возможности в DPDK для модуля KNI, и в документации говорится, что он устраняет издержки копирования из пространства пользователя в пространство ядра. Пожалуйста, объясните мне, как.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...