Commit d274b66f authored by Jerome Marchand's avatar Jerome Marchand

llcstat: print a nicer error message when hardware events are missing

Hardware events such as CACHE_MISSES and CACHE_REFERENCES are usually
not available on virtual machine. Print a more useful message when
this happen.
parent 8b17dc34
...@@ -78,12 +78,16 @@ if args.ebpf: ...@@ -78,12 +78,16 @@ if args.ebpf:
exit() exit()
b = BPF(text=bpf_text) b = BPF(text=bpf_text)
b.attach_perf_event( try:
ev_type=PerfType.HARDWARE, ev_config=PerfHWConfig.CACHE_MISSES, b.attach_perf_event(
fn_name="on_cache_miss", sample_period=args.sample_period) ev_type=PerfType.HARDWARE, ev_config=PerfHWConfig.CACHE_MISSES,
b.attach_perf_event( fn_name="on_cache_miss", sample_period=args.sample_period)
ev_type=PerfType.HARDWARE, ev_config=PerfHWConfig.CACHE_REFERENCES, b.attach_perf_event(
fn_name="on_cache_ref", sample_period=args.sample_period) ev_type=PerfType.HARDWARE, ev_config=PerfHWConfig.CACHE_REFERENCES,
fn_name="on_cache_ref", sample_period=args.sample_period)
except:
print("Failed to attach to a hardware event. Is this a virtual machine?")
exit()
print("Running for {} seconds or hit Ctrl-C to end.".format(args.duration)) print("Running for {} seconds or hit Ctrl-C to end.".format(args.duration))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment