Skip to content
This repository has been archived by the owner on Jun 11, 2024. It is now read-only.
Andrea Mambretti edited this page Sep 12, 2019 · 4 revisions

Here we try to answer the most common questions related to problems in running speculator.

1) Why I receive "Impossible to open the /dev/cpu/0/msr device" error?

This error is generally indication of the fact that the msr kernel module is not loaded. To solve this problem simply run the following command:

sudo modprobe msr

In case of further errors make sure that your kernel has the module installed.

2) Why I receive "wrmsr: pwrite: Operation not permitted" error?

This error indicates that the system has been booted with Secure Boot and therefore the Linux kernel is in "lockdown" mode. The only current solution to this is to disable secure boot. Check this for more information here.

3) Why the postprocessing fails?

For postprocessing to fail there are mainly two reasons:

  • The first possible reason is that neither of the counters UOPS_EXECUTED.CORE and UOPS.EXECUTED.THREAD was specified in speculator.json.

  • The second possible reason is that in case UOPS_EXECUTED.THREAD was used, the postprocessing script was not invoked with the -t option.

4) Why I receive "Cannot get encoding for "XXX:YYY", event not found..." error?

This error indicates that either speculator.json contains a typo or that the counter XXX:YYY does not exist for the current CPU. Verify on the intel manual which are the valid counters for your CPU version.

5) Why I receive more "UOPS_ISSUED.SLOW_LEA" hits than expected?

As we describe in the Speculator paper, there are multiple instructions or cases in which SLOW_LEA can be counted. One noticable case is the use of clflush instructions.

To Be Continued