Re: [RFC] perf record: missing buildid for callstack modules

From: Peter Zijlstra
Date: Tue Jan 12 2016 - 11:10:50 EST


On Tue, Jan 12, 2016 at 12:48:12PM -0300, Arnaldo Carvalho de Melo wrote:
> Em Tue, Jan 12, 2016 at 04:34:40PM +0100, Peter Zijlstra escreveu:
> > On Tue, Jan 12, 2016 at 11:38:05AM -0300, Arnaldo Carvalho de Melo wrote:
> > > > Also, just parsing the gigabytes of data that comes out of perf-record
> > > > takes significant time, let alone poking around the filesystem and
> > >
> > > Right, that is what we would elliminate with stashing the content-based
> > > cookie into a PERF_RECORD_MMAP3 record.
> >
> > Again, how would you go about getting that cookie for a DSO? The whole
> > kernel isn't involved with dlopen(), all it sees is a mmap(PROT_EXEC).
> >
> > > BTW, mtime would incur in postprocessing it all.
> >
> > mtime can still warn you if things are non-matching at report time
> > without this post-processing, and thereby solves the problem of staring
> > at broken/wrong data.
>
> How will we collect the mtime for the DSOs in PERF_RECORD_MMAP records
> if we don't look at those records?

Kernel side, the vma has a vm_file member. So
vma->vm_file->f_inode->i_mtime will get us that for all file based
mmap()s.

(or maybe ctime, not sure how popular it is these days to switch off
mtime accounting).

> What mtime are you talking about?

perf-report looks at those records, it can compare the recorded mtime vs
the currently observed mtime and complain if non-matching.