OSDev

для всех
Текущее время: 24 июл 2019, 10:02

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: переключение страничных режимов
СообщениеДобавлено: 23 янв 2014, 12:27 

Зарегистрирован: 10 окт 2013, 14:54
Сообщения: 80
Вопрос забавный - никто не пробовал переключаться - между 32битным и PAE страничными режимами "на лету"?
Дока гордо сообщает, что "так можно"...
Ну вот поставил я бит в CR4 - процессор радостно ломанулся перечитывать CR3 по правилам PAE - т.е. PDPTE оттуда читать - и что? Тройное исключение и ребут? ;)

Вопрос, в общем, академический - делал для полуоси драйвер рамдиска в памяти выше 4Gb, но методом "заката солнца вручную" - т.е. cli->выключение 32битных страниц->включение PAE->копирование->тож самое в обратном порядке... И, в общем, оно даже не медленно, но что именно интел имел в виду этим своим "можно"?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 янв 2014, 15:36 
Аватара пользователя

Зарегистрирован: 20 апр 2011, 10:54
Сообщения: 145
dixie писал(а):
Вопрос забавный - никто не пробовал переключаться - между 32битным и PAE страничными режимами "на лету"?
Дока гордо сообщает, что "так можно"...
Ну вот поставил я бит в CR4 - процессор радостно ломанулся перечитывать CR3 по правилам PAE - т.е. PDPTE оттуда читать - и что? Тройное исключение и ребут? ;)

А смысл?

_________________
Found a CPU. LAPIC ID: 00


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 янв 2014, 21:33 

Зарегистрирован: 10 окт 2013, 14:54
Сообщения: 80
Что смысл? Переключаться напрямую?
Ну так, может, упростить процесс где-ньть можно... Из страничного-то выйти в работающей 32-битной системе - уже процесс интересный...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 янв 2014, 23:32 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1087
Откуда: Балаково
dixie писал(а):
Ну вот поставил я бит в CR4 - процессор радостно ломанулся перечитывать CR3 по правилам PAE - т.е. PDPTE оттуда читать - и что? Тройное исключение и ребут? ;)

Наверно подразумевается, что перед установкой бита CR4.PAE ты таблицу PD32 перезапишешь таблицей PDPTE (предварительно сохранив копию PD32 в другом месте). Надо было привести абзац текста, чтобы было понятней о чём там написано.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 янв 2014, 17:55 

Зарегистрирован: 10 окт 2013, 14:54
Сообщения: 80
Угу
Цитата:
Software can make transitions between 32-bit paging and PAE paging by changing the value of CR4.PAE with MOV to CR4.
и всё.

Ну, т.е. - записать в первые 8 входов page dir - данные PDPTE и переключать CR4? Это ж переключение надо за пределами 32 мегов держать - на всякий пожарный.... Кривовато оно как-то, мягко говоря ...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 янв 2014, 10:52 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1204
...за пределами 32 мег ВАП. С учетом того, что ядро располагается в верхней части ВАП, это нормально. После того, как я отключаю тождественное преобразование в начале ВАП, user space все равно превращается в одну большую "hole" - делай там все, что хочешь (почти).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 янв 2014, 12:48 

Зарегистрирован: 10 окт 2013, 14:54
Сообщения: 80
Ну да, сам драйвер в первые 32 метра линейных не попадёт... Т.е., возможно, в принципе.
Но не факт, конечно, что errat-у какую-ньть не огребешь на таком редком методе ;)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 янв 2014, 17:51 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1204
Ну, мне пока не приходило в голову использовать такой способ переключения. Для этого в момент переключения должны присутствовать таблицы страниц сразу двух типов :shock:

dixie писал(а):
и всё.
Кстати, не все. Я нашел в руководстве схему, подтверждающую возможность такого переключения (в имеющейся у меня версии она находится в п. 4.1.2 Paging-Mode Enabling).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 янв 2014, 12:02 

Зарегистрирован: 10 окт 2013, 14:54
Сообщения: 80
phantom-84 писал(а):
Ну, мне пока не приходило в голову использовать такой способ переключения. Для этого в момент переключения должны присутствовать таблицы страниц сразу двух типов :shock:
Ну тут задача довольно специфичная и помогает то, что драйвер диска получает буфер для данных в виде списка физ.адресов... Поэтому в PAE намаплено линейно, большими страницами....

Цитата:
Я нашел в руководстве схему, подтверждающую возможность такого переключения (в имеющейся у меня версии она находится в п. 4.1.2 Paging-Mode Enabling
Ага, это из этого же раздела цитата... ;)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB