Re: [PATCH V3 2/3] perf tool: Move cpumode resolve code to add_callchain_ip

From: Jiri Olsa
Date: Mon Nov 17 2014 - 09:01:08 EST


On Fri, Nov 14, 2014 at 08:44:11AM -0500, kan.liang@xxxxxxxxx wrote:

SNIP

> - int i;
> - int j;
> - int err;
> + int i, j, err = 0;
> int skip_idx __maybe_unused;
>
> callchain_cursor_reset(&callchain_cursor);
> @@ -1467,39 +1489,13 @@ static int thread__resolve_callchain_sample(struct thread *thread,
> #endif
> ip = chain->ips[j];
>
> - if (ip >= PERF_CONTEXT_MAX) {
> - switch (ip) {
> - case PERF_CONTEXT_HV:
> - cpumode = PERF_RECORD_MISC_HYPERVISOR;
> - break;
> - case PERF_CONTEXT_KERNEL:
> - cpumode = PERF_RECORD_MISC_KERNEL;
> - break;
> - case PERF_CONTEXT_USER:
> - cpumode = PERF_RECORD_MISC_USER;
> - break;
> - default:
> - pr_debug("invalid callchain context: "
> - "%"PRId64"\n", (s64) ip);
> - /*
> - * It seems the callchain is corrupted.
> - * Discard all.
> - */
> - callchain_cursor_reset(&callchain_cursor);
> - return 0;
> - }
> - continue;
> - }
> -
> err = add_callchain_ip(thread, parent, root_al,
> cpumode, ip);
> - if (err == -EINVAL)
> - break;

yea, I was wondering, why we did not spot this nop before ;-)

> if (err)
> - return err;
> + goto exit;

I dont understand this change seems like extra nop complication..
why not return in here and rather recheck at the end again?

jirka

> }
> -
> - return 0;
> +exit:
> + return (err < 0) ? err : 0;
> }
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/