Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space. / 17 сообщений из 17, страница 1 из 1
19.11.2013, 18:41
    #38470350
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
Как можно в Linux выделить в виртуальном пространстве kernel-space непрерывный(физически) участок памяти 1МБ - 1ГБ и затем отобразить его в виртуальное адресное пространство user-space?

Чтобы выделить в виртуальном пространстве kernel-space подойдет kmalloc(), но он выделяет только до 4 МБ и как потом их отобразить в user-space?
...
Рейтинг: 0 / 0
19.11.2013, 19:11
    #38470381
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
malloc ...
...
Рейтинг: 0 / 0
19.11.2013, 19:46
    #38470420
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
непрерывный(физически) участок,

1) зачем? я не вижу никакого смысла именно в физически непрерывной памяти

2) память выделенную через kmalloc в общем случае нельзя отобразить в юзерский процесс, т.к. kmalloc работает с гранулярностью меньше страницы, а отображать можно только постранично.
Но в каких-то частных случаях наверно можно.

3) Используйте vmalloc и не морочьте нам голову. Эту память и отобразить элементарно :)
...
Рейтинг: 0 / 0
19.11.2013, 19:52
    #38470426
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
Кстати, я вполне уверен, что если выделить память vmalloc сразу после старта системы, то она будет физически непрерывной :)
...
Рейтинг: 0 / 0
19.11.2013, 20:32
    #38470469
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
Anatoly Moskovskyнепрерывный(физически) участок,

1) зачем? я не вижу никакого смысла именно в физически непрерывной памяти

2) память выделенную через kmalloc в общем случае нельзя отобразить в юзерский процесс, т.к. kmalloc работает с гранулярностью меньше страницы, а отображать можно только постранично.
Но в каких-то частных случаях наверно можно.

3) Используйте vmalloc и не морочьте нам голову. Эту память и отобразить элементарно :)
А если я хочу использовать память(десятки мегабайт) для доступа к ней из устройства подключенного по PCI-Express, которое естественно не сможет обращаться по виртуальным адресам из-за отсутствия IOMMU и этому устройству нужна последовательная непрерывная область физической памяти?

Вот тут допустим пишут: http://stackoverflow.com/a/116458/1558037
авторmax size of a single kmalloc is up to 4 MB !
...
Рейтинг: 0 / 0
19.11.2013, 21:07
    #38470495
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
непрерывный(физически) участокА если я хочу использовать память(десятки мегабайт) для доступа к ней из устройства подключенного по PCI-Express, которое естественно не сможет обращаться по виртуальным адресам из-за отсутствия IOMMU и этому устройству нужна последовательная непрерывная область физической памяти?
Посмотрите может DMA API вам поможет: https://www.kernel.org/doc/Documentation/DMA-API.txt
dma_alloc_coherent должен уметь большие буфера для DMA.
...
Рейтинг: 0 / 0
19.11.2013, 21:45
    #38470527
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
Anatoly Moskovskyнепрерывный(физически) участокА если я хочу использовать память(десятки мегабайт) для доступа к ней из устройства подключенного по PCI-Express, которое естественно не сможет обращаться по виртуальным адресам из-за отсутствия IOMMU и этому устройству нужна последовательная непрерывная область физической памяти?
Посмотрите может DMA API вам поможет: https://www.kernel.org/doc/Documentation/DMA-API.txt
dma_alloc_coherent должен уметь большие буфера для DMA.
Да, я как раз щас про него на 446 странице читал тут: http://lwn.net/images/pdf/LDD3/ch15.pdf

А dma_alloc_coherent() - это именно оптимальный вариант для этого?
...
Рейтинг: 0 / 0
19.11.2013, 22:02
    #38470543
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
непрерывный(физически) участок,

Задайте свой вопрос в правильном месте :)
Например на stackoverflow
...
Рейтинг: 0 / 0
19.11.2013, 23:03
    #38470604
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
Ужасно, если в MotherBoard стоят два слота и две планки памяти. Ведь в этом случае
мы можем случайно (внезапно!) выделить память на границе двух планок
...
Рейтинг: 0 / 0
20.11.2013, 04:28
    #38470704
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
mayton,

так, тогда, разрыв в выделении получится? сантиметра на полтора
...
Рейтинг: 0 / 0
20.11.2013, 13:26
    #38471169
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
alex_kmayton,

так, тогда, разрыв в выделении получится? сантиметра на полтора
Это получится разрыв в 300-400 мегабайт где-то...
...
Рейтинг: 0 / 0
20.11.2013, 16:18
    #38471511
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
непрерывный(физически) участок ,

зарегался-б штоли.
...
Рейтинг: 0 / 0
20.11.2013, 18:28
    #38471710
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
mayton непрерывный(физически) участок ,

зарегался-б штоли.
Это - она, а не он :)
...
Рейтинг: 0 / 0
20.11.2013, 18:37
    #38471733
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
Anatoly Moskovskymayton непрерывный(физически) участок ,

зарегался-б штоли.
Это - она, а не он :)

Ты -- великий ясновидящий !
...
Рейтинг: 0 / 0
20.11.2013, 18:39
    #38471738
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
MasterZivAnatoly Moskovskyпропущено...

Это - она, а не он :)

Ты -- великий ясновидящий !
Баба-Ванга? :)
...
Рейтинг: 0 / 0
20.11.2013, 18:51
    #38471764
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
Я так вижу, а кто там за анонимом скрывается - мне по барабану :)
...
Рейтинг: 0 / 0
20.11.2013, 19:13
    #38471805
sherzod_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
Участок это все таки он. Но если памяти, то участок часть "оны", и следовательно это она, противоречивая фигура в общем.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space. / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]