Re: [PATCH v4 09/10] user_events: Optimize writing events by only copying data once

From: Steven Rostedt
Date: Mon Nov 08 2021 - 18:04:57 EST


On Mon, 8 Nov 2021 15:00:34 -0800
Beau Belgrave <beaub@xxxxxxxxxxxxxxxxxxx> wrote:

> > > - memcpy(entry + 1, data, datalen);
> > > + if (unlikely(!copy_nofault(entry + 1, i->count, i)))
> >
> > Need:
> > __trace_event_discard_commit(event_buffer.buffer, event_buffer.event);
> >
> > Because the trace_event_buffer_reserve() will not only allocate space on
> > the ring buffer, but may also disable preemption.
> >
> > -- Steve
> >
>
> Ah, thank you!

Which reminds me that trace_event_buffer_reserve() expects to be called
with preemption disabled. And I'm guessing that may not be the case for you.

I'll change this so that it always disables preemption even if it uses the
filter buffer, and *always* disables preemption on return.

-- Steve