[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Early-stop state wait when backend disappears


  • To: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>, "win-pv-devel@xxxxxxxxxxxxxxxxxxxx" <win-pv-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Owen Smith <owen.smith@xxxxxxxxxx>
  • Date: Mon, 19 Oct 2026 12:13:20 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • 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=lI/btsxQsCQe2BAYGbHBSp+NFCDH/9c0PRkhMwxnk9k=; b=PhCjh+UEUY6VZi/JcscLzns4qyMRGukVzSF8WEsQCti7rGrFKT2zxT/94ldGLWobCxJtp27/Ou1yeWejy3+hQBv74ck8YapJnqjr8kqH5FM53REGu34YSN11uzRN2VDYJxL1/4GxkCcH9QfJoGsdBw1+5oa6U87w5PwHrv7P6LL6hxQT68MPjKFC4CHhe7/j10XLnWtWy9yIsGip95IPU5is9EDuDFkH75UtuDspsrznArMWzUvrpAfNia12D/18tSO1Aof/TFmQKzcHa2v+LyjfDhCT0PJECFpIIaUaCqxTudNIwH3h6v/aeSsMSh+izGaiJ6r1jD7dqhtWg9Xh5g==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=N0VthPrI9P/Fn04TxeJ+GPMyRQsoqQGmjA3ppXeRFOfaz2dMIB+c4JSGRORKjC1Cxg9ugHONMeUwdNuhjDGXyhhs8kGRyeEuzXou2nQOQtQhaIc+YljDNrW4rqKoCTnfMcJSI0ssGWj69/lLhWIDpr6A1wbcLKLjxsNeRqJn7yiQrDLGFUwzBw/EJnCZhWrtlMss/KBKGs42JpmR9do8avD8NAgUd1sqiSEgC3wSqSBjQkLCArAzm7lDllNKpY/LKwko0cGWLtBePVMtYV/K22wac+vnPLPIwoTGpBZg/xSUl+ZLJH+OETn9S1Extc7XXdvMU64/q0T6s+hJ9grdsw==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
  • Authentication-results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Delivery-date: Mon, 19 Oct 2026 12:13:26 +0000
  • List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>
  • Msip_labels:
  • Thread-index: AQHdXWORwGHm49uiGUGxITNMn72GObcEy19f
  • Thread-topic: [PATCH] Early-stop state wait when backend disappears

Reviewed-by: Owen Smith <owen.smith@xxxxxxxxxx>

________________________________________
From: win-pv-devel <win-pv-devel-bounces@xxxxxxxxxxxxxxxxxxxx> on behalf of Tu 
Dinh <ngoc-tu.dinh@xxxxxxxxxx>
Sent: 16 October 2026 12:43 PM
To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx
Cc: Tu Dinh
Subject: [PATCH] Early-stop state wait when backend disappears

During unplug, if the backend disappears before FrontendWaitForBackend-
XenbusStateChange is called, that function will block at
XenbusStateUnknown and cause the system to hang until the timeout
expires.

Break out of the watch loop as soon as this condition is detected to
avoid this hang.

Ported from Xenvif.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>
---
 src/xenvkbd/frontend.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/xenvkbd/frontend.c b/src/xenvkbd/frontend.c
index 7b258ca..4b96423 100644
--- a/src/xenvkbd/frontend.c
+++ b/src/xenvkbd/frontend.c
@@ -460,7 +460,12 @@ FrontendWaitForBackendXenbusStateChange(
                               __FrontendGetBackendPath(Frontend),
                               "state",
                               &Buffer);
-        if (!NT_SUCCESS(status)) {
+        if (status == STATUS_OBJECT_NAME_NOT_FOUND) {
+            *State = XenbusStateUnknown;
+            Trace("%s disappeared\n",
+                  __FrontendGetBackendPath(Frontend));
+            break;
+        } else if (!NT_SUCCESS(status)) {
             *State = XenbusStateUnknown;
         } else {
             *State = (XenbusState)strtol(Buffer, NULL, 10);
--
2.55.0.windows.3



--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.