From patchwork Mon Oct 21 16:34:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Rutland X-Patchwork-Id: 177119 Delivered-To: patch@linaro.org Received: by 2002:a92:409a:0:0:0:0:0 with SMTP id d26csp3646564ill; Mon, 21 Oct 2019 09:35:02 -0700 (PDT) X-Google-Smtp-Source: APXvYqzVaUoMJ2jRyJzUmbD7BM1aG2HyU5KFJ66iXr/3nsKguzhf8/tROSACdkahRH0IqjII6eyj X-Received: by 2002:a17:906:364f:: with SMTP id r15mr23265194ejb.194.1571675701747; Mon, 21 Oct 2019 09:35:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571675701; cv=none; d=google.com; s=arc-20160816; b=FOn28duCoX5W9AgPDto/baGJ+qzV6iu/d/4IvhLA3eAb8rogUoKG8HGPJ7TFmBuvAn epqm/GzVistDCuubSoprDS0unzOFX9BUK0S0qD7zj/LkfyQINtlmhJwpdFuLch6bL7dW mJu3c7mITmIyK+jCd3NEBO/LlkXcQ7r3W7AHnKKeHCMff7gtbrWi+BkWU1KKhpStndn7 L1yr5Tx6YIiSz2bgRHr9wib1RHrEqxiLu13zm0cmO3QoKbe9lGjnlLtYY5ySOtQ5mSdw L1SVZgVlD7z+TqhChbWB389ZtpOYhALAZQCa9BqdECWFMsm8B5VrXhONgN/QsTlgY5hb /a+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=imL1vDdeXXPps39koiTB6nJYu3Lfal176XQaz8uYkag=; b=g6kbYBK5UQx3xwfElpm/hwiTtd97VYSGnTkU9GQ5CENKEp1qbxdcDxRSfc09ytWL1e xcOdHurss2XOiR8UEhOSuzHGGZ6Y83NnKXff9lKedX3/u2M4HfEO0reHQbBDTz5VR4DC y8xKMqRkyxdFWju7TAEq0Ctk212+CmLVCW5xHnbbD1Rn1Wsuu5WEkamTCerojNsTcmtP jsjiSMrezxuXnFEimmbE/xPVsI2aQw//TjQ7+D/Spw7JGYnmV28KFOUC0KSWaQp/MaK2 hTmyzD186ux+s1uFO6trjq1MMVtDxmsCwS7fleUotC8/i3APJeh7dq2cMv0TuCPx+fJB F6MQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v13si9911768eds.375.2019.10.21.09.35.01; Mon, 21 Oct 2019 09:35:01 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727607AbfJUQe5 (ORCPT + 26 others); Mon, 21 Oct 2019 12:34:57 -0400 Received: from [217.140.110.172] ([217.140.110.172]:57502 "EHLO foss.arm.com" rhost-flags-FAIL-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1726289AbfJUQe4 (ORCPT ); Mon, 21 Oct 2019 12:34:56 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D6A8E46A; Mon, 21 Oct 2019 09:34:33 -0700 (PDT) Received: from lakrids.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 99E3E3F71F; Mon, 21 Oct 2019 09:34:31 -0700 (PDT) From: Mark Rutland To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: amit.kachhap@arm.com, ard.biesheuvel@linaro.org, catalin.marinas@arm.com, deller@gmx.de, duwe@suse.de, james.morse@arm.com, jeyu@kernel.org, jpoimboe@redhat.com, jthierry@redhat.com, mark.rutland@arm.com, mingo@redhat.com, peterz@infradead.org, rostedt@goodmis.org, svens@stackframe.org, takahiro.akashi@linaro.org, will@kernel.org Subject: [PATCH 0/8] arm64: ftrace cleanup + FTRACE_WITH_REGS Date: Mon, 21 Oct 2019 17:34:18 +0100 Message-Id: <20191021163426.9408-1-mark.rutland@arm.com> X-Mailer: git-send-email 2.11.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, This series is a reworked version of Torsten's v8 FTRACE_WITH_REGS series [1]. I've tried to rework the existing code in preparatory patches so that the patchable-function-entry bits slot in with fewer surprises. This version is based on v5.4-rc3, and can be found in my arm64/ftrace-with-regs branch [2]. I've added an (optional) ftrace_init_nop(), which the core code uses to initialize callsites. This allows us to avoid a synthetic MCOUNT_ADDR symbol, and more cleanly separates the one-time initialization of the callsite from dynamic NOP<->CALL modification. Architectures which don't implement this get the existing ftrace_make_nop() with MCOUNT_ADDR. I've moved the module PLT initialization to module load time, which simplifies runtime callsite modification. This also means that we don't transitently mark the module text RW, and will allow for the removal of module_disable_ro(). Since the last posting, parisc gained ftrace support using patchable-function-entry. I've made the handling of module callsite locations common in kernel/module.c with a new FTRACE_CALLSITE_SECTION definition, and removed the newly redundant bits from arch/parisc. Thanks, Mark. [1] https://lore.kernel.org/r/20190208150826.44EBC68DD2@newverein.lst.de [2] git://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git arm64/ftrace-with-regs Mark Rutland (7): ftrace: add ftrace_init_nop() module/ftrace: handle patchable-function-entry arm64: module: rework special section handling arm64: module/ftrace: intialize PLT at load time arm64: insn: add encoder for MOV (register) arm64: asm-offsets: add S_FP arm64: ftrace: minimize ifdeffery Torsten Duwe (1): arm64: implement ftrace with regs arch/arm64/Kconfig | 2 + arch/arm64/Makefile | 5 ++ arch/arm64/include/asm/ftrace.h | 23 +++++++ arch/arm64/include/asm/insn.h | 3 + arch/arm64/include/asm/module.h | 2 +- arch/arm64/kernel/asm-offsets.c | 1 + arch/arm64/kernel/entry-ftrace.S | 140 +++++++++++++++++++++++++++++++++++++-- arch/arm64/kernel/ftrace.c | 123 ++++++++++++++++++++-------------- arch/arm64/kernel/insn.c | 13 ++++ arch/arm64/kernel/module-plts.c | 3 +- arch/arm64/kernel/module.c | 57 +++++++++++++--- arch/parisc/Makefile | 1 - arch/parisc/kernel/module.c | 10 ++- arch/parisc/kernel/module.lds | 7 -- include/linux/ftrace.h | 5 ++ kernel/module.c | 2 +- kernel/trace/ftrace.c | 13 +++- 17 files changed, 330 insertions(+), 80 deletions(-) delete mode 100644 arch/parisc/kernel/module.lds -- 2.11.0 Reviewed-by: Ard Biesheuvel