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

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

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

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

3) Используйте vmalloc и не морочьте нам голову. Эту память и отобразить элементарно :)
...
Рейтинг: 0 / 0
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
    #38470426
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, я вполне уверен, что если выделить память vmalloc сразу после старта системы, то она будет физически непрерывной :)
...
Рейтинг: 0 / 0
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
    #38470469
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
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
    #38470495
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
непрерывный(физически) участокА если я хочу использовать память(десятки мегабайт) для доступа к ней из устройства подключенного по PCI-Express, которое естественно не сможет обращаться по виртуальным адресам из-за отсутствия IOMMU и этому устройству нужна последовательная непрерывная область физической памяти?
Посмотрите может DMA API вам поможет: https://www.kernel.org/doc/Documentation/DMA-API.txt
dma_alloc_coherent должен уметь большие буфера для DMA.
...
Рейтинг: 0 / 0
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
    #38470527
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
Выделить непрерывный(физически) участок памяти 1МБ - 1ГБ и отобразить его в user-space.
    #38470543
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
непрерывный(физически) участок,

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

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

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

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

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

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

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

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

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


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