Как программно отключить аппаратную предварительную выборку?
Я хотел бы программно отключить аппаратную предварительную выборку.
ИзОптимизация производительности приложений на микроархитектуре 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>