Skip to content
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

Support for multiple metric groups with multiple metric leaders #215

Open
cvonelm opened this issue Jul 27, 2022 · 1 comment
Open

Support for multiple metric groups with multiple metric leaders #215

cvonelm opened this issue Jul 27, 2022 · 1 comment

Comments

@cvonelm
Copy link
Member

cvonelm commented Jul 27, 2022

TL;DR: Add support for having multiple groups of metric events all with different metric leaders (and possibly metric readout intervals)

This is something I've come across in the perf documentation recently.

Using a syntax like -e {cpu_core/cycles, cpu/branch_misses} {cpu_atom/cycles, cpu_atom/mem_stores} it is possible to specify two metric readout groups with two different metric leaders in perf.

One use case is the #213 issue. As the topdown metrics require a custom metric leader (as far as I understand it), which is most probably only useful with topdown events and not "normal" events like cpu_core/cache_misses one would currently have to choose between either measuring topdown events or measuring any other event.

The biggest downside would be, that this might be a breaking change to the lo2s command line options.

@cvonelm
Copy link
Member Author

cvonelm commented Aug 4, 2022

I'm currently cleaning up the event reading code and I stumbled over this config check:

      if (arguments.provided("metric-count") && !arguments.provided("metric-leader"))
       {
           Log::fatal() << "--metric-count can only be used in conjunction with a --metric-leader";
           std::exit(EXIT_FAILURE);
       }
   
       if (arguments.provided("metric-frequency") && arguments.provided("metric-leader"))
       {
           Log::fatal() << "--metric-frequency can only be used with the default --metric-leader";
           std::exit(EXIT_FAILURE);
       }

Does anybody remember why we have these checks?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants