From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from OS8PR02CU002.outbound.protection.outlook.com (mail-japanwestazon11022138.outbound.protection.outlook.com [40.107.75.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 755253BB4A for ; Mon, 27 Jul 2026 12:23:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.75.138 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785155002; cv=fail; b=t0fxClNG1+lejOTVlgeyPYOk5C5YO5cd9qdp5AEduqirsibZ9CfiYZInzvefDy4A2M95ry91CAPvf6LiiMi8MwtP/ENBKprw00Sl+zTzNEfN9vEALREvJ7p6F3gWo48G2OyjEzNatUEfxfqLWHE78p8rAdp4IveucXm1GhnKP8o= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785155002; c=relaxed/simple; bh=nqmTj9aY8B+Q8ZAceWtntFRUz6j7xw6Jkpx6CTffvHA=; h=From:To:CC:Subject:Date:Message-ID:Content-Type:MIME-Version; b=i6WqP5TGAEc7y3Zpv16XSAA1VxH15HiDiqYZbAwTC+HFRyGaUuvI1gY9dSfRQ+D90D9KAZRdsxw94bCrCa5CTBB2tGqOQd90v6JwTkd5JR3dWksNxa1ARLTl9n3vIh5cEgkyRSN71RB4QR2dTEQKMmnsK8bVaoryZ3/nc3W2YEc= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=transsion.com; spf=pass smtp.mailfrom=transsion.com; dkim=pass (1024-bit key) header.d=transsion.com header.i=@transsion.com header.b=mrwnlzq+; arc=fail smtp.client-ip=40.107.75.138 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=transsion.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=transsion.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=transsion.com header.i=@transsion.com header.b="mrwnlzq+" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sufWOUfbUEllKbEUYpEJSQ/H0MT3v6nTD0UaHb6il77VM0aheDsa6ZPh6mBTeg+oa28LXVnEBkGBM+k2O31IlnBPKfhPi8LHXW5ooFN4kjnssxdRYAGslWMhLQHb7o4hLPqZWR6t9i2jzeT+aVAwhRPmNvIsObYX9GWpIXdMTwfK7bmtcxhUpJcMhEXT5mr3JtavMPWu7oWyZqD7/nswjm2qDtFVNAOCVQ//xjXvSY0uWGTGgTENgqaBXguYsO2W00qDkPN4F6A6WPw9/umEtOp46HOsBeVOqFUq4eRcQXGImOLxuJCxonHwb2dBOKjzXT1dReUQQ8mOTCFw56AZ1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=I+qeGY6aoaGVxshMr5UfKjJ15s1JqkoI/g/7Jk1w73U=; b=SCHjoErFfgthpRdOZG4nMUtWQAttPDgLSP0/oraSryG9xNQsRrBaxkAgyNwPzqUC3Em6q+ZYFdH1r7Y51esiZdT+B8NvjPWLM6I28WjlAS9ufx87JFnrtigNLMEGCvip2EDaW1/FlKFB+mnb6ZD5xlTNfotZJrR6q1d5Gog4geP4rvyTnMrgt625yZha1FvoOaMrzKGVCJzrKO9G7jaNZy/06B9vxDXIaZYINnc/SzS2vjXUxqRECI8LWB9QaYuFQ4w5keLvglX1t07qOVeCJxJzZvGAaVfQaW3qRDldwWxK9r0OFz2M0U/fEeatsx0xOIulrbtXN7SKoN59NqAs/g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=transsion.com; dmarc=pass action=none header.from=transsion.com; dkim=pass header.d=transsion.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=transsion.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=I+qeGY6aoaGVxshMr5UfKjJ15s1JqkoI/g/7Jk1w73U=; b=mrwnlzq+jErhun1W0brasG3SI0ehd6vvNItApuTUjKKPNSTK6YgZZ1KQbSiqDseqcsFSvW2Xu+6QkpdDgWEtTO5FAoNQ6cdPy6LZU4InodSlkqGl+MmcJ5ubTOReQxY2VPalL+BqKVZCXhpMnkgJygWo8VRXLE82+V1pR/PFR5c= Received: from KL1PR0401MB6196.apcprd04.prod.outlook.com (2603:1096:820:c7::13) by TY2PPF7B73AC350.apcprd04.prod.outlook.com (2603:1096:408::add) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.8; Mon, 27 Jul 2026 12:23:18 +0000 Received: from KL1PR0401MB6196.apcprd04.prod.outlook.com ([fe80::f2ee:1e28:9022:99f3]) by KL1PR0401MB6196.apcprd04.prod.outlook.com ([fe80::f2ee:1e28:9022:99f3%3]) with mapi id 15.21.0270.009; Mon, 27 Jul 2026 12:23:18 +0000 From: Hongyan Xia To: Will Deacon , Masami Hiramatsu CC: Jiazi Li , Pu Hu , "linux-kernel@vger.kernel.org" Subject: [RFC PATCH 0/9] arm64: Make the kprobes debug exception path noinstr Thread-Topic: [RFC PATCH 0/9] arm64: Make the kprobes debug exception path noinstr Thread-Index: AQHdHcK0f6L6p/bU/UGMNPhZy8nAUQ== Date: Mon, 27 Jul 2026 12:23:17 +0000 Message-ID: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=transsion.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: KL1PR0401MB6196:EE_|TY2PPF7B73AC350:EE_ x-ms-office365-filtering-correlation-id: a119a7df-73ec-4756-9461-08deebd9d6ea x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|23010399003|5023799004|11063799006|56012099006|10067099003|6133799003|18002099003|38070700021; x-microsoft-antispam-message-info: 98tCN2yLBx2j9lORzR+ANWbcDwbJRVxpUkKi0JsS5h4zkv1vqPdfeBhc4L57NZT+P4PbIbkmApsuPv1IYn2xBDk1rBu9wIJsG7pJbIAW7Fcs5vRpnYlXZj3psW9OyzSRdCOXmvckeXEy7HtTjmwvPbXd2hqEoSiOw2b8P/ezIGiBXCuhrx4p2krIq2WgSipc+71sZLo8gUqvqdAfpsa9Jy0MuywUyEcVFDl3Ch/6BOZg3SDD/TH1n6xh0XUwuk0R2JxTsMldn/NFJpCMREI7UHXN6wyzQin68/hFzTYpCZSZ0ua2kPILU+a8Qk9F8c6FrpBvF2l1rARWQQU27mamA9lu3wvK8rr0R7+Yq819WqAEWWavwQXwpDkJqUKPCu7x7IF2DfENKvnJvP54M/rqHL8wPJpQ69HCw7WRUPS02iaujV93m2vqeMU9cxfKHeYNU+WJGcD6XdZuj8aD+PKnGMsQiNOQhA8TxBrmTo7coeaomw4CJApW0ctYmcHnA0KZo7O40jAWz5l4uRIDn4BPzgeansuw7GnXgaYtyOQtZxdurdELyW0Mvdoswwy62xfD4hbsffYcujNXQGnZkuFPd4UdCei1YIgjS4LYZNogpecGwLa4SWDDLnQsKkVe31tMGUpXClMdwGA7WiZMhLFgKgA5w7BDmKKfricuerRi+0b0KJtmgvROkvVdL1BX/Ae7tIlHfSuS4/6TKW7325I06o84+z7Xgwouwq1I9Pt1iBs= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:KL1PR0401MB6196.apcprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(23010399003)(5023799004)(11063799006)(56012099006)(10067099003)(6133799003)(18002099003)(38070700021);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?GI931GcuECAfgf0qpGcRxpyGKsVwZm66XaXQ2jM2eEJchAZEymJBf8+0gU?= =?iso-8859-1?Q?5chhDMwVLR9algE055jI/dnyX/L2DOMTDh75ElfTKc3WFooLs+BFZTZi7e?= =?iso-8859-1?Q?7HOhlzexz7/rRNBQkiJsHPPScwIZLeT72M0qCDWLBicZeCHgIfgTK2+AGH?= =?iso-8859-1?Q?j++Jx9CwzOApapoAtpYwA6yvgkIGPLcsOvsHRkwAUL3CKAye2xA/lSN2U7?= =?iso-8859-1?Q?iPg0Itt8Fyq+Hfg/l/2pyLeqYOht9n4q+q9sZecspUSBQTkt01wAvXn5Ro?= =?iso-8859-1?Q?eMqBE5X4kMzER6i1HmXW7W+qXEEb0eEPZzjBFGlKYaWdgTlQFQzFl5RjI5?= =?iso-8859-1?Q?iTBXNblW0Y3BMDPLIieVDqZb8aklfNsvq2LmpzbMvZYeGIK40JlyYVGOf5?= =?iso-8859-1?Q?yIZyVzQgQyG1XAvuohiDO2BcrvaJ9//c9pS1fdnRAg1tVrpy0pcIoZay04?= =?iso-8859-1?Q?0BLg8Y3JAtI5nGb8kTOO1heUnnOP8DzHAfx+eUkaBpCBodPQzbOl8aSPGz?= =?iso-8859-1?Q?uSMZp6Y5+IWlJnETfyJ1Bb1irevDCmyUX3lFLMZrZ2rWtzDJ+n5yeTsUok?= =?iso-8859-1?Q?y1dYOPRBdfh8FkgQGucvdZ/dr/2iH7jRN/I3k8xefV3Dk9l91r+FVQTEQE?= =?iso-8859-1?Q?qtAkE78668dj6/O2QmA2p3Qe61y9AMKD1PTiXIx8BIklu6cM65wiCmp0Nd?= =?iso-8859-1?Q?S6FVG/79IGIzcN5ZitId6OZpxMNAS8J1+LdfVkm4ojPDeXHSrKBclz0b91?= =?iso-8859-1?Q?DSPfXeSb9kJpKGxE8Ba4yn1L1SWd0th1PdL0DQxVWB+hMQMzU6uIRW7NCM?= =?iso-8859-1?Q?/WMFhzeseFW7aplBqYNC7tG4BG1Nn4ys0Ij2Xc3lgrAgoLXQlmpAlqn49x?= =?iso-8859-1?Q?gAodVbc8zUXuoVP0uF5EW6RGXKp1pwVWEtYL+qMSwpT04a3ftv06DRcXwe?= =?iso-8859-1?Q?ul4E7XDesbXAXUpjsw9M6H+htDsG71AFogDl1EH05LuZByiiE6Pwd0YDQ0?= =?iso-8859-1?Q?kMayAa90ed17D30vJvs/UaLc4RTFtPuHJOEUShQkZMVN77iv7uhsRWs2gH?= =?iso-8859-1?Q?hT+gVRbgKsiYNT57sXKPP8Fs/CTl7zqgm+hokLCAZNSGipfyFN2FmXnGaH?= =?iso-8859-1?Q?IZ4JvX0jrzdPm1k3kpHb7AUSEh8n7OiPo5hPP63/vkyq9VdMDypPx+4dEx?= =?iso-8859-1?Q?Zp4ZziupScoQ6+EJBO0g6ZRQ5FEqC7r9gT6RQNFOSfoGLDSpwA/x3RAWi3?= =?iso-8859-1?Q?m1YSwZQ1twb668s8I3EBy3r2gMXwSdRoikuCFGtenS5Uxj79CjOKs9kCMY?= =?iso-8859-1?Q?XdLPleQE1Mn/Oft+QvHm+RVfWzIUOgrR41sSv5Q8KPUVph+gJbAEPBNYC9?= =?iso-8859-1?Q?I/KNJBVFhXMrEqU0BdFSaz6qz/IvqAw/250ktP6i3TPH0IDmAcbQZpnQrI?= =?iso-8859-1?Q?6Eo/aNnDCEojtvzLDB4x+RsXtrDHKVvx1LZtAZc8nc3kojeQ5T9wysctZi?= =?iso-8859-1?Q?CwvF+RiUiMM4Nfuy64yDZRj3gS8qFgnHGzfQ4+Nko9iGLxszQFIyscyo+R?= =?iso-8859-1?Q?F6w21x12xzByGtEU36G7AkgKOzxC5Q5QBam0wMei9DQfLDZ8v6IsIMOMle?= =?iso-8859-1?Q?4IoAWtSdrfStOfa9H5ODYF5Ub7O11dOlOVQUllzE7YTHoRUPDExUUmegWl?= =?iso-8859-1?Q?OQAZgCblkKXUPfMvCJyT1eIVkbON6DBpbUYZvynTTOqL+hNFOxWrob8EkU?= =?iso-8859-1?Q?/O9/bh6ljKFd0zlHxbNghFi5fV0r0z3/rRYGxs1vlIhObpo6WSqvo/vpLm?= =?iso-8859-1?Q?8IzkiHmL7A=3D=3D?= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-OriginatorOrg: transsion.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: KL1PR0401MB6196.apcprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a119a7df-73ec-4756-9461-08deebd9d6ea X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jul 2026 12:23:17.9252 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 2e8503a6-2d01-4333-8e36-6ab7c8cd7ae2 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: HCutMOgWiUUynzGj+6bjQzVtXAvAitG+NihHiP4mnOMi2QDRiRb8+01Gxvs+bReFxDvBnZYMiKLgJgO+khsJCsjeFS17Ezy5+nyAJB6uGdk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY2PPF7B73AC350 From: Hongyan Xia =0A= =0A= Commit 879a6754d3d1 ("arm64: kprobes: Only handle faults originating=0A= from XOL slot") and 23f851ac0078 ("arm64: kprobes: Allow reentering=0A= kprobes while single-stepping") band-aided two corner cases in the arm64=0A= kprobe path: Unrelated page faults inside Kprobe and nested Kprobe SS=0A= handling. Although the two patches were taken, Will asked whether we=0A= should keep patching things like this each time we find a corner case,=0A= and whether making Kprobe noinstr is the correct answer [1].=0A= =0A= This series attempts to do exactly that: Making the Kprobe path noinstr.=0A= The kprobe handlers become noinstr end to end, and everything that is=0A= inherently instrumentable is confined to instrumentation_begin/end()=0A= windows, similar to the x86 side. After this series, the two=0A= corner-cases mentioned above are also gone, hence the revert in 7/9 and=0A= 8/9. Some of the instrumentation_begin/end() sections are suggested by=0A= AI, so they may need careful review.=0A= =0A= Note that arm64 has no objtool to validate noinstr, so I wrote a small=0A= script finding bl/blr and validated that their calls are confined within=0A= noinstr. This is exactly what found the Clang outline compile problem=0A= that motivated patch 9/9.=0A= =0A= One question is whether other BRK paths get the same treatment.=0A= Currently they stay instrumentable inside a big window.=0A= =0A= [1] https://lore.kernel.org/all/alpuL10h7-OK2hFb@willie-the-truck/=0A= =0A= Hongyan Xia (9):=0A= arm64/entry: Bound certain debug exception paths in instrumentation=0A= windows=0A= arm64/entry: Make debug_exception_enter/exit() noinstr=0A= arm64/debug-monitors: Make do_el1_brk64()/do_el1_softstep() noinstr=0A= arm64/kprobes: Make the single-step machinery noinstr=0A= arm64/kprobes: Invoke pre/post handlers inside instrumentation=0A= arm64/kprobes: Make kprobe_fault_handler() noinstr=0A= arm64/kprobes: Drop the KPROBE_HIT_SS reentry special case=0A= arm64/kprobes: Drop the XOL single-step fault PC check=0A= arm64/debug: Mark debug exception helpers __always_inline=0A= =0A= arch/arm64/include/asm/esr.h | 2 +-=0A= arch/arm64/include/asm/kprobes.h | 15 +----=0A= arch/arm64/include/asm/percpu.h | 2 +-=0A= arch/arm64/include/asm/preempt.h | 4 +-=0A= arch/arm64/include/asm/ptrace.h | 4 +-=0A= arch/arm64/kernel/debug-monitors.c | 76 ++++++++++++-----------=0A= arch/arm64/kernel/entry-common.c | 43 +++++++++----=0A= arch/arm64/kernel/probes/kprobes.c | 96 ++++++++++++++----------------=0A= include/linux/kprobes.h | 8 +--=0A= 9 files changed, 131 insertions(+), 119 deletions(-)=0A= =0A= -- =0A= 2.47.3=0A= =0A=