Re: [RFC] btf: Some structs are doubled because of struct ring_buffer

From: Peter Zijlstra
Date: Fri Dec 13 2019 - 13:03:01 EST


On Fri, Dec 13, 2019 at 12:11:18PM -0500, Steven Rostedt wrote:
> On Fri, 13 Dec 2019 08:51:57 -0800
> Alexei Starovoitov <alexei.starovoitov@xxxxxxxxx> wrote:
>
> > It had two choices. Both valid. I don't know why gdb picked this one.
> > So yeah I think renaming 'ring_buffer' either in ftrace or in perf would be
> > good. I think renaming ftrace one would be better, since gdb picked perf one
> > for whatever reason.
>
> Because of the sort algorithm. But from a technical perspective, the
> ring buffer that ftrace uses is generic, where the perf ring buffer can
> only be used for perf. Call it "event_ring_buffer" or whatever, but
> it's not generic and should not have a generic name.

Your ring buffer was so generic that I gave up trying to use it after
trying for days :-( (the fundamental problem was that it was impossible
to have a single cpu buffer; afaik that is still true today)

Nor is the perf buffer fundamentally specific to perf, but there not
being another user means there has been very little effort to remove
perf specific things from it.

There are major design differences between them, which is
unquestionably, but I don't think it is fair to say one is more or less
generic.

How about we rename both? I'm a bit adverse to long names, so how about
we rename the perf one to perf_buffer and the trace one to trace_buffer?