Re: [PATCH] tracing: annotate emit_log_char() notrace

From: Thomas Gleixner
Date: Thu May 28 2009 - 11:43:01 EST


On Thu, 28 May 2009, Steven Rostedt wrote:
> > IIRC the same happens with a serial console, but that can be worse as
> > you busy wait during the character output.
> >
> > It'd be nice if we could inherit the notrace from the caller :)
> >
>
> I'd hate to make rcu_read_*lock be a notrace. I've done some debugging
> with wanting to know where the rcu locks were taken.

Sure.

> I'm sure there's lots of functions that people will want to add notrace
> for. Really, the notrace on a function should only be there to prevent
> crashes (functions used by the tracer or early boot up code for some
> archs).

Well, lets look at the atomic notifier then. Why is it notrace ? And
if there is a reason why does it trace the calls which are done inside
of it. We should really think about inheriting the notrace down the
call chain at least for those calls which must be annotated to avoid
wreckage. That could then be made optional (via commandline) for all
notrace calls.

> That said, there are times when you want to avoid tracing things on early
> boot up. Thus, if someone adds to the kernel command line
> "ftrace=function" you have no way to filter out these functions you don't
> care about.
>
> What if I add a "ftrace_notrace=<function list>" kernel command line, that
> has <function list> be a comma separated list of functions you want to go
> into the "set_ftrace_notrace" on boot up? Would that satisfy you. Then you
> can keep adding to the list dynamically every boot. And keep it there in a
> grub file.

That list might grow fast beyond the command line lenght limit :)

But yeah, I can see your point. At least it would be better than
cursing and adding ad hoc notrace patches all over the place.

Thanks,

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