Comments (7)
Hey, thank you a lot.
Sadly it does not work. I still get some errors bacause of some buggy parsing (I think parts of that are on my side). I decided to use pcm for the moment because I don't necessarily need all the information in that density. And from my point of view I would have to put a lot more work into it to make it work on at least one of the machines I have to test it.
For the cascade-lake integration: In the newest mapfile.csv from Intel they use GenuineIntel-6-55-[01234]
for skylakex and GenuineIntel-6-55-[56789ABCDEF]
for cascade-lake instead of the old GenuineIntel-6-55
only for skylakex which makes this a bit more complicated than I thought.
But since I started updating parts of this (rust-x86, rust-perfcnt etc), I'll try to maybe finish some work in my free time and I hope maybe you'll see one or two PRs.
(especially the db-update for rust-x86 is a thing I would like to finish)
from autoperf.
Hey, thanks for using the tool! Yes a PR to make it compile again would be most welcome!
regarding the fc_mask parser error
: it seems like you're missing a /
at the end (when you run the command manually)? e.g., would this work:
perf stat -aA -I 250 -x ';' -o out/1_stat.csv \
-e uncore_iio_free_running_5/name=uncore_iio_free_running_5.UNC_IIO_TXN_REQ_BY_CPU.CFG_READ.PART1,event=0xc1,umask=0x40,fc_mask=0x7/
echo 2
Also I would be happy to learn how to mention your work/autoperf if I end up using it.
Feel free to cite this work: https://dl.acm.org/doi/10.1145/2967360.2967375
from autoperf.
Hey, the PR is #5 . I also changed two other things besides making it compile again, but they re not that important, only nice to have.
Sadly the /
didn't help, I still have the same error:
perf stat -aA -I 250 -x ';' -o out/1_stat.csv \
-e uncore_iio_free_running_5/name=uncore_iio_free_running_5.UNC_IIO_TXN_REQ_BY_CPU.CFG_READ.PART1,event=0xc1,umask=0x40,fc_mask=0x7/
echo 2
event syntax error: '..umask=0x40,fc_mask=0x7/'
\___ unknown term 'fc_mask' for pmu 'uncore_iio_free_running_5'
valid terms: event,umask,config,config1,config2,name,period,percore
Initial error:
event syntax error: '..umask=0x40,fc_mask=0x7/'
\___ unknown term 'fc_mask' for pmu 'uncore_iio_free_running_5'
valid terms: event,umask,config,config1,config2,name,period,percore
Run 'perf list' for a list of valid events
Usage: perf stat [<options>] [<command>]
-e, --event <event> event selector. use 'perf list' to list available events
2
Could it have something to do with the counters.toml? And how could I add my architecture to it?
from autoperf.
Hi, so it looks like perf does not support the fc_mask
attribute for this perf event.
fc_mask
is added here:
Line 561 in 5675fe8
and it's ultimately coming from the x86 crate which parses the official Intel CSVs to get this information:
e.g., the fc
attribute here https://github.com/gz/rust-x86/blob/523296c4ecfad57ef26aabdde1446c788dbc668e/x86data/perfmon_data/CLX/cascadelakex_uncore_v1.04.json#L2679
I didn't actually end up finding the UNC_IIO_TXN_REQ_BY_CPU.CFG_READ.PART1
event in the cascade lake file, so not sure how this event is generated by the tool? Did you end up updating the performance counters info of the x86
crate?
from autoperf.
Hey,
I tried updating the files and still have some smaller problems with that. Mostly with the parsing because some values changed a lot or on a weird way (counter over 8, filter values missing etc) and I'm not that sure about safe defaults and safe value ranges but I'll try to make it work and I maybe have to change the parsing-part a bit.
from autoperf.
I see.. About the counters.toml, yes you'd probably need to add an entry for cascade lake, you can follow the same style as skylake: https://github.com/gz/autoperf/blob/master/src/counters.toml#L43
It should look something like this:
[cascadelake]
family = X # Model number taken from CPUID
models = Y # Model number taken from CPUID taken
# Finally these values can be found by counting the number of units in
# /sys/bus/event_source/devices/
# e.g., based on your issue it looks like you'll have 5 IMC units so IMC = 5
fixed_counters = { CPU = A, UBO = B, IMC = C } #
programmable_counters = { CPU = 4, UPI = 4, CHA = 4, IIO = 4, IMC = 4, IRP = 4, M2M = 4, M3UPI = 4, PCU = 4, UBO = 2, CBO = 4 }
It might be that there are some new units in cascade lake that aren't supported yet.
Then it would print a warning (
Line 77 in 5675fe8
from autoperf.
btw. one simple fix to make progress for now is to just add this event to the ignore list here:
https://github.com/gz/autoperf/blob/master/src/profile.rs#L113
from autoperf.
Related Issues (4)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from autoperf.