[llvm] r333632 - [llvm-exegesis][NFCI] Counter::Counter(): more useful msg on event open error

Roman Lebedev via llvm-commits llvm-commits at lists.llvm.org
Thu May 31 00:08:27 PDT 2018


Author: lebedevri
Date: Thu May 31 00:08:26 2018
New Revision: 333632

URL: http://llvm.org/viewvc/llvm-project?rev=333632&view=rev
Log:
[llvm-exegesis][NFCI] Counter::Counter(): more useful msg on event open error

Summary:
I'm slowly looking into a new X86 scheduler model,
for AMD Bulldozer CPU, model 2 (bdver2, Piledriver).

And naturally, i have hit that assert :)
I happened to know what it meant, and how to fix it,
but that is not too common knowledge.

Reviewers: courbet, RKSimon

Reviewed By: courbet

Subscribers: tschuett, llvm-commits, craig.topper

Differential Revision: https://reviews.llvm.org/D47572

Modified:
    llvm/trunk/tools/llvm-exegesis/lib/PerfHelper.cpp

Modified: llvm/trunk/tools/llvm-exegesis/lib/PerfHelper.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-exegesis/lib/PerfHelper.cpp?rev=333632&r1=333631&r2=333632&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-exegesis/lib/PerfHelper.cpp (original)
+++ llvm/trunk/tools/llvm-exegesis/lib/PerfHelper.cpp Thu May 31 00:08:26 2018
@@ -96,9 +96,12 @@ Counter::Counter(const PerfEvent &Event)
   const uint32_t Flags = 0;
   perf_event_attr AttrCopy = *Event.attribute();
   FileDescriptor = perf_event_open(&AttrCopy, Pid, Cpu, GroupFd, Flags);
-  assert(FileDescriptor != -1 &&
-         "Unable to open event, make sure your kernel allows user space perf "
-         "monitoring.");
+  if (FileDescriptor == -1) {
+    llvm::errs() << "Unable to open event, make sure your kernel allows user "
+                    "space perf monitoring.\nYou may want to try:\n$ sudo sh "
+                    "-c 'echo -1 > /proc/sys/kernel/perf_event_paranoid'\n";
+  }
+  assert(FileDescriptor != -1 && "Unable to open event");
 }
 
 Counter::~Counter() { close(FileDescriptor); }




More information about the llvm-commits mailing list