Re: [RFC][PATCH 1/2] perf: Add 'perf kmem' tool

Li Zefan
2009-11-20T08:21:40Z

>> TODO:
>> - show sym+offset in 'callsite' column
>
> The way to print symbolic information for the 'callsite' column is to
> fill in and walk the thread->DSO->symbol trees that all perf tools
> maintain:
>
> /* simplified, without error handling */
>
> ip = event->ip.ip;
>
> thread = threads__findnew(event->ip.pid);
>
> map = thread__find_map(thread, ip);
>
> ip = map->map_ip(map, ip); /* map absolute RIP into DSO-relative one */
>
> sym = map__find_symbol(map, ip, symbol_filter);
>
> then sym->name is the string that can be printed out. This works in a
> symmetric way for both kernel-space and user-space symbols. (Call-chain
> information can be captured and displayed too.)
>
> ( 'Alloc Ptr' symbolization is harder, but it would be useful too i
> think, to map it back to the slab cache name. )
>

Thanks.

I was lazy to figure it out by myself. ;)

>> - show cross node allocation stats
>
> I checked and we appear to have all the right events for that - the node
> ID is being traced consistently AFAICS.
>

Actually kmemtrace-user shows this stats, but in a wrong way.
It doesn't map cpu_nr to node.

>> - collect more useful stats?
>> - ...
>
> Pekka, Eduard and the other slab hackers might have ideas about what
> other stats they generally like to see to judge the health of a workload
> (or system).
>
> If this iteration looks good to the slab folks then i can apply it as-is
> and we can do the other changes relative to that. It looks good to me as
> a first step, and it's functional already.
>

Thanks!