-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
perf timer should work on non-Intel #87
Comments
Hello, when I'm running uarch-bench in my virtual machine (ubuntu 20.04) with the i7-10700 CPU, this problem occurred. |
Hi meop0, Does the VM have network access? Most VMs don't pass through performance counters, so even if you resolve this problem, I wouldn't expect it to work with If you want to see what event file uarch-bench is trying to look for, you can try this:
That said, since I don't think perf events will work in your VM, you can just use the default |
It turns out that Besides, VMware can virtualize the CPU counters and Anyway, uarch is an awesome benchmark. Thank you so much for open source. |
Ah OK. So does In general I'm not really happy with this whole event file downloading thing: it's inherited from the jevents library I used. I'd prefer instead to have the files checked in or compiled directly into the binary even though it would mean that I have to periodically update them. I'll need to do something like that to support AMD anyway.
Ah nice. Despite what I said earlier, several VMs may also allow counter access, but it may not be on by default or something. I suppose the hypervisor needs to virtualize this by switching around the counter configuration, saving values and so on, every time the guest changes. To do it right you need a pretty comprehensive view of all the possible MSRs and configs, and it has to be kept to date, so it doesn't seem trivial.
Huh, that error message occurs when a couple of perf related |
Right now
--timer=perf
fails on non-Intel platforms (and even on Intel platforms if the event file is not downloaded or not found for the current platform), with the obscure errorERROR: jevents failed while reading events, error -5
as described in #83.This is because we rely on jevents, which is Intel-only as both the event source and event configuration and sampling code. We should more away from jevents for both things (using libpfm4 for the event lists, which is the more complex of the two which we already do in libpfm).
Probably we can introduce a new
--timer=perf-generic
using the generic implementation and leave the old one alone for now.The text was updated successfully, but these errors were encountered: