From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id ctiQGAHgnmrOlTQAWB0awg (envelope-from ) for ; Mon, 07 Sep 2026 12:02:09 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=YvtET8Z3; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=YvtET8Z3; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 4B6EF1E033; Mon, 07 Sep 2026 12:02:09 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [IPv6:2620:52:6:3111::32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 5DFF61E033 for ; Mon, 07 Sep 2026 12:02:07 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 3720D48F669F for ; Mon, 7 Sep 2026 16:02:05 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3720D48F669F Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=YvtET8Z3; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=YvtET8Z3 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazlp170110003.outbound.protection.outlook.com [IPv6:2a01:111:f403:c207::3]) by sourceware.org (Postfix) with ESMTPS id E31FA4BC0550 for ; Mon, 7 Sep 2026 16:01:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E31FA4BC0550 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E31FA4BC0550 Authentication-Results: sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c207::3 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1788796896; cv=pass; b=CmatmuOwC+tcfz1QLe8ZsYtKfMS6wR8Q5U202UaqChxVv8Hg6YUFlfhVy7ygyL2TxGUdXzr1IQfeGTkWWPjEg1eOPGOgw+37Zgqmk2p1tQV/vWtSkHu09b21YxqIuGl9Sg9Ag1dYo+YOKWX7K2c82Pq7CVkKFP3zYIFXwCG2EDs= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1788796896; c=relaxed/simple; bh=h9ExkE/8dNireUVUnYTsFmz8ztRE2/+/tmlWFKFyo7A=; h=DKIM-Signature:DKIM-Signature:Message-ID:Date:Subject:To:From: MIME-Version; b=lXZ1yh2oBJgJq5Z57UDi21c6yqvDDfVILKHDuM1iqoin6nsKxfLN87RGZ3dzXUmlhU9l54Un1pQpb1KZUCEqDWk7QrtyR3dL33rCch/IhOMjBO6p2KqWvzfzmzQKh42TK4wEbsvcZMa3Q8Bwb510ck92hpZnR64macJy1sc4HRQ= ARC-Authentication-Results: i=3; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=YvtET8Z3; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=YvtET8Z3 DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E31FA4BC0550 ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=eJmipXZQmh0SpHRTyaiPBIaxDiWPaqGIXoVW3+d7SFnUqd1GhyL0/Apcb/N+vlFwH8+CtnPd1fClTS+XLW4aCBPhIzs8oDqHNhEwUBx1P83xflXi10uzVCmAAtHF3rkz7o2rp1eENao5hGmgZ58q1wpzwwXCi5SqM6pXhgzrDwcG8w3k8zEXx8VqzaM8joZK0CXmipsJk4KM49P9Gec2IIjt2wvZNPdRGTVrVoLW8MN3Mdq0YNptw67U9ZGahy4TQICyNMgLLigXi0Y67YDNe0QyV58yKEAKFzxNjW3KqaXruIz0LSUOtobsjILhnpbLJS4CIAAmRqpf9gxUJ6zQGg== ARC-Message-Signature: i=2; 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=K3j1CQ0PEBSHSlIY5FAVB0hIHyiKT1hFkUTuFC90sMw=; b=ucejDKZIqZtcR1x2yGbtnN1gXXTWFOChLlO75QjSc/SeuC7Fwke71eioN/3d2czyXDxH7q+t3PiuzEwdg0MdH1yIPREkQh62blpTepQTBAtdqBxpPchBlGgDu7w9hDFk8d/0nXZmDsNVlH602xmYIDyUjnRaaWcAk8KdMGYgkOAnp1Jr60fFogtw5cUik/03RSs4wPNtf1Vz4SviVW29EotKzWsz2EgnP/bHWAwZpu2CZ7kGzr8YWcfZgs1X6xiQ9D5ZIQcpZvg7LyVoFwvVKBY49yE/wZcg2LSH83rz8Sa1vMSpsMg/i/Penl/jMP1G86BBgSNWEJ6T4hMUNEw96w== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=redhat.com smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=K3j1CQ0PEBSHSlIY5FAVB0hIHyiKT1hFkUTuFC90sMw=; b=YvtET8Z3vIzoZJL9CstTL/eML+S9Is62i1ns0P3MMQTJVa9Q32iQeN2feJoiorc9tgrQD93ohH1PFibXGlFP60Qi+pojRmASjM2dPZQV/8PQpUJ/dNru0L1wkS3Dwlzu7QgYYNR0M9fUS8wlpcOsvQl3JYC1G6Z1n8aHI6/XJEo= Received: from AS4P195CA0046.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:65a::27) by AS8PR08MB8567.eurprd08.prod.outlook.com (2603:10a6:20b:566::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.6; Mon, 7 Sep 2026 16:01:28 +0000 Received: from AM3PEPF0000A78E.eurprd04.prod.outlook.com (2603:10a6:20b:65a:cafe::58) by AS4P195CA0046.outlook.office365.com (2603:10a6:20b:65a::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.382.15 via Frontend Transport; Mon, 7 Sep 2026 16:01:25 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by AM3PEPF0000A78E.mail.protection.outlook.com (10.167.16.117) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.406.5 via Frontend Transport; Mon, 7 Sep 2026 16:01:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=C2oexCwltISgKntmYDuxxQawUCjW8YQlColB9BrB6czjTFgsz6AUgbp8t3yBFe1CaJ9/5V36wNSH/gu+psty2nFoIq99KSdyCbo9W/Q/4lMfyZCs71/qRDVdxQQ5v4eC7r2mve87BmgpVhi6CtHqB64pLLycAsVri/cGI7nRGGMcI39hml0h4PrwJqfYjc8S9wrZOrbqogzsl4MWEJnWdX1cUAPDU//At1xBK2Qck0bkmnOE9qHW1CSErt446f0yqkPybCOE+gm4vYEnzd3zSQAq5W5oqQ8p/VFjXWrxNU56GCmC4UzUZMiD+hXytfdQPc6ddHyTWyPLRhZ9OpcIIA== 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=K3j1CQ0PEBSHSlIY5FAVB0hIHyiKT1hFkUTuFC90sMw=; b=WJh9Rgm1hn2ptdzgDCVgCc/oQ6ikM9zKlLGr8dMEqh7VAucZKbY4UAqPFoHQ6ezFqFQmC2Eycwy7019GqbGPSQVWq6LcAVw9f2p5biQo/jO+JNlAf+GAJtSQggTqesakpj648UprhbWFW5KCgZTVIxSUER/9TWS0c+ZAEsUY0gxcRKFvC6vSUWd1iuVPOXZykYPhMnACtRHiB7ZPvPZ3wbGf6pH/zNugT0POKAAbGnWHIbodKt5xWifVxlXgXGYWP7lGc/YfABzslBWPGT4J3IIwy28sCal1dfQuO4jUW/yvTgQv8TqTZ5a/zcHnBlF53JTg2ly2NCFhcIuJnVcI1Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=K3j1CQ0PEBSHSlIY5FAVB0hIHyiKT1hFkUTuFC90sMw=; b=YvtET8Z3vIzoZJL9CstTL/eML+S9Is62i1ns0P3MMQTJVa9Q32iQeN2feJoiorc9tgrQD93ohH1PFibXGlFP60Qi+pojRmASjM2dPZQV/8PQpUJ/dNru0L1wkS3Dwlzu7QgYYNR0M9fUS8wlpcOsvQl3JYC1G6Z1n8aHI6/XJEo= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from AS8PR08MB8659.eurprd08.prod.outlook.com (2603:10a6:20b:563::10) by AM0PR08MB5380.eurprd08.prod.outlook.com (2603:10a6:208:183::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.6; Mon, 7 Sep 2026 16:00:53 +0000 Received: from AS8PR08MB8659.eurprd08.prod.outlook.com ([fe80::96bf:2de3:5eab:70ae]) by AS8PR08MB8659.eurprd08.prod.outlook.com ([fe80::96bf:2de3:5eab:70ae%5]) with mapi id 15.21.0406.002; Mon, 7 Sep 2026 16:00:53 +0000 Message-ID: <80ba6000-b240-4a40-8701-082972441108@arm.com> Date: Mon, 7 Sep 2026 17:00:52 +0100 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v1] gdb/linux-tdep: display ProtectionKey in info proc mappings To: Andrew Burgess , gdb-patches@sourceware.org Cc: Luis Machado , Luis Machado , Thiago Jung Bauermann , Srinath Parvathaneni References: <20260728152921.256276-1-matthieu.longo@arm.com> <87fqzlqe2n.fsf@redhat.com> Content-Language: en-US From: Matthieu Longo In-Reply-To: <87fqzlqe2n.fsf@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO4P265CA0286.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:38f::13) To AS8PR08MB8659.eurprd08.prod.outlook.com (2603:10a6:20b:563::10) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: AS8PR08MB8659:EE_|AM0PR08MB5380:EE_|AM3PEPF0000A78E:EE_|AS8PR08MB8567:EE_ X-MS-Office365-Filtering-Correlation-Id: 61ee2170-3293-4d41-834c-08df0cf94518 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|376014|366016|23010399003|1800799024|10067099003|4143699003|6133799003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info-Original: 1KzI4sgZIyKGhZYCkqnQCeLHIITorzM1igcR/UkhgLPI4VsYFygOSNdBagtb/QDnfTCuHRbDrLkZ9z9LW4lGX6EKRR73nEY9qDh7qSwLSD0FTyLbljlh7loVWvA1l0zBjj9qwfwdGpSRmUS6mLVgmRz7WGqmA2YwGM+SzqLI8MnnSwuNutyYUbynSpyG5eFqZCVT6oEy78kcvos0CLCUBlVnQi9Arod8wVP4e1Tnj33qFcFfi6qBLH5TgwW95wII+E4Yeb93iT1jegAv9VnGVHV7+TZVh/srZwxOxy9EtgYQL+x9GinqUjtBgIheLjkiM4TenJpazGBMwzRXe4uuQlAzo3IhLZYRbBJ//L4w1BBplTqq9y6dAsbFZ1v8TiwMr4ebdSj5TjxuQmQYxp6tr6GxVaUc1Md8v1MEQHfiVOqya85b1iF4o+W1cQxcTz+Fx9swgc6A7sHxxJzO6WJ5/G/q8u3MnMONRhshQO32gTaqqHc8Ke/bgx2X2CpFhb9afMfwqxsePSZDvIrO9L4y7ufnKr9yvA1DovzAmXODI+rqzA2oQ2np/ZE6nEZygynt7t2UZQS0grTs71muQcU7EISxuNOCAAkWkH+KmFwKtxsskI0T7/2Wm4QfUjSpwtAR X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB8659.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(366016)(23010399003)(1800799024)(10067099003)(4143699003)(6133799003)(56012099006)(11063799006)(18002099003)(22082099003); DIR:OUT; SFP:1101; X-Exchange-RoutingPolicyChecked: G62cwsvtnBokCeohiRNMwTFKBbIotQbSzDBLnGsXd/PxqLflRyaZO1US0Pr0bQ+iq2zFHyFKWXl6jjytMxM17EHhob4cbPKs2C35hXZSsuqifv+UZzZiwgTkzg1qcmtmQ4yqjVWRiaglsZ3DanRo1tHcXGUM9cbZOrBxC4RSBE4EunkQpmrfBvD2QjmuJ5Lsu9kTysjBvg6ERqZ2s3GFmELFmvBfGI4yM36onJqBT8GEdi7wmrHdmscDR+A0CbzlLi69onXbIqaTvsq2Yly6nLSsgdIpORDS3Ysqf5tVXae5pgFKjQzMApwSP2L93hETEhmgV36Y3ncegCPv+rKzGQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB5380 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM3PEPF0000A78E.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 95815c85-9cb5-4b65-805c-08df0cf931b0 X-Microsoft-Antispam: BCL:0; ARA:13230040|36860700016|376014|1800799024|23010399003|35042699022|14060799003|82310400026|13003099007|6133799003|10067099003|4143699003|11063799006|22082099003|18002099003|56012099006; X-Microsoft-Antispam-Message-Info: 50+Ls5MuQjdpjA5nPJ2xU+WU3pnq1hl5bLlp0ivTb1D9DAbsWna82k9KeNeQaMiWxIFvmH5sat14bXIINwUJkG53vmArb8Y9uWjszK3cJTPmC+jKdnEagxHwn3+zJDseTCOGx4H0pKtTfuzYN8IUaj1fnsaiwjh6+WmkSP1disVU1WbsKHAxmuKtzMyudGAoBKk58wVaapy7PhNufYpa481zHY52Rku40f9UBYLOFzwHguwmg1vKZ6J3YGQPPGTrOQXC4rZs6e7ENye+EQdfDIFNpVYXywo2/GiSoNCDc7pnEp8WRDCJr/sXTGYYvd4brvG2gzZvUtCcydNQYOUznqnrXGEW8hXtpv5+KPEHRtcZyBHnISW86YWgeYkAtFJCDLBQMK6Z5uw65Z3Y4awnKsxN9X7NLRyyZN4Y5ZHvD8VUZb4uscy/StjklO/+zrwq/DDCUhesjHfaXDCCXd9X22LF6gK1/pcGhrRo23lXKee/ksnapiCTOSdHbbncJ6qS1kGSLGwAw7fkli/zic5DBx5SiaTPPC9Zfa/I8FWzbZzCtI5Oj67qjXD2MdRuD7hcae+Oa8qa/6MgQv9SNDhSQfXTQRm1Q/t0yglWPFJTSRabNQx8FZztJTV4Im/82Bd4u3vap7TP7un8RDiIwSIITqWjRXEqAoYC8sCbPMcLaj0= X-Forefront-Antispam-Report: CIP:4.158.2.129; CTRY:GB; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:outbound-uk1.az.dlp.m.darktrace.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(36860700016)(376014)(1800799024)(23010399003)(35042699022)(14060799003)(82310400026)(13003099007)(6133799003)(10067099003)(4143699003)(11063799006)(22082099003)(18002099003)(56012099006); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: m5dzTHzVHPDYa+4UbfZdQJVyrQMu8g+Vg7KDB1B19H4RIN0UFIPIG7MlRf8zAQhYsHhnbbFTKtURbMkRT2KeN4AykLBpQ3wgG7bGqgTrAlMOnChOJ4PW5MVCHnxgaf+jyjLMkoUhZFAEZpB56jbUclersI6LlFsnsFU5EQYZtarLAPPelHPGOBG9MWgqiff77tg/KpuwusOS5vtVikN+dkscPMg0vD4yqL9aq9y1hd+FtqNXIhlIHpexO4FjC0HVTqywcwf2Z9T98mdS3BTZYFngKwUh3huOlppAeNgB7PHiJMIZlcxqMr5SdNcGuUErrApjIiwPoKfmjXKi64ygJMJA9VfanbAE3tHWhg8deQre4xL7J9HdsbVJdAzZkExGggD9VI0LI8Swqs0WH9UV1s8RzRHwtwT+/1Jomi+Kd0HN6+YLv/lQl4vlDMhejL/N X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Sep 2026 16:01:25.4504 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 61ee2170-3293-4d41-834c-08df0cf94518 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[4.158.2.129]; Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: AM3PEPF0000A78E.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8567 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org On 07/09/2026 16:24, Andrew Burgess wrote: > Matthieu Longo writes: > >> On 28/07/2026 16:29, Matthieu Longo wrote: >>> Memory Protection Keys provide a mechanism for enforcing page-based >>> protections without requiring modification of the page tables >>> when an application changes protection domains. [1] >>> >>> The "ProtectionKey" field may be present in /proc/PID/smaps on x86_64, >>> PowerPC, and AArch64 systems since Linux 4.9, when the kernel is built >>> with Memory Protection Keys support. >>> >>> Store the parsed PKey in smaps_data as an optional value on systems >>> where the kernel reports memory protection keys. >>> >>> Parse /proc/PID/smaps alongside /proc/PID/maps when printing 'info >>> proc mappings', and add a PKey column when at least one smaps entry >>> contains a "ProtectionKey" field. >>> This lets 'info proc mappings' show the protection key associated with >>> each mapped address range. >>> >>> [1]: https://docs.kernel.org/core-api/protection-keys.html, >>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/ >>> linux.git/commit/?id=c1192f842841 >>> --- >>> gdb/linux-tdep.c | 93 ++++++++++++++++++++++++++++++++++++++++-------- >>> 1 file changed, 78 insertions(+), 15 deletions(-) >>> >>> diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c >>> index 2e9cb14d5bf..2cdf93f3193 100644 >>> --- a/gdb/linux-tdep.c >>> +++ b/gdb/linux-tdep.c >>> @@ -124,6 +124,7 @@ struct smaps_data >>> >>> ULONGEST rss; >>> ULONGEST swap; >>> + std::optional pkey; >>> }; >>> >>> /* Whether to take the /proc/PID/coredump_filter into account when >>> @@ -907,6 +908,11 @@ extract_string_view_from_buffer (gdb::array_view &buffer, >>> return {gdb::array_view (start, it), next_start}; >>> } >>> >>> +/* Forward declaration of parse_smaps_data used in linux_info_proc below. */ >>> + >>> +static std::vector >>> +parse_smaps_data (const file_reader_t &freader); >>> + >>> /* Implement the "info proc" command. */ >>> >>> static void >>> @@ -1010,33 +1016,69 @@ linux_info_proc (struct gdbarch *gdbarch, const char *args, >>> } >>> if (mappings_f) >>> { >>> + /* Parse the content of /proc/PID/smaps. */ >>> + bool pkey_column = false; >>> + std::vector smaps_data; >>> + file_reader_t smaps_freader >>> + (string_printf ("/proc/%ld/smaps", ptid.lwp ())); >>> + if (smaps_freader.error ()) >>> + warning (_("unable to open /proc file '%s'"), >>> + smaps_freader.c_filepath ()); >>> + else if (smaps_freader) >>> + { >>> + smaps_data = parse_smaps_data (smaps_freader); >>> + >>> + /* Check whether "ProtectionKey" field is present. */ >>> + pkey_column >>> + = std::any_of (smaps_data.cbegin (), smaps_data.cend (), >>> + [] (const struct smaps_data &d) -> bool >>> + { return d.pkey.has_value (); }); >>> + } >>> + >>> + /* Parse the content of /proc/PID/maps. */ >>> + std::vector maps_data; >>> file_reader_t map_freader >>> (string_printf ("/proc/%ld/maps", ptid.lwp ())); >>> - if (map_freader) >>> + if (map_freader.error ()) >>> + warning (_("unable to open /proc file '%s'"), >>> + map_freader.c_filepath ()); >>> + else if (map_freader) >>> + { >>> + auto content = map_freader.view (); >>> + for (auto it = content.begin (); it != content.end ();) >>> + { >>> + auto [line, next_line_begin] >>> + = extract_string_view_from_buffer (content, it, '\n'); >>> + it = next_line_begin; >>> + >>> + /* read_mapping() expects a null-terminated string. */ >>> + *std::prev (it) = '\0'; >>> + maps_data.emplace_back (read_mapping (line.data ())); >>> + } >>> + } >>> + >>> + gdb_assert (maps_data.size () == smaps_data.size ()); >>> + >>> + if (maps_data.size () > 0) >>> { >>> gdb_printf (_("Mapped address spaces:\n\n")); >>> - ui_out_emit_table emitter (current_uiout, 6, -1, "ProcMappings"); >>> + int n_cols = (pkey_column ? 7 : 6); >>> + ui_out_emit_table emitter (current_uiout, n_cols, -1, "ProcMappings"); >>> >>> int width = gdbarch_addr_bit (gdbarch) == 32 ? 10 : 18; >>> current_uiout->table_header (width, ui_left, "start", "Start Addr"); >>> current_uiout->table_header (width, ui_left, "end", "End Addr"); >>> current_uiout->table_header (width, ui_left, "size", "Size"); >>> current_uiout->table_header (width, ui_left, "offset", "Offset"); >>> + if (pkey_column) >>> + current_uiout->table_header (4, ui_left, "pkey", "PKey"); >>> current_uiout->table_header (5, ui_left, "perms", "Perms"); >>> current_uiout->table_header (0, ui_left, "objfile", "File"); >>> current_uiout->table_body (); >>> >>> - auto content = map_freader.view (); >>> - for (auto it = content.begin (); it != content.end ();) >>> + auto it_smaps = smaps_data.cbegin (); >>> + for (const auto &m: maps_data) >>> { >>> - auto [line, next_line_begin] >>> - = extract_string_view_from_buffer (content, it, '\n'); >>> - it = next_line_begin; >>> - >>> - /* read_mapping() expects a null-terminated string. */ >>> - *std::prev (it) = '\0'; >>> - struct mapping m = read_mapping (line.data ()); >>> - >>> ui_out_emit_tuple tuple_emitter (current_uiout, nullptr); >>> current_uiout->field_core_addr ("start", gdbarch, m.addr); >>> current_uiout->field_core_addr ("end", gdbarch, m.endaddr); >>> @@ -1047,15 +1089,21 @@ linux_info_proc (struct gdbarch *gdbarch, const char *args, >>> m.endaddr - m.addr)); >>> current_uiout->field_string ("offset", >>> paddress (gdbarch, m.offset)); >>> + if (pkey_column) >>> + { >>> + if (it_smaps->pkey.has_value ()) >>> + current_uiout->field_signed ("pkey", >>> + it_smaps->pkey.value ()); >>> + else >>> + current_uiout->field_skip ("pkey"); >>> + } >>> current_uiout->field_string ("perms", m.permissions); >>> current_uiout->field_string ("objfile", m.filename, >>> file_name_style.style ()); >>> current_uiout->text ("\n"); >>> + ++it_smaps; >>> } >>> } >>> - else >>> - warning (_("unable to open /proc file '%s'"), >>> - map_freader.c_filepath ()); >>> } >>> if (status_f) >>> { >>> @@ -1605,6 +1653,7 @@ parse_smaps_data (const file_reader_t &freader) >>> int mapping_file_p; >>> ULONGEST rss = -1; >>> ULONGEST swap = -1; >>> + int pkey = -1; >>> >>> memset (&v, 0, sizeof (v)); >>> struct mapping m = read_mapping (line); >>> @@ -1705,6 +1754,18 @@ parse_smaps_data (const file_reader_t &freader) >>> mapping_anon_p = 1; >>> } >>> } >>> + >>> + if (streq (keyword, "ProtectionKey:")) >>> + { >>> + if (sscanf (line, "%*s%d", &pkey) != 1) >>> + { >>> + /* Remove the trailing column when printing the warning. */ >>> + keyword[sizeof ("ProtectionKey:") - 2] = '\0'; >>> + warning (_("Error parsing %s's value in {s,}maps file '%s'"), >>> + keyword, freader.c_filepath ()); >>> + break; >>> + } >>> + } >>> } >>> /* Save the smaps entry to the vector. */ >>> struct smaps_data map; >>> @@ -1724,6 +1785,8 @@ parse_smaps_data (const file_reader_t &freader) >>> map.inode = m.inode; >>> map.rss = rss; >>> map.swap = swap; >>> + if (pkey != -1) >>> + map.pkey.emplace (pkey); >>> >>> smaps.emplace_back (map); >>> } >> >> Ping. > > Isn't this patch blocked on some other patches being merged? I'm not > sure it needs to be pinged if it doesn't apply yet. Apologies if I'm > wrong here. > > Thanks, > Andrew You are correct. Sorry for the noise. Matthieu