Re: [PATCH 1/3] x86: record relocation offset

Arnaldo Carvalho de Melo
2009-12-31T10:36:30Z

Em Thu, Dec 31, 2009 at 11:00:00AM +0800, Xiao Guangrong escreveu:
> Arnaldo Carvalho de Melo wrote:

> > Conclusion: at 'perf record' time store the address of a well know
> > symbol (_text) into the perf.data header. Later, at perf report time, if
> > using a vmlinux file, calculate the relocation by subtracting the same
> > well known symbol from the one stored in the header.

> > So no need for ioctl or boot stuff.

> I'm little confused, how to get the load symbol address?
> It's not a good way, if you get it from '/proc/kallsyms', we can't assume kernel
> has this file.

Well, then its just a matter of exposing _text as
/sys/kernel/sections/.text, as we already have for modules:

[acme@ana linux-2.6-tip]$ cat /sys/module/ipv6/sections/.text
0xfa0c2000

Which matches

nf_conntrack_ipv6 17548 2 - Live 0xfa147000
ipv6 239420 32 ip6t_REJECT,nf_conntrack_ipv6, Live 0xfa0c2000
[acme@ana linux-2.6-tip]$

But even as a quick transational assist, we can look at kallsyms at
'perf record' time.

> > I'll do that tomorrow, if Xiao doesn't beats me to it :-)

> Of course, please do if you have a better way :-)

I meant, if you didn't write the patch first, while I was sleeping :-)

I'll work on it today after some coffee and errands.

Best Regards,

- Arnaldo