Subject: [RFC 0/4] arm64: add livepatch support

From: [email-masked] (AKASHI Takahiro)
Date: Thu, 28 May 2015 18:58:22 +0900

On 05/28/2015 05:58 PM, Will Deacon wrote:
> On Thu, May 28, 2015 at 07:08:42AM +0100, Li Bin wrote:
>> On 2015/4/24 17:27, Jiri Kosina wrote:
>>> On Fri, 24 Apr 2015, AKASHI Takahiro wrote:
>>>
>>>> This patchset enables livepatch support on arm64.
>>>>
>>>> Livepatch was merged in v4.0, and allows replacying a function dynamically
>>>> based on ftrace framework, but it also requires -mfentry option of gcc.
>>>> Currently arm64 gcc doesn't support it, but by adding a helper function to
>>>> ftrace, we will be able to support livepatch on arch's which don't support
>>>> this option.
>>>>
>>>> I submit this patchset as RFC since I'm not quite sure that I'm doing
>>>> in the right way, or we should definitely support -fentry instead.
>>>
>>> I don't have arm64 cross-compiler handy, could you please copy/paste how
>>> does function prologue, generated by gcc -pg on arm64 look like?
>>>
>>
>> The function prologue on arm64 with gcc -pg look like as following:
>> func:
>>          stp     x29, x30, [sp, -48]!
>>          add     x29, sp, 0
>>          mov     x1, x30
>>          str     w0, [x29,28]
>>          mov     x0, x1
>>          bl      _mcount
>
> Just for the avoidance of confusion, this looks like a function with
> a live parameter in x0, which explains the str to the stack and the
> juggling of x30 into x0. I don't think there's necessarily a golden
> template for the prologue code.

We just started the discussion about gcc, -mfentry vs. a more generic option
that I mentioned in:
   http://lists.infradead.org/pipermail/linux-arm-kernel/2015-May/346632.html
on gcc's devel ML.

-Takahiro AKASHI

> Will