Messages in this thread | | | From | Stephane Eranian <> | Date | Thu, 14 Feb 2019 13:39:29 -0800 | Subject | Re: [RFC/PATCH 00/14] perf record: Add support to store data in directory |
| |
On Thu, Feb 14, 2019 at 1:35 PM Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> wrote: > > On Thu, Feb 14, 2019, 6:31 PM Stephane Eranian <eranian@google.com wrote: >> >> On Thu, Feb 14, 2019 at 6:00 AM Arnaldo Carvalho de Melo >> <acme@kernel.org> wrote: >> > >> > Em Thu, Feb 14, 2019 at 02:26:38PM +0100, Jiri Olsa escreveu: >> > > On Thu, Feb 14, 2019 at 09:57:59AM -0300, Arnaldo Carvalho de Melo wrote: >> > > > But with the build id in the MMAPs we wouldn't need to scan anything at >> > > > 'perf record' time, just at 'perf archive' time, where we would scan >> > > > everything, and as soon as we find a hit, we add that DSO to the list of >> > > > things we need to put in the tarball. >> > >> > > ok.. it might little change the expected behavour in that you will not >> > > have .debug cache populated until you run perf archive.. some profile >> > > data might stop report after you reinstall the binary.. >> > >> Today perf record does collect the buildids once monitor is completed, >> it does one >> pass over the perf.data file looking for MMAP records, or at least in >> the version I am >> more familiar with. > > > It does look for the MMAP records, how else would it find the DSO pathnames? > I was not talking about the synthesize_mmap() code. I was talking about process_buildids().
> > - Arnaldo > > Sent from smartphone >> >> >> > Well, nothing prevents us from continuing to, in 'perf record', go thru >> > the perf.data just collected to populate the .debug cache, its just that >> > we would do it just for that, for populating the cache, we wouldn't >> > _have_ to do that for collecting the buildids. >> >> Sure, for compatibility reasons. >> In pipe mode, this would also avoid the need for perf inject -b -i -, >> which is a win. >> >> perf archive is useful if you do not have a way to locate the binary using only >> the buildid on the analysis machine. >> > >> > > on the other hand '.debug' cache would stop growing uncontrolably.. >> > > so I think I'd be ok with this >> > >> I agree! >> >> > That is another problem, and one that has to be solved in a way similar >> > to ccache's --max-size option. >> > >> > The .debug cache is useful for various workflows, but may get in the way >> > for some others, which is why we have ways to disable it. >> > >> Correct. >> >> > For instance, when working on some project it is handy to have copies of >> > binaries saved so that older perf.data files can find a file that was >> > rewritten by the compiler when doing changes in it, etc. >> > >> > With the .debug cache and if using -g, we can get the older copy of the >> > binary _and_ its sources, annotation for older versions continue to >> > work, etc. >> > >> > - Arnaldo
| |