Message ID | 20240525023744.231570357@goodmis.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [01/20] function_graph: Convert ret_stack to a series of longs | expand |
On Fri, 24 May 2024 22:37:11 -0400 Steven Rostedt <rostedt@goodmis.org> wrote: > From: "Steven Rostedt (Google)" <rostedt@goodmis.org> > > Instead of iterating through the entire fgraph_array[] and seeing if one > of the bitmap bits are set to know to call the array's retfunc() function, > use for_each_set_bit() on the bitmap itself. This will only iterate for > the number of set bits. > Looks good to me. Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> Thanks, > Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org> > --- > kernel/trace/fgraph.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/kernel/trace/fgraph.c b/kernel/trace/fgraph.c > index 4d503b3e45ad..5e8e13ffcfb6 100644 > --- a/kernel/trace/fgraph.c > +++ b/kernel/trace/fgraph.c > @@ -827,11 +827,10 @@ static unsigned long __ftrace_return_to_handler(struct fgraph_ret_regs *ret_regs > #endif > > bitmap = get_bitmap_bits(current, offset); > - for (i = 0; i < FGRAPH_ARRAY_SIZE; i++) { > + > + for_each_set_bit(i, &bitmap, sizeof(bitmap) * BITS_PER_BYTE) { > struct fgraph_ops *gops = fgraph_array[i]; > > - if (!(bitmap & BIT(i))) > - continue; > if (gops == &fgraph_stub) > continue; > > -- > 2.43.0 > >
On Fri, 24 May 2024 22:37:11 -0400 Steven Rostedt <rostedt@goodmis.org> wrote: > From: "Steven Rostedt (Google)" <rostedt@goodmis.org> > > Instead of iterating through the entire fgraph_array[] and seeing if one > of the bitmap bits are set to know to call the array's retfunc() function, > use for_each_set_bit() on the bitmap itself. This will only iterate for > the number of set bits. > > Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org> > --- > kernel/trace/fgraph.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/kernel/trace/fgraph.c b/kernel/trace/fgraph.c > index 4d503b3e45ad..5e8e13ffcfb6 100644 > --- a/kernel/trace/fgraph.c > +++ b/kernel/trace/fgraph.c > @@ -827,11 +827,10 @@ static unsigned long __ftrace_return_to_handler(struct fgraph_ret_regs *ret_regs > #endif > > bitmap = get_bitmap_bits(current, offset); > - for (i = 0; i < FGRAPH_ARRAY_SIZE; i++) { > + > + for_each_set_bit(i, &bitmap, sizeof(bitmap) * BITS_PER_BYTE) { > struct fgraph_ops *gops = fgraph_array[i]; > > - if (!(bitmap & BIT(i))) > - continue; > if (gops == &fgraph_stub) Ah, nit: maybe this is unlikely()? Thank you,
On Mon, 27 May 2024 09:04:34 +0900 Masami Hiramatsu (Google) <mhiramat@kernel.org> wrote: > > bitmap = get_bitmap_bits(current, offset); > > - for (i = 0; i < FGRAPH_ARRAY_SIZE; i++) { > > + > > + for_each_set_bit(i, &bitmap, sizeof(bitmap) * BITS_PER_BYTE) { > > struct fgraph_ops *gops = fgraph_array[i]; > > > > - if (!(bitmap & BIT(i))) > > - continue; > > if (gops == &fgraph_stub) > > Ah, nit: maybe this is unlikely()? Ah probably. I'll update it. Thanks, -- Steve
diff --git a/kernel/trace/fgraph.c b/kernel/trace/fgraph.c index 4d503b3e45ad..5e8e13ffcfb6 100644 --- a/kernel/trace/fgraph.c +++ b/kernel/trace/fgraph.c @@ -827,11 +827,10 @@ static unsigned long __ftrace_return_to_handler(struct fgraph_ret_regs *ret_regs #endif bitmap = get_bitmap_bits(current, offset); - for (i = 0; i < FGRAPH_ARRAY_SIZE; i++) { + + for_each_set_bit(i, &bitmap, sizeof(bitmap) * BITS_PER_BYTE) { struct fgraph_ops *gops = fgraph_array[i]; - if (!(bitmap & BIT(i))) - continue; if (gops == &fgraph_stub) continue;