lkml.org 
[lkml]   [2016]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH] [RFC V1]s390/perf: fix 'start' address of module's map
From
Date
I send this email to test the connection to linux-kernel maillist. Just 
ignore.

在 7/11/2016 4:11 PM, Songshan Gong 写道:
>
>
> 在 7/8/2016 11:18 PM, Jiri Olsa 写道:
>> On Thu, Jul 07, 2016 at 09:49:36AM +0800, Song Shan Gong wrote:
>>> At preset, when creating module's map, perf gets 'start' address by
>>> parsing
>>> 'proc/modules', but it's module base address, isn't the start address of
>>> '.text' section. In most archs, it's OK. But for s390, it places
>>> 'GOT' and
>>> 'PLT' relocations before '.text' section. So there exists an offset
>>> between
>>> module base address and '.text' section, which will incur wrong symbol
>>> resolution for modules.
>>>
>>> Fix this bug by getting 'start' address of module's map from parsing
>>> '/sys/module/[module name]/sections/.text', not from '/proc/modules'.
>>
>> cool, does this fix the 'perf test 1' for s390? that'd be great
>
> I've checked, 'perf test 1' is still failed. But the test is for testing
> whether 'vmlinux symtab matches kallsyms'. For vmlinux, it's built when
> compiling linux-kernel, so there's no any symbol info about module. For
> kallsyms, when loading, it also splits kernel symbols with module
> symbols. But this patch is intended to fix wrong symbol resolution for
> modules, so I think there's no relationship between this patch and the
> testcase 'perf test 1'.
>
> I also debuged the reason why 'perf test 1' fails, there are two reasons
> at least:
> 1. perf gets kernel start address by finding the first no-zero value of
> symbols {'_text', '_stext'} in /proc/kallsyms; for s390, it's always
> '_stext', but actually, '_stext' is not the first symbol in s390, there
> are other symbols before '_stext', for example 'iplstart'.
> 2. In addition, when loading by parsing /proc/kallsyms, if the kernel
> map start value is a non-zero value getting from '_stext', because
> '_text' is zero, it will not be included in kernel map; but for vmlinux,
> it always add '_text' to kernel map whether '_text' is zero or not. So
> if '_text' is zero, whether adding '_text' to kernel map, it's
> non-consistent for loading by /proc/kallsyms and vmlinux.
>
> I'll try to fix this bug later.
>
> Thanks for your comments.
>
>> I'll send few coments shortly
>>
>> thanks,
>> jirka
>>
>

--
SongShan Gong

\
 
 \ /
  Last update: 2016-07-13 06:01    [W:0.716 / U:0.100 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site