Skip to content

Commit

Permalink
Fix VMWare bug message to include information about the workaround
Browse files Browse the repository at this point in the history
  • Loading branch information
rocallahan committed Nov 5, 2015
1 parent c4e5fdb commit ca686c1
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/CPUIDBugDetector.cc
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ static bool rcb_counts_ok(uint64_t prev, uint64_t current, const char* source) {
"instructions\n"
" sometimes fails to be counted by the conditional branch "
"performance\n"
" counter. Partial workarounds have been enabled but replay may "
"diverge.\n"
" Consider running rr not in a VMWare guest.\n"
" counter. Work around this problem by adding\n"
" monitor_control.disable_hvsim_clusters = true\n"
" to your .vmx file.\n"
"\n");
}
return false;
Expand Down
6 changes: 6 additions & 0 deletions src/CPUIDBugDetector.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@ class Task;
/**
* Helper to detect when the "CPUID can cause rcbs to be lost" bug is present.
* See http://robert.ocallahan.org/2014/09/vmware-cpuid-conditional-branch.html
*
* This bug is caused by VMM optimizations described in
* https://www.usenix.org/system/files/conference/atc12/atc12-final158.pdf
* that cause instruction sequences related to CPUID to be optimized,
* eliminating the user-space execution of a conditional branch between two
* CPUID instructions (in some circumstances).
*/
class CPUIDBugDetector {
public:
Expand Down

0 comments on commit ca686c1

Please sign in to comment.