lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20130813111442.632f3421@gandalf.local.home>
Date:	Tue, 13 Aug 2013 11:14:42 -0400
From:	Steven Rostedt <rostedt@...dmis.org>
To:	Rusty Russell <rusty@...tcorp.com.au>
Cc:	linux-kernel@...r.kernel.org, Ingo Molnar <mingo@...e.hu>,
	Frederic Weisbecker <fweisbec@...il.com>,
	Yuanhan Liu <yuanhan.liu@...ux.intel.com>,
	chris <chris@...is-wilson.co.uk>,
	Mathieu Desnoyers <mathieu.desnoyers@...icios.com>
Subject: Re: [PATCH][RFC] tracing: Enable tracepoints via module parameters

On Fri, 11 Mar 2011 10:03:09 +1030
Rusty Russell <rusty@...tcorp.com.au> wrote:

[ Resurrection from the dead! ]

> On Tue, 08 Mar 2011 17:18:04 -0500, Steven Rostedt <rostedt@...dmis.org> wrote:
> > A few months ago it was suggested to have a way to enable tracepoints in
> > a module when it is loaded. I tried various methods, but this one seems
> > to be the least intrusive. In fact, it requires no modification to the
> > module code.
> 
> This seems quite nice!
> 
> Importantly, do you like it better than the previous version?  I like it
> because it doesn't touch my code, but that's not a fair test.
> 
> A few minor things:
> 1) Can we document this somewhere more persistent too? ftrace.txt?

I'll need to update this.

> 2) Your documentation should probably just use "trace_foo_bar" and omit
>    the "=1".  Because we can :)

And it does.

> 3) Can we share more with param_set_bool?  Nice to have it in one place
>    when someone decides the kernel really needs to accept "=true" or
>    whatever.

I'll look into this.

> 4) =n should really unset the flag, so args fight correctly.
> 
> eg (wildly untested):
> 
> int ftrace_mod_param_set(const char *val, const struct kernel_param *kp)
> {
> 	struct ftrace_event_call *call = kp->arg;
>         struct kernel_param bool_kp;
>         bool set;
>         int err;
> 
>         /* We work exactly like param_set_bool. */
>         bool_kp.arg = &set;
>         bool_kp.flags = KPARAM_ISBOOL;
>         err = param_set_bool(val, &bool_kp);
>         if (err)
>                 return err;
> 
>        	/* Set flag to tell ftrace to enable this event on init */
>         if (set)
>                 call->flags = TRACE_EVENT_FL_MOD_ENABLE;
>         else
>                 call->flags &= ~TRACE_EVENT_FL_MOD_ENABLE;
> 
> 	return 0;
> }

I can add this too.

But the thing about this that bothers me is that there's no way to say,
"Enable all tracepoints in this module on load". I would like a way to
do that, but I don't know of a way to do that without modifying the
module code. Have any ideas? Basically, I would love to have:

insmod foo tracepoints=all

or something and have all tracepoints enabled.

I started playing with tricks in the include/trace/ftrace.h file to
automatically create a general module parameter, but modules like KVM
include multiple trace headers which means anything I make will be
duplicated in the module and wont work.

Well, I'll go back to this original patch set (as I've been asked three
times within the last few months if there's a way to have tracepoints
enabled on module load).

-- Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ