Re: [PATCH] function:stacktrace/mips: Fix function:stacktrace for mips

From: yuanjunqing
Date: Wed Jun 03 2020 - 23:28:56 EST



在 2020/6/4 上午9:17, Maciej W. Rozycki 写道:
> On Fri, 29 May 2020, WANG Xuerui wrote:
>
>> On 2020/5/29 17:29, yuanjunqing wrote:
>>
>>>> diff --git a/arch/mips/kernel/mcount.S b/arch/mips/kernel/mcount.S
>>>> index cff52b283e03..cd5545764e5f 100644
>>>> --- a/arch/mips/kernel/mcount.S
>>>> +++ b/arch/mips/kernel/mcount.S
>>>> @@ -87,8 +87,15 @@ EXPORT_SYMBOL(_mcount)
>>>> PTR_LA t1, _etext
>>>> sltu t3, t1, a0 /* t3 = (a0 > _etext) */
>>>> or t1, t2, t3
>>>> + PTR_LA t2, stlab-4 /* t2: "function:stacktrace" return address */
>>>> + move a1, AT /* arg2: parent's return address */
>>>> beqz t1, ftrace_call
>>>> - nop
>>>> + nop /* "function:stacktrace" return address */
>>>> +stlab:
>>>> + PTR_LA t2, stlab-4
>>>> + /* ftrace_call_end: ftrace_call return address */
>>>> + beq t2,ra, ftrace_call_end
>>>> + nop
> Broken delay slot indentation.

Thank you for your reply. For this question that you mentioned about the delay slot, I will modify my patch again.

>
>>>> #if defined(KBUILD_MCOUNT_RA_ADDRESS) && defined(CONFIG_32BIT)
>>>> PTR_SUBU a0, a0, 16 /* arg1: adjust to module's recorded callsite */
>>>> #else
>>>> @@ -98,7 +105,9 @@ EXPORT_SYMBOL(_mcount)
>>>> .globl ftrace_call
>>>> ftrace_call:
>>>> nop /* a placeholder for the call to a real tracing function */
>>>> - move a1, AT /* arg2: parent's return address */
>>>> + move ra, t2 /* t2: "function:stacktrace" return address */
> Likewise. NB I haven't investigated if the change makes sense. A more
> detailed explanation in the change description is certainly needed.

I will attach a specific description for further explanation about the second patch later.

>
> Maciej