Как программно отключить аппаратную предварительную выборку?

Я хотел бы программно отключить аппаратную предварительную выборку.

ИзОптимизация производительности приложений на микроархитектуре Intel® Core ™ с использованием аппаратных средств предварительной выборки а такжеКак выбрать аппаратную и программную предварительную выборку в 32-разрядной архитектуре Intel®Мне нужно обновить MSR, чтобы отключить аппаратную предварительную выборку.

Вот соответствующий фрагмент:

«Настройки DPL Prefetch и L2 Streaming Prefetch также можно программно изменить, написав утилиту драйвера устройства для изменения битов вIA32_MISC_ENABLE регистр -MSR 0x1A0, Такая утилита предлагает возможность включать или отключать механизмы предварительной выборки, не требуя простоя сервера.

Таблица ниже показывает биты вIA32_MISC_ENABLE MSR которые должны быть изменены, чтобы контролироватьDPL и потоковая предварительная выборка L2:

Prefetcher Type MSR (0x1A0) Bit Value 
DPL (Hardware Prefetch) Bit 9 0 = Enable 1 = Disable 
L2 Streamer (Adjacent Cache Line Prefetch) Bit 19 0 = Enable 1 = Disable"

Я пытался с помощьюhttp://etallen.com/msr.html но это не сработало. Я также пытался использоватьwrmsr вasm/msr.h прямо, но это segfaults. Я попытался сделать это в модуле ядра ... и убил машину.

Кстати - я использую ядро 2.6.18-92.el5 и оно имеетMSR связаны в ядре:

$ grep -i msr /boot/config-$(uname -r)
CONFIG_X86_MSR=y
...
<,/pre>
    

Ответы на вопрос(4)

Ваш ответ на вопрос