Re: [PATCH v2 6/7] tracing/user_events: Use bits vs bytes for enabled status page data

From: Beau Belgrave
Date: Tue Jul 26 2022 - 20:03:07 EST


On Tue, Jul 26, 2022 at 06:01:15PM -0400, Steven Rostedt wrote:
> On Mon, 25 Apr 2022 11:46:30 -0700
> Beau Belgrave <beaub@xxxxxxxxxxxxxxxxxxx> wrote:
>
> > diff --git a/kernel/trace/trace_events_user.c b/kernel/trace/trace_events_user.c
> > index 2bcae7abfa81..4afc41e321ac 100644
> > --- a/kernel/trace/trace_events_user.c
> > +++ b/kernel/trace/trace_events_user.c
> > @@ -40,17 +40,26 @@
> > */
> > #define MAX_PAGE_ORDER 0
> > #define MAX_PAGES (1 << MAX_PAGE_ORDER)
> > -#define MAX_EVENTS (MAX_PAGES * PAGE_SIZE)
> > +#define MAX_BYTES (MAX_PAGES * PAGE_SIZE)
> > +#define MAX_EVENTS (MAX_BYTES * 8)
> >
> > /* Limit how long of an event name plus args within the subsystem. */
> > #define MAX_EVENT_DESC 512
> > #define EVENT_NAME(user_event) ((user_event)->tracepoint.name)
> > #define MAX_FIELD_ARRAY_SIZE 1024
> >
> > +#define STATUS_BYTE(bit) ((bit) >> 3)
> > +#define STATUS_MASK(bit) (1 << ((bit) & 7))
> > +
> > +/* Internal bits to keep track of connected probes */
> > +#define EVENT_STATUS_FTRACE (1 << 0)
> > +#define EVENT_STATUS_PERF (1 << 1)
> > +#define EVENT_STATUS_OTHER (1 << 7)
>
> Did you mean to shift STATUS_OTHER by 7?
>

Yes, it should be the value 128.

> Is EVENT_STATUS_OTHER suppose to be one of the flags within the 3 bits of
> the 7 in STATUS_MASK?
>

My thought was that STATUS_OTHER would stay on the highest bit.
Then when we have other systems they would slot into (1 << 2), etc.

This may not be as important now since the byte is never given back to
the user and is only used when printing out status via the
user_events_status file in text form.

> -- Steve
>

Thanks,
-Beau