|
отмапить виртуальный адрес ядра в пространство пользователя |
|
|
|
Jan 28 2016, 10:59
|

Местный
  
Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845

|
В pcie драйвере вызвал функцию pci_alloc_consistent(). Благодаря этому получил два адреса - один виртуальный адрес ядра, другой - физический адрес. Физический адрес сообщил в плис. Плис пишет данные по этому адресу, выставляет прерывание. В обработчике прерывания печатаю содержимое буфера с виртуальным адресом. Вижу свои данные, все работает.
Вопрос 1. Функция pci_alloc_consistent завершается удачно, если размер запрашиваемого буфера не превышает 4 МБайт. С чем это связано, почему не удаётся получить 8 и больше МБайт?
Вопрос 2. Можно ли замапить виртуальный буфер ядра в пространство пользователя? Это вообще возможно? Как я понимаю, физическая память линейна и поделена на траницы. Эти страницы отображаются в виртуальную память в произвольном порядке. Вызвав функцию pci_alloc_consistent, я зарезервировал большое количество подряд идущих страниц физической памяти и отобразил их в виртуальной памяти. В виртуальной памяти пользователя свой порядок страниц, это меня и напрягает, получится ли просто замапить виртуальный буфер ядра в виртуальный буфер пользователя, у пользователя как то тоже нужно пересортировать страницы, чтобы они в линию выстроились в физической памяти.
|
|
|
|
|
 |
Ответов
|
Mar 10 2016, 11:43
|
Знающий
   
Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050

|
Цитата(novartis @ Mar 10 2016, 14:02)  А вот ограничение в 4мбайт доставляет, хочется большего. я вам в конце января советовал: http://electronix.ru/forum/index.php?showt...t&p=1400061не увидели? пробовали? не ваш случай?
|
|
|
|
|
Mar 13 2016, 18:50
|

Местный
  
Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845

|
Цитата(Jury093 @ Mar 10 2016, 16:43)  я вам в конце января советовал: http://electronix.ru/forum/index.php?showt...t&p=1400061не увидели? пробовали? не ваш случай? видел, не пробовал, может и мой случай, ничего не понял, как этот CMA в ядре использовать, я с линуксом, как муравей вокруг слона... У меня стоит opensuse 13.2 с ядром 3.16. Как узнать, есть там cma или нету?
|
|
|
|
Сообщений в этой теме
novartis отмапить виртуальный адрес ядра в пространство пользователя Jan 28 2016, 10:59 Tarbal Цитата(novartis @ Jan 28 2016, 14:59) В p... Jan 29 2016, 14:07 Jury093 Цитата(novartis @ Jan 28 2016, 13:59) Воп... Jan 29 2016, 14:41 novartis Удалось отмапить буфер ядра в user space, но данны... Feb 1 2016, 17:41 novartis Разобрался с мапингом . Выкинул метод fault, ост... Feb 4 2016, 18:33 faa Цитата(novartis @ Jan 28 2016, 13:59) Воп... Feb 4 2016, 21:01   Jury093 Цитата(novartis @ Mar 13 2016, 21:50) вид... Mar 13 2016, 22:32 novartis Jury093 спасибо за CMA, с этой опцией все заработа... Mar 16 2016, 06:01 Tarbal Спасибо. Полезная информация.
По поводу патчей:
В... Mar 18 2016, 14:51
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|