[RFC 0/4] arm64: add livepatch support
masami.hiramatsu.pt at hitachi.com
Wed May 27 02:29:05 PDT 2015
On 2015/05/27 15:09, AKASHI Takahiro wrote:
> Sorry for not replying soon.
> On 04/24/2015 06:27 PM, 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?
> As other people said, my current patch has some drawbacks and was far from perfect.
> I talked to a toolchain guy in Linaro, and he suggested that, instead of x86
> specific -mfentry option, we should add a new generic option, -fprolog-pad=N.
> It works as if "-pg -mfentry -mrecord-mcount -mnop-mcount" were specified on a
> command line, but actually puts N nop instructions at the very beginning of
> a function.
> (Please note that -mrecord-mcount and -mnop-mcount options have been added
> in x86 gcc to make it easier to implement ftrace and others.)
Ah, that's a cool idea :) Note that it also will need to take care
of debuginfo. Previously -mfentry had broken the debuginfo about
> While it is not clear that this new option will be implemented soon (in gcc-6),
> once it is supported on aarch64, I will update and re-post my livepatch patch
> as well as DYNAMIC_TRACE_WITH_REGS ftrace.
Linux Technology Research Center, System Productivity Research Dept.
Center for Technology Innovation - Systems Engineering
Hitachi, Ltd., Research & Development Group
E-mail: masami.hiramatsu.pt at hitachi.com
More information about the linux-arm-kernel