LINUX.ORG.RU

Физически смежные страницы памяти, userspace


0

0

Возможно ли, используя userspace программу разместить файл в физически смежных страницах памяти? Или же необходимо сначала скопировать файл в память, затем через /proc или /dev сообщать модулю ядра адреса и после вызывать copy_from_user?

Ответ на: комментарий от anon_666

Можно, но в этом случае он размещается в виртуальном адрессном пространстве. Физические страницы, соответствующие виртуальным, вовсе не обязательно будут смежными.

dimorphus
() автор топика
Ответ на: комментарий от dimorphus

А, сразу не вьехал. Похоже только читать кусками в размер страницы. Или на стеке?

anon_666
()

> разместить _файл в_ физически смежных страницах _памяти_

Точнее сформулируй вопрос

anonymous
()

> разместить файл в физически смежных страницах памяти

зачем?

сообщать модулю ядра адреса и после вызывать copy_from_user?

copy_from_user работает с виртуальными адресами.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

зачем?


Есть необходимость размещать образ виртуальной машины в памяти непрерывным куском, чтобы затем упростить отображение через NPT ( Nested Page Tables ).

copy_from_user работает с виртуальными адресами.


Вторым предложением привёл альтернативное решение.

dimorphus
() автор топика
Ответ на: комментарий от dimorphus

>Есть необходимость размещать образ виртуальной машины в памяти непрерывным куском

Это какой-то изврат, разве нормальные виртуалки (qemu, vmware) опускаются до таких костылей?

anonymous
()
Ответ на: комментарий от dimorphus

> размещать образ виртуальной машины в памяти

Даже в ядре вряд ли получится выделить столько физически смежных страниц памяти.

frey ★★
()
Ответ на: комментарий от frey

В данной конкретной реализации образ ВМ представляет собой ядро + минимальное окружение (busibox). Работает ВМ в RAM (без доступа к жёстким дискам). Образ ВМ, загружаемый в память, занимает 3,5 Мбайта. Так что, в данном случае, у меня не полноценная виртуальная машина.

dimorphus
() автор топика
Ответ на: комментарий от dimorphus

> Есть необходимость размещать образ виртуальной машины в памяти непрерывным куском

Удачи. Не забудь залочить этот образ в памяти.

copy_from_user работает с виртуальными адресами.

Вторым предложением привёл альтернативное решение.

В топике всего 2 предложения, и copy_from_user упоминается во втором :)

tailgunner ★★★★★
()
Ответ на: комментарий от dimorphus

>минимальное окружение (busibox).

Бгг

anonymous
()

Можешь попробовать huge pages заюзать. Они по 4 Мб, тебе должно хватить. Только если у тебя не 64х или без PAE. Там страницы по 2 Мб только

nanoo_linux
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.