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]
Date:	Mon, 24 Aug 2015 17:20:40 -0300
From:	Arnaldo Carvalho de Melo <acme@...nel.org>
To:	Adrian Hunter <adrian.hunter@...el.com>
Cc:	Ingo Molnar <mingo@...nel.org>, linux-kernel@...r.kernel.org,
	Jiri Olsa <jolsa@...hat.com>
Subject: Re: [PATCH V8 10/25] perf tools: Add example call-graph script

Em Mon, Aug 24, 2015 at 10:00:17AM +0300, Adrian Hunter escreveu:
> On 21/08/15 18:28, Arnaldo Carvalho de Melo wrote:
> > Em Fri, Aug 21, 2015 at 12:21:25PM -0300, Arnaldo Carvalho de Melo escreveu:
> >> Em Fri, Aug 21, 2015 at 12:11:33PM -0300, Arnaldo Carvalho de Melo escreveu:
> >>> [acme@zoo ~]$ perf script -s ~/libexec/perf-core/scripts/python/export-to-postgresql.py bts_example branches calls
> >>> 2015-08-21 12:10:00.504126 Creating database...
> >>> QSqlDatabase: QPSQL driver not loaded
> >>> QSqlDatabase: available drivers: QSQLITE
> >>> QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins
> >>> QSqlQuery::exec: database not open
> >>> Traceback (most recent call last):
> >>>   File "/home/acme/libexec/perf-core/scripts/python/export-to-postgresql.py", line 87, in <module>
> >>>     do_query(query, 'CREATE DATABASE ' + dbname)
> >>>   File "/home/acme/libexec/perf-core/scripts/python/export-to-postgresql.py", line 78, in do_query
> >>>     raise Exception("Query failed: " + q.lastError().text())
> >>> Exception: Query failed: Driver not loaded Driver not loaded
> >>> Error running python script /home/acme/libexec/perf-core/scripts/python/export-to-postgresql.py
> >>> [acme@zoo ~]$ 
> >>
> >> A-ha, this was missing:
> >>
> >> [root@zoo ~]# rpm -ql qt-postgresql 
> >> /usr/lib64/qt4/plugins/sqldrivers/libqsqlpsql.so
> >> [root@zoo ~]#
> >>
> >> [acme@zoo ~]$ perf script -s ~/libexec/perf-core/scripts/python/export-to-postgresql.py bts_example branches calls
> >> 2015-08-21 12:20:01.841677 Creating database...
> >> 2015-08-21 12:20:02.556853 Writing to intermediate files...
> >> 2015-08-21 12:20:03.262814 Copying to database...
> >> 2015-08-21 12:20:03.783109 Removing intermediate files...
> >> 2015-08-21 12:20:03.790282 Adding primary keys
> >> 2015-08-21 12:20:04.294342 Adding foreign keys
> >> 2015-08-21 12:20:04.718238 Done
> >> [acme@zoo ~]$ 
> >>
> >> Now to the next steps... Lets see how this looks like with BTS...
> > 
> > So, after running:
> > 
> >   [acme@zoo linux]$ python
> >   tools/perf/scripts/python/call-graph-from-postgresql.py bts_example
> > 
> > I got a GUI and after expanding some callchains I took this screenshot:
> > 
> >   http://vger.kernel.org/~acme/perf/call_graph_example_intel_bts.png
> > 
> > Cool stuff! But it seems the COMM got messed up? I.e. that "1380:1380"
> > first level after "ls".
> 
> That is, in fact, correct.  The top-level is the process (comm).  The next
> level is the threads (pid/tid) for that process.  Currently, each thread is
> reported separately.

Ok, understood.

> For the future, there ought to be an option to combine the data for all
> threads of a process, or all processes with the same comm.  Also presently
> it is not tracking if a thread sets it's own comm (e.g. some multi-threaded
> applications name each thread).

And in that case it would be nice to have both the comms and pid/tid.

- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ