From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753470AbbE1I6W (ORCPT ); Thu, 28 May 2015 04:58:22 -0400 Received: from foss.arm.com ([217.140.101.70]:54162 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751772AbbE1I6R (ORCPT ); Thu, 28 May 2015 04:58:17 -0400 Date: Thu, 28 May 2015 09:58:07 +0100 From: Will Deacon To: Li Bin Cc: Jiri Kosina , AKASHI Takahiro , "linaro-kernel@lists.linaro.org" , Catalin Marinas , "sjenning@redhat.com" , "linux-kernel@vger.kernel.org" , "rostedt@goodmis.org" , "vojtech@suse.cz" , "broonie@kernel.org" , "jpoimboe@redhat.com" , "masami.hiramatsu.pt@hitachi.com" , "live-patching@vger.kernel.org" , "mingo@kernel.org" , "linux-arm-kernel@lists.infradead.org" Subject: Re: [RFC 0/4] arm64: add livepatch support Message-ID: <20150528085807.GA31001@arm.com> References: <1429843449-7388-1-git-send-email-takahiro.akashi@linaro.org> <5566B0EA.1020007@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5566B0EA.1020007@huawei.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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. Will