open-s4c / benchkit

A push-button end-to-end performance evaluation pipeline for automatically exploring the parameter space
MIT License
12 stars 17 forks source link

Add: ftrace support #130

Open TriedAngle opened 1 month ago

TriedAngle commented 1 month ago

@apaolillo @jschwe

this pull request's intention is to add ftrace parsing support to benchkit. it's not complete yet, I seem to have issues with the parsing of the events.

I also had the issue of instantiating adb bridge with my local android device that does not have an IP Address but a small identifier code (similar to hdc right now?) do I miss something? For a quick workaround I removed ip_addr and port from AndroidDebugBridge and added identifier to it (this may cause issues for other things?, at least it works for my experimentation) I also added a from_device constructor for the AndroidDebugBridge, very similar to HDC.

apaolillo commented 1 month ago

Adding ftrace support is a great idea! But shouldn't this be develop in a module that is independent from Android? This is a general capability of Linux right? Btw for now I only see a test file (and no real "integration" of the module), I guess you're trying this out?

TriedAngle commented 1 month ago

This is a general capability of Linux right?

yes it is, android is just the target of main concern right now, so tested it with it. I will make it into a module once it works and split the test between android and linux (and maybe harmony)

Btw for now I only see a test file (and no real "integration" of the module), I guess you're trying this out?

yes, it's a mix between trying out and adding the module. Once the test works, it's moved into a module.

TriedAngle commented 1 month ago

@jschwe @apaolillo the perfetto TraceProcessor works and allows easy event filtering via SQL. The next step is to extract it and write a library out of it. Where in benchkit/ would be a good place for that? Concerning benchmarks, I suppose this is a pre and post run hook.

Also where should the platform abstraction take place? Right now the comm layer is not working for android and harmony, and if we assume it was, where would the current functions like: enable_tracing(AndroidDebugBridge) be placed?