LINUX.ORG.RU

Как считать флаги Intel?

 


0

1

Хочу получить информацию из некоторых флагов: IA32_PEBS_ENABLE, IA32_PMCx и т.д. Как к ним обратится? Пробую через rdmsr - выдает ноль, чтобы я ни подавал ему на вход. Модуль msr подключен.

Пробую через rdmsr - выдает ноль, чтобы я ни подавал ему на вход.

Каким образом ты через rdmsr пробуешь? Ассемблерной вствкой?

Модуль msr подключен.

А разве для того чтоб инструкция rdmsr отработала, нужно подключать какой-то модуль?

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

rdmsr - это не только ценный мех^W^W ассемблерная инструкция, но еще и утилита из пакета msr-tools. И вот утилите модуль msr таки нужен. Правда учитывая что проект сдох в 2013 году, сложно сказать надо ли им пользоваться для отладки или нет и насколько хорошо он работает с современными процессорами

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от SZT

разве для того чтоб инструкция rdmsr отработала, нужно подключать какой-то модуль?

Инструкция rdmsr работает только на Ring 0, если я правильно помню.

i-rinat ★★★★★
()

Пробую через rdmsr - выдает ноль, чтобы я ни подавал ему на вход.

Если утилита rdmsr не ругается, что прочитать регистр не вышло, скорее всего, там действительно ноль.

Попробуй rdmsr 0x10. В регистре 0x10 — внутренний счётчик тактов, так что там должны быть ненулевые значения, и каждый раз разные.

i-rinat ★★★★★
()
Ответ на: комментарий от Nemezida

Можно ли как то этим путем добраться до IA32_PEBS_ENABLE?

Да. И ты получаешь 0. Почему ты ждёшь, что там будет не ноль? Я вот сейчас нашёл какую-то выжимку из pdf’ки, в которой написано, что «RESET Value — 00000000_00000000H».

Это же инфраструктура для трассировки. Вполне нормально, что она по умолчанию выключена.

i-rinat ★★★★★
()
Ответ на: комментарий от anonymous

я имел ввиду конечно же набор утилит, а не сам модуль, который как я подозреваю, вполне себе обновляется в рамках исходников ядра

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