Messages in this thread | | | Date | Tue, 14 Apr 2009 12:25:33 +0200 | From | Ingo Molnar <> | Subject | Re: [PATCH] tracing/lockdep: turn lock->name into an array |
| |
* Peter Zijlstra <peterz@infradead.org> wrote:
> On Tue, 2009-04-14 at 08:53 +0200, Ingo Molnar wrote: > > * KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> wrote: > > > > > Hi > > > > > > > Impact: allow filtering by lock name / fix module tracing > > > > > > > > Currently, the "lock acquired" event is traced using a TRACE_EVENT. > > > > But we can't use the char * type for the name without risking to > > > > dereference a freed pointer. A lock name can come from a module > > > > towards lockdep and it is risky to only store its address because we > > > > defer its name printing. > > > > > > When released lockdep string table? I guess it only happend at > > > module unloading. if so, we should consider to make delayed string > > > table freeing at module unloading. > > > > > > My point is, module unloading is rare event. thus meking pointer > > > safe mechanism widely avoid string copy. > > > > > > IOW, if not, ringbuffer is filled tons string. it kill the merit > > > of binary buffer and current design. > > > > We could zap all pending trace entries on module unload (it is a > > rare operation). That would indeed make a whole category of > > symbol-alike string pointers safe to be passed by value. > > Except that might make debugging a module unload bug rather > hard...
yes. Never needed to do that personally though. Plus more specific tracers like function tracer without event-tracing embellishments could still be used in such situations too, without flushing.
Ingo
| |