----- On Mar 17, 2022, at 12:07 PM, rostedt rostedt@xxxxxxxxxxx wrote: > On Thu, 17 Mar 2022 09:32:55 -0400 (EDT) > Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx> wrote: > >> Unless there is a particular reason for using preprocessor defines here, the >> following form is typically better because it does not pollute the preprocessor >> defines, e.g.: >> >> enum lock_contention_flags { >> LCB_F_SPIN = 1U << 0; >> LCB_F_READ = 1U << 1; >> LCB_F_WRITE = 1U << 2; >> LCB_F_RT = 1U << 3; >> LCB_F_PERCPU = 1U << 4; >> }; > > If you do this, then to use the __print_flags(), You'll also need to add: > > TRACE_DEFINE_ENUM(LCB_F_SPIN); > TRACE_DEFINE_ENUM(LCB_F_READ); > TRACE_DEFINE_ENUM(LCB_F_WRITE); > TRACE_DEFINE_ENUM(LCB_F_RT); > TRACE_DEFINE_ENUM(LCB_F_PERCPU); > > Which does slow down boot up slightly. So it looks like there is (currently) a good reason for going with the #define. As a side-discussion, I keep finding it odd that this adds overhead on boot. I suspect this is also implemented as a linked list which needs to be iterated over at boot-time. With a few changes to these macros, these linked lists could be turned into arrays, and thus remove the boot-time overhead. Thanks, Mathieu > > -- Steve -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com