Re: [PATCH v4 0/6] Add support for Firefox's gecko profile format

From: Anup Sharma
Date: Wed Jul 19 2023 - 17:22:11 EST


On Wed, Jul 19, 2023 at 08:22:24AM -0700, Ian Rogers wrote:
> On Wed, Jul 19, 2023 at 4:04 AM Anup Sharma <anupnewsmail@xxxxxxxxx> wrote:
> >
> > On Wed, Jul 19, 2023 at 04:15:52AM +0530, Anup Sharma wrote:
> > > This patch series adds support for Firefox's gecko profile format.
> > > The format is documented here [1].
> > >
> > > I have incorporated several changes based on feedback from the
> > > previous version of the patch.
> > >
> > > Changes in v3:
> > a small typo here. It should be v4 instead of v3 (changes in v4).
> > > - Implemented object-oriented programming (OOP) approach for Thread and Sample
> > > to improve code organization and maintainability.
> > > - Enhanced user experience by introducing argparse for changing color settings
> > > of user and kernel symbols during execution.
> > > - Ensured proper module encapsulation by adding imports wherever necessary.
> > > - Improved code readability by adding descriptive comments and type annotations.
> > >
> > > These changes focus on adopting OOP principles, enhancing user interaction with argparse,
> > > and making the code more readable with comments and type information.
> > >
> > > TODO:
> > > - use cpu_mode to determine the category instead of finding it from symbol name.
> > > - Write a test.
> > > - add direct execution command for this script under script/python/bin directory.
> > >
>
> Thanks Anup, is there a minimal TODO so that some code can be merged?

Yaah, only the first TODO is left, will discuss during office hours.

> I didn't have any comments for this series so:
> Acked-by: Ian Rogers <irogers@xxxxxxxxxx>

Thanks for the review.

> I think even the test can be follow up as the code isn't on the critical path.

By the way, I've finished writing the test and will send it very soon.

> Thanks,
> Ian
>
> > > Committer Testing:
> > > - Tested with a perf.data file generated for single and multiple cpu
> > > cores enabled.
> > > - Uploaded the stdout into profiler.firefox.com and verified the
> > > output.
> > > - Verified the output with the output generated by the existing
> > > script as mentioned here [2].
> > > Method:
> > > - perf record -F 99 -a -g -- sleep 5
> > > - perf script firefox-gecko-converter.py > output.json
> > > - upload output.json to profiler.firefox.com
> > >
> > > [1] https://github.com/firefox-devtools/profiler/blob/main/docs-developer/gecko-profile-format.md
> > > [2] https://perf.wiki.kernel.org/index.php/Tutorial#Firefox_Profiler
> > >
> > > Anup Sharma (6):
> > > perf scripts python: Add initial script file with usage information
> > > perf scripts python: Extact necessary information from process event
> > > perf scripts python: Add classes and conversion functions
> > > perf scripts python: Add trace end processing and PRODUCT and
> > > CATEGORIES information
> > > perf scripts python: implement internal get or create frame, stack and
> > > string function
> > > perf scripts python: Implement add sample function and thread
> > > processing
> > >
> > > .../scripts/python/firefox-gecko-converter.py | 339 ++++++++++++++++++
> > > 1 file changed, 339 insertions(+)
> > > create mode 100644 tools/perf/scripts/python/firefox-gecko-converter.py
> > >
> > > --
> > > 2.34.1
> > >