Re: [RFD] perf syscall error handling

From: Ingo Molnar
Date: Mon Nov 10 2014 - 09:47:15 EST



* David Ahern <dsahern@xxxxxxxxx> wrote:

> On 11/10/14, 5:24 AM, Ingo Molnar wrote:
> >Programmatic use in user-spaec is very simple - go with my
> >initial example, tooling can either just display the error string
> >and bail out, or do:
> >
> > if (unlikely(error)) {
> > if (!strcmp(attr->error_str, "x86/bts: BTS not supported by this CPU architecture")) {
> > fprintf(stderr, "x86/BTS: No hardware support falling back to branch sampling\n");
> > activate_x86_bts_fallback_code();
> > goto out;
> > }
>
> That makes the exact string content part of the ABI. [...]

That's ok: messages might still disappear, new messages might
still be introduced.

> [...] As I recall ftrace had a problem with format strings
> changing and tooling then limiting the ability to change it.

I think there's a real difference between extended strings
provided by an error/exception path (perf) and strings provided
by the primary ABI (ftrace).

In the first case tooling is still functional without extended
strings, in the second case ftrace tooling is useless if it
cannot interpret the ftrace string output.

So it's apples to oranges.

Thanks,

Ingo
--
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/