From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id P+5wNNhaOmo7tBQAWB0awg (envelope-from ) for ; Tue, 23 Jun 2026 06:07:20 -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=W2ekiWAk; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id C90A51E024; Tue, 23 Jun 2026 06:07:20 -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 3A6C81E024 for ; Tue, 23 Jun 2026 06:07:19 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 353A54BA2E09 for ; Tue, 23 Jun 2026 10:07:18 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 353A54BA2E09 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=W2ekiWAk Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011021.outbound.protection.outlook.com [40.93.194.21]) by sourceware.org (Postfix) with ESMTPS id 571E64BA540B for ; Tue, 23 Jun 2026 10:06:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 571E64BA540B 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 571E64BA540B Authentication-Results: sourceware.org; arc=pass smtp.remote-ip=40.93.194.21 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1782209212; cv=pass; b=syJBIMYO/Gv1GFNdk6vHufxCYFKPa9iKO/qzB5SsUeqB5I874ENju+uiczySlv3NSXDHIUcPo5JeDs+50VLqs3fhfz1wJ0UuNuvlZJHcyXmRa3xw6darAzwsCaHNN6vtmLE1eHK0US+vYixTncm5hTKXD61waI8FAVbzDhsQulI= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1782209212; c=relaxed/simple; bh=Qg2VinjASEmXoc3omTI6rEadWJVkDZIxWaCA4YajSdA=; h=DKIM-Signature:Date:From:To:Subject:Message-ID:MIME-Version; b=HHsO1UvMKwF6a1IU+Rb5VkbKS3rOCLMv/CWjJBIfJ9OzZu5oxdsNpW21Ed8EByP2e9E4CN8HgEnqx2kp6eKsmDjW7N4EF+VkvpKukQ7ojl57yS3tWgDi8ih2YqE0PWf7+td7laVp3LR2cvNpwZBxhd/spNom217otuBz0tNpv1E= 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=W2ekiWAk DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 571E64BA540B ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Lc4Lrkgylx/UPHdEq5XsjEqYFE/DbPR5NlGZszmacOps6OFZFHjKViiHHbTRzmV+/EX+EkFfrw7jJXC1WL3AQkJ/1PDXGTNaFAgFk0fTAHgtW6uP4LtJ+nG35A3vOAejVuaWLNZvvprxitqpP3PcDKRUJBE5TndWN/zwPU1fEqEB2O2BwUfLKl5zjYVOcEXNWt4gZwcxdLlBQYFrwMjH5lD+MxzwQaljKT+F4kgfov9OtpKKbHZemB4gsEiFTLPXrq4UDeg9bO/mdXO2NxOGw3Umyje83wWAS8uRm4ndFV883Icgzsy0rpN0aGTH1ViZDwhP2o8rCq5XShHLRFm8CQ== 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=+qjU0fMHGpptD9E1oL+lotLqSbH5aQofLrees3vs81s=; b=qR0sTXLnK8mUHgZ5SM3HqsGZZK7dkimYzwwtyMFvo7nVk7UpTVOH88wbWqf3Qd6tXZyRbDoqey4J1Y9kMd6FbH1/Q/POuOwWfHp9oeK7alV6mOvoqJE0sUD2eGTXo9Ig78dxd3dqDOO49H/Erb78lxGpKu3PPYrEqtkNMzyGlTjExxhgs5WhWvdeAdYJAd+gbvGcDVlth4XiKbddE/jUom/0Ut0ko3NJ/yKrvOmZKtypq9y0Jr8C5/rPPQojfQe9t5zB88rIQWyFwfE8pF/iaC/HFvY1NJXmsKbjBV+XNvXmh5CEKN1cMZfyx3/wnwgz/9ExewSpW4PHMoZpgS6nDg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=palves.net 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=+qjU0fMHGpptD9E1oL+lotLqSbH5aQofLrees3vs81s=; b=W2ekiWAk11AI5rIyjPIHSh6uH7crQ4a+hmav9WCSNp+3U3CwVbE8fX1m+H7gdlDI+NxjAmhpLHWKVMGa2dk7YmzMSnk5PtDXtIC6Vpmq9oCNnBHnhBGq+DC7LAvw1Wad0S23Q+xxc8ytGNffybU6H0sc8Rzz74GeJaUC/A+vlg4= Received: from PH7P220CA0159.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:33b::28) by SA6PR12MB999200.namprd12.prod.outlook.com (2603:10b6:806:450::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.113.21; Tue, 23 Jun 2026 10:06:42 +0000 Received: from SN1PEPF00036F41.namprd05.prod.outlook.com (2603:10b6:510:33b:cafe::6b) by PH7P220CA0159.outlook.office365.com (2603:10b6:510:33b::28) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.159.12 via Frontend Transport; Tue, 23 Jun 2026 10:06:41 +0000 X-MS-Exchange-Authentication-Results: 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 SN1PEPF00036F41.mail.protection.outlook.com (10.167.248.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.159.10 via Frontend Transport; Tue, 23 Jun 2026 10:06:41 +0000 Received: from khazad-dum (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.41; Tue, 23 Jun 2026 05:06:40 -0500 Date: Tue, 23 Jun 2026 11:06:32 +0100 From: Lancelot SIX To: Pedro Alves , Subject: Re: [PATCH] Fix amd_dbgapi_target::wait's handling of TARGET_WAITKIND_IGNORE Message-ID: References: <20260619170151.821207-1-pedro@palves.net> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20260619170151.821207-1-pedro@palves.net> X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF00036F41:EE_|SA6PR12MB999200:EE_ X-MS-Office365-Filtering-Correlation-Id: 418e614a-2680-4bc4-7157-08ded10f1f9f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|376014|36860700016|23010399003|82310400026|22082099003|56012099006|5023799004|11063799006|18002099003|13003099007; X-Microsoft-Antispam-Message-Info: 7O6miHRjavHcXEOB3CjIn1wT4Npu8ZspfEvJZ5RFa+xkqXOKNL95ajxsEuSHhlCO17AFzu7BUXYVZvyh6fkv/TCZ7M0gb0GyYvBn2HpCTLJiMm8psrcTFe0DXG/5R4OESR9HR0e5sBYL6TvBhT+m/asXUY8TXLlhYKEwsHB55/2C9MAKNRI7xzcjpxt2UXKDHC/Vijih8PtHihilMon+BtoULop5++3NzSOKCAxMANH543yHctqyYpgi5YLely/V69ubfZldKDJAr7Dd8nrnj5nbxep5FD92iBO+Q5ndkC5mb2H18PfqwfbwKW06NSFTw9G9Czn1SpQfBjOWJlFNbOpM8fr1Uj2AkVNT5M1zrCrYXUFDOe1hnzyHy3NOR1sRv3AXejwIop4299gnb5BJ/GP0qWSnKFUGqjskaE1C/ZlHaycgzgmvx6aYsFdTW0svpwOfmo6Dv5u/aKIpX15zALOmnQu9TG9cjk3YLy3AyGAaSrxZlQLo3/cknz+tx3hw/CyCGRh0nLpqQBAADbKRIXvpu3uTjWv/Z21w1acJWEkOodycjDDXX5OkOejEirYyAc1+lOVvGPgWgGhGqN7yv+WkjFreLqWsaLUFp9WP8Y4oeBl+oJIM0MzAFYxg9zf5eCShgb0oWx0xNfPa0AsJ6w== 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)(376014)(36860700016)(23010399003)(82310400026)(22082099003)(56012099006)(5023799004)(11063799006)(18002099003)(13003099007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 39cyN9NiuRlBlKT2A+wcmEoSQva06k6DFYZQY/TZqlzIvEVLJzhU1/RKER4TAyiCIVxrWgOEtcJ3my/tLyuPQqSBgBCTi5Ywg49FrUcwvsDi0a5bjp93ONLl2MMl2dK+zHKyLffJVbqCdcClQgF4kCg3nLXvDyMTBAsMZKnsTxE0eR5z3DHxcReG4cLQ7wRwAnW4Az6PH9zupHgZmOgtwXEqXV4C0wEvtY5Bce2H0+sh29rpWLk9kh1w3jogHRENeKsnhQXtokGJ8TDGZ9IRbWgfja10roMuou5/aAcT+VGyA1UoyBEWv/WlzeZuzT08tSQRS4jHR/d6Fs7RYByCl8reH4Oyadj8o6qErceslWXvLP53Qs1ztq3AwPlFjLMtxsVSRgA1OPWBeR5GeCyCzivp2FzTRirNXi8jOrOHmc4FHQEDu8c0rJPizhNHMyxO X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2026 10:06:41.8044 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 418e614a-2680-4bc4-7157-08ded10f1f9f 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: SN1PEPF00036F41.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR12MB999200 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 Fri, Jun 19, 2026 at 06:01:51PM +0100, Pedro Alves wrote: > On Windows, a ROCgdb downstream testcase > (gdb.rocm/register-watchpoint.exp, which we can't upstream yet due to > missing support for DWARF 6 features upstream) currently fails with a > timeout, like so: > > (gdb) PASS: gdb.rocm/register-watchpoint.exp: continue to breakpoint: bit_extract_kernel > watch $s32 > Watchpoint 3: $s32 > (gdb) PASS: gdb.rocm/register-watchpoint.exp: watchpoint on a stack pointer of the first wave > continue > Continuing. > FAIL: gdb.rocm/register-watchpoint.exp: continue (timeout) > > Running the test manualy with some extra logging, we see: > > [infrun] stop_all_threads: 6/7 waits_needed << extra > [amd-dbgapi] wait: ptid = -1.0.0 > [windows events] get_windows_debug_event: kernel event for pid=7036 tid=0x4e8 code=EXCEPTION_DEBUG_EVENT > [windows events] get_windows_debug_event: get_windows_debug_event - unexpected stop in suspended thread 0x4e8 > [windows events] continue_last_debug_event: ContinueDebugEvent (cpid=7036, ctid=0x4e8, DBG_REPLY_LATER) > [windows events] wait: get_windows_debug_event returned [0.0.0 : status->kind = IGNORE, fake=0] > [infrun] print_target_wait_results: target_wait (-1.0.0 [process -1], status) = > [infrun] print_target_wait_results: 0.0.0 [process 0], > [infrun] print_target_wait_results: status->kind = IGNORE > [infrun] print_target_wait_results: from target 1 (native) > [infrun] wait_one: about to block in interruptible_select << extra > > So we're in stop_all_threads, and we've pulled the stop events for all > CPU threads already, but then we hang in interruptible_select waiting > for the last stop event, which happens to be for the GPU wave. > > In wait_one, before the interruptible_select call, we poll events from > the target, via target_wait with WNOHANG, and so we get here: > > ptid_t > amd_dbgapi_target::wait (ptid_t ptid, struct target_waitstatus *ws, > target_wait_flags target_options) > { > ... > ptid_t event_ptid = beneath ()->wait (ptid, ws, target_options); > if (event_ptid != minus_one_ptid) > { > ... > return event_ptid; > } > ... handle dbgapi events ... > > So above, we call the beneath target's wait. On Windows that may hit > that "get_windows_debug_event - unexpected stop in suspended thread > 0x4e8" path, which makes windows_nat_target::wait return > TARGET_WAITKIND_IGNORE. The Windows target pairs that with event_ptid > == ptid_t(0,0,0) though, so the 'if then' branch is taken and we > return the TARGET_WAITKIND_IGNORE to the core without looking for > dbgapi events. The event for the wave stop at this point has already > been flushed from the dbgapi library into amd-dbgapi-target's dbgapi > local event queue, and so wait_one ends up deadlocked in > interruptible_select, which results in the timeouts observed. > > Nothing specifies that TARGET_WAITKIND_IGNORE must be returned with > minus_one_ptid. infrun never looks at the event ptid if the status is > TARGET_WAITKIND_IGNORE. So fix this by tweaking > amd_dbgapi_target::wait to not assume that either. > > Change-Id: I6cbbeebdc8146e361ead72829b59f82531c90fc7 Hi, Thas looks good to me, thanks! Approved-by: Lancelot Six (amdgpu) Best, Lancelot. > --- > gdb/amd-dbgapi-target.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/gdb/amd-dbgapi-target.c b/gdb/amd-dbgapi-target.c > index 610a484becd..d0424044e0c 100644 > --- a/gdb/amd-dbgapi-target.c > +++ b/gdb/amd-dbgapi-target.c > @@ -1690,7 +1690,8 @@ amd_dbgapi_target::wait (ptid_t ptid, struct target_waitstatus *ws, > amd_dbgapi_debug_printf ("ptid = %s", ptid.to_string ().c_str ()); > > ptid_t event_ptid = beneath ()->wait (ptid, ws, target_options); > - if (event_ptid != minus_one_ptid) > + if (ws->kind () != TARGET_WAITKIND_NO_RESUMED > + && ws->kind () != TARGET_WAITKIND_IGNORE) > { > if (ws->kind () == TARGET_WAITKIND_EXITED > || ws->kind () == TARGET_WAITKIND_SIGNALLED) > @@ -1703,9 +1704,6 @@ amd_dbgapi_target::wait (ptid_t ptid, struct target_waitstatus *ws, > return event_ptid; > } > > - gdb_assert (ws->kind () == TARGET_WAITKIND_NO_RESUMED > - || ws->kind () == TARGET_WAITKIND_IGNORE); > - > /* Flush the async handler first. */ > if (target_is_async_p ()) > async_event_handler_clear (); > > base-commit: fd3cf86c638b7fdc0ccb64e178ec43ccd7e9d3f9 > -- > 2.54.0