From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id E6gKBALMu2r64hcAWB0awg (envelope-from ) for ; Tue, 29 Sep 2026 10:32:34 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=amd.com header.i=@amd.com header.a=rsa-sha256 header.s=selector1 header.b=2TcwNVtZ; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id E8A3C1E01F; Tue, 29 Sep 2026 10:32:33 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-6.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,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 A18D11E01F for ; Tue, 29 Sep 2026 10:32:32 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 4FD0E4BB3BA6 for ; Tue, 29 Sep 2026 14:32:31 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4FD0E4BB3BA6 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=amd.com header.i=@amd.com header.a=rsa-sha256 header.s=selector1 header.b=2TcwNVtZ Received: from BL0PR03CU003.outbound.protection.outlook.com (mail-eastusazlp170120007.outbound.protection.outlook.com [IPv6:2a01:111:f403:c101::7]) by sourceware.org (Postfix) with ESMTPS id C348B4BA79B8 for ; Tue, 29 Sep 2026 14:32:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C348B4BA79B8 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=amd.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C348B4BA79B8 Authentication-Results: sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c101::7 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1790692325; cv=pass; b=KTRjPdSbOe23HZRzuqEuvr8/wJ8UMFLsqa5v5HA9S5fDv70I2spogaxP7tBRNVHd8bGAgMQtHnP7JybTMDRB2mAIdD67AEDBlVf8SDbpyBtlzww5XsHijBob5DfPadbIr2XO1dKmXy6aS/g34uyD9amWK+hy3AcFFsS8eXFK92Q= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1790692325; c=relaxed/simple; bh=0hqzU90swUy6RU7MY0EZ8M8ytk1PPY/+M4lNDSPrFKE=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=IScMCZqQvRFYuJqJcO04yufs/8Xv/35FJpmre+v8zT4PW0Ib7gBrBExgpVrBWR5DKsz9II4ASCfS2xixd5Bgz3D+FtIqEqoM8uOW0jgoOhdf3EaUl1HQLMK8kRCTBzhgQa4JkUqRYDHqMmGPJOt6Z4BKQ3l+Xz7oEFYV1MxN6L4= ARC-Authentication-Results: i=2; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=amd.com header.i=@amd.com header.a=rsa-sha256 header.s=selector1 header.b=2TcwNVtZ DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C348B4BA79B8 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=izL9bzhO/xAJLGZm5F0xdrix/Paz8+FDKhKEW77rLlpbL1srknM3W5YToYK/aPb+Hn33WJ4m7dLfFMgcstRmQQukBepWSGLdUNGzj9izwsHsiF8yqLJTHt1vl1tG8tu+fYz7h8QeQ9s7/rEqqVQR8VWfDVxwppd62pPMpSmKs7bzLY71rEqqvBWnVNR5wvWQ5jeEXtQweeCLVVxopXg74vGPaqbOlnXyBiHtbNe41JyZqLL/dt1WSxLNg88oTC4ZOIBngHVp+bw3iIZUAOYIjPjX+P+c/txYlnJCZZ678m3bsn7rk7CJir999a4diXI3j1P7Kskd0US3bRqqG1wq/Q== 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=kEOdtcwGWGDN21YCtcHHwl7l2Vkrtdqfc8VniCChoPw=; b=ej+NsUSG6PsZXBck+1F1NzEOFXPZlM0chTDVnhLAq1tpVsHljnnL1fcxAMd+ePwiX5gCzhv3JOQZw4+RNAIP6VN7NzIhG3TNUisSczvjwEycc2aSCDU3C7vhrVtMm6MAmu4TlSQE6vYkJR6jSgBWQ+6cGgS3c3wnBj/5PwlIeLk3LxkEFA1Ourgfl/Hnc4P+PKvDd42Rwdt0ehHbT9am5Z+EZFTTPYP0xCz2S785bXndE/9WP+DhGRWaOJlQe0nfQdkY6aX+cUKfAhNC81VYRW86LJAvm9s74qMZV3zYrJPnTCmBHbeOXNCFz+V+oNg9WUEqD2nO6sdhvTP+M6013A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=sourceware.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kEOdtcwGWGDN21YCtcHHwl7l2Vkrtdqfc8VniCChoPw=; b=2TcwNVtZjtLtUF+TygsqTtaup9Nujmn81Az0obrfCKRMntpmMStJYWfeOG5a4FXi+TP1dhf0eEStIEzWibtGORVem0cYoHHux2aboCMRc+Ot8/Ue47+Rh6G7noXLqmAXUa/WbYEO1QXVpbLuq1LM/gJDA0XGK0l17iBTQKkskmQ= Received: from BL1PR13CA0089.namprd13.prod.outlook.com (2603:10b6:208:2b8::34) by DS0PR12MB6655.namprd12.prod.outlook.com (2603:10b6:8:d0::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.24; Tue, 29 Sep 2026 14:31:51 +0000 Received: from BN3PEPF00022BBD.namprd04.prod.outlook.com (2603:10b6:208:2b8:cafe::14) by BL1PR13CA0089.outlook.office365.com (2603:10b6:208:2b8::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.472.15 via Frontend Transport; Tue, 29 Sep 2026 14:31:51 +0000 X-MS-Exchange-Authentication-Results: mx.microsoft.com 1; spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BN3PEPF00022BBD.mail.protection.outlook.com (10.167.248.117) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.472.14 via Frontend Transport; Tue, 29 Sep 2026 14:31:51 +0000 Received: from rocgdb-taktemur.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Tue, 29 Sep 2026 09:31:49 -0500 From: Tankut Baris Aktemur To: , CC: Subject: [PATCH] gdb, amdgpu: report SIGSEGV instead of SIGTRAP Date: Tue, 29 Sep 2026 16:31:25 +0200 Message-ID: <20260929143125.1098582-1-tankutbaris.aktemur@amd.com> X-Mailer: git-send-email 2.53.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN3PEPF00022BBD:EE_|DS0PR12MB6655:EE_ X-MS-Office365-Filtering-Correlation-Id: 713e2a68-13a2-466c-44ef-08df1e3666c6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|82310400026|23010399003|376014|36860700016|6133799003|3023799007|10067099003|56012099006|11063799006|18002099003; X-Microsoft-Antispam-Message-Info: ntnlxY6FjUC8y1hza8uBGBaOqgtb2DOKM1AgmBBqcHZbzmqfaR50uwmjK9kxZS0zylvF+KwJZWoPOaVFcEYi2cNfmfbog07F8rolYVAALJl7x8WiOPE/GMCu6EPTBsThocbL1hKx5opfz9fH3Vtc3ito8DSxg0OghXlfxg+3FCIlXD3NgHnari02h4NWluKrNtMrn1L3ETGiI1lfM04OvkASS387z86KWt84/nm5QCkYA96OqF8e3v0iiPrsRHoXsZv9l5bKV2xkAcseuR+hsbVep12FSD5zR6pWWv5ckpKAviIc/LJ5f3cyQoWbJ7OZydz/uTI9+Din8tLw2aTfUTftF2aYJyeMl7MNeUEfF8h2wFtRkvTN5ux4FHBjd+7RDtGlDovgaz0nekVW+spoiLD6o1amDhVcPlzkOP2dStssKZq9LQTFQR06sqD8+2jLeiMtLFaoSeysAzGa0kKx4L4n94swhKgAfqXTQi1+odzJakg0QA0i8Z1KdD2PHwccvazVVGI94261Tbq+UhPD42WsxHQOC9XKPC7EggmPL3Y1+VP9XCZ8Cu6CQITSN57EHzl/eB8deKqBDigI9TNKPhiBQ7aZm0roJyqUgtzRBgeqgmT5iQ65htYjdQP9wkArRqFU8TXmYlBHXstW7Y9kVn2t27q2n4/TKFilW0IZWnllMLlHEqkNTkgvEyFeN3UoCtSnnEgph1Zbfzb22nlm0w== X-Forefront-Antispam-Report: CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:satlexmb07.amd.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(1800799024)(82310400026)(23010399003)(376014)(36860700016)(6133799003)(3023799007)(10067099003)(56012099006)(11063799006)(18002099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: sa0/bCKg88bEIAwHM7QwgCWLYu/rnzsA10ERf5TCLCo2D3MT+UJeAC+R3EsevoDMLL0MfgdaemejJzLaE5toSFZGVu9NdtiGp1G48MtJ9LGdX+RpQWnIACJ+cqz2Em2njI1f58qUDlYvZv6sJ16RdhE8hmMZx2d3vIJRKNc1MZio0Z4zQoBUAcLhb03x+yAbIwkhOdWGIkQx18qBAG08LKUWqsBNxXQ5UizxCu3oD4XOmVaL4dWC0Up+lLhFFkfm7+XfZJAXtH4PqC63e2+vXpTzUD5HQk118qzFXJ34QiRu/7zsuLsMlWWa8ml/iWTKOxtzUUMoltj6oZjdzAsgKxAs27yC57nSdSjiHJotGkRMcDF9SzIN3saCfvRczetSx5oXPWem6WYKD8+d3fREfC9BuATykKly09a1ZQpFL3vLHbcOlSFVR5KQbrcZ3JRN X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Sep 2026 14:31:51.0794 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 713e2a68-13a2-466c-44ef-08df1e3666c6 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN3PEPF00022BBD.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6655 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 By default, segfaults on the AMD GPU target are imprecise: they are reported *after* the actual segfaulting instruction (and in practice, several other instructions) has been executed. If there is a breakpoint placed after the segfaulting statement, segfault should be reported instead of a breakpoint hit. Achieve this by setting the `imprecise_pagefault_reporting` gdbarch field to true. Tested on gfx1201. Bug: AIROCGDB-662 --- gdb/amdgpu-tdep.c | 6 +++++ gdb/gdbarch_components.py | 1 - .../precise-memory-warning-sigsegv.cpp | 1 + .../precise-memory-warning-sigsegv.exp | 23 +++++++++++++++++-- 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/gdb/amdgpu-tdep.c b/gdb/amdgpu-tdep.c index b0d6023a410..d1407af16bd 100644 --- a/gdb/amdgpu-tdep.c +++ b/gdb/amdgpu-tdep.c @@ -1270,6 +1270,12 @@ amdgpu_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_decr_pc_after_break (gdbarch, pc_adjust); + /* Pagefaults are reported imprecisely. If we receive a SIGSEGV on + an instruction where there is already a breakpoint, we tell GDB + to not convert the signal to a breakpoint hit, but to continue + treating it as SIGSEGV. */ + set_gdbarch_imprecise_pagefault_reporting (gdbarch, true); + return gdbarch_u.release (); } diff --git a/gdb/gdbarch_components.py b/gdb/gdbarch_components.py index 604c37f3832..f2ad61e5a23 100644 --- a/gdb/gdbarch_components.py +++ b/gdb/gdbarch_components.py @@ -2816,5 +2816,4 @@ non-executable stack). name="imprecise_pagefault_reporting", predefault="false", invalid=False, - unused=True, ) diff --git a/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.cpp b/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.cpp index 2510e4381bf..db0f06b364e 100644 --- a/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.cpp +++ b/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.cpp @@ -24,6 +24,7 @@ kernel () { int *p = nullptr; *p = 1; + int x = 42; /* Break here. */ } int diff --git a/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.exp b/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.exp index 460d14a2b30..755fc0a7a56 100644 --- a/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.exp +++ b/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.exp @@ -29,8 +29,7 @@ if {[build_executable "failed to prepare" $testfile $srcfile {debug hip}]} { } proc do_test { } { - clean_restart - gdb_load $::binfile + clean_restart $::testfile with_rocm_gpu_lock { if {![runto_main]} { @@ -41,6 +40,26 @@ proc do_test { } { gdb_test "continue" \ "SIGSEGV, Segmentation fault.*Warning: precise memory violation signal reporting is not enabled.*" } + + clean_restart $::testfile + + with_rocm_gpu_lock { + if {![runto_main]} { + return + } + + with_test_prefix "with-breakpoint" { + gdb_test_no_output "set amdgpu precise-memory off" + + # Define a breakpoint right after the line that would + # cause segfault. SIGSEGV should be reported, not a + # breakpoint hit. + gdb_breakpoint [gdb_get_line_number "Break here"] -allow-pending + + gdb_test "continue" \ + "SIGSEGV, Segmentation fault.*Warning: precise memory violation signal reporting is not enabled.*" + } + } } do_test -- 2.53.0