diff options
| author | Ingo Molnar <mingo@kernel.org> | 2012-10-24 10:20:57 +0200 | 
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2012-10-24 10:20:57 +0200 | 
| commit | ef8c029fa793423439e67ef0416b220d3fa3321a (patch) | |
| tree | 4199cefa6e1dcad1783040755246a14371f029af /tools/perf/builtin-trace.c | |
| parent | 6fcdb1ed2ef3548d5a9428d6ae60158ddd46a608 (diff) | |
| parent | c13d38e4a1fd5dd07135403c613c8091af444169 (diff) | |
| download | olio-linux-3.10-ef8c029fa793423439e67ef0416b220d3fa3321a.tar.xz olio-linux-3.10-ef8c029fa793423439e67ef0416b220d3fa3321a.zip  | |
Merge branch 'perf/urgent' into perf/core
Pick up v3.7-rc2 and fixes before applying more patches.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'tools/perf/builtin-trace.c')
| -rw-r--r-- | tools/perf/builtin-trace.c | 18 | 
1 files changed, 13 insertions, 5 deletions
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c index 4e9320bf11e..14b32296180 100644 --- a/tools/perf/builtin-trace.c +++ b/tools/perf/builtin-trace.c @@ -63,6 +63,10 @@ static int trace__read_syscall_info(struct trace *trace, int id)  {  	char tp_name[128];  	struct syscall *sc; +	const char *name = audit_syscall_to_name(id, trace->audit_machine); + +	if (name == NULL) +		return -1;  	if (id > trace->syscalls.max) {  		struct syscall *nsyscalls = realloc(trace->syscalls.table, (id + 1) * sizeof(*sc)); @@ -82,11 +86,8 @@ static int trace__read_syscall_info(struct trace *trace, int id)  	}  	sc = trace->syscalls.table + id; -	sc->name = audit_syscall_to_name(id, trace->audit_machine); -	if (sc->name == NULL) -		return -1; - -	sc->fmt = syscall_fmt__find(sc->name); +	sc->name = name; +	sc->fmt  = syscall_fmt__find(sc->name);  	snprintf(tp_name, sizeof(tp_name), "sys_enter_%s", sc->name);  	sc->tp_format = event_format__new("syscalls", tp_name); @@ -290,6 +291,13 @@ again:  			if (evlist->threads->map[0] == -1 || evlist->threads->nr > 1)  				printf("%d ", sample.tid); +			if (sample.raw_data == NULL) { +				printf("%s sample with no payload for tid: %d, cpu %d, raw_size=%d, skipping...\n", +				       perf_evsel__name(evsel), sample.tid, +				       sample.cpu, sample.raw_size); +				continue; +			} +  			handler = evsel->handler.func;  			handler(trace, evsel, &sample);  		}  |