[FTRACE] Enabling function_graph causes OOPS

Sachin Sant sachinp at in.ibm.com
Wed Oct 7 19:56:36 EST 2009


Steven Rostedt wrote:
> On Tue, 2009-10-06 at 07:20 +1100, Benjamin Herrenschmidt wrote:
>   
>> On Mon, 2009-10-05 at 09:25 -0400, Steven Rostedt wrote:
>>     
>>>>> Sachin, can you give me more details on how you built that kernel ? (or
>>>>> give them again in case I missed them the first time around :-), ie,
>>>>> what toolchain, options, etc... or even better, give me remote access to
>>>>> the build host ?
>>>>>           
>>>> Ok, got access and had a quick look... seems to be a toolchain problem
>>>> to me. I'll investigate more tomorrow.
>>>>         
>>> Hi Ben,
>>>
>>> Any more word on this issue? 
>>>       
>> Didn't you fix it using a TOC access ?
>>
>> Unless I'm confusing things, I think the problem is the usage
>> of LOAD_REG_IMMEDIATE which generates relocs that we don't support
>> when CONFIG_RELOCATABLE is set.
>>
>> I've merged a patch that post-processes the kernel now, to check
>> for such relocs so at least you should be warned at build time.
>>     
>
> I thought we had two issues. One was the use of the relocs that did
> cause issues. But then there was still crashes reported after that.
> IIRC. I'm still suffering jetlag, so my memory is not that fresh about
>   
As Ben suggested, i changed LOAD_REG_IMMEDIATE() to LOAD_REG_ADDR()
as follows.

-       LOAD_REG_IMMEDIATE(r4,ftrace_return_to_handler)
+       LOAD_REG_ADDR(r4,ftrace_return_to_handler)

With this change compile time warnings about bad relocations
related to ftrace are gone.

Before the change :
WARNING: 6 bad relocations
c000000000008f1a R_PPC64_ADDR16_HIGHEST  __ksymtab+0x0000000000742110
c000000000008f1e R_PPC64_ADDR16_HIGHER  __ksymtab+0x0000000000742110
c000000000008f26 R_PPC64_ADDR16_HI  __ksymtab+0x0000000000742110
c000000000008f2a R_PPC64_ADDR16_LO  __ksymtab+0x0000000000742110
c00000000085e118 R_PPC64_ADDR64    __crc_per_cpu__softirq_work_list
c0000000008662d0 R_PPC64_ADDR64    __crc_simple_prepare_write

After the change :
WARNING: 2 bad relocations
c00000000085e118 R_PPC64_ADDR64    __crc_per_cpu__softirq_work_list
c0000000008662d0 R_PPC64_ADDR64    __crc_simple_prepare_write

But i still run into oops while using ftrace function_graph.

Thanks
-Sachin



-- 

---------------------------------
Sachin Sant
IBM Linux Technology Center
India Systems and Technology Labs
Bangalore, India
---------------------------------

-------------- next part --------------
A non-text attachment was scrubbed...
Name: fix-ftrace-bad-relocs.patch
Type: text/x-patch
Size: 528 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20091007/c2f0991f/attachment.bin>


More information about the Linuxppc-dev mailing list