From patchwork Thu Nov 9 00:41:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josh Poimboeuf X-Patchwork-Id: 163189 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b129:0:b0:403:3b70:6f57 with SMTP id q9csp138495vqs; Wed, 8 Nov 2023 16:44:23 -0800 (PST) X-Google-Smtp-Source: AGHT+IFnFtbcOCo7suD/v7UWwKqHElwPMpAHGO/9kvKooehjwsY5xM8SzMeZvVKfX0Q4hPnue2Md X-Received: by 2002:a05:6a21:198:b0:17a:eddb:acc2 with SMTP id le24-20020a056a21019800b0017aeddbacc2mr4454110pzb.46.1699490662799; Wed, 08 Nov 2023 16:44:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699490662; cv=none; d=google.com; s=arc-20160816; b=QubDQE+BdvYQ4vqkG/jNcHrAqkLAoS5oiKBMd/A5bptc4TZnYT5ooTRT624Ai45VVK ENxG4qhaFFxNIONyekapIdl/QcROBiVHfQ7BIS/lOZCPc69xs4C8TMgDUp2PebXgb+/E rnp7ANjJ9gsMDvjpJMMrLOTyfv+8vAcI098VFm20idR2bcCNWwKHnyF3+m65bSUQnHHU 7VsRtzMjw6ePzoj6NAQ6r3JVhZSYbxrb/b86luqh2ZtfcERERD5tu0k16xOrE/L6d8Rn pCegFf4zWnIRvp5n43QH0fYjCE342b6TVU/n9rBQGLZXEyrY9UWs1G0PDQWH+biZ1hPg EE5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=NVKVPlWdSPR/a48PhW23hfO9rtwQK9sex7QFtH8XS0Y=; fh=3ahOA1+93SqEqAeT96I/cgRVlate7pzd5ZZzl/6KbbU=; b=gO7QkGKPwLJMDVzzyazL7spSKk8JpgYG4u29zN3Avi5HpkonBQcWg2LNaneuswW2fH Xuq7PgfX0wyHilodwxqlgvZtTG62nxKRQOcQwlFrCbTJtR1s34d4y62BHlh9t8NotIqK fCJh+v6+haOMMtXZ6dA6rveOKNC1FBsmxjw0kL9X1vVSGx7VxVrf40+LNhBb9GYeuf00 qeKLM8LLjiasMB6LD+KR4FKji8T97ft0Z5DsWv5USpclV/wYdcSc6+4J9wuYY2BYC85D pC1O3R/jJ4tYtb/+P63QsZ3OEslX2ioXiOKEuZmQiWzi2eO0aDbuu1/5s93Xga/vk/bf NK8w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=HUaiXTRL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id p7-20020a17090ab90700b0027ce5205f94si305248pjr.150.2023.11.08.16.44.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Nov 2023 16:44:22 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=HUaiXTRL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id EDC2B822CE26; Wed, 8 Nov 2023 16:44:21 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232714AbjKIAoN (ORCPT + 32 others); Wed, 8 Nov 2023 19:44:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48904 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232146AbjKIAnq (ORCPT ); Wed, 8 Nov 2023 19:43:46 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 10A7B268E; Wed, 8 Nov 2023 16:43:44 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1E910C433A9; Thu, 9 Nov 2023 00:43:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1699490623; bh=xJB21L9dDRQHhaZpwIhtN50CQs4Yf0e5zt5k2dhu4QU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HUaiXTRL250n6iKIIJWJgFX2BYYc8xHMB8dBKSHWAYgeFFfMXWc1wbELVb7AerlRU /1Nm0Bgv24Pip5qHxFO8F8rbh8yBeh+OnfDyYhJwNhdHtkfBUqNvyUMtBKQkALh6uw 0npc149H7tDMPAZE/ipZa4Vq0j9G2DrraSAu1ynTWnu/s41xBCCEwn8NUFNPODCHhN B1KMe4XsBailE7Un+C9aCSEuJLRt+LzB9cgBXjCrA7gmAJoJHj+cROTo57wPzsiPKj /dFq2WSeudFYMGr1bTRo2LB/qtMg3+WkUHfZcRIeggimNvJp4gNPbgIxDA6B+8k0/a xoCOax2EjJGPw== From: Josh Poimboeuf To: Peter Zijlstra , Steven Rostedt , Ingo Molnar , Arnaldo Carvalho de Melo Cc: linux-kernel@vger.kernel.org, x86@kernel.org, Indu Bhagat , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Ian Rogers , Adrian Hunter , linux-perf-users@vger.kernel.org, Mark Brown , linux-toolchains@vger.kernel.org Subject: [PATCH RFC 07/10] unwind/x86: Add HAVE_USER_UNWIND Date: Wed, 8 Nov 2023 16:41:12 -0800 Message-ID: <28efef61435d2fbb42bf26277adae0c630e05cf4.1699487758.git.jpoimboe@kernel.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Wed, 08 Nov 2023 16:44:22 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1782045120922710190 X-GMAIL-MSGID: 1782045120922710190 Use ARCH_INIT_USER_FP_FRAME to describe how frame pointers are unwound on x86, and enable HAVE_USER_UNWIND accordinlgy so the user unwind interfaces can be used. Signed-off-by: Josh Poimboeuf --- arch/x86/Kconfig | 1 + arch/x86/include/asm/user_unwind.h | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 arch/x86/include/asm/user_unwind.h diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index cacf11ac4b10..95939cd54dfe 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -278,6 +278,7 @@ config X86 select HAVE_UACCESS_VALIDATION if HAVE_OBJTOOL select HAVE_UNSTABLE_SCHED_CLOCK select HAVE_USER_RETURN_NOTIFIER + select HAVE_USER_UNWIND select HAVE_GENERIC_VDSO select HOTPLUG_PARALLEL if SMP && X86_64 select HOTPLUG_SMT if SMP diff --git a/arch/x86/include/asm/user_unwind.h b/arch/x86/include/asm/user_unwind.h new file mode 100644 index 000000000000..caa6266abbb4 --- /dev/null +++ b/arch/x86/include/asm/user_unwind.h @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _ASM_X86_USER_UNWIND_H +#define _ASM_X86_USER_UNWIND_H + +#define ARCH_INIT_USER_FP_FRAME \ + .ra_off = sizeof(long) * -1, \ + .cfa_off = sizeof(long) * 2, \ + .fp_off = sizeof(long) * -2, \ + .use_fp = true, + +#endif /* _ASM_X86_USER_UNWIND_H */