Messages in this thread | | | Date | Thu, 18 Nov 2010 13:53:10 +0100 | From | Frederic Weisbecker <> | Subject | Re: [RFC][PATCH 0/2] tracing: Have trace_printk()s in the events/ directory |
| |
On Thu, Nov 18, 2010 at 11:41:06AM +0100, Peter Zijlstra wrote: > On Wed, 2010-11-17 at 22:58 -0500, Steven Rostedt wrote: > > For example, I added a trace_printk() in kernel/sched.c at line 2180 > > and it creates: > > > > # ls /debug/tracing/events/printk/kernel/sched.c/2180/ > > enable format > > > > The format is the printk format: > > > > # cat /debug/tracing/events/printk/kernel/sched.c/2180/format > > "migrate task %s:%d" > > *groan*, so you're creating a tracepoint per instance? > > That's going to be massive pain for perf.. I really don't see the point > in splitting all that out.
Because it makes it very flexible, makes it easy to display the user where are his trace_printk() and which one he could interact with.
Why would it be a massive pain for perf? People are not going to play with thousands trace_printk() at once I guess.
Of course, a problem may arise if dynamic_printk() is handled into this scheme, because of the number of fds to handle. In this case probably this scheme should allow a group of trace_printk to be a (virtual) trace_event itself.
I mean if you have two trace_printk() in kernel/sched.c and some others in kernel/, you could either create once perf_event for every trace_printk() in kernel/ or one for every trace_prink() in kernel/sched.c, or one for kernel/sched.c:118
That's easy if you have an id file at each level.
An other solution, which have been talking with Thomas yesterday, would be to allow having a single fd for several perf_events at once. That would solve some problems when you have hundreds of events opened (think about wide tracing, or use of all individual syscalls).
| |