PAE & EXB

Тема в разделе "WASM.OS.DEVEL", создана пользователем SadKo, 10 дек 2008.

  1. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    Короче, сабж.
    Какие идеи по поводу того, как процессоры Intel/AMD при включённом PAE реагируют на выставленный бит EXB (Execute-Disable Bit) в дескрипторах страниц. Как мне представляется, по идее он должен игнорироваться (так как числится в мануале как Reserved, should be zero) и активироваться только при включённом расширении Execute-Disable Bit.
    Просто пришлось столкнуться с такой проблемой, что Bochs на этот бит забивает, а qemu падает. Есть какие-нибудь соображения?
     
  2. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Если сей бит отключен, то он будет процами игнорироваться. В qemu ошибка, похоже.
     
  3. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    Даже в тех, в которых не было поддержки EXB?
    В смысле, в дескрипторе страницы старший бит выставлен в единицу. Если проц не поддерживает Execute-Disable Bit, он будет его игнорировать или уйдёт в ребут?
     
  4. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.568
    Адрес:
    Russia
    SadKo
    Судя по документации интела написано:
    execution disable bit in page translation mechanism is checked only then:
    1) IA32_EFER.NXE = 1
    2) The instruction translation look-aside buffer (ITLB) is loaded with a page is not already present in the ITLB

    По сути проверка идет когда установлен бит NXE. Только тогда идет проверка и в этом случае генерится page fault на любом уровне привелегий.

    Там еще приводиться 2 таблицы в которых показаны проверяемые биты в зависимости от режимов страничной адресации, когда Execute-Disable Bit включен и выключен.
    Думаю это то, что вам нужно.

    а по теме QEMU врет.
     
  5. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    TermoSINteZ, я имею в виду реакцию процессоров, которые не поддерживают вообще EXB-расширение (например, Pentium II), но имеют поддержку PAE. Лично моё предположение, что младшие процессоры их вообще не используют (игнорируют). Но верно ли оно?
     
  6. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    SadKo
    Утверждать не берусь, но логично предположить, что в процах, не поддерживающих эту фичу, попытка установить зарезервированный бит должна вызывать ошибку. Если напишешь тестовую программку, могу попробовать проверить -- где-то должен быть рабочий пень-2 (если его ещё не выкинули). Ну а самому писать попросту лень :)

    Пы.Сы. Программка должна грузиться с дискеты, т.е. нужен образ дискеты.
     
  7. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    ОК, вот архив. Там и образ дискеты, и образ flash/hdd диска - на выбор. Фактически, это "урезанное" текущее ядро (так как переделываю страничный механизм).
     
  8. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    Проверил на проце (P4), уходит в ребут.