2023-10-13 WPA-plugin status sync up meeting

Attendees

  • @Przemyslaw Wirkus

  • @Manoj Iyer

  • @Lina Iyer

  • Alaaeddine Chakroun

  • Nader Zouaoui

  • Gabriel Chouchane

Other

Minutes

  • Discuss WPA plugin kick off agenda.

    • We will firstly focus on counting support for WindowsPerf 3.0.0.

    • We will tackle sampling output when we finalize counting and timeline (N x counting).

  • WPA mainly for static (not real time) chart / graph GUI.

    • WPA contains many way to filter column / row data from provided data-set.

    • Mainly for plotting.

  • WPA plugin allow users to write simple data-set adapters. These can convert any format into WPA readable format.

    • Another option is to generate WPA compatible output that e.g. WPR (Recorder) can produce.

    • We can also read e.g. CSV files or JSON files and load them “via plugin” to WPA GUI for plotting.

  • WPA can be used in counting for:

    • Plotting of 1 count instance, with 1..n cores used.

    • Plotting of events and metrics in counting.

    • Plotting of timeline - a list of consecutive (in time) counts. Example command specified by user wperf stat ... -t -i <I> -n <N>.

      • Plotting of timeline would be done by reading a JSON file which contains each counting “occurrence”.

      • We may want to add timestamp to each counting (when started, up to [ms] in order to plot these with proper time scale in WPA (WPA can read e.g. timestamps as X axis).

  • Nader suggested that we can also use WPA and present meaningful data from sampling.

    • TBD as we will first focus on WPA counting support.

  • Nader suggested that we can prepare workflow in which:

    • User, with vs-extension does counting / sampling and its output can be passed directly to WPA for visualisation / plotting.

    • This is very good idea and will simplify WindowsPerf GUI (vs-extension) - we can avoid plotting code inside extension and delegate to existing tool.

    • Note: WPA is not capable for “real time” plotting, so we can prot in WPA when we finalize timelines. because timelines may be long (>1h) users will not be able to observe timeline progression in WPA.

      • Also, wperf currently do not support “real time” timeline count data output. We generate CSV file when timeline is finished.

  • Nader suggested that we should build timeline for WPA GUI plotting with JSON format only, as CSV is not so flexible.

    • We need a JSON format as it’s easier to parse compared to CSV plus it is already used in VS-extension.

    • We want to add few things to counting JSON itself, e.g:

      • Add timestamp (start / stop) or duration of count.

      • No need to add interval (-i command line option) timestamps as these are “void space” between counts. As we know when count start / stop.

      • Add to counting JSON output, when we use metrics with formula (-m <METRIC command line option), metric formula and metric unit to improve WPA plotting.

        • We do not want to call wperf to get this information as WPA is not designed to call other programs. It’s designed to statically load input file.

TODO

@Przemyslaw Wirkus - create counting examples in JSON that can be use as a stand alone example or merged into one bigger timeline JSON file.
@Przemyslaw Wirkus - add to docs info about how to position wperf.exe on a core different for one we sample / count on.
@Przemyslaw Wirkus and @Everton Constantino - improve counting JSON format: add metric info to counting when user specified with -m metric that has formula, unit etc.
@Przemyslaw Wirkus and @Everton Constantino - specify add JSON timeline output format.