Re: [perf] perf_event.h ABI visibility question
From: Peter Zijlstra
Date: Fri Aug 24 2018 - 04:50:53 EST
On Thu, Aug 23, 2018 at 02:25:06PM -0400, Vince Weaver wrote:
>
> I notice that Linux 4.18 has the following changeset which changes the
> user visible perf_event.h file
>
> commit 6cbc304f2f360f25cc8607817239d6f4a2fd3dc5
> Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Date: Thu May 10 15:48:41 2018 +0200
>
> perf/x86/intel: Fix unwind errors from PEBS entries (mk-II)
>
> which contains
>
> --- a/include/uapi/linux/perf_event.h
> +++ b/include/uapi/linux/perf_event.h
> @@ -143,6 +143,8 @@ enum perf_event_sample_format {
> PERF_SAMPLE_PHYS_ADDR = 1U << 19,
>
> PERF_SAMPLE_MAX = 1U << 20, /* non-ABI */
> +
> + __PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63,
> };
>
>
> Is this supposed to be a user-visible interface?
>
> I realize that if the user tries to set anything above PERF_SAMPLE_MAX
> it will be caught and flagged as EINVAL.
>
> However even with the double-underscore hint in
> __PERF_SAMPLE_CALLCHAIN_EARLY the value is still in the user-visible
> header so it's now part of the ABI and I guess the manpage has to document it.
Hurphm.. visible yes, but as you say, also quite useless. Does it really
make sense to document that?