On Mon, 8 Sep 2014 10:38:47 -0300, Arnaldo Carvalho de Melo wrote: > Em Sun, Sep 07, 2014 at 10:24:12PM +0200, Stephane Eranian escreveu: >> Can't you figure out it is from the kernel (in perf record) by remembering >> you got the buildid from /sys/kernel/notes? > > Sure, the question was more about how to encode that in the build-id > table in the perf.data file, i.e. we don't have a flags field there that > we could use a bit for this purpose (hey, this entry is for the kernel, > please match it to the PERF_RECORD_MMAP [kernel_kallsyms] synthesized > for the kernel). So why not adding a new build_id2_event? :) > > We know it is a kernel because the name is [kernel.kallsyms] in the > synthesized PERF_RECORD_MMAP. So perhaps we should have the kernel > pathname right after the reference relocation symbol, that way we would > use it to get the entry in the build-id table. > > I.e. parts of what we need are in the synthesized PERF_RECORD_MMAP (how > to do relocation, start-end kernel mmap, and we have parts of it in the > build-id table: the build-id and the full pathname. How to connect both > is what we're trying to achieve here, and in a backwards compatible > way. > > The (ugly) way I found to achieve all this is to concatenate the full > pathname right after the ref reloc symbol in the synthesized > PERF_RECORD_MMAP for the kernel mmap. > > Older tools would just ignore what is after the ref reloc symbol (need > to check if we put the zero there, if not, we can add the zero + the > full pathname.). > > Newer tools would look if the size of the record is longer than the > strlen(ref_reloc_symbol), and if it is, it means we have the kernel full > pathname after the ref_reloc_symbol, that we can use to find the > build-id in the build-id table. Or else, what about synthesizing a build-id event right after the kernel mmap event (in perf_event__synthesize_kernel_mmap)? This way we can have same effect of extending the mmap event while keeping backward compatibility IMHO. At report time, we might need to set a flag that it has just seen the kernel mmap event so that it expects to see a matching build-id event (use it as a kernel dso). Thanks, Namhyung > > In the future this is all moot if we add the build-id to all > PERF_RECORD_MMAP events, as described below: > >> > That leads to another problem that needs to get solved eventually: We >> > need to have the build-id into PERF_RECORD_MMAP, because we're now using >> > just the mmap filename as the key, not the contents, and for long >> > running sessions, DSOs can get updated, etc. > > - Arnaldo -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html