From mboxrd@z Thu Jan 1 00:00:00 1970 From: takahiro.akashi@linaro.org (AKASHI Takahiro) Date: Thu, 28 May 2015 18:58:22 +0900 Subject: [RFC 0/4] arm64: add livepatch support In-Reply-To: <20150528085807.GA31001@arm.com> References: <1429843449-7388-1-git-send-email-takahiro.akashi@linaro.org> <5566B0EA.1020007@huawei.com> <20150528085807.GA31001@arm.com> Message-ID: <5566E6BE.9060903@linaro.org> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org 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 >