Re: [PATCH][GIT PULL][v3.3] tracing: Add header wrappersevent_headers_start.h and event_headers_end.h

From: Steven Rostedt
Date: Wed Jan 18 2012 - 12:56:53 EST


On Wed, 2012-01-18 at 13:07 +0100, Ingo Molnar wrote:

> I'd argue that __raise_softirq_irqoff() should not be inline -
> that would solve a whole host of issues. Event tracing is
> enabled in most distros so there's no real overhead argument to
> be made here either - so it's probably a bit faster in fact to
> have this uninlined. What do you think?

Sure, I have no problem moving that out of the header. I don't think
raising a softirq is in that critical a path that it can't be a function
call.

There's only one trace/events header left which is in module.h. Perhaps
we can move __module_get() and try_module_get() out of the header. We
could just move the "if" part out.

extern void inc_module(struct module *module, unsigned long ip);

static inline void __module_get(struct module *module)
{
if (module) {
preempt_disable();
inc_module(module, _THIS_IP_);
preempt_enable();
}
}

static inline void try_module_get(struct module *module)
{
int ret = 1;

if (module) {
preempt_disable();

if (likely(module_is_live(module)))
inc_module(module, _THIS_IP_);
else
ret = 0;

preempt_enable();
}
return ret;
}

---

void inc_module(struct module *module, unsigned long ip)
{
__this_cpu_inc(module->refptr->incs);
trace_module_get(module, ip);
}


-- Steve


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