Messages in this thread | | | Date | Fri, 14 Sep 2018 14:45:46 +0200 | From | Ingo Molnar <> | Subject | Re: [RFCv2 00/48] perf tools: Add threads to record command |
| |
* Jiri Olsa <jolsa@redhat.com> wrote:
> On Fri, Sep 14, 2018 at 02:13:07PM +0200, Ingo Molnar wrote: > > > > * Peter Zijlstra <peterz@infradead.org> wrote: > > > > > On Fri, Sep 14, 2018 at 01:47:25PM +0200, Jiri Olsa wrote: > > > > On Fri, Sep 14, 2018 at 01:15:28PM +0200, Peter Zijlstra wrote: > > > > > On Fri, Sep 14, 2018 at 11:40:22AM +0200, Ingo Molnar wrote: > > > > > > In fact keeping the files separate has scalability advantages for 'perf report' and similar > > > > > > parsing tools: they could read all the streams in a per-CPU fashion already, from the very > > > > > > beginning. > > > > > > > > > > Also writing to different files from different CPUs is good for record, > > > > > less contention on the inode state (which include pagecache). > > > > > > > > maybe I should explain a little bit more on this > > > > > > > > we write to different (per-cpu) files during the record, > > > > and at the end of the session, we take them and store > > > > them inside perf.data > > > > > > How long does it take to combine that? If we generated a lot of data, > > > that could take a fair amount of time, no? > > yep.. fair amount ;-) wasn't that bad in my tests, > but could be evil on some really big server
Also, adding any sort of 'global' processing to the end of a session sucks as a workflow principle: perf record should ideally be as lightweight as ftrace. It should trace and that's it - the processing should be done at the report phase. Shuffling hundreds of megs or gigs around at the end of the session is really bad.
> > Agreed - plus at the report stage it would be advantageous to be able to *read* per-cpu files > > as well. > > > > If we do things smartly them report will create similar NUMA affinity as the record session > > used. > > ok, separate files it is
Thanks!!
Ingo
| |