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

Reply via email to