Re: ftrace behaviour (was: [PATCH] ftrace: introducetracing_reset_online_cpus() helper)

From: Ingo Molnar
Date: Fri Dec 19 2008 - 18:35:21 EST



* Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:

> > hm, that ftrace behavior is silly. Steve, i think i mentioned this a
> > long time ago and i thought it got fixed? Changing the ring buffer
> > size is a slow op, it should include an implicit reset and should be
> > plug-and-play with no dependencies of having to stop the trace or
> > something.
>
> I think you are referencing a different issue, where we passed in a NULL
> buffer pointer and expected it to be resized. I still think that should
> not return a success, but that's a different issue altogether.
>
> Before the ring buffer, the only safe way to resize the buffer was to
> switch the tracer to none (aka nop). Now, the only thing you need to do
> is disable tracing. This is probably a good thing since it forces the
> user to stop tracing, otherwise the tracing will stop during the resize
> anyway, and the user will wonder why they lost data.

uhm, the user just resized the buffer - he will not be wondering about any
impact.

And that's why we should do a full reset: that makes it abundantly clear
what happened. We shouldnt pretend to be able to do something (seemless,
lightweight buffer size change with no visible impact) which we obviously
cannot reliably offer.

Buffer resize is a slow op, and everyone realizes that. Most people will
in fact say: "hey, I didnt even need to reboot to change the trace buffer
size, cool!".

The current "only allow resizing while tracing is disabled" is an
unintuitive and counterproductive restriction - a borderline bug in fact.

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/