On 2015/12/10 23:12, 'Arnaldo Carvalho de Melo' wrote: [SNIP]
But this requires having these special refcnt__ routines, that will make tools/perf/ code patterns for reference counts look different that the refcount patterns in the kernel :-\ And would be a requirement to change the observed workload :-\ Is this _strictly_ required?
No. The requirement should be: 1. The create/get/put/delete functions are non-inline (because dwarf info is not as reliable as symbol); 2. From their argument list, we can always get the variable we need (the pointer of objects, the value of refcnt, etc.) We don't have to use this refcnt things.
Can't we, for a project like perf, where we know where some refcount (say, the one for 'struct thread') gets initialized, use that (thread__new()) and then hook into thread__get and thread__put and then use the destructor, thread__delete() as the place to dump leaks?
I think it is possible. If we can abstract a common pattern about it, we can provide a perf subcommand which we can deal with generic alloc/free pattern. I'll put it on my todo-list. Currently we are focusing on perf daemonization. Thank you. -- To unsubscribe from this list: send the line "unsubscribe linux-perf-users" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html