Я пытаюсь использовать инструкцию WBINV в Linux для очистки кеша L1 процессора.
Следующая программа компилируется, но при запуске выдает ошибку сегментации.
int main() {asm ("wbinvd"); return 1;}
Я использую gcc 4.4.3 и запускаю ядро Linux 2.6.32-33 на моем компьютере x86.
Информация о процессоре: Intel (R) Core (TM) 2 Duo CPU T5270 @ 1,40 ГГц
Я построил программу следующим образом:
$ gcc
$ ./a.out
Ошибка сегментации
Может кто-нибудь сказать мне, что я делаю не так? Как мне заставить это работать?
P.S: Я провожу несколько тестов производительности и хочу убедиться, что предыдущее содержимое кеша процессора не влияет на результаты.
sudo
(т.е. от имени пользователя root) не приводит к нарушению сегментации (но мне не ясно, действительно ли очищен кеш ...) - person Andre Holzner   schedule 09.09.2013