perf record: Add option to avoid updating buildid cache

There are situations where there is enough information in the perf.data
to process the samples. Updating the buildid cache may add unecessary
overhead in terms of disk space and time (copying large elf images).

A persistent option to do this already exists via the perfconfig file,
simply do:

[buildid]
dir = /dev/null

This patch provides a way to suppress builid cache updates on a per-run
basis.  It addds a new option, -N, to perf record. Buildids are still
generated in the perf.data file.

Cc: David S. Miller <davem@davemloft.net>
Cc: Frédéric Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
LKML-Reference: <4c19ef89.93ecd80a.40dc.fffff8e9@mx.google.com>
Signed-off-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Stephane Eranian
2010-06-17 11:39:01 +02:00
committed by Arnaldo Carvalho de Melo
parent 70c3856b2f
commit a1ac1d3c08
4 changed files with 21 additions and 1 deletions

View File

@ -16,6 +16,8 @@
#include "symbol.h"
#include "debug.h"
static bool no_buildid_cache = false;
/*
* Create new perf.data header attribute:
*/
@ -470,7 +472,8 @@ static int perf_header__adds_write(struct perf_header *self, int fd)
}
buildid_sec->size = lseek(fd, 0, SEEK_CUR) -
buildid_sec->offset;
perf_session__cache_build_ids(session);
if (!no_buildid_cache)
perf_session__cache_build_ids(session);
}
lseek(fd, sec_start, SEEK_SET);
@ -1189,3 +1192,8 @@ int event__process_build_id(event_t *self,
session);
return 0;
}
void disable_buildid_cache(void)
{
no_buildid_cache = true;
}