lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20171011191057.GA18184@krava>
Date:   Wed, 11 Oct 2017 21:10:57 +0200
From:   Jiri Olsa <jolsa@...hat.com>
To:     Arnaldo Carvalho de Melo <acme@...nel.org>
Cc:     Jiri Olsa <jolsa@...nel.org>, lkml <linux-kernel@...r.kernel.org>,
        Ingo Molnar <mingo@...nel.org>,
        Namhyung Kim <namhyung@...nel.org>,
        David Ahern <dsahern@...il.com>,
        Peter Zijlstra <a.p.zijlstra@...llo.nl>,
        Andi Kleen <andi@...stfloor.org>
Subject: Re: [PATCH 00/35] perf annotate: Use generic annotation line

On Wed, Oct 11, 2017 at 12:27:09PM -0300, Arnaldo Carvalho de Melo wrote:
> Em Wed, Oct 11, 2017 at 05:01:23PM +0200, Jiri Olsa escreveu:
> > hi,
> > I'm working on script profiling support and came up
> 
> Can you describe what you mean by "script profiling" and "script
> annotation"?

I have some prototype code that allows to get the
internal script stack to the sample and display
it later on in report:

Samples: 20K of event 'cycles:ppp', Event count (approx.): 10598322780
Overhead  Command  Script File                                                                Symbol                                                                                                                   ▒
  42.29%  python3  /usr/lib64/python3.6/site-packages/hawkey/__init__.py                      [.] union+0xe                                                                                                            ◆
  17.17%  python3  /usr/lib64/python3.6/site-packages/hawkey/__init__.py                      [.] run+0x0                                                                                                              ▒
  16.80%  python3  /usr/lib/python3.6/site-packages/dnf/cli/output.py                         [.] _skipped_packages+0x1e                                                                                               ▒
  13.64%  python3  N/A                                                                        [.] 0x00007f9a96e655a2                                                                                                   ▒
   1.48%  python3  N/A                                                                        [.] 0x00005584196c4844                                                                                                   ▒
   0.71%  python3  <frozen importlib._bootstrap>                                              [.] _call_with_frames_removed+0x0                                                                                        ▒
   0.56%  python3  <frozen importlib._bootstrap_external>                                     [.] _compile_bytecode+0x0                                                                                                ▒
   0.55%  python3  /usr/lib64/python3.6/site-packages/hawkey/__init__.py                      [.] run+0x0                                                                                                              ▒
   0.23%  python3  /usr/lib64/python3.6/sre_parse.py                                          [.] _parse+0x288                                                                                                         ▒
   0.20%  python3  /usr/lib64/python3.6/collections/__init__.py                               [.] namedtuple+0x174                                                                                                     ▒
   0.16%  python3  N/A                                                                        [.] 0x00007f9a89e9bc12                                                                                                   ▒
   0.16%  python3  <frozen importlib._bootstrap_external>                                     [.] _path_stat+0x0                                                                                                       ▒


and annotate:

Percent│         # parse a simple pattern
       │       471:     subpattern = SubPattern(state)                                                                                                                                                                 ◆
       │
       │         # precompute constants into local variables
  2.00 │       474:     subpatternappend = subpattern.append                                                                                                                                                           ▒
       │       475:     sourceget = source.get                                                                                                                                                                         ▒
  2.00 │       476:     sourcematch = source.match                                                                                                                                                                     ▒
       │       477:     _len = len                                                                                                                                                                                     ▒
       │       478:     _ord = ord                                                                                                                                                                                     ▒
       │
       │       480:     while True:                                                                                                                                                                                    ▒
       │
  6.00 │       482:         this = source.next                                                                                                                                                                         ▒
  4.00 │       483:         if this is None:                                                                                                                                                                           ▒
       │       484:             break # end of pattern                                                                                                                                                                 ▒
  2.00 │       485:         if this in "|)":                                                                                                                                                                           ▒
       │       486:             break # end of subpattern                                                                                                                                                              ▒
 10.00 │       487:         sourceget()                                                                                                                                                                                ▒
       │
  4.00 │       489:         if verbose:                                                                                                                                                                                ▒
       │                 # skip whitespace and comments
  4.00 │       491:             if this in WHITESPACE:                                                                                                                                                                 ▒
       │       492:                 continue                                                                                                                                                                           ▒
       │       493:             if this == "#":                                                                                                                                                                        ▒
       │       494:                 while True:                                                                                                                                                                        ▒
  2.00 │       495:                     this = sourceget()                                                                                                                                                             ▒
  2.00 │ 64:   496:                     if this is None or this == "\n":                                                                                                                                               ▒
       │       497:                         break                                                                                                                                                                      ▒
       │       498:                 continue                                                                                                                                                                           ▒
       │
  6.00 │       500:         if this[0] == "\\":                                                                                                                                                                        ▒
  2.00 │       501:             code = _escape(source, this, state)                                                                                                                                                    ▒


it so far for python.. I plan to post it next week

jirka

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ