Re: [PATCH 3/4] uprobes/tracing: Kill the pointlesslocal_save_flags/preempt_count calls

From: Oleg Nesterov
Date: Tue Apr 09 2013 - 11:02:34 EST


On 04/08, Steven Rostedt wrote:
>
> On Fri, 2013-03-29 at 19:15 +0100, Oleg Nesterov wrote:
> > --- a/kernel/trace/trace_uprobe.c
> > +++ b/kernel/trace/trace_uprobe.c
> > @@ -492,17 +492,13 @@ static int uprobe_trace_func(struct trace_uprobe *tu, struct pt_regs *regs)
> > struct ring_buffer_event *event;
> > struct ring_buffer *buffer;
> > u8 *data;
> > - int size, i, pc;
> > - unsigned long irq_flags;
> > + int size, i;
> > struct ftrace_event_call *call = &tu->call;
> >
> > - local_save_flags(irq_flags);
> > - pc = preempt_count();
>
> How about instead, just change the above two and have:
>
> /* uprobes are never called with preemption disabled */
> pc = 0;
> irq_flags = 0;
>
> and leave the rest the same. This will help in future reviewers of the
> code to not have to look up what that "0, 0" is for, and then wonder if
> it should be that way. gcc should optimize it to be exactly the same as
> this patch.

Hmm, just to remind which arguments trace_current_buffer_*() has?

Personally I disagree. And, for example, ftrace_syscall_enter/exit just
use 0,0 for the same reason.

So please tell me if you really want the dummy variables/arguments, in
this case I'll change this code even if I do not like it.

Oleg.

--
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/