From win-pv-devel-bounces@lists.xenproject.org Tue Jul 01 09:26:01 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 01 Jul 2025 09:26:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1029456.1403197 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uWXFV-0006e3-Lz; Tue, 01 Jul 2025 09:25:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1029456.1403197; Tue, 01 Jul 2025 09:25:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uWXFV-0006dv-J8; Tue, 01 Jul 2025 09:25:57 +0000
Received: by outflank-mailman (input) for mailman id 1029456;
 Tue, 01 Jul 2025 09:25:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=V4oz=ZO=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1uWXFT-0006do-RE
 for win-pv-devel@lists.xenproject.org; Tue, 01 Jul 2025 09:25:56 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 62b3a4c6-565d-11f0-b894-0df219b8e170;
 Tue, 01 Jul 2025 11:25:53 +0200 (CEST)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-553b5165cf5so7260319e87.0
 for <win-pv-devel@lists.xenproject.org>; Tue, 01 Jul 2025 02:25:53 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 62b3a4c6-565d-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1751361953; x=1751966753; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=5DG8ou3V0adMSpNkvmHMxRy2rJWSBgl4wfV/Rv/UB84=;
        b=bPXmqy4t9TVDrTSg0GTujTkZmEYPMIBls8AsnceB7GFz9AvK3QQvO1DO/G3vrf9x/W
         C4gVnDjAgPznyPEFyG7gY1NkmKqeIHDDKWNZXcI+L+hN93oF9E9SqpQ75HP6JT2qzpiM
         SwtubbnI8LjkTU8TrI42yYSNdB00pw8r8kqPk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1751361953; x=1751966753;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=5DG8ou3V0adMSpNkvmHMxRy2rJWSBgl4wfV/Rv/UB84=;
        b=FnRbje0ZRWIFWd3qqQYryX2yi2ygHw7g8yehXmCZkRH/AuXP3PumLaJipS1v4Pitwy
         psWnJRLx6I3mUBXqKKMuPPcJsqFbVpoKg3QYPkyWFIayqCMncrMElRicDFcmaSvDNBad
         O+q3tkzazpSwEAjtFfucMizAPyadoZuZjA1YkbNDj3NpW2FRMDqFa8YVyLldvPb2nK9Z
         7mBZC0txtRZHnBz8sagNbgAVqeB1WtuOZBwiq6JZrtqPY23nGV7DPgur7K2O/EW4rCqQ
         FjtlxAsWuaNY81XwxllZ7OVetzpS01ffrDb6dKHHrL9zcE+S+OfyfyC8qyU8yaVqB/rX
         rgqA==
X-Gm-Message-State: AOJu0Ywa1tSZ8FsVqrpaMArhiP0sIciVjwsAr2n2zQ2Ge/H3xlSceohs
	xoWFo/qryQg+kLGbrCWghpB2MkGO16tIOKo+hFOiWJyBjVYxU/bq4a8IrJPbt5o35nD5GroTMgP
	g6c17p9l0k5e1ZHkS+GWYZnWrrJy3vj+rldvGjESa
X-Gm-Gg: ASbGncsvkvIpi+rxjovQyh0YhXk3I2ITSm3bcbqJwfCcaK+1wJaGD3DyqIklmPjGg/T
	oalVaXSqq5O04TngiNsWdZA/Cq1HJChsHdpdr1bXu5iG0UZjTuVYsnmiT+SCjOEFIzW6ziK72YY
	eyLxy9XV7dlK3HghMJeX+4XwPUHEUOCqQN8MbdnEhwkiQ=
X-Google-Smtp-Source: AGHT+IH6y9BWPPfSXE3BcM+yAacCwywfngICCC44veVtMc3i1bHhfv6viwIio4zsJdqYh72JJUlL31++ISQDmUAOKFU=
X-Received: by 2002:a05:6512:39cf:b0:553:cfa8:dd38 with SMTP id
 2adb3069b0e04-5550ba055ecmr5082776e87.36.1751361952600; Tue, 01 Jul 2025
 02:25:52 -0700 (PDT)
MIME-Version: 1.0
References: <20250625143404.1757-1-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250625143404.1757-1-ngoc-tu.dinh@vates.tech>
From: Owen Smith <owen.smith@cloud.com>
Date: Tue, 1 Jul 2025 10:25:41 +0100
X-Gm-Features: Ac12FXwt6Afn1efs0uufHllkUbE5BqE3nPKqSGo_vBu0QJIUENX2rclfMHuiC7Q
Message-ID: <CAC_UY880_qRy4mVRNrWcF70N3O70D1G0AVAFeTZC2segvX5jBQ@mail.gmail.com>
Subject: Re: [XENBUS PATCH 00/13] Use SAL 2.0 annotations
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="0000000000000eee610638dabbc4"

--0000000000000eee610638dabbc4
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Looks good and applies cleanly.
1 minor whitespace issue should be fixed up in the second patch (existing
tab should be replaced by spaces) - I will fix this when applying the
patches

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

On Wed, Jun 25, 2025 at 3:34=E2=80=AFPM Tu Dinh <ngoc-tu.dinh@vates.tech> w=
rote:

> WinPV drivers use old annotations (IN/OUT) that are not checked by the
> compiler.
>
> This patch series aims to move all Xenbus annotations to SAL 2.0 to
> increase the
> number of checks the compiler can do.
>
> Only Xenbus is converted for now.
>
> The series is split into 3 parts:
>
> Part 1: Conversion and correction of existing annotations; use of string
> types
> to explicitly signify null-terminated pointers
> * Replace old annotations with SAL2 equivalents
> * Switch from char pointers to null-terminated string types
> * Refine function annotations
> * Set _Outptr_ on output pointers
>
> Part 2: Suppress new warnings
> * Suppress uninitialized *Interface warning in FdoQueryInterface
> * registry: Suppress unannotated DriverEntry warning
> * registry: Suppress uninitialized memory warnings
>
> Part 3: Various fixes discovered via SAL annotations. These patches can b=
e
> taken
> as-is separately from the above.
> * Fix missing return types
> * monitor: Fix GetRequestKeyName allocation check
> * Check ParametersKey for null in FdoScan
> * Check for IoAttachDeviceToDeviceStack failure in FdoCreate
> * sync: Save/restore IRQL when disabling interrupts
> * Explicitly check HvmGetParam result via BUG_ON
>
> Tu Dinh (13):
>   Replace old annotations with SAL2 equivalents
>   Switch from char pointers to null-terminated string types
>   Refine function annotations
>   Set _Outptr_ on output pointers
>   Suppress uninitialized *Interface warning in FdoQueryInterface
>   registry: Suppress unannotated DriverEntry warning
>   registry: Suppress uninitialized memory warnings
>   Fix missing return types
>   monitor: Fix GetRequestKeyName allocation check
>   Check ParametersKey for null in FdoScan
>   Check for IoAttachDeviceToDeviceStack failure in FdoCreate
>   sync: Save/restore IRQL when disabling interrupts
>   Explicitly check HvmGetParam result via BUG_ON
>
>  include/balloon_interface.h     |   68 +-
>  include/cache_interface.h       |  130 ++--
>  include/console_interface.h     |   30 +-
>  include/debug_interface.h       |   88 +--
>  include/emulated_interface.h    |   78 +--
>  include/evtchn_interface.h      |  136 ++--
>  include/gnttab_interface.h      |  148 ++---
>  include/range_set_interface.h   |  100 +--
>  include/shared_info_interface.h |  106 +--
>  include/store_interface.h       |  156 ++---
>  include/suspend_interface.h     |   80 +--
>  include/unplug_interface.h      |   72 +-
>  include/xen.h                   |  330 +++++-----
>  src/common/assert.h             |   80 +--
>  src/common/dbg_print.h          |   62 +-
>  src/common/high.h               |   63 +-
>  src/common/mutex.h              |   60 +-
>  src/common/names.h              |  118 ++--
>  src/common/registry.c           |  269 ++++----
>  src/common/registry.h           |  186 +++---
>  src/common/util.h               |   73 +-
>  src/monitor/monitor.c           |  125 ++--
>  src/xen/acpi.c                  |   60 +-
>  src/xen/acpi.h                  |   52 +-
>  src/xen/bug_check.c             |  175 ++---
>  src/xen/config.c                |   46 +-
>  src/xen/driver.c                |  138 ++--
>  src/xen/driver.h                |    6 +-
>  src/xen/event_channel.c         |  116 ++--
>  src/xen/filters.c               |   16 +-
>  src/xen/grant_table.c           |   90 +--
>  src/xen/hvm.c                   |   80 +--
>  src/xen/log.c                   |  164 ++---
>  src/xen/memory.c                |   78 +--
>  src/xen/module.c                |  102 +--
>  src/xen/process.c               |   60 +-
>  src/xen/process.h               |   50 +-
>  src/xen/sched.c                 |   64 +-
>  src/xen/system.c                |  125 ++--
>  src/xen/unplug.c                |   42 +-
>  src/xen/vcpu.c                  |   20 +-
>  src/xen/xen_version.c           |   66 +-
>  src/xenbus/balloon.c            |  216 +++---
>  src/xenbus/balloon.h            |   62 +-
>  src/xenbus/bus.c                |  146 ++--
>  src/xenbus/bus.h                |   52 +-
>  src/xenbus/cache.c              |  220 +++----
>  src/xenbus/cache.h              |   62 +-
>  src/xenbus/console.c            |  140 ++--
>  src/xenbus/console.h            |   16 +-
>  src/xenbus/debug.c              |  140 ++--
>  src/xenbus/debug.h              |   62 +-
>  src/xenbus/dma.c                |  521 +++++++--------
>  src/xenbus/dma.h                |   54 +-
>  src/xenbus/driver.c             |   97 +--
>  src/xenbus/driver.h             |   50 +-
>  src/xenbus/evtchn.c             |  244 +++----
>  src/xenbus/evtchn.h             |   64 +-
>  src/xenbus/evtchn_2l.c          |   96 +--
>  src/xenbus/evtchn_2l.h          |   56 +-
>  src/xenbus/evtchn_abi.h         |   86 +--
>  src/xenbus/evtchn_fifo.c        |  174 ++---
>  src/xenbus/evtchn_fifo.h        |   56 +-
>  src/xenbus/fdo.c                | 1099 ++++++++++++++++---------------
>  src/xenbus/fdo.h                |  180 ++---
>  src/xenbus/gnttab.c             |  214 +++---
>  src/xenbus/gnttab.h             |   62 +-
>  src/xenbus/hash_table.c         |  100 +--
>  src/xenbus/hash_table.h         |   68 +-
>  src/xenbus/pdo.c                |  392 +++++------
>  src/xenbus/pdo.h                |  116 ++--
>  src/xenbus/range_set.c          |  162 ++---
>  src/xenbus/range_set.h          |   62 +-
>  src/xenbus/shared_info.c        |  152 ++---
>  src/xenbus/shared_info.h        |   62 +-
>  src/xenbus/store.c              |  506 +++++++-------
>  src/xenbus/store.h              |   62 +-
>  src/xenbus/suspend.c            |  118 ++--
>  src/xenbus/suspend.h            |   62 +-
>  src/xenbus/sync.c               |  146 ++--
>  src/xenbus/sync.h               |   78 +--
>  src/xenbus/thread.c             |   74 +--
>  src/xenbus/thread.h             |   64 +-
>  src/xenbus/unplug.c             |   54 +-
>  src/xenbus/unplug.h             |   16 +-
>  src/xenfilt/driver.c            |  134 ++--
>  src/xenfilt/driver.h            |   72 +-
>  src/xenfilt/emulated.c          |  132 ++--
>  src/xenfilt/emulated.h          |   74 +--
>  src/xenfilt/fdo.c               |  286 ++++----
>  src/xenfilt/fdo.h               |   78 +--
>  src/xenfilt/pdo.c               |  313 ++++-----
>  src/xenfilt/pdo.h               |   80 +--
>  src/xenfilt/thread.c            |   78 +--
>  src/xenfilt/thread.h            |   64 +-
>  95 files changed, 5994 insertions(+), 5888 deletions(-)
>
> --
> 2.50.0.windows.1
>
>
>
> Ngoc Tu Dinh | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech
>
>

--0000000000000eee610638dabbc4
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: base64

PGRpdiBkaXI9Imx0ciI+PGRpdiBjbGFzcz0iZ21haWxfZGVmYXVsdCIgc3R5bGU9ImZvbnQtZmFt
aWx5Om1vbm9zcGFjZSI+TG9va3MgZ29vZCBhbmQgYXBwbGllcyBjbGVhbmx5LjwvZGl2PjxkaXYg
Y2xhc3M9ImdtYWlsX2RlZmF1bHQiIHN0eWxlPSJmb250LWZhbWlseTptb25vc3BhY2UiPjEgbWlu
b3Igd2hpdGVzcGFjZSBpc3N1ZSBzaG91bGQgYmUgZml4ZWQgdXAgaW4gdGhlIHNlY29uZCBwYXRj
aCAoZXhpc3RpbmcgdGFiIHNob3VsZCBiZSByZXBsYWNlZCBieSBzcGFjZXMpIC0gSSB3aWxsIGZp
eCB0aGlzIHdoZW4gYXBwbHlpbmcgdGhlIHBhdGNoZXM8L2Rpdj48ZGl2IGNsYXNzPSJnbWFpbF9k
ZWZhdWx0IiBzdHlsZT0iZm9udC1mYW1pbHk6bW9ub3NwYWNlIj48YnI+PC9kaXY+PGRpdiBjbGFz
cz0iZ21haWxfZGVmYXVsdCIgc3R5bGU9ImZvbnQtZmFtaWx5Om1vbm9zcGFjZSI+UmV2aWV3ZWQt
Ynk6IE93ZW4gU21pdGggJmx0OzxhIGhyZWY9Im1haWx0bzpvd2VuLnNtaXRoQGNsb3VkLmNvbSI+
b3dlbi5zbWl0aEBjbG91ZC5jb208L2E+Jmd0OzwvZGl2PjwvZGl2Pjxicj48ZGl2IGNsYXNzPSJn
bWFpbF9xdW90ZSI+PGRpdiBkaXI9Imx0ciIgY2xhc3M9ImdtYWlsX2F0dHIiPk9uIFdlZCwgSnVu
IDI1LCAyMDI1IGF0IDM6MzTigK9QTSBUdSBEaW5oICZsdDtuZ29jLXR1LmRpbmhAdmF0ZXMudGVj
aCZndDsgd3JvdGU6PGJyPjwvZGl2PjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5
bGU9Im1hcmdpbjowcHggMHB4IDBweCAwLjhleDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiKDIw
NCwyMDQsMjA0KTtwYWRkaW5nLWxlZnQ6MWV4Ij5XaW5QViBkcml2ZXJzIHVzZSBvbGQgYW5ub3Rh
dGlvbnMgKElOL09VVCkgdGhhdCBhcmUgbm90IGNoZWNrZWQgYnkgdGhlIGNvbXBpbGVyLjxicj4N
Cjxicj4NClRoaXMgcGF0Y2ggc2VyaWVzIGFpbXMgdG8gbW92ZSBhbGwgWGVuYnVzIGFubm90YXRp
b25zIHRvIFNBTCAyLjAgdG8gaW5jcmVhc2UgdGhlPGJyPg0KbnVtYmVyIG9mIGNoZWNrcyB0aGUg
Y29tcGlsZXIgY2FuIGRvLjxicj4NCjxicj4NCk9ubHkgWGVuYnVzIGlzIGNvbnZlcnRlZCBmb3Ig
bm93Ljxicj4NCjxicj4NClRoZSBzZXJpZXMgaXMgc3BsaXQgaW50byAzIHBhcnRzOjxicj4NCjxi
cj4NClBhcnQgMTogQ29udmVyc2lvbiBhbmQgY29ycmVjdGlvbiBvZiBleGlzdGluZyBhbm5vdGF0
aW9uczsgdXNlIG9mIHN0cmluZyB0eXBlczxicj4NCnRvIGV4cGxpY2l0bHkgc2lnbmlmeSBudWxs
LXRlcm1pbmF0ZWQgcG9pbnRlcnM8YnI+DQoqIFJlcGxhY2Ugb2xkIGFubm90YXRpb25zIHdpdGgg
U0FMMiBlcXVpdmFsZW50czxicj4NCiogU3dpdGNoIGZyb20gY2hhciBwb2ludGVycyB0byBudWxs
LXRlcm1pbmF0ZWQgc3RyaW5nIHR5cGVzPGJyPg0KKiBSZWZpbmUgZnVuY3Rpb24gYW5ub3RhdGlv
bnM8YnI+DQoqIFNldCBfT3V0cHRyXyBvbiBvdXRwdXQgcG9pbnRlcnM8YnI+DQo8YnI+DQpQYXJ0
IDI6IFN1cHByZXNzIG5ldyB3YXJuaW5nczxicj4NCiogU3VwcHJlc3MgdW5pbml0aWFsaXplZCAq
SW50ZXJmYWNlIHdhcm5pbmcgaW4gRmRvUXVlcnlJbnRlcmZhY2U8YnI+DQoqIHJlZ2lzdHJ5OiBT
dXBwcmVzcyB1bmFubm90YXRlZCBEcml2ZXJFbnRyeSB3YXJuaW5nPGJyPg0KKiByZWdpc3RyeTog
U3VwcHJlc3MgdW5pbml0aWFsaXplZCBtZW1vcnkgd2FybmluZ3M8YnI+DQo8YnI+DQpQYXJ0IDM6
IFZhcmlvdXMgZml4ZXMgZGlzY292ZXJlZCB2aWEgU0FMIGFubm90YXRpb25zLiBUaGVzZSBwYXRj
aGVzIGNhbiBiZSB0YWtlbjxicj4NCmFzLWlzIHNlcGFyYXRlbHkgZnJvbSB0aGUgYWJvdmUuPGJy
Pg0KKiBGaXggbWlzc2luZyByZXR1cm4gdHlwZXM8YnI+DQoqIG1vbml0b3I6IEZpeCBHZXRSZXF1
ZXN0S2V5TmFtZSBhbGxvY2F0aW9uIGNoZWNrPGJyPg0KKiBDaGVjayBQYXJhbWV0ZXJzS2V5IGZv
ciBudWxsIGluIEZkb1NjYW48YnI+DQoqIENoZWNrIGZvciBJb0F0dGFjaERldmljZVRvRGV2aWNl
U3RhY2sgZmFpbHVyZSBpbiBGZG9DcmVhdGU8YnI+DQoqIHN5bmM6IFNhdmUvcmVzdG9yZSBJUlFM
IHdoZW4gZGlzYWJsaW5nIGludGVycnVwdHM8YnI+DQoqIEV4cGxpY2l0bHkgY2hlY2sgSHZtR2V0
UGFyYW0gcmVzdWx0IHZpYSBCVUdfT048YnI+DQo8YnI+DQpUdSBEaW5oICgxMyk6PGJyPg0KwqAg
UmVwbGFjZSBvbGQgYW5ub3RhdGlvbnMgd2l0aCBTQUwyIGVxdWl2YWxlbnRzPGJyPg0KwqAgU3dp
dGNoIGZyb20gY2hhciBwb2ludGVycyB0byBudWxsLXRlcm1pbmF0ZWQgc3RyaW5nIHR5cGVzPGJy
Pg0KwqAgUmVmaW5lIGZ1bmN0aW9uIGFubm90YXRpb25zPGJyPg0KwqAgU2V0IF9PdXRwdHJfIG9u
IG91dHB1dCBwb2ludGVyczxicj4NCsKgIFN1cHByZXNzIHVuaW5pdGlhbGl6ZWQgKkludGVyZmFj
ZSB3YXJuaW5nIGluIEZkb1F1ZXJ5SW50ZXJmYWNlPGJyPg0KwqAgcmVnaXN0cnk6IFN1cHByZXNz
IHVuYW5ub3RhdGVkIERyaXZlckVudHJ5IHdhcm5pbmc8YnI+DQrCoCByZWdpc3RyeTogU3VwcHJl
c3MgdW5pbml0aWFsaXplZCBtZW1vcnkgd2FybmluZ3M8YnI+DQrCoCBGaXggbWlzc2luZyByZXR1
cm4gdHlwZXM8YnI+DQrCoCBtb25pdG9yOiBGaXggR2V0UmVxdWVzdEtleU5hbWUgYWxsb2NhdGlv
biBjaGVjazxicj4NCsKgIENoZWNrIFBhcmFtZXRlcnNLZXkgZm9yIG51bGwgaW4gRmRvU2Nhbjxi
cj4NCsKgIENoZWNrIGZvciBJb0F0dGFjaERldmljZVRvRGV2aWNlU3RhY2sgZmFpbHVyZSBpbiBG
ZG9DcmVhdGU8YnI+DQrCoCBzeW5jOiBTYXZlL3Jlc3RvcmUgSVJRTCB3aGVuIGRpc2FibGluZyBp
bnRlcnJ1cHRzPGJyPg0KwqAgRXhwbGljaXRseSBjaGVjayBIdm1HZXRQYXJhbSByZXN1bHQgdmlh
IEJVR19PTjxicj4NCjxicj4NCsKgaW5jbHVkZS9iYWxsb29uX2ludGVyZmFjZS5owqAgwqAgwqB8
wqAgwqA2OCArLTxicj4NCsKgaW5jbHVkZS9jYWNoZV9pbnRlcmZhY2UuaMKgIMKgIMKgIMKgfMKg
IDEzMCArKy0tPGJyPg0KwqBpbmNsdWRlL2NvbnNvbGVfaW50ZXJmYWNlLmjCoCDCoCDCoHzCoCDC
oDMwICstPGJyPg0KwqBpbmNsdWRlL2RlYnVnX2ludGVyZmFjZS5owqAgwqAgwqAgwqB8wqAgwqA4
OCArLS08YnI+DQrCoGluY2x1ZGUvZW11bGF0ZWRfaW50ZXJmYWNlLmjCoCDCoCB8wqAgwqA3OCAr
LS08YnI+DQrCoGluY2x1ZGUvZXZ0Y2huX2ludGVyZmFjZS5owqAgwqAgwqAgfMKgIDEzNiArKy0t
PGJyPg0KwqBpbmNsdWRlL2dudHRhYl9pbnRlcmZhY2UuaMKgIMKgIMKgIHzCoCAxNDggKystLS08
YnI+DQrCoGluY2x1ZGUvcmFuZ2Vfc2V0X2ludGVyZmFjZS5owqAgwqB8wqAgMTAwICstLTxicj4N
CsKgaW5jbHVkZS9zaGFyZWRfaW5mb19pbnRlcmZhY2UuaCB8wqAgMTA2ICstLTxicj4NCsKgaW5j
bHVkZS9zdG9yZV9pbnRlcmZhY2UuaMKgIMKgIMKgIMKgfMKgIDE1NiArKy0tLTxicj4NCsKgaW5j
bHVkZS9zdXNwZW5kX2ludGVyZmFjZS5owqAgwqAgwqB8wqAgwqA4MCArLS08YnI+DQrCoGluY2x1
ZGUvdW5wbHVnX2ludGVyZmFjZS5owqAgwqAgwqAgfMKgIMKgNzIgKy08YnI+DQrCoGluY2x1ZGUv
eGVuLmjCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHzCoCAzMzAgKysrKystLS0tLTxicj4N
CsKgc3JjL2NvbW1vbi9hc3NlcnQuaMKgIMKgIMKgIMKgIMKgIMKgIMKgfMKgIMKgODAgKy0tPGJy
Pg0KwqBzcmMvY29tbW9uL2RiZ19wcmludC5owqAgwqAgwqAgwqAgwqAgfMKgIMKgNjIgKy08YnI+
DQrCoHNyYy9jb21tb24vaGlnaC5owqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8wqAgwqA2MyArLTxi
cj4NCsKgc3JjL2NvbW1vbi9tdXRleC5owqAgwqAgwqAgwqAgwqAgwqAgwqAgfMKgIMKgNjAgKy08
YnI+DQrCoHNyYy9jb21tb24vbmFtZXMuaMKgIMKgIMKgIMKgIMKgIMKgIMKgIHzCoCAxMTggKyst
LTxicj4NCsKgc3JjL2NvbW1vbi9yZWdpc3RyeS5jwqAgwqAgwqAgwqAgwqAgwqB8wqAgMjY5ICsr
KystLS0tPGJyPg0KwqBzcmMvY29tbW9uL3JlZ2lzdHJ5LmjCoCDCoCDCoCDCoCDCoCDCoHzCoCAx
ODYgKysrLS0tPGJyPg0KwqBzcmMvY29tbW9uL3V0aWwuaMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
fMKgIMKgNzMgKy08YnI+DQrCoHNyYy9tb25pdG9yL21vbml0b3IuY8KgIMKgIMKgIMKgIMKgIMKg
fMKgIDEyNSArKy0tPGJyPg0KwqBzcmMveGVuL2FjcGkuY8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIHzCoCDCoDYwICstPGJyPg0KwqBzcmMveGVuL2FjcGkuaMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIHzCoCDCoDUyICstPGJyPg0KwqBzcmMveGVuL2J1Z19jaGVjay5jwqAgwqAgwqAgwqAg
wqAgwqAgwqB8wqAgMTc1ICsrLS0tPGJyPg0KwqBzcmMveGVuL2NvbmZpZy5jwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgfMKgIMKgNDYgKy08YnI+DQrCoHNyYy94ZW4vZHJpdmVyLmPCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCB8wqAgMTM4ICsrLS08YnI+DQrCoHNyYy94ZW4vZHJpdmVyLmjCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCB8wqAgwqAgNiArLTxicj4NCsKgc3JjL3hlbi9ldmVudF9jaGFubmVs
LmPCoCDCoCDCoCDCoCDCoHzCoCAxMTYgKystLTxicj4NCsKgc3JjL3hlbi9maWx0ZXJzLmPCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoHzCoCDCoDE2ICstPGJyPg0KwqBzcmMveGVuL2dyYW50X3RhYmxl
LmPCoCDCoCDCoCDCoCDCoCDCoHzCoCDCoDkwICstLTxicj4NCsKgc3JjL3hlbi9odm0uY8KgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfMKgIMKgODAgKy0tPGJyPg0KwqBzcmMveGVuL2xvZy5j
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8wqAgMTY0ICsrLS0tPGJyPg0KwqBzcmMveGVu
L21lbW9yeS5jwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfMKgIMKgNzggKy0tPGJyPg0KwqBzcmMv
eGVuL21vZHVsZS5jwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfMKgIDEwMiArLS08YnI+DQrCoHNy
Yy94ZW4vcHJvY2Vzcy5jwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8wqAgwqA2MCArLTxicj4NCsKg
c3JjL3hlbi9wcm9jZXNzLmjCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHzCoCDCoDUwICstPGJyPg0K
wqBzcmMveGVuL3NjaGVkLmPCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHzCoCDCoDY0ICstPGJy
Pg0KwqBzcmMveGVuL3N5c3RlbS5jwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfMKgIDEyNSArKy0t
PGJyPg0KwqBzcmMveGVuL3VucGx1Zy5jwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfMKgIMKgNDIg
Ky08YnI+DQrCoHNyYy94ZW4vdmNwdS5jwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfMKgIMKg
MjAgKy08YnI+DQrCoHNyYy94ZW4veGVuX3ZlcnNpb24uY8KgIMKgIMKgIMKgIMKgIMKgfMKgIMKg
NjYgKy08YnI+DQrCoHNyYy94ZW5idXMvYmFsbG9vbi5jwqAgwqAgwqAgwqAgwqAgwqAgfMKgIDIx
NiArKystLS08YnI+DQrCoHNyYy94ZW5idXMvYmFsbG9vbi5owqAgwqAgwqAgwqAgwqAgwqAgfMKg
IMKgNjIgKy08YnI+DQrCoHNyYy94ZW5idXMvYnVzLmPCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8
wqAgMTQ2ICsrLS08YnI+DQrCoHNyYy94ZW5idXMvYnVzLmjCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCB8wqAgwqA1MiArLTxicj4NCsKgc3JjL3hlbmJ1cy9jYWNoZS5jwqAgwqAgwqAgwqAgwqAgwqAg
wqAgfMKgIDIyMCArKystLS0tPGJyPg0KwqBzcmMveGVuYnVzL2NhY2hlLmjCoCDCoCDCoCDCoCDC
oCDCoCDCoCB8wqAgwqA2MiArLTxicj4NCsKgc3JjL3hlbmJ1cy9jb25zb2xlLmPCoCDCoCDCoCDC
oCDCoCDCoCB8wqAgMTQwICsrLS08YnI+DQrCoHNyYy94ZW5idXMvY29uc29sZS5owqAgwqAgwqAg
wqAgwqAgwqAgfMKgIMKgMTYgKy08YnI+DQrCoHNyYy94ZW5idXMvZGVidWcuY8KgIMKgIMKgIMKg
IMKgIMKgIMKgIHzCoCAxNDAgKystLTxicj4NCsKgc3JjL3hlbmJ1cy9kZWJ1Zy5owqAgwqAgwqAg
wqAgwqAgwqAgwqAgfMKgIMKgNjIgKy08YnI+DQrCoHNyYy94ZW5idXMvZG1hLmPCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCB8wqAgNTIxICsrKysrKystLS0tLS0tLTxicj4NCsKgc3JjL3hlbmJ1cy9k
bWEuaMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHzCoCDCoDU0ICstPGJyPg0KwqBzcmMveGVuYnVz
L2RyaXZlci5jwqAgwqAgwqAgwqAgwqAgwqAgwqB8wqAgwqA5NyArLS08YnI+DQrCoHNyYy94ZW5i
dXMvZHJpdmVyLmjCoCDCoCDCoCDCoCDCoCDCoCDCoHzCoCDCoDUwICstPGJyPg0KwqBzcmMveGVu
YnVzL2V2dGNobi5jwqAgwqAgwqAgwqAgwqAgwqAgwqB8wqAgMjQ0ICsrKy0tLS08YnI+DQrCoHNy
Yy94ZW5idXMvZXZ0Y2huLmjCoCDCoCDCoCDCoCDCoCDCoCDCoHzCoCDCoDY0ICstPGJyPg0KwqBz
cmMveGVuYnVzL2V2dGNobl8ybC5jwqAgwqAgwqAgwqAgwqAgfMKgIMKgOTYgKy0tPGJyPg0KwqBz
cmMveGVuYnVzL2V2dGNobl8ybC5owqAgwqAgwqAgwqAgwqAgfMKgIMKgNTYgKy08YnI+DQrCoHNy
Yy94ZW5idXMvZXZ0Y2huX2FiaS5owqAgwqAgwqAgwqAgwqB8wqAgwqA4NiArLS08YnI+DQrCoHNy
Yy94ZW5idXMvZXZ0Y2huX2ZpZm8uY8KgIMKgIMKgIMKgIHzCoCAxNzQgKystLS08YnI+DQrCoHNy
Yy94ZW5idXMvZXZ0Y2huX2ZpZm8uaMKgIMKgIMKgIMKgIHzCoCDCoDU2ICstPGJyPg0KwqBzcmMv
eGVuYnVzL2Zkby5jwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCAxMDk5ICsrKysrKysrKysrKysr
KystLS0tLS0tLS0tLS0tLS08YnI+DQrCoHNyYy94ZW5idXMvZmRvLmjCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCB8wqAgMTgwICsrLS0tPGJyPg0KwqBzcmMveGVuYnVzL2dudHRhYi5jwqAgwqAgwqAg
wqAgwqAgwqAgwqB8wqAgMjE0ICsrKy0tLTxicj4NCsKgc3JjL3hlbmJ1cy9nbnR0YWIuaMKgIMKg
IMKgIMKgIMKgIMKgIMKgfMKgIMKgNjIgKy08YnI+DQrCoHNyYy94ZW5idXMvaGFzaF90YWJsZS5j
wqAgwqAgwqAgwqAgwqB8wqAgMTAwICstLTxicj4NCsKgc3JjL3hlbmJ1cy9oYXNoX3RhYmxlLmjC
oCDCoCDCoCDCoCDCoHzCoCDCoDY4ICstPGJyPg0KwqBzcmMveGVuYnVzL3Bkby5jwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgfMKgIDM5MiArKysrKy0tLS0tLTxicj4NCsKgc3JjL3hlbmJ1cy9wZG8u
aMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHzCoCAxMTYgKystLTxicj4NCsKgc3JjL3hlbmJ1cy9y
YW5nZV9zZXQuY8KgIMKgIMKgIMKgIMKgIHzCoCAxNjIgKystLS08YnI+DQrCoHNyYy94ZW5idXMv
cmFuZ2Vfc2V0LmjCoCDCoCDCoCDCoCDCoCB8wqAgwqA2MiArLTxicj4NCsKgc3JjL3hlbmJ1cy9z
aGFyZWRfaW5mby5jwqAgwqAgwqAgwqAgfMKgIDE1MiArKy0tLTxicj4NCsKgc3JjL3hlbmJ1cy9z
aGFyZWRfaW5mby5owqAgwqAgwqAgwqAgfMKgIMKgNjIgKy08YnI+DQrCoHNyYy94ZW5idXMvc3Rv
cmUuY8KgIMKgIMKgIMKgIMKgIMKgIMKgIHzCoCA1MDYgKysrKysrKy0tLS0tLS08YnI+DQrCoHNy
Yy94ZW5idXMvc3RvcmUuaMKgIMKgIMKgIMKgIMKgIMKgIMKgIHzCoCDCoDYyICstPGJyPg0KwqBz
cmMveGVuYnVzL3N1c3BlbmQuY8KgIMKgIMKgIMKgIMKgIMKgIHzCoCAxMTggKystLTxicj4NCsKg
c3JjL3hlbmJ1cy9zdXNwZW5kLmjCoCDCoCDCoCDCoCDCoCDCoCB8wqAgwqA2MiArLTxicj4NCsKg
c3JjL3hlbmJ1cy9zeW5jLmPCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHzCoCAxNDYgKystLTxicj4N
CsKgc3JjL3hlbmJ1cy9zeW5jLmjCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHzCoCDCoDc4ICstLTxi
cj4NCsKgc3JjL3hlbmJ1cy90aHJlYWQuY8KgIMKgIMKgIMKgIMKgIMKgIMKgfMKgIMKgNzQgKy0t
PGJyPg0KwqBzcmMveGVuYnVzL3RocmVhZC5owqAgwqAgwqAgwqAgwqAgwqAgwqB8wqAgwqA2NCAr
LTxicj4NCsKgc3JjL3hlbmJ1cy91bnBsdWcuY8KgIMKgIMKgIMKgIMKgIMKgIMKgfMKgIMKgNTQg
Ky08YnI+DQrCoHNyYy94ZW5idXMvdW5wbHVnLmjCoCDCoCDCoCDCoCDCoCDCoCDCoHzCoCDCoDE2
ICstPGJyPg0KwqBzcmMveGVuZmlsdC9kcml2ZXIuY8KgIMKgIMKgIMKgIMKgIMKgIHzCoCAxMzQg
KystLTxicj4NCsKgc3JjL3hlbmZpbHQvZHJpdmVyLmjCoCDCoCDCoCDCoCDCoCDCoCB8wqAgwqA3
MiArLTxicj4NCsKgc3JjL3hlbmZpbHQvZW11bGF0ZWQuY8KgIMKgIMKgIMKgIMKgIHzCoCAxMzIg
KystLTxicj4NCsKgc3JjL3hlbmZpbHQvZW11bGF0ZWQuaMKgIMKgIMKgIMKgIMKgIHzCoCDCoDc0
ICstLTxicj4NCsKgc3JjL3hlbmZpbHQvZmRvLmPCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHzCoCAy
ODYgKysrKy0tLS08YnI+DQrCoHNyYy94ZW5maWx0L2Zkby5owqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqB8wqAgwqA3OCArLS08YnI+DQrCoHNyYy94ZW5maWx0L3Bkby5jwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqB8wqAgMzEzICsrKystLS0tLTxicj4NCsKgc3JjL3hlbmZpbHQvcGRvLmjCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoHzCoCDCoDgwICstLTxicj4NCsKgc3JjL3hlbmZpbHQvdGhyZWFkLmPCoCDC
oCDCoCDCoCDCoCDCoCB8wqAgwqA3OCArLS08YnI+DQrCoHNyYy94ZW5maWx0L3RocmVhZC5owqAg
wqAgwqAgwqAgwqAgwqAgfMKgIMKgNjQgKy08YnI+DQrCoDk1IGZpbGVzIGNoYW5nZWQsIDU5OTQg
aW5zZXJ0aW9ucygrKSwgNTg4OCBkZWxldGlvbnMoLSk8YnI+DQo8YnI+DQotLSA8YnI+DQoyLjUw
LjAud2luZG93cy4xPGJyPg0KPGJyPg0KPGJyPg0KPGJyPg0KTmdvYyBUdSBEaW5oIHwgVmF0ZXMg
WENQLW5nIERldmVsb3Blcjxicj4NCjxicj4NClhDUC1uZyAmYW1wOyBYZW4gT3JjaGVzdHJhIC0g
VmF0ZXMgc29sdXRpb25zPGJyPg0KPGJyPg0Kd2ViOiA8YSBocmVmPSJodHRwczovL3ZhdGVzLnRl
Y2giIHJlbD0ibm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vdmF0ZXMudGVjaDwv
YT48YnI+DQo8YnI+DQo8L2Jsb2NrcXVvdGU+PC9kaXY+DQo=
--0000000000000eee610638dabbc4--


From win-pv-devel-bounces@lists.xenproject.org Sat Jul 05 17:00:23 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 05 Jul 2025 17:00:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1034333.1407175 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uY6FR-0003Qo-BR; Sat, 05 Jul 2025 17:00:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1034333.1407175; Sat, 05 Jul 2025 17:00:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uY6FR-0003QZ-7U; Sat, 05 Jul 2025 17:00:21 +0000
Received: by outflank-mailman (input) for mailman id 1034333;
 Sat, 05 Jul 2025 17:00:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XVDl=ZS=bounce.vates.tech=bounce-md_30504962.68695a1b.v1-88d55baeb64b4c75aef96007438eb7b7@srs-se1.protection.inumbo.net>)
 id 1uY6FQ-0003QC-3u
 for win-pv-devel@lists.xenproject.org; Sat, 05 Jul 2025 17:00:20 +0000
Received: from mail124.us4.mandrillapp.com (mail124.us4.mandrillapp.com
 [205.201.136.124]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 83d794e5-59c1-11f0-b894-0df219b8e170;
 Sat, 05 Jul 2025 19:00:14 +0200 (CEST)
Received: from pmta15.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail124.us4.mandrillapp.com (Mailchimp) with ESMTP id 4bZGvv5hFlzKscrHQ
 for <win-pv-devel@lists.xenproject.org>; Sat,  5 Jul 2025 17:00:11 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 88d55baeb64b4c75aef96007438eb7b7; Sat, 05 Jul 2025 17:00:11 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 83d794e5-59c1-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1751734811; x=1752004811;
	bh=2Z+Cno8xIXUlwj0/PwYZTrfw9W+W8BPy/Qj0T2jLS8E=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=PMb8VP0vmadHNYFN1TJ7V6QBccQ5gXAMIsb4v1/vL3szxkdSz2l2yoxiBwB41CzmV
	 xPETNbkcR3vDgcMilf8Buucoto1e3PQ5zOwYNFcVRrHP1jtyrqoUg9ULLUuFso+ePu
	 pTW2Zt561/V6zzcQdr/KCVdo2U0pl+HOOc0lXIqbWuCg152nTMqbVMfuZdEyBgToee
	 O9KOB5vgWe6/QuvY3Fn7/Q1z65tL5eJjX9PR4UJaSqJQ/ZH2/IW60jwdFs2fEkDoLm
	 9Pddbw6SMBbwR40ZBxNBsY59p8+A+QPRabvGmPi07I27iHP0H+gfkUm67FskQ3RJir
	 D6bI/TkrU9Sxg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1751734811; x=1751995311; i=ngoc-tu.dinh@vates.tech;
	bh=2Z+Cno8xIXUlwj0/PwYZTrfw9W+W8BPy/Qj0T2jLS8E=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=MumSLPPStoBB7INZHs24odpPJFfKwEqaOEPy720I1lYFHlCe9hBzOklplCrF7HYnQ
	 U0r1y8+q5mLrEHUyt0Ihlvs58B9I/r499YpMvr/ySshwFlHpjoxOMmdbSoxvn061qg
	 BXWiOJ3R4fLtIX8HLVJFhCzXeJfsirt9wx4xXBizURwv8uf55vyA4WidKfk6W8CXjs
	 3mQ3zSCF2xRgwz5MWOF+3eGz5dtXke26rVKVJBSBKOraBWOUdQ/MRCev1SFrMLgA6u
	 wsPgnvsZ6eYfY71F7N3sEdqaK9U9c6uisgUqQpnmxdLRpDyQhGgHeFr57GFtB2C6/e
	 E1NKCp/RxYMCQ==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2=203/3]=20Always=20run=20Code=20Analysis=20on=20build?=
X-Mailer: git-send-email 2.50.0.windows.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1751734811015
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250705170003.1488-4-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250705170003.1488-1-ngoc-tu.dinh@vates.tech>
References: <20250705170003.1488-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.88d55baeb64b4c75aef96007438eb7b7?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250705:md
Date: Sat, 05 Jul 2025 17:00:11 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Code Analysis is quick to run, and there's little reason not to run it.
Unconditionally run the recommended driver ruleset on build.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 msbuild.ps1          | 8 +-------
 vs2019/targets.props | 4 ++++
 vs2022/targets.props | 4 ++++
 3 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/msbuild.ps1 b/msbuild.ps1
index d9785db..67f8ae0 100644
--- a/msbuild.ps1
+++ b/msbuild.ps1
@@ -18,8 +18,7 @@ Function Run-MSBuild {
 		[string]$Configuration,
 		[string]$Platform,
 		[string]$Target = "Build",
-		[string]$Inputs = "",
-		[switch]$CodeAnalysis
+		[string]$Inputs = ""
 	)
 
 	$c = "msbuild.exe"
@@ -31,10 +30,6 @@ Function Run-MSBuild {
 	if ($Inputs) {
 		$c += [string]::Format(" /p:Inputs=""{0}"" ", $Inputs)
 	}
-	if ($CodeAnalysis) {
-		$c += "/p:RunCodeAnalysis=true "
-		$c += "/p:EnablePREFast=true "
-	}
 
 	$c += Join-Path -Path $SolutionPath -ChildPath $Name
 
@@ -62,7 +57,6 @@ Function Run-MSBuildSDV {
 	Run-MSBuild $projpath $project $Configuration $Platform "Build"
 	Run-MSBuild $projpath $project $Configuration $Platform "sdv" "/clean"
 	Run-MSBuild $projpath $project $Configuration $Platform "sdv" "/check:default.sdv /debug"
-	Run-MSBuild $projpath $project $Configuration $Platform "Build" -CodeAnalysis
 	Run-MSBuild $projpath $project $Configuration $Platform "dvl"
 
 	$refine = Join-Path -Path $projpath -ChildPath "refine.sdv"
diff --git a/vs2019/targets.props b/vs2019/targets.props
index 53a8662..b55dc31 100644
--- a/vs2019/targets.props
+++ b/vs2019/targets.props
@@ -16,4 +16,8 @@
 		<TargetVersion>Windows10</TargetVersion>
 		<UseDebugLibraries>false</UseDebugLibraries>
 	</PropertyGroup>
+	<PropertyGroup Condition="'$(ConfigurationType)'=='Driver'">
+		<RunCodeAnalysis>true</RunCodeAnalysis>
+		<CodeAnalysisRuleSet>$([System.Environment]::GetEnvironmentVariable("WindowsSdkDir"))CodeAnalysis\DriverRecommendedRules.ruleset</CodeAnalysisRuleSet>
+	</PropertyGroup>
 </Project>
diff --git a/vs2022/targets.props b/vs2022/targets.props
index 3c31b6c..292f52a 100644
--- a/vs2022/targets.props
+++ b/vs2022/targets.props
@@ -8,4 +8,8 @@
 		<TargetVersion>Windows10</TargetVersion>
 		<UseDebugLibraries>false</UseDebugLibraries>
 	</PropertyGroup>
+	<PropertyGroup Condition="'$(ConfigurationType)'=='Driver'">
+		<RunCodeAnalysis>true</RunCodeAnalysis>
+		<CodeAnalysisRuleSet>$([System.Environment]::GetEnvironmentVariable("WindowsSdkDir"))CodeAnalysis\DriverRecommendedRules.ruleset</CodeAnalysisRuleSet>
+	</PropertyGroup>
 </Project>
-- 
2.50.0.windows.2



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Sat Jul 05 17:00:23 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 05 Jul 2025 17:00:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1034332.1407176 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uY6FR-0003QX-Bu; Sat, 05 Jul 2025 17:00:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1034332.1407176; Sat, 05 Jul 2025 17:00:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uY6FR-0003QO-69; Sat, 05 Jul 2025 17:00:21 +0000
Received: by outflank-mailman (input) for mailman id 1034332;
 Sat, 05 Jul 2025 17:00:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/WtT=ZS=bounce.vates.tech=bounce-md_30504962.68695a1b.v1-db74a8daa2184660960b5fdf2e82261a@srs-se1.protection.inumbo.net>)
 id 1uY6FP-0003QC-En
 for win-pv-devel@lists.xenproject.org; Sat, 05 Jul 2025 17:00:19 +0000
Received: from mail135-23.atl141.mandrillapp.com
 (mail135-23.atl141.mandrillapp.com [198.2.135.23])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 83a536a6-59c1-11f0-b894-0df219b8e170;
 Sat, 05 Jul 2025 19:00:14 +0200 (CEST)
Received: from pmta14.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail135-23.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4bZGvv0zzMz35hr7g
 for <win-pv-devel@lists.xenproject.org>; Sat,  5 Jul 2025 17:00:11 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 db74a8daa2184660960b5fdf2e82261a; Sat, 05 Jul 2025 17:00:11 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 83a536a6-59c1-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1751734811; x=1752004811;
	bh=5duwRta3FyPX1UxH22MXA/FboCwZ68sudxIzedVxGrg=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=HNQ5shanM6ic42z27r/scj5Lf8fqRGBwOozDEXkcVqCOYswri1kOSqz3U538icxZm
	 VHT/Xwec1U708vuQ4Gm5Lm68yWbIqrOzhhf9dFmNRlioGecXd6jgbsvcIP6T6LuA27
	 qDpRwk3cWKPjGdMmt/kp1vrY3l0mxpT+QuWJdEuUJ51fZy/q54oa5F/zjHOWIIRj4G
	 kJ4TJB2XVf8fjF8d5PfUc/S+yPCl8j4ygL3tbNdBKKrRghUAgbvpyFFOtQjMDdKldw
	 TB5qScoGzkR/TTVNycRW61aWUlZBQKuKj7XT0gldVZazf4Gu7TxkPGyuEt/K/hoi8y
	 alKJyNDV7jGeg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1751734811; x=1751995311; i=ngoc-tu.dinh@vates.tech;
	bh=5duwRta3FyPX1UxH22MXA/FboCwZ68sudxIzedVxGrg=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=oj7IE8jHl6XIpdQ1DXr7D3bWnup3/ujXKUBBOkhAlV520s0gd2+PK7GV2lQ+Tvg88
	 O245G/TgZvxvJERIh2LsPc5jejT07g+O29devcEren4idaDu8UIxooJR5qx+F+8dCP
	 +4x3LLL25Bkhe5EH4r6ALiHoFu74qFg/p6vkNbjYJMKKxWFOmiNX9AGsthVXq/V28H
	 BSdFdttCW5JYg+JzRI02WDhQxfpV3/WHi1aYgNbA3vtMHYyhGsn8CrrKQWeHzkJhVB
	 d6LtLO9hNit26vdw+638XIcdTTRD2Gwe0bl89GA5fmVGdD4E25afQ/UIigoJHIJdl/
	 RHxp3Xiudh6TQ==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2=200/3]=20CI=20integration=20for=20Windows=20PV=20drivers?=
X-Mailer: git-send-email 2.50.0.windows.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1751734810234
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250705170003.1488-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.db74a8daa2184660960b5fdf2e82261a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250705:md
Date: Sat, 05 Jul 2025 17:00:11 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Set up an automated pipeline. Tested on GitLab CI.

Also add some build script changes to improve the build process.

v2: Removed CodeQL due to proprietary license forbidding its use.
v1: https://lists.xenproject.org/archives/html/win-pv-devel/2025-06/msg00060.html

Tu Dinh (3):
  Add GitLab pipeline
  Throw on build command failure instead of exiting
  Always run Code Analysis on build

 .gitlab-ci.yml       | 39 +++++++++++++++++++++++++++++++++++++++
 msbuild.ps1          | 17 ++++-------------
 vs2019/targets.props |  4 ++++
 vs2022/targets.props |  4 ++++
 4 files changed, 51 insertions(+), 13 deletions(-)
 create mode 100644 .gitlab-ci.yml

-- 
2.50.0.windows.2



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Sat Jul 05 17:00:23 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 05 Jul 2025 17:00:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1034334.1407180 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uY6FS-0003Tb-BW; Sat, 05 Jul 2025 17:00:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1034334.1407180; Sat, 05 Jul 2025 17:00:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uY6FS-0003TU-8u; Sat, 05 Jul 2025 17:00:22 +0000
Received: by outflank-mailman (input) for mailman id 1034334;
 Sat, 05 Jul 2025 17:00:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xQt3=ZS=bounce.vates.tech=bounce-md_30504962.68695a1b.v1-e8fbaa310ceb4b01a7ea5b193b5f969c@srs-se1.protection.inumbo.net>)
 id 1uY6FR-0003TO-VR
 for win-pv-devel@lists.xenproject.org; Sat, 05 Jul 2025 17:00:21 +0000
Received: from mail135-23.atl141.mandrillapp.com
 (mail135-23.atl141.mandrillapp.com [198.2.135.23])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 87df0af0-59c1-11f0-a315-13f23c93f187;
 Sat, 05 Jul 2025 19:00:20 +0200 (CEST)
Received: from pmta14.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail135-23.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4bZGvv38MSz35hr7k
 for <win-pv-devel@lists.xenproject.org>; Sat,  5 Jul 2025 17:00:11 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 e8fbaa310ceb4b01a7ea5b193b5f969c; Sat, 05 Jul 2025 17:00:11 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 87df0af0-59c1-11f0-a315-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1751734811; x=1752004811;
	bh=Huc2ViYvd5hIBL1acGnwrOCG2Zc1L4dxeMP7MRrTjVk=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=um5mAl97c0am6vV5FHqofIRRbm3e+5hjOKYlUFs58Xo+ltyytyU9bSon5K5uahti5
	 CLPYCYZSztIO8WB15wzt3b27O0YPw+5SzzBA3MY2Vf2eFTXaGDLoMIcGUkPw8ruZ1o
	 41idKoxylqxAQtmpysiBgnizxlzNLj5tgSkOX+zv+OOtsDOvGyzatODXMbe1iuwRAx
	 uilkrofgdhSL3berxhH2RumgeQ1fJcRnlHwQ1sS//g30ozmabPyWvMPsEM1/9komMc
	 J7s2bPToJhwOBkBZRPsPF3WXYzGEitcBy8jns8zHH+7jWVQnPkp+4apcoVTw+Vrw+3
	 Eq1KhktEVP8xA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1751734811; x=1751995311; i=ngoc-tu.dinh@vates.tech;
	bh=Huc2ViYvd5hIBL1acGnwrOCG2Zc1L4dxeMP7MRrTjVk=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=lJuPGkKYD27DSX25/v3EwoS7SZjD3C1aLyYf8a/1kgZroxAUjzdLNIUUw9F8TpOL+
	 OaNuR4un8GFE70B9/cAlEPibj/euDCRAA+JBUbtGmbvL4UNdqlJwF1Zjup/YHr90bX
	 B2qEjMl29EAZWLAWSqwlyvZCEajEQDd8jQzQM8JzPLhvYcO4NuzddJ3wXkyEdR6fsd
	 dCBSrDJwGstWwBuw137NvBFScRHNsb/i2tHyVYyRaSvH42fuiAaKRUI7I8aUqyGaF/
	 xmEj9bPmz3p4jdXtG6KIhbPUcXiPOi1I70D04zvgfgnBIH7F2MQtXF5HzctkZOynav
	 Njjb6LVCUFHoA==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2=202/3]=20Throw=20on=20build=20command=20failure=20instead=20of=20exiting?=
X-Mailer: git-send-email 2.50.0.windows.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1751734810811
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250705170003.1488-3-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250705170003.1488-1-ngoc-tu.dinh@vates.tech>
References: <20250705170003.1488-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.e8fbaa310ceb4b01a7ea5b193b5f969c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250705:md
Date: Sat, 05 Jul 2025 17:00:11 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Exiting is not sufficient to signal the error condition in some cases
(as observed on CI).

Explicitly throw an error instead.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 msbuild.ps1 | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/msbuild.ps1 b/msbuild.ps1
index 58053e2..d9785db 100644
--- a/msbuild.ps1
+++ b/msbuild.ps1
@@ -40,8 +40,7 @@ Function Run-MSBuild {
 
 	Invoke-Expression $c
 	if ($LASTEXITCODE -ne 0) {
-		Write-Host -ForegroundColor Red "ERROR: MSBuild failed, code:" $LASTEXITCODE
-		Exit $LASTEXITCODE
+		throw "ERROR: MSBuild failed, code: $LASTEXITCODE"
 	}
 }
 
@@ -117,8 +116,7 @@ Function Run-CodeQL {
 	$b += $database
 	Invoke-Expression $b
 	if ($LASTEXITCODE -ne 0) {
-		Write-Host -ForegroundColor Red "ERROR: CodeQL failed, code:" $LASTEXITCODE
-		Exit $LASTEXITCODE
+		throw "ERROR: CodeQL failed, code: $LASTEXITCODE"
 	}
 	Remove-Item $bat
 
@@ -136,8 +134,7 @@ Function Run-CodeQL {
 
 	Invoke-Expression $c
 	if ($LASTEXITCODE -ne 0) {
-		Write-Host -ForegroundColor Red "ERROR: CodeQL failed, code:" $LASTEXITCODE
-		Exit $LASTEXITCODE
+		throw "ERROR: CodeQL failed, code: $LASTEXITCODE"
 	}
 
 	Copy-Item $sarif -Destination $SolutionPath
-- 
2.50.0.windows.2



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Sat Jul 05 17:00:24 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 05 Jul 2025 17:00:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1034335.1407186 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uY6FU-0003Vx-Dr; Sat, 05 Jul 2025 17:00:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1034335.1407186; Sat, 05 Jul 2025 17:00:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uY6FU-0003Vo-AE; Sat, 05 Jul 2025 17:00:24 +0000
Received: by outflank-mailman (input) for mailman id 1034335;
 Sat, 05 Jul 2025 17:00:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WRCE=ZS=bounce.vates.tech=bounce-md_30504962.68695a1b.v1-8af4bde1caec44e8a2e55f64ace3fc84@srs-se1.protection.inumbo.net>)
 id 1uY6FT-0003QC-4M
 for win-pv-devel@lists.xenproject.org; Sat, 05 Jul 2025 17:00:23 +0000
Received: from mail135-23.atl141.mandrillapp.com
 (mail135-23.atl141.mandrillapp.com [198.2.135.23])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 83a7f857-59c1-11f0-b894-0df219b8e170;
 Sat, 05 Jul 2025 19:00:14 +0200 (CEST)
Received: from pmta14.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail135-23.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4bZGvv2Fs0z35hr7n
 for <win-pv-devel@lists.xenproject.org>; Sat,  5 Jul 2025 17:00:11 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 8af4bde1caec44e8a2e55f64ace3fc84; Sat, 05 Jul 2025 17:00:11 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 83a7f857-59c1-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1751734811; x=1752004811;
	bh=pzvhnBoYjy4ci5X+A3kL0YnkOxM6lnzoHBgsrqzJ+4I=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=fIQN8SAKZDgTC5XEP4+wDPPAXaqzyLSc0H3+nuhSzzgzr0loZuSYPa6MQrTNCBU7c
	 TH8+DXR9EpcyVayzNZSRDCj6m0sRbjlvS3h8kWbIsDmsuj5tj94cNQxuRZmxBVkQ0A
	 HgcxZFZbWOGF+BwuAYSoIC3j3B/niUtFRRRLARXWGkZ15KShgmSqs5zvAGmvGrMb0J
	 NlEtudyazGpyvUS2EWoT6xSR15KnolO1RnmQ3CnWhQlUjUsvTHADVxNDhAUzDmDeKn
	 GNczmr6DPufje6UySAL7A6CQ6JsqK123yjVw2JcqQwQ5xScB5JkPYOFYe7+pCEQzWP
	 gyAo095sMAx6A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1751734811; x=1751995311; i=ngoc-tu.dinh@vates.tech;
	bh=pzvhnBoYjy4ci5X+A3kL0YnkOxM6lnzoHBgsrqzJ+4I=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=K7ym7uqcAXyGoOCQw6lVUriMV4senzTSlcvz/fI0Nj6/F8taDbSqVKHldyycIPcM6
	 S5KjVgncLKzbLTXBuhPuVvOBCHnVB9Lc3cXPFEDKGM3weKD30f8YcGr7ea896T8Qv5
	 lSmkeyqjCDNlTAB0w2IsTVPgBXnQ+nDpOTDCghCeBQSzR366bv50Ce/KGBuLhwDz2o
	 2QQ/ifkKWHjA5ex5PYGaBPLb7zzZYCJ6EtcUuHN7C9xk1qHQ1W0E+V40MumOrL4Udp
	 Qg+O+Qyuj/ofBBQmSau7hy+pSxIShBmK7vMxiefOMFQAQ9UIcRQISVBm/PjYC4U0EV
	 FlqYNLYtM2sKg==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2=201/3]=20Add=20GitLab=20pipeline?=
X-Mailer: git-send-email 2.50.0.windows.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1751734810607
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250705170003.1488-2-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250705170003.1488-1-ngoc-tu.dinh@vates.tech>
References: <20250705170003.1488-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.8af4bde1caec44e8a2e55f64ace3fc84?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250705:md
Date: Sat, 05 Jul 2025 17:00:11 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Run both free and checked builds.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 .gitlab-ci.yml | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)
 create mode 100644 .gitlab-ci.yml

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..16c059f
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,39 @@
+# Required software:
+#   - Latest PowerShell Core
+#   - git
+#     - Enable Git long paths so that files are cleaned correctly:
+#       git config --system core.longpaths true
+#   - EWDK with EWDK_ROOT set to the mounted EWDK path
+# I also set the following in config.toml to shorten the build path:
+#   builds_dir = "C:/a"
+
+stages:
+  - build
+
+build-job:
+  tags:
+    - windows
+    - ewdk
+  stage: build
+  parallel:
+    matrix:
+      - BUILD_ARCH:
+          # x86 is no longer supported by new WDKs
+          - x64
+        BUILD_TYPE:
+          - checked
+          - free
+  script:
+    - Get-Content $Env:EWDK_ROOT\Version.txt
+    - |
+      Set-Content -Path build.cmd -Value `
+        "call %EWDK_ROOT%\BuildEnv\SetupBuildEnv.cmd",
+        'pwsh.exe -NonInteractive -ExecutionPolicy Bypass -Command ".\build.ps1 -Type $Env:BUILD_TYPE -Arch $Env:BUILD_ARCH"'
+    - cmd.exe /c build.cmd
+  artifacts:
+    name: $CI_PROJECT_NAME
+    paths:
+      - $CI_PROJECT_NAME/
+    when: on_success
+    access: all
+    expire_in: 30 days
-- 
2.50.0.windows.2



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Mon Jul 07 09:42:06 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 07 Jul 2025 09:42:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1035438.1407699 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uYiMO-0006gR-9V; Mon, 07 Jul 2025 09:42:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1035438.1407699; Mon, 07 Jul 2025 09:42:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uYiMO-0006gJ-6b; Mon, 07 Jul 2025 09:42:04 +0000
Received: by outflank-mailman (input) for mailman id 1035438;
 Mon, 07 Jul 2025 09:42:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=bAcM=ZU=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1uYiMN-0006gD-6W
 for win-pv-devel@lists.xenproject.org; Mon, 07 Jul 2025 09:42:03 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9f399003-5b16-11f0-b894-0df219b8e170;
 Mon, 07 Jul 2025 11:41:58 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-ae0b6532345so724276566b.1
 for <win-pv-devel@lists.xenproject.org>; Mon, 07 Jul 2025 02:41:56 -0700 (PDT)
Received: from mewpvdipd1026.corp.cloud.com ([52.174.59.202])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ae3f6ac5feasm675433966b.107.2025.07.07.02.41.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 07 Jul 2025 02:41:55 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9f399003-5b16-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1751881316; x=1752486116; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=Q0vIRH4b+suaUDAEJCz2VPH1BpOzlRXPVzYRb9Q43LA=;
        b=EWQXtGK9uxRzkE1I/21z7Ov8SBHQ7h0BaquKnSvxi2X+xTRcqGq2QRUxE9pgtQ6Lc6
         J4R+n3MHwqkyVeEIyOtMTPF9poOkVlO8Ta8mtmmMJt80tRl6bZlsXa6GRPWaq+Hjpxxp
         pHL4LkV9aUBkn+dnrlImpDO5kbSdQKK+Ku4GE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1751881316; x=1752486116;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Q0vIRH4b+suaUDAEJCz2VPH1BpOzlRXPVzYRb9Q43LA=;
        b=JMmyollu9ZSJMUuYYXhi2Qr+x88SdSrUlz28kijY9LMbVOO3Dfn4oLA3fhK6SOVR6H
         +CpNSpEtHWNXs5wfp+kcN5oMLwGXCEp4PK/8i+iMSzp9AHJAD8PNzHAyHhk24TtDLfO9
         gI5aS6zJu9mVyXddMtm1b7oWKTcg6ulcscqtdfelKTlyEMOmm0j2BE8W3u6hakKdzNt5
         C+5fMVJnBuv6eq5nQcTVo3G6ri2KGrJCCdCcurXsevnJOqeMrrfkEDWTYJQQcUd4Z6ou
         5VGrsSBsD3rBDmpwXKLVw/EigMVqRbNrKi9l+WyqGGtBiFevIa7rgKFjXtW1J067LHJV
         v6nA==
X-Gm-Message-State: AOJu0YycbOwjM9uGnKBpIj9hrBjrJrpsqq7BUmuRVdaInebFVucmwxzA
	fTSFpr2aJoFSpdfBU3NNLgWnJ6Hx20xhXC5jmIePatKR/g/InSA+LjyYEt42hZTLo1knGzMGB4m
	3bQ8=
X-Gm-Gg: ASbGncu0uu49DbsNzcUzHfq7B/FDoz/YvluF376kyiqSkBXEx82AtRM8QwlYVaHCY4c
	nJM38VEUR1SAiZyEUxx6rTt6q+K7HG2xcQ4JDmIybkgJDt5jN+xR2iIp4PwUNS88rMPOhkFcYRL
	77q90nHoxlTtAd2BJjx9ArqMq9csBgkS3OBJJEqCIALr0xR08myHz26rZsngJbWnJe/Ngpt3gEi
	01ciQJAFrNbHh3R/m12uywiv+vssexvvOM/LDeidXz+0MjlQKvEQ2qfRselPh25rGIQxICf1/uS
	dvFcDZB7eh78V3BDSH0nV9XyBEIsFOFSXpAuc0HDEyfboPDOc6/jVaNvW8JZvKqWs0AbKdofYev
	oH7l7cvjgTiPu4lsQCQ==
X-Google-Smtp-Source: AGHT+IGOysUiPlfiAuB1K5nrG6O9PtZjJwZGSq+Y7MmcSa/IG4+hIsCe2OZ8sHHa3iscgm5+rokJVQ==
X-Received: by 2002:a17:907:1b28:b0:ae3:6038:ad6f with SMTP id a640c23a62f3a-ae3f801ffffmr1279274566b.3.1751881315600;
        Mon, 07 Jul 2025 02:41:55 -0700 (PDT)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH] Fix SAL annotations
Date: Mon,  7 Jul 2025 10:41:50 +0100
Message-ID: <20250707094150.75-1-owen.smith@cloud.com>
X-Mailer: git-send-email 2.46.0.windows.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

SyncDisableInterrupts needs to return a value to correctly identify as
_IRQL_Saves_

ModuleLookup may return a null value in Name

LogAddDisposition may return a null value in Disposition, which leads to
LogRemoveDisposition needing to tread Disposition as nullable

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 include/xen.h        | 16 ++++++++--------
 src/xen/log.c        | 24 ++++++++++++------------
 src/xen/module.c     | 12 ++++++------
 src/xenbus/suspend.c |  3 ++-
 src/xenbus/sync.c    |  7 ++++---
 src/xenbus/sync.h    |  5 +++--
 6 files changed, 35 insertions(+), 32 deletions(-)

diff --git a/include/xen.h b/include/xen.h
index 7f46990..6f28e55 100644
--- a/include/xen.h
+++ b/include/xen.h
@@ -346,9 +346,9 @@ XenVersionExtra(
 XEN_API
 VOID
 ModuleLookup(
-    _In_ ULONG_PTR          Address,
-    _Outptr_result_z_ PSTR  *Name,
-    _Out_ PULONG_PTR        Offset
+    _In_ ULONG_PTR                      Address,
+    _Outptr_result_maybenull_z_ PSTR    *Name,
+    _Out_ PULONG_PTR                    Offset
     );
 
 // UNPLUG
@@ -447,16 +447,16 @@ typedef struct _LOG_DISPOSITION LOG_DISPOSITION, *PLOG_DISPOSITION;
 XEN_API
 NTSTATUS
 LogAddDisposition(
-    _In_ LOG_LEVEL              Mask,
-    _In_ VOID                   (*Function)(PVOID, PSTR, ULONG),
-    _In_opt_ PVOID              Argument,
-    _Outptr_ PLOG_DISPOSITION   *Disposition
+    _In_ LOG_LEVEL                              Mask,
+    _In_ VOID                                   (*Function)(PVOID, PSTR, ULONG),
+    _In_opt_ PVOID                              Argument,
+    _Outptr_result_maybenull_ PLOG_DISPOSITION  *Disposition
     );
 
 XEN_API
 VOID
 LogRemoveDisposition(
-    _In_ PLOG_DISPOSITION   Disposition
+    _In_opt_ PLOG_DISPOSITION   Disposition
     );
 
 
diff --git a/src/xen/log.c b/src/xen/log.c
index 7bf8cdb..a65b233 100644
--- a/src/xen/log.c
+++ b/src/xen/log.c
@@ -602,16 +602,16 @@ LogTeardown(
 
 NTSTATUS
 LogAddDisposition(
-    _In_ LOG_LEVEL              Mask,
-    _In_ VOID                   (*Function)(PVOID, PSTR, ULONG),
-    _In_opt_ PVOID              Argument,
-    _Outptr_ PLOG_DISPOSITION   *Disposition
+    _In_ LOG_LEVEL                              Mask,
+    _In_ VOID                                   (*Function)(PVOID, PSTR, ULONG),
+    _In_opt_ PVOID                              Argument,
+    _Outptr_result_maybenull_ PLOG_DISPOSITION  *Disposition
     )
 {
-    PLOG_CONTEXT                Context = &LogContext;
-    KIRQL                       Irql;
-    ULONG                       Index;
-    NTSTATUS                    status;
+    PLOG_CONTEXT                                Context = &LogContext;
+    KIRQL                                       Irql;
+    ULONG                                       Index;
+    NTSTATUS                                    status;
 
     *Disposition = NULL;
     if (Mask == LOG_LEVEL_NONE)
@@ -653,12 +653,12 @@ fail1:
 
 extern VOID
 LogRemoveDisposition(
-    _In_ PLOG_DISPOSITION   Disposition
+    _In_opt_ PLOG_DISPOSITION   Disposition
     )
 {
-    PLOG_CONTEXT            Context = &LogContext;
-    KIRQL                   Irql;
-    ULONG                   Index;
+    PLOG_CONTEXT                Context = &LogContext;
+    KIRQL                       Irql;
+    ULONG                       Index;
 
     if (Disposition == NULL)
         return;
diff --git a/src/xen/module.c b/src/xen/module.c
index 35a16f4..4efa566 100644
--- a/src/xen/module.c
+++ b/src/xen/module.c
@@ -330,14 +330,14 @@ fail1:
 XEN_API
 VOID
 ModuleLookup(
-    _In_ ULONG_PTR          Address,
-    _Outptr_result_z_ PSTR  *Name,
-    _Out_ PULONG_PTR        Offset
+    _In_ ULONG_PTR                      Address,
+    _Outptr_result_maybenull_z_ PSTR    *Name,
+    _Out_ PULONG_PTR                    Offset
     )
 {
-    PMODULE_CONTEXT         Context = &ModuleContext;
-    PLIST_ENTRY             ListEntry;
-    KIRQL                   Irql;
+    PMODULE_CONTEXT                     Context = &ModuleContext;
+    PLIST_ENTRY                         ListEntry;
+    KIRQL                               Irql;
 
     *Name = NULL;
     *Offset = 0;
diff --git a/src/xenbus/suspend.c b/src/xenbus/suspend.c
index ffab58f..cd292c0 100644
--- a/src/xenbus/suspend.c
+++ b/src/xenbus/suspend.c
@@ -266,7 +266,8 @@ SuspendTrigger(
               "SUSPEND: ====>\n");
 
     SyncCapture(Context, SuspendEarly, SuspendLate);
-    SyncDisableInterrupts(&InterruptIrql);
+    status = SyncDisableInterrupts(&InterruptIrql);
+    _Analysis_assume_(NT_SUCCESS(status));
 
     __SuspendLogTimers("PRE-SUSPEND");
 
diff --git a/src/xenbus/sync.c b/src/xenbus/sync.c
index 804df88..eefa2fe 100644
--- a/src/xenbus/sync.c
+++ b/src/xenbus/sync.c
@@ -392,9 +392,10 @@ SyncCapture(
     Trace("<==== (%u:%u)\n", Group, Number);
 }
 
+_Must_inspect_result_
 _IRQL_requires_(DISPATCH_LEVEL)
-_IRQL_raises_(HIGH_LEVEL)
-VOID
+_When_(NT_SUCCESS(return), _IRQL_raises_(HIGH_LEVEL))
+NTSTATUS
 SyncDisableInterrupts(
     _At_(*Irql, _IRQL_saves_)
     _Out_ PKIRQL    Irql
@@ -417,7 +418,7 @@ SyncDisableInterrupts(
         status = __SyncProcessorDisableInterrupts(Irql);
         _Analysis_assume_(NT_SUCCESS(status));
         if (NT_SUCCESS(status))
-            break;
+            return status;
 
         LogPrintf(LOG_LEVEL_WARNING, "SYNC: RE-TRY\n");
     }
diff --git a/src/xenbus/sync.h b/src/xenbus/sync.h
index 701562f..722653c 100644
--- a/src/xenbus/sync.h
+++ b/src/xenbus/sync.h
@@ -52,9 +52,10 @@ SyncCapture(
     );
 
 extern
+_Must_inspect_result_
 _IRQL_requires_(DISPATCH_LEVEL)
-_IRQL_raises_(HIGH_LEVEL)
-VOID
+_When_(NT_SUCCESS(return), _IRQL_raises_(HIGH_LEVEL))
+NTSTATUS
 SyncDisableInterrupts(
     _At_(*Irql, _IRQL_saves_)
     _Out_ PKIRQL    Irql
-- 
2.46.0.windows.1



From win-pv-devel-bounces@lists.xenproject.org Mon Jul 07 10:15:12 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 07 Jul 2025 10:15:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1035466.1407771 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uYisR-000301-4o; Mon, 07 Jul 2025 10:15:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1035466.1407771; Mon, 07 Jul 2025 10:15:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uYisR-0002zu-2A; Mon, 07 Jul 2025 10:15:11 +0000
Received: by outflank-mailman (input) for mailman id 1035466;
 Mon, 07 Jul 2025 10:15:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8FkE=ZU=bounce.vates.tech=bounce-md_30504962.686b9e29.v1-3debfb6a0603469eb8ba0aba2a0aad1d@srs-se1.protection.inumbo.net>)
 id 1uYisP-0002zm-GJ
 for win-pv-devel@lists.xenproject.org; Mon, 07 Jul 2025 10:15:09 +0000
Received: from mail135-23.atl141.mandrillapp.com
 (mail135-23.atl141.mandrillapp.com [198.2.135.23])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 41264bf5-5b1b-11f0-a316-13f23c93f187;
 Mon, 07 Jul 2025 12:15:07 +0200 (CEST)
Received: from pmta14.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail135-23.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4bbKqY3Vj3z35jG0P
 for <win-pv-devel@lists.xenproject.org>; Mon,  7 Jul 2025 10:15:05 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 3debfb6a0603469eb8ba0aba2a0aad1d; Mon, 07 Jul 2025 10:15:05 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 41264bf5-5b1b-11f0-a316-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1751883305; x=1752153305;
	bh=SBhHJJ7bwEdAahnSrAgRJeZmD/khCseq/nSU2IVE/3c=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=ZU3qZDhzppuovkuygegz50IWAVlWw6PmqZbmDB+Tk1+pTkccYM5Pw4SThxYlNIdMN
	 0f13NdaAo8nYZ3mLJHMc+HuSCwTj1uj53LWDKZ0SLboP8/ia3jLgmZTy/zw5L/R26r
	 r937NFeGUijoDrqv5BxuITTdV8qT6treBHHpQUudpN8motQepWkw8GCGjvDAwA4NQQ
	 txdfV+M2KgjeXQWpCWqsFE7OWJwDCsjY1istP8HwYnoKSWEBRLlICQtrxVILBBywzd
	 Pj5uTZNQFuCSzIkSrpGf1zR/7TEIReuowNxCCCYKsmBeb8dNMgpU80NlUGS+gfvzTx
	 8vk5L7TcdS1AA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1751883305; x=1752143805; i=ngoc-tu.dinh@vates.tech;
	bh=SBhHJJ7bwEdAahnSrAgRJeZmD/khCseq/nSU2IVE/3c=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=YQDFapu9eNlxCJ7/LAITQktsqQCLdU/LefpJAKL6x05e1/4CJAmZFyDAmerVaAv8h
	 ITnpN9PteOLB3pjVpPOGAiu2OcFWqulVFfGPZTU/98i0e3OloZj209wYIg8X2pKYJJ
	 NnQWVwuVa7xO94EkB4RBQnIxI2AfCaDqkx2dZFiKYEU8A1hermTlCR23i3RVG0+TqU
	 ap/tD/dHfHjytLjFDcfZ9KfT57DOJJMO3xi12BG+teo97DXG5Q+8Fw1BD8xm8AX83r
	 5/ftLKlSnlJXNXkW86j5pXPMcKWDll0wV3EAZACIhPMVpaeRi3WSayICeXk4USUwWe
	 Cr7l8c/ZXi0Sg==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v2=203/3]=20Always=20run=20Code=20Analysis=20on=20build?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1751883304580
Message-Id: <b98e8d87-4c14-442a-8433-09103088dffe@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: "Owen Smith" <owen.smith@cloud.com>
References: <20250705170003.1488-1-ngoc-tu.dinh@vates.tech> <20250705170003.1488-4-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250705170003.1488-4-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.3debfb6a0603469eb8ba0aba2a0aad1d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250707:md
Date: Mon, 07 Jul 2025 10:15:05 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On 05/07/2025 19:00, Tu Dinh wrote:
> Code Analysis is quick to run, and there's little reason not to run it.
> Unconditionally run the recommended driver ruleset on build.
> 
> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>

Unfortunately this doesn't build on GitHub Actions due to 
%WindowsSdkDir% not being set.


Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Mon Jul 07 21:36:26 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 07 Jul 2025 21:36:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1035823.1408199 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uYtVg-0000nc-OB; Mon, 07 Jul 2025 21:36:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1035823.1408199; Mon, 07 Jul 2025 21:36:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uYtVg-0000nV-LO; Mon, 07 Jul 2025 21:36:24 +0000
Received: by outflank-mailman (input) for mailman id 1035823;
 Mon, 07 Jul 2025 21:36:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XW6x=ZU=bounce.vates.tech=bounce-md_30504962.686c3dd0.v1-b9a81e4a83ee49d9ba4503e91383d42c@srs-se1.protection.inumbo.net>)
 id 1uYtVf-0000nP-8g
 for win-pv-devel@lists.xenproject.org; Mon, 07 Jul 2025 21:36:23 +0000
Received: from mail135-23.atl141.mandrillapp.com
 (mail135-23.atl141.mandrillapp.com [198.2.135.23])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6a1b2cb9-5b7a-11f0-b894-0df219b8e170;
 Mon, 07 Jul 2025 23:36:18 +0200 (CEST)
Received: from pmta14.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail135-23.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4bbcxX3q12z35hkc4
 for <win-pv-devel@lists.xenproject.org>; Mon,  7 Jul 2025 21:36:16 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 b9a81e4a83ee49d9ba4503e91383d42c; Mon, 07 Jul 2025 21:36:16 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a1b2cb9-5b7a-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1751924176; x=1752194176;
	bh=8WSNdlckJ2GXQBchnmBeWP1XGOUA79/ZkaIVU3pWABQ=;
	h=From:Subject:Message-Id:To:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=ij1NbV6/3SyE7iADHsFz7yZCcV2AP528HjID9ux5eLViNUToHfssy12mImbhvUMjK
	 WBSunIo4EbzYBfDY2IIjas7ZxPzDXg0jtpi2dKKS5RsVXbpm80zgrdD7NWXL7Iluha
	 D+h5PFWgb5UndPB40tzU/G8ZbQBPle5CNNlHCIQeK8ozVDePLzeZnfDzod1kMSWCZL
	 AcUT9BhG5hFiJPx7/3xy4B41FA94fKc9OSdnEbmkaBzMvwQnaAn/Ju4xZHXu7Bjxyo
	 syg6c4v6LSHad8SiRHmArkWOR7nIl+Q4+SZdciNNsJVuIN5n+By92HjGc2N/Zwjqdr
	 trJbCgJshaAcw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1751924176; x=1752184676; i=ngoc-tu.dinh@vates.tech;
	bh=8WSNdlckJ2GXQBchnmBeWP1XGOUA79/ZkaIVU3pWABQ=;
	h=From:Subject:Message-Id:To:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=b51fDyOKK56i0y2zNh0RFLH9aREbLzNwxzkcRsW5Lihi6kEmbjd0NL8UgOlJ5WqSH
	 n9+2NIZg5WRnlwnn4WDvkW9VmZgShtTXvYSADSteKBXSlEQ7CThnqWkQcH/DQENnpg
	 yK8715DgOaKX6cgclfWFE829h5703alViwN2MJgwJs6rT5n36/o6LE+opYclEHRMXA
	 TdCefgPIUJS3yVq5V/hIruaW+pVzilEy6qd67robxcmjBje0MeWviDRWlKDoX311Ua
	 b1CmYmGpXIrVfZY8xsC+g9Rc+aLq6Vtm1G+HTppjPbbBiE+0qBRP7e1jTWO/Zw0U3b
	 2WFjFzifYShIA==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20Fix=20SAL=20annotations?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1751924175689
Message-Id: <dd9519ff-cfa9-4c88-a707-29ad05d93535@vates.tech>
To: "Owen Smith" <owen.smith@cloud.com>, win-pv-devel@lists.xenproject.org
References: <20250707094150.75-1-owen.smith@cloud.com>
In-Reply-To: <20250707094150.75-1-owen.smith@cloud.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.b9a81e4a83ee49d9ba4503e91383d42c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250707:md
Date: Mon, 07 Jul 2025 21:36:16 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On 07/07/2025 11:42, Owen Smith wrote:
> SyncDisableInterrupts needs to return a value to correctly identify as
> _IRQL_Saves_
> 
> ModuleLookup may return a null value in Name
> 
> LogAddDisposition may return a null value in Disposition, which leads to
> LogRemoveDisposition needing to tread Disposition as nullable
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>

Reviewed-by: Tu Dinh <ngoc-tu.dinh@vates.tech>

At first I thought using _IRQL_saves_ KIRQL SyncDisableInterrupts(VOID) 
would work but even that didn't help CA pick up the logic.

On a related note, I tried a few ways to fix the _IRQL_restores_ CodeQL 
warning but didn't find a good solution.


Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Tue Jul 08 14:48:12 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 08 Jul 2025 14:48:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1036766.1409214 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uZ9cA-0001wP-Kk; Tue, 08 Jul 2025 14:48:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1036766.1409214; Tue, 08 Jul 2025 14:48:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uZ9cA-0001wI-IF; Tue, 08 Jul 2025 14:48:10 +0000
Received: by outflank-mailman (input) for mailman id 1036766;
 Tue, 08 Jul 2025 14:48:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cxLf=ZV=bounce.vates.tech=bounce-md_30504962.686d2fa1.v1-18e4a0cd9cbe45c893005dc5aee717d8@srs-se1.protection.inumbo.net>)
 id 1uZ9c9-0001wA-88
 for win-pv-devel@lists.xenproject.org; Tue, 08 Jul 2025 14:48:09 +0000
Received: from mail124.us4.mandrillapp.com (mail124.us4.mandrillapp.com
 [205.201.136.124]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8c50824a-5c0a-11f0-b894-0df219b8e170;
 Tue, 08 Jul 2025 16:48:03 +0200 (CEST)
Received: from pmta15.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail124.us4.mandrillapp.com (Mailchimp) with ESMTP id 4bc3r14XtCzKscB3F
 for <win-pv-devel@lists.xenproject.org>; Tue,  8 Jul 2025 14:48:01 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 18e4a0cd9cbe45c893005dc5aee717d8; Tue, 08 Jul 2025 14:48:01 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8c50824a-5c0a-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1751986081; x=1752256081;
	bh=JzP312dVvuOMSi01TQhnlVbD/Jm/yiROtb6Zn3w47EI=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=sfnN4XLtC/GDjZHbZahKhxrttJjZf5lhmswg80MyxATsAmIfFBse+/YExM/WmbCrs
	 PzjL+cXuYSDjOX+h7RwnA5CUTiBoZOOt5nHPxD+iRU5BXSRzdLhTPMnLq5M8Yd4wiu
	 X0K1+f/8zIifX+UPFlEYwc33Fn0HpyX8COXatIWbpypOZa2L36geyD/YLTXZkBZcMs
	 f6LURNNjSyr1foYa2dqUxXi6YFVlkG/DqJQ1VahMUYYyqWW0ZFt+2eXtsXqC8hfU8N
	 YGbUtuOCXKEwvx5npcT6L0CsXplIWnCUDJx3h/LbnAYXGC+ohVESOq99HJ6Uk/29Oy
	 T+CRgxDbp+vRw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1751986081; x=1752246581; i=ngoc-tu.dinh@vates.tech;
	bh=JzP312dVvuOMSi01TQhnlVbD/Jm/yiROtb6Zn3w47EI=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=r9/zdKpv7kfeflYp3/kEOxSXAybNbjnORsr7BmXLHV7Krsjbtj6NoSeX4nx60aVVe
	 LCpF0ZabEnaJK5crEz1OEPyMUVnIbJ1rzN6TGPGu+vN6Ap7ICMEYmPe9TVsZ0Id8Ai
	 qYLVIc4z25xWZlcb740QOLc6oQb51hGdUNwn5TTbn+B9dCrkM1StTobeZlWh3HINru
	 PGS/8BGpf0z0COpCyh1MTt3cay1JZQ2LW2Kw17BKfEzvRv9B5gFQ7q6m7qj4LBkn/8
	 /HIDpNO5iONh8U5wFkbSWRbJyRWa7ZDXqhrZUv96ktq4mb/J+R4wCdLcxeAR3duK/u
	 JPsPrspS8Z+Hw==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[XENIFACE=20PATCH]=20xenagent:=20Add=20DisableTimeSync=20option?=
X-Mailer: git-send-email 2.50.0.windows.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1751986080732
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250708144753.345-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.18e4a0cd9cbe45c893005dc5aee717d8?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250708:md
Date: Tue, 08 Jul 2025 14:48:01 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

xenagent's time sync mechanism interferes with w32time's own time sync,
especially in a domain environment where domain members are expected to
follow the PDCe.

Add a REG_DWORD value DisableTimeSync in xenagent\Parameters to allow
disabling the XenTime sync.
Note that this setting is not honored during time sync attempts after
resume.

Also add an empty xenagent\Parameters key in xeniface.inf to ease
creating the setting.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 src/xenagent/service.cpp        |  4 ++--
 src/xenagent/xenifacedevice.cpp | 32 ++++++++++++++++++++++++++++----
 src/xenagent/xenifacedevice.h   |  4 ++--
 src/xeniface.inf                |  4 ++++
 4 files changed, 36 insertions(+), 8 deletions(-)

diff --git a/src/xenagent/service.cpp b/src/xenagent/service.cpp
index 535d761..6ef7b1a 100644
--- a/src/xenagent/service.cpp
+++ b/src/xenagent/service.cpp
@@ -216,7 +216,7 @@ bool CXenAgent::ServiceMainLoop()
 
     case WAIT_OBJECT_0+2:
         ResetEvent(m_xeniface.m_evt_suspend);
-        m_xeniface.CheckXenTime();
+        m_xeniface.CheckXenTime(true);
         m_xeniface.CheckSuspend();
         return true; // continue loop
 
@@ -230,7 +230,7 @@ bool CXenAgent::ServiceMainLoop()
         return true; // continue loop
     }
     case WAIT_TIMEOUT:
-        m_xeniface.CheckXenTime();
+        m_xeniface.CheckXenTime(false);
         __fallthrough;
     case WAIT_IO_COMPLETION:
         m_xeniface.CheckSuspend();
diff --git a/src/xenagent/xenifacedevice.cpp b/src/xenagent/xenifacedevice.cpp
index 69a584b..c476ccd 100644
--- a/src/xenagent/xenifacedevice.cpp
+++ b/src/xenagent/xenifacedevice.cpp
@@ -40,6 +40,14 @@
 #include "xeniface_ioctls.h"
 #include "messages.h"
 
+#define SERVICES_KEY "SYSTEM\\CurrentControlSet\\Services"
+
+#define SERVICE_KEY(_Service) \
+        SERVICES_KEY ## "\\" ## _Service
+
+#define PARAMETERS_KEY(_Service) \
+        SERVICE_KEY(_Service) ## "\\Parameters"
+
 CXenIfaceDevice::CXenIfaceDevice(const wchar_t* path) : CDevice(path)
 {}
 
@@ -213,7 +221,7 @@ CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent* agent) : CDeviceList(GUID_IN
     if (m_agent->ConvDevicePresent())
         StartSlateModeWatch(device);
 
-    SetXenTime(device);
+    SetXenTime(device, false);
 }
 
 /*virtual*/ void CXenIfaceDeviceList::OnDeviceRemoved(CDevice* dev)
@@ -339,7 +347,7 @@ bool CXenIfaceDeviceList::CheckShutdown()
     return false;
 }
 
-void CXenIfaceDeviceList::CheckXenTime()
+void CXenIfaceDeviceList::CheckXenTime(bool forced)
 {
     CCritSec crit(&m_crit);
     CXenIfaceDevice* device = (CXenIfaceDevice*)GetFirstDevice();
@@ -347,7 +355,7 @@ void CXenIfaceDeviceList::CheckXenTime()
     if (device == NULL)
         return;
 
-    SetXenTime(device);
+    SetXenTime(device, forced);
 }
 
 void CXenIfaceDeviceList::CheckSuspend()
@@ -485,10 +493,26 @@ void CXenIfaceDeviceList::AcquireShutdownPrivilege()
     CloseHandle(token);
 }
 
-void CXenIfaceDeviceList::SetXenTime(CXenIfaceDevice* device)
+void CXenIfaceDeviceList::SetXenTime(CXenIfaceDevice* device, bool forced)
 {
     bool local;
 
+    if (!forced) {
+        DWORD   disable = 0;
+        DWORD   size = sizeof(disable);
+        LSTATUS lstatus;
+
+        lstatus = RegGetValue(HKEY_LOCAL_MACHINE,
+                              TEXT(PARAMETERS_KEY(__MODULE__)),
+                              TEXT("DisableTimeSync"),
+                              RRF_RT_DWORD,
+                              NULL,
+                              &disable,
+                              &size);
+        if (lstatus == ERROR_SUCCESS && disable)
+            return;
+    }
+
     FILETIME now = { 0 };
     if (!device->SharedInfoGetTime(&now, &local))
         return;
diff --git a/src/xenagent/xenifacedevice.h b/src/xenagent/xenifacedevice.h
index d85e469..8a89036 100644
--- a/src/xenagent/xenifacedevice.h
+++ b/src/xenagent/xenifacedevice.h
@@ -84,7 +84,7 @@ public:
 
     void Log(const char* message);
     bool CheckShutdown();
-    void CheckXenTime();
+    void CheckXenTime(bool forced);
     void CheckSuspend();
     bool CheckSlateMode(std::string& mode);
     void LogIfRebootPending();
@@ -95,7 +95,7 @@ private:
     void StartSlateModeWatch(CXenIfaceDevice* device);
     void StopSlateModeWatch(CXenIfaceDevice* device);
     void AcquireShutdownPrivilege();
-    void SetXenTime(CXenIfaceDevice* device);
+    void SetXenTime(CXenIfaceDevice* device, bool forced);
 
 private:
     CXenAgent*  m_agent;
diff --git a/src/xeniface.inf b/src/xeniface.inf
index 07e2a91..3b54f2a 100644
--- a/src/xeniface.inf
+++ b/src/xeniface.inf
@@ -110,6 +110,10 @@ ServiceType=%SERVICE_WIN32_OWN_PROCESS%
 StartType=%SERVICE_AUTO_START%
 ErrorControl=%SERVICE_ERROR_NORMAL%
 ServiceBinary=%11%\xenagent_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.exe
+AddReg=XenAgent_Parameters
+
+[XenAgent_Parameters]
+HKR,"Parameters",,0x00000010
 
 [XenAgent_EventLog]
 AddReg=XenAgent_AddReg
-- 
2.50.0.windows.2



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Wed Jul 09 07:50:05 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 09 Jul 2025 07:50:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1037776.1410303 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uZPZ4-00084l-R3; Wed, 09 Jul 2025 07:50:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1037776.1410303; Wed, 09 Jul 2025 07:50:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uZPZ4-00084e-Ni; Wed, 09 Jul 2025 07:50:02 +0000
Received: by outflank-mailman (input) for mailman id 1037776;
 Wed, 09 Jul 2025 07:50:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=byUE=ZW=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1uZPZ2-0007sS-Lg
 for win-pv-devel@lists.xenproject.org; Wed, 09 Jul 2025 07:50:00 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4ee96aab-5c99-11f0-a317-13f23c93f187;
 Wed, 09 Jul 2025 09:49:59 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-54d98aa5981so7037231e87.0
 for <win-pv-devel@lists.xenproject.org>; Wed, 09 Jul 2025 00:49:57 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4ee96aab-5c99-11f0-a317-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1752047397; x=1752652197; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=bSyAYSziT8PK82zBV2QFHCNJQZ32BC8HeApQywV7MKo=;
        b=PrGbNWQZEa7FWWl/s8VDDv5jw/DfaPHZNpvjOhKEZozvNfKvwQLpCc+CXRFIvqecgm
         wytd6h1PzMERt6g6DsMN74Y9JuCnZA7oacPxAVFrG2NpPXPhGFmTccZ6EW2j4hgUDCe5
         nFMxGjTtAb4usLxHLU+IXzV/hUaShTbPq8tT8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1752047397; x=1752652197;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=bSyAYSziT8PK82zBV2QFHCNJQZ32BC8HeApQywV7MKo=;
        b=gFEV2QyTzOqzczqkyI6aCzPff8xIWfxi1PGxFO7fFMdB2G1PEXaGa37tSQCi7F/QQj
         XdsBcBA0CRdP9i8h+2ntHZAh8EvHsoNJSeHBs6ikliOttUrvscMVFFqFUFd6/SG2tMFg
         9r0OvMGOLeHT8bGS57RkDtGSDXnpUimGZ6oy/f4AOG1ck/UBEkG0DTrlq+cyYVnKF5iE
         3H2LtUw9lx8VP7ZYxaOSSKXJ/FwT/DAYhd3hC9W4uwKMLKPxOxMK07xfH6PIVM7Z81U5
         44UtCCLUh/28N9WUIxta9sr1I2fsRftRgQgX8KmdACeS3DISekaAoN7PU8gEXAsus/R3
         4Qjw==
X-Gm-Message-State: AOJu0Yzfq+m9xb5WGdLKMJ8SElxBXvhMYJkEaAmbA4bid5Y3G1GNEHX9
	rWoWlGrgJadwMcDOuSi+IKdqGqqdTaLL0JElgInyNeHwyU/K7jqhgxMRwDiEwjwjNr0JEzqKua2
	+SobZ8ZDbP7hjjR+CJnLsjJcGwSzJarmpR+tTSGznIebSCQzXbI2q6g==
X-Gm-Gg: ASbGncsJaSc4UYndgjKatWJc26GJRV8pBYsaeuUY8efT3qMRQMNGVJqKnmS8jQGJEmp
	n+EebMYk+LBxhP4ts8YJgw2rF62n6MsviLO9cksrQ53nfsmztqd1oO0HBW51zpUU0dOV4oZdAEp
	PEFIkHnlDpJFOsTwZxlVF7/4ASa3sW63a3mAiWYtIaWs67dOtvGCE8
X-Google-Smtp-Source: AGHT+IETO1oCyEaMPwkjiuWhv7kqFaqTVAtYw/mg+ilBDIJxaV5aIptLtvuGikJ727H3puORR3ujvqUmaqhctSHEGR8=
X-Received: by 2002:a05:6512:238e:b0:553:34b7:5731 with SMTP id
 2adb3069b0e04-558fa87690amr616568e87.3.1752047396468; Wed, 09 Jul 2025
 00:49:56 -0700 (PDT)
MIME-Version: 1.0
References: <20250708144753.345-1-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250708144753.345-1-ngoc-tu.dinh@vates.tech>
From: Owen Smith <owen.smith@cloud.com>
Date: Wed, 9 Jul 2025 08:49:44 +0100
X-Gm-Features: Ac12FXyKttgwGDXZUnFKYORi9K5mVMQ6g14hQpsmRjrDywukRVbXWGvE84hx1DE
Message-ID: <CAC_UY8-fbaBHnO0MjQWW1terZvmJL8idfBxds=LY3hyztLf8rQ@mail.gmail.com>
Subject: Re: [XENIFACE PATCH] xenagent: Add DisableTimeSync option
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000b2545806397a52dc"

--000000000000b2545806397a52dc
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

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

XenServer has had patches that does something similar for a while, and
contains other related options - I've been meaning to clean it up and
upstream for a while, but its embedded in a pretty hefty refactoring of the
xenagent code.


On Tue, Jul 8, 2025 at 3:48=E2=80=AFPM Tu Dinh <ngoc-tu.dinh@vates.tech> wr=
ote:

> xenagent's time sync mechanism interferes with w32time's own time sync,
> especially in a domain environment where domain members are expected to
> follow the PDCe.
>
> Add a REG_DWORD value DisableTimeSync in xenagent\Parameters to allow
> disabling the XenTime sync.
> Note that this setting is not honored during time sync attempts after
> resume.
>
> Also add an empty xenagent\Parameters key in xeniface.inf to ease
> creating the setting.
>
> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
> ---
>  src/xenagent/service.cpp        |  4 ++--
>  src/xenagent/xenifacedevice.cpp | 32 ++++++++++++++++++++++++++++----
>  src/xenagent/xenifacedevice.h   |  4 ++--
>  src/xeniface.inf                |  4 ++++
>  4 files changed, 36 insertions(+), 8 deletions(-)
>
> diff --git a/src/xenagent/service.cpp b/src/xenagent/service.cpp
> index 535d761..6ef7b1a 100644
> --- a/src/xenagent/service.cpp
> +++ b/src/xenagent/service.cpp
> @@ -216,7 +216,7 @@ bool CXenAgent::ServiceMainLoop()
>
>      case WAIT_OBJECT_0+2:
>          ResetEvent(m_xeniface.m_evt_suspend);
> -        m_xeniface.CheckXenTime();
> +        m_xeniface.CheckXenTime(true);
>          m_xeniface.CheckSuspend();
>          return true; // continue loop
>
> @@ -230,7 +230,7 @@ bool CXenAgent::ServiceMainLoop()
>          return true; // continue loop
>      }
>      case WAIT_TIMEOUT:
> -        m_xeniface.CheckXenTime();
> +        m_xeniface.CheckXenTime(false);
>          __fallthrough;
>      case WAIT_IO_COMPLETION:
>          m_xeniface.CheckSuspend();
> diff --git a/src/xenagent/xenifacedevice.cpp
> b/src/xenagent/xenifacedevice.cpp
> index 69a584b..c476ccd 100644
> --- a/src/xenagent/xenifacedevice.cpp
> +++ b/src/xenagent/xenifacedevice.cpp
> @@ -40,6 +40,14 @@
>  #include "xeniface_ioctls.h"
>  #include "messages.h"
>
> +#define SERVICES_KEY "SYSTEM\\CurrentControlSet\\Services"
> +
> +#define SERVICE_KEY(_Service) \
> +        SERVICES_KEY ## "\\" ## _Service
> +
> +#define PARAMETERS_KEY(_Service) \
> +        SERVICE_KEY(_Service) ## "\\Parameters"
> +
>  CXenIfaceDevice::CXenIfaceDevice(const wchar_t* path) : CDevice(path)
>  {}
>
> @@ -213,7 +221,7 @@ CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent*
> agent) : CDeviceList(GUID_IN
>      if (m_agent->ConvDevicePresent())
>          StartSlateModeWatch(device);
>
> -    SetXenTime(device);
> +    SetXenTime(device, false);
>  }
>
>  /*virtual*/ void CXenIfaceDeviceList::OnDeviceRemoved(CDevice* dev)
> @@ -339,7 +347,7 @@ bool CXenIfaceDeviceList::CheckShutdown()
>      return false;
>  }
>
> -void CXenIfaceDeviceList::CheckXenTime()
> +void CXenIfaceDeviceList::CheckXenTime(bool forced)
>  {
>      CCritSec crit(&m_crit);
>      CXenIfaceDevice* device =3D (CXenIfaceDevice*)GetFirstDevice();
> @@ -347,7 +355,7 @@ void CXenIfaceDeviceList::CheckXenTime()
>      if (device =3D=3D NULL)
>          return;
>
> -    SetXenTime(device);
> +    SetXenTime(device, forced);
>  }
>
>  void CXenIfaceDeviceList::CheckSuspend()
> @@ -485,10 +493,26 @@ void CXenIfaceDeviceList::AcquireShutdownPrivilege(=
)
>      CloseHandle(token);
>  }
>
> -void CXenIfaceDeviceList::SetXenTime(CXenIfaceDevice* device)
> +void CXenIfaceDeviceList::SetXenTime(CXenIfaceDevice* device, bool force=
d)
>  {
>      bool local;
>
> +    if (!forced) {
> +        DWORD   disable =3D 0;
> +        DWORD   size =3D sizeof(disable);
> +        LSTATUS lstatus;
> +
> +        lstatus =3D RegGetValue(HKEY_LOCAL_MACHINE,
> +                              TEXT(PARAMETERS_KEY(__MODULE__)),
> +                              TEXT("DisableTimeSync"),
> +                              RRF_RT_DWORD,
> +                              NULL,
> +                              &disable,
> +                              &size);
> +        if (lstatus =3D=3D ERROR_SUCCESS && disable)
> +            return;
> +    }
> +
>      FILETIME now =3D { 0 };
>      if (!device->SharedInfoGetTime(&now, &local))
>          return;
> diff --git a/src/xenagent/xenifacedevice.h b/src/xenagent/xenifacedevice.=
h
> index d85e469..8a89036 100644
> --- a/src/xenagent/xenifacedevice.h
> +++ b/src/xenagent/xenifacedevice.h
> @@ -84,7 +84,7 @@ public:
>
>      void Log(const char* message);
>      bool CheckShutdown();
> -    void CheckXenTime();
> +    void CheckXenTime(bool forced);
>      void CheckSuspend();
>      bool CheckSlateMode(std::string& mode);
>      void LogIfRebootPending();
> @@ -95,7 +95,7 @@ private:
>      void StartSlateModeWatch(CXenIfaceDevice* device);
>      void StopSlateModeWatch(CXenIfaceDevice* device);
>      void AcquireShutdownPrivilege();
> -    void SetXenTime(CXenIfaceDevice* device);
> +    void SetXenTime(CXenIfaceDevice* device, bool forced);
>
>  private:
>      CXenAgent*  m_agent;
> diff --git a/src/xeniface.inf b/src/xeniface.inf
> index 07e2a91..3b54f2a 100644
> --- a/src/xeniface.inf
> +++ b/src/xeniface.inf
> @@ -110,6 +110,10 @@ ServiceType=3D%SERVICE_WIN32_OWN_PROCESS%
>  StartType=3D%SERVICE_AUTO_START%
>  ErrorControl=3D%SERVICE_ERROR_NORMAL%
>  ServiceBinary=3D%11%\xenagent_@MAJOR_VERSION@_@MINOR_VERSION@
> _@MICRO_VERSION@_@BUILD_NUMBER@.exe
> +AddReg=3DXenAgent_Parameters
> +
> +[XenAgent_Parameters]
> +HKR,"Parameters",,0x00000010
>
>  [XenAgent_EventLog]
>  AddReg=3DXenAgent_AddReg
> --
> 2.50.0.windows.2
>
>
>
> Ngoc Tu Dinh | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech
>
>

--000000000000b2545806397a52dc
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">Reviewed-by: Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com">owen=
.smith@cloud.com</a>&gt;</div><div class=3D"gmail_default" style=3D"font-fa=
mily:monospace"><br></div><div class=3D"gmail_default" style=3D"font-family=
:monospace">XenServer has had patches that does something similar for a whi=
le, and contains other related options=C2=A0- I&#39;ve been meaning to clea=
n it up and upstream for a while, but its embedded in a pretty hefty refact=
oring of the xenagent code.</div><div class=3D"gmail_default" style=3D"font=
-family:monospace"><br></div></div><br><div class=3D"gmail_quote gmail_quot=
e_container"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Jul 8, 2025 at 3=
:48=E2=80=AFPM Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt; wrote:<br></div><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left=
:1px solid rgb(204,204,204);padding-left:1ex">xenagent&#39;s time sync mech=
anism interferes with w32time&#39;s own time sync,<br>
especially in a domain environment where domain members are expected to<br>
follow the PDCe.<br>
<br>
Add a REG_DWORD value DisableTimeSync in xenagent\Parameters to allow<br>
disabling the XenTime sync.<br>
Note that this setting is not honored during time sync attempts after<br>
resume.<br>
<br>
Also add an empty xenagent\Parameters key in xeniface.inf to ease<br>
creating the setting.<br>
<br>
Signed-off-by: Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt;<br>
---<br>
=C2=A0src/xenagent/service.cpp=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 4 ++--<br=
>
=C2=A0src/xenagent/xenifacedevice.cpp | 32 ++++++++++++++++++++++++++++----=
<br>
=C2=A0src/xenagent/xenifacedevice.h=C2=A0 =C2=A0|=C2=A0 4 ++--<br>
=C2=A0src/xeniface.inf=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 |=C2=A0 4 ++++<br>
=C2=A04 files changed, 36 insertions(+), 8 deletions(-)<br>
<br>
diff --git a/src/xenagent/service.cpp b/src/xenagent/service.cpp<br>
index 535d761..6ef7b1a 100644<br>
--- a/src/xenagent/service.cpp<br>
+++ b/src/xenagent/service.cpp<br>
@@ -216,7 +216,7 @@ bool CXenAgent::ServiceMainLoop()<br>
<br>
=C2=A0 =C2=A0 =C2=A0case WAIT_OBJECT_0+2:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ResetEvent(m_xeniface.m_evt_suspend);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 m_xeniface.CheckXenTime();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 m_xeniface.CheckXenTime(true);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0m_xeniface.CheckSuspend();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return true; // continue loop<br>
<br>
@@ -230,7 +230,7 @@ bool CXenAgent::ServiceMainLoop()<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return true; // continue loop<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0case WAIT_TIMEOUT:<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 m_xeniface.CheckXenTime();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 m_xeniface.CheckXenTime(false);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0__fallthrough;<br>
=C2=A0 =C2=A0 =C2=A0case WAIT_IO_COMPLETION:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0m_xeniface.CheckSuspend();<br>
diff --git a/src/xenagent/xenifacedevice.cpp b/src/xenagent/xenifacedevice.=
cpp<br>
index 69a584b..c476ccd 100644<br>
--- a/src/xenagent/xenifacedevice.cpp<br>
+++ b/src/xenagent/xenifacedevice.cpp<br>
@@ -40,6 +40,14 @@<br>
=C2=A0#include &quot;xeniface_ioctls.h&quot;<br>
=C2=A0#include &quot;messages.h&quot;<br>
<br>
+#define SERVICES_KEY &quot;SYSTEM\\CurrentControlSet\\Services&quot;<br>
+<br>
+#define SERVICE_KEY(_Service) \<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 SERVICES_KEY ## &quot;\\&quot; ## _Service<br>
+<br>
+#define PARAMETERS_KEY(_Service) \<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 SERVICE_KEY(_Service) ## &quot;\\Parameters&qu=
ot;<br>
+<br>
=C2=A0CXenIfaceDevice::CXenIfaceDevice(const wchar_t* path) : CDevice(path)=
<br>
=C2=A0{}<br>
<br>
@@ -213,7 +221,7 @@ CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent* age=
nt) : CDeviceList(GUID_IN<br>
=C2=A0 =C2=A0 =C2=A0if (m_agent-&gt;ConvDevicePresent())<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0StartSlateModeWatch(device);<br>
<br>
-=C2=A0 =C2=A0 SetXenTime(device);<br>
+=C2=A0 =C2=A0 SetXenTime(device, false);<br>
=C2=A0}<br>
<br>
=C2=A0/*virtual*/ void CXenIfaceDeviceList::OnDeviceRemoved(CDevice* dev)<b=
r>
@@ -339,7 +347,7 @@ bool CXenIfaceDeviceList::CheckShutdown()<br>
=C2=A0 =C2=A0 =C2=A0return false;<br>
=C2=A0}<br>
<br>
-void CXenIfaceDeviceList::CheckXenTime()<br>
+void CXenIfaceDeviceList::CheckXenTime(bool forced)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0CCritSec crit(&amp;m_crit);<br>
=C2=A0 =C2=A0 =C2=A0CXenIfaceDevice* device =3D (CXenIfaceDevice*)GetFirstD=
evice();<br>
@@ -347,7 +355,7 @@ void CXenIfaceDeviceList::CheckXenTime()<br>
=C2=A0 =C2=A0 =C2=A0if (device =3D=3D NULL)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
<br>
-=C2=A0 =C2=A0 SetXenTime(device);<br>
+=C2=A0 =C2=A0 SetXenTime(device, forced);<br>
=C2=A0}<br>
<br>
=C2=A0void CXenIfaceDeviceList::CheckSuspend()<br>
@@ -485,10 +493,26 @@ void CXenIfaceDeviceList::AcquireShutdownPrivilege()<=
br>
=C2=A0 =C2=A0 =C2=A0CloseHandle(token);<br>
=C2=A0}<br>
<br>
-void CXenIfaceDeviceList::SetXenTime(CXenIfaceDevice* device)<br>
+void CXenIfaceDeviceList::SetXenTime(CXenIfaceDevice* device, bool forced)=
<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0bool local;<br>
<br>
+=C2=A0 =C2=A0 if (!forced) {<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 DWORD=C2=A0 =C2=A0disable =3D 0;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 DWORD=C2=A0 =C2=A0size =3D sizeof(disable);<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 LSTATUS lstatus;<br>
+<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 lstatus =3D RegGetValue(HKEY_LOCAL_MACHINE,<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 TEXT(PARAMETERS_KEY(__MODULE__)),<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 TEXT(&quot;DisableTimeSync&quot;),<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 RRF_RT_DWORD,<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 NULL,<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &amp;disable,<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &amp;size);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (lstatus =3D=3D ERROR_SUCCESS &amp;&amp; di=
sable)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return;<br>
+=C2=A0 =C2=A0 }<br>
+<br>
=C2=A0 =C2=A0 =C2=A0FILETIME now =3D { 0 };<br>
=C2=A0 =C2=A0 =C2=A0if (!device-&gt;SharedInfoGetTime(&amp;now, &amp;local)=
)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
diff --git a/src/xenagent/xenifacedevice.h b/src/xenagent/xenifacedevice.h<=
br>
index d85e469..8a89036 100644<br>
--- a/src/xenagent/xenifacedevice.h<br>
+++ b/src/xenagent/xenifacedevice.h<br>
@@ -84,7 +84,7 @@ public:<br>
<br>
=C2=A0 =C2=A0 =C2=A0void Log(const char* message);<br>
=C2=A0 =C2=A0 =C2=A0bool CheckShutdown();<br>
-=C2=A0 =C2=A0 void CheckXenTime();<br>
+=C2=A0 =C2=A0 void CheckXenTime(bool forced);<br>
=C2=A0 =C2=A0 =C2=A0void CheckSuspend();<br>
=C2=A0 =C2=A0 =C2=A0bool CheckSlateMode(std::string&amp; mode);<br>
=C2=A0 =C2=A0 =C2=A0void LogIfRebootPending();<br>
@@ -95,7 +95,7 @@ private:<br>
=C2=A0 =C2=A0 =C2=A0void StartSlateModeWatch(CXenIfaceDevice* device);<br>
=C2=A0 =C2=A0 =C2=A0void StopSlateModeWatch(CXenIfaceDevice* device);<br>
=C2=A0 =C2=A0 =C2=A0void AcquireShutdownPrivilege();<br>
-=C2=A0 =C2=A0 void SetXenTime(CXenIfaceDevice* device);<br>
+=C2=A0 =C2=A0 void SetXenTime(CXenIfaceDevice* device, bool forced);<br>
<br>
=C2=A0private:<br>
=C2=A0 =C2=A0 =C2=A0CXenAgent*=C2=A0 m_agent;<br>
diff --git a/src/xeniface.inf b/src/xeniface.inf<br>
index 07e2a91..3b54f2a 100644<br>
--- a/src/xeniface.inf<br>
+++ b/src/xeniface.inf<br>
@@ -110,6 +110,10 @@ ServiceType=3D%SERVICE_WIN32_OWN_PROCESS%<br>
=C2=A0StartType=3D%SERVICE_AUTO_START%<br>
=C2=A0ErrorControl=3D%SERVICE_ERROR_NORMAL%<br>
=C2=A0ServiceBinary=3D%11%\xenagent_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_=
VERSION@_@BUILD_NUMBER@.exe<br>
+AddReg=3DXenAgent_Parameters<br>
+<br>
+[XenAgent_Parameters]<br>
+HKR,&quot;Parameters&quot;,,0x00000010<br>
<br>
=C2=A0[XenAgent_EventLog]<br>
=C2=A0AddReg=3DXenAgent_AddReg<br>
-- <br>
2.50.0.windows.2<br>
<br>
<br>
<br>
Ngoc Tu Dinh | Vates XCP-ng Developer<br>
<br>
XCP-ng &amp; Xen Orchestra - Vates solutions<br>
<br>
web: <a href=3D"https://vates.tech" rel=3D"noreferrer" target=3D"_blank">ht=
tps://vates.tech</a><br>
<br>
</blockquote></div>

--000000000000b2545806397a52dc--


From win-pv-devel-bounces@lists.xenproject.org Wed Jul 09 08:11:18 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 09 Jul 2025 08:11:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1037815.1410337 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uZPtc-0005LC-9j; Wed, 09 Jul 2025 08:11:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1037815.1410337; Wed, 09 Jul 2025 08:11:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uZPtc-0005L5-6t; Wed, 09 Jul 2025 08:11:16 +0000
Received: by outflank-mailman (input) for mailman id 1037815;
 Wed, 09 Jul 2025 08:11:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pFu5=ZW=bounce.vates.tech=bounce-md_30504962.686e2418.v1-cfee2ccc7f9b497ca9b215ba80c7d909@srs-se1.protection.inumbo.net>)
 id 1uZPtb-0005Kw-8d
 for win-pv-devel@lists.xenproject.org; Wed, 09 Jul 2025 08:11:15 +0000
Received: from mail124.us4.mandrillapp.com (mail124.us4.mandrillapp.com
 [205.201.136.124]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 42a523d5-5c9c-11f0-a317-13f23c93f187;
 Wed, 09 Jul 2025 10:11:06 +0200 (CEST)
Received: from pmta15.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail124.us4.mandrillapp.com (Mailchimp) with ESMTP id 4bcVzX3SLWzKscf3l
 for <win-pv-devel@lists.xenproject.org>; Wed,  9 Jul 2025 08:11:04 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 cfee2ccc7f9b497ca9b215ba80c7d909; Wed, 09 Jul 2025 08:11:04 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 42a523d5-5c9c-11f0-a317-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1752048664; x=1752318664;
	bh=iQIMc1a5W+N3dKYOsuEfFpdnlT5E5C+K0hgYcEgzvtE=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=PWoJHp2WrWSiuDlYwTdxrDaGRwqScHxBp0+JBSSgQC3H6Mv5TAOCP8ZxDZq2VOLXO
	 DaNaLP8IcOZ7b6i7ML2J9pzrX+Ac4CYEBPyQuh2gp22Yu4+so9ltrD5oZ8VL0QTQlk
	 mwzj9lGpjK8Zj1cokmWlp6biEggoe3AB/um8keNsXulahWgcQw4UxhAO6EbVSoAtqq
	 TsM3Fb2tzopw4kOKE5WGxXfxgDCcDyd2JzZkkYONUNUP7m2IxCDUMqPNrOyiVtYPbh
	 nGmapJftd4Ku26nTl7ACC+qchOCHUKNmOzkIuOMHAsQMz6xnzU4p67Iz6gdtVQ3DOL
	 ehkbl+qUwnnHg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1752048664; x=1752309164; i=ngoc-tu.dinh@vates.tech;
	bh=iQIMc1a5W+N3dKYOsuEfFpdnlT5E5C+K0hgYcEgzvtE=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=cNeVYuKRO6js0N4wDAfiX8v1UX89h3z5UOwTE+Y/xe9oWJJUcjYkD25CjWozw1evL
	 lU5mSEFgOOIymUtxIw5tz9oohJOk0JO/CRTgtApzbR8DC7560bFTXMGJyKAEf8nHLW
	 heI+KGshvW/XRtd5J1NVj0Ln501yLuMAlm0PmUFR6B0S7kpVlqELU3NzbuPj29LTMw
	 GM3rvXDZqGMMVZU/sins0LcYkYXc3hP8mLEjZAgCTC/G1U0ZswvzAKU7FusYDWHXtT
	 xe/YRQhaQjUc14IXosWhABZIhLuRJhMMS/uhdp6lH5qRPqVdBpEUl8pr3eLGcWzvNQ
	 iR2nsmSW59xkQ==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[XENIFACE=20PATCH]=20xenagent:=20Add=20DisableTimeSync=20option?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1752048663487
Message-Id: <3f27bfa7-be7a-414b-b61b-9834ab29adf5@vates.tech>
To: "Owen Smith" <owen.smith@cloud.com>
Cc: win-pv-devel@lists.xenproject.org
References: <20250708144753.345-1-ngoc-tu.dinh@vates.tech> <CAC_UY8-fbaBHnO0MjQWW1terZvmJL8idfBxds=LY3hyztLf8rQ@mail.gmail.com>
In-Reply-To: <CAC_UY8-fbaBHnO0MjQWW1terZvmJL8idfBxds=LY3hyztLf8rQ@mail.gmail.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.cfee2ccc7f9b497ca9b215ba80c7d909?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250709:md
Date: Wed, 09 Jul 2025 08:11:04 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi Owen,

On 09/07/2025 09:49, Owen Smith wrote:
> Reviewed-by: Owen Smith <owen.smith@cloud.com <mailto:owen.smith@cloud.co=
m>>
> 
> XenServer has had patches that does something similar for a while, and 
> contains other related options=C2=A0- I've been meaning to clean it up an=
d 
> upstream for a while, but its embedded in a pretty hefty refactoring of 
> the xenagent code.
> 

I was not aware of TimeSyncMode. Let's converge on the existing 
TimeSyncMode setting. I can make it respect TimeSyncMode=3D0.

> 
> On Tue, Jul 8, 2025 at 3:48=E2=80=AFPM Tu Dinh <ngoc-tu.dinh@vates.tech> =
wrote:
> 
>     xenagent's time sync mechanism interferes with w32time's own time syn=
c,
>     especially in a domain environment where domain members are expected =
to
>     follow the PDCe.
> 
>     Add a REG_DWORD value DisableTimeSync in xenagent\Parameters to allow
>     disabling the XenTime sync.
>     Note that this setting is not honored during time sync attempts after
>     resume.
> 
>     Also add an empty xenagent\Parameters key in xeniface.inf to ease
>     creating the setting.
> 
>     Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
>     ---
>      =C2=A0src/xenagent/service.cpp=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 4 =
++--
>      =C2=A0src/xenagent/xenifacedevice.cpp | 32 +++++++++++++++++++++++++=
+++----
>      =C2=A0src/xenagent/xenifacedevice.h=C2=A0 =C2=A0|=C2=A0 4 ++--
>      =C2=A0src/xeniface.inf=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 |=C2=A0 4 ++++
>      =C2=A04 files changed, 36 insertions(+), 8 deletions(-)
> 
>     diff --git a/src/xenagent/service.cpp b/src/xenagent/service.cpp
>     index 535d761..6ef7b1a 100644
>     --- a/src/xenagent/service.cpp
>     +++ b/src/xenagent/service.cpp
>     @@ -216,7 +216,7 @@ bool CXenAgent::ServiceMainLoop()
> 
>      =C2=A0 =C2=A0 =C2=A0case WAIT_OBJECT_0+2:
>      =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ResetEvent(m_xeniface.m_evt_suspen=
d);
>     -=C2=A0 =C2=A0 =C2=A0 =C2=A0 m_xeniface.CheckXenTime();
>     +=C2=A0 =C2=A0 =C2=A0 =C2=A0 m_xeniface.CheckXenTime(true);
>      =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0m_xeniface.CheckSuspend();
>      =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return true; // continue loop
> 
>     @@ -230,7 +230,7 @@ bool CXenAgent::ServiceMainLoop()
>      =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return true; // continue loop
>      =C2=A0 =C2=A0 =C2=A0}
>      =C2=A0 =C2=A0 =C2=A0case WAIT_TIMEOUT:
>     -=C2=A0 =C2=A0 =C2=A0 =C2=A0 m_xeniface.CheckXenTime();
>     +=C2=A0 =C2=A0 =C2=A0 =C2=A0 m_xeniface.CheckXenTime(false);
>      =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0__fallthrough;
>      =C2=A0 =C2=A0 =C2=A0case WAIT_IO_COMPLETION:
>      =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0m_xeniface.CheckSuspend();
>     diff --git a/src/xenagent/xenifacedevice.cpp b/src/xenagent/
>     xenifacedevice.cpp
>     index 69a584b..c476ccd 100644
>     --- a/src/xenagent/xenifacedevice.cpp
>     +++ b/src/xenagent/xenifacedevice.cpp
>     @@ -40,6 +40,14 @@
>      =C2=A0#include "xeniface_ioctls.h"
>      =C2=A0#include "messages.h"
> 
>     +#define SERVICES_KEY "SYSTEM\\CurrentControlSet\\Services"
>     +
>     +#define SERVICE_KEY(_Service) \
>     +=C2=A0 =C2=A0 =C2=A0 =C2=A0 SERVICES_KEY ## "\\" ## _Service
>     +
>     +#define PARAMETERS_KEY(_Service) \
>     +=C2=A0 =C2=A0 =C2=A0 =C2=A0 SERVICE_KEY(_Service) ## "\\Parameters"
>     +
>      =C2=A0CXenIfaceDevice::CXenIfaceDevice(const wchar_t* path) : CDevic=
e(path)
>      =C2=A0{}
> 
>     @@ -213,7 +221,7 @@
>     CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent* agent) :
>     CDeviceList(GUID_IN
>      =C2=A0 =C2=A0 =C2=A0if (m_agent->ConvDevicePresent())
>      =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0StartSlateModeWatch(device);
> 
>     -=C2=A0 =C2=A0 SetXenTime(device);
>     +=C2=A0 =C2=A0 SetXenTime(device, false);
>      =C2=A0}
> 
>      =C2=A0/*virtual*/ void CXenIfaceDeviceList::OnDeviceRemoved(CDevice*=
 dev)
>     @@ -339,7 +347,7 @@ bool CXenIfaceDeviceList::CheckShutdown()
>      =C2=A0 =C2=A0 =C2=A0return false;
>      =C2=A0}
> 
>     -void CXenIfaceDeviceList::CheckXenTime()
>     +void CXenIfaceDeviceList::CheckXenTime(bool forced)
>      =C2=A0{
>      =C2=A0 =C2=A0 =C2=A0CCritSec crit(&m_crit);
>      =C2=A0 =C2=A0 =C2=A0CXenIfaceDevice* device =3D (CXenIfaceDevice*)Ge=
tFirstDevice();
>     @@ -347,7 +355,7 @@ void CXenIfaceDeviceList::CheckXenTime()
>      =C2=A0 =C2=A0 =C2=A0if (device =3D=3D NULL)
>      =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;
> 
>     -=C2=A0 =C2=A0 SetXenTime(device);
>     +=C2=A0 =C2=A0 SetXenTime(device, forced);
>      =C2=A0}
> 
>      =C2=A0void CXenIfaceDeviceList::CheckSuspend()
>     @@ -485,10 +493,26 @@ void
>     CXenIfaceDeviceList::AcquireShutdownPrivilege()
>      =C2=A0 =C2=A0 =C2=A0CloseHandle(token);
>      =C2=A0}
> 
>     -void CXenIfaceDeviceList::SetXenTime(CXenIfaceDevice* device)
>     +void CXenIfaceDeviceList::SetXenTime(CXenIfaceDevice* device, bool
>     forced)
>      =C2=A0{
>      =C2=A0 =C2=A0 =C2=A0bool local;
> 
>     +=C2=A0 =C2=A0 if (!forced) {
>     +=C2=A0 =C2=A0 =C2=A0 =C2=A0 DWORD=C2=A0 =C2=A0disable =3D 0;
>     +=C2=A0 =C2=A0 =C2=A0 =C2=A0 DWORD=C2=A0 =C2=A0size =3D sizeof(disabl=
e);
>     +=C2=A0 =C2=A0 =C2=A0 =C2=A0 LSTATUS lstatus;
>     +
>     +=C2=A0 =C2=A0 =C2=A0 =C2=A0 lstatus =3D RegGetValue(HKEY_LOCAL_MACHI=
NE,
>     +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 TEXT(PARAMETERS_KEY(__MODULE__)),
>     +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 TEXT("DisableTimeSync"),
>     +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 RRF_RT_DWORD,
>     +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 NULL,
>     +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &disable,
>     +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &size);
>     +=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (lstatus =3D=3D ERROR_SUCCESS && disa=
ble)
>     +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return;
>     +=C2=A0 =C2=A0 }
>     +
>      =C2=A0 =C2=A0 =C2=A0FILETIME now =3D { 0 };
>      =C2=A0 =C2=A0 =C2=A0if (!device->SharedInfoGetTime(&now, &local))
>      =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;
>     diff --git a/src/xenagent/xenifacedevice.h b/src/xenagent/
>     xenifacedevice.h
>     index d85e469..8a89036 100644
>     --- a/src/xenagent/xenifacedevice.h
>     +++ b/src/xenagent/xenifacedevice.h
>     @@ -84,7 +84,7 @@ public:
> 
>      =C2=A0 =C2=A0 =C2=A0void Log(const char* message);
>      =C2=A0 =C2=A0 =C2=A0bool CheckShutdown();
>     -=C2=A0 =C2=A0 void CheckXenTime();
>     +=C2=A0 =C2=A0 void CheckXenTime(bool forced);
>      =C2=A0 =C2=A0 =C2=A0void CheckSuspend();
>      =C2=A0 =C2=A0 =C2=A0bool CheckSlateMode(std::string& mode);
>      =C2=A0 =C2=A0 =C2=A0void LogIfRebootPending();
>     @@ -95,7 +95,7 @@ private:
>      =C2=A0 =C2=A0 =C2=A0void StartSlateModeWatch(CXenIfaceDevice* device=
);
>      =C2=A0 =C2=A0 =C2=A0void StopSlateModeWatch(CXenIfaceDevice* device)=
;
>      =C2=A0 =C2=A0 =C2=A0void AcquireShutdownPrivilege();
>     -=C2=A0 =C2=A0 void SetXenTime(CXenIfaceDevice* device);
>     +=C2=A0 =C2=A0 void SetXenTime(CXenIfaceDevice* device, bool forced);
> 
>      =C2=A0private:
>      =C2=A0 =C2=A0 =C2=A0CXenAgent*=C2=A0 m_agent;
>     diff --git a/src/xeniface.inf b/src/xeniface.inf
>     index 07e2a91..3b54f2a 100644
>     --- a/src/xeniface.inf
>     +++ b/src/xeniface.inf
>     @@ -110,6 +110,10 @@ ServiceType=3D%SERVICE_WIN32_OWN_PROCESS%
>      =C2=A0StartType=3D%SERVICE_AUTO_START%
>      =C2=A0ErrorControl=3D%SERVICE_ERROR_NORMAL%
>      =C2=A0ServiceBinary=3D%11%
>     \xenagent_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMB=
ER@.exe
>     +AddReg=3DXenAgent_Parameters
>     +
>     +[XenAgent_Parameters]
>     +HKR,"Parameters",,0x00000010
> 
>      =C2=A0[XenAgent_EventLog]
>      =C2=A0AddReg=3DXenAgent_AddReg
>     -- 
>     2.50.0.windows.2
> 
> 
> 
>     Ngoc Tu Dinh | Vates XCP-ng Developer
> 
>     XCP-ng & Xen Orchestra - Vates solutions
> 
>     web: https://vates.tech <https://vates.tech>
> 



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From win-pv-devel-bounces@lists.xenproject.org Wed Jul 09 08:23:59 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 09 Jul 2025 08:23:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1037827.1410341 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uZQ5u-0006jy-7U; Wed, 09 Jul 2025 08:23:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1037827.1410341; Wed, 09 Jul 2025 08:23:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uZQ5u-0006jr-4i; Wed, 09 Jul 2025 08:23:58 +0000
Received: by outflank-mailman (input) for mailman id 1037827;
 Wed, 09 Jul 2025 08:23:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cZVx=ZW=bounce.vates.tech=bounce-md_30504962.686e2716.v1-19cc7f65ebc1473ba5a68b5f83636fc7@srs-se1.protection.inumbo.net>)
 id 1uZQ5t-0006jl-3n
 for win-pv-devel@lists.xenproject.org; Wed, 09 Jul 2025 08:23:57 +0000
Received: from mail124.us4.mandrillapp.com (mail124.us4.mandrillapp.com
 [205.201.136.124]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0afc650c-5c9e-11f0-b894-0df219b8e170;
 Wed, 09 Jul 2025 10:23:51 +0200 (CEST)
Received: from pmta15.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail124.us4.mandrillapp.com (Mailchimp) with ESMTP id 4bcWGG0QSTzKsccsJ
 for <win-pv-devel@lists.xenproject.org>; Wed,  9 Jul 2025 08:23:50 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 19cc7f65ebc1473ba5a68b5f83636fc7; Wed, 09 Jul 2025 08:23:50 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0afc650c-5c9e-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1752049430; x=1752319430;
	bh=XMCSd7WH6NIeDDEVe8xKgypz7Xs7gDSRXjApeR2U1Ts=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=mg9zCjiiI+qF2RRCtxLQIZSXJZB5Uypxmu/9UMgUTUzK9EQexIzCvpTRdHwSBhkZO
	 SSJcmas+GFOLLoRqtXgV/sAMT0RZ2zCHSEoWmSzt2uNUeH2X0qd9czaVIM3y7bCMlG
	 8O4IFZ2e3vpek+KZgwKuSW4wnXvbSHPehLiMyZnPwlI20HJhL6quxpB+S3efVhG1sp
	 H/m8sV0bvRPVPni0sefkH64aAaWx7adP76GUHGKLHNy8p5Bpo/vQ93Aki8ifVv2RnR
	 S235JI6MKuQG2VhkRGZdVFlLBGxwCykmcCEPLIzwJyv6IIfhj7KubLSHkn+uge4jkQ
	 i7tqZw9eypkQw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1752049430; x=1752309930; i=ngoc-tu.dinh@vates.tech;
	bh=XMCSd7WH6NIeDDEVe8xKgypz7Xs7gDSRXjApeR2U1Ts=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=1bmKhbxyPFEZBfaYjjyTISREUoQEjN1lPIuDEYiyv+3yTiqkgxDib7Weck1JBBHrR
	 TzZcGnfYbT2fGohNqz9plJ/Ru89F/ssvzDHLQB4MvyKpABLXAA+8YutbHy0lrE1kiP
	 DaxDJK93k8IDScfIbH4wFGw5AarpM0elGahQ/Qx5khlLMd4VWAXWeolmYw8sfnzi+Y
	 pKm2ZjfOGCncSRazE1uYKm7rb2SHFKZQfXODFsmpmGOV90q9nzuyTUvsaPY/+nPMfh
	 2GHPVSLSIUZC9eBhCNa9ITZV8JssZN20aGM2lJOFiOts5eldYoH54XGgIrcxUiDXik
	 34XKZpRDx1LMA==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[XENIFACE=20PATCH=20v2]=20xenagent:=20Add=20TimeSyncMode=20option?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1752049427412
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250709082339.341-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.19cc7f65ebc1473ba5a68b5f83636fc7?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250709:md
Date: Wed, 09 Jul 2025 08:23:50 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

xenagent's time sync mechanism interferes with w32time's own time sync,
especially in a domain environment where domain members are expected to
follow the PDCe.

Add a REG_DWORD value TimeSyncMode in xenagent. Setting this value to 0
will disable the XenTime sync.
Note that this setting is not honored during time sync attempts after
resume.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 src/xenagent/service.cpp        |  4 ++--
 src/xenagent/xenifacedevice.cpp | 31 +++++++++++++++++++++++++++----
 src/xenagent/xenifacedevice.h   |  4 ++--
 3 files changed, 31 insertions(+), 8 deletions(-)

diff --git a/src/xenagent/service.cpp b/src/xenagent/service.cpp
index 535d761..6ef7b1a 100644
--- a/src/xenagent/service.cpp
+++ b/src/xenagent/service.cpp
@@ -216,7 +216,7 @@ bool CXenAgent::ServiceMainLoop()
 
     case WAIT_OBJECT_0+2:
         ResetEvent(m_xeniface.m_evt_suspend);
-        m_xeniface.CheckXenTime();
+        m_xeniface.CheckXenTime(true);
         m_xeniface.CheckSuspend();
         return true; // continue loop
 
@@ -230,7 +230,7 @@ bool CXenAgent::ServiceMainLoop()
         return true; // continue loop
     }
     case WAIT_TIMEOUT:
-        m_xeniface.CheckXenTime();
+        m_xeniface.CheckXenTime(false);
         __fallthrough;
     case WAIT_IO_COMPLETION:
         m_xeniface.CheckSuspend();
diff --git a/src/xenagent/xenifacedevice.cpp b/src/xenagent/xenifacedevice.cpp
index 69a584b..7b45c8c 100644
--- a/src/xenagent/xenifacedevice.cpp
+++ b/src/xenagent/xenifacedevice.cpp
@@ -40,6 +40,13 @@
 #include "xeniface_ioctls.h"
 #include "messages.h"
 
+#define SERVICES_KEY "SYSTEM\\CurrentControlSet\\Services"
+
+#define SERVICE_KEY(_Service) \
+        SERVICES_KEY ## "\\" ## _Service
+
+#define TIME_SYNC_MODE_DISABLED 0
+
 CXenIfaceDevice::CXenIfaceDevice(const wchar_t* path) : CDevice(path)
 {}
 
@@ -213,7 +220,7 @@ CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent* agent) : CDeviceList(GUID_IN
     if (m_agent->ConvDevicePresent())
         StartSlateModeWatch(device);
 
-    SetXenTime(device);
+    SetXenTime(device, false);
 }
 
 /*virtual*/ void CXenIfaceDeviceList::OnDeviceRemoved(CDevice* dev)
@@ -339,7 +346,7 @@ bool CXenIfaceDeviceList::CheckShutdown()
     return false;
 }
 
-void CXenIfaceDeviceList::CheckXenTime()
+void CXenIfaceDeviceList::CheckXenTime(bool forced)
 {
     CCritSec crit(&m_crit);
     CXenIfaceDevice* device = (CXenIfaceDevice*)GetFirstDevice();
@@ -347,7 +354,7 @@ void CXenIfaceDeviceList::CheckXenTime()
     if (device == NULL)
         return;
 
-    SetXenTime(device);
+    SetXenTime(device, forced);
 }
 
 void CXenIfaceDeviceList::CheckSuspend()
@@ -485,10 +492,26 @@ void CXenIfaceDeviceList::AcquireShutdownPrivilege()
     CloseHandle(token);
 }
 
-void CXenIfaceDeviceList::SetXenTime(CXenIfaceDevice* device)
+void CXenIfaceDeviceList::SetXenTime(CXenIfaceDevice* device, bool forced)
 {
     bool local;
 
+    if (!forced) {
+        DWORD   mode = 0;
+        DWORD   size = sizeof(mode);
+        LSTATUS lstatus;
+
+        lstatus = RegGetValue(HKEY_LOCAL_MACHINE,
+                              TEXT(SERVICE_KEY(__MODULE__)),
+                              TEXT("TimeSyncMode"),
+                              RRF_RT_DWORD,
+                              NULL,
+                              &mode,
+                              &size);
+        if (lstatus == ERROR_SUCCESS && mode == TIME_SYNC_MODE_DISABLED)
+            return;
+    }
+
     FILETIME now = { 0 };
     if (!device->SharedInfoGetTime(&now, &local))
         return;
diff --git a/src/xenagent/xenifacedevice.h b/src/xenagent/xenifacedevice.h
index d85e469..8a89036 100644
--- a/src/xenagent/xenifacedevice.h
+++ b/src/xenagent/xenifacedevice.h
@@ -84,7 +84,7 @@ public:
 
     void Log(const char* message);
     bool CheckShutdown();
-    void CheckXenTime();
+    void CheckXenTime(bool forced);
     void CheckSuspend();
     bool CheckSlateMode(std::string& mode);
     void LogIfRebootPending();
@@ -95,7 +95,7 @@ private:
     void StartSlateModeWatch(CXenIfaceDevice* device);
     void StopSlateModeWatch(CXenIfaceDevice* device);
     void AcquireShutdownPrivilege();
-    void SetXenTime(CXenIfaceDevice* device);
+    void SetXenTime(CXenIfaceDevice* device, bool forced);
 
 private:
     CXenAgent*  m_agent;
-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Wed Jul 09 15:46:48 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 09 Jul 2025 15:46:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1038412.1410895 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uZX0Q-0004WK-1A; Wed, 09 Jul 2025 15:46:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1038412.1410895; Wed, 09 Jul 2025 15:46:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uZX0P-0004WD-Ue; Wed, 09 Jul 2025 15:46:45 +0000
Received: by outflank-mailman (input) for mailman id 1038412;
 Wed, 09 Jul 2025 15:46:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vAcG=ZW=bounce.vates.tech=bounce-md_30504962.686e8edc.v1-20efa3d16e7a4687a9c9c9be563332ea@srs-se1.protection.inumbo.net>)
 id 1uZX0O-0004W7-Ia
 for win-pv-devel@lists.xenproject.org; Wed, 09 Jul 2025 15:46:44 +0000
Received: from mail135-23.atl141.mandrillapp.com
 (mail135-23.atl141.mandrillapp.com [198.2.135.23])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e5f3055e-5cdb-11f0-b894-0df219b8e170;
 Wed, 09 Jul 2025 17:46:39 +0200 (CEST)
Received: from pmta14.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail135-23.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4bcj583hrMz35hcK8
 for <win-pv-devel@lists.xenproject.org>; Wed,  9 Jul 2025 15:46:36 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 20efa3d16e7a4687a9c9c9be563332ea; Wed, 09 Jul 2025 15:46:36 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e5f3055e-5cdb-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1752075996; x=1752345996;
	bh=4KbUUGduMvDPqxBQ8N9lDMGXNqHEX9lwCeZb1nz1wcY=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=ilawizM1AvNvuc1OBxDsCDPyoZdUxeSEte6AgQFkk/xfWuqN7juZeGW2tthGTUqEu
	 gGmpCK8FygfBB1zluTW4IF43ThNSZAp6NlyPImJBFIuOQdULxl2XVYagHYsbA8QGb4
	 tAvIwekb/WlHlRYxW4VbEqo5ViVzNhaDHZPZFtMeKynrQYABaJ3X2z0zArqkHbXplB
	 Naq1hss9vhrH79eMPk8YALnHu4ngrJq332bopjMTfAbrBLZ4Xg61c0KDHJ88TbTqv0
	 jaunFKU5Fa7Ph6wLOJRMTDuyw1DyDJpR6h2n8vRni26i+Lacqt+jJL5uTtx7xS4HDv
	 ZQLPXoD4MIJ9Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1752075996; x=1752336496; i=ngoc-tu.dinh@vates.tech;
	bh=4KbUUGduMvDPqxBQ8N9lDMGXNqHEX9lwCeZb1nz1wcY=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=03/nMMvZOXOLBtE5+7+iAIQ+6XQVQPrXQCziJTg5XAuR70epB+qY8eEamGqbGyVer
	 i7DA5eVEZKmCaOtoJnPHRMgF7TAYUvPxLeGw95mOP5dvp3uChasZKm7/P46qDqw0he
	 HfYpvVJRfwxSwJaYWN2FSvlKRuNVPDlajFwUiiKGFe9856m5FfmmRjQaOf7sqXML2k
	 eJx5KmhILTErVNgU2ulbpH/Z2vZn2c2WWgxy4biPbu7RjZMDqL2jbjc3Z5RfjMUni/
	 NsyLte0rrXMZaX4RK6lY2M9SA7njB928aV8ha3huZJ1J0EIwKy/dSuQQUNkPtoc26A
	 xBRe8wDzdERWA==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[XENBUS=20PATCH]=20Add=20forced=20unplug=20support?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1752075995642
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250709154603.86-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.20efa3d16e7a4687a9c9c9be563332ea?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250709:md
Date: Wed, 09 Jul 2025 15:46:36 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Forced unplug aims to simplify driver servicing by, as its name implies,
forcefully unplugging emulated devices when a driver is present, rather
than when it's active.

Create a Registry key at CurrentControlSet\XEN\ForceUnplug. Drivers can
opt into forced unplug by creating an appropriate value (DISKS/NICS)
in this key.

Older drivers are not affected.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
Opting into forced unplug is totally optional. But it has the advantage
of not needing multiple reboots, and avoids situations where both the
emulated and PV drivers are running at the same time.
---
 src/xen/driver.c | 79 ++++++++++++++++++++++++++++++++++++++----------
 src/xen/driver.h |  5 +++
 src/xen/unplug.c | 13 ++++++--
 3 files changed, 79 insertions(+), 18 deletions(-)

diff --git a/src/xen/driver.c b/src/xen/driver.c
index b44753c..7b2621b 100644
--- a/src/xen/driver.c
+++ b/src/xen/driver.c
@@ -63,6 +63,7 @@ typedef struct _XEN_DRIVER {
     PLOG_DISPOSITION    QemuDisposition;
     HANDLE              ParametersKey;
     HANDLE              UnplugKey;
+    HANDLE              ForceUnplugKey;
     HANDLE              MemoryKey;
 } XEN_DRIVER, *PXEN_DRIVER;
 
@@ -144,6 +145,30 @@ DriverGetUnplugKey(
     return __DriverGetUnplugKey();
 }
 
+static FORCEINLINE VOID
+__DriverSetForceUnplugKey(
+    _In_opt_ HANDLE Key
+    )
+{
+    Driver.ForceUnplugKey = Key;
+}
+
+static FORCEINLINE HANDLE
+__DriverGetForceUnplugKey(
+    VOID
+    )
+{
+    return Driver.ForceUnplugKey;
+}
+
+HANDLE
+DriverGetForceUnplugKey(
+    VOID
+    )
+{
+    return __DriverGetForceUnplugKey();
+}
+
 static FORCEINLINE VOID
 __DriverSetMemoryKey(
     _In_opt_ HANDLE Key
@@ -500,6 +525,7 @@ DllInitialize(
     HANDLE                  ServiceKey;
     HANDLE                  ParametersKey;
     HANDLE                  UnplugKey;
+    HANDLE                  ForceUnplugKey;
     HANDLE                  MemoryKey;
     LOG_LEVEL               LogLevel;
     NTSTATUS                status;
@@ -577,12 +603,21 @@ DllInitialize(
 
     __DriverSetUnplugKey(UnplugKey);
 
+    status = RegistryCreateSubKey(ServiceKey,
+                                  "ForceUnplug",
+                                  REG_OPTION_NON_VOLATILE,
+                                  &ForceUnplugKey);
+    if (!NT_SUCCESS(status))
+        goto fail6;
+
+    __DriverSetForceUnplugKey(ForceUnplugKey);
+
     status = RegistryCreateSubKey(ServiceKey,
                                   "Memory",
                                   REG_OPTION_VOLATILE,
                                   &MemoryKey);
     if (!NT_SUCCESS(status))
-        goto fail6;
+        goto fail7;
 
     __DriverSetMemoryKey(MemoryKey);
 
@@ -590,27 +625,27 @@ DllInitialize(
 
     status = AcpiInitialize();
     if (!NT_SUCCESS(status))
-        goto fail7;
+        goto fail8;
 
     status = SystemInitialize();
     if (!NT_SUCCESS(status))
-        goto fail8;
+        goto fail9;
 
     status = BugCheckInitialize();
     if (!NT_SUCCESS(status))
-        goto fail9;
+        goto fail10;
 
     status = ModuleInitialize();
     if (!NT_SUCCESS(status))
-        goto fail10;
+        goto fail11;
 
     status = ProcessInitialize();
     if (!NT_SUCCESS(status))
-        goto fail11;
+        goto fail12;
 
     status = UnplugInitialize();
     if (!NT_SUCCESS(status))
-        goto fail12;
+        goto fail13;
 
     RegistryCloseKey(ServiceKey);
 
@@ -618,39 +653,45 @@ DllInitialize(
 
     return STATUS_SUCCESS;
 
+fail13:
+    Error("fail13\n");
+
+    ProcessTeardown();
+
 fail12:
     Error("fail12\n");
 
-    ProcessTeardown();
+    ModuleTeardown();
 
 fail11:
     Error("fail11\n");
 
-    ModuleTeardown();
+    BugCheckTeardown();
 
 fail10:
     Error("fail10\n");
 
-    BugCheckTeardown();
+    SystemTeardown();
 
 fail9:
     Error("fail9\n");
 
-    SystemTeardown();
+    AcpiTeardown();
 
 fail8:
     Error("fail8\n");
 
-    AcpiTeardown();
-
-fail7:
-    Error("fail7\n");
-
     HypercallTeardown();
 
     RegistryCloseKey(MemoryKey);
     __DriverSetMemoryKey(NULL);
 
+fail7:
+    Error("fail7\n");
+
+    RegistryCloseKey(ForceUnplugKey);
+    __DriverSetForceUnplugKey(NULL);
+
 fail6:
     Error("fail6\n");
 
@@ -698,6 +739,7 @@ DllUnload(
     )
 {
     HANDLE  MemoryKey;
+    HANDLE  ForceUnplugKey;
     HANDLE  UnplugKey;
     HANDLE  ParametersKey;
 
@@ -722,6 +764,11 @@ DllUnload(
     RegistryCloseKey(MemoryKey);
     __DriverSetMemoryKey(NULL);
 
+    ForceUnplugKey = __DriverGetForceUnplugKey();
+
+    RegistryCloseKey(ForceUnplugKey);
+    __DriverSetForceUnplugKey(NULL);
+
     UnplugKey = __DriverGetUnplugKey();
 
     RegistryCloseKey(UnplugKey);
diff --git a/src/xen/driver.h b/src/xen/driver.h
index 21df779..6851e01 100644
--- a/src/xen/driver.h
+++ b/src/xen/driver.h
@@ -43,6 +43,11 @@ DriverGetUnplugKey(
     VOID
     );
 
+extern HANDLE
+DriverGetForceUnplugKey(
+    VOID
+    );
+
 extern PMDL
 DriverGetNamedPages(
     _In_ PSTR   Name,
diff --git a/src/xen/unplug.c b/src/xen/unplug.c
index dbd9a2e..282ed93 100644
--- a/src/xen/unplug.c
+++ b/src/xen/unplug.c
@@ -266,6 +266,7 @@ UnplugSetRequest(
 {
     PUNPLUG_CONTEXT     Context = &UnplugContext;
     HANDLE              UnplugKey;
+    HANDLE              ForceUnplugKey;
     PSTR                ValueName;
     PSTR                EnumName;
     ULONG               Value;
@@ -277,6 +278,7 @@ UnplugSetRequest(
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
 
     UnplugKey = DriverGetUnplugKey();
+    ForceUnplugKey = DriverGetForceUnplugKey();
 
     switch (Type) {
     case UNPLUG_DISKS:
@@ -293,17 +295,24 @@ UnplugSetRequest(
         ASSERT(FALSE);
     }
 
+    status = RegistryQueryDwordValue(ForceUnplugKey,
+                                     ValueName,
+                                     &Value);
+    if (NT_SUCCESS(status) && Value)
+        goto unplug;
+
     status = RegistryQueryDwordValue(UnplugKey,
                                      ValueName,
                                      &Value);
     if (!NT_SUCCESS(status))
         goto done;
 
-    (VOID) RegistryDeleteValue(UnplugKey, ValueName);
-
     if (Value != 0)
         (VOID) UnplugCheckEnumKey(EnumName, &Value);
 
+unplug:
+    (VOID) RegistryDeleteValue(UnplugKey, ValueName);
+
     Info("%s (%u)\n", ValueName, Value);
 
     AcquireHighLock(&Context->Lock, &Irql);
-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Wed Jul 09 15:47:15 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 09 Jul 2025 15:47:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1038416.1410898 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uZX0t-0004aL-3X; Wed, 09 Jul 2025 15:47:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1038416.1410898; Wed, 09 Jul 2025 15:47:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uZX0t-0004aE-0l; Wed, 09 Jul 2025 15:47:15 +0000
Received: by outflank-mailman (input) for mailman id 1038416;
 Wed, 09 Jul 2025 15:47:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hNLx=ZW=bounce.vates.tech=bounce-md_30504962.686e8eff.v1-b7b52182cc5743ed80c32f862675861c@srs-se1.protection.inumbo.net>)
 id 1uZX0s-0004Zi-8b
 for win-pv-devel@lists.xenproject.org; Wed, 09 Jul 2025 15:47:14 +0000
Received: from mail124.us4.mandrillapp.com (mail124.us4.mandrillapp.com
 [205.201.136.124]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id faa0793d-5cdb-11f0-a317-13f23c93f187;
 Wed, 09 Jul 2025 17:47:12 +0200 (CEST)
Received: from pmta15.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail124.us4.mandrillapp.com (Mailchimp) with ESMTP id 4bcj5q29wCzKsbnMQ
 for <win-pv-devel@lists.xenproject.org>; Wed,  9 Jul 2025 15:47:11 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 b7b52182cc5743ed80c32f862675861c; Wed, 09 Jul 2025 15:47:11 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: faa0793d-5cdb-11f0-a317-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1752076031; x=1752346031;
	bh=v0ZsLlWJ+MV1qUjLkHUsIyaYBjX0nVsnnVjzOXRyZio=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=UIpPWIXl2Fgm8rpZCti6GAnGgOj6QNTUrU8x9mB62vwk74kvzT8opKIr5OHPcqANM
	 C4kU7uxBxuVihFTYe0dyW6o3Wv3oCC/ZFQSlK5mzG76FhIYqNalu4SjaVwjolOPOeP
	 FOb43g+BAD+5iSVsXVCGKjJjfujN83ruErnwea3VLGXP9aH9MYduBIEwlN9vDGMVZN
	 QnSDI1A5Rk1oE9zBtZcOfr+3OgRMHiDh5S45cvB6F9+L0CsViZUf6rHlF95nOQt8xM
	 k7aOq3t7YEw76vICd0dzN8Pg2BnDI2XZEbtEzLzWmeQNQT0hwwFz621bM0695vnBio
	 c6XAkjJJEFKyg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1752076031; x=1752336531; i=ngoc-tu.dinh@vates.tech;
	bh=v0ZsLlWJ+MV1qUjLkHUsIyaYBjX0nVsnnVjzOXRyZio=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=b4sqiCCKTidJN+EiCi7HJXxcamJe+EDf/bF/xUZMbB2iPop3dhoH3UvFXnzReqPdX
	 FDPln4gZkjkUpIrkp9zZop74fdayTf1p2K3tD2G18DGycydr24Z1EzBu+tOz0ZePOd
	 HDQCHG74o6UUgfftu35dKLFzxipQ0HTb1iDrPIlIQE/Bt+GIXBi6mjwEjDPP7e64Rq
	 qChkehD8efpBh76kyMpA41bgNbh7wa5PcvlDEPtlX5kw4aQsGn3xx+WD7h6s2YqX3H
	 e6cT4QcCaRpCLDsGbxjJFSsQRHJgHP1dzE+VlMUGOSvmSQC9pGYo3vwWnXHoSSeQWu
	 S+Dr1zpu6X+qw==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[XENVBD=20PATCH]=20Opt=20into=20forced=20unplug?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1752076030476
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250709154703.1090-1-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250709154603.86-1-ngoc-tu.dinh@vates.tech>
References: <20250709154603.86-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.b7b52182cc5743ed80c32f862675861c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250709:md
Date: Wed, 09 Jul 2025 15:47:11 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 src/xenvbd.inf | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/xenvbd.inf b/src/xenvbd.inf
index dfde613..a395b2d 100644
--- a/src/xenvbd.inf
+++ b/src/xenvbd.inf
@@ -106,6 +106,7 @@ HKR,"Parameters","multi-queue-max-queues",0x00010001,0x00000002
 
 [XenVbd_Unplug]
 HKLM,%UnplugKey%,"DISKS",0x00010001,0
+HKLM,%ForceUnplugKey%,"DISKS",0x00010001,1
 
 [XenVbd_Extras]
 HKLM,%PnpKey%,"DisableCDDB",0x00010001,0
@@ -120,6 +121,7 @@ DiskDesc = "@PRODUCT_NAME@ PV Storage Host Adapter Package"
 XenVbdName= "@PRODUCT_NAME@ PV Storage Host Adapter"
 XenDiskName= "@PRODUCT_NAME@ PV Storage Filter"
 UnplugKey="SYSTEM\CurrentControlSet\Services\XEN\Unplug"
+ForceUnplugKey="SYSTEM\CurrentControlSet\Services\XEN\ForceUnplug"
 PnpKey="SYSTEM\CurrentControlSet\Control\Pnp"
 PartMgrKey="SYSTEM\CurrentControlSet\Services\PartMgr\Parameters"
 DiskKey="SYSTEM\CurrentControlSet\Services\Disk"
-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Wed Jul 09 15:47:23 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 09 Jul 2025 15:47:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1038419.1410903 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uZX11-0004dP-5a; Wed, 09 Jul 2025 15:47:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1038419.1410903; Wed, 09 Jul 2025 15:47:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uZX11-0004dG-2n; Wed, 09 Jul 2025 15:47:23 +0000
Received: by outflank-mailman (input) for mailman id 1038419;
 Wed, 09 Jul 2025 15:47:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yTDf=ZW=bounce.vates.tech=bounce-md_30504962.686e8f07.v1-66519f3f32934ddd9bc341f3e938dd5a@srs-se1.protection.inumbo.net>)
 id 1uZX10-0004W7-GW
 for win-pv-devel@lists.xenproject.org; Wed, 09 Jul 2025 15:47:22 +0000
Received: from mail135-23.atl141.mandrillapp.com
 (mail135-23.atl141.mandrillapp.com [198.2.135.23])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ff81e92b-5cdb-11f0-b894-0df219b8e170;
 Wed, 09 Jul 2025 17:47:21 +0200 (CEST)
Received: from pmta14.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail135-23.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4bcj5z4tWDz35hcKM
 for <win-pv-devel@lists.xenproject.org>; Wed,  9 Jul 2025 15:47:19 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 66519f3f32934ddd9bc341f3e938dd5a; Wed, 09 Jul 2025 15:47:19 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff81e92b-5cdb-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1752076039; x=1752346039;
	bh=MDNOSkNvp4gufOcEVhNNDRoqsdPyzXiMzaqBf14NC4U=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=K39kcklvJyAInt0EP9VERKvOXurMBF7CGf59LieHsf1ZvmITalLJSRUNDt/dtay4B
	 kh/pUfuj7D4n22w2XbU5vBnUZakb5n/BXkLxwGX/RrovnKB+s/HuiLKLrm5s0bowDL
	 lRvKyNPmdjcrTuk9uE01C8Xrt20dKhEJniazkVYoJUnZSzzSP7q0Yc8iPbWFI1MDV1
	 NqN82DpCq124oI3Nu82XPdQUwZgDgVGqX9XjnLWEmDIjtwImqFOXzQD0oF1vLhSwHz
	 GaNxF8gHTuW/4Gy2+EMKSJd8ysJ2j1LsBH1U7OxTokSsJqt6xL2z/UXmjbMKKXRmvX
	 qDx8WOia4QiIg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1752076039; x=1752336539; i=ngoc-tu.dinh@vates.tech;
	bh=MDNOSkNvp4gufOcEVhNNDRoqsdPyzXiMzaqBf14NC4U=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=EBtrBjCafloLhxvGtyqx4rh7z6zyvOmoFjSeJUHQw5EWrL5l5NXuQ2EvNhqPucbL5
	 rAZFhnJXVZvQYEOIsC8am2z6ORC08exEUrdWRUU592xEcx3Mi408k/VvOLxIdzucjp
	 xNms76LcEewNl3AlwsUnHFoLVi907YCh9PTKM2iIWhn5IInVWtPGvf5biP1bgf31yG
	 KXU1ZLguxAvnVLNT8rdPDodvD9Q5eVJHwoA8N37z8xmdpAud9iFPEPVJmy37QmTBaN
	 uBmmzkLBETDEL6SW4+8/CW37xS90sMDG4mtsha32ar7cwYTNQ31D52Z0s+RTLEFw7U
	 brXEXuVY7MXpA==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[XENVIF=20PATCH]=20Opt=20into=20forced=20unplug?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1752076038985
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250709154715.1300-1-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250709154603.86-1-ngoc-tu.dinh@vates.tech>
References: <20250709154603.86-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.66519f3f32934ddd9bc341f3e938dd5a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250709:md
Date: Wed, 09 Jul 2025 15:47:19 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 src/xenvif.inf | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/xenvif.inf b/src/xenvif.inf
index 0430f04..0cc9b06 100644
--- a/src/xenvif.inf
+++ b/src/xenvif.inf
@@ -87,6 +87,7 @@ HKR,"Parameters","FrontendMaxQueues",0x00010001,0x00000008
 
 [XenVif_Unplug]
 HKLM,%UnplugKey%,"NICS",0x00010001,0
+HKLM,%ForceUnplugKey%,"NICS",0x00010001,1
 
 [Strings] 
 
@@ -94,6 +95,7 @@ Vendor="@VENDOR_NAME@"
 DiskDesc="@PRODUCT_NAME@ PV Network Class Package"
 XenVifName="@PRODUCT_NAME@ PV Network Class"
 UnplugKey="SYSTEM\CurrentControlSet\Services\XEN\Unplug"
+ForceUnplugKey="SYSTEM\CurrentControlSet\Services\XEN\ForceUnplug"
 
 SERVICE_BOOT_START=0x0 
 SERVICE_SYSTEM_START=0x1 
-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Thu Jul 10 08:04:35 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 10 Jul 2025 08:04:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1039168.1411123 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uZmGf-0000BB-Cx; Thu, 10 Jul 2025 08:04:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1039168.1411123; Thu, 10 Jul 2025 08:04:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uZmGf-0000B4-AI; Thu, 10 Jul 2025 08:04:33 +0000
Received: by outflank-mailman (input) for mailman id 1039168;
 Thu, 10 Jul 2025 08:04:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I2wd=ZX=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1uZmGe-0000Ar-14
 for win-pv-devel@lists.xenproject.org; Thu, 10 Jul 2025 08:04:32 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7fbd060a-5d64-11f0-b894-0df219b8e170;
 Thu, 10 Jul 2025 10:04:27 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-553e5df44f8so577119e87.3
 for <win-pv-devel@lists.xenproject.org>; Thu, 10 Jul 2025 01:04:27 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7fbd060a-5d64-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1752134666; x=1752739466; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=DXekO0RTBTPU8kV6CNeWj7FGwNhhIZOSovyCTOXDGvo=;
        b=CzipKf+lp5PTTeNnWZnQYk+3eU0qSzxi9PSdyx07FFA8s1k8peYrE2O4TIBFgUKq7e
         5IzjCBYQguYPuKTzV/6ZJUFWV5Up+Maj1CGZUKWigf2lPInfCNad3V7CltHQFWRdFXvU
         I0UXk/bwSjfvDMXS1jWid9eaYWY2hIaGkavSw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1752134666; x=1752739466;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=DXekO0RTBTPU8kV6CNeWj7FGwNhhIZOSovyCTOXDGvo=;
        b=FLP3mY2O47Fh9mm/3ZO1gUdoTNyxCzwZj2UU6ba8tuHq9pVITkYL4nJjToJBRPoWg9
         0Z0iyoB82cqLYj6goep6OAKako9LEMIu4onj4IyRlViY7kcKoak7fVCLvGAmb0O5wPTq
         D3HzPZkdtLyXAMwW75qG+Wf/DnwC3V/5JHUwHEcbirw+6qfz5hw4zYVrLmWeopfLxqDa
         MM+npHTN4CMRBxJfkLjc2Ii9i5ZfINdFlbrbzziPCn/VrLZ/1YKIrTeOsxJKdPECMAd9
         l/Fhi5Z0hK+qkzf05F12hs6EKBIoflLZidxOy/3W/NWo7yE7c/e6OPa+9CvV9FK+6DIa
         pgXg==
X-Gm-Message-State: AOJu0YxbyrowctzlXFoRFqVr3ft8vRw1HojlXPaBG6vv3sQuE6u6HT8M
	GE6TiCEizfuzPbva72MRGAsexhvENf8FnOvHl6VV+dInlnE/RDTYMS5hEDothPN99MG/Ag4z8F/
	GBiM2B2dWdWy/2Nf1Z9OOVzCTkK3/jWW8N6+Jl7gg
X-Gm-Gg: ASbGncvJ9U5Ti3fGMkJCWf5Um3CRHHu4paLlYT++J6y7GUhQylIYBxvdZz7NkAt4BGG
	TV7gib+EeEgEMadgILENuF8pXYVxy766gPk+xT9C3leTd8nJRf59QgGbCc5VO24Y2lpbLdGhgsr
	CjqaxD+p6uxJhij6QjRRHLqf2pkyXbzr8Lkf01Dt1JrCU=
X-Google-Smtp-Source: AGHT+IFx2QOTQl078Sr4Z0Hwe6a8nIjwuO9YB5yel6uAPp4iMP30Dm0Xb5vEQ36ZEix8Y0JWbXT7ldpQPIcZlniD57A=
X-Received: by 2002:a05:6512:1248:b0:553:a4cf:2106 with SMTP id
 2adb3069b0e04-55935b5c48fmr491438e87.57.1752134665955; Thu, 10 Jul 2025
 01:04:25 -0700 (PDT)
MIME-Version: 1.0
References: <20250709154603.86-1-ngoc-tu.dinh@vates.tech> <20250709154715.1300-1-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250709154715.1300-1-ngoc-tu.dinh@vates.tech>
From: Owen Smith <owen.smith@cloud.com>
Date: Thu, 10 Jul 2025 09:04:14 +0100
X-Gm-Features: Ac12FXwkD1oiyZiEDJnkw1s6B5p6Q72IPCpbFeX6WC09avk_K5i31x-6FQ_MOj4
Message-ID: <CAC_UY88tNWBXYw4KCAu0AGBeLwAzH7WQ03uK9nq-wxpFrRt-Yw@mail.gmail.com>
Subject: Re: [XENVIF PATCH] Opt into forced unplug
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="0000000000005d74f806398ea491"

--0000000000005d74f806398ea491
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Should this be in xennet's inf?
It would be possible to install xenbus and xenvif, then reboot and have
force-unplugged the emulated network without completing the install of
xennet which may now be inaccessible

Owen

On Wed, Jul 9, 2025 at 4:47=E2=80=AFPM Tu Dinh <ngoc-tu.dinh@vates.tech> wr=
ote:

> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
> ---
>  src/xenvif.inf | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/src/xenvif.inf b/src/xenvif.inf
> index 0430f04..0cc9b06 100644
> --- a/src/xenvif.inf
> +++ b/src/xenvif.inf
> @@ -87,6 +87,7 @@
> HKR,"Parameters","FrontendMaxQueues",0x00010001,0x00000008
>
>  [XenVif_Unplug]
>  HKLM,%UnplugKey%,"NICS",0x00010001,0
> +HKLM,%ForceUnplugKey%,"NICS",0x00010001,1
>
>  [Strings]
>
> @@ -94,6 +95,7 @@ Vendor=3D"@VENDOR_NAME@"
>  DiskDesc=3D"@PRODUCT_NAME@ PV Network Class Package"
>  XenVifName=3D"@PRODUCT_NAME@ PV Network Class"
>  UnplugKey=3D"SYSTEM\CurrentControlSet\Services\XEN\Unplug"
> +ForceUnplugKey=3D"SYSTEM\CurrentControlSet\Services\XEN\ForceUnplug"
>
>  SERVICE_BOOT_START=3D0x0
>  SERVICE_SYSTEM_START=3D0x1
> --
> 2.50.1.windows.1
>
>
>
> Ngoc Tu Dinh | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech
>
>

--0000000000005d74f806398ea491
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">Should this be in xennet&#39;s inf?</div><div class=3D"gmail_default" st=
yle=3D"font-family:monospace">It would be possible to install xenbus and xe=
nvif, then reboot and have force-unplugged the emulated network without com=
pleting the install of xennet which may now be inaccessible</div><div class=
=3D"gmail_default" style=3D"font-family:monospace"><br></div><div class=3D"=
gmail_default" style=3D"font-family:monospace">Owen</div></div><br><div cla=
ss=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" class=3D"gmail_at=
tr">On Wed, Jul 9, 2025 at 4:47=E2=80=AFPM Tu Dinh &lt;ngoc-tu.dinh@vates.t=
ech&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0=
px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">S=
igned-off-by: Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt;<br>
---<br>
=C2=A0src/xenvif.inf | 2 ++<br>
=C2=A01 file changed, 2 insertions(+)<br>
<br>
diff --git a/src/xenvif.inf b/src/xenvif.inf<br>
index 0430f04..0cc9b06 100644<br>
--- a/src/xenvif.inf<br>
+++ b/src/xenvif.inf<br>
@@ -87,6 +87,7 @@ HKR,&quot;Parameters&quot;,&quot;FrontendMaxQueues&quot;,=
0x00010001,0x00000008<br>
<br>
=C2=A0[XenVif_Unplug]<br>
=C2=A0HKLM,%UnplugKey%,&quot;NICS&quot;,0x00010001,0<br>
+HKLM,%ForceUnplugKey%,&quot;NICS&quot;,0x00010001,1<br>
<br>
=C2=A0[Strings] <br>
<br>
@@ -94,6 +95,7 @@ Vendor=3D&quot;@VENDOR_NAME@&quot;<br>
=C2=A0DiskDesc=3D&quot;@PRODUCT_NAME@ PV Network Class Package&quot;<br>
=C2=A0XenVifName=3D&quot;@PRODUCT_NAME@ PV Network Class&quot;<br>
=C2=A0UnplugKey=3D&quot;SYSTEM\CurrentControlSet\Services\XEN\Unplug&quot;<=
br>
+ForceUnplugKey=3D&quot;SYSTEM\CurrentControlSet\Services\XEN\ForceUnplug&q=
uot;<br>
<br>
=C2=A0SERVICE_BOOT_START=3D0x0 <br>
=C2=A0SERVICE_SYSTEM_START=3D0x1 <br>
-- <br>
2.50.1.windows.1<br>
<br>
<br>
<br>
Ngoc Tu Dinh | Vates XCP-ng Developer<br>
<br>
XCP-ng &amp; Xen Orchestra - Vates solutions<br>
<br>
web: <a href=3D"https://vates.tech" rel=3D"noreferrer" target=3D"_blank">ht=
tps://vates.tech</a><br>
<br>
</blockquote></div>

--0000000000005d74f806398ea491--


From win-pv-devel-bounces@lists.xenproject.org Thu Jul 10 08:45:20 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 10 Jul 2025 08:45:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1039213.1411156 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uZmu6-0007Qj-PZ; Thu, 10 Jul 2025 08:45:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1039213.1411156; Thu, 10 Jul 2025 08:45:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uZmu6-0007Qc-Mu; Thu, 10 Jul 2025 08:45:18 +0000
Received: by outflank-mailman (input) for mailman id 1039213;
 Thu, 10 Jul 2025 08:45:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PUXe=ZX=bounce.vates.tech=bounce-md_30504962.686f7d94.v1-42ed54dc239243f7b683b7b582a40ba0@srs-se1.protection.inumbo.net>)
 id 1uZmu5-0007QS-3F
 for win-pv-devel@lists.xenproject.org; Thu, 10 Jul 2025 08:45:17 +0000
Received: from mail135-23.atl141.mandrillapp.com
 (mail135-23.atl141.mandrillapp.com [198.2.135.23])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2f3b5226-5d6a-11f0-b894-0df219b8e170;
 Thu, 10 Jul 2025 10:45:09 +0200 (CEST)
Received: from pmta14.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail135-23.atl141.mandrillapp.com (Mailchimp) with ESMTP id
 4bd7hN1btYz35hfgh
 for <win-pv-devel@lists.xenproject.org>; Thu, 10 Jul 2025 08:45:08 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 42ed54dc239243f7b683b7b582a40ba0; Thu, 10 Jul 2025 08:45:08 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2f3b5226-5d6a-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1752137108; x=1752407108;
	bh=vRibN4MhFPezoGpmc/4jGReXI2yqwRMrJdW+F4F+mdA=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=gcrR0wpbcd9Dok4ZgU+V/NtHR6dpGIHBMh+EInRXHEKPJ2CJLuA5h1IBL3dI+xKns
	 sJ2rHcasqu7Zf33HTOmjzVQ0vcmZeRjSZo1RB6tT/VVbZhWEFAIfKHmBvB7Oy+pHSP
	 legnb90V/btAg+EjSkLatjos7fsCht1EmoQ51BySkKp6ThQDQ3dv549Wrlwq5SciH6
	 JR3/eZf5Z38h26eZIytaKERlRpLTdCHqiALfzMUntEyNOKUqYz+05Pu3P0w2zCZMPA
	 Yg5AhihSVPRqixg+QiHSbAfrUnx+RIT93xXDNVnsUlLD83DYzWjgG5Gsrtki0P1J/2
	 V1BMB/E+OwrSw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1752137108; x=1752397608; i=ngoc-tu.dinh@vates.tech;
	bh=vRibN4MhFPezoGpmc/4jGReXI2yqwRMrJdW+F4F+mdA=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=EwuPuUwO+lY62kleIz189xeqoUNUFNK3upOnm/YiTPtFYp+qaPCWvBRNoOOAsbjAK
	 NOh/PACL+1xltpbLUUU/jK5l0BLkKI3lw0zEzuUFTWeCktEwuBEH+l+gf5u9IiibKR
	 9GViUVUlPDuBBYc2oWpAMVfBxJIIq7uon/3JWN82k/4qJPYLJxZbZRX1YYypofs+cp
	 dPLroNjI+NyXxD9C0obXLRiDRpdKRQquNasJtTpmyOVkoXhY+Dxamhibsm4HoDB85f
	 nZFEsKAtNDP38e3ghxdl/Qd19eYmoUtyQ8Ywl/A18L9H+pwLVHBlS0NB2SOh59Tc0T
	 fRlQbH3/+komA==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[XENVIF=20PATCH]=20Opt=20into=20forced=20unplug?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1752137107391
Message-Id: <7022f1ac-ca33-4a42-9548-d0502163aa83@vates.tech>
To: "Owen Smith" <owen.smith@cloud.com>
Cc: win-pv-devel@lists.xenproject.org
References: <20250709154603.86-1-ngoc-tu.dinh@vates.tech> <20250709154715.1300-1-ngoc-tu.dinh@vates.tech> <CAC_UY88tNWBXYw4KCAu0AGBeLwAzH7WQ03uK9nq-wxpFrRt-Yw@mail.gmail.com>
In-Reply-To: <CAC_UY88tNWBXYw4KCAu0AGBeLwAzH7WQ03uK9nq-wxpFrRt-Yw@mail.gmail.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.42ed54dc239243f7b683b7b582a40ba0?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250710:md
Date: Thu, 10 Jul 2025 08:45:08 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 10/07/2025 10:04, Owen Smith wrote:
> Should this be in xennet's inf?
> It would be possible to install xenbus and xenvif, then reboot and have 
> force-unplugged the emulated network without completing the install of 
> xennet which may now be inaccessible
> 
> Owen

I did some tests and it does make more sense that way. I'll prepare an 
opt-in for xennet instead.

> 
> On Wed, Jul 9, 2025 at 4:47=E2=80=AFPM Tu Dinh <ngoc-tu.dinh@vates.tech> =
wrote:
> 
>     Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
>     ---
>      =C2=A0src/xenvif.inf | 2 ++
>      =C2=A01 file changed, 2 insertions(+)
> 
>     diff --git a/src/xenvif.inf b/src/xenvif.inf
>     index 0430f04..0cc9b06 100644
>     --- a/src/xenvif.inf
>     +++ b/src/xenvif.inf
>     @@ -87,6 +87,7 @@
>     HKR,"Parameters","FrontendMaxQueues",0x00010001,0x00000008
> 
>      =C2=A0[XenVif_Unplug]
>      =C2=A0HKLM,%UnplugKey%,"NICS",0x00010001,0
>     +HKLM,%ForceUnplugKey%,"NICS",0x00010001,1
> 
>      =C2=A0[Strings]
> 
>     @@ -94,6 +95,7 @@ Vendor=3D"@VENDOR_NAME@"
>      =C2=A0DiskDesc=3D"@PRODUCT_NAME@ PV Network Class Package"
>      =C2=A0XenVifName=3D"@PRODUCT_NAME@ PV Network Class"
>      =C2=A0UnplugKey=3D"SYSTEM\CurrentControlSet\Services\XEN\Unplug"
>     +ForceUnplugKey=3D"SYSTEM\CurrentControlSet\Services\XEN\ForceUnplug"
> 
>      =C2=A0SERVICE_BOOT_START=3D0x0
>      =C2=A0SERVICE_SYSTEM_START=3D0x1
>     -- 
>     2.50.1.windows.1
> 
> 
> 
>     Ngoc Tu Dinh | Vates XCP-ng Developer
> 
>     XCP-ng & Xen Orchestra - Vates solutions
> 
>     web: https://vates.tech <https://vates.tech>
> 



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From win-pv-devel-bounces@lists.xenproject.org Thu Jul 10 08:56:56 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 10 Jul 2025 08:56:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1039226.1411160 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uZn5L-0000OI-FT; Thu, 10 Jul 2025 08:56:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1039226.1411160; Thu, 10 Jul 2025 08:56:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uZn5L-0000OB-Cn; Thu, 10 Jul 2025 08:56:55 +0000
Received: by outflank-mailman (input) for mailman id 1039226;
 Thu, 10 Jul 2025 08:56:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=DLxT=ZX=bounce.vates.tech=bounce-md_30504962.686f8052.v1-c636fb4dba444f6fa70750e21cb1eb9d@srs-se1.protection.inumbo.net>)
 id 1uZn5J-0000O5-QV
 for win-pv-devel@lists.xenproject.org; Thu, 10 Jul 2025 08:56:53 +0000
Received: from mail124.us4.mandrillapp.com (mail124.us4.mandrillapp.com
 [205.201.136.124]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d1bb65cc-5d6b-11f0-a317-13f23c93f187;
 Thu, 10 Jul 2025 10:56:52 +0200 (CEST)
Received: from pmta15.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail124.us4.mandrillapp.com (Mailchimp) with ESMTP id 4bd7xt29kCzKsblnB
 for <win-pv-devel@lists.xenproject.org>; Thu, 10 Jul 2025 08:56:50 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c636fb4dba444f6fa70750e21cb1eb9d; Thu, 10 Jul 2025 08:56:50 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d1bb65cc-5d6b-11f0-a317-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1752137810; x=1752407810;
	bh=OuYwYv2NXHYNM0N2v5kAZQ3k9QURLLly12fOqgnzd+Y=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=p/pIQCRdJaMISazCRFMgITjJyArQNdv+dydy0htDOJpMEwI8Aa69Z+TCMA9SfnQ4k
	 81OLECcODBdd1bVx4kHzGXXBeZX0jASOVjoKfWbSUZPl79ZHHk98IndssrvOGAf6Rf
	 yEHMcqpYR4I2wpumhA1FCC+0/4gl5/DLKe5Y+MjMKOzT68DtL2hXiIr48TBDo83DEy
	 /Fk067yQx4ZbHBRYE2HstptDUSFr3YajcaYmIn/Q9WJEGqvVtLT3ATTHXcDa7ZP71g
	 UCbi7unN/a3LoY/iPDRzMGTqErP2o3WR27eBNk4AZei/gAUOlxTZQTIqGpmWwvO0Bn
	 TRpK06XjKRyyw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1752137810; x=1752398310; i=ngoc-tu.dinh@vates.tech;
	bh=OuYwYv2NXHYNM0N2v5kAZQ3k9QURLLly12fOqgnzd+Y=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=YOzF+v4r9km8SwABHoLPuC7C8gdWhcWOjlQJZ7BljDURwd0+PrIEiRmizOdUHB2Y3
	 LMrUXIuvtLfLqSqEPZdiwAL9WwBVRyakvdJV21s0+HaMVV/13AJdWSMBsnc3ggjYMP
	 9xoZ5YRPt7ZdP1Ib71C+xrPQ4K1JoibpF/8CF+3x/HRAsRGJ6qEU97GgAc/zYC3OXY
	 aWgUCLwJx2+gETnLCMAjxIgHH0Co9NHW51xcvmvmFyaeSdqnP6gb7GYMJMxlrX6HNt
	 CA3ng8Z3GJiUuqWimTSSDqbYh/KwX0hxhun2OAOF0I7jno30AjpAR6e4hArWCS+75S
	 1TPcVFv9NwH7Q==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[XENNET=20PATCH]=20Opt=20into=20forced=20unplug?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1752137809461
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250710085644.1810-1-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250709154603.86-1-ngoc-tu.dinh@vates.tech>
References: <20250709154603.86-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.c636fb4dba444f6fa70750e21cb1eb9d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250710:md
Date: Thu, 10 Jul 2025 08:56:50 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
Supersedes "[XENVIF PATCH] Opt into forced unplug".
---
 src/xennet.inf | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/xennet.inf b/src/xennet.inf
index 4923388..6358eaf 100644
--- a/src/xennet.inf
+++ b/src/xennet.inf
@@ -179,11 +179,14 @@ StartType=%SERVICE_DEMAND_START%
 ErrorControl=%SERVICE_ERROR_NORMAL% 
 ServiceBinary=%12%\xennet.sys 
 LoadOrderGroup="NDIS"
-AddReg = XenNet_BootFlags
+AddReg = XenNet_BootFlags,XenNet_Unplug
 
 [XenNet_BootFlags]
 HKR,,"BootFlags",0x00010003,0x81
 
+[XenNet_Unplug]
+HKLM,%ForceUnplugKey%,"NICS",0x00010001,1
+
 [XenNet_EventLog]
 AddReg=XenNet_EventLog_AddReg
 
@@ -196,6 +199,7 @@ HKR,,TypesSupported,0x00010001,7
 Vendor="@VENDOR_NAME@"
 DiskDesc="@PRODUCT_NAME@ PV Network Device Package" 
 XenNetName="@PRODUCT_NAME@ PV Network Device"
+ForceUnplugKey="SYSTEM\CurrentControlSet\Services\XEN\ForceUnplug"
 IPChecksumOffloadIPv4="IPv4 Checksum Offload"
 TCPChecksumOffloadIPv4="TCP Checksum Offload (IPv4)"
 UDPChecksumOffloadIPv4="UDP Checksum Offload (IPv4)"
-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Thu Jul 10 22:52:56 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 10 Jul 2025 22:52:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1039975.1411478 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ua08K-0007W9-Qm; Thu, 10 Jul 2025 22:52:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1039975.1411478; Thu, 10 Jul 2025 22:52:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ua08K-0007W1-Nb; Thu, 10 Jul 2025 22:52:52 +0000
Received: by outflank-mailman (input) for mailman id 1039975;
 Thu, 10 Jul 2025 22:52:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=adFw=ZX=bounce.vates.tech=bounce-md_30504962.6870443f.v1-ce4a4061c1ec440bb4b85e6f1fb308b6@srs-se1.protection.inumbo.net>)
 id 1ua08J-0007Vv-3Q
 for win-pv-devel@lists.xenproject.org; Thu, 10 Jul 2025 22:52:51 +0000
Received: from mail179-35.suw41.mandrillapp.com
 (mail179-35.suw41.mandrillapp.com [198.2.179.35])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9a1d907d-5de0-11f0-a318-13f23c93f187;
 Fri, 11 Jul 2025 00:52:49 +0200 (CEST)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-35.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4bdVVS01K9zDRJQ0h
 for <win-pv-devel@lists.xenproject.org>; Thu, 10 Jul 2025 22:52:48 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 ce4a4061c1ec440bb4b85e6f1fb308b6; Thu, 10 Jul 2025 22:52:47 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a1d907d-5de0-11f0-a318-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1752187968; x=1752457968;
	bh=19gxm8G+hZqltx/aClopeBZgV89QVE/1NKdsXoVxFi4=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=u3uE0StGiUmiHwuOkEGcZuFrXTJiJkH1UtVG7slgGUm+YqJrn8lFwu/kMeqSfA/+T
	 KX9M92BWwBkSWZHS8nQFrgR8+sLXbP8wYg4llZjwf2P6iqJMjc4mZ4boOhIq1fz7al
	 p0DnnWyjuYQ/cyVXyYIz7EQ0xDCZ5vF1q4PDDGemZAUDy9sKH8lChR/daWsxBLQJm+
	 2MQ4qfEL6YAtr0r9+452vFn0iAbaeVKLp7uQVdxnSfOpUXVnLpVPTjGFfSgQU3R5zz
	 V8TG8D2R7IYvlH2ksmaVSuU48SWCvdyoDhC7Ved9WmYcVVzECfSNK4fF3gHoGShGJL
	 65WXV11YwRTvw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1752187968; x=1752448468; i=ngoc-tu.dinh@vates.tech;
	bh=19gxm8G+hZqltx/aClopeBZgV89QVE/1NKdsXoVxFi4=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=jTwQkaFtqSIQQIvUQsiHfeQdpN1WLZDACR5sI3bakfO4jklueaNjKC3LpmDN2oetj
	 k3maa5DVL9Ka6LizOlGIuIz9aXo6yXMdqSzr+ke7NTbksOjaVNGcloqTmnifZJw8xg
	 A2OX8QLZp2hWNuewaCE835PjyOMeumqPsdm2hQLnL523n5XJwxGFiTcyHLlGjItSi5
	 Ud2bO3/iibBhphUjtSee2Lt6ON/QoztuVn2Aoos2k1dOHm7yk6NVuPHDnGuq1NEmvG
	 6F/qApAzdO2gXmwD8U4BXQp5VCxtmG6R8AroTnNJ5+h65JyN+nbccb1FNVZDfxWhfI
	 M/pTSniqk+FCw==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[XENBUS=20PATCH]=20Add=20forced=20unplug=20support?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1752187967092
Message-Id: <7ad766ae-17f7-4a10-942c-08ffae865b08@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: "Owen Smith" <owen.smith@cloud.com>
References: <20250709154603.86-1-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250709154603.86-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.ce4a4061c1ec440bb4b85e6f1fb308b6?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250710:md
Date: Thu, 10 Jul 2025 22:52:47 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On 09/07/2025 17:47, Tu Dinh wrote:
> Forced unplug aims to simplify driver servicing by, as its name implies,
> forcefully unplugging emulated devices when a driver is present, rather
> than when it's active.
> 
> Create a Registry key at CurrentControlSet\XEN\ForceUnplug. Drivers can
> opt into forced unplug by creating an appropriate value (DISKS/NICS)
> in this key.
> 
> Older drivers are not affected.
> 
> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
> ---
> Opting into forced unplug is totally optional. But it has the advantage
> of not needing multiple reboots, and avoids situations where both the
> emulated and PV drivers are running at the same time.

This is broken in case the xenfilt\Parameters\Active* values are deleted 
(or otherwise not present).

> ---
>   src/xen/driver.c | 79 ++++++++++++++++++++++++++++++++++++++----------
>   src/xen/driver.h |  5 +++
>   src/xen/unplug.c | 13 ++++++--
>   3 files changed, 79 insertions(+), 18 deletions(-)
> 
> diff --git a/src/xen/driver.c b/src/xen/driver.c
> index b44753c..7b2621b 100644
> --- a/src/xen/driver.c
> +++ b/src/xen/driver.c
> @@ -63,6 +63,7 @@ typedef struct _XEN_DRIVER {
>       PLOG_DISPOSITION    QemuDisposition;
>       HANDLE              ParametersKey;
>       HANDLE              UnplugKey;
> +    HANDLE              ForceUnplugKey;
>       HANDLE              MemoryKey;
>   } XEN_DRIVER, *PXEN_DRIVER;
>   
> @@ -144,6 +145,30 @@ DriverGetUnplugKey(
>       return __DriverGetUnplugKey();
>   }
>   
> +static FORCEINLINE VOID
> +__DriverSetForceUnplugKey(
> +    _In_opt_ HANDLE Key
> +    )
> +{
> +    Driver.ForceUnplugKey = Key;
> +}
> +
> +static FORCEINLINE HANDLE
> +__DriverGetForceUnplugKey(
> +    VOID
> +    )
> +{
> +    return Driver.ForceUnplugKey;
> +}
> +
> +HANDLE
> +DriverGetForceUnplugKey(
> +    VOID
> +    )
> +{
> +    return __DriverGetForceUnplugKey();
> +}
> +
>   static FORCEINLINE VOID
>   __DriverSetMemoryKey(
>       _In_opt_ HANDLE Key
> @@ -500,6 +525,7 @@ DllInitialize(
>       HANDLE                  ServiceKey;
>       HANDLE                  ParametersKey;
>       HANDLE                  UnplugKey;
> +    HANDLE                  ForceUnplugKey;
>       HANDLE                  MemoryKey;
>       LOG_LEVEL               LogLevel;
>       NTSTATUS                status;
> @@ -577,12 +603,21 @@ DllInitialize(
>   
>       __DriverSetUnplugKey(UnplugKey);
>   
> +    status = RegistryCreateSubKey(ServiceKey,
> +                                  "ForceUnplug",
> +                                  REG_OPTION_NON_VOLATILE,
> +                                  &ForceUnplugKey);
> +    if (!NT_SUCCESS(status))
> +        goto fail6;
> +
> +    __DriverSetForceUnplugKey(ForceUnplugKey);
> +
>       status = RegistryCreateSubKey(ServiceKey,
>                                     "Memory",
>                                     REG_OPTION_VOLATILE,
>                                     &MemoryKey);
>       if (!NT_SUCCESS(status))
> -        goto fail6;
> +        goto fail7;
>   
>       __DriverSetMemoryKey(MemoryKey);
>   
> @@ -590,27 +625,27 @@ DllInitialize(
>   
>       status = AcpiInitialize();
>       if (!NT_SUCCESS(status))
> -        goto fail7;
> +        goto fail8;
>   
>       status = SystemInitialize();
>       if (!NT_SUCCESS(status))
> -        goto fail8;
> +        goto fail9;
>   
>       status = BugCheckInitialize();
>       if (!NT_SUCCESS(status))
> -        goto fail9;
> +        goto fail10;
>   
>       status = ModuleInitialize();
>       if (!NT_SUCCESS(status))
> -        goto fail10;
> +        goto fail11;
>   
>       status = ProcessInitialize();
>       if (!NT_SUCCESS(status))
> -        goto fail11;
> +        goto fail12;
>   
>       status = UnplugInitialize();
>       if (!NT_SUCCESS(status))
> -        goto fail12;
> +        goto fail13;
>   
>       RegistryCloseKey(ServiceKey);
>   
> @@ -618,39 +653,45 @@ DllInitialize(
>   
>       return STATUS_SUCCESS;
>   
> +fail13:
> +    Error("fail13\n");
> +
> +    ProcessTeardown();
> +
>   fail12:
>       Error("fail12\n");
>   
> -    ProcessTeardown();
> +    ModuleTeardown();
>   
>   fail11:
>       Error("fail11\n");
>   
> -    ModuleTeardown();
> +    BugCheckTeardown();
>   
>   fail10:
>       Error("fail10\n");
>   
> -    BugCheckTeardown();
> +    SystemTeardown();
>   
>   fail9:
>       Error("fail9\n");
>   
> -    SystemTeardown();
> +    AcpiTeardown();
>   
>   fail8:
>       Error("fail8\n");
>   
> -    AcpiTeardown();
> -
> -fail7:
> -    Error("fail7\n");
> -
>       HypercallTeardown();
>   
>       RegistryCloseKey(MemoryKey);
>       __DriverSetMemoryKey(NULL);
>   
> +fail7:
> +    Error("fail7\n");
> +
> +    RegistryCloseKey(ForceUnplugKey);
> +    __DriverSetForceUnplugKey(NULL);
> +
>   fail6:
>       Error("fail6\n");
>   
> @@ -698,6 +739,7 @@ DllUnload(
>       )
>   {
>       HANDLE  MemoryKey;
> +    HANDLE  ForceUnplugKey;
>       HANDLE  UnplugKey;
>       HANDLE  ParametersKey;
>   
> @@ -722,6 +764,11 @@ DllUnload(
>       RegistryCloseKey(MemoryKey);
>       __DriverSetMemoryKey(NULL);
>   
> +    ForceUnplugKey = __DriverGetForceUnplugKey();
> +
> +    RegistryCloseKey(ForceUnplugKey);
> +    __DriverSetForceUnplugKey(NULL);
> +
>       UnplugKey = __DriverGetUnplugKey();
>   
>       RegistryCloseKey(UnplugKey);
> diff --git a/src/xen/driver.h b/src/xen/driver.h
> index 21df779..6851e01 100644
> --- a/src/xen/driver.h
> +++ b/src/xen/driver.h
> @@ -43,6 +43,11 @@ DriverGetUnplugKey(
>       VOID
>       );
>   
> +extern HANDLE
> +DriverGetForceUnplugKey(
> +    VOID
> +    );
> +
>   extern PMDL
>   DriverGetNamedPages(
>       _In_ PSTR   Name,
> diff --git a/src/xen/unplug.c b/src/xen/unplug.c
> index dbd9a2e..282ed93 100644
> --- a/src/xen/unplug.c
> +++ b/src/xen/unplug.c
> @@ -266,6 +266,7 @@ UnplugSetRequest(
>   {
>       PUNPLUG_CONTEXT     Context = &UnplugContext;
>       HANDLE              UnplugKey;
> +    HANDLE              ForceUnplugKey;
>       PSTR                ValueName;
>       PSTR                EnumName;
>       ULONG               Value;
> @@ -277,6 +278,7 @@ UnplugSetRequest(
>       ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
>   
>       UnplugKey = DriverGetUnplugKey();
> +    ForceUnplugKey = DriverGetForceUnplugKey();
>   
>       switch (Type) {
>       case UNPLUG_DISKS:
> @@ -293,17 +295,24 @@ UnplugSetRequest(
>           ASSERT(FALSE);
>       }
>   
> +    status = RegistryQueryDwordValue(ForceUnplugKey,
> +                                     ValueName,
> +                                     &Value);
> +    if (NT_SUCCESS(status) && Value)
> +        goto unplug;
> +
>       status = RegistryQueryDwordValue(UnplugKey,
>                                        ValueName,
>                                        &Value);
>       if (!NT_SUCCESS(status))
>           goto done;
>   
> -    (VOID) RegistryDeleteValue(UnplugKey, ValueName);
> -
>       if (Value != 0)
>           (VOID) UnplugCheckEnumKey(EnumName, &Value);
>   
> +unplug:
> +    (VOID) RegistryDeleteValue(UnplugKey, ValueName);
> +
>       Info("%s (%u)\n", ValueName, Value);
>   
>       AcquireHighLock(&Context->Lock, &Irql);



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Fri Jul 11 15:24:20 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 11 Jul 2025 15:24:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1040991.1412186 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uaFbl-0003B0-UO; Fri, 11 Jul 2025 15:24:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1040991.1412186; Fri, 11 Jul 2025 15:24:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uaFbl-0003At-RY; Fri, 11 Jul 2025 15:24:17 +0000
Received: by outflank-mailman (input) for mailman id 1040991;
 Fri, 11 Jul 2025 15:24:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ff8J=ZY=bounce.vates.tech=bounce-md_30504962.68712c97.v1-0a24dd4afaa14f05ab81fee16f343618@srs-se1.protection.inumbo.net>)
 id 1uaFbk-0003An-OG
 for win-pv-devel@lists.xenproject.org; Fri, 11 Jul 2025 15:24:16 +0000
Received: from mail179-35.suw41.mandrillapp.com
 (mail179-35.suw41.mandrillapp.com [198.2.179.35])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 16a94788-5e6b-11f0-b894-0df219b8e170;
 Fri, 11 Jul 2025 17:24:10 +0200 (CEST)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-35.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4bdwVH4xkHzDRLGVL
 for <win-pv-devel@lists.xenproject.org>; Fri, 11 Jul 2025 15:24:07 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 0a24dd4afaa14f05ab81fee16f343618; Fri, 11 Jul 2025 15:24:07 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 16a94788-5e6b-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1752247447; x=1752517447;
	bh=+QkHY9QCOjOXmKX1aFGJPI4MiCHkwtxu1qtrAuwHqhE=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=WZBaTrDH3bXM9pyv9bnBsgAhbVoygUwbdSHBMO2C5OFLC0CTB75CwMLCo2ZO7iMpu
	 +XbKe9yiZFSWWGPVK80Ufxvs0VZZw/bc2FTjQZaANY9OIW80fZHxAKyMtWx8Gwo/jS
	 LDu/Otkhn0eI8jTkHHnEKRJ8pQZZj4pKzIEE9N50E+jVO63cd0E8Jg/8UIh8JfkDam
	 gbcZAUFpUq1QmBwfXbAtt1AlWBbNQUyW5NCLgFDqykZy2frt6J3v/s9cNjzS1UyzXp
	 +9vz7+axPVBiOZGx4OS/nLTKABiVk6ec+5jh2LXnH+wziZ9HXHLFPBgZ7S5vAIRlZx
	 4rjB1bnMo9fCA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1752247447; x=1752507947; i=ngoc-tu.dinh@vates.tech;
	bh=+QkHY9QCOjOXmKX1aFGJPI4MiCHkwtxu1qtrAuwHqhE=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=ZGfLjd7ADbciDgtjnizzx7WAtdXOt6lMwGE2X8X5PL9OD/wkiRZV/AY2otJDo595Q
	 AxkVMn7WML2VUK2iOsdGRPyX2Q9vk6eZaPYsH7wJmBtxU/RwEVOIezVjC25iAc4SeM
	 StdbleMJwlL0WFjMGyNwjUzWGT2vRNHJu1ig+9EyLjhWXvF1P49f77wTv2VZYO0wc+
	 hTdA4dzqP0gqhcTV1ZocEuLx/U3cj+ba9pTSjUTWZKnhaCTJXqgAAxpeu7lHPzce8o
	 QMP2OQ6hqU3Ws5xuVSPdHX052W+k8E2dz5YrMIE+DTLozyEt9Z4aKZHAMZaeABbkua
	 VJd12owKggo6g==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[XENBUS=20PATCH]=20Open=20the=20correct=20vendor=20device=20enum=20key?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1752247446876
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250711152359.979-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.0a24dd4afaa14f05ab81fee16f343618?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250711:md
Date: Fri, 11 Jul 2025 15:24:07 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

The SUBSYS_ part of the vendor device ID string is also branded with
VENDOR_DEVICE_ID.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 src/xen/config.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/xen/config.c b/src/xen/config.c
index a74f95b..99980a6 100644
--- a/src/xen/config.c
+++ b/src/xen/config.c
@@ -152,7 +152,8 @@ __ConfigIsVendorDevicePresent(
     HANDLE      DeviceKey;
     BOOLEAN     Found;
     NTSTATUS    status;
-    PCSTR       VendorDeviceID = "PCI\\VEN_5853&DEV_" VENDOR_DEVICE_ID_STR "&SUBSYS_C0005853&REV_01";
+    PCSTR       VendorDeviceID = "PCI\\VEN_5853&DEV_" VENDOR_DEVICE_ID_STR
+                                 "&SUBSYS_" VENDOR_DEVICE_ID_STR "5853&REV_01";
 
     status = RegistryOpenSubKey(NULL,
                                 ENUM_PATH,
-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Fri Jul 11 15:24:47 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 11 Jul 2025 15:24:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1040992.1412190 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uaFcF-0003GA-03; Fri, 11 Jul 2025 15:24:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1040992.1412190; Fri, 11 Jul 2025 15:24:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uaFcE-0003G3-Tn; Fri, 11 Jul 2025 15:24:46 +0000
Received: by outflank-mailman (input) for mailman id 1040992;
 Fri, 11 Jul 2025 15:24:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tofU=ZY=bounce.vates.tech=bounce-md_30504962.68712cba.v1-61cc0fd803ef4059b33f89c822bd9a3f@srs-se1.protection.inumbo.net>)
 id 1uaFcD-0003Fb-UP
 for win-pv-devel@lists.xenproject.org; Fri, 11 Jul 2025 15:24:45 +0000
Received: from mail179-35.suw41.mandrillapp.com
 (mail179-35.suw41.mandrillapp.com [198.2.179.35])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2b8b6245-5e6b-11f0-a318-13f23c93f187;
 Fri, 11 Jul 2025 17:24:44 +0200 (CEST)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-35.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4bdwVy4yrFzDRLPBx
 for <win-pv-devel@lists.xenproject.org>; Fri, 11 Jul 2025 15:24:42 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 61cc0fd803ef4059b33f89c822bd9a3f; Fri, 11 Jul 2025 15:24:42 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b8b6245-5e6b-11f0-a318-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1752247482; x=1752517482;
	bh=oRgLYrj2pqKp51GcfIwm6nntconnYyEZX02yTAo8DBw=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=v2u9OwRMObBzABkzNjtN5zseE8PQBoZC11bBiuD++z+aBAwgbOTrdAZQTxjnQd6fI
	 /X/klkgzM2M9fTREc/Obs9qAKxweTG5LQ+FLH5eMHsndxDgL6v2C5rqZE9tk1Ojn2z
	 JZNe4whLGrj05WhoYnbwQLNXTj8b34r4mwfW84GyiVLk6SdQM4BBtXcCaCcHNNZxdw
	 +nTJO3blQMJGWGcsJFI+kDFCfa3GiZ+pi+5l6GxsQ3vmH7LmodBQ9kh77K3rf2wClN
	 /P2Z3AWKSnymvYCOoHZmUujxKifVjjDyOf7pquymG6P+lOVlaUz8J2fAlrzXPPUcWs
	 lQnivo09e4YgA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1752247482; x=1752507982; i=ngoc-tu.dinh@vates.tech;
	bh=oRgLYrj2pqKp51GcfIwm6nntconnYyEZX02yTAo8DBw=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=telIdGsHAYPI1cgfBIPHpmKBHpBeTayZBlB4a8BosGOka9bT2MpZYNIf3+aKhaLIX
	 eNUpvakqQOTgKAT+mJSjKVIGfJ7iHRKxP7cWpSrZH6dWqTGpwaFN7BxjOCLxhOXPs1
	 fNVD/TrhWwq6KDGIgo5p+nZeuH5n7k3JWNcjbcYnhwKZiYnnw6ACYKwiNrwe3VSinP
	 xtNjK7iBN5Lvwqzt0jOIiN6VGMHJt//TQRmp5tIjgwFGypwchZ+eVooKZAG0uKSKit
	 vWsrc4BFmI89aC6ta9XigSX3Ube8CY3yrbYRWsbWqF+snReeTBNrVyBt3qCPUAM9Hd
	 gsa4XjxqBtvxQ==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[XENIFACE=20PATCH]=20Call=20SetLocalTime=20twice=20to=20set=20system=20time?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1752247481947
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250711152440.1684-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.61cc0fd803ef4059b33f89c822bd9a3f?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250711:md
Date: Fri, 11 Jul 2025 15:24:42 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Per Microsoft, SetLocalTime must be called twice to correctly update
system time while taking daylight saving time into account.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 src/xenagent/xenifacedevice.cpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/xenagent/xenifacedevice.cpp b/src/xenagent/xenifacedevice.cpp
index 7b45c8c..f81a838 100644
--- a/src/xenagent/xenifacedevice.cpp
+++ b/src/xenagent/xenifacedevice.cpp
@@ -537,8 +537,11 @@ void CXenIfaceDeviceList::SetXenTime(CXenIfaceDevice* device, bool forced)
                    sys.wYear, sys.wMonth, sys.wDay,
                    sys.wHour, sys.wMinute, sys.wSecond, sys.wMilliseconds);
 
-    if (local)
+    if (local) {
+        // Must call SetLocalTime twice to correctly adjust DST per Microsoft.
         SetLocalTime(&sys);
-    else
+        SetLocalTime(&sys);
+    } else {
         SetSystemTime(&sys);
+    }
 }
-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Sat Jul 12 23:02:01 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 12 Jul 2025 23:02:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1042074.1412481 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uajEF-0001JD-DA; Sat, 12 Jul 2025 23:01:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1042074.1412481; Sat, 12 Jul 2025 23:01:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uajEF-0001J5-9k; Sat, 12 Jul 2025 23:01:59 +0000
Received: by outflank-mailman (input) for mailman id 1042074;
 Sat, 12 Jul 2025 23:01:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jJba=ZZ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1uajED-0001Iz-GG
 for win-pv-devel@lists.xenproject.org; Sat, 12 Jul 2025 23:01:57 +0000
Received: from fhigh-a4-smtp.messagingengine.com
 (fhigh-a4-smtp.messagingengine.com [103.168.172.155])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 33dc1527-5f74-11f0-a318-13f23c93f187;
 Sun, 13 Jul 2025 01:01:55 +0200 (CEST)
Received: from phl-compute-10.internal (phl-compute-10.phl.internal
 [10.202.2.50])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 7157E14001BB
 for <win-pv-devel@lists.xenproject.org>; Sat, 12 Jul 2025 19:01:53 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-10.internal (MEProxy); Sat, 12 Jul 2025 19:01:53 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA for
 <win-pv-devel@lists.xenproject.org>; Sat,
 12 Jul 2025 19:01:52 -0400 (EDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 33dc1527-5f74-11f0-a318-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:content-type:content-type:date:date
	:from:from:in-reply-to:message-id:mime-version:reply-to:subject
	:subject:to:to; s=fm2; t=1752361313; x=1752447713; bh=vzTrSVXe3k
	WpC2NwdjuIloWYN1wvnahDYYrI5AsgtPo=; b=IND47Y2seN27RC77xk+8mfDXLM
	qHi65pSo+fgYdzPHoBWSjiCVOIkuglXt1xMPdYahqeF0LZ5Uvgs68B417Qh64gxc
	Q3izVUBWr1F5DLsTEt1lwWLfvCKRKtoon9C03NlfwqAGtwBfgC24RITVbyffDgq3
	xJrjhyD16fhFeHHtITrOujjDc4/h9A4gXzsoGM8BqD3fsvtFpP0TmTMJuIZEEQHw
	AollR/gp10uerSZ5a2zKgk7LXKT/S7wpLsb1/TiSf5mPAeGqLY0hsVDYnlgAuLqQ
	j638aBTHDpYgNbPb6bI8EPneiZGqUl/1WsRKxzkKlEHAQw6arRR70YwmtWug==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:message-id
	:mime-version:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1752361313; x=
	1752447713; bh=vzTrSVXe3kWpC2NwdjuIloWYN1wvnahDYYrI5AsgtPo=; b=n
	7r/S44mPZDDlxwvtxrSVGLpEY1ksyyX0I0N0125A3HxS+Ccf00w+gRNp2CzrAR9/
	YmfpJZu0mjxhhINHeHVUadkloxom9pobFAz7f7v9KoMvkz7LrlI4XrFPTHOnr5I5
	Iu4LnvTL0cGDWyR6GPdPCA/wKJ2EK3jiNR5ge/AxdU2mGZzSK9rE0zKvH8T9auLc
	q4LYz9AQWcnw5A6l2EZEia9x3BMSimypRkYhOjovDG/PUPYO9OeoVlmW636pGIbg
	A0IR2ezoWeHpYsk6FBWmXIwD4IFnzTo1UgDOKslCzJSiMJycVK2b98jVSHa7e6Ze
	TgzW3EProc7QFNnhZ+F2A==
X-ME-Sender: <xms:YOlyaKD7sqp0dJOanCf9XNsuVJy5lzoLATYY-McWdoGms4BQW2JTgg>
    <xme:YOlyaGhO6a91dtCfCNsoDyv6JYHllJeybPNd_3LGKcc2jgGzJGCqhXXGmlGeyT1qg
    kONy2TEWPFd6A>
X-ME-Received: <xmr:YOlyaG9THWOPOqdDJsWfXEvJPjDbZQWEHqBxWyfULjI1EkKEvmuER6z8yNAq43cxiM3VK3JD0V-HGtF0umv7FEaZP4s_iDJGbDU>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdegjeegjecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecunecujfgurhepfffhvffukfggtggusehgtdorredttdejne
    cuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehm
    rghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtf
    frrghtthgvrhhnpeejtdfgjedvfedvuefgvedtgfehieelhedtueeitdfhjeffueelfffg
    udefgfeigfenucffohhmrghinhepqhhusggvshdqohhsrdhorhhgpdhgihhthhhusgdrtg
    homhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehm
    rghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprh
    gtphhtthhopedupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeifihhnqdhpvhdq
    uggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhg
X-ME-Proxy: <xmx:YOlyaK8161l3RC-dx3-D9wXWTSqYNs4r6N7QrXHdcGsHjcp_R4RkWg>
    <xmx:YOlyaHACYJzV5C8i1znH8Suvf3RqBPZwjNqAzxRrCbf8hEAEnL7OEg>
    <xmx:YOlyaCyzUEWLBGRbtK7uGYyBuNnyq2l8MFz171XnTKukaXh30KDICA>
    <xmx:YOlyaERxeTF38Ow8fCBYTxfLsQvvF74OwhJL-LwahYZKTWKpoGIENA>
    <xmx:YelyaE4tklznUtNtpnoihCeXCwvn9ne3Qat1BVvy26SCVrP0qIuQUklP>
Feedback-ID: i1568416f:Fastmail
Date: Sun, 13 Jul 2025 01:01:49 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: win-pv-devel <win-pv-devel@lists.xenproject.org>
Subject: Recent(?) change forces reboot after adding vif
Message-ID: <aHLpXnbqmNvqslxK@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="l/LunW7Lyhx4qMV0"
Content-Disposition: inline


--l/LunW7Lyhx4qMV0
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sun, 13 Jul 2025 01:01:49 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: win-pv-devel <win-pv-devel@lists.xenproject.org>
Subject: Recent(?) change forces reboot after adding vif

Hi,

Some recent(ish) change made Windows want a reboot after adding a vif to
the domU config, even if such vif was there in the past (so, the driver
was installed). While the prompt is there, network clearly works
already.

The specific workflow is:
1. Create domU with vif included.
2. Install Windows (10 or 11 - both seems to be affected)
3. Install PV drivers
4. Shutdown Windows
5. Remove vif from the domU config
6. Start Windows, wait(?), shutdown
7. Re-add the vif and start domU

Such operation used to work perfectly fine without any extra reboot. But
now domU prompts to reboot, like this:
https://openqa.qubes-os.org/tests/146690#step/windows_clipboard_and_filecop=
y/25

Note that network actually works already at the point then reboot is
prompted - so it seems the reboot isn't really necessary?

This is especially problematic because we have some domUs intentionally
don't persist changes on the disk on reboot. So, this basically means
reboot loop if you do a change to vif config...

The old/new versions are:

    xenvif updated from 9fd1af to 4608bc=20
    xennet updated from ad7717 to 0b1a93=20

Full version differences can be seen at
https://github.com/QubesOS/qubes-vmm-xen-windows-pvdrivers/pull/4/files

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--l/LunW7Lyhx4qMV0
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmhy6V4ACgkQ24/THMrX
1yx1+Af9Hr9SLP/wek05lFiYoxvHo+O777UOShXOenKRTgsg9oUlgEvTGb8X256H
Ey5dAohvjYZYJ8ooixZSA6X95BfvkFEQ/h+4tY902/TzzT84qAVSz4kHR9t8evrT
/tVTwNd6CFCVAK+5AMfN7teMh6Q2Y3s3Uej5As9IHGJiLb37eHXlk8gS7Ubl8N8w
OCHjzgeM0uEgjwYlNlRbJwyqRsEUhDAGJ7HKPCZO/jFQSTPzBiURC3QMqvTZniz/
HnRoM7ocZ/Yq+NFkZxMFTrW4jLAwdsNYfSNs16opXaS8EM5YoSgUGVVMbLXVuvBG
Awvd5cP4lc0ms2o1kwMddn9410d9uA==
=z1tj
-----END PGP SIGNATURE-----

--l/LunW7Lyhx4qMV0--


From win-pv-devel-bounces@lists.xenproject.org Sun Jul 13 03:01:20 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 13 Jul 2025 03:01:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1042138.1412485 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uamxp-0004FL-Tb; Sun, 13 Jul 2025 03:01:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1042138.1412485; Sun, 13 Jul 2025 03:01:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uamxp-0004FC-QA; Sun, 13 Jul 2025 03:01:17 +0000
Received: by outflank-mailman (input) for mailman id 1042138;
 Sun, 13 Jul 2025 03:01:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ILEi=Z2=bounce.vates.tech=bounce-md_30504962.68732179.v1-1dcb7d8c9398455a949a15264b329355@srs-se1.protection.inumbo.net>)
 id 1uamxp-0004F6-22
 for win-pv-devel@lists.xenproject.org; Sun, 13 Jul 2025 03:01:17 +0000
Received: from mail145-16.atl61.mandrillapp.com
 (mail145-16.atl61.mandrillapp.com [198.2.145.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a359ff93-5f95-11f0-a318-13f23c93f187;
 Sun, 13 Jul 2025 05:01:15 +0200 (CEST)
Received: from pmta06.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail145-16.atl61.mandrillapp.com (Mailchimp) with ESMTP id
 4bfqw93xJ2z8XRwkY
 for <win-pv-devel@lists.xenproject.org>; Sun, 13 Jul 2025 03:01:13 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 1dcb7d8c9398455a949a15264b329355; Sun, 13 Jul 2025 03:01:13 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a359ff93-5f95-11f0-a318-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1752375673; x=1752645673;
	bh=QOKeDxysozunxyqEb6zkwwTy0RFvRbbeuxgysVwSHjY=;
	h=From:Subject:Message-Id:To:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=1mfAy5c8XbFS0AK6Pxu4eoR8qi3ddGNi6ytajprKtR7KgMRzM7D55Bd7PQtN+rzUj
	 Xf9s0i5snEDbTMz7fmk+AFVyS4yND2rbjlK+YhZNznc2LRLC/itaehKU4IZc/3QZrb
	 d5lbS8hrTPaxeTmyZPzb/IIHPg0bOX1WiCuDz25CsnFwzt+H87WsxLcCi7gJsnvo0m
	 ivRKVBUOde6ZwgD7E4NxpHO3PzzZYLFkXgrwftI0pyHzP2MJlMQr/buAto1ZXJuqnB
	 SrSZfQ/IpZOdh9TCvnDyqzxknf1TOvw0YdmlAd6BCGMLQY2+DVCyJZ/PbfkuuMFCbs
	 NbAKxJYyCK4bA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1752375673; x=1752636173; i=ngoc-tu.dinh@vates.tech;
	bh=QOKeDxysozunxyqEb6zkwwTy0RFvRbbeuxgysVwSHjY=;
	h=From:Subject:Message-Id:To:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=OXyGbzMK4Df1vXm84/BAxf/Zi2MP16ZOK7fRzk70HQyuJGCMXh4i88nUFiViXz8qd
	 3CAI+R15OGdZHoJoXKL2VKdkUZ68oUCXiaoU0vYy9Qm5UqYAKu5xwBQqZfZCd4s/ys
	 YOIaikZgo1R8vKOY8XN6Nzgy5hYdlUVVsnYM/F8h/8rNo8wpQ0MbPKlLczL2K6qW7X
	 LEWimMu+pE8YneogLFauMD3mgFiNYi8gm3UoRFeBkmMhVeoGlh6vhJJNyWrXwzp8W2
	 FlbxS4wOBMVvsU8L0sLBdrwZKtpHuSrd45E5t467leUFst7n6PxWn2pwPJTnDw6W+8
	 mlVplU+LI/XcQ==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20Recent(=3F)=20change=20forces=20reboot=20after=20adding=20vif?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1752375672672
Message-Id: <c20c150d-31de-4a04-a87f-15a08769df13@vates.tech>
To: "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>, win-pv-devel <win-pv-devel@lists.xenproject.org>
References: <aHLpXnbqmNvqslxK@mail-itl>
In-Reply-To: <aHLpXnbqmNvqslxK@mail-itl>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.1dcb7d8c9398455a949a15264b329355?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250713:md
Date: Sun, 13 Jul 2025 03:01:13 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi Marek,

On 13/07/2025 01:01, Marek Marczykowski-G=C3=B3recki wrote:
> Hi,
> 
> Some recent(ish) change made Windows want a reboot after adding a vif to
> the domU config, even if such vif was there in the past (so, the driver
> was installed). While the prompt is there, network clearly works
> already.
> 
> The specific workflow is:
> 1. Create domU with vif included.
> 2. Install Windows (10 or 11 - both seems to be affected)
> 3. Install PV drivers
> 4. Shutdown Windows
> 5. Remove vif from the domU config
> 6. Start Windows, wait(?), shutdown
> 7. Re-add the vif and start domU
> 
> Such operation used to work perfectly fine without any extra reboot. But
> now domU prompts to reboot, like this:
> https://openqa.qubes-os.org/tests/146690#step/windows_clipboard_and_filec=
opy/25
> 
> Note that network actually works already at the point then reboot is
> prompted - so it seems the reboot isn't really necessary?
> 
> This is especially problematic because we have some domUs intentionally
> don't persist changes on the disk on reboot. So, this basically means
> reboot loop if you do a change to vif config...
> 
> The old/new versions are:
> 
>      xenvif updated from 9fd1af to 4608bc
>      xennet updated from ad7717 to 0b1a93
> 
> Full version differences can be seen at
> https://github.com/QubesOS/qubes-vmm-xen-windows-pvdrivers/pull/4/files
> 

It's probably Unplug v3 (xenvif 4608bc) since that's the only recent 
significant change on the unplug side. Though this change is pretty much 
required due to Microsoft's new rules on driver isolation.

Although I'm surprised that PV networking worked with your old driver 
combination, since xennet ad7717 requires Unplug v3 which xenvif never 
exposed until 4608bc. Are you sure you're not falling back to emulated 
networking?

I'm trying to simplify the situation with forced unplug, with which you 
can just inject the drivers and have them work out-of-box, but there's 
still some work to do wrt active device.


Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From win-pv-devel-bounces@lists.xenproject.org Mon Jul 14 07:57:19 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 14 Jul 2025 07:57:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1042660.1412748 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ubE3m-0006hg-PX; Mon, 14 Jul 2025 07:57:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1042660.1412748; Mon, 14 Jul 2025 07:57:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ubE3m-0006hY-MH; Mon, 14 Jul 2025 07:57:14 +0000
Received: by outflank-mailman (input) for mailman id 1042660;
 Mon, 14 Jul 2025 07:57:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8ZtD=Z3=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1ubE3l-0006hS-Pa
 for win-pv-devel@lists.xenproject.org; Mon, 14 Jul 2025 07:57:13 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 25a6f003-6088-11f0-a318-13f23c93f187;
 Mon, 14 Jul 2025 09:57:12 +0200 (CEST)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-553dceb342fso3577139e87.0
 for <win-pv-devel@lists.xenproject.org>; Mon, 14 Jul 2025 00:57:11 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 25a6f003-6088-11f0-a318-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1752479831; x=1753084631; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=NR90YZDTbdvWi8/i2dVxW5cLYXT8MCJzM//RtJI2RnA=;
        b=lZGfHYYT5a/iacBd4mrYGsG3uie7QbQnTmCSKtMrCcMNRcWUevKSqnlkkezViTtkHK
         D5qf2iBZRlSKw2LmwrqG2eGs1+hKlcCRTsIR97E5j+EYLX1pwQuorLzJmj2LiGgkl0pD
         gNcbN9jLaTC42dAv1wgvpl9I2toY0Ro9Hs6R4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1752479831; x=1753084631;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=NR90YZDTbdvWi8/i2dVxW5cLYXT8MCJzM//RtJI2RnA=;
        b=fgSznzPb2lM5faPMmqK7aC1zkTCHmuaBfVuRGNZE9asjyq3HT/O4dTxC+ZPnxLR+ZD
         4vTpSpSFgW7ZY/eCLIMUz0h6GuzMCYRSVAIKbK3kh1ZL6X+yNxC5Fpq9+5PGvQd8kI8M
         NKz08bUlcPmaXxefeYfPCgnKdX4FeOUi6ARN2TzXhds3YLq+v88GbulRnh5mlVXb/QoT
         yNR8sEQoQzMpMQ/NW/4f2rj3ievN9YcqpYq2JfDxRLZZOGTV8OmHWXRMpO1vTXn/dzqF
         cJ1CtPitDwMdd+NETT7fg92ng0qqAu9UHmzJ4zNA6wSeTjATUrqA2WuGIxRxucgsazP9
         tREw==
X-Gm-Message-State: AOJu0YzuZ3xW8zVFmMh8fE3TZQVQOoHFotWaMC+IwFdrVGPZUznnSeEV
	o9mSY9pxY5GvQJUjUWTJm4XSMpvFGnD3IqJvFrR2blwg5ZbmRU4XMYUNqTjjjZ7ZNk1KEm5Xoye
	OUrf+XCshRL/uyshP9yx/huXHcF7FEJxdA5ySOFBPVCPRKhEHOcw=
X-Gm-Gg: ASbGnctUxIuK5Y/qWyQ0TcXII+SWNqu9K5qmOF/dk62guOAgo0F7CdtQH2Sl+5k1Vdn
	51c4uhi9iIaPQWB3KU8pakv/TLOPpH/Vmz99SEhaqQqI1TNHfnEfYqtTpN1hmQ2eDhjWfN8hTbd
	quQ3FK6VwYvrReIcGBB+O1OQcbkVGAMBPnyUf+9k1y1ucOkau7+OZuw5bzm+TieZKuTtpUE00bO
	J/Sjz0=
X-Google-Smtp-Source: AGHT+IFdFV58VCZqKC/Ih37vaxOH66XRgjkCBNd8RQwQMLxk0pFGiIgyY2E2AfGZhCrfAveIdX/5nanFfW0TV55bR6w=
X-Received: by 2002:a05:6512:318d:b0:54e:81ec:2c83 with SMTP id
 2adb3069b0e04-55a044d42d2mr3045708e87.18.1752479830438; Mon, 14 Jul 2025
 00:57:10 -0700 (PDT)
MIME-Version: 1.0
References: <20250711152440.1684-1-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250711152440.1684-1-ngoc-tu.dinh@vates.tech>
From: Owen Smith <owen.smith@cloud.com>
Date: Mon, 14 Jul 2025 08:56:57 +0100
X-Gm-Features: Ac12FXw3QUHLUuax5MjiqbnV6u5Kg6MuqbyqEDW3Lbez392qXLoyQueH_t9bNnU
Message-ID: <CAC_UY89gyJLREUd-0CfD+K=cAqLkdSAEDsqCadsiTbsfpq5C2A@mail.gmail.com>
Subject: Re: [XENIFACE PATCH] Call SetLocalTime twice to set system time
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000c508c50639df0108"

--000000000000c508c50639df0108
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

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

On Fri, Jul 11, 2025 at 4:24=E2=80=AFPM Tu Dinh <ngoc-tu.dinh@vates.tech> w=
rote:

> Per Microsoft, SetLocalTime must be called twice to correctly update
> system time while taking daylight saving time into account.
>
> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
> ---
>  src/xenagent/xenifacedevice.cpp | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/src/xenagent/xenifacedevice.cpp
> b/src/xenagent/xenifacedevice.cpp
> index 7b45c8c..f81a838 100644
> --- a/src/xenagent/xenifacedevice.cpp
> +++ b/src/xenagent/xenifacedevice.cpp
> @@ -537,8 +537,11 @@ void CXenIfaceDeviceList::SetXenTime(CXenIfaceDevice=
*
> device, bool forced)
>                     sys.wYear, sys.wMonth, sys.wDay,
>                     sys.wHour, sys.wMinute, sys.wSecond,
> sys.wMilliseconds);
>
> -    if (local)
> +    if (local) {
> +        // Must call SetLocalTime twice to correctly adjust DST per
> Microsoft.
>          SetLocalTime(&sys);
> -    else
> +        SetLocalTime(&sys);
> +    } else {
>          SetSystemTime(&sys);
> +    }
>  }
> --
> 2.50.1.windows.1
>
>
>
> Ngoc Tu Dinh | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech
>
>

--000000000000c508c50639df0108
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">Reviewed-by: Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com">owen=
.smith@cloud.com</a>&gt;</div></div><br><div class=3D"gmail_quote gmail_quo=
te_container"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, Jul 11, 2025 at=
 4:24=E2=80=AFPM Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt; wrote:<br></div><b=
lockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-le=
ft:1px solid rgb(204,204,204);padding-left:1ex">Per Microsoft, SetLocalTime=
 must be called twice to correctly update<br>
system time while taking daylight saving time into account.<br>
<br>
Signed-off-by: Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt;<br>
---<br>
=C2=A0src/xenagent/xenifacedevice.cpp | 7 +++++--<br>
=C2=A01 file changed, 5 insertions(+), 2 deletions(-)<br>
<br>
diff --git a/src/xenagent/xenifacedevice.cpp b/src/xenagent/xenifacedevice.=
cpp<br>
index 7b45c8c..f81a838 100644<br>
--- a/src/xenagent/xenifacedevice.cpp<br>
+++ b/src/xenagent/xenifacedevice.cpp<br>
@@ -537,8 +537,11 @@ void CXenIfaceDeviceList::SetXenTime(CXenIfaceDevice* =
device, bool forced)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 sys.w=
Year, sys.wMonth, sys.wDay,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 sys.w=
Hour, sys.wMinute, sys.wSecond, sys.wMilliseconds);<br>
<br>
-=C2=A0 =C2=A0 if (local)<br>
+=C2=A0 =C2=A0 if (local) {<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 // Must call SetLocalTime twice to correctly a=
djust DST per Microsoft.<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0SetLocalTime(&amp;sys);<br>
-=C2=A0 =C2=A0 else<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 SetLocalTime(&amp;sys);<br>
+=C2=A0 =C2=A0 } else {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0SetSystemTime(&amp;sys);<br>
+=C2=A0 =C2=A0 }<br>
=C2=A0}<br>
-- <br>
2.50.1.windows.1<br>
<br>
<br>
<br>
Ngoc Tu Dinh | Vates XCP-ng Developer<br>
<br>
XCP-ng &amp; Xen Orchestra - Vates solutions<br>
<br>
web: <a href=3D"https://vates.tech" rel=3D"noreferrer" target=3D"_blank">ht=
tps://vates.tech</a><br>
<br>
</blockquote></div>

--000000000000c508c50639df0108--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 14 07:57:35 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 14 Jul 2025 07:57:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1042662.1412754 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ubE47-0006kz-ST; Mon, 14 Jul 2025 07:57:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1042662.1412754; Mon, 14 Jul 2025 07:57:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ubE47-0006kr-ON; Mon, 14 Jul 2025 07:57:35 +0000
Received: by outflank-mailman (input) for mailman id 1042662;
 Mon, 14 Jul 2025 07:57:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8ZtD=Z3=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1ubE46-0006hS-WD
 for win-pv-devel@lists.xenproject.org; Mon, 14 Jul 2025 07:57:35 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 33070f4d-6088-11f0-a318-13f23c93f187;
 Mon, 14 Jul 2025 09:57:33 +0200 (CEST)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-555024588a8so3578019e87.0
 for <win-pv-devel@lists.xenproject.org>; Mon, 14 Jul 2025 00:57:33 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 33070f4d-6088-11f0-a318-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1752479853; x=1753084653; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=ODOUcBwmYRCGnFvXXrVfyAJXCnIVwMNjezRWSAzYf2M=;
        b=VDSx9+gJ/ECVZBCGHwbnhJho1nTbdQh1cLWKHlLa1dTDXu3HIpDe3HFS+Yd6B19KMP
         D2c4e7RTpBVrf4DjcFrzfv1CG6btuRbvDKwOdPCP7xaMh6z/6J3BCPCrrTgBlO41kvIB
         rbZTFO5a/bKRPfn4GY4TcdyV2OgV+lkkP8Gzs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1752479853; x=1753084653;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ODOUcBwmYRCGnFvXXrVfyAJXCnIVwMNjezRWSAzYf2M=;
        b=V5xw/F+INyYHC1qp9Ors3TgcS4fRuyhnyFVliSWp4V44sYhFLJR3Jl7yIjb8YX3sjd
         /1YjMsymuWDSiznKmnbtBe5CHL1+O9Yfv9riChW2WK0A05cFKwCM4muiQQJQ5qa0vyCG
         g89eCkoZAV21tkx2yuAKs1abugSpyYSaJLLGkHmgMBNGIPlZcB8KN0zjHYFfoVtM8jNG
         GCKFogo+FVnsk9OCaLhPPzuCjzxXE+Z5KHaz5IhJ0jh18cyGC09lUJ50a2PLg7J8FtMa
         sZJqFcZNEyUlzl3v2Me84XQXVsMF7gXmQ9V1wz5mFYEwl1hd5strJUERBEgeBe8Ob4zO
         bjPQ==
X-Gm-Message-State: AOJu0Yy9ehWxGdVxVrDTfwIdJuagb6UJeYXJrq5qESTdCNgelLXoYZ/p
	sd50z3+QS6CrEnj8iVQmfQcVRKPV+7ilU4J5VN1Q5KL0GOsIaYkSORXxXn/cMfisZ6ndqzcqf2h
	exbn3Wo+6W0xPASd9ueVdD16otLQnSqyjW4ZWarKNze+hD+O27qM=
X-Gm-Gg: ASbGncsQhvb5TED4Ia9zR2BmkV78FP++W5O5IZq8Sp6iF5DOKM8hzDGCIdg05lFdU+T
	hyLJfekJ46YA9Bw3gZetwYdEei5tICST/uo2mcTk//doUdyy8DkKUIPPnA5kKm81ZVeQNpLd/jz
	s+g7SdnADhPzi+fevE1iGsfoNLCtwJViJ/U5WGG/zy6XoDsafYbcy3UGYAY5OYcMIGnu8ch4dPZ
	aipFh1yME8ESZ0dag==
X-Google-Smtp-Source: AGHT+IHZjnY87zNcWe7WU9sXoI3PyZctrgBiBoq1v9Flyobeh7AbeYNyG97Fu+ICcySF2ry4IkC9CHHdBdAoqoWVYdo=
X-Received: by 2002:a05:6512:31c6:b0:553:37a7:b217 with SMTP id
 2adb3069b0e04-55a046039e1mr3593920e87.35.1752479852906; Mon, 14 Jul 2025
 00:57:32 -0700 (PDT)
MIME-Version: 1.0
References: <20250711152359.979-1-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250711152359.979-1-ngoc-tu.dinh@vates.tech>
From: Owen Smith <owen.smith@cloud.com>
Date: Mon, 14 Jul 2025 08:57:21 +0100
X-Gm-Features: Ac12FXz92K7ynjM2qqAKYyQHVmk5wrOswUpj7jxZguOq6CRo7mppxNAb3z5GLgs
Message-ID: <CAC_UY89VK45wqUj4Y-ro3xUdCBNfyKfb6CXCMqmHcKEJg=ujLQ@mail.gmail.com>
Subject: Re: [XENBUS PATCH] Open the correct vendor device enum key
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="0000000000001bdfd60639df0395"

--0000000000001bdfd60639df0395
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

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

On Fri, Jul 11, 2025 at 4:24=E2=80=AFPM Tu Dinh <ngoc-tu.dinh@vates.tech> w=
rote:

> The SUBSYS_ part of the vendor device ID string is also branded with
> VENDOR_DEVICE_ID.
>
> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
> ---
>  src/xen/config.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/xen/config.c b/src/xen/config.c
> index a74f95b..99980a6 100644
> --- a/src/xen/config.c
> +++ b/src/xen/config.c
> @@ -152,7 +152,8 @@ __ConfigIsVendorDevicePresent(
>      HANDLE      DeviceKey;
>      BOOLEAN     Found;
>      NTSTATUS    status;
> -    PCSTR       VendorDeviceID =3D "PCI\\VEN_5853&DEV_"
> VENDOR_DEVICE_ID_STR "&SUBSYS_C0005853&REV_01";
> +    PCSTR       VendorDeviceID =3D "PCI\\VEN_5853&DEV_" VENDOR_DEVICE_ID=
_STR
> +                                 "&SUBSYS_" VENDOR_DEVICE_ID_STR
> "5853&REV_01";
>
>      status =3D RegistryOpenSubKey(NULL,
>                                  ENUM_PATH,
> --
> 2.50.1.windows.1
>
>
>
> Ngoc Tu Dinh | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech
>
>

--0000000000001bdfd60639df0395
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">Reviewed-by: Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com">owen=
.smith@cloud.com</a>&gt;</div></div><br><div class=3D"gmail_quote gmail_quo=
te_container"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, Jul 11, 2025 at=
 4:24=E2=80=AFPM Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt; wrote:<br></div><b=
lockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-le=
ft:1px solid rgb(204,204,204);padding-left:1ex">The SUBSYS_ part of the ven=
dor device ID string is also branded with<br>
VENDOR_DEVICE_ID.<br>
<br>
Signed-off-by: Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt;<br>
---<br>
=C2=A0src/xen/config.c | 3 ++-<br>
=C2=A01 file changed, 2 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/src/xen/config.c b/src/xen/config.c<br>
index a74f95b..99980a6 100644<br>
--- a/src/xen/config.c<br>
+++ b/src/xen/config.c<br>
@@ -152,7 +152,8 @@ __ConfigIsVendorDevicePresent(<br>
=C2=A0 =C2=A0 =C2=A0HANDLE=C2=A0 =C2=A0 =C2=A0 DeviceKey;<br>
=C2=A0 =C2=A0 =C2=A0BOOLEAN=C2=A0 =C2=A0 =C2=A0Found;<br>
=C2=A0 =C2=A0 =C2=A0NTSTATUS=C2=A0 =C2=A0 status;<br>
-=C2=A0 =C2=A0 PCSTR=C2=A0 =C2=A0 =C2=A0 =C2=A0VendorDeviceID =3D &quot;PCI=
\\VEN_5853&amp;DEV_&quot; VENDOR_DEVICE_ID_STR &quot;&amp;SUBSYS_C0005853&a=
mp;REV_01&quot;;<br>
+=C2=A0 =C2=A0 PCSTR=C2=A0 =C2=A0 =C2=A0 =C2=A0VendorDeviceID =3D &quot;PCI=
\\VEN_5853&amp;DEV_&quot; VENDOR_DEVICE_ID_STR<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;&amp;SUBSYS_&quot; VENDO=
R_DEVICE_ID_STR &quot;5853&amp;REV_01&quot;;<br>
<br>
=C2=A0 =C2=A0 =C2=A0status =3D RegistryOpenSubKey(NULL,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ENUM_PATH,<br>
-- <br>
2.50.1.windows.1<br>
<br>
<br>
<br>
Ngoc Tu Dinh | Vates XCP-ng Developer<br>
<br>
XCP-ng &amp; Xen Orchestra - Vates solutions<br>
<br>
web: <a href=3D"https://vates.tech" rel=3D"noreferrer" target=3D"_blank">ht=
tps://vates.tech</a><br>
<br>
</blockquote></div>

--0000000000001bdfd60639df0395--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 14 08:25:46 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 14 Jul 2025 08:25:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1042694.1412767 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ubEVN-0004Dw-3C; Mon, 14 Jul 2025 08:25:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1042694.1412767; Mon, 14 Jul 2025 08:25:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ubEVN-0004Dp-0D; Mon, 14 Jul 2025 08:25:45 +0000
Received: by outflank-mailman (input) for mailman id 1042694;
 Mon, 14 Jul 2025 08:25:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8ZtD=Z3=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1ubEVL-0004Dj-D1
 for win-pv-devel@lists.xenproject.org; Mon, 14 Jul 2025 08:25:43 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1ead0d52-608c-11f0-b894-0df219b8e170;
 Mon, 14 Jul 2025 10:25:38 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-32f1763673cso50131811fa.3
 for <win-pv-devel@lists.xenproject.org>; Mon, 14 Jul 2025 01:25:37 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1ead0d52-608c-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1752481537; x=1753086337; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=yPsA4NLjMuZpQKcmpoQztYBKsgvHx8N5Ejqg5PBal8E=;
        b=uNB7JaBCtYwYadPp4qyXM3kgadkyZGupWh6nufQzEH9gp1siERA8OTVa8Vyei/aqPq
         Pz45ASnTa4hy6QaCEyutzQHPYbs169RuYKHEvZtfeispLfx6l7qVyuXe2K/N7MdBHVRI
         FN+wnLF3SloEqijZVbbLZEXdqKltMRVR8T2MU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1752481537; x=1753086337;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=yPsA4NLjMuZpQKcmpoQztYBKsgvHx8N5Ejqg5PBal8E=;
        b=lYBNlaHxXsc2zsDDz4A+Qi0gJhr9AZde8YhxUNArwVZpqiexqIfr2NN7yLv0fSzhFV
         S1KXmUrsQe9f+Kgs7tQY79tf10KB4DOHzdEFrTByEVc+kO1Wd4RfvjBODFFFRFkY1YWv
         hUiOnPWIFJk7wUUVWOuJz/9lr/WZxlPVEGBFDvN5KKNiM+2SSc/anFwOX6gW1bn13ksW
         M9sOeQwXAggUU67jCaYXNTlyz1PvNzpnk5NTJICK+Gfn8YLdB+SvDX/ME9YC+6dbUZw5
         o6QEKG2qcuA/NJyXc0JDgGZEJ6Mjv76mvsllPjSaF21AP36fRHvzh35BQdnvju+e8N51
         TF3Q==
X-Forwarded-Encrypted: i=1; AJvYcCVPYZ3qF7AMw29JE67Db1k4ftjrEnmHGCszmmJ+Nkd75qT5ZuN3CcTfEGG3Tye9wqyL9s98Cxvk6H8JBYA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxV/f9/m1KrJkbOkZVUakIXwWkLuLvFuAYU5B58bllaLQaha61H
	DgifIWkHEeT/sZZhJzPrQ/jsjul7aPCv/OuYKQalqQ64oCmidn+DVPdXDIk25RBEzxstPQpjqme
	f/0ZVaK5+SYNq/BSAnxbX1RL5mAcnsAqDqftseUlt
X-Gm-Gg: ASbGncuV5AYgH6yot8zx2n2fZE2/JtytkJQTopmm7JuvxuBkoa62wlRDk1/J5jHuzWE
	fsB54S1CdEJLB04FitFeK0CR7rhwonLB47UxZPvUGqAoBclUTPjS02bgYueMADxSAI87EUx9GD0
	ClyIUwcKsBpLFZV6XLCeL4POMjOUMaabMU0GgbAetIYTJSHkwYQEV2qJlT5/mkTom6RukZStqHC
	Ki3KXc=
X-Google-Smtp-Source: AGHT+IHswWJQPBnAa72zRA0huj7JWniA6lbrq7gPI76upFS2gfDfGXBSjhumoofYQPwKfWs57YiqdhlXtngTdVc471U=
X-Received: by 2002:a05:651c:b28:b0:32b:7413:503 with SMTP id
 38308e7fff4ca-330532dea4fmr34894421fa.16.1752481536715; Mon, 14 Jul 2025
 01:25:36 -0700 (PDT)
MIME-Version: 1.0
References: <aHLpXnbqmNvqslxK@mail-itl> <c20c150d-31de-4a04-a87f-15a08769df13@vates.tech>
In-Reply-To: <c20c150d-31de-4a04-a87f-15a08769df13@vates.tech>
From: Owen Smith <owen.smith@citrix.com>
Date: Mon, 14 Jul 2025 09:25:25 +0100
X-Gm-Features: Ac12FXxFpGXxyqtNx-oy3c8W3nvijdRUXCzt1OLLZRsG_QSeDE7Z3dSjovE-YMM
Message-ID: <CAC_UY8-Bw0crn5At4GmrChFt-_V0Tn2TTQLY5JXdHNk15Fjvmg@mail.gmail.com>
Subject: Re: Recent(?) change forces reboot after adding vif
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: =?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	win-pv-devel <win-pv-devel@lists.xenproject.org>
Content-Type: multipart/alternative; boundary="00000000000078ca1a0639df67c4"

--00000000000078ca1a0639df67c4
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

This is almost certainly related to UNPLUGv3. Does the daemon.log show
anything as to why xenvif detected the re-added vif as a new network device
that requires a reboot? Check for "ConfigRequestReboot" and preceding log
lines

Owen

On Sun, Jul 13, 2025 at 4:01=E2=80=AFAM Tu Dinh <ngoc-tu.dinh@vates.tech> w=
rote:

> Hi Marek,
>
> On 13/07/2025 01:01, Marek Marczykowski-G=C3=B3recki wrote:
> > Hi,
> >
> > Some recent(ish) change made Windows want a reboot after adding a vif t=
o
> > the domU config, even if such vif was there in the past (so, the driver
> > was installed). While the prompt is there, network clearly works
> > already.
> >
> > The specific workflow is:
> > 1. Create domU with vif included.
> > 2. Install Windows (10 or 11 - both seems to be affected)
> > 3. Install PV drivers
> > 4. Shutdown Windows
> > 5. Remove vif from the domU config
> > 6. Start Windows, wait(?), shutdown
> > 7. Re-add the vif and start domU
> >
> > Such operation used to work perfectly fine without any extra reboot. Bu=
t
> > now domU prompts to reboot, like this:
> >
> https://openqa.qubes-os.org/tests/146690#step/windows_clipboard_and_filec=
opy/25
> >
> > Note that network actually works already at the point then reboot is
> > prompted - so it seems the reboot isn't really necessary?
> >
> > This is especially problematic because we have some domUs intentionally
> > don't persist changes on the disk on reboot. So, this basically means
> > reboot loop if you do a change to vif config...
> >
> > The old/new versions are:
> >
> >      xenvif updated from 9fd1af to 4608bc
> >      xennet updated from ad7717 to 0b1a93
> >
> > Full version differences can be seen at
> > https://github.com/QubesOS/qubes-vmm-xen-windows-pvdrivers/pull/4/files
> >
>
> It's probably Unplug v3 (xenvif 4608bc) since that's the only recent
> significant change on the unplug side. Though this change is pretty much
> required due to Microsoft's new rules on driver isolation.
>
> Although I'm surprised that PV networking worked with your old driver
> combination, since xennet ad7717 requires Unplug v3 which xenvif never
> exposed until 4608bc. Are you sure you're not falling back to emulated
> networking?
>
> I'm trying to simplify the situation with forced unplug, with which you
> can just inject the drivers and have them work out-of-box, but there's
> still some work to do wrt active device.
>
>
> Ngoc Tu Dinh | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech
>
>
>
>

--00000000000078ca1a0639df67c4
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">This is almost certainly related to UNPLUGv3. Does the daemon.log show a=
nything as to why xenvif detected the re-added vif as a new network device =
that requires a reboot? Check for &quot;ConfigRequestReboot&quot; and prece=
ding=C2=A0log lines</div><div class=3D"gmail_default" style=3D"font-family:=
monospace"><br></div><div class=3D"gmail_default" style=3D"font-family:mono=
space">Owen</div></div><br><div class=3D"gmail_quote gmail_quote_container"=
><div dir=3D"ltr" class=3D"gmail_attr">On Sun, Jul 13, 2025 at 4:01=E2=80=
=AFAM Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt; wrote:<br></div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli=
d rgb(204,204,204);padding-left:1ex">Hi Marek,<br>
<br>
On 13/07/2025 01:01, Marek Marczykowski-G=C3=B3recki wrote:<br>
&gt; Hi,<br>
&gt; <br>
&gt; Some recent(ish) change made Windows want a reboot after adding a vif =
to<br>
&gt; the domU config, even if such vif was there in the past (so, the drive=
r<br>
&gt; was installed). While the prompt is there, network clearly works<br>
&gt; already.<br>
&gt; <br>
&gt; The specific workflow is:<br>
&gt; 1. Create domU with vif included.<br>
&gt; 2. Install Windows (10 or 11 - both seems to be affected)<br>
&gt; 3. Install PV drivers<br>
&gt; 4. Shutdown Windows<br>
&gt; 5. Remove vif from the domU config<br>
&gt; 6. Start Windows, wait(?), shutdown<br>
&gt; 7. Re-add the vif and start domU<br>
&gt; <br>
&gt; Such operation used to work perfectly fine without any extra reboot. B=
ut<br>
&gt; now domU prompts to reboot, like this:<br>
&gt; <a href=3D"https://openqa.qubes-os.org/tests/146690#step/windows_clipb=
oard_and_filecopy/25" rel=3D"noreferrer" target=3D"_blank">https://openqa.q=
ubes-os.org/tests/146690#step/windows_clipboard_and_filecopy/25</a><br>
&gt; <br>
&gt; Note that network actually works already at the point then reboot is<b=
r>
&gt; prompted - so it seems the reboot isn&#39;t really necessary?<br>
&gt; <br>
&gt; This is especially problematic because we have some domUs intentionall=
y<br>
&gt; don&#39;t persist changes on the disk on reboot. So, this basically me=
ans<br>
&gt; reboot loop if you do a change to vif config...<br>
&gt; <br>
&gt; The old/new versions are:<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 xenvif updated from 9fd1af to 4608bc<br>
&gt;=C2=A0 =C2=A0 =C2=A0 xennet updated from ad7717 to 0b1a93<br>
&gt; <br>
&gt; Full version differences can be seen at<br>
&gt; <a href=3D"https://github.com/QubesOS/qubes-vmm-xen-windows-pvdrivers/=
pull/4/files" rel=3D"noreferrer" target=3D"_blank">https://github.com/Qubes=
OS/qubes-vmm-xen-windows-pvdrivers/pull/4/files</a><br>
&gt; <br>
<br>
It&#39;s probably Unplug v3 (xenvif 4608bc) since that&#39;s the only recen=
t <br>
significant change on the unplug side. Though this change is pretty much <b=
r>
required due to Microsoft&#39;s new rules on driver isolation.<br>
<br>
Although I&#39;m surprised that PV networking worked with your old driver <=
br>
combination, since xennet ad7717 requires Unplug v3 which xenvif never <br>
exposed until 4608bc. Are you sure you&#39;re not falling back to emulated =
<br>
networking?<br>
<br>
I&#39;m trying to simplify the situation with forced unplug, with which you=
 <br>
can just inject the drivers and have them work out-of-box, but there&#39;s =
<br>
still some work to do wrt active device.<br>
<br>
<br>
Ngoc Tu Dinh | Vates XCP-ng Developer<br>
<br>
XCP-ng &amp; Xen Orchestra - Vates solutions<br>
<br>
web: <a href=3D"https://vates.tech" rel=3D"noreferrer" target=3D"_blank">ht=
tps://vates.tech</a><br>
<br>
<br>
<br>
</blockquote></div>

--00000000000078ca1a0639df67c4--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 14 13:59:18 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 14 Jul 2025 13:59:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1042849.1412921 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ubJi8-0003Nm-P9; Mon, 14 Jul 2025 13:59:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1042849.1412921; Mon, 14 Jul 2025 13:59:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ubJi8-0003Nf-MQ; Mon, 14 Jul 2025 13:59:16 +0000
Received: by outflank-mailman (input) for mailman id 1042849;
 Mon, 14 Jul 2025 13:59:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kt7n=Z3=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1ubJi7-0003NZ-Gp
 for win-pv-devel@lists.xenproject.org; Mon, 14 Jul 2025 13:59:15 +0000
Received: from fhigh-a4-smtp.messagingengine.com
 (fhigh-a4-smtp.messagingengine.com [103.168.172.155])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b8778151-60ba-11f0-b894-0df219b8e170;
 Mon, 14 Jul 2025 15:59:13 +0200 (CEST)
Received: from phl-compute-08.internal (phl-compute-08.phl.internal
 [10.202.2.48])
 by mailfhigh.phl.internal (Postfix) with ESMTP id DDE131400412;
 Mon, 14 Jul 2025 09:59:11 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-08.internal (MEProxy); Mon, 14 Jul 2025 09:59:11 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 14 Jul 2025 09:59:10 -0400 (EDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b8778151-60ba-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm2; t=1752501551;
	 x=1752587951; bh=HmikGz/5zjoX4ZMzVlSaXMIdM4mkiS3fZkki+RdZeuE=; b=
	FaYOHa2oMs+2z6+HFYYoHhuCpxk6MR1HERGDLRjjqxgI9Hl7XXpSu5mqdJg+uR3K
	tCgEUAwiIib8thvR3RaOjAE+8OykDigVgGfk1grWKtBcyVmy1hzMUhMBC+wYKKEL
	JnbdyGZ6PgJvBW8VK340z6uiTa8dl75VlwhnJgbD1PywfcuVWkScpnSHifhuATa7
	tpt7jqlorTnJcCKxc+m08uuYKbRk9UZL8wAraHLZ5yudsPxI8IskMH4bMdUmS7nL
	hoy5MhL1OrISY7LlGq5Ogtq/3NSOGdPvh9NOKOqGC02z5XVHWcO+2sHudZiE3qo9
	+6Iy69UiECdTR8im3YICtw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=
	1752501551; x=1752587951; bh=HmikGz/5zjoX4ZMzVlSaXMIdM4mkiS3fZkk
	i+RdZeuE=; b=c+lTlYCwh73Qh7yog6t8zWhw9iIk5ucC6t4xnscY56wCLAxar91
	SqaME3tI/39nDHj4Sm2xQ9FssifdMcZTqwIzKW1f7X9VT2iayj61e1qyrj9S2dSs
	f9ZVBmYw2RU5fj3rFRT15K5nCCPUvI1+nNFoId0XTDvQm2NigQFWa8zxXNJbChiS
	JRLLy4vmXoyedGDPsxviE2hlIkOtqJ3zsSndN1L3+CDuvN5b2xMxfvF5TJNrCmRm
	gS4If3c4gvP2WgAAW8yuPq8Qfnkc8Z0iRrbajP9CsSZatU5BXuZiSvCKk/NDpOCW
	JApuKzO5DZlXPmsKsIjIZ8zo6R3GoJasYZg==
X-ME-Sender: <xms:Lw11aJVDyGgYJghTBl9S8oqcFfHsF1MI2cGLssI7anHYmT2fAscg2A>
    <xme:Lw11aM2s1kFZNg5nyxnzEV-pHxHR2rbR3H3qrt2MOIupPQfwe28CwJalX3Cgl_SH9
    wlMHnjp9hiR7w>
X-ME-Received: <xmr:Lw11aO1EbuODEROjJHh6VVTm-rEKt9sh8DVTVyimUf8G0rOugl-GyP3FsunEka6X34_oXuDldhjzQD3TB-bL46N85Fc_0Ve0sR4>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdehvddufecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpedvvddtieev
    leduhfejheeiteetteeigedugeduueegudejvefhieeufeefkedvkeenucffohhmrghinh
    epqhhusggvshdqohhsrdhorhhgpdhgihhthhhusgdrtghomhdpvhgrthgvshdrthgvtghh
    necuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrh
    hmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghp
    thhtohepfedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepohifvghnrdhsmhhith
    hhsegtihhtrhhigidrtghomhdprhgtphhtthhopehnghhotgdqthhurdguihhnhhesvhgr
    thgvshdrthgvtghhpdhrtghpthhtohepfihinhdqphhvqdguvghvvghlsehlihhsthhsrd
    igvghnphhrohhjvggtthdrohhrgh
X-ME-Proxy: <xmx:Lw11aH_CvWIuISVRgM9Xo6LPSa-gHKaF68Hn-wlGvlfsBEnIsqIzgQ>
    <xmx:Lw11aD1rLwGg8YXhiGlQ_73iH0AwmFKZ2CmCWpYILmAIocwR1Kfjxg>
    <xmx:Lw11aM-AmEtq_CFZ7jIvXemi1PRzwa4lEcl_vjcJ79JcpILRLOYdxw>
    <xmx:Lw11aLuSq9flnF8Oe49hb8TPiOiF7rALgCt-z6rdgCIatD6RyVgcmw>
    <xmx:Lw11aM9nyIVEEw4tp4zVk0Y7y31ExUkrxJxPnEpbKM-qnJ7bvZ4SG3y2>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 14 Jul 2025 15:59:08 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Owen Smith <owen.smith@citrix.com>
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>,
	win-pv-devel <win-pv-devel@lists.xenproject.org>
Subject: Re: Recent(?) change forces reboot after adding vif
Message-ID: <aHUNLKgPBUJewc6E@mail-itl>
References: <aHLpXnbqmNvqslxK@mail-itl>
 <c20c150d-31de-4a04-a87f-15a08769df13@vates.tech>
 <CAC_UY8-Bw0crn5At4GmrChFt-_V0Tn2TTQLY5JXdHNk15Fjvmg@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="pIE+NOP4UtzSyi4K"
Content-Disposition: inline
In-Reply-To: <CAC_UY8-Bw0crn5At4GmrChFt-_V0Tn2TTQLY5JXdHNk15Fjvmg@mail.gmail.com>


--pIE+NOP4UtzSyi4K
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 14 Jul 2025 15:59:08 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Owen Smith <owen.smith@citrix.com>
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>,
	win-pv-devel <win-pv-devel@lists.xenproject.org>
Subject: Re: Recent(?) change forces reboot after adding vif

On Mon, Jul 14, 2025 at 09:25:25AM +0100, Owen Smith wrote:
> This is almost certainly related to UNPLUGv3. Does the daemon.log show
> anything as to why xenvif detected the re-added vif as a new network devi=
ce
> that requires a reboot? Check for "ConfigRequestReboot" and preceding log
> lines

Where can I find this daemon.log? Do I need to enable some extra logging
somehow?

The exact message I get is "Xen PV Network Class needs to restart the
system to complete installation".


> Owen
>=20
> On Sun, Jul 13, 2025 at 4:01=E2=80=AFAM Tu Dinh <ngoc-tu.dinh@vates.tech>=
 wrote:
>=20
> > Hi Marek,
> >
> > On 13/07/2025 01:01, Marek Marczykowski-G=C3=B3recki wrote:
> > > Hi,
> > >
> > > Some recent(ish) change made Windows want a reboot after adding a vif=
 to
> > > the domU config, even if such vif was there in the past (so, the driv=
er
> > > was installed). While the prompt is there, network clearly works
> > > already.
> > >
> > > The specific workflow is:
> > > 1. Create domU with vif included.
> > > 2. Install Windows (10 or 11 - both seems to be affected)
> > > 3. Install PV drivers
> > > 4. Shutdown Windows
> > > 5. Remove vif from the domU config
> > > 6. Start Windows, wait(?), shutdown
> > > 7. Re-add the vif and start domU
> > >
> > > Such operation used to work perfectly fine without any extra reboot. =
But
> > > now domU prompts to reboot, like this:
> > >
> > https://openqa.qubes-os.org/tests/146690#step/windows_clipboard_and_fil=
ecopy/25
> > >
> > > Note that network actually works already at the point then reboot is
> > > prompted - so it seems the reboot isn't really necessary?
> > >
> > > This is especially problematic because we have some domUs intentional=
ly
> > > don't persist changes on the disk on reboot. So, this basically means
> > > reboot loop if you do a change to vif config...
> > >
> > > The old/new versions are:
> > >
> > >      xenvif updated from 9fd1af to 4608bc
> > >      xennet updated from ad7717 to 0b1a93
> > >
> > > Full version differences can be seen at
> > > https://github.com/QubesOS/qubes-vmm-xen-windows-pvdrivers/pull/4/fil=
es
> > >
> >
> > It's probably Unplug v3 (xenvif 4608bc) since that's the only recent
> > significant change on the unplug side. Though this change is pretty much
> > required due to Microsoft's new rules on driver isolation.
> >
> > Although I'm surprised that PV networking worked with your old driver
> > combination, since xennet ad7717 requires Unplug v3 which xenvif never
> > exposed until 4608bc. Are you sure you're not falling back to emulated
> > networking?

That's a good point, indeed it's emulated network still.

> > I'm trying to simplify the situation with forced unplug, with which you
> > can just inject the drivers and have them work out-of-box, but there's
> > still some work to do wrt active device.
> >
> >
> > Ngoc Tu Dinh | Vates XCP-ng Developer
> >
> > XCP-ng & Xen Orchestra - Vates solutions
> >
> > web: https://vates.tech
> >
> >
> >
> >

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--pIE+NOP4UtzSyi4K
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmh1DSwACgkQ24/THMrX
1yxS7gf+M5Xnbv4gTXp/VPIEVLl5WUwdVcDuf6xmM7A+N00jY8zJPRLGKBiuauvb
rKm8+GLxfVWosFCXgd91Z6qfFqJGDKRG95E0HhZvOt0Itffb+oi3rRkKtKl0fLzX
WBfam5TV+VU6lLNsBsSwyesbGLfj9r7TtkZwunyhMukN1Zq7Fa1L3dTj0tqJJf3o
yAuleVhEgzHWl3hiPWZOjz5Ju0w97zLcm/hG39s4+pwZON+ELw45B+YnyT2pIq6r
nk5Y1QC5oZMMcFy6m69LN9f7v4aXF40HU+W1wgeqTsjbLWFwzrGn+rgGKrivnSYU
f7xCwcr9KpyVhuJIbpupqcac+4Gr+Q==
=uz0w
-----END PGP SIGNATURE-----

--pIE+NOP4UtzSyi4K--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 14 14:21:42 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 14 Jul 2025 14:21:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1042897.1412967 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ubK3p-0000rK-7s; Mon, 14 Jul 2025 14:21:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1042897.1412967; Mon, 14 Jul 2025 14:21:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ubK3p-0000rD-52; Mon, 14 Jul 2025 14:21:41 +0000
Received: by outflank-mailman (input) for mailman id 1042897;
 Mon, 14 Jul 2025 14:21:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=DtKD=Z3=bounce.vates.tech=bounce-md_30504962.68751270.v1-f216c838691d47c5b11ec59cac6d558a@srs-se1.protection.inumbo.net>)
 id 1ubK3o-0000r7-AM
 for win-pv-devel@lists.xenproject.org; Mon, 14 Jul 2025 14:21:40 +0000
Received: from mail145-16.atl61.mandrillapp.com
 (mail145-16.atl61.mandrillapp.com [198.2.145.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id da4a0145-60bd-11f0-a319-13f23c93f187;
 Mon, 14 Jul 2025 16:21:38 +0200 (CEST)
Received: from pmta06.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail145-16.atl61.mandrillapp.com (Mailchimp) with ESMTP id
 4bgkym4Zv1z8XRv92
 for <win-pv-devel@lists.xenproject.org>; Mon, 14 Jul 2025 14:21:36 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f216c838691d47c5b11ec59cac6d558a; Mon, 14 Jul 2025 14:21:36 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: da4a0145-60bd-11f0-a319-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1752502896; x=1752772896;
	bh=oBqvBAaK6GMkZWmwDNN9HrUWQOHcJMajqqByKnBR4+A=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=fWj2YTxMg8ihG6O8SK3YlT91+kPmAbGGUp9N7FEBLD2QRS3kVeaTdlX3zxE3vH786
	 rWSdG+40DfVPln6qLQdIdPx/WOvea+vx3/G2r1WMgsRd6SRutHMKTpAHMuRpYR8e08
	 o8Mk4bD55VOuRi8vMGHkGQxV8g/52ie2d9aWGCH+kZbXym8qHkYXOB8UQCL8n5sgSF
	 PIebtSOrjJXdxNkNj4AtoDWFK/8S8G326p3GVk0ZZNVOJUJ7x4bm0EbQIij0Fj2/yC
	 LuPTpojIs4oKFbEI4IFRDwG5kirOBRqxZZ5F90/FiissVsVqwk4aCsgweOjwXMscMr
	 KfUiUhCBRo7MA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1752502896; x=1752763396; i=ngoc-tu.dinh@vates.tech;
	bh=oBqvBAaK6GMkZWmwDNN9HrUWQOHcJMajqqByKnBR4+A=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=fUCbk3CgaF0NM4cwtCvVzbZsAJfrF3cu6HHPtn8UD05gY7xWxvEFzXxmy93TzKKT4
	 DgqFJa9uPGchSSbRZQiVXJKCglOwwIg5WaRs5IzZIedLMm7RlXoGEB9oAs9y5Eo00j
	 GBmaf8J505EkLKwJX5+tU4Ch/ZVZxhKOSum/5QzOf21enDATgmD2OwQkXFq83au053
	 2HcOmMb18S+GKn4Bk/H8v5ZD7cdWTthmuDbyGjHxN6Cw9cyN57dDvFWJqKdydH4+nu
	 KS9NrlSREBogBeS8ibPPw55/hlApYGK3TeATgbbwBy9p2Eu71MeywPUJBINlqJy7fT
	 jFxYlsMLBZ5MA==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20Recent(=3F)=20change=20forces=20reboot=20after=20adding=20vif?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1752502895745
Message-Id: <bf4319c5-e771-40dd-8007-26a51e7c374b@vates.tech>
To: "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>, "Owen Smith" <owen.smith@citrix.com>
Cc: win-pv-devel <win-pv-devel@lists.xenproject.org>
References: <aHLpXnbqmNvqslxK@mail-itl> <c20c150d-31de-4a04-a87f-15a08769df13@vates.tech> <CAC_UY8-Bw0crn5At4GmrChFt-_V0Tn2TTQLY5JXdHNk15Fjvmg@mail.gmail.com> <aHUNLKgPBUJewc6E@mail-itl>
In-Reply-To: <aHUNLKgPBUJewc6E@mail-itl>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.f216c838691d47c5b11ec59cac6d558a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250714:md
Date: Mon, 14 Jul 2025 14:21:36 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 14/07/2025 15:59, Marek Marczykowski-G=C3=B3recki wrote:
> On Mon, Jul 14, 2025 at 09:25:25AM +0100, Owen Smith wrote:
>> This is almost certainly related to UNPLUGv3. Does the daemon.log show
>> anything as to why xenvif detected the re-added vif as a new network dev=
ice
>> that requires a reboot? Check for "ConfigRequestReboot" and preceding lo=
g
>> lines
> 
> Where can I find this daemon.log? Do I need to enable some extra logging
> somehow?
> 
> The exact message I get is "Xen PV Network Class needs to restart the
> system to complete installation".
> 

If you're using XenServer/XCP-ng, you'll find it at /var/log/daemon.log.

If not, you can configure QEMU to trace on xen_platform_log events to 
listen to the Windows drivers' logging output.


Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From win-pv-devel-bounces@lists.xenproject.org Mon Jul 14 16:56:05 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 14 Jul 2025 16:56:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1043000.1413117 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ubMTD-0001uk-09; Mon, 14 Jul 2025 16:56:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1043000.1413117; Mon, 14 Jul 2025 16:56:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ubMTC-0001ud-TR; Mon, 14 Jul 2025 16:56:02 +0000
Received: by outflank-mailman (input) for mailman id 1043000;
 Mon, 14 Jul 2025 16:56:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kt7n=Z3=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1ubMTB-0001uX-5c
 for win-pv-devel@lists.xenproject.org; Mon, 14 Jul 2025 16:56:01 +0000
Received: from fhigh-a6-smtp.messagingengine.com
 (fhigh-a6-smtp.messagingengine.com [103.168.172.157])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6a534780-60d3-11f0-a319-13f23c93f187;
 Mon, 14 Jul 2025 18:55:59 +0200 (CEST)
Received: from phl-compute-10.internal (phl-compute-10.phl.internal
 [10.202.2.50])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 360761400507;
 Mon, 14 Jul 2025 12:55:58 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-10.internal (MEProxy); Mon, 14 Jul 2025 12:55:58 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 14 Jul 2025 12:55:57 -0400 (EDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a534780-60d3-11f0-a319-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm2; t=1752512158;
	 x=1752598558; bh=J43/HzIRExplwGAd5tdKKSROot+SVsTj7Em2qxSfCik=; b=
	qjx4Poq6I8MLyxAEkDfDlKlRuvbkbw2bjRbd40gY9E2tjPeJnj1HouNMGdySiAni
	GROnlsqhlMAbimuU4ig5fY30Icdy/Em7tU+uiCQbDXzgrdnNlH5JUeGP7zdeI4Jd
	MDatZRUZYsUbnjdLeJwLpx7ja/q9NKVid4NFnhNRn7is8LEEpbzYRAePzylh364L
	Gb8yK+QUSqK0tRiVKbmSD3EmWCET35mVWAugnRcn7fPvHH3PIt5aHFJkQrqax9tV
	j6yAMA27CaBnrz2U4LIppBxzy43IhEXfbG3kFDLFSutNONHaMEYUVIdXR1kuqTo2
	vcqqpPaTRq8+T2bwK6L9Tg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=
	1752512158; x=1752598558; bh=J43/HzIRExplwGAd5tdKKSROot+SVsTj7Em
	2qxSfCik=; b=QSr/LkAYsEObe44hPWBcd61ULeWjiNyLGatqoyzp6XLhsrq25J7
	bKpQhzkEA1dZHtqA0E69Tl2KRUM7Zgs6q+3vkoLxCIArJAKDevyAAE50QUmqGEq4
	hI40HhtyhYMbJO+Jc93lfy13n6Fl5xbB5JwmLTNqh3Kbv17PNCiCP7ANllnpS2UD
	6RsGf2L9kaxxdqOADqwEvhG2H+G88ShdrIm/t00Uh8Ur5O0G/o44TFqXrKXmEfjX
	9Lk+85H047tKlBrv1hLDBCt8OBLxITzJp3PH5Y4/sADtUCVu37uEduatWky0y17n
	Kbm/lOaq72gC2CZrponrioyf7vTbnjQadag==
X-ME-Sender: <xms:nTZ1aLJ5cOZ-13i6bi1jv2gM9j-YfkPsnY3-DEuUwmRwMeAoS4ggwQ>
    <xme:nTZ1aCbFz-vHydVKYYbwX35y7GVAAK0J8KezXNcKtRH0HcSzE1cpUOcy6L6ca3Ujo
    Hk9RUCSwlo0bw>
X-ME-Received: <xmr:nTZ1aNKYaa58ebZQ8ccAJYywm2-mz-HNLNtQytqGam9hETjI3TQPqViD-1kHNHOdd4gSjxt_fzo7BDvmM-qFdlC5XgWBMfuXIuU>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdehvdegkecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeeukeetteeg
    gffgkeduheetgeeileejjeeiiefhjeegvefhtefggfetueetteeuteenucffohhmrghinh
    epghhithhhuhgsrdgtohhmnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehm
    rghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsg
    drtghomhdpnhgspghrtghpthhtohepfedpmhhouggvpehsmhhtphhouhhtpdhrtghpthht
    ohepnhhgohgtqdhtuhdrughinhhhsehvrghtvghsrdhtvggthhdprhgtphhtthhopehofi
    gvnhdrshhmihhthhestghithhrihigrdgtohhmpdhrtghpthhtohepfihinhdqphhvqdgu
    vghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrgh
X-ME-Proxy: <xmx:nTZ1aAA5PIoVLq3HUN5E13BPUt1eSbTUzDVdHD2XyiHYNWRM2DKpPQ>
    <xmx:nTZ1aCrGa409HqSf2euYA5u_Rmx2tIrAtROUiN3QFe35c4t0QtHQ3w>
    <xmx:nTZ1aLgleJO82reN3wzaqPpIh0dx7baXaMhbBULY_MCmFm-nNBPo_w>
    <xmx:nTZ1aPAf2nQXPZSzZlEmAExxNW9l2XMZT5lp7xQwl_T4wbuKbRhYmg>
    <xmx:njZ1aPjpRpsTiZZDPe_Talx5n4rK3m-h4i012LUYBLvAZAhD4r3P7Jyk>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 14 Jul 2025 18:55:55 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: Owen Smith <owen.smith@citrix.com>,
	win-pv-devel <win-pv-devel@lists.xenproject.org>
Subject: Re: Recent(?) change forces reboot after adding vif
Message-ID: <aHU2m_Oe0lEZNCcN@mail-itl>
References: <aHLpXnbqmNvqslxK@mail-itl>
 <c20c150d-31de-4a04-a87f-15a08769df13@vates.tech>
 <CAC_UY8-Bw0crn5At4GmrChFt-_V0Tn2TTQLY5JXdHNk15Fjvmg@mail.gmail.com>
 <aHUNLKgPBUJewc6E@mail-itl>
 <bf4319c5-e771-40dd-8007-26a51e7c374b@vates.tech>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="MKYEbrus8ROoSr4o"
Content-Disposition: inline
In-Reply-To: <bf4319c5-e771-40dd-8007-26a51e7c374b@vates.tech>


--MKYEbrus8ROoSr4o
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 14 Jul 2025 18:55:55 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: Owen Smith <owen.smith@citrix.com>,
	win-pv-devel <win-pv-devel@lists.xenproject.org>
Subject: Re: Recent(?) change forces reboot after adding vif

On Mon, Jul 14, 2025 at 02:21:36PM +0000, Tu Dinh wrote:
> On 14/07/2025 15:59, Marek Marczykowski-G=C3=B3recki wrote:
> > On Mon, Jul 14, 2025 at 09:25:25AM +0100, Owen Smith wrote:
> >> This is almost certainly related to UNPLUGv3. Does the daemon.log show
> >> anything as to why xenvif detected the re-added vif as a new network d=
evice
> >> that requires a reboot? Check for "ConfigRequestReboot" and preceding =
log
> >> lines
> >
> > Where can I find this daemon.log? Do I need to enable some extra logging
> > somehow?
> >
> > The exact message I get is "Xen PV Network Class needs to restart the
> > system to complete installation".
> >
>=20
> If you're using XenServer/XCP-ng, you'll find it at /var/log/daemon.log.
>=20
> If not, you can configure QEMU to trace on xen_platform_log events to
> listen to the Windows drivers' logging output.

It's on Qubes OS. Adding trace on xen_platform_log worked:

Relevant (I hope) parts of the output:

1. When starting domU that has vif attached on the previous boot (no reboot=
 request):

xen_platform_log xen platform: xenvif|DriverEntry: XENVIF 9.1.0 (0) (11.07.=
2025)
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: BUS_INTERFACE=
 (VERSION 1)
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: DEBUG_INTERFA=
CE (VERSION 1)
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: SUSPEND_INTER=
FACE (VERSION 1)
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: EVTCHN_INTERF=
ACE (VERSION 9)
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: STORE_INTERFA=
CE (VERSION 2)
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: RANGE_SET_INT=
ERFACE (VERSION 1)
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: CACHE_INTERFA=
CE (VERSION 2)
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: GNTTAB_INTERF=
ACE (VERSION 4)
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: UNPLUG_INTERF=
ACE (VERSION 3)
xen_platform_log xen platform: xenvif|FdoCreate: FFFFC38DB76BDC80 (XP0001 X=
ENVIF)
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB707F8D0 UN=
KNOWN
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485760000 - FFFFF80485=
778FFF [xeniface.sys]
xen_platform_log xen platform: xeniface|DriverEntry: XENIFACE 9.1.0 (0) (11=
=2E07.2025)
xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE: SUSPEND_INT=
ERFACE (VERSION 1)
xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE: SHARED_INFO=
_INTERFACE (VERSION 4)
xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE: STORE_INTER=
FACE (VERSION 2)
xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE: EVTCHN_INTE=
RFACE (VERSION 9)
xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE: GNTTAB_INTE=
RFACE (VERSION 4)
xen_platform_log xen platform: xeniface|FdoInitialiseXSRegistryEntries: fai=
l1 c0000022
xen_platform_log xen platform: xeniface|FdoCreate: FFFFC38DB76BD970 (IFACE)
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB707FC00 UN=
KNOWN
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484B40000 - FFFFF80484=
BB9FFF [usbport.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484F80000 - FFFFF80484=
F9CFFF [usbehci.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484AB0000 - FFFFF80484=
B34FFF [ks.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484A80000 - FFFFF80484=
AA2FFF [drmk.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484A00000 - FFFFF80484=
A74FFF [portcls.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484BC0000 - FFFFF80484=
BF0FFF [hdaudbus.sys]
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB70D1360 UN=
KNOWN
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80486270000 - FFFFF80486=
31DFFF [USBXHCI.SYS]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80486330000 - FFFFF80486=
378FFF [Ucx01000.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80486380000 - FFFFF80486=
3CDFFF [intelppm.sys]
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB56EECF0 UN=
KNOWN
xen_platform_log xen platform: xen|ModuleAdd: FFFFF804863E0000 - FFFFF80486=
3EDFFF [NdisVirtualBus.sys]
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB571CCF0 UN=
KNOWN
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB574BCF0 UN=
KNOWN
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485800000 - FFFFF80485=
80BFFF [swenum.sys]
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB5705CF0 UN=
KNOWN
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485810000 - FFFFF80485=
81DFFF [rdpbus.sys]
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB574CCF0 UN=
KNOWN
xen_platform_log xen platform: xen|ModuleAdd: FFFFF804858C0000 - FFFFF80485=
8CFFFF [usbd.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485830000 - FFFFF80485=
8B8FFF [usbhub.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF804858E0000 - FFFFF80485=
961FFF [HdAudio.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485970000 - FFFFF80485=
981FFF [ksthunk.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485990000 - FFFFF80485=
A42FFF [USBHUB3.SYS]
xen_platform_log xen platform: xenvif|__PdoSetPermanentAddress: 0: 00:16:3e=
:5e:6c:00
xen_platform_log xen platform: xenvif|__PdoSetContainerID: 0 {d46f4229-a162=
-54d5-91f2-4efe2768708d}
xen_platform_log xen platform: xenvif|FrontendSetMaxQueues: device/vif/0: 2
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0: =3D=
=3D=3D=3D> 'UNKNOWN' -> 'CLOSED'
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in sta=
te 'PREPARED'
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in sta=
te 'CLOSED'
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0: <=3D=
=3D=3D=3D=3D
xen_platform_log xen platform: xenvif|PdoCreate: FFFFC38DB7852B70 (0)
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000000 -> CACHE v=
1 VIF v8 STORE v2 SUSPEND v1UNPLUG v1
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000001 -> CACHE v=
2 VIF v8 STORE v2 SUSPEND v1UNPLUG v1
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000002 -> CACHE v=
2 VIF v9 STORE v2 SUSPEND v1UNPLUG v1
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000003 -> CACHE v=
2 VIF v10 STORE v2 SUSPEND v1UNPLUG v1
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000004 -> CACHE v=
2 VIF v10 STORE v2 SUSPEND v1UNPLUG v2
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000005 -> CACHE v=
2 VIF v10 STORE v2 SUSPEND v1UNPLUG v3
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485A50000 - FFFFF80485=
A60FFF [xennet.sys]
xen_platform_log xen platform: xennet|DriverEntry: XENNET 9.1.0 (0) (11.07.=
2025)
xen_platform_log xen platform: xeniface|WmiRegister: DRV: XenIface WMI Init=
ialisation
xen_platform_log xen platform: xenvif|PdoSetFriendlyName: 0: Xen PV Network=
 Device #0
xen_platform_log xen platform: xenvif|SettingsRestore: fail1 (c0000034)
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0: =3D=
=3D=3D=3D> 'CLOSED' -> 'CONNECTED'
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in sta=
te 'PREPARED'
xen_platform_log xen platform: xenvif|__MacSetPermanentAddress: attr/vif/0:=
 00:16:3E:5E:6C:00
xen_platform_log xen platform: xenvif|__MacSetCurrentAddress: attr/vif/0: 0=
0:16:3E:5E:6C:00
xen_platform_log xen platform: xenvif|FrontendSetNumQueues: device/vif/0: 2
xen_platform_log xen platform: xenvif|FrontendSetSplit: device/vif/0: TRUE
xen_platform_log xen platform: xenbus|EvtchnBind: [14]: CPU 0:1
xen_platform_log xen platform: xenbus|EvtchnBind: [16]: CPU 0:1
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in sta=
te 'CONNECTED'
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0: <=3D=
=3D=3D=3D=3D
xen_platform_log xen platform: xenbus|UnplugRequest: NICS (MAKE)
xen_platform_log xen platform: xen|UnplugIncrementValue: NICS 1
xen_platform_log xen platform: xenvif|PdoQueryInterface: 0: VIF_INTERFACE (=
VERSION 10)
xen_platform_log xen platform: xenvif|PdoQueryInterface: 0: STORE_INTERFACE=
 (VERSION 2)
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: STORE_INTERFA=
CE (VERSION 2)
xen_platform_log xen platform: xenvif|PdoQueryInterface: 0: SUSPEND_INTERFA=
CE (VERSION 1)
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: SUSPEND_INTER=
FACE (VERSION 1)
xen_platform_log xen platform: xenvif|FrontendSetHashAlgorithm: device/vif/=
0: TOEPLITZ
xen_platform_log xen platform: xenvif|ControllerSetHashAlgorithm: fail2
xen_platform_log xen platform: xenvif|ControllerSetHashAlgorithm: fail1 (c0=
00000d)
xen_platform_log xen platform: xenvif|__FrontendUpdateHash: fail1 (c000000d)
xen_platform_log xen platform: xenvif|FrontendSetHashAlgorithm: fail2
xen_platform_log xen platform: xenvif|FrontendSetHashAlgorithm: fail1 (c000=
000d)
xen_platform_log xen platform: xenvif|ReceiverSetHashAlgorithm: fail1 (c000=
000d)
xen_platform_log xen platform: xenvif|PdoQueryInterface: 0: BUS_INTERFACE (=
VERSION 1)
xen_platform_log xen platform: xenbus|DmaGetAdapter: no interception
xen_platform_log xen platform: xennet|AdapterQueryInformation: UNSUPPORTED =
OID 00010300
xen_platform_log xen platform: xennet|AdapterQueryInformation: UNSUPPORTED =
OID 00010300
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0: =3D=
=3D=3D=3D> 'CONNECTED' -> 'ENABLED'
xen_platform_log xen platform: xenvif|__ReceiverRingEnable: device/vif/0[0]=
: =3D=3D=3D=3D>

1. When starting domU that has vif detached on the previous boot, but
had it earlier present (does request reboot):

xen_platform_log xen platform: xenvif|DriverEntry: XENVIF 9.1.0 (0) (11.07.=
2025)
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: BUS_INTERFACE=
 (VERSION 1)
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: DEBUG_INTERFA=
CE (VERSION 1)
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: SUSPEND_INTER=
FACE (VERSION 1)
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: EVTCHN_INTERF=
ACE (VERSION 9)
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: STORE_INTERFA=
CE (VERSION 2)
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: RANGE_SET_INT=
ERFACE (VERSION 1)
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: CACHE_INTERFA=
CE (VERSION 2)
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: GNTTAB_INTERF=
ACE (VERSION 4)
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: UNPLUG_INTERF=
ACE (VERSION 3)
xen_platform_log xen platform: xenvif|FdoCreate: FFFFC582CB742040 (XP0001 X=
ENVIF)
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582CB0855F0 UN=
KNOWN
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FD70000 - FFFFF8011F=
D88FFF [xeniface.sys]
xen_platform_log xen platform: xeniface|DriverEntry: XENIFACE 9.1.0 (0) (11=
=2E07.2025)
xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE: SUSPEND_INT=
ERFACE (VERSION 1)
xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE: SHARED_INFO=
_INTERFACE (VERSION 4)
xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE: STORE_INTER=
FACE (VERSION 2)
xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE: EVTCHN_INTE=
RFACE (VERSION 9)
xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE: GNTTAB_INTE=
RFACE (VERSION 4)
xen_platform_log xen platform: xeniface|FdoInitialiseXSRegistryEntries: fai=
l1 c0000022
xen_platform_log xen platform: xeniface|FdoCreate: FFFFC582CB736040 (IFACE)
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582CB0678D0 UN=
KNOWN
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FDB0000 - FFFFF8011F=
E29FFF [usbport.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FD90000 - FFFFF8011F=
DACFFF [usbehci.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FF20000 - FFFFF8011F=
FA4FFF [ks.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FEF0000 - FFFFF8011F=
F12FFF [drmk.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FE70000 - FFFFF8011F=
EE4FFF [portcls.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FE30000 - FFFFF8011F=
E60FFF [hdaudbus.sys]
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582CB0B8360 UN=
KNOWN
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FFB0000 - FFFFF8011F=
FC1FFF [Rtnic64.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FFD0000 - FFFFF80120=
07DFFF [USBXHCI.SYS]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80120090000 - FFFFF80120=
0D8FFF [Ucx01000.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF801200E0000 - FFFFF80120=
12DFFF [intelppm.sys]
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582C974DCF0 UN=
KNOWN
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011F540000 - FFFFF8011F=
54DFFF [NdisVirtualBus.sys]
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582C9717CF0 UN=
KNOWN
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582C974ECF0 UN=
KNOWN
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FB60000 - FFFFF8011F=
B6BFFF [swenum.sys]
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582C96F1CF0 UN=
KNOWN
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FB70000 - FFFFF8011F=
B7DFFF [rdpbus.sys]
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582C974FCF0 UN=
KNOWN
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80121080000 - FFFFF80121=
08FFFF [usbd.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80120FF0000 - FFFFF80121=
078FFF [usbhub.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF801210A0000 - FFFFF80121=
121FFF [HdAudio.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80121130000 - FFFFF80121=
141FFF [ksthunk.sys]
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80120200000 - FFFFF80120=
2B2FFF [USBHUB3.SYS]
xen_platform_log xen platform: xenvif|__PdoSetPermanentAddress: 0: 00:16:3e=
:5e:6c:00
xen_platform_log xen platform: xenvif|__PdoSetContainerID: 0 {d46f4229-a162=
-54d5-91f2-4efe2768708d}
xen_platform_log xen platform: xenvif|FrontendSetMaxQueues: device/vif/0: 2
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0: =3D=
=3D=3D=3D> 'UNKNOWN' -> 'CLOSED'
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in sta=
te 'PREPARED'
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in sta=
te 'CLOSED'
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0: <=3D=
=3D=3D=3D=3D
xen_platform_log xen platform: xenvif|PdoCreate: FFFFC582CB7A4450 (0)
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000000 -> CACHE v=
1 VIF v8 STORE v2 SUSPEND v1UNPLUG v1
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000001 -> CACHE v=
2 VIF v8 STORE v2 SUSPEND v1UNPLUG v1
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000002 -> CACHE v=
2 VIF v9 STORE v2 SUSPEND v1UNPLUG v1
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000003 -> CACHE v=
2 VIF v10 STORE v2 SUSPEND v1UNPLUG v1
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000004 -> CACHE v=
2 VIF v10 STORE v2 SUSPEND v1UNPLUG v2
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000005 -> CACHE v=
2 VIF v10 STORE v2 SUSPEND v1UNPLUG v3
xen_platform_log xen platform: xen|ModuleAdd: FFFFF801202C0000 - FFFFF80120=
2D0FFF [xennet.sys]
xen_platform_log xen platform: xennet|DriverEntry: XENNET 9.1.0 (0) (11.07.=
2025)
xen_platform_log xen platform: xeniface|WmiRegister: DRV: XenIface WMI Init=
ialisation
xen_platform_log xen platform: xenvif|PdoSetFriendlyName: 0: Xen PV Network=
 Device #0
xen_platform_log xen platform: xenvif|SettingsSave: FROM Ethernet 2 (Realte=
k RTL8139C+ Fast Ethernet NIC)
xen_platform_log xen platform: xenvif|SettingsSave: FROM {79925511-18ba-482=
b-b579-b215927768b7}
xen_platform_log xen platform: xenvif|SettingsSave: FROM 0006008002000000
xen_platform_log xen platform: xenvif|PdoParseMibTable: fail4
xen_platform_log xen platform: xenvif|PdoParseMibTable: fail3
xen_platform_log xen platform: xenvif|PdoParseMibTable: fail2
xen_platform_log xen platform: xenvif|PdoParseMibTable: fail1 (c00002d2)
xen_platform_log xen platform: xenbus|UnplugRequest: NICS (MAKE)
xen_platform_log xen platform: xen|UnplugIncrementValue: NICS 1
xen_platform_log xen platform: xen|ConfigRequestReboot: =3D=3D=3D=3D>
xen_platform_log xen platform: xen|ConfigRequestReboot: <=3D=3D=3D=3D
xen_platform_log xen platform: xenvif|PdoStartDevice: fail5
xen_platform_log xen platform: xenvif|PdoStartDevice: fail4
xen_platform_log xen platform: xenvif|PdoStartDevice: fail3
xen_platform_log xen platform: xenvif|PdoStartDevice: fail2
xen_platform_log xen platform: xenvif|PdoStartDevice: fail1 (c00002d2)
xen_platform_log xen platform: xennet|DriverUnload: XENNET 9.1.0 (0) (11.07=
=2E2025)

If needed, I uploaded full output to:
https://gist.github.com/marmarek/b9f96cfe469e6873f78e6945aa7a7acf (two
files there)

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--MKYEbrus8ROoSr4o
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmh1NpsACgkQ24/THMrX
1yzxRwf+PqU/yX/gQLWDu3rQdYvo0KNRRAGeguWQLTWbCf13IOMIRNpRx/f3IKTp
dfkF49+h5UeNNXBjGwgptcNPu2qb4G/+s9NTKN0WA5dXWZPSpSi8m92HvUL1npNQ
vJUzYhdIhy0Aots7YTUVOQ8Er+HuIXyk99pSraPCOrzM7A7TvLaV9bFLclDqjGiJ
R2XYILnOTQspZH1Lb1K3r5eYY3Gs3SqrW6Ml26mRxaH7P7uJq4Yw0SZ5IufvOHEn
hVJguxEV52S3m6Ft1M/j1I0iDRL8Dp1T4fwl14Yq9tLOdIwXj95GBkcb3UhwmQZU
G9mtuz4zCujx9WTSpkhq1xHycw3EKQ==
=lOCu
-----END PGP SIGNATURE-----

--MKYEbrus8ROoSr4o--


From win-pv-devel-bounces@lists.xenproject.org Tue Jul 15 08:36:11 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 15 Jul 2025 08:36:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1043808.1413865 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ubb8z-0001TF-EG; Tue, 15 Jul 2025 08:36:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1043808.1413865; Tue, 15 Jul 2025 08:36:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ubb8z-0001T8-As; Tue, 15 Jul 2025 08:36:09 +0000
Received: by outflank-mailman (input) for mailman id 1043808;
 Tue, 15 Jul 2025 08:36:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UK5V=Z4=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1ubb8y-0001T2-FW
 for win-pv-devel@lists.xenproject.org; Tue, 15 Jul 2025 08:36:08 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c04be78e-6156-11f0-a319-13f23c93f187;
 Tue, 15 Jul 2025 10:36:07 +0200 (CEST)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-558facbc19cso4100906e87.3
 for <win-pv-devel@lists.xenproject.org>; Tue, 15 Jul 2025 01:36:07 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c04be78e-6156-11f0-a319-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1752568566; x=1753173366; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=5ksaFR6S8BoJPihTQ9urxiWXuLkwbnfLCoNNMXayy9E=;
        b=L+5swspww7AgoFtHURexs10QC2ZJHv8HgvHZVLZ37nnuOyCb61++knQ+aOJPYuPzVn
         xVBD2m6b5fMt4SAR6XcPyH07QDYstReXKiOOo7Sc/FXEhvsO2k2L3T9beZGldsR27Iao
         8ZQfoGE1/xLf4JC036MZkZYq0mp2wof2t1+O4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1752568566; x=1753173366;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=5ksaFR6S8BoJPihTQ9urxiWXuLkwbnfLCoNNMXayy9E=;
        b=jf4ti04EQMyVw8OhQznNBHwBIYaMsksZ9Og4g0AiC0twpa/DFi4ao3e4I3Dd96bxbV
         7OcjScUwZ4vdMXPs3NSWpgOJu3GYeRSNj7+iqptdsD/TcuNclgr+bRHIZ9OZFPjZm/Vm
         VgOg2228iYTsMsWmEjC+n2DqPdigzLN6TIMk8JiCJvC09DmEtwWQwmpidYrFSST9mR3s
         0/hX/asyPZYXE1SOK92u/vPvyokencSzFx4ngWmDGVgZVP0Wb96TosHh7gp19TOctyp5
         Oiz5a3I3XzysEGgZGFasJ6dGyZ+dLuRyMH9rslE232UfDXEPIFqjDNL3Y0u+PxDZEP5P
         AXIg==
X-Forwarded-Encrypted: i=1; AJvYcCWOVUt9/2JrtEyEYK3VokQHRFyxFjahGQx2WJYayZFvhcPsCGQVwUxQi9ntym6OqGK+YW5qZob5rYNTa7g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxnhLoZtdeKjF0GTtgfYFfr1jBZyJ+DUhqUSkhXMIXSHhWRIJdJ
	Tjf4vPlRAMwI6+n9fa5yRqCq72SLaBRKbAq4p/1U81c9xaD05ECPJ7PWdX9qOzgh6OpJy5wWJ7y
	b9nvm+2rRknVR3bVw61X9II4twFWyZe+AJekvUr3A
X-Gm-Gg: ASbGnctA/fpVfdnrYawBzx2x5J+BN0IGn8hX7hrn7PMcNvUShaPxhO+wbBpP3+IZ2WN
	4TgD+OANYrFrj8Fi/6eU9IyhvjdkFcpElWCnDTXpPJTlN4+0pYmPs5DVvmh9AuNanocuU8CIQKL
	XSA9nmmk5qSN9AmDtn3GBITAXBm2rvZ7y1gf8RrJXWoYwrHC6McLuB1lVRVRWaPqyTPXV/KzLXR
	NlM/3Y=
X-Google-Smtp-Source: AGHT+IFbFiabFJMiDrzMTprsbdIeYt0C70iPdCE6gaW1hyvY75xXyBmmoJSHyrPPdblIunhvUd9wPK09zGm/7vdos88=
X-Received: by 2002:a05:6512:b86:b0:553:2c93:613d with SMTP id
 2adb3069b0e04-55a044af3b8mr4622254e87.5.1752568565945; Tue, 15 Jul 2025
 01:36:05 -0700 (PDT)
MIME-Version: 1.0
References: <aHLpXnbqmNvqslxK@mail-itl> <c20c150d-31de-4a04-a87f-15a08769df13@vates.tech>
 <CAC_UY8-Bw0crn5At4GmrChFt-_V0Tn2TTQLY5JXdHNk15Fjvmg@mail.gmail.com>
 <aHUNLKgPBUJewc6E@mail-itl> <bf4319c5-e771-40dd-8007-26a51e7c374b@vates.tech> <aHU2m_Oe0lEZNCcN@mail-itl>
In-Reply-To: <aHU2m_Oe0lEZNCcN@mail-itl>
From: Owen Smith <owen.smith@citrix.com>
Date: Tue, 15 Jul 2025 09:35:54 +0100
X-Gm-Features: Ac12FXwImvVNonOjXNecmMpVbhuq7CoFN515AeK6iQv-4ThB5xgl_eLB9ecFves
Message-ID: <CAC_UY8-yEsOk-wLe6nVT0jT+M+Z=dw9JmoK0KntgtSR0wd-nkg@mail.gmail.com>
Subject: Re: Recent(?) change forces reboot after adding vif
To: =?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>, 
	win-pv-devel <win-pv-devel@lists.xenproject.org>
Content-Type: multipart/alternative; boundary="000000000000d16e6b0639f3aaa8"

--000000000000d16e6b0639f3aaa8
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Initially, you have a VM that has unplugged the emulated Realtek device,
and enumerated the xenvif device correctly with a working PV network.
Then, by removing the VIF and booting, the not-present emulated device is
not unplugged, and the flag to unplug it gets removed (so in the event of a
driver failure, you should at least get an emulated network).
The next boot, there is no flag to unplug the emulated network, so when
xenvif starts, PdoParseMibTable detects the emulated Realtek network and
refuses to online the conflicting PV network, and requests a reboot after
setting the unplug flag.

The unplug flag is set by xenvif, and is only preserved until the unplug
happens during early boot, when it is removed. Having a boot without the
VIF will clear the flag, and not re-add it, so the next boot will use
emulated VIFs.

I am surprised that this behaviour is new, as this sequence should still
occur with older builds.

Owen

On Mon, Jul 14, 2025 at 5:55=E2=80=AFPM Marek Marczykowski-G=C3=B3recki <
marmarek@invisiblethingslab.com> wrote:

> On Mon, Jul 14, 2025 at 02:21:36PM +0000, Tu Dinh wrote:
> > On 14/07/2025 15:59, Marek Marczykowski-G=C3=B3recki wrote:
> > > On Mon, Jul 14, 2025 at 09:25:25AM +0100, Owen Smith wrote:
> > >> This is almost certainly related to UNPLUGv3. Does the daemon.log sh=
ow
> > >> anything as to why xenvif detected the re-added vif as a new network
> device
> > >> that requires a reboot? Check for "ConfigRequestReboot" and precedin=
g
> log
> > >> lines
> > >
> > > Where can I find this daemon.log? Do I need to enable some extra
> logging
> > > somehow?
> > >
> > > The exact message I get is "Xen PV Network Class needs to restart the
> > > system to complete installation".
> > >
> >
> > If you're using XenServer/XCP-ng, you'll find it at /var/log/daemon.log=
.
> >
> > If not, you can configure QEMU to trace on xen_platform_log events to
> > listen to the Windows drivers' logging output.
>
> It's on Qubes OS. Adding trace on xen_platform_log worked:
>
> Relevant (I hope) parts of the output:
>
> 1. When starting domU that has vif attached on the previous boot (no
> reboot request):
>
> xen_platform_log xen platform: xenvif|DriverEntry: XENVIF 9.1.0 (0)
> (11.07.2025)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> BUS_INTERFACE (VERSION 1)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> DEBUG_INTERFACE (VERSION 1)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> SUSPEND_INTERFACE (VERSION 1)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> EVTCHN_INTERFACE (VERSION 9)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> STORE_INTERFACE (VERSION 2)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> RANGE_SET_INTERFACE (VERSION 1)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> CACHE_INTERFACE (VERSION 2)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> GNTTAB_INTERFACE (VERSION 4)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> UNPLUG_INTERFACE (VERSION 3)
> xen_platform_log xen platform: xenvif|FdoCreate: FFFFC38DB76BDC80 (XP0001
> XENVIF)
> xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB707F8D0
> UNKNOWN
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485760000 -
> FFFFF80485778FFF [xeniface.sys]
> xen_platform_log xen platform: xeniface|DriverEntry: XENIFACE 9.1.0 (0)
> (11.07.2025)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE:
> SUSPEND_INTERFACE (VERSION 1)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE:
> SHARED_INFO_INTERFACE (VERSION 4)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE:
> STORE_INTERFACE (VERSION 2)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE:
> EVTCHN_INTERFACE (VERSION 9)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE:
> GNTTAB_INTERFACE (VERSION 4)
> xen_platform_log xen platform: xeniface|FdoInitialiseXSRegistryEntries:
> fail1 c0000022
> xen_platform_log xen platform: xeniface|FdoCreate: FFFFC38DB76BD970 (IFAC=
E)
> xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB707FC00
> UNKNOWN
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484B40000 -
> FFFFF80484BB9FFF [usbport.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484F80000 -
> FFFFF80484F9CFFF [usbehci.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484AB0000 -
> FFFFF80484B34FFF [ks.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484A80000 -
> FFFFF80484AA2FFF [drmk.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484A00000 -
> FFFFF80484A74FFF [portcls.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484BC0000 -
> FFFFF80484BF0FFF [hdaudbus.sys]
> xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB70D1360
> UNKNOWN
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80486270000 -
> FFFFF8048631DFFF [USBXHCI.SYS]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80486330000 -
> FFFFF80486378FFF [Ucx01000.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80486380000 -
> FFFFF804863CDFFF [intelppm.sys]
> xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB56EECF0
> UNKNOWN
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF804863E0000 -
> FFFFF804863EDFFF [NdisVirtualBus.sys]
> xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB571CCF0
> UNKNOWN
> xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB574BCF0
> UNKNOWN
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485800000 -
> FFFFF8048580BFFF [swenum.sys]
> xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB5705CF0
> UNKNOWN
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485810000 -
> FFFFF8048581DFFF [rdpbus.sys]
> xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB574CCF0
> UNKNOWN
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF804858C0000 -
> FFFFF804858CFFFF [usbd.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485830000 -
> FFFFF804858B8FFF [usbhub.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF804858E0000 -
> FFFFF80485961FFF [HdAudio.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485970000 -
> FFFFF80485981FFF [ksthunk.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485990000 -
> FFFFF80485A42FFF [USBHUB3.SYS]
> xen_platform_log xen platform: xenvif|__PdoSetPermanentAddress: 0:
> 00:16:3e:5e:6c:00
> xen_platform_log xen platform: xenvif|__PdoSetContainerID: 0
> {d46f4229-a162-54d5-91f2-4efe2768708d}
> xen_platform_log xen platform: xenvif|FrontendSetMaxQueues: device/vif/0:=
 2
> xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0:
> =3D=3D=3D=3D> 'UNKNOWN' -> 'CLOSED'
> xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in
> state 'PREPARED'
> xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in
> state 'CLOSED'
> xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0:
> <=3D=3D=3D=3D=3D
> xen_platform_log xen platform: xenvif|PdoCreate: FFFFC38DB7852B70 (0)
> xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000000 -> CACHE
> v1 VIF v8 STORE v2 SUSPEND v1UNPLUG v1
> xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000001 -> CACHE
> v2 VIF v8 STORE v2 SUSPEND v1UNPLUG v1
> xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000002 -> CACHE
> v2 VIF v9 STORE v2 SUSPEND v1UNPLUG v1
> xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000003 -> CACHE
> v2 VIF v10 STORE v2 SUSPEND v1UNPLUG v1
> xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000004 -> CACHE
> v2 VIF v10 STORE v2 SUSPEND v1UNPLUG v2
> xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000005 -> CACHE
> v2 VIF v10 STORE v2 SUSPEND v1UNPLUG v3
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485A50000 -
> FFFFF80485A60FFF [xennet.sys]
> xen_platform_log xen platform: xennet|DriverEntry: XENNET 9.1.0 (0)
> (11.07.2025)
> xen_platform_log xen platform: xeniface|WmiRegister: DRV: XenIface WMI
> Initialisation
> xen_platform_log xen platform: xenvif|PdoSetFriendlyName: 0: Xen PV
> Network Device #0
> xen_platform_log xen platform: xenvif|SettingsRestore: fail1 (c0000034)
> xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0:
> =3D=3D=3D=3D> 'CLOSED' -> 'CONNECTED'
> xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in
> state 'PREPARED'
> xen_platform_log xen platform: xenvif|__MacSetPermanentAddress:
> attr/vif/0: 00:16:3E:5E:6C:00
> xen_platform_log xen platform: xenvif|__MacSetCurrentAddress: attr/vif/0:
> 00:16:3E:5E:6C:00
> xen_platform_log xen platform: xenvif|FrontendSetNumQueues: device/vif/0:=
 2
> xen_platform_log xen platform: xenvif|FrontendSetSplit: device/vif/0: TRU=
E
> xen_platform_log xen platform: xenbus|EvtchnBind: [14]: CPU 0:1
> xen_platform_log xen platform: xenbus|EvtchnBind: [16]: CPU 0:1
> xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in
> state 'CONNECTED'
> xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0:
> <=3D=3D=3D=3D=3D
> xen_platform_log xen platform: xenbus|UnplugRequest: NICS (MAKE)
> xen_platform_log xen platform: xen|UnplugIncrementValue: NICS 1
> xen_platform_log xen platform: xenvif|PdoQueryInterface: 0: VIF_INTERFACE
> (VERSION 10)
> xen_platform_log xen platform: xenvif|PdoQueryInterface: 0:
> STORE_INTERFACE (VERSION 2)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> STORE_INTERFACE (VERSION 2)
> xen_platform_log xen platform: xenvif|PdoQueryInterface: 0:
> SUSPEND_INTERFACE (VERSION 1)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> SUSPEND_INTERFACE (VERSION 1)
> xen_platform_log xen platform: xenvif|FrontendSetHashAlgorithm:
> device/vif/0: TOEPLITZ
> xen_platform_log xen platform: xenvif|ControllerSetHashAlgorithm: fail2
> xen_platform_log xen platform: xenvif|ControllerSetHashAlgorithm: fail1
> (c000000d)
> xen_platform_log xen platform: xenvif|__FrontendUpdateHash: fail1
> (c000000d)
> xen_platform_log xen platform: xenvif|FrontendSetHashAlgorithm: fail2
> xen_platform_log xen platform: xenvif|FrontendSetHashAlgorithm: fail1
> (c000000d)
> xen_platform_log xen platform: xenvif|ReceiverSetHashAlgorithm: fail1
> (c000000d)
> xen_platform_log xen platform: xenvif|PdoQueryInterface: 0: BUS_INTERFACE
> (VERSION 1)
> xen_platform_log xen platform: xenbus|DmaGetAdapter: no interception
> xen_platform_log xen platform: xennet|AdapterQueryInformation: UNSUPPORTE=
D
> OID 00010300
> xen_platform_log xen platform: xennet|AdapterQueryInformation: UNSUPPORTE=
D
> OID 00010300
> xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0:
> =3D=3D=3D=3D> 'CONNECTED' -> 'ENABLED'
> xen_platform_log xen platform: xenvif|__ReceiverRingEnable:
> device/vif/0[0]: =3D=3D=3D=3D>
>
> 1. When starting domU that has vif detached on the previous boot, but
> had it earlier present (does request reboot):
>
> xen_platform_log xen platform: xenvif|DriverEntry: XENVIF 9.1.0 (0)
> (11.07.2025)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> BUS_INTERFACE (VERSION 1)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> DEBUG_INTERFACE (VERSION 1)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> SUSPEND_INTERFACE (VERSION 1)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> EVTCHN_INTERFACE (VERSION 9)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> STORE_INTERFACE (VERSION 2)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> RANGE_SET_INTERFACE (VERSION 1)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> CACHE_INTERFACE (VERSION 2)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> GNTTAB_INTERFACE (VERSION 4)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> UNPLUG_INTERFACE (VERSION 3)
> xen_platform_log xen platform: xenvif|FdoCreate: FFFFC582CB742040 (XP0001
> XENVIF)
> xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582CB0855F0
> UNKNOWN
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FD70000 -
> FFFFF8011FD88FFF [xeniface.sys]
> xen_platform_log xen platform: xeniface|DriverEntry: XENIFACE 9.1.0 (0)
> (11.07.2025)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE:
> SUSPEND_INTERFACE (VERSION 1)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE:
> SHARED_INFO_INTERFACE (VERSION 4)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE:
> STORE_INTERFACE (VERSION 2)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE:
> EVTCHN_INTERFACE (VERSION 9)
> xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE:
> GNTTAB_INTERFACE (VERSION 4)
> xen_platform_log xen platform: xeniface|FdoInitialiseXSRegistryEntries:
> fail1 c0000022
> xen_platform_log xen platform: xeniface|FdoCreate: FFFFC582CB736040 (IFAC=
E)
> xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582CB0678D0
> UNKNOWN
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FDB0000 -
> FFFFF8011FE29FFF [usbport.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FD90000 -
> FFFFF8011FDACFFF [usbehci.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FF20000 -
> FFFFF8011FFA4FFF [ks.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FEF0000 -
> FFFFF8011FF12FFF [drmk.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FE70000 -
> FFFFF8011FEE4FFF [portcls.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FE30000 -
> FFFFF8011FE60FFF [hdaudbus.sys]
> xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582CB0B8360
> UNKNOWN
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FFB0000 -
> FFFFF8011FFC1FFF [Rtnic64.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FFD0000 -
> FFFFF8012007DFFF [USBXHCI.SYS]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80120090000 -
> FFFFF801200D8FFF [Ucx01000.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF801200E0000 -
> FFFFF8012012DFFF [intelppm.sys]
> xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582C974DCF0
> UNKNOWN
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011F540000 -
> FFFFF8011F54DFFF [NdisVirtualBus.sys]
> xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582C9717CF0
> UNKNOWN
> xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582C974ECF0
> UNKNOWN
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FB60000 -
> FFFFF8011FB6BFFF [swenum.sys]
> xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582C96F1CF0
> UNKNOWN
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FB70000 -
> FFFFF8011FB7DFFF [rdpbus.sys]
> xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582C974FCF0
> UNKNOWN
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80121080000 -
> FFFFF8012108FFFF [usbd.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80120FF0000 -
> FFFFF80121078FFF [usbhub.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF801210A0000 -
> FFFFF80121121FFF [HdAudio.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80121130000 -
> FFFFF80121141FFF [ksthunk.sys]
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF80120200000 -
> FFFFF801202B2FFF [USBHUB3.SYS]
> xen_platform_log xen platform: xenvif|__PdoSetPermanentAddress: 0:
> 00:16:3e:5e:6c:00
> xen_platform_log xen platform: xenvif|__PdoSetContainerID: 0
> {d46f4229-a162-54d5-91f2-4efe2768708d}
> xen_platform_log xen platform: xenvif|FrontendSetMaxQueues: device/vif/0:=
 2
> xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0:
> =3D=3D=3D=3D> 'UNKNOWN' -> 'CLOSED'
> xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in
> state 'PREPARED'
> xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in
> state 'CLOSED'
> xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0:
> <=3D=3D=3D=3D=3D
> xen_platform_log xen platform: xenvif|PdoCreate: FFFFC582CB7A4450 (0)
> xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000000 -> CACHE
> v1 VIF v8 STORE v2 SUSPEND v1UNPLUG v1
> xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000001 -> CACHE
> v2 VIF v8 STORE v2 SUSPEND v1UNPLUG v1
> xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000002 -> CACHE
> v2 VIF v9 STORE v2 SUSPEND v1UNPLUG v1
> xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000003 -> CACHE
> v2 VIF v10 STORE v2 SUSPEND v1UNPLUG v1
> xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000004 -> CACHE
> v2 VIF v10 STORE v2 SUSPEND v1UNPLUG v2
> xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000005 -> CACHE
> v2 VIF v10 STORE v2 SUSPEND v1UNPLUG v3
> xen_platform_log xen platform: xen|ModuleAdd: FFFFF801202C0000 -
> FFFFF801202D0FFF [xennet.sys]
> xen_platform_log xen platform: xennet|DriverEntry: XENNET 9.1.0 (0)
> (11.07.2025)
> xen_platform_log xen platform: xeniface|WmiRegister: DRV: XenIface WMI
> Initialisation
> xen_platform_log xen platform: xenvif|PdoSetFriendlyName: 0: Xen PV
> Network Device #0
> xen_platform_log xen platform: xenvif|SettingsSave: FROM Ethernet 2
> (Realtek RTL8139C+ Fast Ethernet NIC)
> xen_platform_log xen platform: xenvif|SettingsSave: FROM
> {79925511-18ba-482b-b579-b215927768b7}
> xen_platform_log xen platform: xenvif|SettingsSave: FROM 0006008002000000
> xen_platform_log xen platform: xenvif|PdoParseMibTable: fail4
> xen_platform_log xen platform: xenvif|PdoParseMibTable: fail3
> xen_platform_log xen platform: xenvif|PdoParseMibTable: fail2
> xen_platform_log xen platform: xenvif|PdoParseMibTable: fail1 (c00002d2)
> xen_platform_log xen platform: xenbus|UnplugRequest: NICS (MAKE)
> xen_platform_log xen platform: xen|UnplugIncrementValue: NICS 1
> xen_platform_log xen platform: xen|ConfigRequestReboot: =3D=3D=3D=3D>
> xen_platform_log xen platform: xen|ConfigRequestReboot: <=3D=3D=3D=3D
> xen_platform_log xen platform: xenvif|PdoStartDevice: fail5
> xen_platform_log xen platform: xenvif|PdoStartDevice: fail4
> xen_platform_log xen platform: xenvif|PdoStartDevice: fail3
> xen_platform_log xen platform: xenvif|PdoStartDevice: fail2
> xen_platform_log xen platform: xenvif|PdoStartDevice: fail1 (c00002d2)
> xen_platform_log xen platform: xennet|DriverUnload: XENNET 9.1.0 (0)
> (11.07.2025)
>
> If needed, I uploaded full output to:
> https://gist.github.com/marmarek/b9f96cfe469e6873f78e6945aa7a7acf (two
> files there)
>
> --
> Best Regards,
> Marek Marczykowski-G=C3=B3recki
> Invisible Things Lab
>

--000000000000d16e6b0639f3aaa8
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">Initially, you have a VM that has unplugged the emulated Realtek device,=
 and enumerated the xenvif device correctly with a working PV network.<br>T=
hen, by removing the VIF and booting, the not-present emulated device is no=
t unplugged, and the flag to unplug it gets removed (so in the event of a d=
river failure, you should at least get an emulated network).<br>The next bo=
ot, there is no flag to unplug the emulated network, so when xenvif starts,=
 PdoParseMibTable detects the emulated Realtek network and refuses to onlin=
e the conflicting PV network, and requests a reboot after setting the unplu=
g flag.<br><br>The unplug flag is set by xenvif, and is only preserved unti=
l the unplug happens during early boot, when it is removed. Having a boot w=
ithout the VIF will clear the flag, and not re-add it, so the next boot wil=
l use emulated VIFs.</div><div class=3D"gmail_default" style=3D"font-family=
:monospace"><br></div><div class=3D"gmail_default" style=3D"font-family:mon=
ospace">I am surprised that this behaviour is new, as this sequence should =
still occur with older builds.</div><div class=3D"gmail_default" style=3D"f=
ont-family:monospace"><br>Owen</div></div><br><div class=3D"gmail_quote gma=
il_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Mon, Jul 14, 2=
025 at 5:55=E2=80=AFPM Marek Marczykowski-G=C3=B3recki &lt;<a href=3D"mailt=
o:marmarek@invisiblethingslab.com">marmarek@invisiblethingslab.com</a>&gt; =
wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0=
px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Mon, J=
ul 14, 2025 at 02:21:36PM +0000, Tu Dinh wrote:<br>
&gt; On 14/07/2025 15:59, Marek Marczykowski-G=C3=B3recki wrote:<br>
&gt; &gt; On Mon, Jul 14, 2025 at 09:25:25AM +0100, Owen Smith wrote:<br>
&gt; &gt;&gt; This is almost certainly related to UNPLUGv3. Does the daemon=
.log show<br>
&gt; &gt;&gt; anything as to why xenvif detected the re-added vif as a new =
network device<br>
&gt; &gt;&gt; that requires a reboot? Check for &quot;ConfigRequestReboot&q=
uot; and preceding log<br>
&gt; &gt;&gt; lines<br>
&gt; &gt;<br>
&gt; &gt; Where can I find this daemon.log? Do I need to enable some extra =
logging<br>
&gt; &gt; somehow?<br>
&gt; &gt;<br>
&gt; &gt; The exact message I get is &quot;Xen PV Network Class needs to re=
start the<br>
&gt; &gt; system to complete installation&quot;.<br>
&gt; &gt;<br>
&gt; <br>
&gt; If you&#39;re using XenServer/XCP-ng, you&#39;ll find it at /var/log/d=
aemon.log.<br>
&gt; <br>
&gt; If not, you can configure QEMU to trace on xen_platform_log events to<=
br>
&gt; listen to the Windows drivers&#39; logging output.<br>
<br>
It&#39;s on Qubes OS. Adding trace on xen_platform_log worked:<br>
<br>
Relevant (I hope) parts of the output:<br>
<br>
1. When starting domU that has vif attached on the previous boot (no reboot=
 request):<br>
<br>
xen_platform_log xen platform: xenvif|DriverEntry: XENVIF 9.1.0 (0) (11.07.=
2025)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: BUS_INTERFACE=
 (VERSION 1)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: DEBUG_INTERFA=
CE (VERSION 1)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: SUSPEND_INTER=
FACE (VERSION 1)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: EVTCHN_INTERF=
ACE (VERSION 9)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: STORE_INTERFA=
CE (VERSION 2)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: RANGE_SET_INT=
ERFACE (VERSION 1)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: CACHE_INTERFA=
CE (VERSION 2)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: GNTTAB_INTERF=
ACE (VERSION 4)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: UNPLUG_INTERF=
ACE (VERSION 3)<br>
xen_platform_log xen platform: xenvif|FdoCreate: FFFFC38DB76BDC80 (XP0001 X=
ENVIF)<br>
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB707F8D0 UN=
KNOWN<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485760000 - FFFFF80485=
778FFF [xeniface.sys]<br>
xen_platform_log xen platform: xeniface|DriverEntry: XENIFACE 9.1.0 (0) (11=
.07.2025)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE: SUSPEND_INT=
ERFACE (VERSION 1)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE: SHARED_INFO=
_INTERFACE (VERSION 4)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE: STORE_INTER=
FACE (VERSION 2)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE: EVTCHN_INTE=
RFACE (VERSION 9)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE: GNTTAB_INTE=
RFACE (VERSION 4)<br>
xen_platform_log xen platform: xeniface|FdoInitialiseXSRegistryEntries: fai=
l1 c0000022<br>
xen_platform_log xen platform: xeniface|FdoCreate: FFFFC38DB76BD970 (IFACE)=
<br>
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB707FC00 UN=
KNOWN<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484B40000 - FFFFF80484=
BB9FFF [usbport.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484F80000 - FFFFF80484=
F9CFFF [usbehci.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484AB0000 - FFFFF80484=
B34FFF [ks.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484A80000 - FFFFF80484=
AA2FFF [drmk.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484A00000 - FFFFF80484=
A74FFF [portcls.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484BC0000 - FFFFF80484=
BF0FFF [hdaudbus.sys]<br>
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB70D1360 UN=
KNOWN<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80486270000 - FFFFF80486=
31DFFF [USBXHCI.SYS]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80486330000 - FFFFF80486=
378FFF [Ucx01000.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80486380000 - FFFFF80486=
3CDFFF [intelppm.sys]<br>
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB56EECF0 UN=
KNOWN<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF804863E0000 - FFFFF80486=
3EDFFF [NdisVirtualBus.sys]<br>
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB571CCF0 UN=
KNOWN<br>
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB574BCF0 UN=
KNOWN<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485800000 - FFFFF80485=
80BFFF [swenum.sys]<br>
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB5705CF0 UN=
KNOWN<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485810000 - FFFFF80485=
81DFFF [rdpbus.sys]<br>
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB574CCF0 UN=
KNOWN<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF804858C0000 - FFFFF80485=
8CFFFF [usbd.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485830000 - FFFFF80485=
8B8FFF [usbhub.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF804858E0000 - FFFFF80485=
961FFF [HdAudio.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485970000 - FFFFF80485=
981FFF [ksthunk.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485990000 - FFFFF80485=
A42FFF [USBHUB3.SYS]<br>
xen_platform_log xen platform: xenvif|__PdoSetPermanentAddress: 0: 00:16:3e=
:5e:6c:00<br>
xen_platform_log xen platform: xenvif|__PdoSetContainerID: 0 {d46f4229-a162=
-54d5-91f2-4efe2768708d}<br>
xen_platform_log xen platform: xenvif|FrontendSetMaxQueues: device/vif/0: 2=
<br>
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0: =3D=
=3D=3D=3D&gt; &#39;UNKNOWN&#39; -&gt; &#39;CLOSED&#39;<br>
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in sta=
te &#39;PREPARED&#39;<br>
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in sta=
te &#39;CLOSED&#39;<br>
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0: &lt;=
=3D=3D=3D=3D=3D<br>
xen_platform_log xen platform: xenvif|PdoCreate: FFFFC38DB7852B70 (0)<br>
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000000 -&gt; CACH=
E v1 VIF v8 STORE v2 SUSPEND v1UNPLUG v1<br>
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000001 -&gt; CACH=
E v2 VIF v8 STORE v2 SUSPEND v1UNPLUG v1<br>
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000002 -&gt; CACH=
E v2 VIF v9 STORE v2 SUSPEND v1UNPLUG v1<br>
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000003 -&gt; CACH=
E v2 VIF v10 STORE v2 SUSPEND v1UNPLUG v1<br>
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000004 -&gt; CACH=
E v2 VIF v10 STORE v2 SUSPEND v1UNPLUG v2<br>
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000005 -&gt; CACH=
E v2 VIF v10 STORE v2 SUSPEND v1UNPLUG v3<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485A50000 - FFFFF80485=
A60FFF [xennet.sys]<br>
xen_platform_log xen platform: xennet|DriverEntry: XENNET 9.1.0 (0) (11.07.=
2025)<br>
xen_platform_log xen platform: xeniface|WmiRegister: DRV: XenIface WMI Init=
ialisation<br>
xen_platform_log xen platform: xenvif|PdoSetFriendlyName: 0: Xen PV Network=
 Device #0<br>
xen_platform_log xen platform: xenvif|SettingsRestore: fail1 (c0000034)<br>
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0: =3D=
=3D=3D=3D&gt; &#39;CLOSED&#39; -&gt; &#39;CONNECTED&#39;<br>
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in sta=
te &#39;PREPARED&#39;<br>
xen_platform_log xen platform: xenvif|__MacSetPermanentAddress: attr/vif/0:=
 00:16:3E:5E:6C:00<br>
xen_platform_log xen platform: xenvif|__MacSetCurrentAddress: attr/vif/0: 0=
0:16:3E:5E:6C:00<br>
xen_platform_log xen platform: xenvif|FrontendSetNumQueues: device/vif/0: 2=
<br>
xen_platform_log xen platform: xenvif|FrontendSetSplit: device/vif/0: TRUE<=
br>
xen_platform_log xen platform: xenbus|EvtchnBind: [14]: CPU 0:1<br>
xen_platform_log xen platform: xenbus|EvtchnBind: [16]: CPU 0:1<br>
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in sta=
te &#39;CONNECTED&#39;<br>
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0: &lt;=
=3D=3D=3D=3D=3D<br>
xen_platform_log xen platform: xenbus|UnplugRequest: NICS (MAKE)<br>
xen_platform_log xen platform: xen|UnplugIncrementValue: NICS 1<br>
xen_platform_log xen platform: xenvif|PdoQueryInterface: 0: VIF_INTERFACE (=
VERSION 10)<br>
xen_platform_log xen platform: xenvif|PdoQueryInterface: 0: STORE_INTERFACE=
 (VERSION 2)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: STORE_INTERFA=
CE (VERSION 2)<br>
xen_platform_log xen platform: xenvif|PdoQueryInterface: 0: SUSPEND_INTERFA=
CE (VERSION 1)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: SUSPEND_INTER=
FACE (VERSION 1)<br>
xen_platform_log xen platform: xenvif|FrontendSetHashAlgorithm: device/vif/=
0: TOEPLITZ<br>
xen_platform_log xen platform: xenvif|ControllerSetHashAlgorithm: fail2<br>
xen_platform_log xen platform: xenvif|ControllerSetHashAlgorithm: fail1 (c0=
00000d)<br>
xen_platform_log xen platform: xenvif|__FrontendUpdateHash: fail1 (c000000d=
)<br>
xen_platform_log xen platform: xenvif|FrontendSetHashAlgorithm: fail2<br>
xen_platform_log xen platform: xenvif|FrontendSetHashAlgorithm: fail1 (c000=
000d)<br>
xen_platform_log xen platform: xenvif|ReceiverSetHashAlgorithm: fail1 (c000=
000d)<br>
xen_platform_log xen platform: xenvif|PdoQueryInterface: 0: BUS_INTERFACE (=
VERSION 1)<br>
xen_platform_log xen platform: xenbus|DmaGetAdapter: no interception<br>
xen_platform_log xen platform: xennet|AdapterQueryInformation: UNSUPPORTED =
OID 00010300<br>
xen_platform_log xen platform: xennet|AdapterQueryInformation: UNSUPPORTED =
OID 00010300<br>
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0: =3D=
=3D=3D=3D&gt; &#39;CONNECTED&#39; -&gt; &#39;ENABLED&#39;<br>
xen_platform_log xen platform: xenvif|__ReceiverRingEnable: device/vif/0[0]=
: =3D=3D=3D=3D&gt;<br>
<br>
1. When starting domU that has vif detached on the previous boot, but<br>
had it earlier present (does request reboot):<br>
<br>
xen_platform_log xen platform: xenvif|DriverEntry: XENVIF 9.1.0 (0) (11.07.=
2025)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: BUS_INTERFACE=
 (VERSION 1)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: DEBUG_INTERFA=
CE (VERSION 1)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: SUSPEND_INTER=
FACE (VERSION 1)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: EVTCHN_INTERF=
ACE (VERSION 9)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: STORE_INTERFA=
CE (VERSION 2)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: RANGE_SET_INT=
ERFACE (VERSION 1)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: CACHE_INTERFA=
CE (VERSION 2)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: GNTTAB_INTERF=
ACE (VERSION 4)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF: UNPLUG_INTERF=
ACE (VERSION 3)<br>
xen_platform_log xen platform: xenvif|FdoCreate: FFFFC582CB742040 (XP0001 X=
ENVIF)<br>
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582CB0855F0 UN=
KNOWN<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FD70000 - FFFFF8011F=
D88FFF [xeniface.sys]<br>
xen_platform_log xen platform: xeniface|DriverEntry: XENIFACE 9.1.0 (0) (11=
.07.2025)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE: SUSPEND_INT=
ERFACE (VERSION 1)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE: SHARED_INFO=
_INTERFACE (VERSION 4)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE: STORE_INTER=
FACE (VERSION 2)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE: EVTCHN_INTE=
RFACE (VERSION 9)<br>
xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE: GNTTAB_INTE=
RFACE (VERSION 4)<br>
xen_platform_log xen platform: xeniface|FdoInitialiseXSRegistryEntries: fai=
l1 c0000022<br>
xen_platform_log xen platform: xeniface|FdoCreate: FFFFC582CB736040 (IFACE)=
<br>
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582CB0678D0 UN=
KNOWN<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FDB0000 - FFFFF8011F=
E29FFF [usbport.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FD90000 - FFFFF8011F=
DACFFF [usbehci.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FF20000 - FFFFF8011F=
FA4FFF [ks.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FEF0000 - FFFFF8011F=
F12FFF [drmk.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FE70000 - FFFFF8011F=
EE4FFF [portcls.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FE30000 - FFFFF8011F=
E60FFF [hdaudbus.sys]<br>
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582CB0B8360 UN=
KNOWN<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FFB0000 - FFFFF8011F=
FC1FFF [Rtnic64.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FFD0000 - FFFFF80120=
07DFFF [USBXHCI.SYS]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80120090000 - FFFFF80120=
0D8FFF [Ucx01000.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF801200E0000 - FFFFF80120=
12DFFF [intelppm.sys]<br>
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582C974DCF0 UN=
KNOWN<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011F540000 - FFFFF8011F=
54DFFF [NdisVirtualBus.sys]<br>
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582C9717CF0 UN=
KNOWN<br>
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582C974ECF0 UN=
KNOWN<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FB60000 - FFFFF8011F=
B6BFFF [swenum.sys]<br>
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582C96F1CF0 UN=
KNOWN<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FB70000 - FFFFF8011F=
B7DFFF [rdpbus.sys]<br>
xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582C974FCF0 UN=
KNOWN<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80121080000 - FFFFF80121=
08FFFF [usbd.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80120FF0000 - FFFFF80121=
078FFF [usbhub.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF801210A0000 - FFFFF80121=
121FFF [HdAudio.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80121130000 - FFFFF80121=
141FFF [ksthunk.sys]<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF80120200000 - FFFFF80120=
2B2FFF [USBHUB3.SYS]<br>
xen_platform_log xen platform: xenvif|__PdoSetPermanentAddress: 0: 00:16:3e=
:5e:6c:00<br>
xen_platform_log xen platform: xenvif|__PdoSetContainerID: 0 {d46f4229-a162=
-54d5-91f2-4efe2768708d}<br>
xen_platform_log xen platform: xenvif|FrontendSetMaxQueues: device/vif/0: 2=
<br>
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0: =3D=
=3D=3D=3D&gt; &#39;UNKNOWN&#39; -&gt; &#39;CLOSED&#39;<br>
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in sta=
te &#39;PREPARED&#39;<br>
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in sta=
te &#39;CLOSED&#39;<br>
xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0: &lt;=
=3D=3D=3D=3D=3D<br>
xen_platform_log xen platform: xenvif|PdoCreate: FFFFC582CB7A4450 (0)<br>
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000000 -&gt; CACH=
E v1 VIF v8 STORE v2 SUSPEND v1UNPLUG v1<br>
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000001 -&gt; CACH=
E v2 VIF v8 STORE v2 SUSPEND v1UNPLUG v1<br>
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000002 -&gt; CACH=
E v2 VIF v9 STORE v2 SUSPEND v1UNPLUG v1<br>
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000003 -&gt; CACH=
E v2 VIF v10 STORE v2 SUSPEND v1UNPLUG v1<br>
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000004 -&gt; CACH=
E v2 VIF v10 STORE v2 SUSPEND v1UNPLUG v2<br>
xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000005 -&gt; CACH=
E v2 VIF v10 STORE v2 SUSPEND v1UNPLUG v3<br>
xen_platform_log xen platform: xen|ModuleAdd: FFFFF801202C0000 - FFFFF80120=
2D0FFF [xennet.sys]<br>
xen_platform_log xen platform: xennet|DriverEntry: XENNET 9.1.0 (0) (11.07.=
2025)<br>
xen_platform_log xen platform: xeniface|WmiRegister: DRV: XenIface WMI Init=
ialisation<br>
xen_platform_log xen platform: xenvif|PdoSetFriendlyName: 0: Xen PV Network=
 Device #0<br>
xen_platform_log xen platform: xenvif|SettingsSave: FROM Ethernet 2 (Realte=
k RTL8139C+ Fast Ethernet NIC)<br>
xen_platform_log xen platform: xenvif|SettingsSave: FROM {79925511-18ba-482=
b-b579-b215927768b7}<br>
xen_platform_log xen platform: xenvif|SettingsSave: FROM 0006008002000000<b=
r>
xen_platform_log xen platform: xenvif|PdoParseMibTable: fail4<br>
xen_platform_log xen platform: xenvif|PdoParseMibTable: fail3<br>
xen_platform_log xen platform: xenvif|PdoParseMibTable: fail2<br>
xen_platform_log xen platform: xenvif|PdoParseMibTable: fail1 (c00002d2)<br=
>
xen_platform_log xen platform: xenbus|UnplugRequest: NICS (MAKE)<br>
xen_platform_log xen platform: xen|UnplugIncrementValue: NICS 1<br>
xen_platform_log xen platform: xen|ConfigRequestReboot: =3D=3D=3D=3D&gt;<br=
>
xen_platform_log xen platform: xen|ConfigRequestReboot: &lt;=3D=3D=3D=3D<br=
>
xen_platform_log xen platform: xenvif|PdoStartDevice: fail5<br>
xen_platform_log xen platform: xenvif|PdoStartDevice: fail4<br>
xen_platform_log xen platform: xenvif|PdoStartDevice: fail3<br>
xen_platform_log xen platform: xenvif|PdoStartDevice: fail2<br>
xen_platform_log xen platform: xenvif|PdoStartDevice: fail1 (c00002d2)<br>
xen_platform_log xen platform: xennet|DriverUnload: XENNET 9.1.0 (0) (11.07=
.2025)<br>
<br>
If needed, I uploaded full output to:<br>
<a href=3D"https://gist.github.com/marmarek/b9f96cfe469e6873f78e6945aa7a7ac=
f" rel=3D"noreferrer" target=3D"_blank">https://gist.github.com/marmarek/b9=
f96cfe469e6873f78e6945aa7a7acf</a> (two<br>
files there)<br>
<br>
-- <br>
Best Regards,<br>
Marek Marczykowski-G=C3=B3recki<br>
Invisible Things Lab<br>
</blockquote></div>

--000000000000d16e6b0639f3aaa8--


From win-pv-devel-bounces@lists.xenproject.org Wed Jul 16 00:49:26 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 16 Jul 2025 00:49:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1044769.1414825 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ubqKp-0006gG-LH; Wed, 16 Jul 2025 00:49:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1044769.1414825; Wed, 16 Jul 2025 00:49:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ubqKp-0006g9-HE; Wed, 16 Jul 2025 00:49:23 +0000
Received: by outflank-mailman (input) for mailman id 1044769;
 Wed, 16 Jul 2025 00:49:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uAtp=Z5=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1ubqKo-0006fI-5T
 for win-pv-devel@lists.xenproject.org; Wed, 16 Jul 2025 00:49:22 +0000
Received: from fhigh-b8-smtp.messagingengine.com
 (fhigh-b8-smtp.messagingengine.com [202.12.124.159])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b4bad7fc-61de-11f0-a319-13f23c93f187;
 Wed, 16 Jul 2025 02:49:20 +0200 (CEST)
Received: from phl-compute-04.internal (phl-compute-04.phl.internal
 [10.202.2.44])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 5370A7A00CD;
 Tue, 15 Jul 2025 20:49:18 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Tue, 15 Jul 2025 20:49:18 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 15 Jul 2025 20:49:16 -0400 (EDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b4bad7fc-61de-11f0-a319-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm2; t=1752626958;
	 x=1752713358; bh=6l3ytTG+6gTmIdKyMXo2SCDD4neBZPaRIsZnPiL5mS4=; b=
	l3Rvff57MIpAy9KscoHJw4ubesj0RJf2A8bZalO6mlCnWd1z+M4eWMfHspYzpNnS
	QuB+aRYLI1V6VcoynkWypxeX14Vjm7K1SmYgKhIfYffpRU+joKMYCS6OXk4pMf6n
	FQwLc/VVZ2lkePPDQUsGJCJ4DqMzKpfUxdWPYkrc0QLqFeV2oVqEkkX+sOvtdeZN
	TtZFyf5eJphtfZ5LoHmOaNVjAq0zKouG/9O0rZHhL2v46u1VtCveFKo2LOPa3nET
	gWYrxB7sxWqRrNuh03pMLpXrCK24TQl6YRPLK6OOla0+/473XJvrpv6dardvLniq
	NQqMe72URdbv7qHqBo3bZA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=
	1752626958; x=1752713358; bh=6l3ytTG+6gTmIdKyMXo2SCDD4neBZPaRIsZ
	nPiL5mS4=; b=bFmwhpHaxHH1pbJ34ud+e1CHZyBTHPPmNqJtevMVKqU7ve7XOL9
	GhuOQPGVJhHtW9eWlJfzmEVBoaswQ7xMEPgkMtJcnSYHNsO2jLdRKYfi4jUbeJPI
	E+HXJcrNkBTrK471sSvMB47Wb/75KSPVbTuHTC3sdhxh8eQD7qJCtXv9kQ082/dd
	4EuRH0TNdZ2m28bySttE8qmd4VncK/0o9jWUpw3AA9J9I46J8B2tMRpCXbtVvKjM
	nAJg6a1xDf5w9ug9Azkc24gl5UwOORZN49PrjzqzCieSpzuxc8uN4cCNPFl0N+wT
	PTBc5zCagJVnENCtYXFMZYpxQEEOIgV+Ang==
X-ME-Sender: <xms:Dfd2aIcEqLG2QdbJLGQMFkPstC_QGariogdECkbkAyLGUqka71sezA>
    <xme:Dfd2aNc_jQv9XUaugrnxYWCAuIwQ5kztF-6BlbFlaLrPYfC3XE_GfxPPW9VpVAWqC
    Fhe06bfwz4_Ow>
X-ME-Received: <xmr:Dfd2aC_cfQe8Yg5TI-E0V5TAWZeMbgV6UtIE-RJoKy4Mi50paNwmRso1qtDlJpGBmXVwGjZG3mD3MKs9PH4fmJB5jEz72g62qRc>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdehieeftdcutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeeukeetteeg
    gffgkeduheetgeeileejjeeiiefhjeegvefhtefggfetueetteeuteenucffohhmrghinh
    epghhithhhuhgsrdgtohhmnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehm
    rghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsg
    drtghomhdpnhgspghrtghpthhtohepfedpmhhouggvpehsmhhtphhouhhtpdhrtghpthht
    ohepohifvghnrdhsmhhithhhsegtihhtrhhigidrtghomhdprhgtphhtthhopehnghhotg
    dqthhurdguihhnhhesvhgrthgvshdrthgvtghhpdhrtghpthhtohepfihinhdqphhvqdgu
    vghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrgh
X-ME-Proxy: <xmx:Dfd2aJl1HmxDHx2xsn8yCZdsg30R0ocdwqCMXuq_M17oZSmUU0dfVg>
    <xmx:Dfd2aE8JPYidQeB22sf42bSV9XNRtBuE7ejmukCo-b5h0BjMlOt5ig>
    <xmx:Dfd2aHn6AF00ONYbNRmv09LDlrqdraH5KEtiY7xh7ZKVI6ETAcc1xQ>
    <xmx:Dfd2aB0cLrOAtH4tYSdVcBndf8gTNkEv0EPk_Pt8NFfb4jTuI-CeKw>
    <xmx:Dvd2aPnZ_6jPjvIb5yotOFlGVucnY3JPBNpMo_-KitZe1x6iuwJz0Ibt>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 16 Jul 2025 02:49:14 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Owen Smith <owen.smith@citrix.com>
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>,
	win-pv-devel <win-pv-devel@lists.xenproject.org>
Subject: Re: Recent(?) change forces reboot after adding vif
Message-ID: <aHb3C__Zo1gKcoUI@mail-itl>
References: <aHLpXnbqmNvqslxK@mail-itl>
 <c20c150d-31de-4a04-a87f-15a08769df13@vates.tech>
 <CAC_UY8-Bw0crn5At4GmrChFt-_V0Tn2TTQLY5JXdHNk15Fjvmg@mail.gmail.com>
 <aHUNLKgPBUJewc6E@mail-itl>
 <bf4319c5-e771-40dd-8007-26a51e7c374b@vates.tech>
 <aHU2m_Oe0lEZNCcN@mail-itl>
 <CAC_UY8-yEsOk-wLe6nVT0jT+M+Z=dw9JmoK0KntgtSR0wd-nkg@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="7bPO2ggEAD/nk2Xi"
Content-Disposition: inline
In-Reply-To: <CAC_UY8-yEsOk-wLe6nVT0jT+M+Z=dw9JmoK0KntgtSR0wd-nkg@mail.gmail.com>


--7bPO2ggEAD/nk2Xi
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 16 Jul 2025 02:49:14 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Owen Smith <owen.smith@citrix.com>
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>,
	win-pv-devel <win-pv-devel@lists.xenproject.org>
Subject: Re: Recent(?) change forces reboot after adding vif

On Tue, Jul 15, 2025 at 09:35:54AM +0100, Owen Smith wrote:
> Initially, you have a VM that has unplugged the emulated Realtek device,
> and enumerated the xenvif device correctly with a working PV network.
> Then, by removing the VIF and booting, the not-present emulated device is
> not unplugged, and the flag to unplug it gets removed (so in the event of=
 a
> driver failure, you should at least get an emulated network).
> The next boot, there is no flag to unplug the emulated network, so when
> xenvif starts, PdoParseMibTable detects the emulated Realtek network and
> refuses to online the conflicting PV network, and requests a reboot after
> setting the unplug flag.
>=20
> The unplug flag is set by xenvif, and is only preserved until the unplug
> happens during early boot, when it is removed. Having a boot without the
> VIF will clear the flag, and not re-add it, so the next boot will use
> emulated VIFs.
>=20
> I am surprised that this behaviour is new, as this sequence should still
> occur with older builds.

Ok, this description does make sense. And after re-checking, indeed
network worked before reboot by using emulated device, not PV one. What
confused me apparently is that I didn't get reboot prompt before for
some reason. Looks like this got fixed.

What is not clear to me is why this reboot is needed. Can't the emulated
network be unplugged later, when xenvif driver loads, instead of
refusing to online when emulated network is present?

>=20
> Owen
>=20
> On Mon, Jul 14, 2025 at 5:55=E2=80=AFPM Marek Marczykowski-G=C3=B3recki <
> marmarek@invisiblethingslab.com> wrote:
>=20
> > On Mon, Jul 14, 2025 at 02:21:36PM +0000, Tu Dinh wrote:
> > > On 14/07/2025 15:59, Marek Marczykowski-G=C3=B3recki wrote:
> > > > On Mon, Jul 14, 2025 at 09:25:25AM +0100, Owen Smith wrote:
> > > >> This is almost certainly related to UNPLUGv3. Does the daemon.log =
show
> > > >> anything as to why xenvif detected the re-added vif as a new netwo=
rk
> > device
> > > >> that requires a reboot? Check for "ConfigRequestReboot" and preced=
ing
> > log
> > > >> lines
> > > >
> > > > Where can I find this daemon.log? Do I need to enable some extra
> > logging
> > > > somehow?
> > > >
> > > > The exact message I get is "Xen PV Network Class needs to restart t=
he
> > > > system to complete installation".
> > > >
> > >
> > > If you're using XenServer/XCP-ng, you'll find it at /var/log/daemon.l=
og.
> > >
> > > If not, you can configure QEMU to trace on xen_platform_log events to
> > > listen to the Windows drivers' logging output.
> >
> > It's on Qubes OS. Adding trace on xen_platform_log worked:
> >
> > Relevant (I hope) parts of the output:
> >
> > 1. When starting domU that has vif attached on the previous boot (no
> > reboot request):
> >
> > xen_platform_log xen platform: xenvif|DriverEntry: XENVIF 9.1.0 (0)
> > (11.07.2025)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> > BUS_INTERFACE (VERSION 1)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> > DEBUG_INTERFACE (VERSION 1)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> > SUSPEND_INTERFACE (VERSION 1)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> > EVTCHN_INTERFACE (VERSION 9)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> > STORE_INTERFACE (VERSION 2)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> > RANGE_SET_INTERFACE (VERSION 1)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> > CACHE_INTERFACE (VERSION 2)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> > GNTTAB_INTERFACE (VERSION 4)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> > UNPLUG_INTERFACE (VERSION 3)
> > xen_platform_log xen platform: xenvif|FdoCreate: FFFFC38DB76BDC80 (XP00=
01
> > XENVIF)
> > xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB707F8D0
> > UNKNOWN
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485760000 -
> > FFFFF80485778FFF [xeniface.sys]
> > xen_platform_log xen platform: xeniface|DriverEntry: XENIFACE 9.1.0 (0)
> > (11.07.2025)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE:
> > SUSPEND_INTERFACE (VERSION 1)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE:
> > SHARED_INFO_INTERFACE (VERSION 4)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE:
> > STORE_INTERFACE (VERSION 2)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE:
> > EVTCHN_INTERFACE (VERSION 9)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE:
> > GNTTAB_INTERFACE (VERSION 4)
> > xen_platform_log xen platform: xeniface|FdoInitialiseXSRegistryEntries:
> > fail1 c0000022
> > xen_platform_log xen platform: xeniface|FdoCreate: FFFFC38DB76BD970 (IF=
ACE)
> > xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB707FC00
> > UNKNOWN
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484B40000 -
> > FFFFF80484BB9FFF [usbport.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484F80000 -
> > FFFFF80484F9CFFF [usbehci.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484AB0000 -
> > FFFFF80484B34FFF [ks.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484A80000 -
> > FFFFF80484AA2FFF [drmk.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484A00000 -
> > FFFFF80484A74FFF [portcls.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80484BC0000 -
> > FFFFF80484BF0FFF [hdaudbus.sys]
> > xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB70D1360
> > UNKNOWN
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80486270000 -
> > FFFFF8048631DFFF [USBXHCI.SYS]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80486330000 -
> > FFFFF80486378FFF [Ucx01000.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80486380000 -
> > FFFFF804863CDFFF [intelppm.sys]
> > xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB56EECF0
> > UNKNOWN
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF804863E0000 -
> > FFFFF804863EDFFF [NdisVirtualBus.sys]
> > xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB571CCF0
> > UNKNOWN
> > xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB574BCF0
> > UNKNOWN
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485800000 -
> > FFFFF8048580BFFF [swenum.sys]
> > xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB5705CF0
> > UNKNOWN
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485810000 -
> > FFFFF8048581DFFF [rdpbus.sys]
> > xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC38DB574CCF0
> > UNKNOWN
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF804858C0000 -
> > FFFFF804858CFFFF [usbd.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485830000 -
> > FFFFF804858B8FFF [usbhub.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF804858E0000 -
> > FFFFF80485961FFF [HdAudio.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485970000 -
> > FFFFF80485981FFF [ksthunk.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485990000 -
> > FFFFF80485A42FFF [USBHUB3.SYS]
> > xen_platform_log xen platform: xenvif|__PdoSetPermanentAddress: 0:
> > 00:16:3e:5e:6c:00
> > xen_platform_log xen platform: xenvif|__PdoSetContainerID: 0
> > {d46f4229-a162-54d5-91f2-4efe2768708d}
> > xen_platform_log xen platform: xenvif|FrontendSetMaxQueues: device/vif/=
0: 2
> > xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0:
> > =3D=3D=3D=3D> 'UNKNOWN' -> 'CLOSED'
> > xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in
> > state 'PREPARED'
> > xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in
> > state 'CLOSED'
> > xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0:
> > <=3D=3D=3D=3D=3D
> > xen_platform_log xen platform: xenvif|PdoCreate: FFFFC38DB7852B70 (0)
> > xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000000 -> CAC=
HE
> > v1 VIF v8 STORE v2 SUSPEND v1UNPLUG v1
> > xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000001 -> CAC=
HE
> > v2 VIF v8 STORE v2 SUSPEND v1UNPLUG v1
> > xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000002 -> CAC=
HE
> > v2 VIF v9 STORE v2 SUSPEND v1UNPLUG v1
> > xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000003 -> CAC=
HE
> > v2 VIF v10 STORE v2 SUSPEND v1UNPLUG v1
> > xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000004 -> CAC=
HE
> > v2 VIF v10 STORE v2 SUSPEND v1UNPLUG v2
> > xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000005 -> CAC=
HE
> > v2 VIF v10 STORE v2 SUSPEND v1UNPLUG v3
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80485A50000 -
> > FFFFF80485A60FFF [xennet.sys]
> > xen_platform_log xen platform: xennet|DriverEntry: XENNET 9.1.0 (0)
> > (11.07.2025)
> > xen_platform_log xen platform: xeniface|WmiRegister: DRV: XenIface WMI
> > Initialisation
> > xen_platform_log xen platform: xenvif|PdoSetFriendlyName: 0: Xen PV
> > Network Device #0
> > xen_platform_log xen platform: xenvif|SettingsRestore: fail1 (c0000034)
> > xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0:
> > =3D=3D=3D=3D> 'CLOSED' -> 'CONNECTED'
> > xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in
> > state 'PREPARED'
> > xen_platform_log xen platform: xenvif|__MacSetPermanentAddress:
> > attr/vif/0: 00:16:3E:5E:6C:00
> > xen_platform_log xen platform: xenvif|__MacSetCurrentAddress: attr/vif/=
0:
> > 00:16:3E:5E:6C:00
> > xen_platform_log xen platform: xenvif|FrontendSetNumQueues: device/vif/=
0: 2
> > xen_platform_log xen platform: xenvif|FrontendSetSplit: device/vif/0: T=
RUE
> > xen_platform_log xen platform: xenbus|EvtchnBind: [14]: CPU 0:1
> > xen_platform_log xen platform: xenbus|EvtchnBind: [16]: CPU 0:1
> > xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in
> > state 'CONNECTED'
> > xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0:
> > <=3D=3D=3D=3D=3D
> > xen_platform_log xen platform: xenbus|UnplugRequest: NICS (MAKE)
> > xen_platform_log xen platform: xen|UnplugIncrementValue: NICS 1
> > xen_platform_log xen platform: xenvif|PdoQueryInterface: 0: VIF_INTERFA=
CE
> > (VERSION 10)
> > xen_platform_log xen platform: xenvif|PdoQueryInterface: 0:
> > STORE_INTERFACE (VERSION 2)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> > STORE_INTERFACE (VERSION 2)
> > xen_platform_log xen platform: xenvif|PdoQueryInterface: 0:
> > SUSPEND_INTERFACE (VERSION 1)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> > SUSPEND_INTERFACE (VERSION 1)
> > xen_platform_log xen platform: xenvif|FrontendSetHashAlgorithm:
> > device/vif/0: TOEPLITZ
> > xen_platform_log xen platform: xenvif|ControllerSetHashAlgorithm: fail2
> > xen_platform_log xen platform: xenvif|ControllerSetHashAlgorithm: fail1
> > (c000000d)
> > xen_platform_log xen platform: xenvif|__FrontendUpdateHash: fail1
> > (c000000d)
> > xen_platform_log xen platform: xenvif|FrontendSetHashAlgorithm: fail2
> > xen_platform_log xen platform: xenvif|FrontendSetHashAlgorithm: fail1
> > (c000000d)
> > xen_platform_log xen platform: xenvif|ReceiverSetHashAlgorithm: fail1
> > (c000000d)
> > xen_platform_log xen platform: xenvif|PdoQueryInterface: 0: BUS_INTERFA=
CE
> > (VERSION 1)
> > xen_platform_log xen platform: xenbus|DmaGetAdapter: no interception
> > xen_platform_log xen platform: xennet|AdapterQueryInformation: UNSUPPOR=
TED
> > OID 00010300
> > xen_platform_log xen platform: xennet|AdapterQueryInformation: UNSUPPOR=
TED
> > OID 00010300
> > xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0:
> > =3D=3D=3D=3D> 'CONNECTED' -> 'ENABLED'
> > xen_platform_log xen platform: xenvif|__ReceiverRingEnable:
> > device/vif/0[0]: =3D=3D=3D=3D>
> >
> > 1. When starting domU that has vif detached on the previous boot, but
> > had it earlier present (does request reboot):
> >
> > xen_platform_log xen platform: xenvif|DriverEntry: XENVIF 9.1.0 (0)
> > (11.07.2025)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> > BUS_INTERFACE (VERSION 1)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> > DEBUG_INTERFACE (VERSION 1)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> > SUSPEND_INTERFACE (VERSION 1)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> > EVTCHN_INTERFACE (VERSION 9)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> > STORE_INTERFACE (VERSION 2)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> > RANGE_SET_INTERFACE (VERSION 1)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> > CACHE_INTERFACE (VERSION 2)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> > GNTTAB_INTERFACE (VERSION 4)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: VIF:
> > UNPLUG_INTERFACE (VERSION 3)
> > xen_platform_log xen platform: xenvif|FdoCreate: FFFFC582CB742040 (XP00=
01
> > XENVIF)
> > xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582CB0855F0
> > UNKNOWN
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FD70000 -
> > FFFFF8011FD88FFF [xeniface.sys]
> > xen_platform_log xen platform: xeniface|DriverEntry: XENIFACE 9.1.0 (0)
> > (11.07.2025)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE:
> > SUSPEND_INTERFACE (VERSION 1)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE:
> > SHARED_INFO_INTERFACE (VERSION 4)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE:
> > STORE_INTERFACE (VERSION 2)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE:
> > EVTCHN_INTERFACE (VERSION 9)
> > xen_platform_log xen platform: xenbus|PdoQueryInterface: IFACE:
> > GNTTAB_INTERFACE (VERSION 4)
> > xen_platform_log xen platform: xeniface|FdoInitialiseXSRegistryEntries:
> > fail1 c0000022
> > xen_platform_log xen platform: xeniface|FdoCreate: FFFFC582CB736040 (IF=
ACE)
> > xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582CB0678D0
> > UNKNOWN
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FDB0000 -
> > FFFFF8011FE29FFF [usbport.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FD90000 -
> > FFFFF8011FDACFFF [usbehci.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FF20000 -
> > FFFFF8011FFA4FFF [ks.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FEF0000 -
> > FFFFF8011FF12FFF [drmk.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FE70000 -
> > FFFFF8011FEE4FFF [portcls.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FE30000 -
> > FFFFF8011FE60FFF [hdaudbus.sys]
> > xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582CB0B8360
> > UNKNOWN
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FFB0000 -
> > FFFFF8011FFC1FFF [Rtnic64.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FFD0000 -
> > FFFFF8012007DFFF [USBXHCI.SYS]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80120090000 -
> > FFFFF801200D8FFF [Ucx01000.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF801200E0000 -
> > FFFFF8012012DFFF [intelppm.sys]
> > xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582C974DCF0
> > UNKNOWN
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011F540000 -
> > FFFFF8011F54DFFF [NdisVirtualBus.sys]
> > xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582C9717CF0
> > UNKNOWN
> > xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582C974ECF0
> > UNKNOWN
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FB60000 -
> > FFFFF8011FB6BFFF [swenum.sys]
> > xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582C96F1CF0
> > UNKNOWN
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF8011FB70000 -
> > FFFFF8011FB7DFFF [rdpbus.sys]
> > xen_platform_log xen platform: xenfilt|DriverAddDevice: FFFFC582C974FCF0
> > UNKNOWN
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80121080000 -
> > FFFFF8012108FFFF [usbd.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80120FF0000 -
> > FFFFF80121078FFF [usbhub.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF801210A0000 -
> > FFFFF80121121FFF [HdAudio.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80121130000 -
> > FFFFF80121141FFF [ksthunk.sys]
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF80120200000 -
> > FFFFF801202B2FFF [USBHUB3.SYS]
> > xen_platform_log xen platform: xenvif|__PdoSetPermanentAddress: 0:
> > 00:16:3e:5e:6c:00
> > xen_platform_log xen platform: xenvif|__PdoSetContainerID: 0
> > {d46f4229-a162-54d5-91f2-4efe2768708d}
> > xen_platform_log xen platform: xenvif|FrontendSetMaxQueues: device/vif/=
0: 2
> > xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0:
> > =3D=3D=3D=3D> 'UNKNOWN' -> 'CLOSED'
> > xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in
> > state 'PREPARED'
> > xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0 in
> > state 'CLOSED'
> > xen_platform_log xen platform: xenvif|FrontendSetState: device/vif/0:
> > <=3D=3D=3D=3D=3D
> > xen_platform_log xen platform: xenvif|PdoCreate: FFFFC582CB7A4450 (0)
> > xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000000 -> CAC=
HE
> > v1 VIF v8 STORE v2 SUSPEND v1UNPLUG v1
> > xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000001 -> CAC=
HE
> > v2 VIF v8 STORE v2 SUSPEND v1UNPLUG v1
> > xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000002 -> CAC=
HE
> > v2 VIF v9 STORE v2 SUSPEND v1UNPLUG v1
> > xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000003 -> CAC=
HE
> > v2 VIF v10 STORE v2 SUSPEND v1UNPLUG v1
> > xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000004 -> CAC=
HE
> > v2 VIF v10 STORE v2 SUSPEND v1UNPLUG v2
> > xen_platform_log xen platform: xenvif|PdoDumpRevisions: 09000005 -> CAC=
HE
> > v2 VIF v10 STORE v2 SUSPEND v1UNPLUG v3
> > xen_platform_log xen platform: xen|ModuleAdd: FFFFF801202C0000 -
> > FFFFF801202D0FFF [xennet.sys]
> > xen_platform_log xen platform: xennet|DriverEntry: XENNET 9.1.0 (0)
> > (11.07.2025)
> > xen_platform_log xen platform: xeniface|WmiRegister: DRV: XenIface WMI
> > Initialisation
> > xen_platform_log xen platform: xenvif|PdoSetFriendlyName: 0: Xen PV
> > Network Device #0
> > xen_platform_log xen platform: xenvif|SettingsSave: FROM Ethernet 2
> > (Realtek RTL8139C+ Fast Ethernet NIC)
> > xen_platform_log xen platform: xenvif|SettingsSave: FROM
> > {79925511-18ba-482b-b579-b215927768b7}
> > xen_platform_log xen platform: xenvif|SettingsSave: FROM 00060080020000=
00
> > xen_platform_log xen platform: xenvif|PdoParseMibTable: fail4
> > xen_platform_log xen platform: xenvif|PdoParseMibTable: fail3
> > xen_platform_log xen platform: xenvif|PdoParseMibTable: fail2
> > xen_platform_log xen platform: xenvif|PdoParseMibTable: fail1 (c00002d2)
> > xen_platform_log xen platform: xenbus|UnplugRequest: NICS (MAKE)
> > xen_platform_log xen platform: xen|UnplugIncrementValue: NICS 1
> > xen_platform_log xen platform: xen|ConfigRequestReboot: =3D=3D=3D=3D>
> > xen_platform_log xen platform: xen|ConfigRequestReboot: <=3D=3D=3D=3D
> > xen_platform_log xen platform: xenvif|PdoStartDevice: fail5
> > xen_platform_log xen platform: xenvif|PdoStartDevice: fail4
> > xen_platform_log xen platform: xenvif|PdoStartDevice: fail3
> > xen_platform_log xen platform: xenvif|PdoStartDevice: fail2
> > xen_platform_log xen platform: xenvif|PdoStartDevice: fail1 (c00002d2)
> > xen_platform_log xen platform: xennet|DriverUnload: XENNET 9.1.0 (0)
> > (11.07.2025)
> >
> > If needed, I uploaded full output to:
> > https://gist.github.com/marmarek/b9f96cfe469e6873f78e6945aa7a7acf (two
> > files there)
> >
> > --
> > Best Regards,
> > Marek Marczykowski-G=C3=B3recki
> > Invisible Things Lab
> >

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--7bPO2ggEAD/nk2Xi
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmh29woACgkQ24/THMrX
1yxRDwf+LTKhPxfRA4AaNHeJ4JZ8hYn5J4Qeoze7mW3kAD4HkicX1TZZqODXuxnq
QDc/hH2rtZRL4XwKrfHW2+hCodw/gPP84mns5l5CTuPjt7YnFz2Q2jpQCPdvMPdQ
xT7PrWtm+YqZrN31eVpoiitS0Q1L8FNsxuI3lXHd0Wu2qyL36UB/Tm29RSGi4sWw
2y05ybiMfCMLiEe854AJ7Essu/U1pgCzWyHhNYqCgWiFR4bkeQKH6F0zvXFefJSx
KqJiMD0bge6rUX373nnKQ4so6yVizo+xqOkrhAGq0DlsjGpIfSlU/OSo4QsRnhTz
ph3b2ZJzHV7fcaknX4Ud1ct5WuXpNA==
=PheO
-----END PGP SIGNATURE-----

--7bPO2ggEAD/nk2Xi--


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 18 01:08:35 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 18 Jul 2025 01:08:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1047714.1418069 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ucZaS-0002eu-CZ; Fri, 18 Jul 2025 01:08:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1047714.1418069; Fri, 18 Jul 2025 01:08:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ucZaS-0002el-91; Fri, 18 Jul 2025 01:08:32 +0000
Received: by outflank-mailman (input) for mailman id 1047714;
 Fri, 18 Jul 2025 01:08:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NEbx=Z7=bounce.vates.tech=bounce-md_30504962.68799e8a.v1-c18d6a3cf2344dfaa1b5f979f4239bbd@srs-se1.protection.inumbo.net>)
 id 1ucZaQ-0002ef-Vx
 for win-pv-devel@lists.xenproject.org; Fri, 18 Jul 2025 01:08:31 +0000
Received: from mail13.wdc04.mandrillapp.com (mail13.wdc04.mandrillapp.com
 [205.201.139.13]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b5ad0d44-6373-11f0-b894-0df219b8e170;
 Fri, 18 Jul 2025 03:08:28 +0200 (CEST)
Received: from pmta16.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail13.wdc04.mandrillapp.com (Mailchimp) with ESMTP id 4bjs9k23B4zNCdKZ9
 for <win-pv-devel@lists.xenproject.org>; Fri, 18 Jul 2025 01:08:26 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c18d6a3cf2344dfaa1b5f979f4239bbd; Fri, 18 Jul 2025 01:08:26 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b5ad0d44-6373-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1752800906; x=1753070906;
	bh=SHu03JqfPMz4lz1nO3W1TzEghgiKx4t7yBw7IX2hsDg=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=bf3ELDLZ1I2e4umQ2S9l+spb7B6SqxWldA0Qs3Kt/AOld/YIicbwp3BJqIA6/Dwf3
	 0S0MxZVxtcJE3FllYqGaEDClVn+JXCPlkN3yod4pWLxms0bsFWXXZIORUWpMnVMcK4
	 bVXdZlVIbe9bELld5/W6yU3Rr2PHT3/biPasxF3oWeRdtaBmbCYIVH2DfqR/qMleZN
	 8O0pdbQvicwy552S9WEFbRDGbLpooqLHiS6K2m5hSVL11ZuNLY2zkYLjIuHcSetByi
	 P5jlcmKrCwNXUQ3aR5wHedO1jCD2cmLtYMkM3ghQBi/ep44djJbhe+3WidS/5gmW1U
	 /+ziYHgClS0bg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1752800906; x=1753061406; i=ngoc-tu.dinh@vates.tech;
	bh=SHu03JqfPMz4lz1nO3W1TzEghgiKx4t7yBw7IX2hsDg=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=xNRbiqL+n6ZnWk9j4Xvi+npeSO9ZmM69uybCHfgFMmPXV41ec1te3Zhtej91K6t1H
	 r+bm5hw3ld6wE5D9AFXw70/KlFB/PVaQDoUlOTyZ0zNYEgGB4i5X+So4QTb923Bbo+
	 lYemiWN3zHEZwXrvMXiR4c7H+iAth7GqO1eeGJL5e7Is/cvhG7qtEyfaNr+BJ343LF
	 7QtL+KajPOlSRmnimMtRNYC3QDdqzvFpaDtxR7B0nIXTyzN+U5oQzDaBIOQaN2w5/m
	 4xsapGWa2aXfvohW4o7dUtO+y6a6GZ8jV9GSNia6OVH2KLXHeWNgxkDAh8s5NasL7C
	 hzO9EkxHIiZkQ==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[PATCH]=20Fix=20failure=20cleanup=20in=20EvtchnFifoAcquire?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1752800904847
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250718010822.240-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.c18d6a3cf2344dfaa1b5f979f4239bbd?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250718:md
Date: Fri, 18 Jul 2025 01:08:26 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

The current index is incremented before checking for failure:

    while (Index < ProcessorCount) {
        Index++;
        [...]
        if (!NT_SUCCESS(status))
            goto fail1;
        Context->ControlBlockMdl[vcpu_id] = Mdl;
    }

Decrement the index before going into the cleanup loop to avoid calling
__FreePage on invalid PMDLs.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 src/xenbus/evtchn_fifo.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/xenbus/evtchn_fifo.c b/src/xenbus/evtchn_fifo.c
index 1137dea..ed78815 100644
--- a/src/xenbus/evtchn_fifo.c
+++ b/src/xenbus/evtchn_fifo.c
@@ -561,6 +561,7 @@ fail1:
 
     EvtchnReset();
 
+    Index--;
     while (--Index >= 0) {
         unsigned int    vcpu_id;
 
-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Fri Jul 18 07:48:57 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 18 Jul 2025 07:48:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1048119.1418407 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ucfpv-0005pt-ME; Fri, 18 Jul 2025 07:48:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1048119.1418407; Fri, 18 Jul 2025 07:48:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ucfpv-0005pm-J0; Fri, 18 Jul 2025 07:48:55 +0000
Received: by outflank-mailman (input) for mailman id 1048119;
 Fri, 18 Jul 2025 07:48:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9911=Z7=amazon.co.uk=prvs=2879db4ba=pdurrant@srs-se1.protection.inumbo.net>)
 id 1ucfpu-0005pg-A0
 for win-pv-devel@lists.xenproject.org; Fri, 18 Jul 2025 07:48:54 +0000
Received: from smtp-fw-80008.amazon.com (smtp-fw-80008.amazon.com
 [99.78.197.219]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a3f13452-63ab-11f0-a319-13f23c93f187;
 Fri, 18 Jul 2025 09:48:52 +0200 (CEST)
Received: from pdx4-co-svc-p1-lb2-vlan3.amazon.com (HELO
 smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.25.36.214])
 by smtp-border-fw-80008.pdx80.corp.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jul 2025 07:48:46 +0000
Received: from EX19MTAEUA002.ant.amazon.com [10.0.10.100:45625]
 by smtpin.naws.eu-west-1.prod.farcaster.email.amazon.dev [10.0.9.60:2525] with
 esmtp (Farcaster)
 id 8c486aca-f6e5-4c99-a38d-e39bc963ca13; Fri, 18 Jul 2025 07:48:45 +0000 (UTC)
Received: from EX19EXOEUB002.ant.amazon.com (10.252.51.83) by
 EX19MTAEUA002.ant.amazon.com (10.252.50.126) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1544.14;
 Fri, 18 Jul 2025 07:48:45 +0000
Received: from EX19EXOEUA001.ant.amazon.com (10.252.50.110) by
 EX19EXOEUB002.ant.amazon.com (10.252.51.83) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1544.14;
 Fri, 18 Jul 2025 07:48:43 +0000
Received: from CWXP265CU008.outbound.protection.outlook.com (10.252.51.199) by
 EX19EXOEUA001.ant.amazon.com (10.252.50.110) with Microsoft SMTP
 Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1544.14
 via Frontend Transport; Fri, 18 Jul 2025 07:48:43 +0000
Received: from LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1e2::5)
 by LO2P123MB7099.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:328::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8922.40; Fri, 18 Jul
 2025 07:48:42 +0000
Received: from LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM
 ([fe80::6d99:efc8:6d56:b029]) by LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM
 ([fe80::6d99:efc8:6d56:b029%6]) with mapi id 15.20.8943.024; Fri, 18 Jul 2025
 07:48:42 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a3f13452-63ab-11f0-a319-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.co.uk; i=@amazon.co.uk; q=dns/txt;
  s=amazoncorp2; t=1752824932; x=1784360932;
  h=from:to:cc:date:message-id:references:in-reply-to:
   content-transfer-encoding:mime-version:subject;
  bh=9Nj62XALzV98dROaX1wYmooXs+jMUhH2vzb1m5GB1/8=;
  b=kWhWT5/8UrBMWf2aGS+MeWkpqMr9pNVWRcYBMVxr4JSGb86GvK6i9FY9
   6LWymvLCsLuDMdwRC02+DkiVuYFbaMQf+7A+A6p2dqUYQYN5P1Zsb5ii1
   zncOmV9l7kjutRpBc1QIiXnJePW1elP4eV9V+326UBBtwp0VPn17iWMEl
   FyOAiWhuqoUgEmzWtPM4aBOg/JgEmuP9vl+MIsaBtHrmWpXeP5Z7WB3sF
   7c8xGtJRro803SbynOd7F6RxPK2wCdiGsUf+9SBKuYX14C+8NeFKfWlaD
   1GTDc20mrta7kwal5jtvuGMYDnKqcm1vNaCaoD+SlU8WiWGwOwngpMLAV
   g==;
X-IronPort-AV: E=Sophos;i="6.16,321,1744070400"; 
   d="scan'208";a="215651004"
Subject: RE: [PATCH] Fix failure cleanup in EvtchnFifoAcquire
Thread-Topic: [PATCH] Fix failure cleanup in EvtchnFifoAcquire
X-Farcaster-Flow-ID: 8c486aca-f6e5-4c99-a38d-e39bc963ca13
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wC7sVUkoYRP9xEncAOB3fBeP8C5Qi9CTYWuGKxpPGW3exu4A6uZB62FlG6/tu89q1Z1oz2jFwVlTPgLYP1KGaM7VFaUoFzcv0ZTWxldLFDJabHQRXcRC79KBS1OWtrR9YwQ3AckDoUYDFnP8oMhKuuwVbv0/SPd8dfgrgA4kY8wlqLtkLFVhhwzfqriPVN94JsIWt1qZVvnK/iXhfGxMhNXiaolFAdKbty8eoN8/YCFwGFFCXDXP5GIG4mxl4ncVoiOxwdc9HPibwuOefWeQlcWZIodnnZSJLoLxRrnvju2qyK30NwQfh3dfgnAfoDu7EkLrSPKg84PypuGyR0UlFA==
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=9Nj62XALzV98dROaX1wYmooXs+jMUhH2vzb1m5GB1/8=;
 b=n/8ADa0vBK8S8LIrxcsudNhULtxJ6rWFQkBHfeTHVPd4cDoiV/Hiza+YxFuFIpu3aaUP3h8rYrSd2Tj4TuMGYVot4/QBWSgXFpbuYwdoqI3st4I+aRdKFDDjmRKrC579LZLwy0GcP3XXZCVwBQnQ+9t1GdFNa0Y7MEsRWoWVHlLmn21b3NKG+08wM4J0MjWI9jijMbzqp8A2rBz8SLLvfFSlAfXb2rgxPwLB8s62wD8ZguW8LasocfLk/tItTAilnBY/Aq6J/PLo8PU2vjU3C6hxqfvsDluTCStTeOZKUsSexnULJuhAW9WRh6XoqKz16us8tXDpPC6dgqntmjgUCA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amazon.co.uk; dmarc=pass action=none header.from=amazon.co.uk;
 dkim=pass header.d=amazon.co.uk; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=amazon.onmicrosoft.com; s=selector2-amazon-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9Nj62XALzV98dROaX1wYmooXs+jMUhH2vzb1m5GB1/8=;
 b=KTz8BnWRmZrfLXUzOjNN/mPlPBRwyi3izXu/DeYgN/SG6a3CfHJ5ASF+n9m4Thh37v06N8ar0aD8utab+0YoH5WGA/xqyjhhSSn11WUrYnQJR569qveUWGtfTG1095VquNy0OuQYq5G+4/R1hGBIXqciGuQIT4GEpUkq5A09vlE=
From: "Durrant, Paul" <pdurrant@amazon.co.uk>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
CC: Owen Smith <owen.smith@cloud.com>
Thread-Index: AQHb94C0z/qpxQRpNEOFwkCMZij8nrQ3gWNw
Date: Fri, 18 Jul 2025 07:48:42 +0000
Message-ID: <LO2P123MB4766455B2DF7090E8122A259E450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM>
References: <20250718010822.240-1-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250718010822.240-1-ngoc-tu.dinh@vates.tech>
Accept-Language: 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=amazon.co.uk;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LO2P123MB4766:EE_|LO2P123MB7099:EE_
x-ms-office365-filtering-correlation-id: ae9e7da8-873f-42a3-56ea-08ddc5cf8468
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info: =?utf-8?B?dm9IN1VTM01mZlUySG5BNmFiY2wxM2pJSHBTa2Q5QzJCYUkrN1AzMU9CQ1ZH?=
 =?utf-8?B?Q0pQaXU0TVdyekxHZ0o0NlZXeEd0azZYKzJhdnJSclprRzdUSWlKdEEzeklJ?=
 =?utf-8?B?RysrMVZIMEo3dDFCSUcvNTZScERONzhzV0RyWnZBZDFYUUUwREpoeU1Oc1hj?=
 =?utf-8?B?UmtDS1Nsb05ZYWdQYUJRbXZUQXhnQnVvTjUvSzVyM00vczhCQm5IbUZTbHFt?=
 =?utf-8?B?NU9jTDBHZmpJRmRnbUo4QjFpRHZVYVJpRnc0dHVqZEVWbmQ0R3hJcll0Rytv?=
 =?utf-8?B?dWNDRDhXc3hUR21nL1dyMVgzakZjMFgwcWVidVBVZkp4WDVUckN1YlJXRHFU?=
 =?utf-8?B?cVZMN3U5YjdrQmU4Q2cwOE5weHUzR3FTZmF1VkY2dWhmY3h2MDNqc083WTJ6?=
 =?utf-8?B?dDFlVVU4YWhSZVAyMDY4U1J6Q0dPa1NBU2lnNGdyeVFtUzEzNmNVenBoOCtl?=
 =?utf-8?B?L0R4TVhGR1FGL3A4N1Y4S0poTEZJdHZxQUJ5ZEl2RTgzLythZnZIL0k0ejZR?=
 =?utf-8?B?Qy9jWW1NTjlvcDBnRjVvanNXMi8zV2xJRU4vWDdmOUhaVjJDSm5uK2V2bG53?=
 =?utf-8?B?RzBYcDZ4SnM2Qm1ibENVTVZCQVN6M1RiY2pDanhwMGJ0Q1JMc2ZxNCtMQ3VF?=
 =?utf-8?B?T09jRk9aY2tGcmdwTDZtamZrUUJEWVBzSDUwSE1JR0pBYXJhVjdmQ3JESWpP?=
 =?utf-8?B?NFF2UzFSalIyOCs3WkNraWN6RW9FYXpGaGNBOGoxcGxobkdmUnNZQjZSZ0x4?=
 =?utf-8?B?YysvSWg1bnpObGg0UzhkTE80QmN6QkdxeEpLcGk3RElOd25hYnpEcTZkMUw0?=
 =?utf-8?B?MGp4MzFHU09tRXZRNjlyRVZYWDl0c0Q1S3l3amRXTDliZDlNbE4rMFBtNW9D?=
 =?utf-8?B?dDQzaGJsRDJCckV2eGtRNkc3WER5QWV5MzRhRWJlYk95VXRMYkJOa0Q1NnRh?=
 =?utf-8?B?STg2TzBTQkZXcUdCdlZtRmFjRFFnWHdyTmZ1RnhHa1VFbWtvY2lGb3Arb3Bj?=
 =?utf-8?B?QVJZWTlsWmViSGFFak4vd0hhOVZFb0ZHbm1mcFBTMUJHTFU3WEx4RTkvcitW?=
 =?utf-8?B?bTVqT0EvK0I1NzNSVTIySml4TFplbjlvMTFCUk1FcWtHTkJLd1cwMTBEcTNH?=
 =?utf-8?B?aWRidVh2clIxaWxsWHFqUWNHUHdBM3krVW4zWWtNL0ZIajhHQXZyblpaYXQw?=
 =?utf-8?B?cHRMOFZGdk8ybXRiNDYzYXZHN1FrM01ocFdLbStLcmdwbU9NZHYwTVlkbTF3?=
 =?utf-8?B?SHpvQnNiYmxjb0ZJeG1qVU94SWx6RUxPTlZOVCtRZUJxWXFoL1JjUEFtZ0kv?=
 =?utf-8?B?TUtLVmJNNFFKNmxqVm1CTWErYUxwSGI5L1NKOTNsUkFzUGZhTGw0Lyt4SjVn?=
 =?utf-8?B?enc4OGJjL3lFZ0VjS2YwUkR6eW5nS010ZXQycW1ZbTNaS2loakNTWTFBbENo?=
 =?utf-8?B?OTRRU2hLNlZjSmRJbFNyMTJkOVFCQko3bVB2QXowTjMzWHgwOUpHNmo3Sldh?=
 =?utf-8?B?SmJKNXhMNGtUd0RJZ2JaU0JNQ0tHemhCV0N2emkvOEFvUTdZelZ1Ni9Ta0Er?=
 =?utf-8?B?MkYvdllkczRqWDlicTdTM2RTSXAyalp2UkR6cGtnWWtITHJXd2hYTmFuOHFV?=
 =?utf-8?B?NzZocXR5b1FiZGQ1VzFuQ1B4d0U3aXFMOWRwa1pieFVoT2hlZ3lNdlQ0aVlx?=
 =?utf-8?B?RWJDaVRVK0xtdFNHL2ZyUHhrQWxiRFhYQVloYWVUMExJYlQvV3IzVkphbHlp?=
 =?utf-8?B?R2tTK2dCcmVWSTNodXNmcDVSK3hDdnJZS01wU2h2SlEyUWY5NkZSZld4T3dN?=
 =?utf-8?B?ZjlkUGFySVErbWc5VDFTd2VJTXVtZHdYV0JPeFhyWmhmQUxCdVJEemRTWTE3?=
 =?utf-8?B?bFhXL3hNaFo4d2FmclF3RUp3Q2g4UG1IVzZGTk9CWGx1Y2Z6YzMyL2FUN21s?=
 =?utf-8?Q?7EQixyd1240=3D?=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aWh2K28rUG93OThoUE9RMTJLT0RzVDJoNXd0MHNPcVZLWklXRTN1VkZWZUlu?=
 =?utf-8?B?MEhPbHBYMGgyUXUxSDAxSzFaenRILy8zVTlKOXZwb2ZsU1lKeWYycmFqblpn?=
 =?utf-8?B?S29vbXNsTnZIdTB6WG5wQUVjM0cxckFGd0I4MmJ3eW11bXphbllBcVVkV293?=
 =?utf-8?B?OWR3SWZkdHp0cjc2MVNIdHNsYUNKbHJmS0JBaUZkTEhtOWZYbXFSQWhvT3ZB?=
 =?utf-8?B?VUVVS2N2TzVpTXBtdU82RnVBa0VId0FWelZ0RXRjeTJwdUxxRFhUMDIwZi93?=
 =?utf-8?B?cGdHRTNEVVVIT1VkYU1oaytKM01WMGIwbks5VDhydlpKK3dXVWRML1A5cXN6?=
 =?utf-8?B?UFkxRkdlcWM2NGdZdnQ0Qzl2K2JUNnB2WkdUVU9TZ3E5ajBjOGFvOXlTRzZZ?=
 =?utf-8?B?Yk10YmFtbEZIVEpTTzV0QUVjdmlzZ0pIMlRnR2VZVlJ2RStTZ0IvOEVJcWdz?=
 =?utf-8?B?ZkhieHh6QUxuaVArei9hc1RuNHlCNHNzRm9RWDJ2ZlJ4RDVMSWJJQXpXM0RH?=
 =?utf-8?B?am5RR1Rpb1d0V096NW5tL3ZocUN2THJKMHRoWE9KdVNVTEFMTnM3eFdhYkxG?=
 =?utf-8?B?WWdtMCt3M2Z6b3NRaWRpNmVWVXNZSFdmZm1VMHFpcTlqdWQxenlmUXRRNno4?=
 =?utf-8?B?bUdNZkhsVzFrclRoUVRpSll4cXhObE4rZTc4SENGdGU4K3JVeGFEazVsajhv?=
 =?utf-8?B?UUNLREdlQnpZRUUySi9LRnpscDR6cVVLS3F0R0ZhT1hUaE14aktPYWlKemhP?=
 =?utf-8?B?WmxVYTE4aVptTDBLQkpkSVRSNDRhRWNOS3R0Z25aQy92TFZLQWZmR0FILzdC?=
 =?utf-8?B?dVR4R1ZqZk1VbkJFaGpzbHpLei9UaE1oS0JWU2pnWG9tT1Ewcm54SUtIRzI4?=
 =?utf-8?B?Qm9TZnBvalROdFZPalVDZUpIVnptTUVQK1o0Nm9jWEdzdVV0QVVEY1ZlaGVp?=
 =?utf-8?B?ZkN3aTkwRFdOdUJKOHpSUXlFTzA3Wlhockg4RTlVVktFUHpGUkw1RDFKci90?=
 =?utf-8?B?OEtlTlQybzNsSkdINTFaMUpGeWJxWk40VHlCVFJNRGtQdUd1NzNmcmhyVXlT?=
 =?utf-8?B?L0JkNSt3VTZTRUwzdlFTYm9HK1F6YlhBUUNjN2Y3anZKcU01MXJyVzQ4N2xZ?=
 =?utf-8?B?ejhMbEZoMzNTQ05mbllQcGtVMWtCSXRhbUtzbzNmV2FxRjZsRjF3RENrUjIw?=
 =?utf-8?B?ZlFWWU0vRnAvY3Y0dWF3dC9VTHJQOHpSWkFkQ09rOUVhQU5LRTgvQ1pMNTF3?=
 =?utf-8?B?Z2pnUWdydFVVWFRhTlB0aGNEa1VqSFdqQks2Ty9hZTBmK2FJRjZQV255MzVD?=
 =?utf-8?B?dkY3TDdJZGdIQ0krcUtjTTJaL29WaUJvWlFUWmU0N2ZDL1NkaFNaeE0vaTlD?=
 =?utf-8?B?ODA3MXY5NmpnVCtVbllzdzltTVpoRHJlNmczZHRnM3dlS0FqUEp5OStaTC8y?=
 =?utf-8?B?Q2FLbThYY29LaXJzZUNOSXVPaHRVN3IxbjZSVTVKdGlyK3hDQjFnK0dHNkFN?=
 =?utf-8?B?OC9aRWJFb2U0WktVK296ZlM2Q3hrVmhyYSt4MUhEb1l1cWFRS0wrYlZVRTFV?=
 =?utf-8?B?NkN0YjlxblRTRlBUaC9tS0VCR0s5emdMNmFZMjA4Z0hSL2FsZUNMUTVSenVo?=
 =?utf-8?B?OEtOMnJ5azNEbGFWamxmaGxTbzMyamNyRXRnekZjbVQ5STU2SWpjZG1NSlND?=
 =?utf-8?B?ajQvb2tLaHJMSVZ6Q3kzQVRVTkRCaER2WVZiZzlyMlZEZS9TU0QxSEVlcHBY?=
 =?utf-8?B?eDNBRlk3UWllVDRrV2F4b3daeXhGSVlxYkdiKzFwOTBUVi9JMnFJL1dQMXZD?=
 =?utf-8?B?Umg1NjR3SVNqbEcyQkdHcjVHN0JOYTdBeFVxUFB5THI3YVNsSjNnL3JQN01k?=
 =?utf-8?B?RGtrQllheFcwQnl3akZXT2NGMEhsSVpmNHJBc1NJc1dQT3FXY2FoRUJKWXZx?=
 =?utf-8?B?enlacEoxYW94bzg4UDFiRDNxUW1GTHVJY0UwbWNOdGVveENybzA3Q3ZLcktL?=
 =?utf-8?B?V3hVaGhidkJ6TVpQOUJmUitvdWxGaXdEMURQWWtJWTZib252VWJ1NXdQMG9h?=
 =?utf-8?B?WitseTE5c0JRRVJpcmludlE1TWNCa3ppSTliZDBsbm1oNTJ3U2VRZzFPajRT?=
 =?utf-8?Q?HI8PWJ6CPSb8qMhvqP+U1CvxR?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: ae9e7da8-873f-42a3-56ea-08ddc5cf8468
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jul 2025 07:48:42.6467
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5280104a-472d-4538-9ccf-1e1d0efe8b1b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: EstXeD9iaEu15pt0ZpPlEILUlyZW3J3C2gR8u8Aa3TGCyS/G999Ho/pEulZABgQPlY7+LyCDu1tVAfOH7QA1UA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO2P123MB7099
X-OriginatorOrg: amazon.co.uk

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgPHdpbi1w
di1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnPiBPbiBCZWhhbGYNCj4gT2YgVHUg
RGluaA0KPiBTZW50OiBGcmlkYXksIEp1bHkgMTgsIDIwMjUgMjowOCBBTQ0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBUdSBEaW5oIDxuZ29jLXR1LmRpbmhA
dmF0ZXMudGVjaD47IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2xvdWQuY29tPg0KPiBTdWJqZWN0
OiBbRVhURVJOQUxdIFtQQVRDSF0gRml4IGZhaWx1cmUgY2xlYW51cCBpbiBFdnRjaG5GaWZvQWNx
dWlyZQ0KPiANCj4gQ0FVVElPTjogVGhpcyBlbWFpbCBvcmlnaW5hdGVkIGZyb20gb3V0c2lkZSBv
ZiB0aGUgb3JnYW5pemF0aW9uLiBEbyBub3QNCj4gY2xpY2sgbGlua3Mgb3Igb3BlbiBhdHRhY2ht
ZW50cyB1bmxlc3MgeW91IGNhbiBjb25maXJtIHRoZSBzZW5kZXIgYW5kIGtub3cNCj4gdGhlIGNv
bnRlbnQgaXMgc2FmZS4NCj4gDQo+IA0KPiANCj4gVGhlIGN1cnJlbnQgaW5kZXggaXMgaW5jcmVt
ZW50ZWQgYmVmb3JlIGNoZWNraW5nIGZvciBmYWlsdXJlOg0KPiANCg0KSSB0aGluayB0aGF0IGlz
IGJ5IGRlc2lnbi4NCg0KPiAgICAgd2hpbGUgKEluZGV4IDwgUHJvY2Vzc29yQ291bnQpIHsNCj4g
ICAgICAgICBJbmRleCsrOw0KPiAgICAgICAgIFsuLi5dDQo+ICAgICAgICAgaWYgKCFOVF9TVUND
RVNTKHN0YXR1cykpDQo+ICAgICAgICAgICAgIGdvdG8gZmFpbDE7DQo+ICAgICAgICAgQ29udGV4
dC0+Q29udHJvbEJsb2NrTWRsW3ZjcHVfaWRdID0gTWRsOw0KPiAgICAgfQ0KPiANCj4gRGVjcmVt
ZW50IHRoZSBpbmRleCBiZWZvcmUgZ29pbmcgaW50byB0aGUgY2xlYW51cCBsb29wIHRvIGF2b2lk
IGNhbGxpbmcNCj4gX19GcmVlUGFnZSBvbiBpbnZhbGlkIFBNRExzLg0KPiANCj4gU2lnbmVkLW9m
Zi1ieTogVHUgRGluaCA8bmdvYy10dS5kaW5oQHZhdGVzLnRlY2g+DQo+IC0tLQ0KPiAgc3JjL3hl
bmJ1cy9ldnRjaG5fZmlmby5jIHwgMSArDQo+ICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o
KykNCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVuYnVzL2V2dGNobl9maWZvLmMgYi9zcmMveGVu
YnVzL2V2dGNobl9maWZvLmMNCj4gaW5kZXggMTEzN2RlYS4uZWQ3ODgxNSAxMDA2NDQNCj4gLS0t
IGEvc3JjL3hlbmJ1cy9ldnRjaG5fZmlmby5jDQo+ICsrKyBiL3NyYy94ZW5idXMvZXZ0Y2huX2Zp
Zm8uYw0KPiBAQCAtNTYxLDYgKzU2MSw3IEBAIGZhaWwxOg0KPiANCj4gICAgICBFdnRjaG5SZXNl
dCgpOw0KPiANCj4gKyAgICBJbmRleC0tOw0KDQpJIHRoaW5rIHRoaXMgaXMgd3JvbmcgYmVjYXVz
ZS4uLg0KDQo+ICAgICAgd2hpbGUgKC0tSW5kZXggPj0gMCkgew0KDQouLi4gdGhlcmUgaXMgYSBw
cmUtZGVjcmVtZW50IGhlcmUgYmVmb3JlIHRoZSB2YWx1ZSBvZiBJbmRleCBpcyB1c2VkIGJlbG93
Lg0KDQpQYXVsDQoNCj4gICAgICAgICAgdW5zaWduZWQgaW50ICAgIHZjcHVfaWQ7DQo+IA0KPiAt
LQ0KPiAyLjUwLjEud2luZG93cy4xDQo+IA0KPiANCj4gDQo+IE5nb2MgVHUgRGluaCB8IFZhdGVz
IFhDUC1uZyBEZXZlbG9wZXINCj4gDQo+IFhDUC1uZyAmIFhlbiBPcmNoZXN0cmEgLSBWYXRlcyBz
b2x1dGlvbnMNCj4gDQo+IHdlYjogaHR0cHM6Ly92YXRlcy50ZWNoDQo+IA0KDQo=


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 18 08:19:49 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 18 Jul 2025 08:19:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1048149.1418439 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ucgJo-0003c5-I7; Fri, 18 Jul 2025 08:19:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1048149.1418439; Fri, 18 Jul 2025 08:19:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ucgJo-0003by-FG; Fri, 18 Jul 2025 08:19:48 +0000
Received: by outflank-mailman (input) for mailman id 1048149;
 Fri, 18 Jul 2025 08:19:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Zcpq=Z7=bounce.vates.tech=bounce-md_30504962.687a039f.v1-ca4d84e8eb804dfab099ed46a5df596d@srs-se1.protection.inumbo.net>)
 id 1ucgJm-0003bl-Tl
 for win-pv-devel@lists.xenproject.org; Fri, 18 Jul 2025 08:19:46 +0000
Received: from mail13.wdc04.mandrillapp.com (mail13.wdc04.mandrillapp.com
 [205.201.139.13]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f5ac8300-63af-11f0-b894-0df219b8e170;
 Fri, 18 Jul 2025 10:19:44 +0200 (CEST)
Received: from pmta16.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail13.wdc04.mandrillapp.com (Mailchimp) with ESMTP id 4bk2lM32HSzNCfNVn
 for <win-pv-devel@lists.xenproject.org>; Fri, 18 Jul 2025 08:19:43 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 ca4d84e8eb804dfab099ed46a5df596d; Fri, 18 Jul 2025 08:19:43 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f5ac8300-63af-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1752826783; x=1753096783;
	bh=TbSMvZCqGFGVdvmdZna1r5b+YZlgtTbe2EmKC05Rk8A=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=S+L6jQkEd499HgrQD4Na+IrIn5oqKripV/0XPXkN8mlbS74urE9424LTBrfIrh735
	 qV+xFYHk035W8vYmxcQVevXZPfD0MK5FPzH5sQTzHfdowESsk8i2XdAYCAAknRAVEF
	 rXn0CnR73H5Qiqgeh8MTxMpshsr4CAq1kjGhFc1KfRSlxjHId/jY49tZQ4kHZEuXcf
	 gcZXEEPEemIefPM0ILLe9NIRb1YhoFtvMZUUa7kTjKrp5mKZ8CLh149hMP5HWDTp2s
	 mOXQ7M1s9XmOd/hhr8ltR4FKCeNarr9T/reKf8FQABxDQ/w+ODOiYnEcFonwcHDb0J
	 xCgFpQo4HgVVw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1752826783; x=1753087283; i=ngoc-tu.dinh@vates.tech;
	bh=TbSMvZCqGFGVdvmdZna1r5b+YZlgtTbe2EmKC05Rk8A=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=OZm5dI+GUh3EthtvdhZLianlWI2Va1EZJNvDwg5Ye06+/x/0uTT/Pg4iWBUkEF4uk
	 cojRyVgJ7JkcDjqj/80JIqwagRyR+2N7MsqFeSawUL0aBiviCp/BdTxdvWKZsZLMCA
	 y6JIyov9nk2s1yrtdCoeGJ69SqHxkBUYu1x/gNVtLCdCSHaisheNbgAQqSg4mYORdx
	 T/3MIaxYlC6y19LUTuTCiOCtFyIqeGGq2iIwOyo/yeCP+sASo4YPnDIzKR2T3fa5Wp
	 X+DkZy4kmQDIsWE4VqsgaEckQt0NzJJQ2CxPYS2kb1N3Z+LLW1SEjwtodePuxCGRPX
	 Qz8UeBbpSj0Xg==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20Fix=20failure=20cleanup=20in=20EvtchnFifoAcquire?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1752826782288
Message-Id: <51426979-58c2-470c-bba9-2faa56e236d0@vates.tech>
To: "Durrant, Paul" <pdurrant@amazon.co.uk>, win-pv-devel@lists.xenproject.org
Cc: "Owen Smith" <owen.smith@cloud.com>
References: <20250718010822.240-1-ngoc-tu.dinh@vates.tech> <LO2P123MB4766455B2DF7090E8122A259E450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM>
In-Reply-To: <LO2P123MB4766455B2DF7090E8122A259E450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.ca4d84e8eb804dfab099ed46a5df596d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250718:md
Date: Fri, 18 Jul 2025 08:19:43 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hi Paul,

On 18/07/2025 09:49, Durrant, Paul wrote:
>> -----Original Message-----
>> From: win-pv-devel <win-pv-devel-bounces@lists.xenproject.org> On Behalf
>> Of Tu Dinh
>> Sent: Friday, July 18, 2025 2:08 AM
>> To: win-pv-devel@lists.xenproject.org
>> Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>; Owen Smith <owen.smith@cloud.com>
>> Subject: [EXTERNAL] [PATCH] Fix failure cleanup in EvtchnFifoAcquire
>>
>> CAUTION: This email originated from outside of the organization. Do not
>> click links or open attachments unless you can confirm the sender and know
>> the content is safe.
>>
>>
>>
>> The current index is incremented before checking for failure:
>>
> 
> I think that is by design.
> 
>>      while (Index < ProcessorCount) {
>>          Index++;
>>          [...]
>>          if (!NT_SUCCESS(status))
>>              goto fail1;
>>          Context->ControlBlockMdl[vcpu_id] = Mdl;
>>      }
>>
>> Decrement the index before going into the cleanup loop to avoid calling
>> __FreePage on invalid PMDLs.
>>
>> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
>> ---
>>   src/xenbus/evtchn_fifo.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/src/xenbus/evtchn_fifo.c b/src/xenbus/evtchn_fifo.c
>> index 1137dea..ed78815 100644
>> --- a/src/xenbus/evtchn_fifo.c
>> +++ b/src/xenbus/evtchn_fifo.c
>> @@ -561,6 +561,7 @@ fail1:
>>
>>       EvtchnReset();
>>
>> +    Index--;
> 
> I think this is wrong because...
> 
>>       while (--Index >= 0) {
> 
> ... there is a pre-decrement here before the value of Index is used below.
> 
> Paul

It looks unintuitive, but Index is incremented very early into the main 
loop, before anything has a chance to fail. So Index will actually get 
double-incremented:

     Index = 0
     while (Index < ProcessorCount) {
         vcpu_id = Index = 0; // as an example
         Index++; // 1
         // success
         Context->ControlBlockMdl[vcpu_id] = Mdl;
     }
     while (Index < ProcessorCount) {
         vcpu_id = Index = 1;
         Index++; // 2
         // failure
         goto fail;
     }

     fail:
     // the second loop incremented Index again without doing any work
     Index--; // 1
     // Index is now the count of successful loop, so...
     while (--Index >= 0) {
         // need to decrement it again to get to the successful index
         // Index=0
     }

> 
>>           unsigned int    vcpu_id;
>>
>> --
>> 2.50.1.windows.1
>>
>>
>>
>> Ngoc Tu Dinh | Vates XCP-ng Developer
>>
>> XCP-ng & Xen Orchestra - Vates solutions
>>
>> web: https://vates.tech
>>
> 



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Fri Jul 18 09:04:01 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 18 Jul 2025 09:04:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1048195.1418463 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uch0Y-0003VQ-Vc; Fri, 18 Jul 2025 09:03:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1048195.1418463; Fri, 18 Jul 2025 09:03:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uch0Y-0003VJ-Sa; Fri, 18 Jul 2025 09:03:58 +0000
Received: by outflank-mailman (input) for mailman id 1048195;
 Fri, 18 Jul 2025 09:03:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9911=Z7=amazon.co.uk=prvs=2879db4ba=pdurrant@srs-se1.protection.inumbo.net>)
 id 1uch0W-0003VD-8x
 for win-pv-devel@lists.xenproject.org; Fri, 18 Jul 2025 09:03:56 +0000
Received: from smtp-fw-80007.amazon.com (smtp-fw-80007.amazon.com
 [99.78.197.218]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1defd456-63b6-11f0-b894-0df219b8e170;
 Fri, 18 Jul 2025 11:03:50 +0200 (CEST)
Received: from pdx4-co-svc-p1-lb2-vlan2.amazon.com (HELO
 smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.25.36.210])
 by smtp-border-fw-80007.pdx80.corp.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jul 2025 09:03:46 +0000
Received: from EX19MTAEUB001.ant.amazon.com [10.0.43.254:29457]
 by smtpin.naws.eu-west-1.prod.farcaster.email.amazon.dev [10.0.27.164:2525]
 with esmtp (Farcaster)
 id 7c17a92e-82a3-4971-b7c2-37ef229bda8b; Fri, 18 Jul 2025 09:03:45 +0000 (UTC)
Received: from EX19EXOEUC002.ant.amazon.com (10.252.51.145) by
 EX19MTAEUB001.ant.amazon.com (10.252.51.26) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1544.14;
 Fri, 18 Jul 2025 09:03:42 +0000
Received: from EX19EXOEUB001.ant.amazon.com (10.252.51.80) by
 EX19EXOEUC002.ant.amazon.com (10.252.51.145) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1544.14;
 Fri, 18 Jul 2025 09:03:42 +0000
Received: from LO0P265CU003.outbound.protection.outlook.com (10.252.50.44) by
 EX19EXOEUB001.ant.amazon.com (10.252.51.80) with Microsoft SMTP
 Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1544.14
 via Frontend Transport; Fri, 18 Jul 2025 09:03:42 +0000
Received: from LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1e2::5)
 by LO8P123MB7873.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:3a8::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8943.25; Fri, 18 Jul
 2025 09:03:39 +0000
Received: from LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM
 ([fe80::6d99:efc8:6d56:b029]) by LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM
 ([fe80::6d99:efc8:6d56:b029%6]) with mapi id 15.20.8943.024; Fri, 18 Jul 2025
 09:03:38 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1defd456-63b6-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.co.uk; i=@amazon.co.uk; q=dns/txt;
  s=amazoncorp2; t=1752829430; x=1784365430;
  h=from:to:cc:date:message-id:references:in-reply-to:
   content-transfer-encoding:mime-version:subject;
  bh=lvA4GoITi+fVbIGVH7lnNXTq46x4ZGwCroFZRnf12hE=;
  b=c4z9OpJtzDcfPk8qPgLHF4gsG+7p0QNq/xcOEXftU99ZZwqVY+Uim4sP
   +P/B6zwiFV/MsKuwkegyDSe74oseLAdbzl1V7hqM9EIk7gJZBcBEw3Zrk
   /GbW+6hhDg+7HcouNl9zNt8HJzC+Oazx6Ep5FPMxg4BwgKGZekA6bqCNw
   GiH8r1nU7a8xknS2RfnIsWJjlVbrd+rXz+tlIRxcLeiE/LME7kKrxBD7W
   mHyOaIn/FlvaT0oxl5BMjsL/6QoFsGVxYmhpD7I4mxUUoRyIA4lJwzYvY
   cCUFE3YFoko6AgI1Xr6WM1TcbL5obJvVT4n/Ha0qP/oW5C02V2bHJ0lIc
   w==;
X-IronPort-AV: E=Sophos;i="6.16,321,1744070400"; 
   d="scan'208";a="424500692"
Subject: RE: [PATCH] Fix failure cleanup in EvtchnFifoAcquire
Thread-Topic: [PATCH] Fix failure cleanup in EvtchnFifoAcquire
X-Farcaster-Flow-ID: 7c17a92e-82a3-4971-b7c2-37ef229bda8b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=atLeF3jbV0NOi5DOEK4Cirj/LcoTvtoXiTwnKW3ZSOPVEP4BQJVzNAs1DWezM5P7yf3nw/4taghWSEKEcRxK1+NFIT+M8Krz/bO2eK7XX3K+rkK6yWqhwH1xj2WA3YOl0ovRMGRxLs/yLj9hYsZ8Lw3vJyHtlPMPZ/DTjGXMBA4HIULzSDTZam3o+mMpnErujF4YUx8AqUZ4tA4uLvxIAvzUGHUPBX7fjd1XDvd1tJjCOqeujG4pu9t8+mNx/CgKCoT9baRQjLCOTwOEqEghWgFS7IBwvmj7gnGU87PE+wZTdvSP0X4sug1fDwjptsemeTTEmH7JFShMPotvyzAK0g==
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=lvA4GoITi+fVbIGVH7lnNXTq46x4ZGwCroFZRnf12hE=;
 b=f740ij8TID+6VvIqrqhdB3Hv3VQ1ypWysOVoR9G3FeqVLzUOXNpYliO+bFsXPwNjn2pEKXnzx2iSnWRzUKTClN9/d1x0uf+T1PruUlCGudxdaGMCa4+Uvb4K4jZ3XlenC7bsmaf727x4pDr+Zzr2dNygpO1Y3oD6k0S6+4eARr8/9T1jLjYnCZnXqbPc/S1HDZ4N9VoUzSqirUzseVluVGzVf170Cj1DTkvwXDRgCEIXDpBaY6oAsmexBn8QbNdYGRKWl2jyHwZJEhvifiyZ3bYNkd3rqHZ5ftskhKLnu9VNI26fVM0YpRgvnZMTWQ6d3YjtdEm61uKK6LJlOuN+4g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amazon.co.uk; dmarc=pass action=none header.from=amazon.co.uk;
 dkim=pass header.d=amazon.co.uk; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=amazon.onmicrosoft.com; s=selector2-amazon-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lvA4GoITi+fVbIGVH7lnNXTq46x4ZGwCroFZRnf12hE=;
 b=qtOO1GsifYnwLklu6gOjFqLlSKFJ0vcjWxgGiKkSqtSG6hBuK4rlV1Il9KWYTX6QzA5yXtXmxmsUhd6jTnX0MLZok/+bFCNVCJHfDXnWttKB/M2oQor6990cptyeyo3q+q518hB5x2jExBnm2V6rqWAMydSZhSSm9bJh52VOzC8=
From: "Durrant, Paul" <pdurrant@amazon.co.uk>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
CC: Owen Smith <owen.smith@cloud.com>
Thread-Index: AQHb94C0z/qpxQRpNEOFwkCMZij8nrQ3gWNwgAAJCYCAAAWvkA==
Date: Fri, 18 Jul 2025 09:03:38 +0000
Message-ID: <LO2P123MB4766B59CE10C9C0ED803D196E450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM>
References: <20250718010822.240-1-ngoc-tu.dinh@vates.tech>
 <LO2P123MB4766455B2DF7090E8122A259E450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM>
 <51426979-58c2-470c-bba9-2faa56e236d0@vates.tech>
In-Reply-To: <51426979-58c2-470c-bba9-2faa56e236d0@vates.tech>
Accept-Language: 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=amazon.co.uk;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LO2P123MB4766:EE_|LO8P123MB7873:EE_
x-ms-office365-filtering-correlation-id: 0d6d1674-62ee-415f-8ddd-08ddc5d9fc1f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|13003099007|38070700018;
x-microsoft-antispam-message-info: =?utf-8?B?NXVoRlhKNERTT3ZaMng5ODdFZUxOU3lmc1RSSEZqUmtIbkVBMUM3TWFoV3pi?=
 =?utf-8?B?NDV1cmxhZ25NakRWT3A0TXBVTzltQTlqUXl5b0IvVUlydWtEYy9sRDgrQXdt?=
 =?utf-8?B?TVdrMEZxSUN3dGl2aHBVSVVUQlNuZGR0MmE3RnVUVHNSRHNuOFRiVFo5SXBE?=
 =?utf-8?B?eGgvR1JDZkJpQzFuNncwbDRWb2FGMXhaWHR6TzlOdHRSKzVCUVpVWUl0QjJy?=
 =?utf-8?B?TjQ1MTJyYkRwa29FMUl0RkJsVUZ5cU9HaWRoL0Rzc3ZYTm9zdzE1clpiMFFl?=
 =?utf-8?B?aVFzQzZRMWxYdmJQTy94RVhXNVFCcEE5cUhoMFB6bTcvYzlGR254Z3BqYXNB?=
 =?utf-8?B?cXpIYjNQTXJVS0ZCcW9PdlQxU1dHN21zNGRRdjRFTUFnM2xRbU12bHd0M1NY?=
 =?utf-8?B?Q2JXT2Yycm11S0g4V2hqaTZPL21MRkNjSjg4bEFoQVFqeUVxeTZQWFZwV0dn?=
 =?utf-8?B?VzNVVHcxL201K3NCMytTcUxFdENUcTQ4VlRTamhzcGFGajNTblowRW1JSUpG?=
 =?utf-8?B?eEhBRWdhNlN5OEQ1UW84YzVtZzFGRW4rb1BkMSsyVTlyWmo3b1NZbXhSa0I1?=
 =?utf-8?B?cEpmQ3J5MzQreW8xQjREZmxSWG9RWmRic1NPWHRYNXh3SW1IcmM5VFMvaHFi?=
 =?utf-8?B?VzFBdGlML2VFS3hISDhOWTRvbVF5UmFpSm9CaTZ6QWJLVlFKdXYyRVpib2pk?=
 =?utf-8?B?M01HUHovRWNrNlMvZHRkTEU5ZEpwNCtvRFJHMXlodGNBQkdlbW9QSEYxUXR1?=
 =?utf-8?B?Q0NUcjFFRmFIZm41MWlXKzg0aFp4MnB6OGtsZmM2SWJpbWNHUW5FYzdPOUFm?=
 =?utf-8?B?UjFTK0MvS2lpYXc2SWh1YTdOUEZXZGlHSlJ3cDBsZ2JRK1llSlJJMmhINVZ6?=
 =?utf-8?B?UERab3ljaWNSWXJmUGErN1o5SEhvY2JTcVhxTHhWY2xZQ3RDOUpZVmwzQjRD?=
 =?utf-8?B?bkpGTlZIT2NqZ2tZOWtDOWMvdmorRGFuMXpJQ1lJYXJDWlZyQWxOQURwNzEv?=
 =?utf-8?B?bGtaaU1hMmdVZEpMTDVDamtlL255Rm16UVpINVcxSCtELzBkNWkzVzFIVFhj?=
 =?utf-8?B?bDNGdzBNVUhsT2pORk42Q2luREVXUE9TT0VxaUdyeGQ0N3NjZ1htREFsWmND?=
 =?utf-8?B?OU1OQlNnR3E0RURtclNjU0xvaC9JZW9acDRubFlWZWltVTJrU2o1VVNHOVlz?=
 =?utf-8?B?WThVMHNpNnlLbHFQdkFGZFNVN2crbkZsbkNCK3hMaGJnSW9zaXRhQ2xFWm5V?=
 =?utf-8?B?VVlVM3FLSVAxMDZ2TXJsc2ZHVWZadVNucC96TG8yNTZMRU81bzhMNjkrMkQy?=
 =?utf-8?B?MzN5d0tkSHJXOUtPRVZlWTIxRm1Zam1uZFRWbGlUZ2FJbDVQSU9ZZnhZd3JZ?=
 =?utf-8?B?YUp3MGs4UHRrSHhMTFFYUGRBZVVSUmR1cWd6c3NlK1c2T3JkbndDM0lxYmFE?=
 =?utf-8?B?ck03c3M0VGtncEt4aGpEblJaM2xGRGNvUEY5TkZOTUdVZ1owYnhEZWVwblVh?=
 =?utf-8?B?UDh3dTBZdEwrbTN1OWdrTHBTSmJ4Wm9wam52WXNPTnZTT3V2aEFpRnhiSnNw?=
 =?utf-8?B?MlBrNm5TdkNQK3U5VzJ4eFVQRHJJeVNEWEVMU25xbmxxYnRPc3pSdG41Tnd4?=
 =?utf-8?B?V1NtUHZhNTJrQ2FYbis0MzNvNmJFWVNyamhVQnoxOWVzaXlJOURSOGtaWEFS?=
 =?utf-8?B?SEthOWhoMHIyOW9wVTFiWXpOdEJxUkNWb1NUTDl3S0VyVHc4bkozNy9URG9i?=
 =?utf-8?B?Y0ZkZzgwNFcxSmVRRzkyZ1NxcFNPSkJ6WXNiNUYxYUdXZEJkTHBST0FVaWFY?=
 =?utf-8?B?NnpUWllubFFlL1BaL0c1TlVJRzUyRDRpM0hWd1BRV01qT1o0M0dHK0Uxcllq?=
 =?utf-8?B?SG41bTVSYzh4Z09XK0oxU0hsc0FEQVB0UGt1d0VSa0sxOENRTDAxYjk0TzJp?=
 =?utf-8?Q?2A/RnzAQ6gQ=3D?=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(13003099007)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZlBtNXNsNDkzcjUwTlpOS01lOUJIOG1xSnVleGEydG9iTjJFNWczYkRKdTRT?=
 =?utf-8?B?Zm9qUDluQ08vZVk2Y0EwbkFnWnR2aTgyQmxtTTZDeGE5OHFZTlpZcUR5WHRZ?=
 =?utf-8?B?bXltUWxhTlNBWGFXWGNPUFlaU3JpUHZDM1ZVM1Z1ZFNYZkJ6NlluWDFMSTBq?=
 =?utf-8?B?QmxXcDRwK3hWazBPZEZPYWJWN2h4L1FhNmNKRXRUa1dNZ2ZwMng1R214eGk0?=
 =?utf-8?B?cHRlVERlQWJwdmJYb2IvZkUrb2JZWktyRVdQTUJ5SnhiUURIYS9FY3k5cHhk?=
 =?utf-8?B?RmVCT2JEbVpWU25SU1lGaDNJSzlpYjJqUkNVOW5RNGxRekYxY0JyenE1QXhl?=
 =?utf-8?B?QTJ1UENMMGZDbXdsVjlrVjRPNHp1ak4yMGdZQXAxQ1lRWFJlYmVKK0lFOGJn?=
 =?utf-8?B?dURmUzF1Qkc5Z0tFRXcyR3BjSEl4Q054Z1hjdjE5Y1QvemM4NVNBSVdDNUk0?=
 =?utf-8?B?alFrazdkbnRMMDJ4Y0EvNXczNkhVWHU1Z2xIdEVHZmlGd2xEV04wUjk3ZFZR?=
 =?utf-8?B?cE9YUHJzWlpMc3NYSnZsaGduMFZiRkVzVDNkRTZzNTl0bG5MMzFLaFJDSEl4?=
 =?utf-8?B?V3IzR1VnempDOTVhalhMeE9WVXpLL0xGMWhrUDgxK3NaZERMaitwOUljYXor?=
 =?utf-8?B?S3NGcG1ZbEZiZG13cUE5bVNXNVhuVUttRHY2Q01FZk1CV3NTbzVYQkVtNmN1?=
 =?utf-8?B?bVhGamR4K01SbUEzY2QyTXJONERra3ZFSGdCdC9reUNWdTdHM0hhakEwMWR4?=
 =?utf-8?B?Zkk1ZklGaFhQOWtWbWhyeUU2YllXdkE3VmozYWxDa3B3S0hZNzduNTRxV2V3?=
 =?utf-8?B?YTdEbEhlRU9ha1lwOEc2ZG5IclgrKzJMbStrU3pYK2pESUUvVW5MK0IvQ3hR?=
 =?utf-8?B?TE9QcmM5ZnkwaEFhMDYrdEFDcEVyTTk5Uy9GUjhXVXpvZDRpMjNkUzRsSnp1?=
 =?utf-8?B?ZzV2N1FxckpwcXhYWXkyTzV3U1cwSm5BL04wNU41em5MVnhMWklZaVRWNnhk?=
 =?utf-8?B?LzF4eUNEeVFYaTBCQzlRRWlCSXRmNkxnVm16RHZWSlB4LzBRc3U2ckVPVk5M?=
 =?utf-8?B?WFNxQ09CNXg1bTN5TzBWQlZMNHFHOVlVSE02R0lZZ1lid0VEZVV2dVljRWxz?=
 =?utf-8?B?VzR3YVpNNi9HZUh4SVdvQ2tXZUJDSnBDU0U0YldnZWlrY2ZxdmlFOXpibHpn?=
 =?utf-8?B?aitJNGg4TEtHeDhYRmN2ZlhUSHJ0MGt1Z3pzMm5kVTRyOVJpb0NhaHpSWmRB?=
 =?utf-8?B?K0QxTWVUUHZPWXdKaXd0UnE5cklWMW5ncUpqRW0wUUhsaXcvVHZoam1MdmRO?=
 =?utf-8?B?ZG1UUkFheVEyV1Fka25nYzJtWGx0aWpDV1VnZTlON053OU9DTXIzVkFMUXZN?=
 =?utf-8?B?NWU4akllRjVoYmg5SzBXbjVDQ09YdXhJUzdETUF4THcrZEcrVlhzK1hwemdZ?=
 =?utf-8?B?a2ltdlVMdDdDNkEyQWtrSGhHZmJJMUJEc1VxY0tGblZRZ3JTYzlnakE3UUZL?=
 =?utf-8?B?QzVNTmNGRW13UWNtV094eUhlWnNBWjBjWkpTZnZuU1o1T01wS2V1SWJ0UVQx?=
 =?utf-8?B?K3FGQVJObE5tTjVrMTZlSGVJR2RZcDkzbUVHSDc0Q1krTk1VVWptbVcvNy82?=
 =?utf-8?B?clpMZW1mYm5JWDRXalpvYlU0UGNMSFBsK2EzK2VJcHlZUTUxQVdadjE3RGEv?=
 =?utf-8?B?OE5DYlZGckY4ZDJiYU1TRFYvN0JvdTY0VHAxVzhMaFRLYUpwZTV4ckoza3Fa?=
 =?utf-8?B?YnVxN09HbDNVYmdLR2hETzZUek83RVVWWEpBcTFFVUtRYUZCbFdRUWxib1Qw?=
 =?utf-8?B?c1N3ckFrSUw4by95QThxZU5JUkNHM0lNWkdNRnRWSzd6N1hOOXYwSHZ0RnZl?=
 =?utf-8?B?T1IyMDlRRnV4N2xaVHFHYlBkRVlGc0xQT0ZwRHNvajZqUmQ2eFZFMnVZa2tB?=
 =?utf-8?B?OGZueFc3MVRLNXVjSVlPbzh1c3dZMVdHbkN1cTJ1cmVFbk9WbU9rVFVHU3ph?=
 =?utf-8?B?K1VPbmtpdGRZMFNGU0Q5NkV4M3VNQmt1c21qeStZOEtaZXNVMEdteEl5NUZl?=
 =?utf-8?B?SEppWjJGcWdNcU1PVjh3SGlmU0I3Y0dxdU4zS1RFZk5mUjcycDgzZ0pJc3Fr?=
 =?utf-8?Q?PyFngtQxykkhMOvqdVVpwvNN5?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: 0d6d1674-62ee-415f-8ddd-08ddc5d9fc1f
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jul 2025 09:03:38.4601
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5280104a-472d-4538-9ccf-1e1d0efe8b1b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: M5xwASg5hU82na7RR6iqgkqFBjYPQ+8B6bp/MCXHTPLA6jyyB3VOCOC9rnaTrbkMnnVIcq11actFNM0uAxsZEw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO8P123MB7873
X-OriginatorOrg: amazon.co.uk

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBUdSBEaW5oIDxuZ29jLXR1LmRp
bmhAdmF0ZXMudGVjaD4NCj4gU2VudDogRnJpZGF5LCBKdWx5IDE4LCAyMDI1IDk6MjAgQU0NCj4g
VG86IER1cnJhbnQsIFBhdWwgPHBkdXJyYW50QGFtYXpvbi5jby51az47IHdpbi1wdi0NCj4gZGV2
ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2xv
dWQuY29tPg0KPiBTdWJqZWN0OiBSRTogW0VYVEVSTkFMXSBbUEFUQ0hdIEZpeCBmYWlsdXJlIGNs
ZWFudXAgaW4gRXZ0Y2huRmlmb0FjcXVpcmUNCj4gDQo+IENBVVRJT046IFRoaXMgZW1haWwgb3Jp
Z2luYXRlZCBmcm9tIG91dHNpZGUgb2YgdGhlIG9yZ2FuaXphdGlvbi4gRG8gbm90DQo+IGNsaWNr
IGxpbmtzIG9yIG9wZW4gYXR0YWNobWVudHMgdW5sZXNzIHlvdSBjYW4gY29uZmlybSB0aGUgc2Vu
ZGVyIGFuZCBrbm93DQo+IHRoZSBjb250ZW50IGlzIHNhZmUuDQo+IA0KPiANCj4gDQo+IEhpIFBh
dWwsDQo+IA0KPiBPbiAxOC8wNy8yMDI1IDA5OjQ5LCBEdXJyYW50LCBQYXVsIHdyb3RlOg0KPiA+
PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiB3aW4tcHYtZGV2ZWwgPHdp
bi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnPiBPbg0KPiBCZWhhbGYNCj4g
Pj4gT2YgVHUgRGluaA0KPiA+PiBTZW50OiBGcmlkYXksIEp1bHkgMTgsIDIwMjUgMjowOCBBTQ0K
PiA+PiBUbzogd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4+IENjOiBUdSBE
aW5oIDxuZ29jLXR1LmRpbmhAdmF0ZXMudGVjaD47IE93ZW4gU21pdGgNCj4gPG93ZW4uc21pdGhA
Y2xvdWQuY29tPg0KPiA+PiBTdWJqZWN0OiBbRVhURVJOQUxdIFtQQVRDSF0gRml4IGZhaWx1cmUg
Y2xlYW51cCBpbiBFdnRjaG5GaWZvQWNxdWlyZQ0KPiA+Pg0KPiA+PiBDQVVUSU9OOiBUaGlzIGVt
YWlsIG9yaWdpbmF0ZWQgZnJvbSBvdXRzaWRlIG9mIHRoZSBvcmdhbml6YXRpb24uIERvIG5vdA0K
PiA+PiBjbGljayBsaW5rcyBvciBvcGVuIGF0dGFjaG1lbnRzIHVubGVzcyB5b3UgY2FuIGNvbmZp
cm0gdGhlIHNlbmRlciBhbmQNCj4ga25vdw0KPiA+PiB0aGUgY29udGVudCBpcyBzYWZlLg0KPiA+
Pg0KPiA+Pg0KPiA+Pg0KPiA+PiBUaGUgY3VycmVudCBpbmRleCBpcyBpbmNyZW1lbnRlZCBiZWZv
cmUgY2hlY2tpbmcgZm9yIGZhaWx1cmU6DQo+ID4+DQo+ID4NCj4gPiBJIHRoaW5rIHRoYXQgaXMg
YnkgZGVzaWduLg0KPiA+DQo+ID4+ICAgICAgd2hpbGUgKEluZGV4IDwgUHJvY2Vzc29yQ291bnQp
IHsNCj4gPj4gICAgICAgICAgSW5kZXgrKzsNCj4gPj4gICAgICAgICAgWy4uLl0NCj4gPj4gICAg
ICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+ID4+ICAgICAgICAgICAgICBnb3RvIGZh
aWwxOw0KPiA+PiAgICAgICAgICBDb250ZXh0LT5Db250cm9sQmxvY2tNZGxbdmNwdV9pZF0gPSBN
ZGw7DQo+ID4+ICAgICAgfQ0KPiA+Pg0KPiA+PiBEZWNyZW1lbnQgdGhlIGluZGV4IGJlZm9yZSBn
b2luZyBpbnRvIHRoZSBjbGVhbnVwIGxvb3AgdG8gYXZvaWQgY2FsbGluZw0KPiA+PiBfX0ZyZWVQ
YWdlIG9uIGludmFsaWQgUE1ETHMuDQo+ID4+DQo+ID4+IFNpZ25lZC1vZmYtYnk6IFR1IERpbmgg
PG5nb2MtdHUuZGluaEB2YXRlcy50ZWNoPg0KPiA+PiAtLS0NCj4gPj4gICBzcmMveGVuYnVzL2V2
dGNobl9maWZvLmMgfCAxICsNCj4gPj4gICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykN
Cj4gPj4NCj4gPj4gZGlmZiAtLWdpdCBhL3NyYy94ZW5idXMvZXZ0Y2huX2ZpZm8uYyBiL3NyYy94
ZW5idXMvZXZ0Y2huX2ZpZm8uYw0KPiA+PiBpbmRleCAxMTM3ZGVhLi5lZDc4ODE1IDEwMDY0NA0K
PiA+PiAtLS0gYS9zcmMveGVuYnVzL2V2dGNobl9maWZvLmMNCj4gPj4gKysrIGIvc3JjL3hlbmJ1
cy9ldnRjaG5fZmlmby5jDQo+ID4+IEBAIC01NjEsNiArNTYxLDcgQEAgZmFpbDE6DQo+ID4+DQo+
ID4+ICAgICAgIEV2dGNoblJlc2V0KCk7DQo+ID4+DQo+ID4+ICsgICAgSW5kZXgtLTsNCj4gPg0K
PiA+IEkgdGhpbmsgdGhpcyBpcyB3cm9uZyBiZWNhdXNlLi4uDQo+ID4NCj4gPj4gICAgICAgd2hp
bGUgKC0tSW5kZXggPj0gMCkgew0KPiA+DQo+ID4gLi4uIHRoZXJlIGlzIGEgcHJlLWRlY3JlbWVu
dCBoZXJlIGJlZm9yZSB0aGUgdmFsdWUgb2YgSW5kZXggaXMgdXNlZA0KPiBiZWxvdy4NCj4gPg0K
PiA+IFBhdWwNCj4gDQo+IEl0IGxvb2tzIHVuaW50dWl0aXZlLCBidXQgSW5kZXggaXMgaW5jcmVt
ZW50ZWQgdmVyeSBlYXJseSBpbnRvIHRoZSBtYWluDQo+IGxvb3AsIGJlZm9yZSBhbnl0aGluZyBo
YXMgYSBjaGFuY2UgdG8gZmFpbC4gU28gSW5kZXggd2lsbCBhY3R1YWxseSBnZXQNCj4gZG91Ymxl
LWluY3JlbWVudGVkOg0KPiANCj4gICAgICBJbmRleCA9IDANCj4gICAgICB3aGlsZSAoSW5kZXgg
PCBQcm9jZXNzb3JDb3VudCkgew0KPiAgICAgICAgICB2Y3B1X2lkID0gSW5kZXggPSAwOyAvLyBh
cyBhbiBleGFtcGxlDQo+ICAgICAgICAgIEluZGV4Kys7IC8vIDENCj4gICAgICAgICAgLy8gc3Vj
Y2Vzcw0KPiAgICAgICAgICBDb250ZXh0LT5Db250cm9sQmxvY2tNZGxbdmNwdV9pZF0gPSBNZGw7
DQo+ICAgICAgfQ0KPiAgICAgIHdoaWxlIChJbmRleCA8IFByb2Nlc3NvckNvdW50KSB7DQo+ICAg
ICAgICAgIHZjcHVfaWQgPSBJbmRleCA9IDE7DQo+ICAgICAgICAgIEluZGV4Kys7IC8vIDINCj4g
ICAgICAgICAgLy8gZmFpbHVyZQ0KPiAgICAgICAgICBnb3RvIGZhaWw7DQo+ICAgICAgfQ0KPiAN
Cj4gICAgICBmYWlsOg0KPiAgICAgIC8vIHRoZSBzZWNvbmQgbG9vcCBpbmNyZW1lbnRlZCBJbmRl
eCBhZ2FpbiB3aXRob3V0IGRvaW5nIGFueSB3b3JrDQo+ICAgICAgSW5kZXgtLTsgLy8gMQ0KPiAg
ICAgIC8vIEluZGV4IGlzIG5vdyB0aGUgY291bnQgb2Ygc3VjY2Vzc2Z1bCBsb29wLCBzby4uLg0K
PiAgICAgIHdoaWxlICgtLUluZGV4ID49IDApIHsNCj4gICAgICAgICAgLy8gbmVlZCB0byBkZWNy
ZW1lbnQgaXQgYWdhaW4gdG8gZ2V0IHRvIHRoZSBzdWNjZXNzZnVsIGluZGV4DQo+ICAgICAgICAg
IC8vIEluZGV4PTANCj4gICAgICB9DQo+IA0KDQpIaSBUdSwNCg0KICBBcmUgd2UgbG9va2luZyBh
dCB0aGUgc2FtZSBmdW5jdGlvbj8gVGhpcyBpcyB3aGF0IEkgc2VlLi4uDQoNCiAgVGhlIGxvb3Ag
c3RhcnRzIGF0IGh0dHBzOi8veGVuYml0cy54ZW4ub3JnL2dpdHdlYi8/cD1wdmRyaXZlcnMvd2lu
L3hlbmJ1cy5naXQ7YT1ibG9iO2Y9c3JjL3hlbmJ1cy9ldnRjaG5fZmlmby5jO2hiPUhFQUQjbDUw
NToNCg0KIDUwNSAgICAgSW5kZXggPSAwOw0KIDUwNiAgICAgd2hpbGUgKEluZGV4IDwgUHJvY2Vz
c29yQ291bnQpIHsNCiA1MDcgICAgICAgICB1bnNpZ25lZCBpbnQgICAgICAgIHZjcHVfaWQ7DQog
NTA4ICAgICAgICAgUEZOX05VTUJFUiAgICAgICAgICBQZm47DQogNTA5ICAgICAgICAgUEhZU0lD
QUxfQUREUkVTUyAgICBBZGRyZXNzOw0KIDUxMCANCiA1MTEgICAgICAgICBzdGF0dXMgPSBTeXN0
ZW1Qcm9jZXNzb3JWY3B1SWQoSW5kZXgsICZ2Y3B1X2lkKTsNCiA1MTIgDQogNTEzICAgICAgICAg
SW5kZXgrKzsNCiA1MTQNCg0KU28gSW5kZXggaXMgaW5jcmVtZW50ZWQgYmVmb3JlIHRoZSBjaGVj
a3M6DQoNCiA1MTUgICAgICAgICBpZiAoc3RhdHVzID09IFNUQVRVU19OT1RfU1VQUE9SVEVEKQ0K
IDUxNiAgICAgICAgICAgICBjb250aW51ZTsNCiA1MTcgDQogNTE4ICAgICAgICAgaWYgKCFOVF9T
VUNDRVNTKHN0YXR1cykpDQogNTE5ICAgICAgICAgICAgIGdvdG8gZmFpbDE7DQoNClNvLCBzYXkg
d2UgaGF2ZSBkb25lIG9uZSBsb29wIHJvdW5kIHRoZW4gd2UnbGwgaGF2ZSBzZXQgdXAgdGhlIGNv
bnRyb2wgYmxvY2sgZm9yIHRoZSB2Y3B1X2lkIGNvcnJlc3BvbmRpbmcgdG8gSW5kZXggMC4gSW5k
ZXggd2lsbCBub3cgYmUgMSBhbmQgbGV0J3Mgc2F5IHdlIGhpdCB0aGUgZmFpbC4NCg0KIDU1OSBm
YWlsMToNCiA1NjAgICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7DQogNTYxIA0K
IDU2MiAgICAgRXZ0Y2huUmVzZXQoKTsNCiA1NjMgDQogNTY0ICAgICB3aGlsZSAoLS1JbmRleCA+
PSAwKSB7DQoNCkluZGV4IHdpbGwgYmUgZGVjcmVtZW50ZWQgYmFjayB0byAwLi4uDQoNCiA1NjUg
ICAgICAgICB1bnNpZ25lZCBpbnQgICAgdmNwdV9pZDsNCiA1NjYgDQogNTY3ICAgICAgICAgc3Rh
dHVzID0gU3lzdGVtUHJvY2Vzc29yVmNwdUlkKEluZGV4LCAmdmNwdV9pZCk7DQoNCldlIGxvb2sg
dXAgdGhlIGNvcnJlc3BvbmRpbmcgdmNwdV9pZCBhZ2Fpbi4uLg0KDQogNTY4ICAgICAgICAgaWYg
KHN0YXR1cyA9PSBTVEFUVVNfTk9UX1NVUFBPUlRFRCkNCiA1NjkgICAgICAgICAgICAgY29udGlu
dWU7DQogNTcwIA0KIDU3MSAgICAgICAgIEJVR19PTighTlRfU1VDQ0VTUyhzdGF0dXMpKTsNCiA1
NzIgDQogNTczICAgICAgICAgTWRsID0gQ29udGV4dC0+Q29udHJvbEJsb2NrTWRsW3ZjcHVfaWRd
Ow0KIDU3NCAgICAgICAgIENvbnRleHQtPkNvbnRyb2xCbG9ja01kbFt2Y3B1X2lkXSA9IE5VTEw7
DQoNCi4uLiBhbmQgd2UgZnJlZSBvZmYgdGhlIGNvbnRyb2wgYmxvY2sgdGhhdCB3YXMgYWxsb2Nh
dGVkIGJlZm9yZS4NCg0KIDU3NSANCiA1NzYgICAgICAgICBfX0ZyZWVQYWdlKE1kbCk7DQogNTc3
ICAgICB9DQoNCkkgZG9uJ3Qgc2VlIGFueSBldmlkZW5jZSBvZiBhIGRvdWJsZSBpbmNyZW1lbnQu
IFRoZSBleGlzdGluZyBjb2RlIGxvb2tzIGNvcnJlY3QgdG8gbWUuDQoNCiAgUGF1bA0KDQo+ID4N
Cj4gPj4gICAgICAgICAgIHVuc2lnbmVkIGludCAgICB2Y3B1X2lkOw0KPiA+Pg0KPiA+PiAtLQ0K
PiA+PiAyLjUwLjEud2luZG93cy4xDQo+ID4+DQo+ID4+DQo+ID4+DQo+ID4+IE5nb2MgVHUgRGlu
aCB8IFZhdGVzIFhDUC1uZyBEZXZlbG9wZXINCj4gPj4NCj4gPj4gWENQLW5nICYgWGVuIE9yY2hl
c3RyYSAtIFZhdGVzIHNvbHV0aW9ucw0KPiA+Pg0KPiA+PiB3ZWI6IGh0dHBzOi8vdmF0ZXMudGVj
aA0KPiA+Pg0KPiA+DQo+IA0KPiANCj4gDQo+IE5nb2MgVHUgRGluaCB8IFZhdGVzIFhDUC1uZyBE
ZXZlbG9wZXINCj4gDQo+IFhDUC1uZyAmIFhlbiBPcmNoZXN0cmEgLSBWYXRlcyBzb2x1dGlvbnMN
Cj4gDQo+IHdlYjogaHR0cHM6Ly92YXRlcy50ZWNoDQoNCg==


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 18 09:07:02 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 18 Jul 2025 09:07:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1048215.1418466 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uch3W-0003ud-7i; Fri, 18 Jul 2025 09:07:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1048215.1418466; Fri, 18 Jul 2025 09:07:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uch3W-0003uW-5D; Fri, 18 Jul 2025 09:07:02 +0000
Received: by outflank-mailman (input) for mailman id 1048215;
 Fri, 18 Jul 2025 09:07:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=t0O7=Z7=bounce.vates.tech=bounce-md_30504962.687a0eb1.v1-0e7c136d8cdf419b9aa69ee0d014c42c@srs-se1.protection.inumbo.net>)
 id 1uch3U-0003uP-Hr
 for win-pv-devel@lists.xenproject.org; Fri, 18 Jul 2025 09:07:00 +0000
Received: from mail13.wdc04.mandrillapp.com (mail13.wdc04.mandrillapp.com
 [205.201.139.13]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8f14ee72-63b6-11f0-a319-13f23c93f187;
 Fri, 18 Jul 2025 11:06:59 +0200 (CEST)
Received: from pmta16.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail13.wdc04.mandrillapp.com (Mailchimp) with ESMTP id 4bk3ns4d3xzNCdD33
 for <win-pv-devel@lists.xenproject.org>; Fri, 18 Jul 2025 09:06:57 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 0e7c136d8cdf419b9aa69ee0d014c42c; Fri, 18 Jul 2025 09:06:57 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f14ee72-63b6-11f0-a319-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1752829617; x=1753099617;
	bh=ODKZAy7pg8cunw6Z+n9FgF+vPqKCVTieJZ34z+QM8CQ=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=j9fVXsrsrljk6qGplhPl7kCk82WDVuwZpjjMHQcKUr6vuKi4Sn5e8fpWYclPCzqg5
	 mBcqmvWasobWoF34Vhu61Jn5nY2Dv1QyMm2agfMYONAhPkRUeAj0aJAq0w2uPtBGkZ
	 1gspGNYf6+80KHexv4F9hvzwX3gMcGyYGSupG2a7rmvo5KQdMjVbbn0WFxhNUxYVpj
	 ks3j3FxO38Fy2mmpZYK0U/mXFuHLDHInEO6h/ZC4+1o/7NUVjAb+CRbAXoYYvU9/8K
	 YhEEQ9LfV2FlrV/qODuS6RTIDbaIRoK7lq9AeosKK28HxoEk0hUiys/AjzEIXWSu2K
	 8EWeteuR3onAg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1752829617; x=1753090117; i=ngoc-tu.dinh@vates.tech;
	bh=ODKZAy7pg8cunw6Z+n9FgF+vPqKCVTieJZ34z+QM8CQ=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=Dw2ZHdpOscQjTDV+FBr6vTVrgu5f9bsn5yw65/d6ZgYpFdUTlFycXLQ/ricaiQMEd
	 dwQ4ppjAU0D6mRuZCV76amoxK1ucNEC/3fyvFasdJcbniUkMtaNWccweEfo8dV+0F1
	 bYPwy7onHPLk1Rq1wKEwo+gaGmzpTwArZkVznW/Y+dK1nn+AvalZCtP/QvtDXMZsS4
	 LXagmYfyMxuWLVyJBEQvZDP/IndMEXlRyGeksPsIaRH5AjlAgbH8ayYB0F3qdYj/vF
	 H3+gJDW7JaoBnW5BfXSmRgy0CvO4kIVrFfgSbqr9Ovj3snW2B7mEBn/EavLdViTVC4
	 Cb2Ob5hJioMZQ==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20Fix=20failure=20cleanup=20in=20EvtchnFifoAcquire?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1752829616683
Message-Id: <c1d551d9-8820-4632-b0c6-748756aafd21@vates.tech>
To: "Durrant, Paul" <pdurrant@amazon.co.uk>, win-pv-devel@lists.xenproject.org
Cc: "Owen Smith" <owen.smith@cloud.com>
References: <20250718010822.240-1-ngoc-tu.dinh@vates.tech> <LO2P123MB4766455B2DF7090E8122A259E450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM> <51426979-58c2-470c-bba9-2faa56e236d0@vates.tech> <LO2P123MB4766B59CE10C9C0ED803D196E450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM>
In-Reply-To: <LO2P123MB4766B59CE10C9C0ED803D196E450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.0e7c136d8cdf419b9aa69ee0d014c42c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250718:md
Date: Fri, 18 Jul 2025 09:06:57 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hi Paul,

On 18/07/2025 11:04, Durrant, Paul wrote:
[...]
> 
> Hi Tu,
> 
>    Are we looking at the same function? This is what I see...
> 
>    The loop starts at https://xenbits.xen.org/gitweb/?p=pvdrivers/win/xenbus.git;a=blob;f=src/xenbus/evtchn_fifo.c;hb=HEAD#l505:
> 
>   505     Index = 0;
>   506     while (Index < ProcessorCount) {
>   507         unsigned int        vcpu_id;
>   508         PFN_NUMBER          Pfn;
>   509         PHYSICAL_ADDRESS    Address;
>   510
>   511         status = SystemProcessorVcpuId(Index, &vcpu_id);
>   512
>   513         Index++;
>   514
> 
> So Index is incremented before the checks:
> 
>   515         if (status == STATUS_NOT_SUPPORTED)
>   516             continue;
>   517
>   518         if (!NT_SUCCESS(status))
>   519             goto fail1;
> 
> So, say we have done one loop round then we'll have set up the control block for the vcpu_id corresponding to Index 0. Index will now be 1 and let's say we hit the fail.

After doing one successful loop round, Index will be 1. But as soon as 
you enter the second loop round, Index would have become 2 before you 
could hit any failure, due to the Index++ near the very top.

> 
>   559 fail1:
>   560     Error("fail1 (%08x)\n", status);
>   561
>   562     EvtchnReset();
>   563
>   564     while (--Index >= 0) {
> 
> Index will be decremented back to 0...
> 
>   565         unsigned int    vcpu_id;
>   566
>   567         status = SystemProcessorVcpuId(Index, &vcpu_id);
> 
> We look up the corresponding vcpu_id again...
> 
>   568         if (status == STATUS_NOT_SUPPORTED)
>   569             continue;
>   570
>   571         BUG_ON(!NT_SUCCESS(status));
>   572
>   573         Mdl = Context->ControlBlockMdl[vcpu_id];
>   574         Context->ControlBlockMdl[vcpu_id] = NULL;
> 
> ... and we free off the control block that was allocated before.
> 
>   575
>   576         __FreePage(Mdl);
>   577     }
> 
> I don't see any evidence of a double increment. The existing code looks correct to me.
> 
>    Paul
> 
[...]



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Fri Jul 18 09:14:12 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 18 Jul 2025 09:14:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1048236.1418471 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uchAQ-0005ZZ-PN; Fri, 18 Jul 2025 09:14:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1048236.1418471; Fri, 18 Jul 2025 09:14:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uchAQ-0005ZS-MG; Fri, 18 Jul 2025 09:14:10 +0000
Received: by outflank-mailman (input) for mailman id 1048236;
 Fri, 18 Jul 2025 09:14:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9911=Z7=amazon.co.uk=prvs=2879db4ba=pdurrant@srs-se1.protection.inumbo.net>)
 id 1uchAP-0005ZM-1U
 for win-pv-devel@lists.xenproject.org; Fri, 18 Jul 2025 09:14:09 +0000
Received: from smtp-fw-80009.amazon.com (smtp-fw-80009.amazon.com
 [99.78.197.220]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8d1233a0-63b7-11f0-b894-0df219b8e170;
 Fri, 18 Jul 2025 11:14:06 +0200 (CEST)
Received: from pdx4-co-svc-p1-lb2-vlan2.amazon.com (HELO
 smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.25.36.210])
 by smtp-border-fw-80009.pdx80.corp.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jul 2025 09:13:57 +0000
Received: from EX19MTAEUA001.ant.amazon.com [10.0.10.100:10483]
 by smtpin.naws.eu-west-1.prod.farcaster.email.amazon.dev [10.0.32.138:2525]
 with esmtp (Farcaster)
 id b0c3eee6-031f-4b86-b7c2-d6a7d8ee8640; Fri, 18 Jul 2025 09:13:56 +0000 (UTC)
Received: from EX19EXOEUC002.ant.amazon.com (10.252.51.145) by
 EX19MTAEUA001.ant.amazon.com (10.252.50.192) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1544.14;
 Fri, 18 Jul 2025 09:13:56 +0000
Received: from LO3P265CU004.outbound.protection.outlook.com (10.252.50.44) by
 EX19EXOEUC002.ant.amazon.com (10.252.51.145) with Microsoft SMTP
 Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1544.14
 via Frontend Transport; Fri, 18 Jul 2025 09:13:56 +0000
Received: from LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1e2::5)
 by LO0P123MB7328.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:367::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8943.25; Fri, 18 Jul
 2025 09:13:54 +0000
Received: from LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM
 ([fe80::6d99:efc8:6d56:b029]) by LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM
 ([fe80::6d99:efc8:6d56:b029%6]) with mapi id 15.20.8943.024; Fri, 18 Jul 2025
 09:13:54 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8d1233a0-63b7-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.co.uk; i=@amazon.co.uk; q=dns/txt;
  s=amazoncorp2; t=1752830046; x=1784366046;
  h=from:to:cc:date:message-id:references:in-reply-to:
   content-transfer-encoding:mime-version:subject;
  bh=nNV8vay7USW/mq4ilrBrrAHsqfCEIrr7JBi6tUTg8gM=;
  b=gYvLfK3TjnDP1inTZThnxT+jIbTsyjrw1GQQeLoLnWDwiw5wte3Secco
   CaRGBJU1HojIIC86oLP78kaBLXuVp2Ro2n6M2032ZlWOkRByPnl7XcnU4
   tRiicJjgTEs3lw4DiWTOebt5gjbwRN8HSWLemFyJy8bvYMUinCTerH5Yf
   hDklf3mdi+nDnXHjT2ljBWTqO1jmNCD3m0NjZZL/94xjwbUTlvKP0luCD
   0BK7wXJ9H9Q4+tedpvtoY7agLsFNXOHsTsWsrjEq+8HFP4cu22aGeea7e
   XZ76aLTP99FlvOQyTD5iGtT6IXitnabNf/TnIGHW/T5YtMe9PvUOxnp5u
   g==;
X-IronPort-AV: E=Sophos;i="6.16,321,1744070400"; 
   d="scan'208";a="219697102"
Subject: RE: [PATCH] Fix failure cleanup in EvtchnFifoAcquire
Thread-Topic: [PATCH] Fix failure cleanup in EvtchnFifoAcquire
X-Farcaster-Flow-ID: b0c3eee6-031f-4b86-b7c2-d6a7d8ee8640
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tVKRZCk2MlkWuBVhUTQxyuhRneTiNWiE6Azy30gtxrpvGU45Yq+Bhbdx/JrwkpjHOkLD5opZIx8RiYjXZg9AN+W6tFa61holxQ0xQ+YGFt5S7wrBbRmVpBe7t/7hemmqCDPy3/6uQZ84wJWN1GfbF+mUX4DjC9RFvkg9NKxfoVFLzIyGERmuqDlCpyXrtHT/V6ed8hN4EJjyGu11AKJTvCCTts32MVafelPouenza1u3vczNjawOmIEwbK5IsyLlBB1L3FBamKPrIG/tw+Vd1kHMQn6ab/8lgvRBvwPDdT9tbZi1xM0BbYsJ5eWHfIg8dTcp5BX9cABr8uz9Mjp0Kw==
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=nNV8vay7USW/mq4ilrBrrAHsqfCEIrr7JBi6tUTg8gM=;
 b=DOfKwaIDfpjWhfwJQrv1Nupp3/qtIqEBCcyOaAG5xgDW1cgHzFT//QwVa0gsuflYQg1oNmNI8q6iVANlJvm5DlOSKZT9+EObzYg+UAq63sZ1JKa8e6yrOjtoqKQhC/qxILcUcBfuCHt12Z8A1q2Z75f7bMyEcuVLrrtH+5dVZtaeMadIQA1UZUMzU8UFfh7h5U9dffkXMbgk0pJul3Z74uL/G28LwwgZ+ndeYgfsWH/T0LVJogRB/DfiZ39MXX12AV97cb2hWhWbwf1X08ux7lPNs8UStd8jSnVVa0Fi3H0euBAfp0b0Rcr5gf2UYyljrqeMPgCB5NuGsRZLJ1djog==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amazon.co.uk; dmarc=pass action=none header.from=amazon.co.uk;
 dkim=pass header.d=amazon.co.uk; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=amazon.onmicrosoft.com; s=selector2-amazon-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nNV8vay7USW/mq4ilrBrrAHsqfCEIrr7JBi6tUTg8gM=;
 b=pF9+s6q2QlfoxQ9zx3wMq8APDr6zU7BF0jEJ6pJxkGD+r3XbtT22ugzFLbSZE3xQ+FpCL0Ol2MAk3pFOXG8/DeA6L26xo4SB6UbN4kC5x/KpQArxVQ5ZCb8Z3ntMf2ZAAtmtVhyeYY1c9k4TZIMuvdVMNDS0+f4IeNBrP3iZ5hg=
From: "Durrant, Paul" <pdurrant@amazon.co.uk>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
CC: Owen Smith <owen.smith@cloud.com>
Thread-Index: AQHb94C0z/qpxQRpNEOFwkCMZij8nrQ3gWNwgAAJCYCAAAWvkIAAB4OAgAABg8A=
Date: Fri, 18 Jul 2025 09:13:54 +0000
Message-ID: <LO2P123MB4766A2FEE6B5867E832CB3B2E450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM>
References: <20250718010822.240-1-ngoc-tu.dinh@vates.tech>
 <LO2P123MB4766455B2DF7090E8122A259E450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM>
 <51426979-58c2-470c-bba9-2faa56e236d0@vates.tech>
 <LO2P123MB4766B59CE10C9C0ED803D196E450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM>
 <c1d551d9-8820-4632-b0c6-748756aafd21@vates.tech>
In-Reply-To: <c1d551d9-8820-4632-b0c6-748756aafd21@vates.tech>
Accept-Language: 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=amazon.co.uk;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LO2P123MB4766:EE_|LO0P123MB7328:EE_
x-ms-office365-filtering-correlation-id: f2970ff5-b402-4687-587d-08ddc5db6b3a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info: =?utf-8?B?Uzc5czJjM01pMjVYWmdLNTRxQkllSklSdXhVVmtGa1c3SmZYUmVjZkJPZ0xo?=
 =?utf-8?B?K0RSNzluaFdaN3c2ems3bVRhODczRlByV2NvWTVqcUlWYjlYVXVwaG1kMXhv?=
 =?utf-8?B?c2d4MjdLSnFIS2dWaWY5K3VyQmlKQyt5VElNQ3E2YnNxL2JFalpBcVFXaFZw?=
 =?utf-8?B?Qnd6M3RrYzdhQVpmR2x6VXF5Tk4vZ1JrZ1NZdEZDanlIUHo1N3h2N1lieFNp?=
 =?utf-8?B?bWlMcHBDZUdLSHNyTjVwa2wwZzBLWTdjTUhCUWlMUG50NGRldmYxY09Cby9w?=
 =?utf-8?B?L0Z5cjJkRXoyckZwbTJJWUU0TkhnWmphVlQ5cWttTWxYdlMzdEhVRENaRlZn?=
 =?utf-8?B?ZEUxcG5nbFdiNlRvRHd3cXp0WWkvWjA5V1lNUHV2UmVLNWZzbG41TGFjVTZN?=
 =?utf-8?B?dm5reS9PaWZHV21iV2ZlL05DSjJVekh0c1NIU2p3YlJFR21LaVdKeUUyWVFy?=
 =?utf-8?B?RlIrRXloV3FxWlFVa3F2c3FDK0hscGhtSWxGQ0x4Zm1ZZmJTb1pWSXlvT0g1?=
 =?utf-8?B?OGJvS0hhZ2dOZjZ3SUMvOXN5ZjlZbTJSSHlqNGV4UUhuYlpnY0d0SzJ0VGZP?=
 =?utf-8?B?M3N5Q2NXbHBFUTRqc2hVNXN5bnVpQUhma2xXcHcrODJCNVdHQTJkQnRnWE9P?=
 =?utf-8?B?SzlXQjhDOGZva1VwRHNQa1IvSE9rcVdzS0F6ekdEdDEwSzdHV2piWFdjYmpi?=
 =?utf-8?B?RzVNZGg4V2hyK01KeTEwaE9wU2g1eHI2Nlp4NVRSM0x5SFVuTXhnNVVydHZm?=
 =?utf-8?B?MFUvSGNZYi9hRzlwYjhuZlpScG8rUnNxaWRmV3plNDQ3WHovSlQ3NW5SRnkx?=
 =?utf-8?B?UXpYRkFsdFh1cHB3Zyt3bitEam1Ya0NwdjFMTm5EaTczY2p1T2lMWVBXcnNn?=
 =?utf-8?B?SVN4RzQ1WXUwc3ZxMUJ6eDFqam5jLytLdDJadDV3YXMrUHRMUGI2dDJzcGl6?=
 =?utf-8?B?aHNlM1o0bXBOVGdTdWtNbkJLZnlINUI4WnZGTExJL3JRbS9BUlB4RjZWcHly?=
 =?utf-8?B?cnNJeGxvNnhGcm0yRHFtbjFYV1oyMUwyc0s5dld1VGtUQzd3dkkyZzlGZUJa?=
 =?utf-8?B?M3QvaE9sRkpLSkxqVk53cUwxMytLTzgrcndVU0RYVVRHRkptSVFucDlGQzE0?=
 =?utf-8?B?dGRWekFwN2U0SmZkZEVFbWc3T2lpT2V5VDhlNkJPVWxvWG1wUGFiRFlIay9N?=
 =?utf-8?B?dkttMzBvRkhtVWpKRjB1dUpaQ3Fjek5tSE5uTEE5ZjdwZDliOVppZzJ2Nmcw?=
 =?utf-8?B?RFVzVmVhaVo0Vk9RcjNENGxkMnNZQlE5Mzl6a0FwTXNGZnA2OW1Od3BNRDBE?=
 =?utf-8?B?bERkWTZtV0dBNm9sazl5K3VuS1dGdjQvUit2VVpvTEFKd2NDWG9QdlNEVjRx?=
 =?utf-8?B?TkFuc3BqOXF3U2lmQURBTnlkeDlsQnovVGdyZjMwSGw3NVZGOWJ3M3djbTdS?=
 =?utf-8?B?LzJJZlAwL3htMExTcnBEc096ek1UMk5yRmwrc0FZMXZTRDNvL0pWL0ROMnJh?=
 =?utf-8?B?OXZZYjlCRnJYRWNWS0Q4M2dJa0xjSVdOalRNVWZOM29ucldWYlArUy9neFUw?=
 =?utf-8?B?c1oyTHN4MXRkVUpJMExKaXY0QkJFbDIvOXF2UzFNSkNVZ0RHek1ieFZkR0Rm?=
 =?utf-8?B?L0FMNWdqSE95bWVVYnh6Y01yVkw0Wk5LcjRLbGVyR1ErcWFZTU9BSFg2NUI2?=
 =?utf-8?B?dWM2V0pNNFNrcDM1MkZoYXVMZEVDZUlVaFFkMUZDL3VqNDlZYW5wOHJ6UzBM?=
 =?utf-8?B?bDZXODdoZUdUTFFHMEo1ci9sV0M2WWtENWVvdXNjYlp5d2tXNkxodFBIUGNC?=
 =?utf-8?B?RlZHVHJBVUFDV0ZaVlVJbDBieWhVZUdJaU8yTjRqaU1TS1lhTVREMU41UzhT?=
 =?utf-8?B?OGFPaDkxY1R2bDg2L0Z1enFXRzZzSUwzMERXVGZvQjl2cjdWTTFhT3JJaFVl?=
 =?utf-8?Q?PrU28Y3DRNM=3D?=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TUlDQmdyWnp0WlJDMTV2TUJyOXRRd0svK2lteUFrd3N2cENpZ3BVUVl1N2Qy?=
 =?utf-8?B?WGRPUFkyenBIV2taM1lTYS9POEphVm5mTUgvTC9ZaEtpRG50OEZYZVo1b043?=
 =?utf-8?B?NE8wa3hESmgvQnRjVXpud21QNk1wVGpmY3RydTRWSExtM1dsNjlyRDZkZGpT?=
 =?utf-8?B?RDl3S2k0RDVibE4xekZKcVBmWU9zWmpvTGZ4Y3NSM0NFMWVyN21oTEdCc09P?=
 =?utf-8?B?eE5nOUM1KzB2QmEvM1B4Lzh0UnUvNTJoU2JkMVRUZ2tqeW0wQ2NBZUwyV1JX?=
 =?utf-8?B?OUFHSWpIMHZBMDVkNS9rL3VLanJLb1NmWjloSVlsOFZCcnI2cEJwdThYK01h?=
 =?utf-8?B?b21sTWN3Ylc0T1dYdklQWTdDTHlaWFdpazZQUHdKV1Avdi9xczBIbmJpZmpv?=
 =?utf-8?B?S3FtUU5LVGhDQzB4S2lYcm8rS1paRjQ5a2VQemFKNU44ZGhQeE1QZ2c1SzhE?=
 =?utf-8?B?QXB1U1N1cFlEZjlFZU9tR29RenJSR3JOWXFENVJFL1ZGRHp3bzRPY0o1OFhZ?=
 =?utf-8?B?YXBmdWlwencvUmZxcWFIdHAybWRWYjc0NWNZeW9UZ3FIQllaa0NaR0I2akEw?=
 =?utf-8?B?cUNBQndvQkN6elp1THg1dUpXdW5WZEpDUnNNWDZzMlpVZ1hhQlZ6MW43eGtT?=
 =?utf-8?B?eHgxcklKVzl6bFBUdi9zdFlyNVdYVkRJcFhZNHdCNjBqdTBSM3hhUjNoT3JT?=
 =?utf-8?B?cUI4cEcxcW1iUU10MExlNjZjbVVCSS9HelZldHAwYzNpMzlLeDRnNWdBZmpn?=
 =?utf-8?B?akRsSEowUjBraFl5R0pxdUprNE4xakNNaHVBMWMwNVcyUmxDTlpJblQ3RWdL?=
 =?utf-8?B?bFcxcVpTeE4yOXZJejZYUEhjZmg1c2JKQUZEbGxycTZXekZFVUJpeVBuN3Vj?=
 =?utf-8?B?K3VRWTdUcjNhemllTlpzbjVCWkNVVlBBU3JsRzA2OUJRK3JFZmVTVnMzeGFk?=
 =?utf-8?B?a25ROUFYZG5oNDFtdjFRcDdSeUgwRDVvSW1rZWtqa3E0OUtvbExUMk8yU2Ro?=
 =?utf-8?B?WXhBSmM0b0hRaTBYY3JzbHJiR3o0THJkVWRvV3pOTE1ldFl1d3pObWhNL0Rx?=
 =?utf-8?B?T2FEYXNFWEpCeHBMUW1DaE9teitEaG1vYWc3M0xIOFdwdzRyRi9JbXczZEYw?=
 =?utf-8?B?YjBVenQzS2lGSXA5ejR2QVlvRlplYXA5c01NYXY2SlhabWt4OHovOHMya2lv?=
 =?utf-8?B?SVFHZnh0T3pvd0JURWhpQnhqM1RUQjRwY1FjSk9sdmw5MGlSaytEMzgzeVFF?=
 =?utf-8?B?YTFQTDJmYlJtb2JmUXdDT1NJOERoaXpFQ1ljWW1lWHBvdTlzQ3RLcDBFeFZZ?=
 =?utf-8?B?ZUxFNXdLRGZ2KzFFUlZMV2VoNFl3OUtjNlIrdXhnMGlOWHREUnVPaDNFM1Ba?=
 =?utf-8?B?NUY3VTJJZ3JsS2tMZVBXd1V3a3pyZWIvVEc1U2ZZdXNCYVBQZHBTN0UrNWF1?=
 =?utf-8?B?N3gzNCtLSVoyUUs2bUxxZEplbFlxTXFscUZ4OHVNa2p2UWE3S0ptL1M5eTg2?=
 =?utf-8?B?U2d6UDQvTTN4cXRIeGlJUEgvclk4ZnpJa1ZaVGFJS0c2S2hSTDJPVEI3cW1Q?=
 =?utf-8?B?Nlk3aTFVTUlJQVBBditManlNcjRNNUs2dVhQaGlCSVdmWkl4Q1VIblBPZDV0?=
 =?utf-8?B?b0dYa29vT2NqbTZsaUFqVGRuQTc2VTdyeGwraWwxWHFZSWdCRFpFUjcxbGlq?=
 =?utf-8?B?SUhDRS9aUXFGM2RqM3c2OWV1RGdYNGMxTHNzbFRjdU9VRy92OXFvam1tMkUr?=
 =?utf-8?B?eWpHQUdNL2JoVExQVXlrMERhKzFFVHhZT1ZCcUlGMEFFTm9GMUoxVFpmU0tz?=
 =?utf-8?B?YjNxT3BLUjNGdU1MeUFnNDE4UEw2QzU3d0l2ZzBOVHV2aTUxMHRRdldJaExs?=
 =?utf-8?B?Qk5Lb1BJeXcrdVV4N3lHNjJTTFlRL2JGVXZMMStZLytPaFdlcmMyN3lhT3F0?=
 =?utf-8?B?dGhjbUtWazFoYVVSeG1ncEJwRHBpZVEvOW1Uek8xOWNJVFUwS21wL3d4ODIr?=
 =?utf-8?B?YkRaYkNZTldFRXR6ZTlTVlgzZ0VtM3dnYkl6TERXVVVVVjRZVm1EbkQ0ZFpa?=
 =?utf-8?B?TmJMMkFpaUExc2E2ZUJzN045SGRlUHFKVHJndjhuY3JITFFZSS9KRis3MXox?=
 =?utf-8?Q?vVWS8TewseVgNGkGdjOJ49wTT?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: f2970ff5-b402-4687-587d-08ddc5db6b3a
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jul 2025 09:13:54.3523
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5280104a-472d-4538-9ccf-1e1d0efe8b1b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: pe2rVyADDp7Je1DIX6x9iDi55bRO4X/CNh4qUVajgQdTwOGQG0GABN3pRs14mH6gUtDjdFfWaNZkE85LjEo7dA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO0P123MB7328
X-OriginatorOrg: amazon.co.uk

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBUdSBEaW5oIDxuZ29jLXR1LmRp
bmhAdmF0ZXMudGVjaD4NCj4gU2VudDogRnJpZGF5LCBKdWx5IDE4LCAyMDI1IDEwOjA3IEFNDQo+
IFRvOiBEdXJyYW50LCBQYXVsIDxwZHVycmFudEBhbWF6b24uY28udWs+OyB3aW4tcHYtDQo+IGRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNs
b3VkLmNvbT4NCj4gU3ViamVjdDogUkU6IFtFWFRFUk5BTF0gW1BBVENIXSBGaXggZmFpbHVyZSBj
bGVhbnVwIGluIEV2dGNobkZpZm9BY3F1aXJlDQo+IA0KPiBDQVVUSU9OOiBUaGlzIGVtYWlsIG9y
aWdpbmF0ZWQgZnJvbSBvdXRzaWRlIG9mIHRoZSBvcmdhbml6YXRpb24uIERvIG5vdA0KPiBjbGlj
ayBsaW5rcyBvciBvcGVuIGF0dGFjaG1lbnRzIHVubGVzcyB5b3UgY2FuIGNvbmZpcm0gdGhlIHNl
bmRlciBhbmQga25vdw0KPiB0aGUgY29udGVudCBpcyBzYWZlLg0KPiANCj4gDQo+IA0KPiBIaSBQ
YXVsLA0KPiANCj4gT24gMTgvMDcvMjAyNSAxMTowNCwgRHVycmFudCwgUGF1bCB3cm90ZToNCj4g
Wy4uLl0NCj4gPg0KPiA+IEhpIFR1LA0KPiA+DQo+ID4gICAgQXJlIHdlIGxvb2tpbmcgYXQgdGhl
IHNhbWUgZnVuY3Rpb24/IFRoaXMgaXMgd2hhdCBJIHNlZS4uLg0KPiA+DQo+ID4gICAgVGhlIGxv
b3Agc3RhcnRzIGF0DQo+IGh0dHBzOi8veGVuYml0cy54ZW4ub3JnL2dpdHdlYi8/cD1wdmRyaXZl
cnMvd2luL3hlbmJ1cy5naXQ7YT1ibG9iO2Y9c3JjL3hlDQo+IG5idXMvZXZ0Y2huX2ZpZm8uYzto
Yj1IRUFEI2w1MDU6DQo+ID4NCj4gPiAgIDUwNSAgICAgSW5kZXggPSAwOw0KPiA+ICAgNTA2ICAg
ICB3aGlsZSAoSW5kZXggPCBQcm9jZXNzb3JDb3VudCkgew0KPiA+ICAgNTA3ICAgICAgICAgdW5z
aWduZWQgaW50ICAgICAgICB2Y3B1X2lkOw0KPiA+ICAgNTA4ICAgICAgICAgUEZOX05VTUJFUiAg
ICAgICAgICBQZm47DQo+ID4gICA1MDkgICAgICAgICBQSFlTSUNBTF9BRERSRVNTICAgIEFkZHJl
c3M7DQo+ID4gICA1MTANCj4gPiAgIDUxMSAgICAgICAgIHN0YXR1cyA9IFN5c3RlbVByb2Nlc3Nv
clZjcHVJZChJbmRleCwgJnZjcHVfaWQpOw0KPiA+ICAgNTEyDQo+ID4gICA1MTMgICAgICAgICBJ
bmRleCsrOw0KPiA+ICAgNTE0DQo+ID4NCj4gPiBTbyBJbmRleCBpcyBpbmNyZW1lbnRlZCBiZWZv
cmUgdGhlIGNoZWNrczoNCj4gPg0KPiA+ICAgNTE1ICAgICAgICAgaWYgKHN0YXR1cyA9PSBTVEFU
VVNfTk9UX1NVUFBPUlRFRCkNCj4gPiAgIDUxNiAgICAgICAgICAgICBjb250aW51ZTsNCj4gPiAg
IDUxNw0KPiA+ICAgNTE4ICAgICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+ID4gICA1
MTkgICAgICAgICAgICAgZ290byBmYWlsMTsNCj4gPg0KPiA+IFNvLCBzYXkgd2UgaGF2ZSBkb25l
IG9uZSBsb29wIHJvdW5kIHRoZW4gd2UnbGwgaGF2ZSBzZXQgdXAgdGhlIGNvbnRyb2wNCj4gYmxv
Y2sgZm9yIHRoZSB2Y3B1X2lkIGNvcnJlc3BvbmRpbmcgdG8gSW5kZXggMC4gSW5kZXggd2lsbCBu
b3cgYmUgMSBhbmQNCj4gbGV0J3Mgc2F5IHdlIGhpdCB0aGUgZmFpbC4NCj4gDQo+IEFmdGVyIGRv
aW5nIG9uZSBzdWNjZXNzZnVsIGxvb3Agcm91bmQsIEluZGV4IHdpbGwgYmUgMS4gQnV0IGFzIHNv
b24gYXMNCj4geW91IGVudGVyIHRoZSBzZWNvbmQgbG9vcCByb3VuZCwgSW5kZXggd291bGQgaGF2
ZSBiZWNvbWUgMiBiZWZvcmUgeW91DQo+IGNvdWxkIGhpdCBhbnkgZmFpbHVyZSwgZHVlIHRvIHRo
ZSBJbmRleCsrIG5lYXIgdGhlIHZlcnkgdG9wLg0KDQpPaywgeWVzIEkgc2VlIGl0IG5vdy4gSnVz
dCBtb3ZpbmcgdGhlIGluY3JlbWVudCBiZWxvdyBsaW5lIDUxOSBhcHBlYXJzIHRvIGJlIHRoZSBj
b3JyZWN0IGZpeCB0aGVuLg0KDQpDaGVlcnMsDQoNCiAgUGF1bA0KDQo+IA0KPiA+DQo+ID4gICA1
NTkgZmFpbDE6DQo+ID4gICA1NjAgICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7
DQo+ID4gICA1NjENCj4gPiAgIDU2MiAgICAgRXZ0Y2huUmVzZXQoKTsNCj4gPiAgIDU2Mw0KPiA+
ICAgNTY0ICAgICB3aGlsZSAoLS1JbmRleCA+PSAwKSB7DQo+ID4NCj4gPiBJbmRleCB3aWxsIGJl
IGRlY3JlbWVudGVkIGJhY2sgdG8gMC4uLg0KPiA+DQo+ID4gICA1NjUgICAgICAgICB1bnNpZ25l
ZCBpbnQgICAgdmNwdV9pZDsNCj4gPiAgIDU2Ng0KPiA+ICAgNTY3ICAgICAgICAgc3RhdHVzID0g
U3lzdGVtUHJvY2Vzc29yVmNwdUlkKEluZGV4LCAmdmNwdV9pZCk7DQo+ID4NCj4gPiBXZSBsb29r
IHVwIHRoZSBjb3JyZXNwb25kaW5nIHZjcHVfaWQgYWdhaW4uLi4NCj4gPg0KPiA+ICAgNTY4ICAg
ICAgICAgaWYgKHN0YXR1cyA9PSBTVEFUVVNfTk9UX1NVUFBPUlRFRCkNCj4gPiAgIDU2OSAgICAg
ICAgICAgICBjb250aW51ZTsNCj4gPiAgIDU3MA0KPiA+ICAgNTcxICAgICAgICAgQlVHX09OKCFO
VF9TVUNDRVNTKHN0YXR1cykpOw0KPiA+ICAgNTcyDQo+ID4gICA1NzMgICAgICAgICBNZGwgPSBD
b250ZXh0LT5Db250cm9sQmxvY2tNZGxbdmNwdV9pZF07DQo+ID4gICA1NzQgICAgICAgICBDb250
ZXh0LT5Db250cm9sQmxvY2tNZGxbdmNwdV9pZF0gPSBOVUxMOw0KPiA+DQo+ID4gLi4uIGFuZCB3
ZSBmcmVlIG9mZiB0aGUgY29udHJvbCBibG9jayB0aGF0IHdhcyBhbGxvY2F0ZWQgYmVmb3JlLg0K
PiA+DQo+ID4gICA1NzUNCj4gPiAgIDU3NiAgICAgICAgIF9fRnJlZVBhZ2UoTWRsKTsNCj4gPiAg
IDU3NyAgICAgfQ0KPiA+DQo+ID4gSSBkb24ndCBzZWUgYW55IGV2aWRlbmNlIG9mIGEgZG91Ymxl
IGluY3JlbWVudC4gVGhlIGV4aXN0aW5nIGNvZGUgbG9va3MNCj4gY29ycmVjdCB0byBtZS4NCj4g
Pg0KPiA+ICAgIFBhdWwNCj4gPg0KPiBbLi4uXQ0KPiANCj4gDQo+IA0KPiBOZ29jIFR1IERpbmgg
fCBWYXRlcyBYQ1AtbmcgRGV2ZWxvcGVyDQo+IA0KPiBYQ1AtbmcgJiBYZW4gT3JjaGVzdHJhIC0g
VmF0ZXMgc29sdXRpb25zDQo+IA0KPiB3ZWI6IGh0dHBzOi8vdmF0ZXMudGVjaA0KDQo=


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 18 09:17:58 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 18 Jul 2025 09:17:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1048261.1418497 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uchE6-0006gZ-MH; Fri, 18 Jul 2025 09:17:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1048261.1418497; Fri, 18 Jul 2025 09:17:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uchE6-0006gS-IX; Fri, 18 Jul 2025 09:17:58 +0000
Received: by outflank-mailman (input) for mailman id 1048261;
 Fri, 18 Jul 2025 09:17:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5R/F=Z7=bounce.vates.tech=bounce-md_30504962.687a1142.v1-acff20d82ea5424da11ef642d11e1732@srs-se1.protection.inumbo.net>)
 id 1uchE5-0005gn-0U
 for win-pv-devel@lists.xenproject.org; Fri, 18 Jul 2025 09:17:57 +0000
Received: from mail132-21.atl131.mandrillapp.com
 (mail132-21.atl131.mandrillapp.com [198.2.132.21])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 16a8aba4-63b8-11f0-a319-13f23c93f187;
 Fri, 18 Jul 2025 11:17:56 +0200 (CEST)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4bk42V4yS3z1XLF8s
 for <win-pv-devel@lists.xenproject.org>; Fri, 18 Jul 2025 09:17:54 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 acff20d82ea5424da11ef642d11e1732; Fri, 18 Jul 2025 09:17:54 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 16a8aba4-63b8-11f0-a319-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1752830274; x=1753100274;
	bh=xRfeubYwO36WlD57+4hOLwr/Sz4AfuYLBEk+sGcFIRs=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=wHWHq3tF17FZ6r/1HtA1CxKS1/cUn3mriAhGm3jrZtzTPexhbONSxYpiDgxQYwhFb
	 qxWGsCBEMntv2e5tScgYDCB/ghZvaVNYaSlMLGuvKV/8yC66cEmdrrJ/ePnzOjitf2
	 miumHXGEi9fL773c59s8dbSJ0wWmKVRJ9o2+ezTENuaQ2L20xHdoeYoRIlJNeu8KZz
	 OPaMqmeJqJIyUqYeIuhcssQkl2/5YY/+4DC/LDTIHZihus7MjuDTkmaBorKFGV2+gK
	 f1Y5/bfFtPoF882RlCuF1O7qfBuG47Zp8dtd6qPW1C2b6j9DdKNBiVp6TOcgo82S+5
	 0vPtrDdSd/5VA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1752830274; x=1753090774; i=ngoc-tu.dinh@vates.tech;
	bh=xRfeubYwO36WlD57+4hOLwr/Sz4AfuYLBEk+sGcFIRs=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=Ipx8TjZD6mmRS7B/Pk7YXJMTuM4S2VYFo0iB03BA189rqQ6U84Yn7CiTDVbPzBzL+
	 yFYYn/ciRybgiHsqCgMeFwsN6Gn3uCgW3GlddtNwoP0Zjcm0FArpPke5GaRGKijtfU
	 8t0GtRoeT4TUa2zr5yUts+I8v+ZlruDKz60hxw9RXGa6HWOPNyARgRxfD5fZzi/OcO
	 gUXbSruNILLHqA6frj7Cw4NknNgJrBVFQUokg4SX+dyxmCJEZ/g+Sthqe6rfL5vLUZ
	 CyTiFEXpZnf8kH1/lv5r1hjZ1+BWI8aXmg0nPpDLtYHWUDwvuBnvdtpM9f/4/v9a4e
	 3+n0qhnzOA9yg==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20Fix=20failure=20cleanup=20in=20EvtchnFifoAcquire?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1752830273568
Message-Id: <556643d8-500b-4571-a2d2-91d023f5bd28@vates.tech>
To: "Durrant, Paul" <pdurrant@amazon.co.uk>, win-pv-devel@lists.xenproject.org
Cc: "Owen Smith" <owen.smith@cloud.com>
References: <20250718010822.240-1-ngoc-tu.dinh@vates.tech> <LO2P123MB4766455B2DF7090E8122A259E450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM> <51426979-58c2-470c-bba9-2faa56e236d0@vates.tech> <LO2P123MB4766B59CE10C9C0ED803D196E450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM> <c1d551d9-8820-4632-b0c6-748756aafd21@vates.tech> <LO2P123MB4766A2FEE6B5867E832CB3B2E450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM>
In-Reply-To: <LO2P123MB4766A2FEE6B5867E832CB3B2E450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.acff20d82ea5424da11ef642d11e1732?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250718:md
Date: Fri, 18 Jul 2025 09:17:54 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On 18/07/2025 11:14, Durrant, Paul wrote:
>> -----Original Message-----
>> From: Tu Dinh <ngoc-tu.dinh@vates.tech>
>> Sent: Friday, July 18, 2025 10:07 AM
>> To: Durrant, Paul <pdurrant@amazon.co.uk>; win-pv-
>> devel@lists.xenproject.org
>> Cc: Owen Smith <owen.smith@cloud.com>
>> Subject: RE: [EXTERNAL] [PATCH] Fix failure cleanup in EvtchnFifoAcquire
>>
>> CAUTION: This email originated from outside of the organization. Do not
>> click links or open attachments unless you can confirm the sender and know
>> the content is safe.
>>
>>
>>
>> Hi Paul,
>>
>> On 18/07/2025 11:04, Durrant, Paul wrote:
>> [...]
>>>
>>> Hi Tu,
>>>
>>>     Are we looking at the same function? This is what I see...
>>>
>>>     The loop starts at
>> https://xenbits.xen.org/gitweb/?p=pvdrivers/win/xenbus.git;a=blob;f=src/xe
>> nbus/evtchn_fifo.c;hb=HEAD#l505:
>>>
>>>    505     Index = 0;
>>>    506     while (Index < ProcessorCount) {
>>>    507         unsigned int        vcpu_id;
>>>    508         PFN_NUMBER          Pfn;
>>>    509         PHYSICAL_ADDRESS    Address;
>>>    510
>>>    511         status = SystemProcessorVcpuId(Index, &vcpu_id);
>>>    512
>>>    513         Index++;
>>>    514
>>>
>>> So Index is incremented before the checks:
>>>
>>>    515         if (status == STATUS_NOT_SUPPORTED)
>>>    516             continue;
>>>    517
>>>    518         if (!NT_SUCCESS(status))
>>>    519             goto fail1;
>>>
>>> So, say we have done one loop round then we'll have set up the control
>> block for the vcpu_id corresponding to Index 0. Index will now be 1 and
>> let's say we hit the fail.
>>
>> After doing one successful loop round, Index will be 1. But as soon as
>> you enter the second loop round, Index would have become 2 before you
>> could hit any failure, due to the Index++ near the very top.
> 
> Ok, yes I see it now. Just moving the increment below line 519 appears to be the correct fix then.

I think the index increment needs to stay there to skip CPU indexes in 
case SystemProcessorVcpuId returns STATUS_NOT_SUPPORTED (non-present CPUs).

I've made a facsimile of the function here for manual testing: 
https://gist.github.com/dinhngtu/2af15af5aefd33ddbb0165e9b430a441

> 
> Cheers,
> 
>    Paul
> 
>>
>>>
>>>    559 fail1:
>>>    560     Error("fail1 (%08x)\n", status);
>>>    561
>>>    562     EvtchnReset();
>>>    563
>>>    564     while (--Index >= 0) {
>>>
>>> Index will be decremented back to 0...
>>>
>>>    565         unsigned int    vcpu_id;
>>>    566
>>>    567         status = SystemProcessorVcpuId(Index, &vcpu_id);
>>>
>>> We look up the corresponding vcpu_id again...
>>>
>>>    568         if (status == STATUS_NOT_SUPPORTED)
>>>    569             continue;
>>>    570
>>>    571         BUG_ON(!NT_SUCCESS(status));
>>>    572
>>>    573         Mdl = Context->ControlBlockMdl[vcpu_id];
>>>    574         Context->ControlBlockMdl[vcpu_id] = NULL;
>>>
>>> ... and we free off the control block that was allocated before.
>>>
>>>    575
>>>    576         __FreePage(Mdl);
>>>    577     }
>>>
>>> I don't see any evidence of a double increment. The existing code looks
>> correct to me.
>>>
>>>     Paul
>>>
>> [...]
>>
>>
>>
>> Ngoc Tu Dinh | Vates XCP-ng Developer
>>
>> XCP-ng & Xen Orchestra - Vates solutions
>>
>> web: https://vates.tech
> 



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Fri Jul 18 09:58:43 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 18 Jul 2025 09:58:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1048325.1418539 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uchrW-0006yt-Ci; Fri, 18 Jul 2025 09:58:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1048325.1418539; Fri, 18 Jul 2025 09:58:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uchrW-0006ym-A1; Fri, 18 Jul 2025 09:58:42 +0000
Received: by outflank-mailman (input) for mailman id 1048325;
 Fri, 18 Jul 2025 09:58:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qQPm=Z7=bounce.vates.tech=bounce-md_30504962.687a1aca.v1-d4c0372b72794042aa1259206f3ed2b1@srs-se1.protection.inumbo.net>)
 id 1uchrV-0006yg-1a
 for win-pv-devel@lists.xenproject.org; Fri, 18 Jul 2025 09:58:41 +0000
Received: from mail13.wdc04.mandrillapp.com (mail13.wdc04.mandrillapp.com
 [205.201.139.13]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c4be060b-63bd-11f0-b894-0df219b8e170;
 Fri, 18 Jul 2025 11:58:35 +0200 (CEST)
Received: from pmta16.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail13.wdc04.mandrillapp.com (Mailchimp) with ESMTP id 4bk4xQ24MFzNCd9LW
 for <win-pv-devel@lists.xenproject.org>; Fri, 18 Jul 2025 09:58:34 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d4c0372b72794042aa1259206f3ed2b1; Fri, 18 Jul 2025 09:58:34 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c4be060b-63bd-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1752832714; x=1753102714;
	bh=SFJ0VLNKul5iRUX4J961PImR7E6Q7QckdVzuzmgIpyU=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=gYjGFp8zi6lTwXUF1rhnBq68bhhn6zNBFFuut46376nfczilOzki24CUsU3RoeEWy
	 DyZuBgIse3hHQkvQTTzNqOAgFm4rQ0oY6BnE/VAuGOpHdXhl0hpb25eZJT+vwsn8+8
	 8jK8FrmM6adqKrJZi57UnM4bCq+Q7JF1a7EwWMw5SK6qeR/3sfoJA5KmyxhQ6wThEJ
	 ft1Bg3lrc4R1Sz5J4wG2kPQy0h/DKSktI0MRRIZkBdpMqrKBRzKTj7ZK2QCGjKs5DZ
	 y3mz3Mav14MzT1sRoG6dwkOfiGKp3EOTPW3+yrKyAbEJAiC31u+8jINGrOimGFn+IZ
	 W0NMPF0ZQt2QQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1752832714; x=1753093214; i=ngoc-tu.dinh@vates.tech;
	bh=SFJ0VLNKul5iRUX4J961PImR7E6Q7QckdVzuzmgIpyU=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=P7TfhAuYP6fDLx+zZnCqCvG1gLhY0/u/ouuSrXt69oBL5H/kTsB3syggRvRy46X7w
	 kfaHlN459xmaiOH/k242iyjP3KhoA+kajkH2zGPqgmYTHg2c4+H3dqFZbhUGV57Cb4
	 uP6UZmchCt6/bVKzdPTJin9Di/hNoAAUbT4VQeiLuJoUnMpnCwRfVl3Ds5MdHQ8KtE
	 hCTHdhDUQ/km+VJ33yHGJn2q/5Yx5TYx8ONCyhn1Pt5T1XKH2C7Ts+sUDIkNbb1aXv
	 YFbNA4J/p5UK5feoKYdS/seVJLnbAc8Ov2h/IDHvd9r563L/90agdn2bZiFwyC3H/w
	 KNBgQJCt0NZlA==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2]=20Fix=20failure=20cleanup=20in=20EvtchnFifoAcquire?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1752832713243
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>, "Paul Durrant" <pdurrant@amazon.co.uk>
Message-Id: <20250718095831.1580-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.d4c0372b72794042aa1259206f3ed2b1?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250718:md
Date: Fri, 18 Jul 2025 09:58:34 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

The current index is incremented before checking for failure:

    while (Index < ProcessorCount) {
        Index++;
        [...]
        if (!NT_SUCCESS(status))
            goto fail1;
        Context->ControlBlockMdl[vcpu_id] = Mdl;
    }

Make the main loop a normal for loop to avoid calling __FreePage on
invalid PMDLs.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 src/xenbus/evtchn_fifo.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/src/xenbus/evtchn_fifo.c b/src/xenbus/evtchn_fifo.c
index 1137dea..fd06ef4 100644
--- a/src/xenbus/evtchn_fifo.c
+++ b/src/xenbus/evtchn_fifo.c
@@ -502,16 +502,13 @@ EvtchnFifoAcquire(
 
     ProcessorCount = KeQueryMaximumProcessorCountEx(ALL_PROCESSOR_GROUPS);
 
-    Index = 0;
-    while (Index < ProcessorCount) {
+    for (Index = 0; Index < ProcessorCount; Index++) {
         unsigned int        vcpu_id;
         PFN_NUMBER          Pfn;
         PHYSICAL_ADDRESS    Address;
 
         status = SystemProcessorVcpuId(Index, &vcpu_id);
 
-        Index++;
-
         if (status == STATUS_NOT_SUPPORTED)
             continue;
 
-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Fri Jul 18 10:16:22 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 18 Jul 2025 10:16:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1048367.1418593 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uci8a-0004G3-OQ; Fri, 18 Jul 2025 10:16:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1048367.1418593; Fri, 18 Jul 2025 10:16:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uci8a-0004Fw-LM; Fri, 18 Jul 2025 10:16:20 +0000
Received: by outflank-mailman (input) for mailman id 1048367;
 Fri, 18 Jul 2025 10:16:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9911=Z7=amazon.co.uk=prvs=2879db4ba=pdurrant@srs-se1.protection.inumbo.net>)
 id 1uci8Y-00048U-Nf
 for win-pv-devel@lists.xenproject.org; Fri, 18 Jul 2025 10:16:19 +0000
Received: from smtp-fw-9105.amazon.com (smtp-fw-9105.amazon.com
 [207.171.188.204]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d09b55e-63c0-11f0-a319-13f23c93f187;
 Fri, 18 Jul 2025 12:16:17 +0200 (CEST)
Received: from iad12-co-svc-p1-lb1-vlan3.amazon.com (HELO
 smtpout.prod.us-west-2.prod.farcaster.email.amazon.dev) ([10.43.8.6])
 by smtp-border-fw-9105.sea19.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jul 2025 10:16:09 +0000
Received: from EX19MTAEUA002.ant.amazon.com [10.0.10.100:52497]
 by smtpin.naws.eu-west-1.prod.farcaster.email.amazon.dev [10.0.27.164:2525]
 with esmtp (Farcaster)
 id da129134-6565-4fe9-99f5-c2c3a3239136; Fri, 18 Jul 2025 10:16:07 +0000 (UTC)
Received: from EX19EXOEUA001.ant.amazon.com (10.252.50.110) by
 EX19MTAEUA002.ant.amazon.com (10.252.50.124) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1544.14;
 Fri, 18 Jul 2025 10:16:07 +0000
Received: from EX19EXOEUB001.ant.amazon.com (10.252.51.80) by
 EX19EXOEUA001.ant.amazon.com (10.252.50.110) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1544.14;
 Fri, 18 Jul 2025 10:16:07 +0000
Received: from CWXP265CU008.outbound.protection.outlook.com (10.252.50.44) by
 EX19EXOEUB001.ant.amazon.com (10.252.51.80) with Microsoft SMTP
 Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1544.14
 via Frontend Transport; Fri, 18 Jul 2025 10:16:07 +0000
Received: from LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1e2::5)
 by LO3P123MB3129.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:ff::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8943.25; Fri, 18 Jul
 2025 10:16:06 +0000
Received: from LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM
 ([fe80::6d99:efc8:6d56:b029]) by LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM
 ([fe80::6d99:efc8:6d56:b029%6]) with mapi id 15.20.8943.024; Fri, 18 Jul 2025
 10:16:05 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d09b55e-63c0-11f0-a319-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.co.uk; i=@amazon.co.uk; q=dns/txt;
  s=amazoncorp2; t=1752833777; x=1784369777;
  h=from:to:cc:date:message-id:references:in-reply-to:
   content-transfer-encoding:mime-version:subject;
  bh=WaLy9IVShFr9zUktjWwNssTfzWeC474A2wYg0WYHlyo=;
  b=iWSDFb//y/6GXGb3lUiDOKuTCQTAtGOO5AwWJWje46XjZGb0+U21lmWs
   7hk3cd/Hd7nQh2mA/xJve/U9ekUNgc3Pn0koa6stmjL9gnI6A+U3tS/hn
   4LP3J0lM7OHcaebXgAxTJEamEw+yQISsOMkVMvKGL4Y/WbFCVEvw4ZAon
   MMbsMXsuWmJyd1pb3gWVyDuWEC+Nu7gfZzB/8oDKShGz81yfVRjPKA+rQ
   KLrJLhP4I2Q6DSR+jep68zjkxQ6SSqXOa9ihfxNPT94Ll/C0P2Lel75p8
   R01tFVO9c0ufCakD+r+Wmm94ddANEyjcyg+jWi9JksSQjS3IG/D8tcVPr
   A==;
X-IronPort-AV: E=Sophos;i="6.16,321,1744070400"; 
   d="scan'208";a="38434411"
Subject: RE: [PATCH v2] Fix failure cleanup in EvtchnFifoAcquire
Thread-Topic: [PATCH v2] Fix failure cleanup in EvtchnFifoAcquire
X-Farcaster-Flow-ID: da129134-6565-4fe9-99f5-c2c3a3239136
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=L0l2y3rn5UeHbFKc6l82JWoZ6rIzdCVLAUVR1iRLQQP0aKL/A2vQYJu50sq8dFTThBZm2pJOdrddFgCm9P5K1LsI0s9gmgrBkJEd1/v7IHfjnWOqv8s+BqeBUrHXT+TGiDvly1bDaUgIDfkiz1Ut8g3LC9Nt2aFtqoIWn6QUzkoUBMWXTZe/b47tRVlrlHk+z7JiZUQA7X3BYVWd7/9BgcWgeIrHW6pL+kuT6E9ep2UXFs13wTFeWR8jQDK6CHMeurNq7oeKNsdzdHSMzjRxzFf5XWgaE1zENNs9aUP1T0mEcg6fo4LUs1VcLlnINs0xW5wF6ntzjrU60BJdHd1Arg==
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=WaLy9IVShFr9zUktjWwNssTfzWeC474A2wYg0WYHlyo=;
 b=j23/YUCVgYKQzbZNVacO0gCv43iiVfXl8QPNWQc+ghXl3VmYFvZvzCtwcoKrwyVy23BhjZ5dI2RHNeXslVgUhxN8i5OIktwVZf6IQ8i1Yz7olnYSeWESrmBrScHsksP691KseWNJ7cbUtwmekqVouNxRzzOajlxFLsvwrdOyXVZsnx8Ol8ho/cSZrnxg+GMmIhwpT7JQP76+Xky0/jyKEsmNnefC1t3sWp1YBhrKuEjGd+Fnz3xpeb/6GJngN3FkTr7ybUOqkKnK5Xb8b/UK+m2sEbdrFzm1ER/oR7zdrFajxLQHL4/QMspXk1l5smXbZXf+jS6cUiTLJESjYkLZqA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amazon.co.uk; dmarc=pass action=none header.from=amazon.co.uk;
 dkim=pass header.d=amazon.co.uk; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=amazon.onmicrosoft.com; s=selector2-amazon-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WaLy9IVShFr9zUktjWwNssTfzWeC474A2wYg0WYHlyo=;
 b=fKB1l0gzUa1OLNxAfyI5h95bI/Z+BF5GDI44BGYrSQijYVrQV5jyLNKUe4ER6lLfRSWgEM9IS7vxpBZx+VCLk0mfswkNhGqFZyn68cE6qm4qvSZyzIR7UoGTWJhXEsqSsmaaTQ9dJR6YQQeNBcmLU3GzJqIQ8AX46sRetW3UsYo=
From: "Durrant, Paul" <pdurrant@amazon.co.uk>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
CC: Owen Smith <owen.smith@cloud.com>
Thread-Index: AQHb98qO3ZMDHqfNrUamuEX8SjeBh7Q3qlrg
Date: Fri, 18 Jul 2025 10:16:05 +0000
Message-ID: <LO2P123MB47664A882CFBEF3895A8028CE450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM>
References: <20250718095831.1580-1-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250718095831.1580-1-ngoc-tu.dinh@vates.tech>
Accept-Language: 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=amazon.co.uk;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LO2P123MB4766:EE_|LO3P123MB3129:EE_
x-ms-office365-filtering-correlation-id: 9d1fecdd-5592-4303-2ff9-08ddc5e41b44
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info: =?utf-8?B?U2lOUnJjZVhOR0FLNzRHTVorZ256SW5qY2ZoYzZyUE02dkdhY3NXTzJuUjB3?=
 =?utf-8?B?Wk9nWnVKVDc4cXM0dnF4Mk5RQXJCRm1WT2dKRXMrcDk2QlJTUVZScEZLYzNQ?=
 =?utf-8?B?aDc5bHVwWlkzMFVlelJoRzBTZFJCdUFLL2k5Wlg2NTNqdzZ4RExxL005TDk0?=
 =?utf-8?B?cmJac3N1OWMyZCtqcTBrM1BvYTZ3dlRMWEdxZ21kQ3lJYUt0Y0NTVzZaVVVw?=
 =?utf-8?B?Wjhlc1ZrME9uV0dETERWTG1CU3N4VU1FZlU4aW0zWEFxRlNCekdmM1h4L01H?=
 =?utf-8?B?ZzhEcHBNWlhHV0Q1V2o2QTZWc1NYMjlCUGFVS080T2FPTTZPc2xoOFh2R3Qx?=
 =?utf-8?B?TUpKUTl6M2lNSDUxamJ1WHFzaXIrY3FUaTFKNUNxQVNTVDhvd3NhTDF2YnhO?=
 =?utf-8?B?UGk4bHVMMUxXeCtFbmNlWmN0cmFGaWpzWGEyNndZODRKekZFVVBzREIyZWlk?=
 =?utf-8?B?UTZuaVZiQ3JGdDFacC84blFIdmo1SnlkME1zKzVuRGNKektIVGNrRzNoYUJ1?=
 =?utf-8?B?MnA4QkdNeXd6UEYrcUcyeHlka0dvamNidTZWNzl0YUFubWc5TXMrcUNUTjRh?=
 =?utf-8?B?aVFPa0ZnMDdmaEZOQWJaMnVzQjV3VVhVUkxEb1BHMFJwMVgwcHM5OHJqTlhD?=
 =?utf-8?B?dXUzUXVsQWw0b3luN3NxbXp2NngvYkxacU9vWVE1czlGUmNNbVBTcURXYmdp?=
 =?utf-8?B?SElLb2NPNVRnbWVNS3pUU2F1dTBwYUw3VkNERndqOXZFRjZVNDNubWpIUnhp?=
 =?utf-8?B?QUF3dUI3ZHVPSTBrK3ZYNWduYTE2cklMNXdpeDYvekFnb0hWaDh3ZnVqTGY0?=
 =?utf-8?B?eXlQMnRoRmQ4TGt5aG1lZWpiWVE3SlR4dm10ZlhmbUY4a3Y2T0UrMC9vRURU?=
 =?utf-8?B?b1d6d0NxTmFKQ1lZc2tSWGxTQlFqUTRvVDh2MSthMVl2ZzRBL1BMdWROanlL?=
 =?utf-8?B?dEx1ZHU3RW5OM0VDTGNMK2FhRUZsb0o4UktlUHVlYlp3VW1maG9WMHpxaU9i?=
 =?utf-8?B?S2pwS3JPVUZjY1EzZ0xIMHAzOW1NZUl6bEl1eHF4V25QWjNFNzZZWmJIRjMz?=
 =?utf-8?B?UGJZRE83ellqcEQ3TENDeVNOdWt2OEVMbXJraXJzSnl5OFJVWmd4NEZsd3Nr?=
 =?utf-8?B?UDZTRTBneEpINXk4RTYzV1A5cmlKbkpCc1BGTHloZ3NBZzM0cGx2OHhIajlF?=
 =?utf-8?B?ajhwVjRMUERHdjduYTJiUlpVZFBWcTFhR0ZsSGlTNEZodk80UHlLdUttc0k4?=
 =?utf-8?B?NU9FcktUSm1PYjk5UE9NWFNhQ0s3OWdRKytoRndtT0tBenFGYkJ1K0NKa0J5?=
 =?utf-8?B?K3NsVXRpV09YUFN1bFZrWmc2Vk5BblFjZlVZZjdKYUgyZUVTa2pqZXhmdzR1?=
 =?utf-8?B?R05OUzM1UW40TVhReDhXSWpUdmRWeUNtUVZ6TXM5MFl0TmRSc040MHAvZTdy?=
 =?utf-8?B?VDYvdkFLaENPTkpzWXcyMm16K016TmE3RWhuSUM1NDZuM0Nzc0dKN1NncEs0?=
 =?utf-8?B?ZlBva3pRdG5mdEFTTks5eFNDb0ZzV2x4TnZMUU9qYzJMaUllVW1UVSsybk9Z?=
 =?utf-8?B?d1lXeTFQK2pVdDNWWlJRVFJSalEzeXo4TWpjSzRyRnhlQVd6UzBya3hzNG5i?=
 =?utf-8?B?emhhRWp3SERqaFF2NWFJdTQwUk5LTjRHYXhDQ0MwVVQxNk9qNnFhaTJmYWxs?=
 =?utf-8?B?T1lPUkZwVmp1MHAwY1RSTEpsUnhnWVMvM01KbDVZRDZMOTBQWnZhQ0RhcEhl?=
 =?utf-8?B?cHc2aDVya2lPZEowUTJ6bUhKenMwVDNsU3d4SWZDRTVNeUFSa2xUQnlXVzlF?=
 =?utf-8?B?aCtzbktNaVpuTjU1WEFGZjZXUWxFMHY4UU5RZDVLbXVROEUwb2o0WGQ2a1FL?=
 =?utf-8?B?bTl3UHZLVnJld3NJSHU1SXdTVlpmdENkNXpGcnovY0JxOTkzY0VaZVdkSlEy?=
 =?utf-8?Q?tycUimL1/nE=3D?=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UEEyS0JVQkpZZUFRRVFWaCtKZmN2UFVNNUpZWDZGcFpFMXBqWGxDdnVyOUNs?=
 =?utf-8?B?dWpTSXlhcS9YR2ZHR1k1amhDd2FGbnlCNVdoQk9tY1JGeEFrY2d4aFRIbWNN?=
 =?utf-8?B?azk5dFJnYlJFbjZtNDNxUUZ5YkVjZUl1U3FUa0k0RUVGVkd4VyswdFB3QkhM?=
 =?utf-8?B?cmJteCtqaG11dWdsVUtCeGV1cXVScWc0bis5YW1JQUFkMWtoT252Yldyd04y?=
 =?utf-8?B?RUJ6UlVCUFV2Qmg5ZWhpUURRMlVzeHFWUW4vb0ZTSU1KQ05pL0Rxd2Qrczlj?=
 =?utf-8?B?UzgxZkhYc2FYNFZ3Wi9HK3pRUFArLzBmeHZ2UUZOUlYvbHVMVWxpS28rV2RI?=
 =?utf-8?B?VHA1NEthcC95VUl5V29Oa2REbCtod0h4L1BkcWRXTFMvNFZoRnV3aVFBb250?=
 =?utf-8?B?RDlreVBaSi9HcVhBdkI0U092L0dEaGhKV09jWDhxQ2hqSm5acDJzVWZzUFps?=
 =?utf-8?B?Njh3MmtBVnV6Y2FZM202amp4WWtZNjl6cEcvT3ZrYnhldUVXUUhlKzVoME1t?=
 =?utf-8?B?eWNFeHl4SDZYQ3JFUVluZmt1WEZiZG14UnV0anRrYldaZ29QTktDVlovYmN5?=
 =?utf-8?B?NjhabVlJUnVZRUJEVDVTS1JEWDUvK3FyeTl6UVZwb0RpSTRSL01Obnp3dUc0?=
 =?utf-8?B?MjJmd2F6VkFUS0lRcXl5WW96am5vb2ZPR3lXSVZaQ1lQR0R5QzkyeDlBTHlj?=
 =?utf-8?B?QUIrOHNYSFAyczlQOVpuVVVIU1lSY3VReVp0dG92czBDOGpWRFExeDVrMndK?=
 =?utf-8?B?bm9RYnNyZFloSWFObXBpUDRFNk5ScE5FM1NUb0JzcU1CMVlQQzZKMy94ODZl?=
 =?utf-8?B?UTE1ZFNML3N0Wks0QW5jYzQxOEhXL21WcEx4anpQbnNaYWhDUUEwSWhXK1Rh?=
 =?utf-8?B?blhkWEd1NE9BUGJQOUdoQ0trRGt0RHZNZFdPcVlvMVFWeWNHZnM5TzBVamM5?=
 =?utf-8?B?b3JmaDN1V0hzN3dHbUNpQXZPQ01hSUMwRC93U0d6c2huNlBKWHhUU1hRYnFm?=
 =?utf-8?B?c2txZmJXd2RtY3RzZ0s3alJTRmx5dFp5M2QzQ1hzWENwTFZoQzlBd2UwbXR4?=
 =?utf-8?B?Ly9VWWhxRloyaTI2QWp3T2tZOVg5SUlzNUpTcC8xM21GbFk1cEhtdnNKYmhJ?=
 =?utf-8?B?WVVQU09VWjRTbjk1RHE4bmthb1NrRjhYVFovT2pMRHlCOE9lR01Ybnp3Nlcr?=
 =?utf-8?B?NWZ1ZjhEblhqdVZSNkRBVUM0NmpLQkUxeTJDMnc4R3ZIWWMyTnFLT1RtTVd6?=
 =?utf-8?B?dkxxaVVwOXR5TE00b28xSmU4b3lnNDMzU3RVM0JvWXFFMG9wSTZZSi8zbmFB?=
 =?utf-8?B?S3BXa3NEZFNYTC8yZkFjUVFuY01QbUhrakkxa1E5L0Z5K2Y1Vjd0REFwREpP?=
 =?utf-8?B?MlVVZEFJTHdwUXhuOWEyQnBmdXJ0VjNuVFYwR255bkRtbk9GcFdVOERxNTcw?=
 =?utf-8?B?bFQ4UjRLVkRsQmZCOFBXTEQxMm1YZ3B3S3pVMjJGeFBvTFd2Nm45VDM1ZVBI?=
 =?utf-8?B?dXBxZ2lCUFkyeTdWQ1UzZVpiZ09aY0p4NTRjTmlKTy9BTnNWYXBONzhXUkhy?=
 =?utf-8?B?Y3dqazJzLzNWcjQ3aGxrOFQ4eWxDNEFPSDJ3Y05selJXaUpneUpxa2Z4ZTdk?=
 =?utf-8?B?Lzl1RERwT1VlbkVacll5OHd2bmhJaDdMaHlSUHpncFQvc3VEUFV5MGp3dzFq?=
 =?utf-8?B?SmdvdVpIOCs1eisyaE85bVNBZXhtV2R3TlVVNEI1cHRLZFVyZlo0Q0dXR2Vn?=
 =?utf-8?B?YzVyeU5FYVM0UDQ4UHR4d2VQaTVqQXRsMmZzWjZ5VWhFNWJULys0ZCtTaVUx?=
 =?utf-8?B?MG1lOU1nQ1ljTXEzTUZ2cGEwY0lEVThrS2M5THk2bzNQNjl6cysrcWhVOXE0?=
 =?utf-8?B?azFCbGhDREVIaVBHS3gvR1FWb056TC94WG5GRlludFplSUZFTFpLZHJXK2FG?=
 =?utf-8?B?eWNYYnIxWGNUdVBqZk81a1NkVzZMQi9IUExtQktKMjYwM0Voa0VGZ0hYMlJk?=
 =?utf-8?B?QUg1L2dKbGlkR0dVWW1PM3pjRjgrT3pDTWx6YUQ2SnZsTlNjWnVWQ2I4Y09o?=
 =?utf-8?B?U2VwTXVWM0cyUWtxM1VFTS9nUkk4bzRkOFZHNHZOMTRRT3V2eUlGcEN0cmFS?=
 =?utf-8?Q?i8dHsJmgx1Its2ipbZCv7EjAi?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: 9d1fecdd-5592-4303-2ff9-08ddc5e41b44
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jul 2025 10:16:05.6611
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5280104a-472d-4538-9ccf-1e1d0efe8b1b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: d0f+5wf0GbyvtXEjfC7banVcW9vDF/HvamL/BKUCtaaXIHpmbd10rUwNOVrSZ2Ipn7513k9o1qJhycavF/gOXw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO3P123MB3129
X-OriginatorOrg: amazon.co.uk

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgPHdpbi1w
di1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnPiBPbiBCZWhhbGYNCj4gT2YgVHUg
RGluaA0KPiBTZW50OiBGcmlkYXksIEp1bHkgMTgsIDIwMjUgMTA6NTkgQU0NCj4gVG86IHdpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogVHUgRGluaCA8bmdvYy10dS5kaW5o
QHZhdGVzLnRlY2g+OyBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNsb3VkLmNvbT47DQo+IER1cnJh
bnQsIFBhdWwgPHBkdXJyYW50QGFtYXpvbi5jby51az4NCj4gU3ViamVjdDogW0VYVEVSTkFMXSBb
UEFUQ0ggdjJdIEZpeCBmYWlsdXJlIGNsZWFudXAgaW4gRXZ0Y2huRmlmb0FjcXVpcmUNCj4gDQo+
IENBVVRJT046IFRoaXMgZW1haWwgb3JpZ2luYXRlZCBmcm9tIG91dHNpZGUgb2YgdGhlIG9yZ2Fu
aXphdGlvbi4gRG8gbm90DQo+IGNsaWNrIGxpbmtzIG9yIG9wZW4gYXR0YWNobWVudHMgdW5sZXNz
IHlvdSBjYW4gY29uZmlybSB0aGUgc2VuZGVyIGFuZCBrbm93DQo+IHRoZSBjb250ZW50IGlzIHNh
ZmUuDQo+IA0KPiANCj4gDQo+IFRoZSBjdXJyZW50IGluZGV4IGlzIGluY3JlbWVudGVkIGJlZm9y
ZSBjaGVja2luZyBmb3IgZmFpbHVyZToNCj4gDQo+ICAgICB3aGlsZSAoSW5kZXggPCBQcm9jZXNz
b3JDb3VudCkgew0KPiAgICAgICAgIEluZGV4Kys7DQo+ICAgICAgICAgWy4uLl0NCj4gICAgICAg
ICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkNCj4gICAgICAgICAgICAgZ290byBmYWlsMTsNCj4g
ICAgICAgICBDb250ZXh0LT5Db250cm9sQmxvY2tNZGxbdmNwdV9pZF0gPSBNZGw7DQo+ICAgICB9
DQo+IA0KPiBNYWtlIHRoZSBtYWluIGxvb3AgYSBub3JtYWwgZm9yIGxvb3AgdG8gYXZvaWQgY2Fs
bGluZyBfX0ZyZWVQYWdlIG9uDQo+IGludmFsaWQgUE1ETHMuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5
OiBUdSBEaW5oIDxuZ29jLXR1LmRpbmhAdmF0ZXMudGVjaD4NCj4gLS0tDQo+ICBzcmMveGVuYnVz
L2V2dGNobl9maWZvLmMgfCA1ICstLS0tDQo+ICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o
KyksIDQgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbmJ1cy9ldnRjaG5f
Zmlmby5jIGIvc3JjL3hlbmJ1cy9ldnRjaG5fZmlmby5jDQo+IGluZGV4IDExMzdkZWEuLmZkMDZl
ZjQgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW5idXMvZXZ0Y2huX2ZpZm8uYw0KPiArKysgYi9zcmMv
eGVuYnVzL2V2dGNobl9maWZvLmMNCj4gQEAgLTUwMiwxNiArNTAyLDEzIEBAIEV2dGNobkZpZm9B
Y3F1aXJlKA0KPiANCj4gICAgICBQcm9jZXNzb3JDb3VudCA9DQo+IEtlUXVlcnlNYXhpbXVtUHJv
Y2Vzc29yQ291bnRFeChBTExfUFJPQ0VTU09SX0dST1VQUyk7DQo+IA0KPiAtICAgIEluZGV4ID0g
MDsNCj4gLSAgICB3aGlsZSAoSW5kZXggPCBQcm9jZXNzb3JDb3VudCkgew0KPiArICAgIGZvciAo
SW5kZXggPSAwOyBJbmRleCA8IFByb2Nlc3NvckNvdW50OyBJbmRleCsrKSB7DQoNClByZXZhaWxp
bmcgc3R5bGUgdXNlcyB3aGlsZSBsb29wcyBJIHRoaW5rIHNvIHN0aWNrIHdpdGggdGhhdCBmb3Ig
Y29uc2lzdGVuY3ksIGp1c3QgbW92ZSB0aGUgaW5jcmVtZW50IGRvd24uDQoNCj4gICAgICAgICAg
dW5zaWduZWQgaW50ICAgICAgICB2Y3B1X2lkOw0KPiAgICAgICAgICBQRk5fTlVNQkVSICAgICAg
ICAgIFBmbjsNCj4gICAgICAgICAgUEhZU0lDQUxfQUREUkVTUyAgICBBZGRyZXNzOw0KPiANCj4g
ICAgICAgICAgc3RhdHVzID0gU3lzdGVtUHJvY2Vzc29yVmNwdUlkKEluZGV4LCAmdmNwdV9pZCk7
DQo+IA0KPiAtICAgICAgICBJbmRleCsrOw0KPiAtDQo+ICAgICAgICAgIGlmIChzdGF0dXMgPT0g
U1RBVFVTX05PVF9TVVBQT1JURUQpDQo+ICAgICAgICAgICAgICBjb250aW51ZTsNCj4gDQo+IC0t
DQo+IDIuNTAuMS53aW5kb3dzLjENCj4gDQo+IA0KPiANCj4gTmdvYyBUdSBEaW5oIHwgVmF0ZXMg
WENQLW5nIERldmVsb3Blcg0KPiANCj4gWENQLW5nICYgWGVuIE9yY2hlc3RyYSAtIFZhdGVzIHNv
bHV0aW9ucw0KPiANCj4gd2ViOiBodHRwczovL3ZhdGVzLnRlY2gNCj4gDQoNCg==


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 18 10:54:24 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 18 Jul 2025 10:54:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1048450.1418677 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ucijO-00079d-ER; Fri, 18 Jul 2025 10:54:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1048450.1418677; Fri, 18 Jul 2025 10:54:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ucijO-00079W-BO; Fri, 18 Jul 2025 10:54:22 +0000
Received: by outflank-mailman (input) for mailman id 1048450;
 Fri, 18 Jul 2025 10:54:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=51dp=Z7=bounce.vates.tech=bounce-md_30504962.687a27d8.v1-42ac608534724f44889380070e152b81@srs-se1.protection.inumbo.net>)
 id 1ucijM-00079Q-Uk
 for win-pv-devel@lists.xenproject.org; Fri, 18 Jul 2025 10:54:21 +0000
Received: from mail13.wdc04.mandrillapp.com (mail13.wdc04.mandrillapp.com
 [205.201.139.13]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8d317eb5-63c5-11f0-b894-0df219b8e170;
 Fri, 18 Jul 2025 12:54:18 +0200 (CEST)
Received: from pmta16.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail13.wdc04.mandrillapp.com (Mailchimp) with ESMTP id 4bk69h6sR6zNCdCdv
 for <win-pv-devel@lists.xenproject.org>; Fri, 18 Jul 2025 10:54:16 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 42ac608534724f44889380070e152b81; Fri, 18 Jul 2025 10:54:16 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8d317eb5-63c5-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1752836057; x=1753106057;
	bh=XuOwtPEAA8PtwtZ97WwKzoKVrvcAiWuAJAXvIy3NJao=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=nkA0Z7UKoNFCtIzcwazMkTIPdbL2aF5c5HTWZUqEv02v5WcPC6VqsV6Q6SqUUpVre
	 UmwPthX+h7vY2txYocfigrHAMQeW5rFNGsa3bPvgF83BVsVJWup+AnECzrrl1hsvYL
	 DrsTf/D1ewYAFfil8N0JcFwUV1AnakRj/YHmAcpV7qC012edi9CkKcFsXJ8Rzd0Y9w
	 fwcZougp5Y+MTiQLAzuUMGQbDVipewKYKqlUQMgCeUGydWZ71DfgR89i0QqO5JXOyT
	 egRQmQ4x/0iRZsCQqZZn9ArriCl0PhmfEk0ghEAoYABNxMNIXp3pHULMqwqONeN+Wx
	 +mMB+F6gcHS+g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1752836057; x=1753096557; i=ngoc-tu.dinh@vates.tech;
	bh=XuOwtPEAA8PtwtZ97WwKzoKVrvcAiWuAJAXvIy3NJao=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=R2VY58WdhKKeEMBC/dK5zAvLQ63PMdEyRGGhMNHdC2OMPJycKoFmYDSQU5mCv5FE1
	 rK4zFODjzpA0GoDzGsbfg7+fxhKvOca4BE53bLQTqGtklEsd//6a44Z31+jN65ngkJ
	 QbOWqlgw2VS+TTQJuXYGwTZ9OAEN8RQvbgeh5fz+GCKu/IevLoclsZaHdcqbRe60j6
	 TaFPX91Bu9y5ntIr/kATx5IW8a63QPqwYyawzjNLwae60MOYtFsRsJsb4zZtYIIs4W
	 x5ddxuuTejjH3e/g3s+8pPq3sdDRxqLuqNsIYLlNcE6S+5cHYxoNsFaKRZQ6gCkGnU
	 JvZ8kwojnk//A==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v2]=20Fix=20failure=20cleanup=20in=20EvtchnFifoAcquire?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1752836055385
Message-Id: <031b3fda-7a0e-4e91-bd17-35cfed364f24@vates.tech>
To: "Durrant, Paul" <pdurrant@amazon.co.uk>, win-pv-devel@lists.xenproject.org
Cc: "Owen Smith" <owen.smith@cloud.com>
References: <20250718095831.1580-1-ngoc-tu.dinh@vates.tech> <LO2P123MB47664A882CFBEF3895A8028CE450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM>
In-Reply-To: <LO2P123MB47664A882CFBEF3895A8028CE450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.42ac608534724f44889380070e152b81?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250718:md
Date: Fri, 18 Jul 2025 10:54:16 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On 18/07/2025 12:16, Durrant, Paul wrote:
>> -----Original Message-----
>> From: win-pv-devel <win-pv-devel-bounces@lists.xenproject.org> On Behalf
>> Of Tu Dinh
>> Sent: Friday, July 18, 2025 10:59 AM
>> To: win-pv-devel@lists.xenproject.org
>> Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>; Owen Smith <owen.smith@cloud.com>;
>> Durrant, Paul <pdurrant@amazon.co.uk>
>> Subject: [EXTERNAL] [PATCH v2] Fix failure cleanup in EvtchnFifoAcquire
>>
>> CAUTION: This email originated from outside of the organization. Do not
>> click links or open attachments unless you can confirm the sender and know
>> the content is safe.
>>
>>
>>
>> The current index is incremented before checking for failure:
>>
>>      while (Index < ProcessorCount) {
>>          Index++;
>>          [...]
>>          if (!NT_SUCCESS(status))
>>              goto fail1;
>>          Context->ControlBlockMdl[vcpu_id] = Mdl;
>>      }
>>
>> Make the main loop a normal for loop to avoid calling __FreePage on
>> invalid PMDLs.
>>
>> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
>> ---
>>   src/xenbus/evtchn_fifo.c | 5 +----
>>   1 file changed, 1 insertion(+), 4 deletions(-)
>>
>> diff --git a/src/xenbus/evtchn_fifo.c b/src/xenbus/evtchn_fifo.c
>> index 1137dea..fd06ef4 100644
>> --- a/src/xenbus/evtchn_fifo.c
>> +++ b/src/xenbus/evtchn_fifo.c
>> @@ -502,16 +502,13 @@ EvtchnFifoAcquire(
>>
>>       ProcessorCount =
>> KeQueryMaximumProcessorCountEx(ALL_PROCESSOR_GROUPS);
>>
>> -    Index = 0;
>> -    while (Index < ProcessorCount) {
>> +    for (Index = 0; Index < ProcessorCount; Index++) {
> 
> Prevailing style uses while loops I think so stick with that for consistency, just move the increment down.

I don't see how the increment could be moved down without breaking the 
index skip when SystemProcessorVcpuId() == STATUS_NOT_SUPPORTED.

I also find the while loop usage in EvtchnFifoAcquire very confusing, 
and it was the cause of the cleanup bug in the first place. So I'd 
prefer to make it more idiomatic this way.

> 
>>           unsigned int        vcpu_id;
>>           PFN_NUMBER          Pfn;
>>           PHYSICAL_ADDRESS    Address;
>>
>>           status = SystemProcessorVcpuId(Index, &vcpu_id);
>>
>> -        Index++;
>> -
>>           if (status == STATUS_NOT_SUPPORTED)
>>               continue;
>>
>> --
>> 2.50.1.windows.1
>>
>>
>>
>> Ngoc Tu Dinh | Vates XCP-ng Developer
>>
>> XCP-ng & Xen Orchestra - Vates solutions
>>
>> web: https://vates.tech
>>
> 



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Fri Jul 18 11:08:33 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 18 Jul 2025 11:08:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1048508.1418730 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ucix6-0003VJ-P8; Fri, 18 Jul 2025 11:08:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1048508.1418730; Fri, 18 Jul 2025 11:08:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ucix6-0003VC-MO; Fri, 18 Jul 2025 11:08:32 +0000
Received: by outflank-mailman (input) for mailman id 1048508;
 Fri, 18 Jul 2025 11:08:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9911=Z7=amazon.co.uk=prvs=2879db4ba=pdurrant@srs-se1.protection.inumbo.net>)
 id 1ucix5-0003V6-En
 for win-pv-devel@lists.xenproject.org; Fri, 18 Jul 2025 11:08:31 +0000
Received: from smtp-fw-80006.amazon.com (smtp-fw-80006.amazon.com
 [99.78.197.217]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 87e1708b-63c7-11f0-b894-0df219b8e170;
 Fri, 18 Jul 2025 13:08:29 +0200 (CEST)
Received: from pdx4-co-svc-p1-lb2-vlan3.amazon.com (HELO
 smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.25.36.214])
 by smtp-border-fw-80006.pdx80.corp.amazon.com with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jul 2025 11:08:25 +0000
Received: from EX19MTAEUB002.ant.amazon.com [10.0.10.100:24166]
 by smtpin.naws.eu-west-1.prod.farcaster.email.amazon.dev [10.0.32.138:2525]
 with esmtp (Farcaster)
 id 477fcd6e-a825-4eb8-be93-953469fecf11; Fri, 18 Jul 2025 11:08:23 +0000 (UTC)
Received: from EX19EXOEUC001.ant.amazon.com (10.252.51.133) by
 EX19MTAEUB002.ant.amazon.com (10.252.51.79) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1544.14;
 Fri, 18 Jul 2025 11:08:23 +0000
Received: from LO3P265CU004.outbound.protection.outlook.com (10.252.51.199) by
 EX19EXOEUC001.ant.amazon.com (10.252.51.133) with Microsoft SMTP
 Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1544.14
 via Frontend Transport; Fri, 18 Jul 2025 11:08:22 +0000
Received: from LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1e2::5)
 by LO0P123MB6800.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:30e::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8943.25; Fri, 18 Jul
 2025 11:08:15 +0000
Received: from LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM
 ([fe80::6d99:efc8:6d56:b029]) by LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM
 ([fe80::6d99:efc8:6d56:b029%6]) with mapi id 15.20.8943.024; Fri, 18 Jul 2025
 11:08:15 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 87e1708b-63c7-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.co.uk; i=@amazon.co.uk; q=dns/txt;
  s=amazoncorp2; t=1752836909; x=1784372909;
  h=from:to:cc:date:message-id:references:in-reply-to:
   content-transfer-encoding:mime-version:subject;
  bh=kpFNK/o9XK9sECRPFDQMwAob4j5MQTj/xb8m833A4MQ=;
  b=MdfQX1l+OaToXwC01JbCBn1G39nFOJrmSfJC7pjWZIpSzaodJEr2CL+1
   vmX/gdO7BB8q4TZ8HVOHqYpzdLfZWGCLOPNMhrBqLcfUPZoCsA7DoUond
   7BWqp3/68ZuSYobVcaIFGjpxtaDPPoUo4m/yRLghv92VagIUnxwOyAI/Q
   6VBqOKSG16/2xmsbdHdwhCCvSs5bd5CpGTATwIaJC9QBLaSNnxmnDnvDH
   pxAW7KbNxhbc7mUwkCpFg0jAmjWlfG8cjxSlLfokVhNrIj+jXzrMn6gDB
   F6OPL3cS+IGtA69pe9JGHOoWrnTRJcRA1g0YVf4Lnduc+7rDSvtNZgrTR
   w==;
X-IronPort-AV: E=Sophos;i="6.16,321,1744070400"; 
   d="scan'208";a="69524104"
Subject: RE: [PATCH v2] Fix failure cleanup in EvtchnFifoAcquire
Thread-Topic: [PATCH v2] Fix failure cleanup in EvtchnFifoAcquire
X-Farcaster-Flow-ID: 477fcd6e-a825-4eb8-be93-953469fecf11
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bZXVWWGd1nnYYKPVeOZyo5iRdskQIQ2GUpcf1bEvE+m9gd4mk4FujU4z/iYz0b22s/IdTTa828AifYoMyd0uFsYEg8Z5k4TigXXXYeLaRezOUdUxyGCeV4ArL63pVnX7Xz6lbpY3sCzLy4IYuQv7GmYIaqI0FwGTux3IurVj21OvQZe3EoxwXV9N96JjUHBrLfxcn1pF1Ptqf893CG63ZVc1X/nCzZCXa1QCH+xUgdBp9Cw8BtzpLgJR5feZHrWl2xbYTVUV1GkR3BJScLewrQ1aycqkq/3PjdmVQIcOLDJcocI6wqmdbDEXFa8cxaMVmoW494nONIFbeENxzbxQgQ==
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=kpFNK/o9XK9sECRPFDQMwAob4j5MQTj/xb8m833A4MQ=;
 b=opreFJy79rDAvNaAZWHncxBGHwn8+kdgEbo3iJi9tie/aznZgOTNQC/imbFw08PYyyGGl6JTSIt1coVVrMtTnDqX3mnHVyqJVuyyr4I9aQCk/4QMTOa7zzgqjcpz4W8vjnyqn5C+ucVgQj95OGVYKHTDz+Ac01/h6HeITkeadxAj71kZvf2yEPPacxN0YkdZIg8bk292olLYOmFypJwowR93zxxzo/pmN3Oh0XL3h+1ob5pLp0hjm+QQhLjBJZN4Xk78RLd+r0DMo8hv8VWPVVGqnCG4vna8RHn6HUD6TFskcOxEXPJUq8BqMhbZqDeTBDfP2DRXTYIvztVpvX/Mig==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=amazon.co.uk; dmarc=pass action=none header.from=amazon.co.uk;
 dkim=pass header.d=amazon.co.uk; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=amazon.onmicrosoft.com; s=selector2-amazon-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kpFNK/o9XK9sECRPFDQMwAob4j5MQTj/xb8m833A4MQ=;
 b=SG0zcRlxZ8AccajpscjoLValF7t9yWOaSAxYPSBc5y+En9L2xPhOR1O6r4+/kGB2Ne8YAB8AEvw6oNCGzo8phegddP5Dk21DqKZWLOat7GcTa41MG7t8oUq73eBG4rfiCHWLQHZAFQ6g5QiWLEdpINIa8HMEjq7pOKBcv9wOfpM=
From: "Durrant, Paul" <pdurrant@amazon.co.uk>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
CC: Owen Smith <owen.smith@cloud.com>
Thread-Index: AQHb98qO3ZMDHqfNrUamuEX8SjeBh7Q3qlrggAAKrACAAAOLQA==
Date: Fri, 18 Jul 2025 11:08:15 +0000
Message-ID: <LO2P123MB4766EA84E35DADB1C76B9F4DE450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM>
References: <20250718095831.1580-1-ngoc-tu.dinh@vates.tech>
 <LO2P123MB47664A882CFBEF3895A8028CE450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM>
 <031b3fda-7a0e-4e91-bd17-35cfed364f24@vates.tech>
In-Reply-To: <031b3fda-7a0e-4e91-bd17-35cfed364f24@vates.tech>
Accept-Language: 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=amazon.co.uk;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LO2P123MB4766:EE_|LO0P123MB6800:EE_
x-ms-office365-filtering-correlation-id: 0c63750a-fe5b-4635-136d-08ddc5eb64e6
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|13003099007|38070700018;
x-microsoft-antispam-message-info: =?utf-8?B?UzNHVUdwVGNqTFZMK1hoa0lmN1FLL3VIZ2hDWjQ1bnRwS0pwUkZ1c085UmFa?=
 =?utf-8?B?OHp2a3pTb1BUditVV2E3Y2Y0b3ZTRFc2ZTBXNWhGMW8zTUQ1Ulh4WE0vVzVh?=
 =?utf-8?B?aklYUlppWkEyL3gxbUY0Rjc0MFNrMXViQnQwM2FQZkNLazFYQzJJaVNjTHBj?=
 =?utf-8?B?N2ppbnhsa0JuczZUeGxaU0xXS0k0aGVNOTJiMXplNXBjQlQwYUVsU2xhZUlT?=
 =?utf-8?B?NVQwQ3d6d3pQQzkvcU1QbDltV3VyZ2dOTnl4SHlIUHFHYlNyVWc5Yk1HL25h?=
 =?utf-8?B?aWVNRVJLR0dUcENYYUd3ME90NjVxdG02YStpWk8walVYSlBlSDZrc1Yyclo5?=
 =?utf-8?B?UC95L1BTMG1aMTlSMVd6ZmFYSVZ5VGRCNUErSExDNDhJR0pQRmovTDhiTmhv?=
 =?utf-8?B?TGgzVXhsMk5NQUtLQmJKZGtUd1JWUUtRekxCZ2pmdVVqeElBT1JLSXphcnBY?=
 =?utf-8?B?c3lRZHZJMVZReitHeldFd1BSSjcxaFJDMWpvM1NHOWRNZ1RVYmxhRGVkOW81?=
 =?utf-8?B?N0NPb1llTEo5MjIrbjV5d2FFQ3lwcG14a0tQSFZ5eVlDcUd1bEx2bG1DV2dE?=
 =?utf-8?B?Q0pLeENwZlFhK3VCWTRnUGh6bGtVUUVGZWJjSTJhQS95dzQzL0lkcFZSN0Zl?=
 =?utf-8?B?ODRCdjVxU2xmd096bFlpaytycmQycU1TK3dVaEdnYkhucmo4YVNWY0RJcnB3?=
 =?utf-8?B?ZmMxdkNNNXZueGV5WkpSdWUxd094T25lYlprUWRFaXZrOEwxWEg4RjU4MTNt?=
 =?utf-8?B?YW1oVTR4bnlMYkVzMFk1ZCtXUHM0SmVqNTEvWUUwZUFsMTlmL3Y0SUxmemtv?=
 =?utf-8?B?UXZ6VEM2ZForeUsySVpoV3JHZU82cERUMzZmUUM4cGZwQjBhc21QVUZoOCtL?=
 =?utf-8?B?T3ZGbk12ZW9tSHJacXIwTGJPWWNSelFDWVNYZzJUNXN2RjJKazhjVGMyM2w5?=
 =?utf-8?B?RzJLMDNxVy9SWHpYM1NlRWlpOEIxY3FTNlVKamRBVGdpZ0xHZFkxdEpJT3J4?=
 =?utf-8?B?NUQ5YTFhRHJINWhvY0lqYjlYQ0EzdDRkUzdmMnQ3S2pIWnVCS2E3bEwwZHEz?=
 =?utf-8?B?ZzhESGtpZzdyQXVSck1WTXhidjRka0M0aWpDMnkwRW5PQmYxVXJjSzFKazF4?=
 =?utf-8?B?Smg0S1hnNHU0SHJJSDlhYzRhRmJFMTZJYkhwZXdjUlcwV0dDUDc1QlRMNzRK?=
 =?utf-8?B?M0h3RlNiVEg3d2lpRVhPQzBxOTIyKzlVZ3dkc1gzUE8vMnlGZTBWVTQwaElP?=
 =?utf-8?B?ZE5vdWZJUjNXSHFjVmxmQVV4MU9RT3BBVWVxMUJ0ZWl1TWYzSk9OZjg3RnAw?=
 =?utf-8?B?VkM2WVp5R2Z5UTdURVBzTjdMRUMzakxmeStXUDVDdzBFVXJ4OU1EcGNsT1Z4?=
 =?utf-8?B?ZUFqTXZESWE1b3JleE03SlhpcnZlMzU4UVkyMnFSY2Y5UHZ6UEZNMmdHVjRz?=
 =?utf-8?B?cFJoTW9hRVFqKzlWcXVIMW90eVNidTVVSFhTTFdUTXYyOG54OEZSNEJ6amZL?=
 =?utf-8?B?YnBSM2tIWG1ucUNsTmYySXVGcThxNHp6NTkycE80czdRSitFelBpa0tJaklm?=
 =?utf-8?B?bXFsaW80Y0lZaGM3QTRESE9ucy9HcC9sSElBd2JUVVVwYWNUV3BqRkdGWWlK?=
 =?utf-8?B?azBpdVRSVlZESWdVRVE4SnVmaXJkMzdoRFdFRGRhc1hZQkc4UzRiYXczVUwy?=
 =?utf-8?B?c0pqRTlCWVYxL2FiaW5ZR21KVzllRUQ0Wk9KY2xFR203Q2lRUm41dnZ6MHJE?=
 =?utf-8?B?aWVxS3Rta3VXaE5BMThPam4rcFBtYkJEYjBFcWZURS9wV09rMEtuamF0YTRq?=
 =?utf-8?B?bzJuVW80UnpjMCtmbzgzUlhrTUFIS2hzVzNwUVFKbTluZjEzZk43WVZRNHFh?=
 =?utf-8?B?SFVIZXpwemRjQVplelA5Rmc5a1pWYUp1bEoxVzVybkZ4TlpZdHdHRGdwV1ll?=
 =?utf-8?Q?LAwlNqjF0k8=3D?=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(13003099007)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SERZdHc4SUhEdEZtK1pLYnY3SUpZUGoydHhqMDBqSWpmbXFYc1RzeXJrRS9o?=
 =?utf-8?B?enBPOGtJK2NKemY0MU05WWZYZm03T2ZwSkVKeG5ab1J1cHZYbnZ3a2p0Nzh0?=
 =?utf-8?B?TkczVTJ3K2dIOEY3TlVJVmVwL0VlTko5cmxjSkl2TzRQT1lqNnFzUVJvMVJV?=
 =?utf-8?B?amVEZExFSEtQNzJSb2Q5cE5UdlozNjlBSVd1NzhNWU4zcWdRTFJrZ2o2c1Zs?=
 =?utf-8?B?b0xHUjVGdHc2aFArR0xuYzRhT3dUbzZ0eDhVaFRONUhHbzRqRVE3bmlmRk9n?=
 =?utf-8?B?SHlhdTdKbzVUYVBVRHZ6R1JNdUxzQllNNHJVbkhTKzVUUEpEUFdHOVdQbnF6?=
 =?utf-8?B?ZUVSeTVvNlpDZVBRM3VYZGVBUVgzWHIzUVNkSys4WXNJS1Ayb0grMzdFUVNh?=
 =?utf-8?B?ZXNhOERUNy9nVm50Nm5Hb3dhcUUzUTBPelI0eGNuKzVKL0FnV1oyMzhhQ205?=
 =?utf-8?B?QUZqZXErelhFSVBRTHpWMitlUUlCeE83TElJRWF6R1JJTDlQRlZBcEZaR2lw?=
 =?utf-8?B?YnNDVmFEWEtIWEhjNmNVU3NYZkpNckNlZndhQ0lPeEVOZTBsN2R0TWdWb1Uv?=
 =?utf-8?B?Y0pNUjl1eVM5UXVkV1FwN25hK0Z1UmdCTWxzRnRobGRMUjlwaVFPYWVNKzdG?=
 =?utf-8?B?MG5STE1DQ3orZDc3b3VQTjlDb3pwR0Q3SklnTGgyT0lFc2ttMXNSWTFRNTVG?=
 =?utf-8?B?bi95aWIrcitETG1nVWNxSDBEVVppVHVqODFIblpEYlFaTFNHbEErRVBoemlp?=
 =?utf-8?B?ZE1SRndCR0tzd2RUVmIvV2Q1cWwxZGcyZXcybmdTbkJhTjQ0Qkt3QlhNQlZr?=
 =?utf-8?B?TTV4OG5WTmtQZ2FJaUxMOERYY0dkWlJycWorRWhlRjdvSHBROEJwT0s2b2xr?=
 =?utf-8?B?R3d0d2Rqek1kQnhMV2lDVWVuSzFlVktlcHdpSFNwbmJRa21MMElDWXRld2wz?=
 =?utf-8?B?clJjOGdXZittZUlkMG5hc2JLZlUwaXkzc29qRzFrNkR0bXhuM0MxRlBvd0lZ?=
 =?utf-8?B?QWk4emN3UVd6c0RvQzRVWW5kaEtya2VjcTNQRmdIVUZHbGFnRmtjdVN1Z0gz?=
 =?utf-8?B?clQxY3p5aVBPSlk5TW9PUXZmSzN3S2o4MERnL1pUVHpDeW0vV1A3YTNNV08y?=
 =?utf-8?B?RHZSWC9oRGwyWUNONzIxSy9pSnFhMDhPamFnVS9rTnhKT2V3ZXB2LzdHbFB0?=
 =?utf-8?B?Q3d2TnpGdzQxbXhjQStLcFppK3RmYWJEbTI5em1MTHRhOUZkb3c2Wm9qbHQ0?=
 =?utf-8?B?MWdjeGdUZmt5WGZabGFaVTJXck5yUzNJa25haTB5aG4zNXM4WmN0R3RQdFc2?=
 =?utf-8?B?MG1tZ1YxQVh5Mnlqem5KL1RWOWxnMmZkbWl3WTlxMTN0dnZaOW8xLzViMG1a?=
 =?utf-8?B?alpzT09ZT05PS1ovMmFrUlV0RjZQRzg2RDBhZkRpU1lkdTRsdEZ2NkgraDBS?=
 =?utf-8?B?dVE0MllSNWpQWDJuclk3OXJGUDZBa3UrellLUTU0WitYd29VMzdtMHpyeDhl?=
 =?utf-8?B?SEtBVVpXQVRUSnFoOUUxMDdXMGNtRmpPcUxtZkRPZnlVRyt2WEpDclFFcDFm?=
 =?utf-8?B?TTlmdnNPZE5YTlVFVDlOSVRNNE42aWhLWjhlT0J6bXA2ZEpGQnZDd1dwZFox?=
 =?utf-8?B?SUZJRE1QTzNnTE5BaU15WlFlVVVzOW00eFV6MXd4bGhyK1ZZSnZWTldhT1Vv?=
 =?utf-8?B?NVY4cUJoWGhsbmc3U2Q2Nk5BV1pXNEg4b244VU8yKzZMYUFCbTcrRFV0YlJV?=
 =?utf-8?B?VDY2Z1Y3eXFpNjhpNkJjZTZzOUE2ZWhVVGFVTTlEcnRZWnhBZFI2VDY3dFh6?=
 =?utf-8?B?dkZWd25Ba21Xa3c5Rkc0RXNYaFJLUkdjSElrWmVLVjFLcDRBbkIrOUhyRUtE?=
 =?utf-8?B?cUJ1NzVsd3V0UFczUXZ6TkIvSTdsQUlyT05DUjZDMmFNVkRrN2s5VnZrdDJM?=
 =?utf-8?B?Y1JaYXZYdktKRGhRNW0xanVMODFDeHpDaW1vWGQ1OUFPYk04MytJa2E3RFBJ?=
 =?utf-8?B?OURBN1NWUk5XZWFpaWVjaVNnQ1VUNnVOaFdiMm5jMmdRTGpVdm9oWmtjcVdN?=
 =?utf-8?B?Ung5bGJqR2ljY3BadUlpMWYzUm5NaXdta2RoRUdtNWhsR3ZlbXRlYTRJNU1s?=
 =?utf-8?Q?mmlVvA3qRSkhshmABaEhzP77G?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: 0c63750a-fe5b-4635-136d-08ddc5eb64e6
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jul 2025 11:08:15.6778
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5280104a-472d-4538-9ccf-1e1d0efe8b1b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: OPH9i85Qna1j7eyd13apHTM6kmZAOnPrSF0RHMVJChU3WYAjhOKnVE6+VDdjqhAEQgZBNjsrDgQf1T39SjpecQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO0P123MB6800
X-OriginatorOrg: amazon.co.uk

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBUdSBEaW5oIDxuZ29jLXR1LmRp
bmhAdmF0ZXMudGVjaD4NCj4gU2VudDogRnJpZGF5LCBKdWx5IDE4LCAyMDI1IDExOjU0IEFNDQo+
IFRvOiBEdXJyYW50LCBQYXVsIDxwZHVycmFudEBhbWF6b24uY28udWs+OyB3aW4tcHYtDQo+IGRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNs
b3VkLmNvbT4NCj4gU3ViamVjdDogUkU6IFtFWFRFUk5BTF0gW1BBVENIIHYyXSBGaXggZmFpbHVy
ZSBjbGVhbnVwIGluDQo+IEV2dGNobkZpZm9BY3F1aXJlDQo+IA0KPiBDQVVUSU9OOiBUaGlzIGVt
YWlsIG9yaWdpbmF0ZWQgZnJvbSBvdXRzaWRlIG9mIHRoZSBvcmdhbml6YXRpb24uIERvIG5vdA0K
PiBjbGljayBsaW5rcyBvciBvcGVuIGF0dGFjaG1lbnRzIHVubGVzcyB5b3UgY2FuIGNvbmZpcm0g
dGhlIHNlbmRlciBhbmQga25vdw0KPiB0aGUgY29udGVudCBpcyBzYWZlLg0KPiANCj4gDQo+IA0K
PiBPbiAxOC8wNy8yMDI1IDEyOjE2LCBEdXJyYW50LCBQYXVsIHdyb3RlOg0KPiA+PiAtLS0tLU9y
aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiB3aW4tcHYtZGV2ZWwgPHdpbi1wdi1kZXZl
bC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnPiBPbg0KPiBCZWhhbGYNCj4gPj4gT2YgVHUg
RGluaA0KPiA+PiBTZW50OiBGcmlkYXksIEp1bHkgMTgsIDIwMjUgMTA6NTkgQU0NCj4gPj4gVG86
IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiA+PiBDYzogVHUgRGluaCA8bmdv
Yy10dS5kaW5oQHZhdGVzLnRlY2g+OyBPd2VuIFNtaXRoDQo+IDxvd2VuLnNtaXRoQGNsb3VkLmNv
bT47DQo+ID4+IER1cnJhbnQsIFBhdWwgPHBkdXJyYW50QGFtYXpvbi5jby51az4NCj4gPj4gU3Vi
amVjdDogW0VYVEVSTkFMXSBbUEFUQ0ggdjJdIEZpeCBmYWlsdXJlIGNsZWFudXAgaW4gRXZ0Y2hu
Rmlmb0FjcXVpcmUNCj4gPj4NCj4gPj4gQ0FVVElPTjogVGhpcyBlbWFpbCBvcmlnaW5hdGVkIGZy
b20gb3V0c2lkZSBvZiB0aGUgb3JnYW5pemF0aW9uLiBEbyBub3QNCj4gPj4gY2xpY2sgbGlua3Mg
b3Igb3BlbiBhdHRhY2htZW50cyB1bmxlc3MgeW91IGNhbiBjb25maXJtIHRoZSBzZW5kZXIgYW5k
DQo+IGtub3cNCj4gPj4gdGhlIGNvbnRlbnQgaXMgc2FmZS4NCj4gPj4NCj4gPj4NCj4gPj4NCj4g
Pj4gVGhlIGN1cnJlbnQgaW5kZXggaXMgaW5jcmVtZW50ZWQgYmVmb3JlIGNoZWNraW5nIGZvciBm
YWlsdXJlOg0KPiA+Pg0KPiA+PiAgICAgIHdoaWxlIChJbmRleCA8IFByb2Nlc3NvckNvdW50KSB7
DQo+ID4+ICAgICAgICAgIEluZGV4Kys7DQo+ID4+ICAgICAgICAgIFsuLi5dDQo+ID4+ICAgICAg
ICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQ0KPiA+PiAgICAgICAgICAgICAgZ290byBmYWls
MTsNCj4gPj4gICAgICAgICAgQ29udGV4dC0+Q29udHJvbEJsb2NrTWRsW3ZjcHVfaWRdID0gTWRs
Ow0KPiA+PiAgICAgIH0NCj4gPj4NCj4gPj4gTWFrZSB0aGUgbWFpbiBsb29wIGEgbm9ybWFsIGZv
ciBsb29wIHRvIGF2b2lkIGNhbGxpbmcgX19GcmVlUGFnZSBvbg0KPiA+PiBpbnZhbGlkIFBNRExz
Lg0KPiA+Pg0KPiA+PiBTaWduZWQtb2ZmLWJ5OiBUdSBEaW5oIDxuZ29jLXR1LmRpbmhAdmF0ZXMu
dGVjaD4NCj4gPj4gLS0tDQo+ID4+ICAgc3JjL3hlbmJ1cy9ldnRjaG5fZmlmby5jIHwgNSArLS0t
LQ0KPiA+PiAgIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgNCBkZWxldGlvbnMoLSkN
Cj4gPj4NCj4gPj4gZGlmZiAtLWdpdCBhL3NyYy94ZW5idXMvZXZ0Y2huX2ZpZm8uYyBiL3NyYy94
ZW5idXMvZXZ0Y2huX2ZpZm8uYw0KPiA+PiBpbmRleCAxMTM3ZGVhLi5mZDA2ZWY0IDEwMDY0NA0K
PiA+PiAtLS0gYS9zcmMveGVuYnVzL2V2dGNobl9maWZvLmMNCj4gPj4gKysrIGIvc3JjL3hlbmJ1
cy9ldnRjaG5fZmlmby5jDQo+ID4+IEBAIC01MDIsMTYgKzUwMiwxMyBAQCBFdnRjaG5GaWZvQWNx
dWlyZSgNCj4gPj4NCj4gPj4gICAgICAgUHJvY2Vzc29yQ291bnQgPQ0KPiA+PiBLZVF1ZXJ5TWF4
aW11bVByb2Nlc3NvckNvdW50RXgoQUxMX1BST0NFU1NPUl9HUk9VUFMpOw0KPiA+Pg0KPiA+PiAt
ICAgIEluZGV4ID0gMDsNCj4gPj4gLSAgICB3aGlsZSAoSW5kZXggPCBQcm9jZXNzb3JDb3VudCkg
ew0KPiA+PiArICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IFByb2Nlc3NvckNvdW50OyBJbmRl
eCsrKSB7DQo+ID4NCj4gPiBQcmV2YWlsaW5nIHN0eWxlIHVzZXMgd2hpbGUgbG9vcHMgSSB0aGlu
ayBzbyBzdGljayB3aXRoIHRoYXQgZm9yDQo+IGNvbnNpc3RlbmN5LCBqdXN0IG1vdmUgdGhlIGlu
Y3JlbWVudCBkb3duLg0KPiANCj4gSSBkb24ndCBzZWUgaG93IHRoZSBpbmNyZW1lbnQgY291bGQg
YmUgbW92ZWQgZG93biB3aXRob3V0IGJyZWFraW5nIHRoZQ0KPiBpbmRleCBza2lwIHdoZW4gU3lz
dGVtUHJvY2Vzc29yVmNwdUlkKCkgPT0gU1RBVFVTX05PVF9TVVBQT1JURUQuDQo+IA0KDQpUaGF0
J3MgdHJ1ZSwgaXQgd291bGQgbmVlZCBhIHNlcGFyYXRlIGluY3JlbWVudCBpbiB0aGF0IGNhc2Uu
DQoNCj4gSSBhbHNvIGZpbmQgdGhlIHdoaWxlIGxvb3AgdXNhZ2UgaW4gRXZ0Y2huRmlmb0FjcXVp
cmUgdmVyeSBjb25mdXNpbmcsDQo+IGFuZCBpdCB3YXMgdGhlIGNhdXNlIG9mIHRoZSBjbGVhbnVw
IGJ1ZyBpbiB0aGUgZmlyc3QgcGxhY2UuIFNvIEknZA0KPiBwcmVmZXIgdG8gbWFrZSBpdCBtb3Jl
IGlkaW9tYXRpYyB0aGlzIHdheS4NCj4gDQoNCk1vcmUgaWRpb21hdGljIGJ1dCBsZXNzIGNvbnNp
c3RlbnQuIEFueXdheS4uLg0KDQpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5v
cmc+DQoNCj4gPg0KPiA+PiAgICAgICAgICAgdW5zaWduZWQgaW50ICAgICAgICB2Y3B1X2lkOw0K
PiA+PiAgICAgICAgICAgUEZOX05VTUJFUiAgICAgICAgICBQZm47DQo+ID4+ICAgICAgICAgICBQ
SFlTSUNBTF9BRERSRVNTICAgIEFkZHJlc3M7DQo+ID4+DQo+ID4+ICAgICAgICAgICBzdGF0dXMg
PSBTeXN0ZW1Qcm9jZXNzb3JWY3B1SWQoSW5kZXgsICZ2Y3B1X2lkKTsNCj4gPj4NCj4gPj4gLSAg
ICAgICAgSW5kZXgrKzsNCj4gPj4gLQ0KPiA+PiAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBTVEFU
VVNfTk9UX1NVUFBPUlRFRCkNCj4gPj4gICAgICAgICAgICAgICBjb250aW51ZTsNCj4gPj4NCj4g
Pj4gLS0NCj4gPj4gMi41MC4xLndpbmRvd3MuMQ0KPiA+Pg0KPiA+Pg0KPiA+Pg0KPiA+PiBOZ29j
IFR1IERpbmggfCBWYXRlcyBYQ1AtbmcgRGV2ZWxvcGVyDQo+ID4+DQo+ID4+IFhDUC1uZyAmIFhl
biBPcmNoZXN0cmEgLSBWYXRlcyBzb2x1dGlvbnMNCj4gPj4NCj4gPj4gd2ViOiBodHRwczovL3Zh
dGVzLnRlY2gNCj4gPj4NCj4gPg0KPiANCj4gDQo+IA0KPiBOZ29jIFR1IERpbmggfCBWYXRlcyBY
Q1AtbmcgRGV2ZWxvcGVyDQo+IA0KPiBYQ1AtbmcgJiBYZW4gT3JjaGVzdHJhIC0gVmF0ZXMgc29s
dXRpb25zDQo+IA0KPiB3ZWI6IGh0dHBzOi8vdmF0ZXMudGVjaA0KDQo=


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 21 07:07:41 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 21 Jul 2025 07:07:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1051056.1419381 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1udkcd-0001KK-Kr; Mon, 21 Jul 2025 07:07:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1051056.1419381; Mon, 21 Jul 2025 07:07:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1udkcd-0001KD-Ht; Mon, 21 Jul 2025 07:07:39 +0000
Received: by outflank-mailman (input) for mailman id 1051056;
 Mon, 21 Jul 2025 07:07:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RkcC=2C=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1udkcb-0001K7-MT
 for win-pv-devel@lists.xenproject.org; Mon, 21 Jul 2025 07:07:37 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 60212983-6601-11f0-a31d-13f23c93f187;
 Mon, 21 Jul 2025 09:07:36 +0200 (CEST)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-553d52cb80dso4470015e87.1
 for <win-pv-devel@lists.xenproject.org>; Mon, 21 Jul 2025 00:07:34 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 60212983-6601-11f0-a31d-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1753081654; x=1753686454; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=M8wzrz1rxhjpYsR1ITOFu/0Ev2dc7CoM6rj80RU7A+4=;
        b=gP6rroXg+Bd5JrF0zPBTvwWwBsmStTCpgHYwh3jcpHnNFDJva+e0rCFV8Qon/xtXij
         0vRnFFzDOOEOKfXRjsrE+0a5ahGIL+O3Pi/zwe6qYcod8bd/KxuHAYeAbA6sV9AYDXi0
         /qfV9cENQXAbF2n8FTB1wi88i4XbUc63/oY4o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1753081654; x=1753686454;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=M8wzrz1rxhjpYsR1ITOFu/0Ev2dc7CoM6rj80RU7A+4=;
        b=RABnMdosQZjKORYnN/iYdFx+I66v0vRJCaMxrxylgzoN+1YgXkqacvU6g+pzP9x4DD
         LiW2ZSmZd4d/rbiFCcvS7yS94I3XbywHh5Rzr4GLlfFnmPaUhWSIDFvNs8NCJysSoRH8
         KjPltcChAUNvy2Vnq25DXlmA6y6n+43vtt30tv6Hftds8F0mtGj2HDOhQMCo9WkIiFVF
         LF+z+lsVdVW9SF3M5uIGiMLryz+HgJLX2E6BALtttSxX7ltBTPwT7Ni5l33dXBDF2PQl
         Ge5KM9P7oBDWw079gJk+ckBvHCVr7rjUWtT4L6htoejcbhIU/pRKpBmFxN4WDtgbgqC0
         bhkQ==
X-Gm-Message-State: AOJu0YxaNAOtNpxRYnG2n7XPPD6UVdlf+9wVXN13/dNKYX90RZRmT7N+
	Ha2qKeGX3hJnc5iBLZfwnZy/4w0N9GMxeuGkqSpaWWHxEQD10KsxqsVrFspI5cel+5IXOGVhB9y
	dNTT1ULFEqeDwt7GEMY/K+hhnZU5L2DvAfh+weoD9
X-Gm-Gg: ASbGncsKXO6XbzBSpczN0NGUJsgjJQMytCAoiVTce821BL7+qSDZuEb9eVnU/8jOO07
	m6NaWVffmxA9yuBFrBZGJSLrInoxHteoK82xKqV68iVoEm7+hYIH1rbv3xeItrjeBbeAAoqUFiV
	YSxZNW0EpUlF5/MsHACyUTCbYAFeQrJKTORePiuYd+bXKrArWKgglbzDcEpYVFObdNTIIE8l59o
	sekx/I=
X-Google-Smtp-Source: AGHT+IEmeV2p4FfbqCbwgPYX1jLbfbcIDntrmksn4tH6b/2fVsKqBEDStpOYUU8NBxUByPpj/ADhmVAzqUj3SMpdQYE=
X-Received: by 2002:a05:6512:3411:b0:553:2912:cfdc with SMTP id
 2adb3069b0e04-55a28ca499fmr4307086e87.9.1753081653385; Mon, 21 Jul 2025
 00:07:33 -0700 (PDT)
MIME-Version: 1.0
References: <20250705170003.1488-1-ngoc-tu.dinh@vates.tech> <20250705170003.1488-2-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250705170003.1488-2-ngoc-tu.dinh@vates.tech>
From: Owen Smith <owen.smith@cloud.com>
Date: Mon, 21 Jul 2025 08:07:21 +0100
X-Gm-Features: Ac12FXxk-PnxB00hB524Rtd_fR8ncz6bd6sJEpo0pwvvlEtiYPiL8GIaBOpgMLk
Message-ID: <CAC_UY8_skUHH-Zu0=HyD7szzT7ehczQ87YazbcRpxhGSOSTLAA@mail.gmail.com>
Subject: Re: [PATCH v2 1/3] Add GitLab pipeline
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000366a3e063a6b213d"

--000000000000366a3e063a6b213d
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

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

On Sat, Jul 5, 2025 at 6:00=E2=80=AFPM Tu Dinh <ngoc-tu.dinh@vates.tech> wr=
ote:

> Run both free and checked builds.
>
> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
> ---
>  .gitlab-ci.yml | 39 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 39 insertions(+)
>  create mode 100644 .gitlab-ci.yml
>
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> new file mode 100644
> index 0000000..16c059f
> --- /dev/null
> +++ b/.gitlab-ci.yml
> @@ -0,0 +1,39 @@
> +# Required software:
> +#   - Latest PowerShell Core
> +#   - git
> +#     - Enable Git long paths so that files are cleaned correctly:
> +#       git config --system core.longpaths true
> +#   - EWDK with EWDK_ROOT set to the mounted EWDK path
> +# I also set the following in config.toml to shorten the build path:
> +#   builds_dir =3D "C:/a"
> +
> +stages:
> +  - build
> +
> +build-job:
> +  tags:
> +    - windows
> +    - ewdk
> +  stage: build
> +  parallel:
> +    matrix:
> +      - BUILD_ARCH:
> +          # x86 is no longer supported by new WDKs
> +          - x64
> +        BUILD_TYPE:
> +          - checked
> +          - free
> +  script:
> +    - Get-Content $Env:EWDK_ROOT\Version.txt
> +    - |
> +      Set-Content -Path build.cmd -Value `
> +        "call %EWDK_ROOT%\BuildEnv\SetupBuildEnv.cmd",
> +        'pwsh.exe -NonInteractive -ExecutionPolicy Bypass -Command
> ".\build.ps1 -Type $Env:BUILD_TYPE -Arch $Env:BUILD_ARCH"'
> +    - cmd.exe /c build.cmd
> +  artifacts:
> +    name: $CI_PROJECT_NAME
> +    paths:
> +      - $CI_PROJECT_NAME/
> +    when: on_success
> +    access: all
> +    expire_in: 30 days
> --
> 2.50.0.windows.2
>
>
>
> Ngoc Tu Dinh | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech
>
>

--000000000000366a3e063a6b213d
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">Reviewed-by: Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com">owen=
.smith@cloud.com</a>&gt;</div></div><br><div class=3D"gmail_quote gmail_quo=
te_container"><div dir=3D"ltr" class=3D"gmail_attr">On Sat, Jul 5, 2025 at =
6:00=E2=80=AFPM Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt; wrote:<br></div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef=
t:1px solid rgb(204,204,204);padding-left:1ex">Run both free and checked bu=
ilds.<br>
<br>
Signed-off-by: Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt;<br>
---<br>
=C2=A0.gitlab-ci.yml | 39 +++++++++++++++++++++++++++++++++++++++<br>
=C2=A01 file changed, 39 insertions(+)<br>
=C2=A0create mode 100644 .gitlab-ci.yml<br>
<br>
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml<br>
new file mode 100644<br>
index 0000000..16c059f<br>
--- /dev/null<br>
+++ b/.gitlab-ci.yml<br>
@@ -0,0 +1,39 @@<br>
+# Required software:<br>
+#=C2=A0 =C2=A0- Latest PowerShell Core<br>
+#=C2=A0 =C2=A0- git<br>
+#=C2=A0 =C2=A0 =C2=A0- Enable Git long paths so that files are cleaned cor=
rectly:<br>
+#=C2=A0 =C2=A0 =C2=A0 =C2=A0git config --system core.longpaths true<br>
+#=C2=A0 =C2=A0- EWDK with EWDK_ROOT set to the mounted EWDK path<br>
+# I also set the following in config.toml to shorten the build path:<br>
+#=C2=A0 =C2=A0builds_dir =3D &quot;C:/a&quot;<br>
+<br>
+stages:<br>
+=C2=A0 - build<br>
+<br>
+build-job:<br>
+=C2=A0 tags:<br>
+=C2=A0 =C2=A0 - windows<br>
+=C2=A0 =C2=A0 - ewdk<br>
+=C2=A0 stage: build<br>
+=C2=A0 parallel:<br>
+=C2=A0 =C2=A0 matrix:<br>
+=C2=A0 =C2=A0 =C2=A0 - BUILD_ARCH:<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 # x86 is no longer supported by new WDK=
s<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 - x64<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 BUILD_TYPE:<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 - checked<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 - free<br>
+=C2=A0 script:<br>
+=C2=A0 =C2=A0 - Get-Content $Env:EWDK_ROOT\Version.txt<br>
+=C2=A0 =C2=A0 - |<br>
+=C2=A0 =C2=A0 =C2=A0 Set-Content -Path build.cmd -Value `<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;call %EWDK_ROOT%\BuildEnv\SetupBuildEnv.=
cmd&quot;,<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 &#39;pwsh.exe -NonInteractive -ExecutionPolicy=
 Bypass -Command &quot;.\build.ps1 -Type $Env:BUILD_TYPE -Arch $Env:BUILD_A=
RCH&quot;&#39;<br>
+=C2=A0 =C2=A0 - cmd.exe /c build.cmd<br>
+=C2=A0 artifacts:<br>
+=C2=A0 =C2=A0 name: $CI_PROJECT_NAME<br>
+=C2=A0 =C2=A0 paths:<br>
+=C2=A0 =C2=A0 =C2=A0 - $CI_PROJECT_NAME/<br>
+=C2=A0 =C2=A0 when: on_success<br>
+=C2=A0 =C2=A0 access: all<br>
+=C2=A0 =C2=A0 expire_in: 30 days<br>
-- <br>
2.50.0.windows.2<br>
<br>
<br>
<br>
Ngoc Tu Dinh | Vates XCP-ng Developer<br>
<br>
XCP-ng &amp; Xen Orchestra - Vates solutions<br>
<br>
web: <a href=3D"https://vates.tech" rel=3D"noreferrer" target=3D"_blank">ht=
tps://vates.tech</a><br>
<br>
</blockquote></div>

--000000000000366a3e063a6b213d--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 21 07:07:46 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 21 Jul 2025 07:07:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1051057.1419385 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1udkck-0001MQ-Mm; Mon, 21 Jul 2025 07:07:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1051057.1419385; Mon, 21 Jul 2025 07:07:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1udkck-0001MI-JR; Mon, 21 Jul 2025 07:07:46 +0000
Received: by outflank-mailman (input) for mailman id 1051057;
 Mon, 21 Jul 2025 07:07:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RkcC=2C=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1udkci-0001M3-K4
 for win-pv-devel@lists.xenproject.org; Mon, 21 Jul 2025 07:07:44 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 63dafd1c-6601-11f0-b894-0df219b8e170;
 Mon, 21 Jul 2025 09:07:42 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-32f1df5703aso31247211fa.3
 for <win-pv-devel@lists.xenproject.org>; Mon, 21 Jul 2025 00:07:40 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 63dafd1c-6601-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1753081660; x=1753686460; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=RGrGkHyGcqKh1bzKwCsyr183eCURMIM1JWGWUslDVsI=;
        b=g0Sy1KO2BbEE5sgpeTT2zmg66VKugyp+BNzP8jLjN330/0MZqTePsfHy6EHn02vUQa
         8/cW50lqCHWlb4JSzK9DK1nu1BXqKoPV7O9orOIG+8YZKn2e/DFPdChII4tlF7lVyBFx
         k/4J7kdvP4pL16J2ukWnC9jSB3b5E2lNdI7Pg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1753081660; x=1753686460;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=RGrGkHyGcqKh1bzKwCsyr183eCURMIM1JWGWUslDVsI=;
        b=iZOdl3fhM6Z1SDYmY3dry2x1O+//Unthe1/68iPUOkxaHlRRiZeGKHWzjTdfdedgkV
         XvD4dfnNbBuLUngXIokcT9OoZCxZUpk8i/hbKiODRtuDpR6H0sjmU0d+qpq6IT8TrhCS
         30n0u9/Mew/K7Su6s+AjlhEn8D1h/0ZfZGYn8zGbgSw0DYFnhLpdE/OXjlDLlHjb7nTv
         WBSf3tXI4FzHkZxgyMGJ62pd2Y3Bat3mAQj0R2l9hhpV1k742ScDyar7aUX+F6xCj7or
         +joxvcE3ccAWr7hPbcu0OsEAKuuM8S/zA9bidmNf4eOSQkhNAtQHxjgwiZt94sUyOU9q
         UbhQ==
X-Gm-Message-State: AOJu0Yxyky3qUxsAG9rqP3jDH8nFDezBov53QaRPu4b0CikEGkJNHFyg
	swMIuF1VL/0W7nnHW4FXVlFJpFzWsjFX8NZC1u2U2v8XvgcOlOK2fJ//8BOVWZ/fwQAXZ5rHpkG
	NeUxfekB68eb+WSj+rRneewp/WgAFgB625S3cwYy9Smn2X3NaRUulKg==
X-Gm-Gg: ASbGncvuzuJrMDr3fJldOwea6/5mCXLAwhfZnF29V7gMSjGsAW1nJ1yvgOS0a/bn7Cy
	2OYFNjkUHoXIOaK/XeXDeDyLQwxmQY3R5+7PRW/iXHTxkilHlcJ4dGGnRHwE2zxz6V6ZUL5onTR
	u2Fgx2HSSKRugw77uwCzUewjBCFSo0QBM6AHhUGAx2dYQFUzHAthQrY2IaVEkhWhg9u096JY2ob
	GRnRxI=
X-Google-Smtp-Source: AGHT+IFRWD1W7RrswbJ0j5y+2Wap4xNZVg1E7k7ZQbWx8wnIwQNmDbCiqmBDuVGKrBjocmsq7RZP7UcqluF/PbSLPoM=
X-Received: by 2002:a2e:be9e:0:b0:32b:720d:56f8 with SMTP id
 38308e7fff4ca-3308e5a6dedmr57549601fa.40.1753081659642; Mon, 21 Jul 2025
 00:07:39 -0700 (PDT)
MIME-Version: 1.0
References: <20250705170003.1488-1-ngoc-tu.dinh@vates.tech> <20250705170003.1488-3-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250705170003.1488-3-ngoc-tu.dinh@vates.tech>
From: Owen Smith <owen.smith@cloud.com>
Date: Mon, 21 Jul 2025 08:07:27 +0100
X-Gm-Features: Ac12FXx_8vM1t4w87GsIdBorNFmvKbIJn-SwEllTLWmAjg8CacNaYj3a0KBeVqM
Message-ID: <CAC_UY8_cpzQrHj-ccqKxCa-Tu_hKn-H5qm0Qm3tmyEn+XTWVOg@mail.gmail.com>
Subject: Re: [PATCH v2 2/3] Throw on build command failure instead of exiting
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="00000000000095ef42063a6b21e4"

--00000000000095ef42063a6b21e4
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

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

On Sat, Jul 5, 2025 at 6:00=E2=80=AFPM Tu Dinh <ngoc-tu.dinh@vates.tech> wr=
ote:

> Exiting is not sufficient to signal the error condition in some cases
> (as observed on CI).
>
> Explicitly throw an error instead.
>
> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
> ---
>  msbuild.ps1 | 9 +++------
>  1 file changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/msbuild.ps1 b/msbuild.ps1
> index 58053e2..d9785db 100644
> --- a/msbuild.ps1
> +++ b/msbuild.ps1
> @@ -40,8 +40,7 @@ Function Run-MSBuild {
>
>         Invoke-Expression $c
>         if ($LASTEXITCODE -ne 0) {
> -               Write-Host -ForegroundColor Red "ERROR: MSBuild failed,
> code:" $LASTEXITCODE
> -               Exit $LASTEXITCODE
> +               throw "ERROR: MSBuild failed, code: $LASTEXITCODE"
>         }
>  }
>
> @@ -117,8 +116,7 @@ Function Run-CodeQL {
>         $b +=3D $database
>         Invoke-Expression $b
>         if ($LASTEXITCODE -ne 0) {
> -               Write-Host -ForegroundColor Red "ERROR: CodeQL failed,
> code:" $LASTEXITCODE
> -               Exit $LASTEXITCODE
> +               throw "ERROR: CodeQL failed, code: $LASTEXITCODE"
>         }
>         Remove-Item $bat
>
> @@ -136,8 +134,7 @@ Function Run-CodeQL {
>
>         Invoke-Expression $c
>         if ($LASTEXITCODE -ne 0) {
> -               Write-Host -ForegroundColor Red "ERROR: CodeQL failed,
> code:" $LASTEXITCODE
> -               Exit $LASTEXITCODE
> +               throw "ERROR: CodeQL failed, code: $LASTEXITCODE"
>         }
>
>         Copy-Item $sarif -Destination $SolutionPath
> --
> 2.50.0.windows.2
>
>
>
> Ngoc Tu Dinh | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech
>
>

--00000000000095ef42063a6b21e4
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">Reviewed-by: Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com">owen=
.smith@cloud.com</a>&gt;</div></div><br><div class=3D"gmail_quote gmail_quo=
te_container"><div dir=3D"ltr" class=3D"gmail_attr">On Sat, Jul 5, 2025 at =
6:00=E2=80=AFPM Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt; wrote:<br></div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef=
t:1px solid rgb(204,204,204);padding-left:1ex">Exiting is not sufficient to=
 signal the error condition in some cases<br>
(as observed on CI).<br>
<br>
Explicitly throw an error instead.<br>
<br>
Signed-off-by: Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt;<br>
---<br>
=C2=A0msbuild.ps1 | 9 +++------<br>
=C2=A01 file changed, 3 insertions(+), 6 deletions(-)<br>
<br>
diff --git a/msbuild.ps1 b/msbuild.ps1<br>
index 58053e2..d9785db 100644<br>
--- a/msbuild.ps1<br>
+++ b/msbuild.ps1<br>
@@ -40,8 +40,7 @@ Function Run-MSBuild {<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Invoke-Expression $c<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if ($LASTEXITCODE -ne 0) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Write-Host -Foregro=
undColor Red &quot;ERROR: MSBuild failed, code:&quot; $LASTEXITCODE<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Exit $LASTEXITCODE<=
br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0throw &quot;ERROR: =
MSBuild failed, code: $LASTEXITCODE&quot;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
=C2=A0}<br>
<br>
@@ -117,8 +116,7 @@ Function Run-CodeQL {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 $b +=3D $database<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Invoke-Expression $b<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if ($LASTEXITCODE -ne 0) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Write-Host -Foregro=
undColor Red &quot;ERROR: CodeQL failed, code:&quot; $LASTEXITCODE<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Exit $LASTEXITCODE<=
br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0throw &quot;ERROR: =
CodeQL failed, code: $LASTEXITCODE&quot;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Remove-Item $bat<br>
<br>
@@ -136,8 +134,7 @@ Function Run-CodeQL {<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Invoke-Expression $c<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if ($LASTEXITCODE -ne 0) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Write-Host -Foregro=
undColor Red &quot;ERROR: CodeQL failed, code:&quot; $LASTEXITCODE<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Exit $LASTEXITCODE<=
br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0throw &quot;ERROR: =
CodeQL failed, code: $LASTEXITCODE&quot;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Copy-Item $sarif -Destination $SolutionPath<br>
-- <br>
2.50.0.windows.2<br>
<br>
<br>
<br>
Ngoc Tu Dinh | Vates XCP-ng Developer<br>
<br>
XCP-ng &amp; Xen Orchestra - Vates solutions<br>
<br>
web: <a href=3D"https://vates.tech" rel=3D"noreferrer" target=3D"_blank">ht=
tps://vates.tech</a><br>
<br>
</blockquote></div>

--00000000000095ef42063a6b21e4--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 21 07:09:50 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 21 Jul 2025 07:09:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1051074.1419388 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1udkek-0001VQ-S9; Mon, 21 Jul 2025 07:09:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1051074.1419388; Mon, 21 Jul 2025 07:09:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1udkek-0001VJ-PI; Mon, 21 Jul 2025 07:09:50 +0000
Received: by outflank-mailman (input) for mailman id 1051074;
 Mon, 21 Jul 2025 07:09:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RkcC=2C=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1udkei-0001VD-TC
 for win-pv-devel@lists.xenproject.org; Mon, 21 Jul 2025 07:09:48 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id af3eebed-6601-11f0-b894-0df219b8e170;
 Mon, 21 Jul 2025 09:09:47 +0200 (CEST)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-553b3316160so4289617e87.2
 for <win-pv-devel@lists.xenproject.org>; Mon, 21 Jul 2025 00:09:47 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af3eebed-6601-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1753081786; x=1753686586; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=jygl1kuqCoP1KE2PxLVmvbtA3ny1UnMeGIqq5VOzb4s=;
        b=b8RhUOTB406HYtiUOZZzVgdfdRB0FIRGpweTSy6BmSINaSlHld9P3uvOtYikkNc9wY
         lt2zgrPKJyR8G7Zf9Q4PGdJOT+Gg/oOOD5h4dMbe6IvJ4RpkQYi4E6XsF0JQ3dBRYYB6
         E14slcRbVSHxdMPASEEiCcr1ZvUACwQjAQZYk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1753081786; x=1753686586;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=jygl1kuqCoP1KE2PxLVmvbtA3ny1UnMeGIqq5VOzb4s=;
        b=ZtRE1Fr7zzOwGLPLRdt1qBY12SD303Yi1xMzxilsYMfwF9PMOEwt6E58AnKVkNGW5y
         pX/N7teb1QLjtGIXFDbskwHcr/W4hruy2F6PVHNjbEWqYL/sLM4AJVPKa8g2rrrrILyE
         PcmdUcGyaXxFW70ceX99SmgiSGzsGo6FJPrvZ5IeJEwBWl/+B17eyl7AjpvjtlizIsVs
         hiFgALTtHtq8sAH/hMC5NtJj26YT6bO0jdX6iH6Vd/WKrPMHMaKMVv9O3j1OoGajAmsN
         TxlDHSOUImMBf6o90P88uH794BlXiyEvJqX7oD6gO9z3AJj832/U6AZ/W9AdwCPqOj/y
         wJ0g==
X-Gm-Message-State: AOJu0YxlCNg4yKQNp7aHqAZS/KyrkRuYbJcsTiQKm/wjkdDLVIWBtJVW
	z+8M4BG3DHR4OWE6a/aqmOMkw6Is4NMGmgNHDxll5dGq+0p/DRnHMHXiSGLlUr0KA5dVzF4dXB7
	rrg3spJpk0V2TBakJzEd3C954mtfqmh550m4Z1vBfff7IrLuY3Lw=
X-Gm-Gg: ASbGnct0NbwSGwJzSfXSMY2EXLvYsvT9GIRjRZ7SCKBd7D0qLv5T7ifBZwCTPobXqwl
	tMC3sIAAmVJlD0ixdP5WuMpdRFOdUzw+/QqiBaGjXWDDmC3/P71JKW2jerVL5/lvec75v+bXpoL
	ReqPYWLbS4EJ6QR2mv3v3lBnFgaf3zWzR6t3pm08cdlDgRD7TND502As4XHJ2+cf/2b95iwA/NT
	5VHgA7eFnGfgEze1w==
X-Google-Smtp-Source: AGHT+IEb7mL81COI/QgtfDVJHkX5FGtNjxK3X51qb0RrYWn6W43CrFMxf0gYBdz6qcXCoYWC8zOvCK7Wd/qkRRkMgMw=
X-Received: by 2002:a05:6512:1396:b0:553:2cef:2d2e with SMTP id
 2adb3069b0e04-55a23f05664mr5089657e87.22.1753081786157; Mon, 21 Jul 2025
 00:09:46 -0700 (PDT)
MIME-Version: 1.0
References: <20250705170003.1488-1-ngoc-tu.dinh@vates.tech>
 <20250705170003.1488-4-ngoc-tu.dinh@vates.tech> <b98e8d87-4c14-442a-8433-09103088dffe@vates.tech>
In-Reply-To: <b98e8d87-4c14-442a-8433-09103088dffe@vates.tech>
From: Owen Smith <owen.smith@cloud.com>
Date: Mon, 21 Jul 2025 08:09:33 +0100
X-Gm-Features: Ac12FXyITn6Anx135EGKM3qVn0uoXhi8a3Wk-JZLomAdgJyAdzrzBVO3XBZaut4
Message-ID: <CAC_UY88uM6=nA9RSrGLTUbUBtmGdEYsaEK64dVEkzwzpjT_69Q@mail.gmail.com>
Subject: Re: [PATCH v2 3/3] Always run Code Analysis on build
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000206b34063a6b293d"

--000000000000206b34063a6b293d
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

We'll skip this patch and apply the previous 2.

I seem to recall similar issues in XenServer builds with code analysis that
required originally running code analysis separate from SDV.

Owen

On Mon, Jul 7, 2025 at 11:15=E2=80=AFAM Tu Dinh <ngoc-tu.dinh@vates.tech> w=
rote:

> On 05/07/2025 19:00, Tu Dinh wrote:
> > Code Analysis is quick to run, and there's little reason not to run it.
> > Unconditionally run the recommended driver ruleset on build.
> >
> > Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
>
> Unfortunately this doesn't build on GitHub Actions due to
> %WindowsSdkDir% not being set.
>
>
> Ngoc Tu Dinh | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech
>
>

--000000000000206b34063a6b293d
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">We&#39;ll skip this patch and apply the previous 2.</div><div class=3D"g=
mail_default" style=3D"font-family:monospace"><br></div><div class=3D"gmail=
_default" style=3D"font-family:monospace">I seem to recall similar issues i=
n XenServer builds with code analysis that required originally running code=
 analysis separate=C2=A0from SDV.=C2=A0</div><div class=3D"gmail_default" s=
tyle=3D"font-family:monospace"><br></div><div class=3D"gmail_default" style=
=3D"font-family:monospace">Owen</div></div><br><div class=3D"gmail_quote gm=
ail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Mon, Jul 7, 2=
025 at 11:15=E2=80=AFAM Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt; wrote:<br><=
/div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bo=
rder-left:1px solid rgb(204,204,204);padding-left:1ex">On 05/07/2025 19:00,=
 Tu Dinh wrote:<br>
&gt; Code Analysis is quick to run, and there&#39;s little reason not to ru=
n it.<br>
&gt; Unconditionally run the recommended driver ruleset on build.<br>
&gt; <br>
&gt; Signed-off-by: Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt;<br>
<br>
Unfortunately this doesn&#39;t build on GitHub Actions due to <br>
%WindowsSdkDir% not being set.<br>
<br>
<br>
Ngoc Tu Dinh | Vates XCP-ng Developer<br>
<br>
XCP-ng &amp; Xen Orchestra - Vates solutions<br>
<br>
web: <a href=3D"https://vates.tech" rel=3D"noreferrer" target=3D"_blank">ht=
tps://vates.tech</a><br>
<br>
</blockquote></div>

--000000000000206b34063a6b293d--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 21 07:37:00 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 21 Jul 2025 07:37:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1051094.1419393 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1udl50-0005BX-Ox; Mon, 21 Jul 2025 07:36:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1051094.1419393; Mon, 21 Jul 2025 07:36:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1udl50-0005BQ-Lj; Mon, 21 Jul 2025 07:36:58 +0000
Received: by outflank-mailman (input) for mailman id 1051094;
 Mon, 21 Jul 2025 07:36:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RkcC=2C=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1udl4z-0005BK-6p
 for win-pv-devel@lists.xenproject.org; Mon, 21 Jul 2025 07:36:57 +0000
Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com
 [2a00:1450:4864:20::22b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7942ae83-6605-11f0-b894-0df219b8e170;
 Mon, 21 Jul 2025 09:36:54 +0200 (CEST)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-32b7113ed6bso30504581fa.1
 for <win-pv-devel@lists.xenproject.org>; Mon, 21 Jul 2025 00:36:54 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7942ae83-6605-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1753083414; x=1753688214; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=lEG4zoenp1KLgdUXU7iVdp9EXNNfCSIJ2cvY3+8ngyk=;
        b=ij+J4a6Tt0xJur4qiiYjRLrVMTFyCfE8xkvIhRj9U+EigneGCrA4Q+I6+cxplNx1LQ
         hQKlhZvqxP3jXUsYZjicUEJO3f9VWl2dJXUFCVYwWXJsN55QZFOhLX6g+c5wlpVCnqYR
         IHU2FqtUKRN6veE9PDcS9YwRCIZKqDtBCVhxU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1753083414; x=1753688214;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=lEG4zoenp1KLgdUXU7iVdp9EXNNfCSIJ2cvY3+8ngyk=;
        b=Plxutryg3TmLEXvncRtu7kIxefRPT0pQMhxeLkNOTl00JzdOFNAz9vXUFQ3Av8BGid
         Pglllatd9G1+ND7gufiXsu+V47XygeDabeFV9E67+MeVXV5OrWLhIFHXws5eLjfM0YWR
         4IuZuKo+81H+CJTV/G/6Gvdhfte3DWHE5oXlnfuywnDHzpueX4I2OgPYjTTtj3pOnvc+
         tOn4AsZA99f9WVVWGNnPfdSdaz12NFYgci/0UjdTdYNQu15fDt9142m6Yp2erhaAsyt/
         YemuuX5MBIHQhbbMWgJEnAbrObaHsXThoYLJSe7YUMFagtyKaE9aVM5OyQaUCX3xRv9A
         /vdA==
X-Gm-Message-State: AOJu0YyztvrZ9SDt3DBLXosglCBz2nnQtFLE2tjwRZmsSgUzKvqdlxLD
	lR0DdNLWKW8RC8uJbZ3Xl+ZDKMAPlxPNktFxovztTiF/qnW0rEeBKOkFWMp8vxrCjls8n6Q/F4z
	dBBpn3WFVS/eE4Sr40mZF9OJso4vyMatReWAwzG7MBQj76rsFtJI=
X-Gm-Gg: ASbGncv49dYRSb2Hk5AL4u2dHuo51855TnZQ015p00ZGGViWZ2nWvwLEROmmkxQ7ZVU
	4JFuGuUOgjTrUWiU+V7OY1E4JeNp1+ECThIXy+zzqOLHdNmdr5i6fBdVYsi/fa3mHE5cBLU8QAQ
	f8HvvHxwPhDlu0MrrNn3suUMMKgzt3cWTJJpDc46Gmp+LDchwQJ+41XMmUPlbDPrGp0ZYJEci0n
	eT99D4=
X-Google-Smtp-Source: AGHT+IFoGKg8OD1RV7TTOrbjGFy4+o3gtJkYJAlRhsxEALMAcaKnRtbJH1ybCnBudbvR7SfEXtFENogjJVPI+bkC+Ag=
X-Received: by 2002:a2e:bc1b:0:b0:32b:a85f:c0b8 with SMTP id
 38308e7fff4ca-3308f4fb13bmr64348401fa.9.1753083413525; Mon, 21 Jul 2025
 00:36:53 -0700 (PDT)
MIME-Version: 1.0
References: <20250709082339.341-1-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250709082339.341-1-ngoc-tu.dinh@vates.tech>
From: Owen Smith <owen.smith@cloud.com>
Date: Mon, 21 Jul 2025 08:36:41 +0100
X-Gm-Features: Ac12FXyiobr0JGDDTTOQzFN6ihC9iZKmplCag115IXxb3RoygbRnncKKMAX7aUk
Message-ID: <CAC_UY88kN=8-EpHPTm3E7uykRVs+Km+A4CyrKaq9JpGEc8dLXA@mail.gmail.com>
Subject: Re: [XENIFACE PATCH v2] xenagent: Add TimeSyncMode option
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000201046063a6b8a66"

--000000000000201046063a6b8a66
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

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


On Wed, Jul 9, 2025 at 9:24=E2=80=AFAM Tu Dinh <ngoc-tu.dinh@vates.tech> wr=
ote:

> xenagent's time sync mechanism interferes with w32time's own time sync,
> especially in a domain environment where domain members are expected to
> follow the PDCe.
>
> Add a REG_DWORD value TimeSyncMode in xenagent. Setting this value to 0
> will disable the XenTime sync.
> Note that this setting is not honored during time sync attempts after
> resume.
>
> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
> ---
>  src/xenagent/service.cpp        |  4 ++--
>  src/xenagent/xenifacedevice.cpp | 31 +++++++++++++++++++++++++++----
>  src/xenagent/xenifacedevice.h   |  4 ++--
>  3 files changed, 31 insertions(+), 8 deletions(-)
>
> diff --git a/src/xenagent/service.cpp b/src/xenagent/service.cpp
> index 535d761..6ef7b1a 100644
> --- a/src/xenagent/service.cpp
> +++ b/src/xenagent/service.cpp
> @@ -216,7 +216,7 @@ bool CXenAgent::ServiceMainLoop()
>
>      case WAIT_OBJECT_0+2:
>          ResetEvent(m_xeniface.m_evt_suspend);
> -        m_xeniface.CheckXenTime();
> +        m_xeniface.CheckXenTime(true);
>          m_xeniface.CheckSuspend();
>          return true; // continue loop
>
> @@ -230,7 +230,7 @@ bool CXenAgent::ServiceMainLoop()
>          return true; // continue loop
>      }
>      case WAIT_TIMEOUT:
> -        m_xeniface.CheckXenTime();
> +        m_xeniface.CheckXenTime(false);
>          __fallthrough;
>      case WAIT_IO_COMPLETION:
>          m_xeniface.CheckSuspend();
> diff --git a/src/xenagent/xenifacedevice.cpp
> b/src/xenagent/xenifacedevice.cpp
> index 69a584b..7b45c8c 100644
> --- a/src/xenagent/xenifacedevice.cpp
> +++ b/src/xenagent/xenifacedevice.cpp
> @@ -40,6 +40,13 @@
>  #include "xeniface_ioctls.h"
>  #include "messages.h"
>
> +#define SERVICES_KEY "SYSTEM\\CurrentControlSet\\Services"
> +
> +#define SERVICE_KEY(_Service) \
> +        SERVICES_KEY ## "\\" ## _Service
> +
> +#define TIME_SYNC_MODE_DISABLED 0
> +
>  CXenIfaceDevice::CXenIfaceDevice(const wchar_t* path) : CDevice(path)
>  {}
>
> @@ -213,7 +220,7 @@ CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent*
> agent) : CDeviceList(GUID_IN
>      if (m_agent->ConvDevicePresent())
>          StartSlateModeWatch(device);
>
> -    SetXenTime(device);
> +    SetXenTime(device, false);
>  }
>
>  /*virtual*/ void CXenIfaceDeviceList::OnDeviceRemoved(CDevice* dev)
> @@ -339,7 +346,7 @@ bool CXenIfaceDeviceList::CheckShutdown()
>      return false;
>  }
>
> -void CXenIfaceDeviceList::CheckXenTime()
> +void CXenIfaceDeviceList::CheckXenTime(bool forced)
>  {
>      CCritSec crit(&m_crit);
>      CXenIfaceDevice* device =3D (CXenIfaceDevice*)GetFirstDevice();
> @@ -347,7 +354,7 @@ void CXenIfaceDeviceList::CheckXenTime()
>      if (device =3D=3D NULL)
>          return;
>
> -    SetXenTime(device);
> +    SetXenTime(device, forced);
>  }
>
>  void CXenIfaceDeviceList::CheckSuspend()
> @@ -485,10 +492,26 @@ void CXenIfaceDeviceList::AcquireShutdownPrivilege(=
)
>      CloseHandle(token);
>  }
>
> -void CXenIfaceDeviceList::SetXenTime(CXenIfaceDevice* device)
> +void CXenIfaceDeviceList::SetXenTime(CXenIfaceDevice* device, bool force=
d)
>  {
>      bool local;
>
> +    if (!forced) {
> +        DWORD   mode =3D 0;
> +        DWORD   size =3D sizeof(mode);
> +        LSTATUS lstatus;
> +
> +        lstatus =3D RegGetValue(HKEY_LOCAL_MACHINE,
> +                              TEXT(SERVICE_KEY(__MODULE__)),
> +                              TEXT("TimeSyncMode"),
> +                              RRF_RT_DWORD,
> +                              NULL,
> +                              &mode,
> +                              &size);
> +        if (lstatus =3D=3D ERROR_SUCCESS && mode =3D=3D TIME_SYNC_MODE_D=
ISABLED)
> +            return;
> +    }
> +
>      FILETIME now =3D { 0 };
>      if (!device->SharedInfoGetTime(&now, &local))
>          return;
> diff --git a/src/xenagent/xenifacedevice.h b/src/xenagent/xenifacedevice.=
h
> index d85e469..8a89036 100644
> --- a/src/xenagent/xenifacedevice.h
> +++ b/src/xenagent/xenifacedevice.h
> @@ -84,7 +84,7 @@ public:
>
>      void Log(const char* message);
>      bool CheckShutdown();
> -    void CheckXenTime();
> +    void CheckXenTime(bool forced);
>      void CheckSuspend();
>      bool CheckSlateMode(std::string& mode);
>      void LogIfRebootPending();
> @@ -95,7 +95,7 @@ private:
>      void StartSlateModeWatch(CXenIfaceDevice* device);
>      void StopSlateModeWatch(CXenIfaceDevice* device);
>      void AcquireShutdownPrivilege();
> -    void SetXenTime(CXenIfaceDevice* device);
> +    void SetXenTime(CXenIfaceDevice* device, bool forced);
>
>  private:
>      CXenAgent*  m_agent;
> --
> 2.50.1.windows.1
>
>
>
> Ngoc Tu Dinh | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech
>
>
>

--000000000000201046063a6b8a66
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">Reviewed-by: Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com">owen=
.smith@cloud.com</a>&gt;</div><div class=3D"gmail_default" style=3D"font-fa=
mily:monospace"><br></div></div><br><div class=3D"gmail_quote gmail_quote_c=
ontainer"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, Jul 9, 2025 at 9:24=
=E2=80=AFAM Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt; wrote:<br></div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1p=
x solid rgb(204,204,204);padding-left:1ex">xenagent&#39;s time sync mechani=
sm interferes with w32time&#39;s own time sync,<br>
especially in a domain environment where domain members are expected to<br>
follow the PDCe.<br>
<br>
Add a REG_DWORD value TimeSyncMode in xenagent. Setting this value to 0<br>
will disable the XenTime sync.<br>
Note that this setting is not honored during time sync attempts after<br>
resume.<br>
<br>
Signed-off-by: Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt;<br>
---<br>
=C2=A0src/xenagent/service.cpp=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 4 ++--<br=
>
=C2=A0src/xenagent/xenifacedevice.cpp | 31 +++++++++++++++++++++++++++----<=
br>
=C2=A0src/xenagent/xenifacedevice.h=C2=A0 =C2=A0|=C2=A0 4 ++--<br>
=C2=A03 files changed, 31 insertions(+), 8 deletions(-)<br>
<br>
diff --git a/src/xenagent/service.cpp b/src/xenagent/service.cpp<br>
index 535d761..6ef7b1a 100644<br>
--- a/src/xenagent/service.cpp<br>
+++ b/src/xenagent/service.cpp<br>
@@ -216,7 +216,7 @@ bool CXenAgent::ServiceMainLoop()<br>
<br>
=C2=A0 =C2=A0 =C2=A0case WAIT_OBJECT_0+2:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ResetEvent(m_xeniface.m_evt_suspend);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 m_xeniface.CheckXenTime();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 m_xeniface.CheckXenTime(true);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0m_xeniface.CheckSuspend();<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return true; // continue loop<br>
<br>
@@ -230,7 +230,7 @@ bool CXenAgent::ServiceMainLoop()<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return true; // continue loop<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0case WAIT_TIMEOUT:<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 m_xeniface.CheckXenTime();<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 m_xeniface.CheckXenTime(false);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0__fallthrough;<br>
=C2=A0 =C2=A0 =C2=A0case WAIT_IO_COMPLETION:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0m_xeniface.CheckSuspend();<br>
diff --git a/src/xenagent/xenifacedevice.cpp b/src/xenagent/xenifacedevice.=
cpp<br>
index 69a584b..7b45c8c 100644<br>
--- a/src/xenagent/xenifacedevice.cpp<br>
+++ b/src/xenagent/xenifacedevice.cpp<br>
@@ -40,6 +40,13 @@<br>
=C2=A0#include &quot;xeniface_ioctls.h&quot;<br>
=C2=A0#include &quot;messages.h&quot;<br>
<br>
+#define SERVICES_KEY &quot;SYSTEM\\CurrentControlSet\\Services&quot;<br>
+<br>
+#define SERVICE_KEY(_Service) \<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 SERVICES_KEY ## &quot;\\&quot; ## _Service<br>
+<br>
+#define TIME_SYNC_MODE_DISABLED 0<br>
+<br>
=C2=A0CXenIfaceDevice::CXenIfaceDevice(const wchar_t* path) : CDevice(path)=
<br>
=C2=A0{}<br>
<br>
@@ -213,7 +220,7 @@ CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent* age=
nt) : CDeviceList(GUID_IN<br>
=C2=A0 =C2=A0 =C2=A0if (m_agent-&gt;ConvDevicePresent())<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0StartSlateModeWatch(device);<br>
<br>
-=C2=A0 =C2=A0 SetXenTime(device);<br>
+=C2=A0 =C2=A0 SetXenTime(device, false);<br>
=C2=A0}<br>
<br>
=C2=A0/*virtual*/ void CXenIfaceDeviceList::OnDeviceRemoved(CDevice* dev)<b=
r>
@@ -339,7 +346,7 @@ bool CXenIfaceDeviceList::CheckShutdown()<br>
=C2=A0 =C2=A0 =C2=A0return false;<br>
=C2=A0}<br>
<br>
-void CXenIfaceDeviceList::CheckXenTime()<br>
+void CXenIfaceDeviceList::CheckXenTime(bool forced)<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0CCritSec crit(&amp;m_crit);<br>
=C2=A0 =C2=A0 =C2=A0CXenIfaceDevice* device =3D (CXenIfaceDevice*)GetFirstD=
evice();<br>
@@ -347,7 +354,7 @@ void CXenIfaceDeviceList::CheckXenTime()<br>
=C2=A0 =C2=A0 =C2=A0if (device =3D=3D NULL)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
<br>
-=C2=A0 =C2=A0 SetXenTime(device);<br>
+=C2=A0 =C2=A0 SetXenTime(device, forced);<br>
=C2=A0}<br>
<br>
=C2=A0void CXenIfaceDeviceList::CheckSuspend()<br>
@@ -485,10 +492,26 @@ void CXenIfaceDeviceList::AcquireShutdownPrivilege()<=
br>
=C2=A0 =C2=A0 =C2=A0CloseHandle(token);<br>
=C2=A0}<br>
<br>
-void CXenIfaceDeviceList::SetXenTime(CXenIfaceDevice* device)<br>
+void CXenIfaceDeviceList::SetXenTime(CXenIfaceDevice* device, bool forced)=
<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0bool local;<br>
<br>
+=C2=A0 =C2=A0 if (!forced) {<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 DWORD=C2=A0 =C2=A0mode =3D 0;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 DWORD=C2=A0 =C2=A0size =3D sizeof(mode);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 LSTATUS lstatus;<br>
+<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 lstatus =3D RegGetValue(HKEY_LOCAL_MACHINE,<br=
>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 TEXT(SERVICE_KEY(__MODULE__)),<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 TEXT(&quot;TimeSyncMode&quot;),<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 RRF_RT_DWORD,<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 NULL,<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &amp;mode,<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &amp;size);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (lstatus =3D=3D ERROR_SUCCESS &amp;&amp; mo=
de =3D=3D TIME_SYNC_MODE_DISABLED)<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return;<br>
+=C2=A0 =C2=A0 }<br>
+<br>
=C2=A0 =C2=A0 =C2=A0FILETIME now =3D { 0 };<br>
=C2=A0 =C2=A0 =C2=A0if (!device-&gt;SharedInfoGetTime(&amp;now, &amp;local)=
)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
diff --git a/src/xenagent/xenifacedevice.h b/src/xenagent/xenifacedevice.h<=
br>
index d85e469..8a89036 100644<br>
--- a/src/xenagent/xenifacedevice.h<br>
+++ b/src/xenagent/xenifacedevice.h<br>
@@ -84,7 +84,7 @@ public:<br>
<br>
=C2=A0 =C2=A0 =C2=A0void Log(const char* message);<br>
=C2=A0 =C2=A0 =C2=A0bool CheckShutdown();<br>
-=C2=A0 =C2=A0 void CheckXenTime();<br>
+=C2=A0 =C2=A0 void CheckXenTime(bool forced);<br>
=C2=A0 =C2=A0 =C2=A0void CheckSuspend();<br>
=C2=A0 =C2=A0 =C2=A0bool CheckSlateMode(std::string&amp; mode);<br>
=C2=A0 =C2=A0 =C2=A0void LogIfRebootPending();<br>
@@ -95,7 +95,7 @@ private:<br>
=C2=A0 =C2=A0 =C2=A0void StartSlateModeWatch(CXenIfaceDevice* device);<br>
=C2=A0 =C2=A0 =C2=A0void StopSlateModeWatch(CXenIfaceDevice* device);<br>
=C2=A0 =C2=A0 =C2=A0void AcquireShutdownPrivilege();<br>
-=C2=A0 =C2=A0 void SetXenTime(CXenIfaceDevice* device);<br>
+=C2=A0 =C2=A0 void SetXenTime(CXenIfaceDevice* device, bool forced);<br>
<br>
=C2=A0private:<br>
=C2=A0 =C2=A0 =C2=A0CXenAgent*=C2=A0 m_agent;<br>
-- <br>
2.50.1.windows.1<br>
<br>
<br>
<br>
Ngoc Tu Dinh | Vates XCP-ng Developer<br>
<br>
XCP-ng &amp; Xen Orchestra - Vates solutions<br>
<br>
web: <a href=3D"https://vates.tech" rel=3D"noreferrer" target=3D"_blank">ht=
tps://vates.tech</a><br>
<br>
<br>
</blockquote></div>

--000000000000201046063a6b8a66--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 21 08:05:40 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 21 Jul 2025 08:05:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1051114.1419397 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1udlWk-0000n3-Rk; Mon, 21 Jul 2025 08:05:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1051114.1419397; Mon, 21 Jul 2025 08:05:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1udlWk-0000mw-P0; Mon, 21 Jul 2025 08:05:38 +0000
Received: by outflank-mailman (input) for mailman id 1051114;
 Mon, 21 Jul 2025 08:05:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RkcC=2C=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1udlWj-0000mq-RK
 for win-pv-devel@lists.xenproject.org; Mon, 21 Jul 2025 08:05:38 +0000
Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com
 [2a00:1450:4864:20::22b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7b21f3c0-6609-11f0-b894-0df219b8e170;
 Mon, 21 Jul 2025 10:05:35 +0200 (CEST)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-32f1df58f21so40572111fa.3
 for <win-pv-devel@lists.xenproject.org>; Mon, 21 Jul 2025 01:05:35 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b21f3c0-6609-11f0-b894-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1753085135; x=1753689935; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=QcY48KvcjtpWd7P72Pqcl1d+AIz3lliHNuaf5LcU4KQ=;
        b=iI7CkZUf1ibvhdcSdfFddilRgENTmImbKHH+VrfGHH652UuIKCRzU9TNLO0h9oBy1o
         BAnJkHW/9u1FcPpZW6Xqb7Oh0cF7Nd8RUKW8xlGnE51OkNWHk1tc5T069+BT17y6uQ8X
         uXgHr863BW28iAj8Jfr0ONlv2erRynopP4dRI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1753085135; x=1753689935;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=QcY48KvcjtpWd7P72Pqcl1d+AIz3lliHNuaf5LcU4KQ=;
        b=PLiDZ1XqPtr3ecV9ivU1mjU16n0/+yYjxG+AQCfDR9SmaDhhJj9fgwU603dgQmHGat
         zhqmqKuxoQmuiELp8ogWbhdBRC/mnHBJm0zolgRcYD7RU2RK6fA7bkp9eksSElsPcc8T
         yjPbNU0tEVMwy+z69cVoqhRragcwfVHt5Z6nFPv5HcJ4fTyZwKhzWTS5lepbxwmsfKW/
         yf6z7Pi2wzDwBRJ+Rqd0EwkDSodD0znfbLm5EmotBBZSomX8LG7A/+V/4OE5HnsfuMR+
         0LlbVFAdYDz4SNOiGacu5xMG7NV2RLiRUOpCsoXpNIT4UMuVLjP7AWpVJejp1cDdIykP
         EOdA==
X-Forwarded-Encrypted: i=1; AJvYcCUPtvqZF9r1jlTpekMAan8G0m25ixviiYsWgeRh62C/nMSAuI5yAlhGNNLrj/HcoyI7WYJkLxlepxGBTKA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzo7yjMS7cvicHlP0V5ejBu2KM4JqE1qBn66w3T4W7CBrfYLfOH
	pHz2OfBcuftXS85MpcWlK9DVeHC/KPSJmmWhvP25bqMuZoOXj5uaVyLqOYkxP/dj+UCorLwVjbC
	EQCzBlVhTnFrCyuVaX8izq1RxiTDs0rFk+p6wPVJV
X-Gm-Gg: ASbGncuwAM8AvRYlUkbb9MaAbEcwIuLzY5so/CwrHSxcKzfTID53pD8Qn+SYLi5Lmbe
	y2EMOIA2AmiTvZ1AUZsRTqsmv1neeWUrXfsGU7xUlrQxPRvi1daiXFbvw9NB4bu9mGBa3jMwUYu
	AJuAOkSC+VNtLr86IL+1NnacyYQbrtLbdHvvvWcgu8pIHokmblTycrcgtH32ehDNLCDEL+ueYEV
	1AVzfYGHyzztTRHFQ==
X-Google-Smtp-Source: AGHT+IGPLwDpIAulR2/VszN8amrmaEAUYKI3D9ftJQyll0Zuo2qAcvQTPvX0OBXA9aYZYyccwN9Q5wpFAd2ick69x9o=
X-Received: by 2002:a05:651c:4101:b0:32b:4932:d328 with SMTP id
 38308e7fff4ca-3308f62895fmr43176001fa.32.1753085134702; Mon, 21 Jul 2025
 01:05:34 -0700 (PDT)
MIME-Version: 1.0
References: <20250718095831.1580-1-ngoc-tu.dinh@vates.tech>
 <LO2P123MB47664A882CFBEF3895A8028CE450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM>
 <031b3fda-7a0e-4e91-bd17-35cfed364f24@vates.tech> <LO2P123MB4766EA84E35DADB1C76B9F4DE450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM>
In-Reply-To: <LO2P123MB4766EA84E35DADB1C76B9F4DE450A@LO2P123MB4766.GBRP123.PROD.OUTLOOK.COM>
From: Owen Smith <owen.smith@cloud.com>
Date: Mon, 21 Jul 2025 09:05:23 +0100
X-Gm-Features: Ac12FXwtDrVQ6_ZeWIVT8qHNofpv1j_FdvNBzdLRGSgvJCujH098A0hsftyVRD4
Message-ID: <CAC_UY8_wFjdHscYTSFoOm4EGWBV-UBkR2eWMbKSqORu_3Q5iSQ@mail.gmail.com>
Subject: Re: [PATCH v2] Fix failure cleanup in EvtchnFifoAcquire
To: "Durrant, Paul" <pdurrant@amazon.co.uk>
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>, 
	"win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Content-Type: multipart/alternative; boundary="000000000000b7249d063a6bf0e3"

--000000000000b7249d063a6bf0e3
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

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

On Fri, Jul 18, 2025 at 12:08=E2=80=AFPM Durrant, Paul <pdurrant@amazon.co.=
uk>
wrote:

> > -----Original Message-----
> > From: Tu Dinh <ngoc-tu.dinh@vates.tech>
> > Sent: Friday, July 18, 2025 11:54 AM
> > To: Durrant, Paul <pdurrant@amazon.co.uk>; win-pv-
> > devel@lists.xenproject.org
> > Cc: Owen Smith <owen.smith@cloud.com>
> > Subject: RE: [EXTERNAL] [PATCH v2] Fix failure cleanup in
> > EvtchnFifoAcquire
> >
> > CAUTION: This email originated from outside of the organization. Do not
> > click links or open attachments unless you can confirm the sender and
> know
> > the content is safe.
> >
> >
> >
> > On 18/07/2025 12:16, Durrant, Paul wrote:
> > >> -----Original Message-----
> > >> From: win-pv-devel <win-pv-devel-bounces@lists.xenproject.org> On
> > Behalf
> > >> Of Tu Dinh
> > >> Sent: Friday, July 18, 2025 10:59 AM
> > >> To: win-pv-devel@lists.xenproject.org
> > >> Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>; Owen Smith
> > <owen.smith@cloud.com>;
> > >> Durrant, Paul <pdurrant@amazon.co.uk>
> > >> Subject: [EXTERNAL] [PATCH v2] Fix failure cleanup in
> EvtchnFifoAcquire
> > >>
> > >> CAUTION: This email originated from outside of the organization. Do
> not
> > >> click links or open attachments unless you can confirm the sender an=
d
> > know
> > >> the content is safe.
> > >>
> > >>
> > >>
> > >> The current index is incremented before checking for failure:
> > >>
> > >>      while (Index < ProcessorCount) {
> > >>          Index++;
> > >>          [...]
> > >>          if (!NT_SUCCESS(status))
> > >>              goto fail1;
> > >>          Context->ControlBlockMdl[vcpu_id] =3D Mdl;
> > >>      }
> > >>
> > >> Make the main loop a normal for loop to avoid calling __FreePage on
> > >> invalid PMDLs.
> > >>
> > >> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
> > >> ---
> > >>   src/xenbus/evtchn_fifo.c | 5 +----
> > >>   1 file changed, 1 insertion(+), 4 deletions(-)
> > >>
> > >> diff --git a/src/xenbus/evtchn_fifo.c b/src/xenbus/evtchn_fifo.c
> > >> index 1137dea..fd06ef4 100644
> > >> --- a/src/xenbus/evtchn_fifo.c
> > >> +++ b/src/xenbus/evtchn_fifo.c
> > >> @@ -502,16 +502,13 @@ EvtchnFifoAcquire(
> > >>
> > >>       ProcessorCount =3D
> > >> KeQueryMaximumProcessorCountEx(ALL_PROCESSOR_GROUPS);
> > >>
> > >> -    Index =3D 0;
> > >> -    while (Index < ProcessorCount) {
> > >> +    for (Index =3D 0; Index < ProcessorCount; Index++) {
> > >
> > > Prevailing style uses while loops I think so stick with that for
> > consistency, just move the increment down.
> >
> > I don't see how the increment could be moved down without breaking the
> > index skip when SystemProcessorVcpuId() =3D=3D STATUS_NOT_SUPPORTED.
> >
>
> That's true, it would need a separate increment in that case.
>
> > I also find the while loop usage in EvtchnFifoAcquire very confusing,
> > and it was the cause of the cleanup bug in the first place. So I'd
> > prefer to make it more idiomatic this way.
> >
>
> More idiomatic but less consistent. Anyway...
>
> Reviewed-by: Paul Durrant <paul@xen.org>
>
> > >
> > >>           unsigned int        vcpu_id;
> > >>           PFN_NUMBER          Pfn;
> > >>           PHYSICAL_ADDRESS    Address;
> > >>
> > >>           status =3D SystemProcessorVcpuId(Index, &vcpu_id);
> > >>
> > >> -        Index++;
> > >> -
> > >>           if (status =3D=3D STATUS_NOT_SUPPORTED)
> > >>               continue;
> > >>
> > >> --
> > >> 2.50.1.windows.1
> > >>
> > >>
> > >>
> > >> Ngoc Tu Dinh | Vates XCP-ng Developer
> > >>
> > >> XCP-ng & Xen Orchestra - Vates solutions
> > >>
> > >> web: https://vates.tech
> > >>
> > >
> >
> >
> >
> > Ngoc Tu Dinh | Vates XCP-ng Developer
> >
> > XCP-ng & Xen Orchestra - Vates solutions
> >
> > web: https://vates.tech
>
>

--000000000000b7249d063a6bf0e3
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">Reviewed-by: Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com">owen=
.smith@cloud.com</a>&gt;</div></div><br><div class=3D"gmail_quote gmail_quo=
te_container"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, Jul 18, 2025 at=
 12:08=E2=80=AFPM Durrant, Paul &lt;<a href=3D"mailto:pdurrant@amazon.co.uk=
">pdurrant@amazon.co.uk</a>&gt; wrote:<br></div><blockquote class=3D"gmail_=
quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,=
204);padding-left:1ex">&gt; -----Original Message-----<br>
&gt; From: Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt;<br>
&gt; Sent: Friday, July 18, 2025 11:54 AM<br>
&gt; To: Durrant, Paul &lt;<a href=3D"mailto:pdurrant@amazon.co.uk" target=
=3D"_blank">pdurrant@amazon.co.uk</a>&gt;; win-pv-<br>
&gt; <a href=3D"mailto:devel@lists.xenproject.org" target=3D"_blank">devel@=
lists.xenproject.org</a><br>
&gt; Cc: Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com" target=3D"_=
blank">owen.smith@cloud.com</a>&gt;<br>
&gt; Subject: RE: [EXTERNAL] [PATCH v2] Fix failure cleanup in<br>
&gt; EvtchnFifoAcquire<br>
&gt; <br>
&gt; CAUTION: This email originated from outside of the organization. Do no=
t<br>
&gt; click links or open attachments unless you can confirm the sender and =
know<br>
&gt; the content is safe.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; On 18/07/2025 12:16, Durrant, Paul wrote:<br>
&gt; &gt;&gt; -----Original Message-----<br>
&gt; &gt;&gt; From: win-pv-devel &lt;<a href=3D"mailto:win-pv-devel-bounces=
@lists.xenproject.org" target=3D"_blank">win-pv-devel-bounces@lists.xenproj=
ect.org</a>&gt; On<br>
&gt; Behalf<br>
&gt; &gt;&gt; Of Tu Dinh<br>
&gt; &gt;&gt; Sent: Friday, July 18, 2025 10:59 AM<br>
&gt; &gt;&gt; To: <a href=3D"mailto:win-pv-devel@lists.xenproject.org" targ=
et=3D"_blank">win-pv-devel@lists.xenproject.org</a><br>
&gt; &gt;&gt; Cc: Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt;; Owen Smith<br>
&gt; &lt;<a href=3D"mailto:owen.smith@cloud.com" target=3D"_blank">owen.smi=
th@cloud.com</a>&gt;;<br>
&gt; &gt;&gt; Durrant, Paul &lt;<a href=3D"mailto:pdurrant@amazon.co.uk" ta=
rget=3D"_blank">pdurrant@amazon.co.uk</a>&gt;<br>
&gt; &gt;&gt; Subject: [EXTERNAL] [PATCH v2] Fix failure cleanup in EvtchnF=
ifoAcquire<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; CAUTION: This email originated from outside of the organizati=
on. Do not<br>
&gt; &gt;&gt; click links or open attachments unless you can confirm the se=
nder and<br>
&gt; know<br>
&gt; &gt;&gt; the content is safe.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; The current index is incremented before checking for failure:=
<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 while (Index &lt; ProcessorCount) {<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Index++;<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [...]<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (!NT_SUCCESS(status))<br=
>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 goto fail1;<b=
r>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Context-&gt;ControlBlockMdl=
[vcpu_id] =3D Mdl;<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 }<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Make the main loop a normal for loop to avoid calling __FreeP=
age on<br>
&gt; &gt;&gt; invalid PMDLs.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Signed-off-by: Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt;<br>
&gt; &gt;&gt; ---<br>
&gt; &gt;&gt;=C2=A0 =C2=A0src/xenbus/evtchn_fifo.c | 5 +----<br>
&gt; &gt;&gt;=C2=A0 =C2=A01 file changed, 1 insertion(+), 4 deletions(-)<br=
>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; diff --git a/src/xenbus/evtchn_fifo.c b/src/xenbus/evtchn_fif=
o.c<br>
&gt; &gt;&gt; index 1137dea..fd06ef4 100644<br>
&gt; &gt;&gt; --- a/src/xenbus/evtchn_fifo.c<br>
&gt; &gt;&gt; +++ b/src/xenbus/evtchn_fifo.c<br>
&gt; &gt;&gt; @@ -502,16 +502,13 @@ EvtchnFifoAcquire(<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0ProcessorCount =3D<br>
&gt; &gt;&gt; KeQueryMaximumProcessorCountEx(ALL_PROCESSOR_GROUPS);<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; -=C2=A0 =C2=A0 Index =3D 0;<br>
&gt; &gt;&gt; -=C2=A0 =C2=A0 while (Index &lt; ProcessorCount) {<br>
&gt; &gt;&gt; +=C2=A0 =C2=A0 for (Index =3D 0; Index &lt; ProcessorCount; I=
ndex++) {<br>
&gt; &gt;<br>
&gt; &gt; Prevailing style uses while loops I think so stick with that for<=
br>
&gt; consistency, just move the increment down.<br>
&gt; <br>
&gt; I don&#39;t see how the increment could be moved down without breaking=
 the<br>
&gt; index skip when SystemProcessorVcpuId() =3D=3D STATUS_NOT_SUPPORTED.<b=
r>
&gt; <br>
<br>
That&#39;s true, it would need a separate increment in that case.<br>
<br>
&gt; I also find the while loop usage in EvtchnFifoAcquire very confusing,<=
br>
&gt; and it was the cause of the cleanup bug in the first place. So I&#39;d=
<br>
&gt; prefer to make it more idiomatic this way.<br>
&gt; <br>
<br>
More idiomatic but less consistent. Anyway...<br>
<br>
Reviewed-by: Paul Durrant &lt;<a href=3D"mailto:paul@xen.org" target=3D"_bl=
ank">paul@xen.org</a>&gt;<br>
<br>
&gt; &gt;<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0unsigned int=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 vcpu_id;<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PFN_NUMBER=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 Pfn;<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PHYSICAL_ADDRESS=C2=
=A0 =C2=A0 Address;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0status =3D SystemProc=
essorVcpuId(Index, &amp;vcpu_id);<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 Index++;<br>
&gt; &gt;&gt; -<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (status =3D=3D STA=
TUS_NOT_SUPPORTED)<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0continu=
e;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; --<br>
&gt; &gt;&gt; 2.50.1.windows.1<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Ngoc Tu Dinh | Vates XCP-ng Developer<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; XCP-ng &amp; Xen Orchestra - Vates solutions<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; web: <a href=3D"https://vates.tech" rel=3D"noreferrer" target=
=3D"_blank">https://vates.tech</a><br>
&gt; &gt;&gt;<br>
&gt; &gt;<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Ngoc Tu Dinh | Vates XCP-ng Developer<br>
&gt; <br>
&gt; XCP-ng &amp; Xen Orchestra - Vates solutions<br>
&gt; <br>
&gt; web: <a href=3D"https://vates.tech" rel=3D"noreferrer" target=3D"_blan=
k">https://vates.tech</a><br>
<br>
</blockquote></div>

--000000000000b7249d063a6bf0e3--


From win-pv-devel-bounces@lists.xenproject.org Wed Jul 23 07:53:36 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Jul 2025 07:53:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1053404.1422161 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueUIA-0004sA-24; Wed, 23 Jul 2025 07:53:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1053404.1422161; Wed, 23 Jul 2025 07:53:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueUI9-0004s3-Vj; Wed, 23 Jul 2025 07:53:33 +0000
Received: by outflank-mailman (input) for mailman id 1053404;
 Wed, 23 Jul 2025 07:53:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IVqp=2E=bounce.vates.tech=bounce-md_30504962.688094f4.v1-af27820b3ad048fca243c5d22ced2eee@srs-se1.protection.inumbo.net>)
 id 1ueUI8-0004rx-HZ
 for win-pv-devel@lists.xenproject.org; Wed, 23 Jul 2025 07:53:32 +0000
Received: from mail13.wdc04.mandrillapp.com (mail13.wdc04.mandrillapp.com
 [205.201.139.13]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1cc10083-679a-11f0-b895-0df219b8e170;
 Wed, 23 Jul 2025 09:53:26 +0200 (CEST)
Received: from pmta16.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail13.wdc04.mandrillapp.com (Mailchimp) with ESMTP id 4bn5wh47qqzNCd8tT
 for <win-pv-devel@lists.xenproject.org>; Wed, 23 Jul 2025 07:53:24 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 af27820b3ad048fca243c5d22ced2eee; Wed, 23 Jul 2025 07:53:24 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1cc10083-679a-11f0-b895-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1753257204; x=1753527204;
	bh=7NGT6pefdFCGW4iWXXay8kor9o+/53m/QrPt7wpvWYo=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=QaBoUI9UWzVz4feOuyEN0DMgkFQyGoVLOhpc3iCJhDMSgFMLFeoBBTqwnJ3Bmcb7R
	 D5y8DfoaNGGiQDbR+LKYYh0YtA+zrAljWRxSuk9l77yAuuoWHa9uKfI11k2ISfIgkK
	 M879pr+ukKx9CY7zHFXVZxqdqNSs1H8+PV7hii/gyUe/FICV+T1t6uh+QOH113lXw7
	 U7T+vlbVEVF1iRROpedl8EglRdFmycJJAWXjdqpvzH35LvJOxW5tDrVAt+zHJ42+Pp
	 aEoGSzmvVykG8Cjk6ppOLOPxtM5JDcdTZQWrPSAP2X/Gp1b59oEs6QueYGNpyjpcWs
	 XlaGnyV25hpFw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1753257204; x=1753517704; i=ngoc-tu.dinh@vates.tech;
	bh=7NGT6pefdFCGW4iWXXay8kor9o+/53m/QrPt7wpvWYo=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=lySu8Gcl44gS/0z6ilmeCyFnK3hseFUV+cIYwi1o/2UkTTVyjdBAlRDZqh7xJfVHU
	 JGoOSjFwYQ1z9/VS6uRLVj8BFJTT75LInT9gLAqF2gzdnT2FMbTeYLz0m75dwHKmPh
	 IWEijAkYXP1GMzEHb6BPbIHRc5sLOizCbsJGoEl2w8m9pMcZGrtMta+lSbwav8jXv/
	 ypIu+iaJiUAona+OmmWfGURPASkBUTPa6w+UA1cUyzdx0PuWZ/ixkYI/H5HUk/8iD3
	 he2opNFzHpK7dOE8b5OVMvksr3MQLRCe9OIavmIPlSfsdeSg4CM/6B+5lyWtlFU+3g
	 Huwi4i3fXyFBQ==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[XENVIF=20PATCH]=20Fix=20argument=20to=20ControllerSetHashAlgorithm?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1753257203692
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250723075316.1215-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.af27820b3ad048fca243c5d22ced2eee?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250723:md
Date: Wed, 23 Jul 2025 07:53:24 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

ControllerSetHashAlgorithm expects a XEN_NETIF_CTRL_HASH_ALGORITHM_*
whereas Hash->Algorithm is of type XENVIF_PACKET_HASH_ALGORITHM.

These two enums are not aligned so translate them manually.

Also simply return STATUS_NOT_SUPPORTED when an invalid Hash->Algorithm
is supplied.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 src/xenvif/frontend.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
index 79b04fb..86bebf8 100644
--- a/src/xenvif/frontend.c
+++ b/src/xenvif/frontend.c
@@ -1883,6 +1883,7 @@ __FrontendUpdateHash(
 {
     PXENVIF_CONTROLLER      Controller;
     ULONG                   Zero = 0;
+    ULONG                   NetifAlgorithm;
     ULONG                   Size;
     PULONG                  Mapping;
     ULONG                   Flags;
@@ -1892,12 +1893,14 @@ __FrontendUpdateHash(
 
     switch (Hash->Algorithm) {
     case XENVIF_PACKET_HASH_ALGORITHM_NONE:
+        NetifAlgorithm = XEN_NETIF_CTRL_HASH_ALGORITHM_NONE;
         Size = 1;
         Mapping = &Zero;
         Flags = 0;
         break;
 
     case XENVIF_PACKET_HASH_ALGORITHM_TOEPLITZ:
+        NetifAlgorithm = XEN_NETIF_CTRL_HASH_ALGORITHM_TOEPLITZ;
         Size = Hash->Size;
         Mapping = Hash->Mapping;
         Flags = Hash->Flags;
@@ -1905,17 +1908,15 @@ __FrontendUpdateHash(
 
     case XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED:
     default:
-        (VOID) ControllerSetHashAlgorithm(Controller,
-                                          XEN_NETIF_CTRL_HASH_ALGORITHM_NONE);
-        goto done;
+        return STATUS_NOT_SUPPORTED;
     }
 
     status = ControllerSetHashAlgorithm(Controller,
-                                        Hash->Algorithm);
+                                        NetifAlgorithm);
     if (!NT_SUCCESS(status))
         goto fail1;
 
-    if (Hash->Algorithm == XEN_NETIF_CTRL_HASH_ALGORITHM_NONE)
+    if (NetifAlgorithm == XEN_NETIF_CTRL_HASH_ALGORITHM_NONE)
         goto done;
 
     status = ControllerSetHashMappingSize(Controller, Size);
-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Wed Jul 23 08:31:51 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Jul 2025 08:31:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1053526.1422304 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueUtC-0001sT-Eq; Wed, 23 Jul 2025 08:31:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1053526.1422304; Wed, 23 Jul 2025 08:31:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueUtC-0001sM-C6; Wed, 23 Jul 2025 08:31:50 +0000
Received: by outflank-mailman (input) for mailman id 1053526;
 Wed, 23 Jul 2025 08:31:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vCGW=2E=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1ueUtB-0001sF-E0
 for win-pv-devel@lists.xenproject.org; Wed, 23 Jul 2025 08:31:49 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7868663d-679f-11f0-a31d-13f23c93f187;
 Wed, 23 Jul 2025 10:31:48 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-32b5226e6beso62092711fa.2
 for <win-pv-devel@lists.xenproject.org>; Wed, 23 Jul 2025 01:31:46 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7868663d-679f-11f0-a31d-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1753259506; x=1753864306; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=MH6hlZ+ZmewehEcQGJ6n4MGYIhhtPAk6Cu2gHChldik=;
        b=SNbJ/jMn1cTehRazW/uXhjNn9cXWfMb6JS8BJjfwHJLAZLD6TkGKtQpMyZYJEwZlMg
         kbhLCoQyJA6xrhTJBDUT1ua4cDl6YCnAt0lObh4pJA+10wbB41T7fulcfMKnXPQPKX+v
         Wgsd895hSjgML577tr+LP0DzmN1ntQxPC06X0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1753259506; x=1753864306;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=MH6hlZ+ZmewehEcQGJ6n4MGYIhhtPAk6Cu2gHChldik=;
        b=DuQERufP0VVl4ku66V2Ac4bCW5cCYobZg93T3aLyk+VMIH/90r8jXYj37lokeKa9Nb
         thX/6X1Ei4jsJzIS4zB4NfjozJA8vHdT1cufK6XeQghdigs1qpmZzaz24M6hgvaEi2xC
         GCH8sGbJ0DJv4XydZHR8rmTA+DEF3zqHEzE3lRhKmyQhpvcGldDIyWLoiS8CeNYtFDY3
         7qoGuEpDyVjTX4IbluOWcy6HZJxoXCPccb8i+K/dAKG+Wv1dU47rlQWQRVvHngc8bcCF
         9V7kggw/4+weuraMWjxSdKEf39/zc5/vZZX6y7038XDvAdLZsyyFiQobJTdLuK7hPh5t
         NUrw==
X-Gm-Message-State: AOJu0YxHtcX6SNExN1rLkRlp81oNt1TUMC7JmkZd9n3sEmL4w43WWfnq
	pBSxyTzqKvek/G7MqUKwxFuZVGVvKrFM0ki8pf6HLL6dek5wYMg/iL05tUah3zgzUVidC8mSmdQ
	qInDXbv0FFTunm/2qcTTWvHGmjh5+mZuTahAnVrrtlZmZG9aGsdCzgg==
X-Gm-Gg: ASbGncsGjTHh1YqgRuHg1mjL0H96Vnem5XK/AjCkYzh7xzuoBBhSwbH52ImMO9Q17Du
	34hnOAaHX7iMBtk5w+lu/Giv8+xSoHem7e7lJ3/1aZ9NdkK6WLBANXdPffLOiYR+eXD3NntMhbS
	at7irq+3aOjrht32zNy7XvJ6iPG0AW5OLEIO3PIm551V4O1IUtb9UJzwBhorbXvsd/+msOIrJ3b
	LbBdw==
X-Google-Smtp-Source: AGHT+IFnhDesyg33BNxMlB/5L+Fdo3aNi0+Nf9IWm/uFwcIkJKrejD1PQ0T7AoKSQLdXHvcRNUXsNc24P80a1hHy1nU=
X-Received: by 2002:a2e:a99f:0:b0:32a:7122:58c9 with SMTP id
 38308e7fff4ca-330dfca2598mr6018451fa.5.1753259505735; Wed, 23 Jul 2025
 01:31:45 -0700 (PDT)
MIME-Version: 1.0
References: <20250723075316.1215-1-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250723075316.1215-1-ngoc-tu.dinh@vates.tech>
From: Owen Smith <owen.smith@cloud.com>
Date: Wed, 23 Jul 2025 09:31:32 +0100
X-Gm-Features: Ac12FXxrciOnwaCpuVe4rM9dhtgyYT-YPIwGO8j8M141Lj_2OwKgUDLg7yY82Qw
Message-ID: <CAC_UY8-WF0463XArA3NtH6XYp-2pQUadk128poT9arYWsMv8gQ@mail.gmail.com>
Subject: Re: [XENVIF PATCH] Fix argument to ControllerSetHashAlgorithm
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="00000000000009edaf063a948a7e"

--00000000000009edaf063a948a7e
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED seems to be a valid value, used to
determine if xennet requested or did not request a specific algorithm, so I
think making XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED report
STATUS_NOT_SUPPORTED could cause issues.

The mapping from XENVIF_PACKET_HASH_ALGORITHM values
to XEN_NETIF_CTRL_HASH_ALGORITHM_* is a good fix.

Owen

On Wed, Jul 23, 2025 at 8:53=E2=80=AFAM Tu Dinh <ngoc-tu.dinh@vates.tech> w=
rote:

> ControllerSetHashAlgorithm expects a XEN_NETIF_CTRL_HASH_ALGORITHM_*
> whereas Hash->Algorithm is of type XENVIF_PACKET_HASH_ALGORITHM.
>
> These two enums are not aligned so translate them manually.
>
> Also simply return STATUS_NOT_SUPPORTED when an invalid Hash->Algorithm
> is supplied.
>
> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
> ---
>  src/xenvif/frontend.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
> index 79b04fb..86bebf8 100644
> --- a/src/xenvif/frontend.c
> +++ b/src/xenvif/frontend.c
> @@ -1883,6 +1883,7 @@ __FrontendUpdateHash(
>  {
>      PXENVIF_CONTROLLER      Controller;
>      ULONG                   Zero =3D 0;
> +    ULONG                   NetifAlgorithm;
>      ULONG                   Size;
>      PULONG                  Mapping;
>      ULONG                   Flags;
> @@ -1892,12 +1893,14 @@ __FrontendUpdateHash(
>
>      switch (Hash->Algorithm) {
>      case XENVIF_PACKET_HASH_ALGORITHM_NONE:
> +        NetifAlgorithm =3D XEN_NETIF_CTRL_HASH_ALGORITHM_NONE;
>          Size =3D 1;
>          Mapping =3D &Zero;
>          Flags =3D 0;
>          break;
>
>      case XENVIF_PACKET_HASH_ALGORITHM_TOEPLITZ:
> +        NetifAlgorithm =3D XEN_NETIF_CTRL_HASH_ALGORITHM_TOEPLITZ;
>          Size =3D Hash->Size;
>          Mapping =3D Hash->Mapping;
>          Flags =3D Hash->Flags;
> @@ -1905,17 +1908,15 @@ __FrontendUpdateHash(
>
>      case XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED:
>      default:
> -        (VOID) ControllerSetHashAlgorithm(Controller,
> -
> XEN_NETIF_CTRL_HASH_ALGORITHM_NONE);
> -        goto done;
> +        return STATUS_NOT_SUPPORTED;
>      }
>
>      status =3D ControllerSetHashAlgorithm(Controller,
> -                                        Hash->Algorithm);
> +                                        NetifAlgorithm);
>      if (!NT_SUCCESS(status))
>          goto fail1;
>
> -    if (Hash->Algorithm =3D=3D XEN_NETIF_CTRL_HASH_ALGORITHM_NONE)
> +    if (NetifAlgorithm =3D=3D XEN_NETIF_CTRL_HASH_ALGORITHM_NONE)
>          goto done;
>
>      status =3D ControllerSetHashMappingSize(Controller, Size);
> --
> 2.50.1.windows.1
>
>
>
> Ngoc Tu Dinh | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech
>
>

--00000000000009edaf063a948a7e
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED seems to be a valid value, used=
 to determine if xennet requested or did not request a specific algorithm, =
so I think making=C2=A0XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED report STAT=
US_NOT_SUPPORTED could cause issues.</div><div class=3D"gmail_default" styl=
e=3D"font-family:monospace"><br></div><div class=3D"gmail_default" style=3D=
"font-family:monospace">The mapping from=C2=A0XENVIF_PACKET_HASH_ALGORITHM =
values to=C2=A0XEN_NETIF_CTRL_HASH_ALGORITHM_* is a good fix.</div><div cla=
ss=3D"gmail_default" style=3D"font-family:monospace"><br></div><div class=
=3D"gmail_default" style=3D"font-family:monospace">Owen</div></div><br><div=
 class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" class=3D"gmai=
l_attr">On Wed, Jul 23, 2025 at 8:53=E2=80=AFAM Tu Dinh &lt;ngoc-tu.dinh@va=
tes.tech&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1=
ex">ControllerSetHashAlgorithm expects a XEN_NETIF_CTRL_HASH_ALGORITHM_*<br=
>
whereas Hash-&gt;Algorithm is of type XENVIF_PACKET_HASH_ALGORITHM.<br>
<br>
These two enums are not aligned so translate them manually.<br>
<br>
Also simply return STATUS_NOT_SUPPORTED when an invalid Hash-&gt;Algorithm<=
br>
is supplied.<br>
<br>
Signed-off-by: Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt;<br>
---<br>
=C2=A0src/xenvif/frontend.c | 11 ++++++-----<br>
=C2=A01 file changed, 6 insertions(+), 5 deletions(-)<br>
<br>
diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c<br>
index 79b04fb..86bebf8 100644<br>
--- a/src/xenvif/frontend.c<br>
+++ b/src/xenvif/frontend.c<br>
@@ -1883,6 +1883,7 @@ __FrontendUpdateHash(<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0PXENVIF_CONTROLLER=C2=A0 =C2=A0 =C2=A0 Controller;<br>
=C2=A0 =C2=A0 =C2=A0ULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0Zero =3D 0;<br>
+=C2=A0 =C2=A0 ULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0NetifAlgorithm;<br>
=C2=A0 =C2=A0 =C2=A0ULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0Size;<br>
=C2=A0 =C2=A0 =C2=A0PULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 Mapping;<br>
=C2=A0 =C2=A0 =C2=A0ULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0Flags;<br>
@@ -1892,12 +1893,14 @@ __FrontendUpdateHash(<br>
<br>
=C2=A0 =C2=A0 =C2=A0switch (Hash-&gt;Algorithm) {<br>
=C2=A0 =C2=A0 =C2=A0case XENVIF_PACKET_HASH_ALGORITHM_NONE:<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 NetifAlgorithm =3D XEN_NETIF_CTRL_HASH_ALGORIT=
HM_NONE;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Size =3D 1;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Mapping =3D &amp;Zero;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Flags =3D 0;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
<br>
=C2=A0 =C2=A0 =C2=A0case XENVIF_PACKET_HASH_ALGORITHM_TOEPLITZ:<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 NetifAlgorithm =3D XEN_NETIF_CTRL_HASH_ALGORIT=
HM_TOEPLITZ;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Size =3D Hash-&gt;Size;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Mapping =3D Hash-&gt;Mapping;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Flags =3D Hash-&gt;Flags;<br>
@@ -1905,17 +1908,15 @@ __FrontendUpdateHash(<br>
<br>
=C2=A0 =C2=A0 =C2=A0case XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED:<br>
=C2=A0 =C2=A0 =C2=A0default:<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 (VOID) ControllerSetHashAlgorithm(Controller,<=
br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 X=
EN_NETIF_CTRL_HASH_ALGORITHM_NONE);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 goto done;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 return STATUS_NOT_SUPPORTED;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0status =3D ControllerSetHashAlgorithm(Controller,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Hash-&gt=
;Algorithm);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 NetifAlg=
orithm);<br>
=C2=A0 =C2=A0 =C2=A0if (!NT_SUCCESS(status))<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto fail1;<br>
<br>
-=C2=A0 =C2=A0 if (Hash-&gt;Algorithm =3D=3D XEN_NETIF_CTRL_HASH_ALGORITHM_=
NONE)<br>
+=C2=A0 =C2=A0 if (NetifAlgorithm =3D=3D XEN_NETIF_CTRL_HASH_ALGORITHM_NONE=
)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto done;<br>
<br>
=C2=A0 =C2=A0 =C2=A0status =3D ControllerSetHashMappingSize(Controller, Siz=
e);<br>
-- <br>
2.50.1.windows.1<br>
<br>
<br>
<br>
Ngoc Tu Dinh | Vates XCP-ng Developer<br>
<br>
XCP-ng &amp; Xen Orchestra - Vates solutions<br>
<br>
web: <a href=3D"https://vates.tech" rel=3D"noreferrer" target=3D"_blank">ht=
tps://vates.tech</a><br>
<br>
</blockquote></div>

--00000000000009edaf063a948a7e--


From win-pv-devel-bounces@lists.xenproject.org Wed Jul 23 08:38:48 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Jul 2025 08:38:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1053568.1422369 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueUzv-0003Pf-Q8; Wed, 23 Jul 2025 08:38:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1053568.1422369; Wed, 23 Jul 2025 08:38:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueUzv-0003PX-NN; Wed, 23 Jul 2025 08:38:47 +0000
Received: by outflank-mailman (input) for mailman id 1053568;
 Wed, 23 Jul 2025 08:38:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=90f6=2E=bounce.vates.tech=bounce-md_30504962.68809f93.v1-dde91df3665f4ccaaaa21c3ad12b0744@srs-se1.protection.inumbo.net>)
 id 1ueUzu-0003Ko-UO
 for win-pv-devel@lists.xenproject.org; Wed, 23 Jul 2025 08:38:47 +0000
Received: from mail132-21.atl131.mandrillapp.com
 (mail132-21.atl131.mandrillapp.com [198.2.132.21])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7170f571-67a0-11f0-b895-0df219b8e170;
 Wed, 23 Jul 2025 10:38:45 +0200 (CEST)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4bn6wz2lPFz1ZDTnM
 for <win-pv-devel@lists.xenproject.org>; Wed, 23 Jul 2025 08:38:43 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 dde91df3665f4ccaaaa21c3ad12b0744; Wed, 23 Jul 2025 08:38:43 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7170f571-67a0-11f0-b895-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1753259923; x=1753529923;
	bh=CxqA9KxMxaXCKH5CCSB2B/ary9H9yKWNK9WezhcyIY0=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=tc04ExWtSk3+2KTPMbC9UWZCDGAPlC2v+U4oL0K/vVnE2mpH3vSodUs8Xirj5bI3k
	 A/zoudOj2PG2yS0cINmQqAyjzWfukG1JJC8aSHtXHaW1NoF+IAdqMYmTNqMAXGCAds
	 utHXyEGZbt+3onvYz6D4u5RcTJowETHkJl3+v2OxKThI0REsjmc0Nzm5SG3Ia+8Y17
	 D63W4SZSEHFZvetIKg7DEq8VUMTccI0CjPZOrLP6SnOygGGKLpQVENUv0jq6m8cmeL
	 6P6fjAf4jX/08XL26SKTd9ARyPpc/iNw+0dRyya0SXN8NHzYTw9Dn+WlTZvT0RX4/I
	 nuBQxtUW+t70g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1753259923; x=1753520423; i=ngoc-tu.dinh@vates.tech;
	bh=CxqA9KxMxaXCKH5CCSB2B/ary9H9yKWNK9WezhcyIY0=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=L64qn9UmbLJiNdCPmiK/wYLVX7bB5OyJqPIpO6JM63nygAabKfBk+TqEr7grtFsEb
	 k+/CH2tQZsTU2oykkVxQGuGEyFv8N+RbUARJKYMxbsttax6Ul/z86YKmE4UEVfzSJo
	 lVJO2af8ss/2td96LHcGMxUQcH82BX69tZn0hQmIsHRf9C7X3jARUm/574EXLLPIXK
	 joqDq6ha4LdsE8G6rFpAlopp8967SZ3bP/AUpIqqzIv/qjECtZ6SbWQBB6kM7cCG7d
	 3q6npGjbk9a7IrOsbXaGimGYrLrGiRqafSSoPLrcFvDYn/gecUhvnUy60qTsoKoVxu
	 kJl8HTXVOIEAg==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[XENVIF=20PATCH]=20Fix=20argument=20to=20ControllerSetHashAlgorithm?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1753259922535
Message-Id: <eded78c5-a643-4f25-9e43-3414200dcefe@vates.tech>
To: "Owen Smith" <owen.smith@cloud.com>
Cc: win-pv-devel@lists.xenproject.org
References: <20250723075316.1215-1-ngoc-tu.dinh@vates.tech> <CAC_UY8-WF0463XArA3NtH6XYp-2pQUadk128poT9arYWsMv8gQ@mail.gmail.com>
In-Reply-To: <CAC_UY8-WF0463XArA3NtH6XYp-2pQUadk128poT9arYWsMv8gQ@mail.gmail.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.dde91df3665f4ccaaaa21c3ad12b0744?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250723:md
Date: Wed, 23 Jul 2025 08:38:43 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 23/07/2025 10:32, Owen Smith wrote:
> XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED seems to be a valid value, used 
> to determine if xennet requested or did not request a specific 
> algorithm, so I think making=C2=A0XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIE=
D 
> report STATUS_NOT_SUPPORTED could cause issues.
> 
> The mapping from=C2=A0XENVIF_PACKET_HASH_ALGORITHM values 
> to=C2=A0XEN_NETIF_CTRL_HASH_ALGORITHM_* is a good fix.

I don't mind reverting the behavior, but I couldn't find any mention of 
XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED in xennet, Windows also only 
supports NdisHashFunctionToeplitz. Was this used in a previous xennet 
version? Also, the default case may very well break if other hash 
algorithms were introduced in the future...

> 
> Owen
> 
> On Wed, Jul 23, 2025 at 8:53=E2=80=AFAM Tu Dinh <ngoc-tu.dinh@vates.tech>=
 wrote:
> 
>     ControllerSetHashAlgorithm expects a XEN_NETIF_CTRL_HASH_ALGORITHM_*
>     whereas Hash->Algorithm is of type XENVIF_PACKET_HASH_ALGORITHM.
> 
>     These two enums are not aligned so translate them manually.
> 
>     Also simply return STATUS_NOT_SUPPORTED when an invalid Hash->Algorit=
hm
>     is supplied.
> 
>     Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
>     ---
>      =C2=A0src/xenvif/frontend.c | 11 ++++++-----
>      =C2=A01 file changed, 6 insertions(+), 5 deletions(-)
> 
>     diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
>     index 79b04fb..86bebf8 100644
>     --- a/src/xenvif/frontend.c
>     +++ b/src/xenvif/frontend.c
>     @@ -1883,6 +1883,7 @@ __FrontendUpdateHash(
>      =C2=A0{
>      =C2=A0 =C2=A0 =C2=A0PXENVIF_CONTROLLER=C2=A0 =C2=A0 =C2=A0 Controlle=
r;
>      =C2=A0 =C2=A0 =C2=A0ULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0Zero =3D 0;
>     +=C2=A0 =C2=A0 ULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0NetifAlgorithm;
>      =C2=A0 =C2=A0 =C2=A0ULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0Size;
>      =C2=A0 =C2=A0 =C2=A0PULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 Mapping;
>      =C2=A0 =C2=A0 =C2=A0ULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0Flags;
>     @@ -1892,12 +1893,14 @@ __FrontendUpdateHash(
> 
>      =C2=A0 =C2=A0 =C2=A0switch (Hash->Algorithm) {
>      =C2=A0 =C2=A0 =C2=A0case XENVIF_PACKET_HASH_ALGORITHM_NONE:
>     +=C2=A0 =C2=A0 =C2=A0 =C2=A0 NetifAlgorithm =3D XEN_NETIF_CTRL_HASH_A=
LGORITHM_NONE;
>      =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Size =3D 1;
>      =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Mapping =3D &Zero;
>      =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Flags =3D 0;
>      =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;
> 
>      =C2=A0 =C2=A0 =C2=A0case XENVIF_PACKET_HASH_ALGORITHM_TOEPLITZ:
>     +=C2=A0 =C2=A0 =C2=A0 =C2=A0 NetifAlgorithm =3D XEN_NETIF_CTRL_HASH_A=
LGORITHM_TOEPLITZ;
>      =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Size =3D Hash->Size;
>      =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Mapping =3D Hash->Mapping;
>      =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Flags =3D Hash->Flags;
>     @@ -1905,17 +1908,15 @@ __FrontendUpdateHash(
> 
>      =C2=A0 =C2=A0 =C2=A0case XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED:
>      =C2=A0 =C2=A0 =C2=A0default:
>     -=C2=A0 =C2=A0 =C2=A0 =C2=A0 (VOID) ControllerSetHashAlgorithm(Contro=
ller,
>     -                                         
>     XEN_NETIF_CTRL_HASH_ALGORITHM_NONE);
>     -=C2=A0 =C2=A0 =C2=A0 =C2=A0 goto done;
>     +=C2=A0 =C2=A0 =C2=A0 =C2=A0 return STATUS_NOT_SUPPORTED;
>      =C2=A0 =C2=A0 =C2=A0}
> 
>      =C2=A0 =C2=A0 =C2=A0status =3D ControllerSetHashAlgorithm(Controller=
,
>     -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 H=
ash->Algorithm);
>     +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 N=
etifAlgorithm);
>      =C2=A0 =C2=A0 =C2=A0if (!NT_SUCCESS(status))
>      =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto fail1;
> 
>     -=C2=A0 =C2=A0 if (Hash->Algorithm =3D=3D XEN_NETIF_CTRL_HASH_ALGORIT=
HM_NONE)
>     +=C2=A0 =C2=A0 if (NetifAlgorithm =3D=3D XEN_NETIF_CTRL_HASH_ALGORITH=
M_NONE)
>      =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto done;
> 
>      =C2=A0 =C2=A0 =C2=A0status =3D ControllerSetHashMappingSize(Controll=
er, Size);
>     -- 
>     2.50.1.windows.1
> 
> 
> 
>     Ngoc Tu Dinh | Vates XCP-ng Developer
> 
>     XCP-ng & Xen Orchestra - Vates solutions
> 
>     web: https://vates.tech <https://vates.tech>
> 



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From win-pv-devel-bounces@lists.xenproject.org Wed Jul 23 08:53:23 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Jul 2025 08:53:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1053580.1422373 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueVE1-00063P-Qr; Wed, 23 Jul 2025 08:53:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1053580.1422373; Wed, 23 Jul 2025 08:53:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueVE1-00063I-Nv; Wed, 23 Jul 2025 08:53:21 +0000
Received: by outflank-mailman (input) for mailman id 1053580;
 Wed, 23 Jul 2025 08:53:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vCGW=2E=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1ueVE0-00061v-QB
 for win-pv-devel@lists.xenproject.org; Wed, 23 Jul 2025 08:53:20 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7b49e868-67a2-11f0-a31d-13f23c93f187;
 Wed, 23 Jul 2025 10:53:20 +0200 (CEST)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-558f7fda97eso4810387e87.2
 for <win-pv-devel@lists.xenproject.org>; Wed, 23 Jul 2025 01:53:19 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b49e868-67a2-11f0-a31d-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1753260799; x=1753865599; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=39Vb2nmzh/fkBROVjCEOg18hUHln+hqTCY1ckn84HDI=;
        b=Vkjqh71ACD9U9Ye8p4kGK21gYh4FcsKx+AMqHszTRa5TuRYTx4Pyo663o6TkECVfGZ
         WDQwA7A5j/Ed6hbcmdG/uk0Uoa7grO1OOfD26DdI8OmoPKb0z7uD6W5VrDuuL9lVTngo
         aLSqJNVyxAIBs1FVdJZyfKGe9ej2thgjS2mbM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1753260799; x=1753865599;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=39Vb2nmzh/fkBROVjCEOg18hUHln+hqTCY1ckn84HDI=;
        b=Y9hjTyK7UakYr1/dMr7I+LA7htmDy8nuJRB7Tz5jM7scTfYG8x+0ealY5SZU8ioufF
         4dSAi1mQ4hWmHcIWaaBReBXvV9hjM9lKEaLH/u8RtPvBd4Oa9gWGlsfB+XIwJVmVDvnF
         09Y7cVdqOZ87B+z+y6b8Ia7IUce0Q+RuUG5i5tJvN3mhbpWT2Vni4YyeKbA1hsq/UNlZ
         HeeVepgaC7p+nJ+RgIoVUnrDfv227cMTKp7+grZ8QED2CU7qX2wju4FXeaLTwXyKKuOw
         xsvNcz8RKZpv07TFSNgEmmc7kS5MD4FmqXxnsF3IOgxaYsfAqrEtGAO5YA5hD2Pqx6JO
         bVXg==
X-Gm-Message-State: AOJu0Yx+IyQWPeyhVO8R02oI3gF2iJBdAVOMNIbu4Z36ShQU4E6LvYXt
	AzyXOTBzkHSqqPq4wGxmB41AXDilCRIBI87Lcrd4uhwUleuAEwobY8Q5GIOYEHBErzxy6dsFFbI
	aNDOL2pWmq2YxQPYlGqeEXshkRUfqIpwdGr3tHMQV
X-Gm-Gg: ASbGnctZpOYjOQCPi1T9ttfy7gl5qRYn7H1RjCrHYwsFilcdMFiZlQY8abt67O9FqJC
	TSjVz0vA7wGeLqsAFQziC3Lq+5pvuVRTl/JqoswxHzTZ6cnmxZiqoKlNBfllU1iKSjQzudTTbZZ
	Ugsa+9g1ee6pz6cywC9sp2MZ2WxnrlBgjtlCmN/tdVM6ulkZ77xSJB3606bcDaSw1isqpUFtcE+
	G4Rx7M=
X-Google-Smtp-Source: AGHT+IHy0z3yGWcdzy0v+UkJNlP9X/i7ak6pOBBVskWS4cfu6iWA3JRUAA6e7Wfz6oAlW6JBh4m23T3LxErKL3AgG90=
X-Received: by 2002:a05:6512:b26:b0:553:3892:5ec6 with SMTP id
 2adb3069b0e04-55a513ff5bbmr631395e87.35.1753260799128; Wed, 23 Jul 2025
 01:53:19 -0700 (PDT)
MIME-Version: 1.0
References: <20250723075316.1215-1-ngoc-tu.dinh@vates.tech>
 <CAC_UY8-WF0463XArA3NtH6XYp-2pQUadk128poT9arYWsMv8gQ@mail.gmail.com> <eded78c5-a643-4f25-9e43-3414200dcefe@vates.tech>
In-Reply-To: <eded78c5-a643-4f25-9e43-3414200dcefe@vates.tech>
From: Owen Smith <owen.smith@cloud.com>
Date: Wed, 23 Jul 2025 09:53:08 +0100
X-Gm-Features: Ac12FXzquoSVMBguhBlnYtRdckQWosKFOYQh__6Zruob2stuniUDJBage6fWf2U
Message-ID: <CAC_UY88wJ7GDfPsNqbU4OmGgtpqgS9+sD0QyuWYUvDEX9j2DhQ@mail.gmail.com>
Subject: Re: [XENVIF PATCH] Fix argument to ControllerSetHashAlgorithm
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000219bc8063a94d7d5"

--000000000000219bc8063a94d7d5
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

>From what I can tell, xennet will only set NONE or TOEPLITZ. But xenvif
defaults the Hash->Algorithm to UNSPECIFIED, so its possible that xennet
may not set the algorithm and leave it as default.
UNSPECIFIED seems to only be used as a log line to detect when xennet has
not set an algorithm.
Either UNSPECIFIED should be treated the same as NONE, or removed entirely
- though removal would require a change to the interface header, and a
version change...

    switch (Hash->Algorithm) {
    case XENVIF_PACKET_HASH_ALGORITHM_NONE:
    case XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED:
        NetifAlgorithm =3D XEN_NETIF_CTRL_HASH_ALGORITHM_NONE;
        Size =3D 1;
        Mapping =3D &Zero;
        Flags =3D 0;
        break;

adding UNSPECIFIED to this switch in __FrontendUpdateHash is likely the
simplest solution.
At this point, Size, Mapping and Flags dont need to be assigned when
NetifAlgorithm is NONE, as they are not used due to the 'goto done' code
path

Owen

On Wed, Jul 23, 2025 at 9:38=E2=80=AFAM Tu Dinh <ngoc-tu.dinh@vates.tech> w=
rote:

> On 23/07/2025 10:32, Owen Smith wrote:
> > XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED seems to be a valid value, use=
d
> > to determine if xennet requested or did not request a specific
> > algorithm, so I think making XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED
> > report STATUS_NOT_SUPPORTED could cause issues.
> >
> > The mapping from XENVIF_PACKET_HASH_ALGORITHM values
> > to XEN_NETIF_CTRL_HASH_ALGORITHM_* is a good fix.
>
> I don't mind reverting the behavior, but I couldn't find any mention of
> XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED in xennet, Windows also only
> supports NdisHashFunctionToeplitz. Was this used in a previous xennet
> version? Also, the default case may very well break if other hash
> algorithms were introduced in the future...
>
> >
> > Owen
> >
> > On Wed, Jul 23, 2025 at 8:53=E2=80=AFAM Tu Dinh <ngoc-tu.dinh@vates.tec=
h> wrote:
> >
> >     ControllerSetHashAlgorithm expects a XEN_NETIF_CTRL_HASH_ALGORITHM_=
*
> >     whereas Hash->Algorithm is of type XENVIF_PACKET_HASH_ALGORITHM.
> >
> >     These two enums are not aligned so translate them manually.
> >
> >     Also simply return STATUS_NOT_SUPPORTED when an invalid
> Hash->Algorithm
> >     is supplied.
> >
> >     Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
> >     ---
> >       src/xenvif/frontend.c | 11 ++++++-----
> >       1 file changed, 6 insertions(+), 5 deletions(-)
> >
> >     diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
> >     index 79b04fb..86bebf8 100644
> >     --- a/src/xenvif/frontend.c
> >     +++ b/src/xenvif/frontend.c
> >     @@ -1883,6 +1883,7 @@ __FrontendUpdateHash(
> >       {
> >           PXENVIF_CONTROLLER      Controller;
> >           ULONG                   Zero =3D 0;
> >     +    ULONG                   NetifAlgorithm;
> >           ULONG                   Size;
> >           PULONG                  Mapping;
> >           ULONG                   Flags;
> >     @@ -1892,12 +1893,14 @@ __FrontendUpdateHash(
> >
> >           switch (Hash->Algorithm) {
> >           case XENVIF_PACKET_HASH_ALGORITHM_NONE:
> >     +        NetifAlgorithm =3D XEN_NETIF_CTRL_HASH_ALGORITHM_NONE;
> >               Size =3D 1;
> >               Mapping =3D &Zero;
> >               Flags =3D 0;
> >               break;
> >
> >           case XENVIF_PACKET_HASH_ALGORITHM_TOEPLITZ:
> >     +        NetifAlgorithm =3D XEN_NETIF_CTRL_HASH_ALGORITHM_TOEPLITZ;
> >               Size =3D Hash->Size;
> >               Mapping =3D Hash->Mapping;
> >               Flags =3D Hash->Flags;
> >     @@ -1905,17 +1908,15 @@ __FrontendUpdateHash(
> >
> >           case XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED:
> >           default:
> >     -        (VOID) ControllerSetHashAlgorithm(Controller,
> >     -
> >     XEN_NETIF_CTRL_HASH_ALGORITHM_NONE);
> >     -        goto done;
> >     +        return STATUS_NOT_SUPPORTED;
> >           }
> >
> >           status =3D ControllerSetHashAlgorithm(Controller,
> >     -                                        Hash->Algorithm);
> >     +                                        NetifAlgorithm);
> >           if (!NT_SUCCESS(status))
> >               goto fail1;
> >
> >     -    if (Hash->Algorithm =3D=3D XEN_NETIF_CTRL_HASH_ALGORITHM_NONE)
> >     +    if (NetifAlgorithm =3D=3D XEN_NETIF_CTRL_HASH_ALGORITHM_NONE)
> >               goto done;
> >
> >           status =3D ControllerSetHashMappingSize(Controller, Size);
> >     --
> >     2.50.1.windows.1
> >
> >
> >
> >     Ngoc Tu Dinh | Vates XCP-ng Developer
> >
> >     XCP-ng & Xen Orchestra - Vates solutions
> >
> >     web: https://vates.tech <https://vates.tech>
> >
>
>
>
> Ngoc Tu Dinh | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech
>
>
>

--000000000000219bc8063a94d7d5
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">From what I can tell, xennet will only set NONE or TOEPLITZ. But xenvif =
defaults the Hash-&gt;Algorithm to UNSPECIFIED, so its possible that xennet=
 may not set the algorithm and leave it as default.</div><div class=3D"gmai=
l_default" style=3D"font-family:monospace">UNSPECIFIED seems to only be use=
d as a log line to detect when xennet has not set an algorithm.</div><div c=
lass=3D"gmail_default" style=3D"font-family:monospace">Either UNSPECIFIED s=
hould be treated the same as NONE, or removed entirely - though=C2=A0remova=
l would require a change to the interface header, and a version change...</=
div><div class=3D"gmail_default" style=3D"font-family:monospace"><br></div>=
<div class=3D"gmail_default" style=3D"font-family:monospace">=C2=A0 =C2=A0 =
switch (Hash-&gt;Algorithm) {<br>=C2=A0 =C2=A0 case XENVIF_PACKET_HASH_ALGO=
RITHM_NONE:<br>=C2=A0 =C2=A0 case XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED:=
<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 NetifAlgorithm =3D XEN_NETIF_CTRL_HASH_ALGO=
RITHM_NONE;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 Size =3D 1;<br>=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 Mapping =3D &amp;Zero;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 Flags =3D =
0;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 break;</div><div class=3D"gmail_default" =
style=3D"font-family:monospace"><br></div><div class=3D"gmail_default" styl=
e=3D"font-family:monospace">adding UNSPECIFIED to this switch in=C2=A0__Fro=
ntendUpdateHash is likely the simplest solution.<br>At this point, Size, Ma=
pping and Flags dont=C2=A0need to be assigned when NetifAlgorithm is NONE, =
as they are not used due to the &#39;goto done&#39; code path</div><div cla=
ss=3D"gmail_default" style=3D"font-family:monospace"><br></div><div class=
=3D"gmail_default" style=3D"font-family:monospace">Owen</div></div><br><div=
 class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" class=3D"gmai=
l_attr">On Wed, Jul 23, 2025 at 9:38=E2=80=AFAM Tu Dinh &lt;ngoc-tu.dinh@va=
tes.tech&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1=
ex">On 23/07/2025 10:32, Owen Smith wrote:<br>
&gt; XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED seems to be a valid value, us=
ed <br>
&gt; to determine if xennet requested or did not request a specific <br>
&gt; algorithm, so I think making=C2=A0XENVIF_PACKET_HASH_ALGORITHM_UNSPECI=
FIED <br>
&gt; report STATUS_NOT_SUPPORTED could cause issues.<br>
&gt; <br>
&gt; The mapping from=C2=A0XENVIF_PACKET_HASH_ALGORITHM values <br>
&gt; to=C2=A0XEN_NETIF_CTRL_HASH_ALGORITHM_* is a good fix.<br>
<br>
I don&#39;t mind reverting the behavior, but I couldn&#39;t find any mentio=
n of <br>
XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED in xennet, Windows also only <br>
supports NdisHashFunctionToeplitz. Was this used in a previous xennet <br>
version? Also, the default case may very well break if other hash <br>
algorithms were introduced in the future...<br>
<br>
&gt; <br>
&gt; Owen<br>
&gt; <br>
&gt; On Wed, Jul 23, 2025 at 8:53=E2=80=AFAM Tu Dinh &lt;ngoc-tu.dinh@vates=
.tech&gt; wrote:<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0ControllerSetHashAlgorithm expects a XEN_NETIF_CTRL=
_HASH_ALGORITHM_*<br>
&gt;=C2=A0 =C2=A0 =C2=A0whereas Hash-&gt;Algorithm is of type XENVIF_PACKET=
_HASH_ALGORITHM.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0These two enums are not aligned so translate them m=
anually.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0Also simply return STATUS_NOT_SUPPORTED when an inv=
alid Hash-&gt;Algorithm<br>
&gt;=C2=A0 =C2=A0 =C2=A0is supplied.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0Signed-off-by: Tu Dinh &lt;ngoc-tu.dinh@vates.tech&=
gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0---<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0src/xenvif/frontend.c | 11 ++++++-----<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A01 file changed, 6 insertions(+), 5 deletions=
(-)<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0diff --git a/src/xenvif/frontend.c b/src/xenvif/fro=
ntend.c<br>
&gt;=C2=A0 =C2=A0 =C2=A0index 79b04fb..86bebf8 100644<br>
&gt;=C2=A0 =C2=A0 =C2=A0--- a/src/xenvif/frontend.c<br>
&gt;=C2=A0 =C2=A0 =C2=A0+++ b/src/xenvif/frontend.c<br>
&gt;=C2=A0 =C2=A0 =C2=A0@@ -1883,6 +1883,7 @@ __FrontendUpdateHash(<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0{<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PXENVIF_CONTROLLER=C2=A0 =C2=
=A0 =C2=A0 Controller;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ULONG=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Zero =3D 0;<br>
&gt;=C2=A0 =C2=A0 =C2=A0+=C2=A0 =C2=A0 ULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0NetifAlgorithm;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ULONG=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Size;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PULONG=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Mapping;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ULONG=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Flags;<br>
&gt;=C2=A0 =C2=A0 =C2=A0@@ -1892,12 +1893,14 @@ __FrontendUpdateHash(<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0switch (Hash-&gt;Algorithm) {<=
br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case XENVIF_PACKET_HASH_ALGORI=
THM_NONE:<br>
&gt;=C2=A0 =C2=A0 =C2=A0+=C2=A0 =C2=A0 =C2=A0 =C2=A0 NetifAlgorithm =3D XEN=
_NETIF_CTRL_HASH_ALGORITHM_NONE;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Size =3D 1;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Mapping =3D &amp=
;Zero;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Flags =3D 0;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case XENVIF_PACKET_HASH_ALGORI=
THM_TOEPLITZ:<br>
&gt;=C2=A0 =C2=A0 =C2=A0+=C2=A0 =C2=A0 =C2=A0 =C2=A0 NetifAlgorithm =3D XEN=
_NETIF_CTRL_HASH_ALGORITHM_TOEPLITZ;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Size =3D Hash-&g=
t;Size;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Mapping =3D Hash=
-&gt;Mapping;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Flags =3D Hash-&=
gt;Flags;<br>
&gt;=C2=A0 =C2=A0 =C2=A0@@ -1905,17 +1908,15 @@ __FrontendUpdateHash(<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case XENVIF_PACKET_HASH_ALGORI=
THM_UNSPECIFIED:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0default:<br>
&gt;=C2=A0 =C2=A0 =C2=A0-=C2=A0 =C2=A0 =C2=A0 =C2=A0 (VOID) ControllerSetHa=
shAlgorithm(Controller,<br>
&gt;=C2=A0 =C2=A0 =C2=A0-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0XEN_NETIF_CTRL_HASH_ALGORITHM_NONE);<br>
&gt;=C2=A0 =C2=A0 =C2=A0-=C2=A0 =C2=A0 =C2=A0 =C2=A0 goto done;<br>
&gt;=C2=A0 =C2=A0 =C2=A0+=C2=A0 =C2=A0 =C2=A0 =C2=A0 return STATUS_NOT_SUPP=
ORTED;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0status =3D ControllerSetHashAl=
gorithm(Controller,<br>
&gt;=C2=A0 =C2=A0 =C2=A0-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 Hash-&gt;Algorithm);<br>
&gt;=C2=A0 =C2=A0 =C2=A0+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 NetifAlgorithm);<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (!NT_SUCCESS(status))<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto fail1;<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0-=C2=A0 =C2=A0 if (Hash-&gt;Algorithm =3D=3D XEN_NE=
TIF_CTRL_HASH_ALGORITHM_NONE)<br>
&gt;=C2=A0 =C2=A0 =C2=A0+=C2=A0 =C2=A0 if (NetifAlgorithm =3D=3D XEN_NETIF_=
CTRL_HASH_ALGORITHM_NONE)<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto done;<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0status =3D ControllerSetHashMa=
ppingSize(Controller, Size);<br>
&gt;=C2=A0 =C2=A0 =C2=A0-- <br>
&gt;=C2=A0 =C2=A0 =C2=A02.50.1.windows.1<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0Ngoc Tu Dinh | Vates XCP-ng Developer<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0XCP-ng &amp; Xen Orchestra - Vates solutions<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0web: <a href=3D"https://vates.tech" rel=3D"noreferr=
er" target=3D"_blank">https://vates.tech</a> &lt;<a href=3D"https://vates.t=
ech" rel=3D"noreferrer" target=3D"_blank">https://vates.tech</a>&gt;<br>
&gt; <br>
<br>
<br>
<br>
Ngoc Tu Dinh | Vates XCP-ng Developer<br>
<br>
XCP-ng &amp; Xen Orchestra - Vates solutions<br>
<br>
web: <a href=3D"https://vates.tech" rel=3D"noreferrer" target=3D"_blank">ht=
tps://vates.tech</a><br>
<br>
<br>
</blockquote></div>

--000000000000219bc8063a94d7d5--


From win-pv-devel-bounces@lists.xenproject.org Wed Jul 23 08:58:31 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Jul 2025 08:58:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1053597.1422376 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueVJ0-0006F1-7D; Wed, 23 Jul 2025 08:58:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1053597.1422376; Wed, 23 Jul 2025 08:58:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueVJ0-0006Eu-4f; Wed, 23 Jul 2025 08:58:30 +0000
Received: by outflank-mailman (input) for mailman id 1053597;
 Wed, 23 Jul 2025 08:58:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=DIrM=2E=bounce.vates.tech=bounce-md_30504962.6880a42e.v1-47167be1a0d146e19638348367d58bd7@srs-se1.protection.inumbo.net>)
 id 1ueVIz-0006Dr-0i
 for win-pv-devel@lists.xenproject.org; Wed, 23 Jul 2025 08:58:29 +0000
Received: from mail13.wdc04.mandrillapp.com (mail13.wdc04.mandrillapp.com
 [205.201.139.13]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 30135f36-67a3-11f0-b895-0df219b8e170;
 Wed, 23 Jul 2025 10:58:23 +0200 (CEST)
Received: from pmta16.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail13.wdc04.mandrillapp.com (Mailchimp) with ESMTP id 4bn7Mf4CJ4zNCdDQy
 for <win-pv-devel@lists.xenproject.org>; Wed, 23 Jul 2025 08:58:22 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 47167be1a0d146e19638348367d58bd7; Wed, 23 Jul 2025 08:58:22 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 30135f36-67a3-11f0-b895-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1753261102; x=1753531102;
	bh=gxX8kw6QCUQfPo7VAGNjlKob7AhTRZxFXpbr8Rt4VO4=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=rWGP8tdzzSlBLHC9ywq8/dx1ugm2XKZjroMJhFnfoJ5owRbH+5L4Ul1pvF76wLIiO
	 4j284qCxDfnX/v7oJjrVO8TcAWHaJvTpjO5/MzzgfHoHyX+nGP4Bq29+hXksk6ujX1
	 7jULXpiyhAzt/14ANn4QE07DLij7ogYlRF5Ku0dfov0W8I9bsdAUyMiTfGBSoREniw
	 QG6sWS/Md/4QxxrwdsKzzj4PUdmmG9G53IK4sogDnqG1oIezBDTYH3hBy5Tqc+epkW
	 ExHKw5w1HXcG6j1NtCUhVvn2OUpDMcyCILQNaWv4V/0SAahQA9K4XyvFOLT/9g3trT
	 2fBDCcMya3DUQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1753261102; x=1753521602; i=ngoc-tu.dinh@vates.tech;
	bh=gxX8kw6QCUQfPo7VAGNjlKob7AhTRZxFXpbr8Rt4VO4=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=SSZEUg7WhgMsey2KGxLSUZtWWRsOQZQaMaJcnnl583Ot9djKyGkQ9VryF3SDJW0a0
	 WurYPhlqL2YBtsMWJkunglaH1KODRTbRYYFC4JTN6XM0hBDFHwnFv/VJ2b8XxPSNVI
	 wtjEIagO/+6a0oxFUy/SBxZYXoANDFyHNHYl8gJQfYIFO8j6aXZ68l8wQ/oylWClLd
	 hww2uSSHEv6Elz6viQiIDx+TIw033Z2/kIB0IBXXFSvOHlos1QiYm37WXVq/PTMzbt
	 t3LCNzQfqsTqLnax6fglisWdyXBLKCshCbViYrCXV2bQMajBkQIo7JA4wwVFgvV2ca
	 eZ7xWa7pja+hA==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[XENVIF=20PATCH]=20Fix=20argument=20to=20ControllerSetHashAlgorithm?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1753261101788
Message-Id: <9039e2bb-4ed7-489f-b6de-afe155b43714@vates.tech>
To: "Owen Smith" <owen.smith@cloud.com>
Cc: win-pv-devel@lists.xenproject.org
References: <20250723075316.1215-1-ngoc-tu.dinh@vates.tech> <CAC_UY8-WF0463XArA3NtH6XYp-2pQUadk128poT9arYWsMv8gQ@mail.gmail.com> <eded78c5-a643-4f25-9e43-3414200dcefe@vates.tech> <CAC_UY88wJ7GDfPsNqbU4OmGgtpqgS9+sD0QyuWYUvDEX9j2DhQ@mail.gmail.com>
In-Reply-To: <CAC_UY88wJ7GDfPsNqbU4OmGgtpqgS9+sD0QyuWYUvDEX9j2DhQ@mail.gmail.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.47167be1a0d146e19638348367d58bd7?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250723:md
Date: Wed, 23 Jul 2025 08:58:22 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 23/07/2025 10:53, Owen Smith wrote:
>  From what I can tell, xennet will only set NONE or TOEPLITZ. But xenvif 
> defaults the Hash->Algorithm to UNSPECIFIED, so its possible that xennet 
> may not set the algorithm and leave it as default.
> UNSPECIFIED seems to only be used as a log line to detect when xennet 
> has not set an algorithm.
> Either UNSPECIFIED should be treated the same as NONE, or removed 
> entirely - though=C2=A0removal would require a change to the interface 
> header, and a version change...
> 
>  =C2=A0 =C2=A0 switch (Hash->Algorithm) {
>  =C2=A0 =C2=A0 case XENVIF_PACKET_HASH_ALGORITHM_NONE:
>  =C2=A0 =C2=A0 case XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED:
>  =C2=A0 =C2=A0 =C2=A0 =C2=A0 NetifAlgorithm =3D XEN_NETIF_CTRL_HASH_ALGOR=
ITHM_NONE;
>  =C2=A0 =C2=A0 =C2=A0 =C2=A0 Size =3D 1;
>  =C2=A0 =C2=A0 =C2=A0 =C2=A0 Mapping =3D &Zero;
>  =C2=A0 =C2=A0 =C2=A0 =C2=A0 Flags =3D 0;
>  =C2=A0 =C2=A0 =C2=A0 =C2=A0 break;
> 
> adding UNSPECIFIED to this switch in=C2=A0__FrontendUpdateHash is likely =
the 
> simplest solution.
> At this point, Size, Mapping and Flags dont=C2=A0need to be assigned when=
 
> NetifAlgorithm is NONE, as they are not used due to the 'goto done' code 
> path
> 
> Owen

That sounds good to me, it also tracks with the other places that handle 
XENVIF_PACKET_HASH_ALGORITHM. I'll prepare a v2.

> 
> On Wed, Jul 23, 2025 at 9:38=E2=80=AFAM Tu Dinh <ngoc-tu.dinh@vates.tech>=
 wrote:
> 
>     On 23/07/2025 10:32, Owen Smith wrote:
>      > XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED seems to be a valid
>     value, used
>      > to determine if xennet requested or did not request a specific
>      > algorithm, so I think
>     making=C2=A0XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED
>      > report STATUS_NOT_SUPPORTED could cause issues.
>      >
>      > The mapping from=C2=A0XENVIF_PACKET_HASH_ALGORITHM values
>      > to=C2=A0XEN_NETIF_CTRL_HASH_ALGORITHM_* is a good fix.
> 
>     I don't mind reverting the behavior, but I couldn't find any mention =
of
>     XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED in xennet, Windows also only
>     supports NdisHashFunctionToeplitz. Was this used in a previous xennet
>     version? Also, the default case may very well break if other hash
>     algorithms were introduced in the future...
> 
>      >
>      > Owen
>      >
>      > On Wed, Jul 23, 2025 at 8:53=E2=80=AFAM Tu Dinh <ngoc-tu.dinh@vate=
s.tech>
>     wrote:
>      >
>      >=C2=A0 =C2=A0 =C2=A0ControllerSetHashAlgorithm expects a
>     XEN_NETIF_CTRL_HASH_ALGORITHM_*
>      >=C2=A0 =C2=A0 =C2=A0whereas Hash->Algorithm is of type XENVIF_PACKE=
T_HASH_ALGORITHM.
>      >
>      >=C2=A0 =C2=A0 =C2=A0These two enums are not aligned so translate th=
em manually.
>      >
>      >=C2=A0 =C2=A0 =C2=A0Also simply return STATUS_NOT_SUPPORTED when an=
 invalid Hash-
>      >Algorithm
>      >=C2=A0 =C2=A0 =C2=A0is supplied.
>      >
>      >=C2=A0 =C2=A0 =C2=A0Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech=
>
>      >=C2=A0 =C2=A0 =C2=A0---
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0src/xenvif/frontend.c | 11 ++++++-----
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A01 file changed, 6 insertions(+), 5 delet=
ions(-)
>      >
>      >=C2=A0 =C2=A0 =C2=A0diff --git a/src/xenvif/frontend.c b/src/xenvif=
/frontend.c
>      >=C2=A0 =C2=A0 =C2=A0index 79b04fb..86bebf8 100644
>      >=C2=A0 =C2=A0 =C2=A0--- a/src/xenvif/frontend.c
>      >=C2=A0 =C2=A0 =C2=A0+++ b/src/xenvif/frontend.c
>      >=C2=A0 =C2=A0 =C2=A0@@ -1883,6 +1883,7 @@ __FrontendUpdateHash(
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0{
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PXENVIF_CONTROLLER=C2=A0 =
=C2=A0 =C2=A0 Controller;
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ULONG=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Zero =3D 0;
>      >=C2=A0 =C2=A0 =C2=A0+=C2=A0 =C2=A0 ULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0NetifAlgorithm;
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ULONG=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Size;
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PULONG=C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Mapping;
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ULONG=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Flags;
>      >=C2=A0 =C2=A0 =C2=A0@@ -1892,12 +1893,14 @@ __FrontendUpdateHash(
>      >
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0switch (Hash->Algorithm) {
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case XENVIF_PACKET_HASH_AL=
GORITHM_NONE:
>      >=C2=A0 =C2=A0 =C2=A0+=C2=A0 =C2=A0 =C2=A0 =C2=A0 NetifAlgorithm =3D=
 XEN_NETIF_CTRL_HASH_ALGORITHM_NONE;
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Size =3D 1;
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Mapping =3D =
&Zero;
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Flags =3D 0;
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;
>      >
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case XENVIF_PACKET_HASH_AL=
GORITHM_TOEPLITZ:
>      >=C2=A0 =C2=A0 =C2=A0+=C2=A0 =C2=A0 =C2=A0 =C2=A0 NetifAlgorithm =3D=
 XEN_NETIF_CTRL_HASH_ALGORITHM_TOEPLITZ;
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Size =3D Has=
h->Size;
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Mapping =3D =
Hash->Mapping;
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Flags =3D Ha=
sh->Flags;
>      >=C2=A0 =C2=A0 =C2=A0@@ -1905,17 +1908,15 @@ __FrontendUpdateHash(
>      >
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case XENVIF_PACKET_HASH_AL=
GORITHM_UNSPECIFIED:
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0default:
>      >=C2=A0 =C2=A0 =C2=A0-=C2=A0 =C2=A0 =C2=A0 =C2=A0 (VOID) ControllerS=
etHashAlgorithm(Controller,
>      >=C2=A0 =C2=A0 =C2=A0-
>      >=C2=A0 =C2=A0 =C2=A0XEN_NETIF_CTRL_HASH_ALGORITHM_NONE);
>      >=C2=A0 =C2=A0 =C2=A0-=C2=A0 =C2=A0 =C2=A0 =C2=A0 goto done;
>      >=C2=A0 =C2=A0 =C2=A0+=C2=A0 =C2=A0 =C2=A0 =C2=A0 return STATUS_NOT_=
SUPPORTED;
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
>      >
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0status =3D ControllerSetHa=
shAlgorithm(Controller,
>      >=C2=A0 =C2=A0 =C2=A0-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 Hash->Algorithm);
>      >=C2=A0 =C2=A0 =C2=A0+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 NetifAlgorithm);
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (!NT_SUCCESS(status))
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto fail1;
>      >
>      >=C2=A0 =C2=A0 =C2=A0-=C2=A0 =C2=A0 if (Hash->Algorithm =3D=3D XEN_N=
ETIF_CTRL_HASH_ALGORITHM_NONE)
>      >=C2=A0 =C2=A0 =C2=A0+=C2=A0 =C2=A0 if (NetifAlgorithm =3D=3D XEN_NE=
TIF_CTRL_HASH_ALGORITHM_NONE)
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto done;
>      >
>      >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0status =3D ControllerSetHa=
shMappingSize(Controller, Size);
>      >=C2=A0 =C2=A0 =C2=A0--
>      >=C2=A0 =C2=A0 =C2=A02.50.1.windows.1
>      >
>      >
>      >
>      >=C2=A0 =C2=A0 =C2=A0Ngoc Tu Dinh | Vates XCP-ng Developer
>      >
>      >=C2=A0 =C2=A0 =C2=A0XCP-ng & Xen Orchestra - Vates solutions
>      >
>      >=C2=A0 =C2=A0 =C2=A0web: https://vates.tech <https://vates.tech> <h=
ttps://
>     vates.tech <https://vates.tech>>
>      >
> 
> 
> 
>     Ngoc Tu Dinh | Vates XCP-ng Developer
> 
>     XCP-ng & Xen Orchestra - Vates solutions
> 
>     web: https://vates.tech <https://vates.tech>
> 
> 



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From win-pv-devel-bounces@lists.xenproject.org Wed Jul 23 09:02:50 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Jul 2025 09:02:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1053612.1422380 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueVNC-0007Mm-I3; Wed, 23 Jul 2025 09:02:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1053612.1422380; Wed, 23 Jul 2025 09:02:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueVNC-0007Mf-FX; Wed, 23 Jul 2025 09:02:50 +0000
Received: by outflank-mailman (input) for mailman id 1053612;
 Wed, 23 Jul 2025 09:02:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I4MP=2E=bounce.vates.tech=bounce-md_30504962.6880a536.v1-19bfca2b4d0f440dbc2a6be1353560c5@srs-se1.protection.inumbo.net>)
 id 1ueVNB-0007MZ-EB
 for win-pv-devel@lists.xenproject.org; Wed, 23 Jul 2025 09:02:49 +0000
Received: from mail13.wdc04.mandrillapp.com (mail13.wdc04.mandrillapp.com
 [205.201.139.13]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cd474806-67a3-11f0-a31d-13f23c93f187;
 Wed, 23 Jul 2025 11:02:47 +0200 (CEST)
Received: from pmta16.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail13.wdc04.mandrillapp.com (Mailchimp) with ESMTP id 4bn7Sk5Qb6zNCdDq5
 for <win-pv-devel@lists.xenproject.org>; Wed, 23 Jul 2025 09:02:46 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 19bfca2b4d0f440dbc2a6be1353560c5; Wed, 23 Jul 2025 09:02:46 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd474806-67a3-11f0-a31d-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1753261366; x=1753531366;
	bh=voKE6azF85nDBM0LTdy9RajgNonO5fDMoWaDYZHGs88=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=Q+8eOHhhorRblYOcFRJf2obBUGcJBqJiA0ACMGbi8hfT1h2GkDx1epHJdBqaTfbX/
	 nb6WzqviOXDo3y/uDwbv+AQICqKXw5Z37OIQX6yi8+gmIneqjoC52DSINLK7u6IeXT
	 37TYBn93Mm0yE+OdZT3vEcKXZ2nV40j6UwQ0EvZyIrYU37WhKJKehtcSkd9Xa9BmDB
	 5/zWrKyIrX/QsRKgXqjHOAf/KWfntdbnUdzrWRpXKKyeT3xvuFY1IHI2dAzzdZvgUR
	 1jKYJS784JoJpiQ6O8wtXwCgWBmQLYC+aPpMAx5c01eLCKmjJ4trz0jMafQvu953R+
	 hYhZvyhZbtU2w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1753261366; x=1753521866; i=ngoc-tu.dinh@vates.tech;
	bh=voKE6azF85nDBM0LTdy9RajgNonO5fDMoWaDYZHGs88=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=aISAzrgtmhHuWPbnLAX2OPBsRIDKymBrtxRx5C7d5u7/7dZUMOSSIvEwIkNfDyM1l
	 xlXKzZzrzgZi3UXrMCoThqHiMDhPTcz1j6vjq1SGHwfMrBsEDSZRAu0/pdnvzwedY2
	 WgkwtCiR73iWdCOQnS1ofiDnu6gtHL+J2M0FV2i/bEykUdqyYfs4HlWNMvtKkNDx31
	 Fr74mmjvFdkp3HezFFvCbujwUxnYFUltFU27hhzcUiOjitnjxoHGvWBhlNRUIH+rSM
	 Y5EPFoO6qwkMrJcOhyRJRqeUHADOWSPzv1LzZfjcYJGBjpxHdFiTsQl0QDozdFwGKv
	 /DTqWOJae+oIw==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[XENVIF=20PATCH=20v2]=20Fix=20argument=20to=20ControllerSetHashAlgorithm?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1753261365824
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250723090243.1957-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.19bfca2b4d0f440dbc2a6be1353560c5?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250723:md
Date: Wed, 23 Jul 2025 09:02:46 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

ControllerSetHashAlgorithm expects a XEN_NETIF_CTRL_HASH_ALGORITHM_*
whereas Hash->Algorithm is of type XENVIF_PACKET_HASH_ALGORITHM.

These two enums are not aligned so translate them manually.

Also treat XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED the same as
XENVIF_PACKET_HASH_ALGORITHM_NONE, but return STATUS_NOT_SUPPORTED when
an unsupported Hash->Algorithm is supplied.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
v2: Treat XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED the same as
XENVIF_PACKET_HASH_ALGORITHM_NONE.
---
 src/xenvif/frontend.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
index 79b04fb..90ec2b1 100644
--- a/src/xenvif/frontend.c
+++ b/src/xenvif/frontend.c
@@ -1883,6 +1883,7 @@ __FrontendUpdateHash(
 {
     PXENVIF_CONTROLLER      Controller;
     ULONG                   Zero = 0;
+    ULONG                   NetifAlgorithm;
     ULONG                   Size;
     PULONG                  Mapping;
     ULONG                   Flags;
@@ -1892,30 +1893,30 @@ __FrontendUpdateHash(
 
     switch (Hash->Algorithm) {
     case XENVIF_PACKET_HASH_ALGORITHM_NONE:
+    case XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED:
+        NetifAlgorithm = XEN_NETIF_CTRL_HASH_ALGORITHM_NONE;
         Size = 1;
         Mapping = &Zero;
         Flags = 0;
         break;
 
     case XENVIF_PACKET_HASH_ALGORITHM_TOEPLITZ:
+        NetifAlgorithm = XEN_NETIF_CTRL_HASH_ALGORITHM_TOEPLITZ;
         Size = Hash->Size;
         Mapping = Hash->Mapping;
         Flags = Hash->Flags;
         break;
 
-    case XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED:
     default:
-        (VOID) ControllerSetHashAlgorithm(Controller,
-                                          XEN_NETIF_CTRL_HASH_ALGORITHM_NONE);
-        goto done;
+        return STATUS_NOT_SUPPORTED;
     }
 
     status = ControllerSetHashAlgorithm(Controller,
-                                        Hash->Algorithm);
+                                        NetifAlgorithm);
     if (!NT_SUCCESS(status))
         goto fail1;
 
-    if (Hash->Algorithm == XEN_NETIF_CTRL_HASH_ALGORITHM_NONE)
+    if (NetifAlgorithm == XEN_NETIF_CTRL_HASH_ALGORITHM_NONE)
         goto done;
 
     status = ControllerSetHashMappingSize(Controller, Size);
-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Wed Jul 23 13:58:33 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Jul 2025 13:58:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1054055.1422858 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueZzL-0008FP-Pa; Wed, 23 Jul 2025 13:58:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1054055.1422858; Wed, 23 Jul 2025 13:58:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueZzL-0008FI-N5; Wed, 23 Jul 2025 13:58:31 +0000
Received: by outflank-mailman (input) for mailman id 1054055;
 Wed, 23 Jul 2025 13:58:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5jtG=2E=bounce.vates.tech=bounce-md_30504962.6880ea83.v1-3fa3c330c77840498c54b7f11f74f062@srs-se1.protection.inumbo.net>)
 id 1ueZzJ-0008FA-T9
 for win-pv-devel@lists.xenproject.org; Wed, 23 Jul 2025 13:58:29 +0000
Received: from mail132-21.atl131.mandrillapp.com
 (mail132-21.atl131.mandrillapp.com [198.2.132.21])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1bba16ec-67cd-11f0-a31d-13f23c93f187;
 Wed, 23 Jul 2025 15:58:28 +0200 (CEST)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4bnG1v1MPYz1bNssb
 for <win-pv-devel@lists.xenproject.org>; Wed, 23 Jul 2025 13:58:27 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 3fa3c330c77840498c54b7f11f74f062; Wed, 23 Jul 2025 13:58:27 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1bba16ec-67cd-11f0-a31d-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1753279107; x=1753549107;
	bh=t+iOCUhw1oILFZdkx0toUNVUz0v3VyDDcuPxCsOwRZI=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=xIdcrksMWnldGhmU3YgygAqXJmQ9Mtepq1/gnWQcGIkXtppAUF8dxO4v76Gvhy3Rz
	 s3wVTjQFg2G0+R9IxZr5PlZHqya2I1xOigKXSSVl6BJZMr7rrsPHbTviDpZX4CL41V
	 98oB/yyc4fyWJIwp9C28r5R2AyLeEdgwaTbq0NyR3vudw6iYfkyMMkMxUK6+4J4I96
	 vMQ25DQYj4S246EzGEqX8O9YgCnnA3EGTN/6Noe5Cr0B7ZEqrq8DWvZsZVPx2SnCHS
	 Y3345M8t2vxlh9or5xYh7PzfZgpxBI8w+CAV2icl6SKffGZEBMtYKJX3359p9nllfe
	 FgBZUX7DAkjlw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1753279107; x=1753539607; i=ngoc-tu.dinh@vates.tech;
	bh=t+iOCUhw1oILFZdkx0toUNVUz0v3VyDDcuPxCsOwRZI=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=po5HgO5RdUmvoBsrStW+Eat3B0s2fKUL/bkl02C6a2sI5sj/JelNwBh1z5MAOUuY1
	 5auZKUecYV72LRswXt47Sb38JyAKujHG0YK70O6J5IqQbKOzFuxS0oN98JaXo4wCxs
	 Ci6TtxWW3gVe1Q2+Q8G6fVoQ8YtqboPcZVkQgiTdfXS3iezWUymsO1uwK3xwca+fFV
	 D5rKp87O6DLdlxwyA2r7VIRI8AaA50M27MpIHQgrxy2NPoXbv89VZL7ZRha0OCBs3a
	 4K6CeEXrB48mRwQ/vb4vrXs1FS4WkK4qC7+TF8lSJ7D5OV/YkqNRTH9WXe2aCnr8Po
	 IRRyZTupxNbzw==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2=200/7]=20Implement=20forced=20unplug=20and=20forced=20activation?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1753279106399
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.3fa3c330c77840498c54b7f11f74f062?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250723:md
Date: Wed, 23 Jul 2025 13:58:27 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

The goal of these two features is to simplify driver servicing and avoid
requiring storing driver state in Registry.

Forced unplug, as name implies, forcefully unplugs emulated devices when
a driver is present, rather than when it's active. It defines a Registry
key at CurrentControlSet\XEN\ForceUnplug. Drivers can opt into forced
unplug by creating an appropriate value (DISKS/NICS) in this key.

Forced activation is the companion to forced unplug. It aims to make
activation of Xenbus FDOs deterministic and stateless, using a
precedence mapping based on device IDs, prioritizing the vendor device
over the generic ones. This avoids situations where the wrong FDO is
activated, which will prevent Windows Update from working.

With forced activation, Xenfilt is now installed via INF on top of the
current installation routines. This means PV drivers can be injected
offline without needing another reboot to be reconfigured.

To avoid affecting older drivers, the two features are conditioned
behind new build variables FORCE_UNPLUG and FORCE_ACTIVATE.

The following scenarios have been successfully tested, both requiring
only one reboot:
* Offline driver installation via DISM
* Toggling vendor device

Tu Dinh (7):
  Add forced unplug support
  xenfilt: Add Xenbus device precedence mechanism
  Add EMULATED v3
  xenbus: Use nonpaged pool in FdoQueryId
  Use EMULATED v3 to force activate Xenbus FDOs
  Enable Xenbus precedence
  Install Xenfilt with INF AddReg

 include/emulated_interface.h |  52 ++++++++++++---
 include/revision.h           |   3 +-
 scripts/genfiles.ps1         |   2 +
 src/xen/driver.c             |  79 ++++++++++++++++++-----
 src/xen/driver.h             |   5 ++
 src/xen/unplug.c             |  13 +++-
 src/xenbus.inf               |  11 ++++
 src/xenbus/fdo.c             | 122 +++++++++++++++++++++++++----------
 src/xenfilt/driver.c         |  51 ++++++++++++++-
 src/xenfilt/driver.h         |   7 ++
 src/xenfilt/emulated.c       |  62 ++++++++++++++++--
 src/xenfilt/emulated.h       |   1 +
 src/xenfilt/fdo.c            |  25 ++++++-
 src/xenfilt/pdo.c            |  80 +++++++++++++++++++----
 src/xenfilt/pdo.h            |  10 ++-
 15 files changed, 435 insertions(+), 88 deletions(-)

-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Wed Jul 23 13:58:35 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Jul 2025 13:58:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1054056.1422863 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueZzP-0008HN-RR; Wed, 23 Jul 2025 13:58:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1054056.1422863; Wed, 23 Jul 2025 13:58:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueZzP-0008HG-OZ; Wed, 23 Jul 2025 13:58:35 +0000
Received: by outflank-mailman (input) for mailman id 1054056;
 Wed, 23 Jul 2025 13:58:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SCwo=2E=bounce.vates.tech=bounce-md_30504962.6880ea86.v1-f7f63db18eb541148f7bdc62401afeec@srs-se1.protection.inumbo.net>)
 id 1ueZzO-0008H4-8l
 for win-pv-devel@lists.xenproject.org; Wed, 23 Jul 2025 13:58:34 +0000
Received: from mail13.wdc04.mandrillapp.com (mail13.wdc04.mandrillapp.com
 [205.201.139.13]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1dca3fa2-67cd-11f0-b895-0df219b8e170;
 Wed, 23 Jul 2025 15:58:32 +0200 (CEST)
Received: from pmta16.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail13.wdc04.mandrillapp.com (Mailchimp) with ESMTP id 4bnG1y6GF9zNCd9SH
 for <win-pv-devel@lists.xenproject.org>; Wed, 23 Jul 2025 13:58:30 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f7f63db18eb541148f7bdc62401afeec; Wed, 23 Jul 2025 13:58:30 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1dca3fa2-67cd-11f0-b895-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1753279110; x=1753549110;
	bh=J31XAE8PUM1N/83rSCQrCH9GxF0pxK3IoFrOWST93Dk=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=p2arjzBw00Zm8XvNgRBM51MYCm+lwtFvD2+AiIE+sKfCPM7D41LIezbCmcEZ/MDEZ
	 Jc+Bj31Cv1QR5sgzeUfZU9cxQEECAf2jpSzNPxy87tu+pN9loDehjrptMnUeb2dmBD
	 KlvMFdP3KCaeuAT3DxmFHBmL8QydxQ2UpZV6tiRrLboGrKWhhQvQ70iiHqlSnLCrqW
	 T1V4Gnpf8xHVcWRZGPgt2M6/kDZ3fsfbQd9uGM/HS3BXzRG/KXd9QPM8J+EanUamG+
	 f1QpIZDriyrE9pffbJLitvETD+xkR9PTzTud1HXVvALnZvxWo2kev4qYDSg8dwjg0H
	 uTvT8E7t3MnfQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1753279110; x=1753539610; i=ngoc-tu.dinh@vates.tech;
	bh=J31XAE8PUM1N/83rSCQrCH9GxF0pxK3IoFrOWST93Dk=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=R6wqTJOdp6yoj0Xd3hAoXtlqh0sD0me99jATyM+EEh4cJabwHJeHAMLwtEIcxeOEq
	 AgpBxQ1m/b1TtFkM2vM0hADuIxP9Ppr0SHR0FRHfGf6o+Qe4tY5zRCkUxHbf8VkHe+
	 LXfDP+cbB+nKXKCqllNH/8akb/BIN5JWZVk04vK+5NPGpR/jNXd6k6bw12BmDLsanW
	 +yEFPyo/FKBcMp6mGl5+BNQQtcsjH18JdNT2mUX1vufk9ieA0tE0aaCYjQzIxpwPVY
	 K07AM5RLepLNhcsvaAmJUVGztxmfP29jtmjboVqhr/BRN5tc7Q89XNfuJND8Twzdi2
	 U717toHoBvizQ==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[XENBUS=20PATCH=20v2=201/7]=20Add=20forced=20unplug=20support?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1753279110267
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250723135819.988-2-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
References: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.f7f63db18eb541148f7bdc62401afeec?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250723:md
Date: Wed, 23 Jul 2025 13:58:30 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Forced unplug aims to simplify driver servicing by, as its name implies,
forcefully unplugging emulated devices when a driver is present, rather
than when it's active.

Create a Registry key at CurrentControlSet\XEN\ForceUnplug. Drivers can
opt into forced unplug by creating an appropriate value (DISKS/NICS)
in this key.

Older drivers are not affected.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 src/xen/driver.c | 79 ++++++++++++++++++++++++++++++++++++++----------
 src/xen/driver.h |  5 +++
 src/xen/unplug.c | 13 ++++++--
 3 files changed, 79 insertions(+), 18 deletions(-)

diff --git a/src/xen/driver.c b/src/xen/driver.c
index b44753c..7b2621b 100644
--- a/src/xen/driver.c
+++ b/src/xen/driver.c
@@ -63,6 +63,7 @@ typedef struct _XEN_DRIVER {
     PLOG_DISPOSITION    QemuDisposition;
     HANDLE              ParametersKey;
     HANDLE              UnplugKey;
+    HANDLE              ForceUnplugKey;
     HANDLE              MemoryKey;
 } XEN_DRIVER, *PXEN_DRIVER;
 
@@ -144,6 +145,30 @@ DriverGetUnplugKey(
     return __DriverGetUnplugKey();
 }
 
+static FORCEINLINE VOID
+__DriverSetForceUnplugKey(
+    _In_opt_ HANDLE Key
+    )
+{
+    Driver.ForceUnplugKey = Key;
+}
+
+static FORCEINLINE HANDLE
+__DriverGetForceUnplugKey(
+    VOID
+    )
+{
+    return Driver.ForceUnplugKey;
+}
+
+HANDLE
+DriverGetForceUnplugKey(
+    VOID
+    )
+{
+    return __DriverGetForceUnplugKey();
+}
+
 static FORCEINLINE VOID
 __DriverSetMemoryKey(
     _In_opt_ HANDLE Key
@@ -500,6 +525,7 @@ DllInitialize(
     HANDLE                  ServiceKey;
     HANDLE                  ParametersKey;
     HANDLE                  UnplugKey;
+    HANDLE                  ForceUnplugKey;
     HANDLE                  MemoryKey;
     LOG_LEVEL               LogLevel;
     NTSTATUS                status;
@@ -577,12 +603,21 @@ DllInitialize(
 
     __DriverSetUnplugKey(UnplugKey);
 
+    status = RegistryCreateSubKey(ServiceKey,
+                                  "ForceUnplug",
+                                  REG_OPTION_NON_VOLATILE,
+                                  &ForceUnplugKey);
+    if (!NT_SUCCESS(status))
+        goto fail6;
+
+    __DriverSetForceUnplugKey(ForceUnplugKey);
+
     status = RegistryCreateSubKey(ServiceKey,
                                   "Memory",
                                   REG_OPTION_VOLATILE,
                                   &MemoryKey);
     if (!NT_SUCCESS(status))
-        goto fail6;
+        goto fail7;
 
     __DriverSetMemoryKey(MemoryKey);
 
@@ -590,27 +625,27 @@ DllInitialize(
 
     status = AcpiInitialize();
     if (!NT_SUCCESS(status))
-        goto fail7;
+        goto fail8;
 
     status = SystemInitialize();
     if (!NT_SUCCESS(status))
-        goto fail8;
+        goto fail9;
 
     status = BugCheckInitialize();
     if (!NT_SUCCESS(status))
-        goto fail9;
+        goto fail10;
 
     status = ModuleInitialize();
     if (!NT_SUCCESS(status))
-        goto fail10;
+        goto fail11;
 
     status = ProcessInitialize();
     if (!NT_SUCCESS(status))
-        goto fail11;
+        goto fail12;
 
     status = UnplugInitialize();
     if (!NT_SUCCESS(status))
-        goto fail12;
+        goto fail13;
 
     RegistryCloseKey(ServiceKey);
 
@@ -618,39 +653,45 @@ DllInitialize(
 
     return STATUS_SUCCESS;
 
+fail13:
+    Error("fail13\n");
+
+    ProcessTeardown();
+
 fail12:
     Error("fail12\n");
 
-    ProcessTeardown();
+    ModuleTeardown();
 
 fail11:
     Error("fail11\n");
 
-    ModuleTeardown();
+    BugCheckTeardown();
 
 fail10:
     Error("fail10\n");
 
-    BugCheckTeardown();
+    SystemTeardown();
 
 fail9:
     Error("fail9\n");
 
-    SystemTeardown();
+    AcpiTeardown();
 
 fail8:
     Error("fail8\n");
 
-    AcpiTeardown();
-
-fail7:
-    Error("fail7\n");
-
     HypercallTeardown();
 
     RegistryCloseKey(MemoryKey);
     __DriverSetMemoryKey(NULL);
 
+fail7:
+    Error("fail7\n");
+
+    RegistryCloseKey(ForceUnplugKey);
+    __DriverSetForceUnplugKey(NULL);
+
 fail6:
     Error("fail6\n");
 
@@ -698,6 +739,7 @@ DllUnload(
     )
 {
     HANDLE  MemoryKey;
+    HANDLE  ForceUnplugKey;
     HANDLE  UnplugKey;
     HANDLE  ParametersKey;
 
@@ -722,6 +764,11 @@ DllUnload(
     RegistryCloseKey(MemoryKey);
     __DriverSetMemoryKey(NULL);
 
+    ForceUnplugKey = __DriverGetForceUnplugKey();
+
+    RegistryCloseKey(ForceUnplugKey);
+    __DriverSetForceUnplugKey(NULL);
+
     UnplugKey = __DriverGetUnplugKey();
 
     RegistryCloseKey(UnplugKey);
diff --git a/src/xen/driver.h b/src/xen/driver.h
index 21df779..6851e01 100644
--- a/src/xen/driver.h
+++ b/src/xen/driver.h
@@ -43,6 +43,11 @@ DriverGetUnplugKey(
     VOID
     );
 
+extern HANDLE
+DriverGetForceUnplugKey(
+    VOID
+    );
+
 extern PMDL
 DriverGetNamedPages(
     _In_ PSTR   Name,
diff --git a/src/xen/unplug.c b/src/xen/unplug.c
index dbd9a2e..282ed93 100644
--- a/src/xen/unplug.c
+++ b/src/xen/unplug.c
@@ -266,6 +266,7 @@ UnplugSetRequest(
 {
     PUNPLUG_CONTEXT     Context = &UnplugContext;
     HANDLE              UnplugKey;
+    HANDLE              ForceUnplugKey;
     PSTR                ValueName;
     PSTR                EnumName;
     ULONG               Value;
@@ -277,6 +278,7 @@ UnplugSetRequest(
     ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
 
     UnplugKey = DriverGetUnplugKey();
+    ForceUnplugKey = DriverGetForceUnplugKey();
 
     switch (Type) {
     case UNPLUG_DISKS:
@@ -293,17 +295,24 @@ UnplugSetRequest(
         ASSERT(FALSE);
     }
 
+    status = RegistryQueryDwordValue(ForceUnplugKey,
+                                     ValueName,
+                                     &Value);
+    if (NT_SUCCESS(status) && Value)
+        goto unplug;
+
     status = RegistryQueryDwordValue(UnplugKey,
                                      ValueName,
                                      &Value);
     if (!NT_SUCCESS(status))
         goto done;
 
-    (VOID) RegistryDeleteValue(UnplugKey, ValueName);
-
     if (Value != 0)
         (VOID) UnplugCheckEnumKey(EnumName, &Value);
 
+unplug:
+    (VOID) RegistryDeleteValue(UnplugKey, ValueName);
+
     Info("%s (%u)\n", ValueName, Value);
 
     AcquireHighLock(&Context->Lock, &Irql);
-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Wed Jul 23 13:58:37 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Jul 2025 13:58:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1054057.1422866 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueZzR-0008JV-Sb; Wed, 23 Jul 2025 13:58:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1054057.1422866; Wed, 23 Jul 2025 13:58:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueZzR-0008JO-Px; Wed, 23 Jul 2025 13:58:37 +0000
Received: by outflank-mailman (input) for mailman id 1054057;
 Wed, 23 Jul 2025 13:58:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4Tv+=2E=bounce.vates.tech=bounce-md_30504962.6880ea8a.v1-00679bd1ccb3468daabead3e44e7c8ff@srs-se1.protection.inumbo.net>)
 id 1ueZzQ-0008FA-0R
 for win-pv-devel@lists.xenproject.org; Wed, 23 Jul 2025 13:58:36 +0000
Received: from mail13.wdc04.mandrillapp.com (mail13.wdc04.mandrillapp.com
 [205.201.139.13]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1f91a7bf-67cd-11f0-a31d-13f23c93f187;
 Wed, 23 Jul 2025 15:58:35 +0200 (CEST)
Received: from pmta16.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail13.wdc04.mandrillapp.com (Mailchimp) with ESMTP id 4bnG221M1qzNCdCfx
 for <win-pv-devel@lists.xenproject.org>; Wed, 23 Jul 2025 13:58:34 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 00679bd1ccb3468daabead3e44e7c8ff; Wed, 23 Jul 2025 13:58:34 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1f91a7bf-67cd-11f0-a31d-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1753279114; x=1753549114;
	bh=hduc3TCo9m+Z9jPi5RN3HErj520jlCFr/c+AnnCDTiM=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=YAyLlNrSJ2bJiTZANbBroIIAkMd+bNECgc6z/6+B8pY+WiWgZHtNRZ1K+aZnj7aB0
	 GnRCRZXvzkUNYh8GrNwDJZm5S46IUOhYNp9Pcuqc6XNgubEsXUKRPKyv+tE3jFxV91
	 q5g7t1vkfqRp6I589ygzBN43YlS4LCccuw6BbP9QqdAdjTkShRU0xnyMpFzzFQt9VB
	 UJZXdyRS2bkkFlDVSN4YnDNHzQRoIUpQVwY+NaA3nCZP/ruaeGgqPq/t13G9TAS3pV
	 vDIJYlZQDEMw6iaBNOGeLWJ1WM1LkZX9tp/9Ah4T+SQAckVOzyav7IKj+67ipGP/j8
	 KqJqlOC9sFuJw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1753279114; x=1753539614; i=ngoc-tu.dinh@vates.tech;
	bh=hduc3TCo9m+Z9jPi5RN3HErj520jlCFr/c+AnnCDTiM=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=C5bUNkaY/VYGcb+LoddzJPpGr996cscS1ffN0445+rKnPiPOU7i1zbJf+Kohe1enW
	 qifDDHtEDz0CjTn4/tovvO+ASiiPVBIRLKEMqUko9cvlQCOAH5Y6B8heLPGSbCEhlm
	 yXUWc61tWnXq0nFny8erwo06iwLBQ9BrfPiUTaN1irvaBPk2pc2NdMDEVd3G4W1JDM
	 VLopvp5GPLazJl5bAVbQsg8GG/C2lb6yJ8yp5sMv+7J2KX2V7cD6dzlCPiQTZndlTv
	 BkOXC4ymBPvjJEa1LV95ajbDGkLH2y9/yf65UgmAjXYpt1RnnLnzOB2bVOF6FKPIdr
	 99jBe4KcuJv7A==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[XENBUS=20PATCH=20v2=202/7]=20xenfilt:=20Add=20Xenbus=20device=20precedence=20mechanism?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1753279113422
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250723135819.988-3-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
References: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.00679bd1ccb3468daabead3e44e7c8ff?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250723:md
Date: Wed, 23 Jul 2025 13:58:34 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Define registry values in xenfilt\Parameters with the names being
compatible IDs and values being numeric precedences.

The Xenbus device with the highest precedence should always be activated
over devices with lower precedence, ignoring Active* values.

If a device is force-activated, get its IDs directly instead of via
Active* values.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 src/xenfilt/driver.c | 35 ++++++++++++++++++++
 src/xenfilt/driver.h |  7 ++++
 src/xenfilt/fdo.c    | 25 +++++++++++++-
 src/xenfilt/pdo.c    | 79 ++++++++++++++++++++++++++++++++++++--------
 src/xenfilt/pdo.h    | 10 +++++-
 5 files changed, 141 insertions(+), 15 deletions(-)

diff --git a/src/xenfilt/driver.c b/src/xenfilt/driver.c
index 16e4deb..8f39b8d 100644
--- a/src/xenfilt/driver.c
+++ b/src/xenfilt/driver.c
@@ -279,6 +279,41 @@ DriverGetActive(
     return __DriverGetActive(Key, Value);
 }
 
+_On_failure_(_Post_satisfies_(*Value == 0))
+NTSTATUS
+DriverGetPrecedence(
+    _In_ PCSTR      Id,
+    _Out_ PULONG    Value
+    )
+{
+    HANDLE          ParametersKey;
+    NTSTATUS        status;
+
+    status = RegistryOpenParametersKey(KEY_READ, &ParametersKey);
+    if (!NT_SUCCESS(status))
+        goto fail1;
+
+    status = RegistryQueryDwordValue(ParametersKey,
+                                     (PSTR)Id,
+                                     Value);
+    if (!NT_SUCCESS(status))
+        goto fail2;
+
+    Info("%s found precedence %04lx\n", Id, *Value);
+
+    RegistryCloseKey(ParametersKey);
+
+    return STATUS_SUCCESS;
+
+fail2:
+    RegistryCloseKey(ParametersKey);
+
+fail1:
+    *Value = 0;
+
+    return status;
+}
+
 static BOOLEAN
 DriverIsActivePresent(
     VOID
diff --git a/src/xenfilt/driver.h b/src/xenfilt/driver.h
index 9c703c1..01ab5b7 100644
--- a/src/xenfilt/driver.h
+++ b/src/xenfilt/driver.h
@@ -54,6 +54,13 @@ DriverGetActive(
     _Outptr_result_z_ PSTR  *Value
     );
 
+_On_failure_(_Post_satisfies_(*Value == 0))
+extern NTSTATUS
+DriverGetPrecedence(
+    _In_ PCSTR      Id,
+    _Out_ PULONG    Value
+    );
+
 typedef enum _XENFILT_FILTER_STATE {
     XENFILT_FILTER_ENABLED = 0,
     XENFILT_FILTER_PENDING,
diff --git a/src/xenfilt/fdo.c b/src/xenfilt/fdo.c
index 594da4a..250f1ab 100644
--- a/src/xenfilt/fdo.c
+++ b/src/xenfilt/fdo.c
@@ -404,6 +404,8 @@ FdoEnumerate(
     ULONG                   Count;
     PLIST_ENTRY             ListEntry;
     ULONG                   Index;
+    ULONG                   ActiveIndex;
+    ULONG                   Precedence;
     NTSTATUS                status;
 
     Count = Relations->Count;
@@ -458,11 +460,32 @@ FdoEnumerate(
         ListEntry = Next;
     }
 
+    ActiveIndex = Precedence = 0;
+    for (Index = 0; Index < Count; Index++) {
+        ULONG   ThisPrecedence;
+
+        if (PhysicalDeviceObject[Index] != NULL) {
+            status = PdoGetPrecedence(PhysicalDeviceObject[Index],
+                                      &ThisPrecedence);
+            if (ThisPrecedence > Precedence) {
+                ActiveIndex = Index;
+                Precedence = ThisPrecedence;
+            }
+        }
+    }
+
     // Walk the list and create PDO filters for any new devices
     for (Index = 0; Index < Count; Index++) {
 #pragma warning(suppress:6385)  // Reading invalid data from 'PhysicalDeviceObject'
         if (PhysicalDeviceObject[Index] != NULL) {
-            (VOID) PdoCreate(Fdo, PhysicalDeviceObject[Index], Fdo->Type);
+            LONG    ForceActivate = 0;
+
+            if (Precedence > 0)
+                ForceActivate = Index == ActiveIndex ? 1 : -1;
+            (VOID) PdoCreate(Fdo,
+                             PhysicalDeviceObject[Index],
+                             Fdo->Type,
+                             ForceActivate);
             ObDereferenceObject(PhysicalDeviceObject[Index]);
         }
     }
diff --git a/src/xenfilt/pdo.c b/src/xenfilt/pdo.c
index 4f40c4f..48ae3a3 100644
--- a/src/xenfilt/pdo.c
+++ b/src/xenfilt/pdo.c
@@ -249,7 +249,8 @@ __PdoGetFdo(
 
 static NTSTATUS
 PdoSetDeviceInformation(
-    _In_ PXENFILT_PDO   Pdo
+    _In_ PXENFILT_PDO   Pdo,
+    _In_ LONG           ForceActivate
     )
 {
     PXENFILT_DX         Dx = Pdo->Dx;
@@ -265,19 +266,23 @@ PdoSetDeviceInformation(
     if (!NT_SUCCESS(status))
         goto fail1;
 
-    status = DriverGetActive("DeviceID",
-                             &ActiveDeviceID);
-    if (NT_SUCCESS(status)) {
-        Pdo->Active = (_stricmp(DeviceID, ActiveDeviceID) == 0) ?
-                      TRUE :
-                      FALSE;
-
-        ExFreePool(ActiveDeviceID);
+    if (ForceActivate) {
+        Pdo->Active = ForceActivate > 0;
     } else {
-        Pdo->Active = FALSE;
+        status = DriverGetActive("DeviceID",
+                                &ActiveDeviceID);
+        if (NT_SUCCESS(status)) {
+            Pdo->Active = (_stricmp(DeviceID, ActiveDeviceID) == 0) ?
+                        TRUE :
+                        FALSE;
+
+            ExFreePool(ActiveDeviceID);
+        } else {
+            Pdo->Active = FALSE;
+        }
     }
 
-    if (Pdo->Active) {
+    if (Pdo->Active && !ForceActivate) {
         status = DriverGetActive("InstanceID",
                                  &InstanceID);
         if (!NT_SUCCESS(status))
@@ -1618,11 +1623,59 @@ PdoSuspend(
     UNREFERENCED_PARAMETER(Pdo);
 }
 
+_On_failure_(_Post_satisfies_(*Precedence == 0))
+NTSTATUS
+PdoGetPrecedence(
+    _In_ PDEVICE_OBJECT PhysicalDeviceObject,
+    _Out_ PULONG        Precedence
+    )
+{
+    PSTR                CompatibleIDs;
+    ULONG               Index;
+    NTSTATUS            status;
+
+    status = DriverQueryId(PhysicalDeviceObject,
+                           BusQueryCompatibleIDs,
+                           &CompatibleIDs);
+    if (!NT_SUCCESS(status))
+        goto fail1;
+
+    Index = 0;
+
+    do {
+        ULONG           Length;
+
+        Length = (ULONG)strlen(&CompatibleIDs[Index]);
+        if (Length == 0)
+            break;
+
+        status = DriverGetPrecedence(&CompatibleIDs[Index],
+                                     Precedence);
+        if (NT_SUCCESS(status))
+            goto done;
+
+        Index += Length + 1;
+    } while (1);
+
+    *Precedence = 0;
+
+done:
+    ExFreePool(CompatibleIDs);
+
+    return STATUS_SUCCESS;
+
+fail1:
+    *Precedence = 0;
+
+    return status;
+}
+
 NTSTATUS
 PdoCreate(
     _In_ PXENFILT_FDO                   Fdo,
     _In_ PDEVICE_OBJECT                 PhysicalDeviceObject,
-    _In_ XENFILT_EMULATED_OBJECT_TYPE   Type
+    _In_ XENFILT_EMULATED_OBJECT_TYPE   Type,
+    _In_ LONG                           ForceActivate
     )
 {
     PDEVICE_OBJECT                      LowerDeviceObject;
@@ -1680,7 +1733,7 @@ PdoCreate(
     Pdo->LowerDeviceObject = LowerDeviceObject;
     Pdo->Type = Type;
 
-    status = PdoSetDeviceInformation(Pdo);
+    status = PdoSetDeviceInformation(Pdo, ForceActivate);
     if (!NT_SUCCESS(status))
         goto fail4;
 
diff --git a/src/xenfilt/pdo.h b/src/xenfilt/pdo.h
index 85bc07f..75a1412 100644
--- a/src/xenfilt/pdo.h
+++ b/src/xenfilt/pdo.h
@@ -78,11 +78,19 @@ PdoGetDeviceObject(
     _In_ PXENFILT_PDO   Pdo
     );
 
+_On_failure_(_Post_satisfies_(*Precedence == 0))
+extern NTSTATUS
+PdoGetPrecedence(
+    _In_ PDEVICE_OBJECT PhysicalDeviceObject,
+    _Out_ PULONG        Precedence
+    );
+
 extern NTSTATUS
 PdoCreate(
     _In_ PXENFILT_FDO                   Fdo,
     _In_ PDEVICE_OBJECT                 PhysicalDeviceObject,
-    _In_ XENFILT_EMULATED_OBJECT_TYPE   Type
+    _In_ XENFILT_EMULATED_OBJECT_TYPE   Type,
+    _In_ LONG                           ForceActivate
     );
 
 extern VOID
-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Wed Jul 23 13:58:40 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Jul 2025 13:58:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1054058.1422871 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueZzT-0008MC-Ue; Wed, 23 Jul 2025 13:58:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1054058.1422871; Wed, 23 Jul 2025 13:58:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueZzT-0008M5-RL; Wed, 23 Jul 2025 13:58:39 +0000
Received: by outflank-mailman (input) for mailman id 1054058;
 Wed, 23 Jul 2025 13:58:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=N0JK=2E=bounce.vates.tech=bounce-md_30504962.6880ea8c.v1-a03fbd133abf41929f591fecff71c328@srs-se1.protection.inumbo.net>)
 id 1ueZzR-0008FA-Vc
 for win-pv-devel@lists.xenproject.org; Wed, 23 Jul 2025 13:58:38 +0000
Received: from mail132-21.atl131.mandrillapp.com
 (mail132-21.atl131.mandrillapp.com [198.2.132.21])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 20b8b0c8-67cd-11f0-a31d-13f23c93f187;
 Wed, 23 Jul 2025 15:58:37 +0200 (CEST)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4bnG240tLbz1bXJCx
 for <win-pv-devel@lists.xenproject.org>; Wed, 23 Jul 2025 13:58:36 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 a03fbd133abf41929f591fecff71c328; Wed, 23 Jul 2025 13:58:36 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 20b8b0c8-67cd-11f0-a31d-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1753279116; x=1753549116;
	bh=0RcMMHIjHLtBTwqaiK0YtKmb6nhzQCrY2pvYYv42kCU=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=bfyqTWS9xSUQCSyce68RN9mT/0AIKD8n6ni/B+Wzo2LYl+AQTrCW33RMfmh6d52be
	 W8lSsza4314YMJQ/5yjroxcsHmOd12pOLfJ8c0NvULZwy0y6Sy8lxNzt00+a+7rz9L
	 yhsvF7qrCTEgxKHGAaqEelh8iKnotu3yOhW5qtgiqVgRtn4z2JdQN3fUR1cgcGK8Bd
	 OpGdzjE/YGeTPtGjZrqz93s5G5OEyiWmHaje3VyNPbFILfzQhNFAhTXZxgsTreFA2i
	 ieiUJ8ivWOoO/a0vJMokhg+RnPt6cNCm+x0jEQ5kW6Tv49ugjwEoQ7yZIc8n3GXSIc
	 UTtZn2yYjAnzA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1753279116; x=1753539616; i=ngoc-tu.dinh@vates.tech;
	bh=0RcMMHIjHLtBTwqaiK0YtKmb6nhzQCrY2pvYYv42kCU=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=VsNjuoKR+EtdBLnbXtRxzaJ32mE+S11itNY4VXG2ta03RbRko+jQv6BSeT5PkUeCd
	 pBRPDl6v34AQfJ2RmIZgEoZvV0Tgy0B7ppTxNL+w4gJIYwszbQubP6+5QKqcyJJ5M2
	 4MrUdnLmVpVvbAdy3c3DN2q4gNDVNvXE2+JoUVH/aj6oGoxeXWYW3j5HA56IjKdTah
	 /d4sm05kBiNf9v0prV8Ki+dmUeTgOEx3VD+eDhJjKZxDUrsffKjHpO/V6RpYyih+bj
	 UFglAUvgh5e1IdretBMm3V6Dnfo8zeUu4zDd0rFw/PgavwtedhWGmxRiD/x7uFaNlT
	 IXDEvCBWrYATA==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[XENBUS=20PATCH=20v2=203/7]=20Add=20EMULATED=20v3?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1753279115421
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250723135819.988-4-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
References: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.a03fbd133abf41929f591fecff71c328?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250723:md
Date: Wed, 23 Jul 2025 13:58:36 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Allow querying the current active device's forced-activation status by
calling EmulatedIsDevicePresent with DeviceID=NULL.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 include/emulated_interface.h | 52 ++++++++++++++++++++++++------
 include/revision.h           |  3 +-
 src/xenfilt/emulated.c       | 62 ++++++++++++++++++++++++++++++++----
 src/xenfilt/emulated.h       |  1 +
 src/xenfilt/pdo.c            |  1 +
 5 files changed, 102 insertions(+), 17 deletions(-)

diff --git a/include/emulated_interface.h b/include/emulated_interface.h
index ead9c14..1f446a9 100644
--- a/include/emulated_interface.h
+++ b/include/emulated_interface.h
@@ -62,7 +62,7 @@ typedef VOID
     _In_ PINTERFACE Interface
     );
 
-/*! \typedef XENFILT_EMULATED_IS_DEVICE_PRESENT
+/*! \typedef XENFILT_EMULATED_IS_DEVICE_PRESENT_V1
     \brief Determine whether a given device is present in the VM
 
     \param Interface The interface header
@@ -73,12 +73,34 @@ typedef VOID
     FALSE if it is not
 */
 typedef BOOLEAN
-(*XENFILT_EMULATED_IS_DEVICE_PRESENT)(
+(*XENFILT_EMULATED_IS_DEVICE_PRESENT_V1)(
     _In_ PVOID      Context,
     _In_ PSTR       DeviceID,
     _In_opt_ PSTR   InstanceID
     );
 
+/*! \typedef XENFILT_EMULATED_IS_DEVICE_PRESENT
+    \brief Determine whether a given device is present in the VM
+
+    \param Interface The interface header
+    \param DeviceID The DeviceID of the device, or NULL to query the force-
+           activated device
+    \param InstanceID The (un-prefixed) InstanceID of the device or
+           NULL to match any device instance
+    \param IsForceActivated Returns 1 if the device was force-activated, -1 if
+           the device was not active and another device was force-activated,
+           and 0 otherwise
+    \return TRUE if the specified device is present in the system or
+            FALSE if it is not
+*/
+typedef BOOLEAN
+(*XENFILT_EMULATED_IS_DEVICE_PRESENT)(
+    _In_ PVOID      Context,
+    _In_opt_ PSTR   DeviceID,
+    _In_opt_ PSTR   InstanceID,
+    _Out_opt_ PLONG IsForceActivated
+    );
+
 typedef BOOLEAN
 (*XENFILT_EMULATED_IS_DISK_PRESENT_V1)(
     _In_ PVOID  Context,
@@ -110,11 +132,11 @@ DEFINE_GUID(GUID_XENFILT_EMULATED_INTERFACE,
     \ingroup interfaces
 */
 struct _XENFILT_EMULATED_INTERFACE_V1 {
-    INTERFACE                           Interface;
-    XENFILT_EMULATED_ACQUIRE            EmulatedAcquire;
-    XENFILT_EMULATED_RELEASE            EmulatedRelease;
-    XENFILT_EMULATED_IS_DEVICE_PRESENT  EmulatedIsDevicePresent;
-    XENFILT_EMULATED_IS_DISK_PRESENT_V1 EmulatedIsDiskPresentVersion1;
+    INTERFACE                               Interface;
+    XENFILT_EMULATED_ACQUIRE                EmulatedAcquire;
+    XENFILT_EMULATED_RELEASE                EmulatedRelease;
+    XENFILT_EMULATED_IS_DEVICE_PRESENT_V1   EmulatedIsDevicePresentVersion1;
+    XENFILT_EMULATED_IS_DISK_PRESENT_V1     EmulatedIsDiskPresentVersion1;
 };
 
 /*! \struct _XENFILT_EMULATED_INTERFACE_V2
@@ -122,6 +144,18 @@ struct _XENFILT_EMULATED_INTERFACE_V1 {
     \ingroup interfaces
 */
 struct _XENFILT_EMULATED_INTERFACE_V2 {
+    INTERFACE                               Interface;
+    XENFILT_EMULATED_ACQUIRE                EmulatedAcquire;
+    XENFILT_EMULATED_RELEASE                EmulatedRelease;
+    XENFILT_EMULATED_IS_DEVICE_PRESENT_V1   EmulatedIsDevicePresentVersion1;
+    XENFILT_EMULATED_IS_DISK_PRESENT        EmulatedIsDiskPresent;
+};
+
+/*! \struct _XENFILT_EMULATED_INTERFACE_V3
+    \brief EMULATED interface version 3
+    \ingroup interfaces
+*/
+struct _XENFILT_EMULATED_INTERFACE_V3 {
     INTERFACE                           Interface;
     XENFILT_EMULATED_ACQUIRE            EmulatedAcquire;
     XENFILT_EMULATED_RELEASE            EmulatedRelease;
@@ -129,7 +163,7 @@ struct _XENFILT_EMULATED_INTERFACE_V2 {
     XENFILT_EMULATED_IS_DISK_PRESENT    EmulatedIsDiskPresent;
 };
 
-typedef struct _XENFILT_EMULATED_INTERFACE_V2 XENFILT_EMULATED_INTERFACE, *PXENFILT_EMULATED_INTERFACE;
+typedef struct _XENFILT_EMULATED_INTERFACE_V3 XENFILT_EMULATED_INTERFACE, *PXENFILT_EMULATED_INTERFACE;
 
 /*! \def XENFILT_EMULATED
     \brief Macro at assist in method invocation
@@ -140,6 +174,6 @@ typedef struct _XENFILT_EMULATED_INTERFACE_V2 XENFILT_EMULATED_INTERFACE, *PXENF
 #endif  // _WINDLL
 
 #define XENFILT_EMULATED_INTERFACE_VERSION_MIN  1
-#define XENFILT_EMULATED_INTERFACE_VERSION_MAX  2
+#define XENFILT_EMULATED_INTERFACE_VERSION_MAX  3
 
 #endif  // _XENFILT_EMULATED_INTERFACE_H
diff --git a/include/revision.h b/include/revision.h
index 4c5607a..ec35aeb 100644
--- a/include/revision.h
+++ b/include/revision.h
@@ -59,6 +59,7 @@
     DEFINE_REVISION(0x09000008,  1,  3,  9,  1,  2,  1,  2,  4,  1,  1,  2), \
     DEFINE_REVISION(0x09000009,  1,  4,  9,  1,  2,  1,  2,  4,  1,  1,  2), \
     DEFINE_REVISION(0x0900000A,  1,  4,  9,  1,  2,  1,  2,  4,  2,  1,  2), \
-    DEFINE_REVISION(0x0900000B,  1,  4,  9,  1,  2,  1,  2,  4,  3,  1,  2)
+    DEFINE_REVISION(0x0900000B,  1,  4,  9,  1,  2,  1,  2,  4,  3,  1,  2), \
+    DEFINE_REVISION(0x0900000C,  1,  4,  9,  1,  2,  1,  2,  4,  3,  1,  3)
 
 #endif  // _REVISION_H
diff --git a/src/xenfilt/emulated.c b/src/xenfilt/emulated.c
index 9065364..7a76a87 100644
--- a/src/xenfilt/emulated.c
+++ b/src/xenfilt/emulated.c
@@ -48,6 +48,7 @@ typedef struct _XENFILT_EMULATED_DEVICE_DATA {
     CHAR    DeviceID[MAXNAMELEN];
     CHAR    InstanceID[MAXNAMELEN];
     CHAR    CompatibleID[MAXNAMELEN];
+    LONG    ForceActivate;
 } XENFILT_EMULATED_DEVICE_DATA, *PXENFILT_EMULATED_DEVICE_DATA;
 
 typedef struct _XENFILT_EMULATED_DISK_DATA {
@@ -227,6 +228,7 @@ EmulatedAddObject(
     _In_ PSTR                           InstanceID,
     _In_opt_ PSTR                       CompatibleIDs,
     _In_ XENFILT_EMULATED_OBJECT_TYPE   Type,
+    _In_ LONG                           ForceActivate,
     _Outptr_ PXENFILT_EMULATED_OBJECT   *EmulatedObject
     )
 {
@@ -267,6 +269,8 @@ EmulatedAddObject(
         goto fail2;
 
     (*EmulatedObject)->Type = Type;
+    if (Type == XENFILT_EMULATED_OBJECT_TYPE_PCI)
+        (*EmulatedObject)->Data.Device.ForceActivate = ForceActivate;
 
     KeAcquireSpinLock(&Context->Lock, &Irql);
     InsertTailList(&Context->List, &(*EmulatedObject)->ListEntry);
@@ -305,8 +309,9 @@ EmulatedRemoveObject(
 static BOOLEAN
 EmulatedIsDevicePresent(
     _In_ PINTERFACE             Interface,
-    _In_ PSTR                   DeviceID,
-    _In_opt_ PSTR               InstanceID
+    _In_opt_ PSTR               DeviceID,
+    _In_opt_ PSTR               InstanceID,
+    _Out_opt_ PLONG             IsForceActivated
     )
 {
     PXENFILT_EMULATED_CONTEXT   Context = Interface->Context;
@@ -314,24 +319,32 @@ EmulatedIsDevicePresent(
     PLIST_ENTRY                 ListEntry;
 
     Trace("====> (%s %s)\n",
-          DeviceID,
+          (DeviceID != NULL) ? DeviceID : "ACTIVE",
           (InstanceID != NULL) ? InstanceID : "ANY");
 
+    if (IsForceActivated)
+        *IsForceActivated = 0;
+
     KeAcquireSpinLock(&Context->Lock, &Irql);
 
     ListEntry = Context->List.Flink;
     while (ListEntry != &Context->List) {
-        PXENFILT_EMULATED_OBJECT    EmulatedObject;
+        PXENFILT_EMULATED_OBJECT        EmulatedObject;
+        PXENFILT_EMULATED_DEVICE_DATA   Device;
 
         EmulatedObject = CONTAINING_RECORD(ListEntry,
                                            XENFILT_EMULATED_OBJECT,
                                            ListEntry);
+        Device = &EmulatedObject->Data.Device;
 
         if (EmulatedObject->Type == XENFILT_EMULATED_OBJECT_TYPE_PCI &&
-            _stricmp(DeviceID, EmulatedObject->Data.Device.DeviceID) == 0 &&
+            ((DeviceID == NULL && Device->ForceActivate > 0) ||
+             (DeviceID != NULL && _stricmp(DeviceID, Device->DeviceID) == 0)) &&
             (InstanceID == NULL ||
-             _stricmp(InstanceID, EmulatedObject->Data.Device.InstanceID) == 0)) {
+             _stricmp(InstanceID, Device->InstanceID) == 0)) {
             Trace("FOUND\n");
+            if (IsForceActivated)
+                *IsForceActivated = Device->ForceActivate;
             break;
         }
 
@@ -345,6 +358,16 @@ EmulatedIsDevicePresent(
     return (ListEntry != &Context->List) ? TRUE : FALSE;
 }
 
+static BOOLEAN
+EmulatedIsDevicePresentVersion1(
+    _In_ PINTERFACE             Interface,
+    _In_ PSTR                   DeviceID,
+    _In_opt_ PSTR               InstanceID
+    )
+{
+    return EmulatedIsDevicePresent(Interface, DeviceID, InstanceID, NULL);
+}
+
 static BOOLEAN
 EmulatedIsDiskPresent(
     _In_ PINTERFACE             Interface,
@@ -454,7 +477,7 @@ static struct _XENFILT_EMULATED_INTERFACE_V1 EmulatedInterfaceVersion1 = {
     { sizeof (struct _XENFILT_EMULATED_INTERFACE_V1), 1, NULL, NULL, NULL },
     EmulatedAcquire,
     EmulatedRelease,
-    EmulatedIsDevicePresent,
+    EmulatedIsDevicePresentVersion1,
     EmulatedIsDiskPresentVersion1
 };
 
@@ -462,6 +485,14 @@ static struct _XENFILT_EMULATED_INTERFACE_V2 EmulatedInterfaceVersion2 = {
     { sizeof (struct _XENFILT_EMULATED_INTERFACE_V2), 2, NULL, NULL, NULL },
     EmulatedAcquire,
     EmulatedRelease,
+    EmulatedIsDevicePresentVersion1,
+    EmulatedIsDiskPresent
+};
+
+static struct _XENFILT_EMULATED_INTERFACE_V3 EmulatedInterfaceVersion3 = {
+    { sizeof (struct _XENFILT_EMULATED_INTERFACE_V3), 3, NULL, NULL, NULL },
+    EmulatedAcquire,
+    EmulatedRelease,
     EmulatedIsDevicePresent,
     EmulatedIsDiskPresent
 };
@@ -541,6 +572,23 @@ EmulatedGetInterface(
         status = STATUS_SUCCESS;
         break;
     }
+    case 3: {
+        struct _XENFILT_EMULATED_INTERFACE_V3   *EmulatedInterface;
+
+        EmulatedInterface = (struct _XENFILT_EMULATED_INTERFACE_V3 *)Interface;
+
+        status = STATUS_BUFFER_OVERFLOW;
+        if (Size < sizeof (struct _XENFILT_EMULATED_INTERFACE_V3))
+            break;
+
+        *EmulatedInterface = EmulatedInterfaceVersion3;
+
+        ASSERT3U(Interface->Version, ==, Version);
+        Interface->Context = Context;
+
+        status = STATUS_SUCCESS;
+        break;
+    }
     default:
         status = STATUS_NOT_SUPPORTED;
         break;
diff --git a/src/xenfilt/emulated.h b/src/xenfilt/emulated.h
index 9b02268..c01ff6a 100644
--- a/src/xenfilt/emulated.h
+++ b/src/xenfilt/emulated.h
@@ -72,6 +72,7 @@ EmulatedAddObject(
     _In_ PSTR                           InstanceID,
     _In_opt_ PSTR                       CompatibleIDs,
     _In_ XENFILT_EMULATED_OBJECT_TYPE   Type,
+    _In_ LONG                           ForceActivate,
     _Outptr_ PXENFILT_EMULATED_OBJECT   *EmulatedObject
     );
 
diff --git a/src/xenfilt/pdo.c b/src/xenfilt/pdo.c
index 48ae3a3..946c1c5 100644
--- a/src/xenfilt/pdo.c
+++ b/src/xenfilt/pdo.c
@@ -1748,6 +1748,7 @@ PdoCreate(
                                __PdoGetInstanceID(Pdo),
                                CompatibleIDs,
                                __PdoGetType(Pdo),
+                               ForceActivate,
                                &Pdo->EmulatedObject);
     if (!NT_SUCCESS(status))
         goto fail5;
-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Wed Jul 23 13:58:40 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Jul 2025 13:58:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1054059.1422875 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueZzU-0008MX-2B; Wed, 23 Jul 2025 13:58:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1054059.1422875; Wed, 23 Jul 2025 13:58:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueZzT-0008MG-Su; Wed, 23 Jul 2025 13:58:39 +0000
Received: by outflank-mailman (input) for mailman id 1054059;
 Wed, 23 Jul 2025 13:58:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=48Dg=2E=bounce.vates.tech=bounce-md_30504962.6880ea8d.v1-e7193414c784421d9ccfcdf5903cd2ff@srs-se1.protection.inumbo.net>)
 id 1ueZzS-0008FA-A4
 for win-pv-devel@lists.xenproject.org; Wed, 23 Jul 2025 13:58:38 +0000
Received: from mail13.wdc04.mandrillapp.com (mail13.wdc04.mandrillapp.com
 [205.201.139.13]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 21711992-67cd-11f0-a31d-13f23c93f187;
 Wed, 23 Jul 2025 15:58:37 +0200 (CEST)
Received: from pmta16.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail13.wdc04.mandrillapp.com (Mailchimp) with ESMTP id 4bnG2538T9zNCd96F
 for <win-pv-devel@lists.xenproject.org>; Wed, 23 Jul 2025 13:58:37 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 e7193414c784421d9ccfcdf5903cd2ff; Wed, 23 Jul 2025 13:58:37 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 21711992-67cd-11f0-a31d-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1753279117; x=1753549117;
	bh=zUrUGcrJf9Vd/BVYWvvdObiM419KDj6B3XF4EgzB4q0=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=jBCA/ugc+ajx/vLe3qUY7R8lFiB9JjIgcyPCzNc4uduh2TOqi9tzthVihQHIS7+mp
	 HliWK7QXWWmHJhYhAiarHjaLVQAR2Is5lwowuHdE0krgXyQHFjeIuy1q8dNOtbLsPg
	 zwU4pdYtpbvb8jZbQ3vFzvGESMLADoVrSCq7jwYgal4uGfEpJHeqpKtucr+/tg8Viw
	 9Em5fvHYMehccn4zL0/vkgjKYIxyflVbAHJ+EQnt4wXXhxhyIxN8sjEAlEEQA8/uMf
	 Iv5KBJ4ZTt8TRBjDbrOQlipcriJuituaAxXlXNsJfCs5SqJbBY3sFvTWQtSR90rDMN
	 OEgVrmS/URG8A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1753279117; x=1753539617; i=ngoc-tu.dinh@vates.tech;
	bh=zUrUGcrJf9Vd/BVYWvvdObiM419KDj6B3XF4EgzB4q0=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=fnJkvg01krqJkbpKGP4XVk5toXwgMaPJ6Q+KrL1zzteJUQ31wVbdlSATznQ3exARH
	 b5j8t6k+tguozcPdCsRYQ4LDKMxaAdnTTAFQ/A5L4I/peuGyn6szahYor3iRc+AF15
	 zIM2b3kukoUfNFqUZ9lvnxDO3ocgtHw0wtg93MRZ8RFuc5RB9LBL1DpA+11DUxSdku
	 RzlneHBNiQbYUISYH4mTLxPR4AOLSkz9FXOqYTcHzQsdAE81kptBYSodmSWvqkTX4l
	 MmAGoeoLQXd9Hclg+C1xaJ239fuOCHcgHKcdlZlCl60FQ6naDKvihyegqNeoZVMAK0
	 YA6dUXHk2kjUA==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[XENBUS=20PATCH=20v2=204/7]=20xenbus:=20Use=20nonpaged=20pool=20in=20FdoQueryId?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1753279116834
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250723135819.988-5-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
References: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.e7193414c784421d9ccfcdf5903cd2ff?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250723:md
Date: Wed, 23 Jul 2025 13:58:37 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Allow the DeviceID result to eventually be accessed from DISPATCH_LEVEL.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 src/xenbus/fdo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/xenbus/fdo.c b/src/xenbus/fdo.c
index 2a61db7..432e907 100644
--- a/src/xenbus/fdo.c
+++ b/src/xenbus/fdo.c
@@ -627,7 +627,7 @@ FdoQueryId(
     Buffer = (PWSTR)StatusBlock.Information;
     Length = (ULONG)(wcslen(Buffer) + 1) * sizeof (CHAR);
 
-    *Id = __AllocatePoolWithTag(PagedPool, Length, 'SUB');
+    *Id = __AllocatePoolWithTag(NonPagedPool, Length, 'SUB');
 
     status = STATUS_NO_MEMORY;
     if (*Id == NULL)
-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Wed Jul 23 13:58:42 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Jul 2025 13:58:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1054061.1422886 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueZzW-0008UN-CE; Wed, 23 Jul 2025 13:58:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1054061.1422886; Wed, 23 Jul 2025 13:58:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueZzW-0008Ti-6e; Wed, 23 Jul 2025 13:58:42 +0000
Received: by outflank-mailman (input) for mailman id 1054061;
 Wed, 23 Jul 2025 13:58:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=J8mn=2E=bounce.vates.tech=bounce-md_30504962.6880ea8e.v1-1094127a17f34496b913ce4b27d48824@srs-se1.protection.inumbo.net>)
 id 1ueZzV-0008H4-Gm
 for win-pv-devel@lists.xenproject.org; Wed, 23 Jul 2025 13:58:41 +0000
Received: from mail132-21.atl131.mandrillapp.com
 (mail132-21.atl131.mandrillapp.com [198.2.132.21])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 222740a0-67cd-11f0-b895-0df219b8e170;
 Wed, 23 Jul 2025 15:58:39 +0200 (CEST)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4bnG263kWXz1XRJrX
 for <win-pv-devel@lists.xenproject.org>; Wed, 23 Jul 2025 13:58:38 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 1094127a17f34496b913ce4b27d48824; Wed, 23 Jul 2025 13:58:38 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 222740a0-67cd-11f0-b895-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1753279118; x=1753549118;
	bh=WkYMsK6zHTBhuT3QfyEKx8n3uPt5IHS4QNb+6Hgbftk=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=RaAMyFTh2eTIZ2MyxEe8EWWivWWVrG4KdaBcDC/RTY8C4YMWqfLivGLDjG6vOf5IQ
	 CB1HmDOP4am18xnuaYo4+Tkzej7gIGTLKWjqSUPn6ObkRTYLg/oduj6q5pVHDer+9R
	 4RrKCOB/+TUS1S6i9xOcXQNqQJQAJJm6zEzN90CMpKEtjoj7VBjC/HK629SqDMrlkm
	 oGtkSgIwi4tXHdztcMMR9E8QRDBecdbwaf0ht5qP5wv5mYqYl9BfvaOfw0BNWdnPVh
	 YSUgIPXNxzCXxZq7KAcoHe8QQLD2VPctZBckVffblerukycM3YTreG8NubYH+6LcoQ
	 W2vUoyDVue1BQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1753279118; x=1753539618; i=ngoc-tu.dinh@vates.tech;
	bh=WkYMsK6zHTBhuT3QfyEKx8n3uPt5IHS4QNb+6Hgbftk=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=OiZtRfKqthvzQuUIfXALU9uouqA9oXN8AkMz60H9VbhXltoeAAnnfs2v72zJNtG46
	 hteHDJr1UPTKGmiPGGzNkFAfnEvj7wbOT/kCdnb1B+NvcXeS4AE758Lm+809wUxGYt
	 lRahgZmP1RgRuVUDKzqkYSY3nL0qot7fzNRGluTlyNRDqao8G9JByBz2NEf5AWyUcg
	 L2um9lmvJn3F6a8jGTo7YWqG1xUFgpJrzps/P/uqG2Qheo6Mree0VuaS5jcNAPjNeB
	 QZjL4p7gcNDIVXUcdtbtb6VJTAxdlni6Qj1BbRE4UDBfW5c2B2raNgOCPikwO+UcXP
	 uS00wwP7OVSWQ==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[XENBUS=20PATCH=20v2=205/7]=20Use=20EMULATED=20v3=20to=20force=20activate=20Xenbus=20FDOs?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1753279117732
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250723135819.988-6-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
References: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.1094127a17f34496b913ce4b27d48824?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250723:md
Date: Wed, 23 Jul 2025 13:58:38 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Use EmulatedIsDevicePresent in FdoSetActive to determine FDO forced-
activation status and set Fdo->Active + call ConfigSetActive as
appropriate.

Also use EmulatedIsDevicePresent in xenfilt!DriverIsActivePresent.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 src/xenbus/fdo.c     | 120 +++++++++++++++++++++++++++++++------------
 src/xenfilt/driver.c |  16 ++++--
 2 files changed, 99 insertions(+), 37 deletions(-)

diff --git a/src/xenbus/fdo.c b/src/xenbus/fdo.c
index 432e907..f867511 100644
--- a/src/xenbus/fdo.c
+++ b/src/xenbus/fdo.c
@@ -48,6 +48,7 @@
 #include "thread.h"
 #include "high.h"
 #include "mutex.h"
+#include "emulated_interface.h"
 #include "shared_info.h"
 #include "evtchn.h"
 #include "debug.h"
@@ -134,6 +135,8 @@ struct _XENBUS_FDO {
     PCM_PARTIAL_RESOURCE_LIST       RawResourceList;
     PCM_PARTIAL_RESOURCE_LIST       TranslatedResourceList;
 
+    XENFILT_EMULATED_INTERFACE      EmulatedInterface;
+
     BOOLEAN                         Active;
 
     PXENBUS_SUSPEND_CONTEXT         SuspendContext;
@@ -746,6 +749,8 @@ FdoSetActive(
     PSTR                InstanceID;
     PSTR                ActiveDeviceID;
     PSTR                LocationInformation;
+    BOOLEAN             Present;
+    LONG                IsForceActivated;
     NTSTATUS            status;
 
     status = FdoQueryId(Fdo,
@@ -766,6 +771,34 @@ FdoSetActive(
     if (!NT_SUCCESS(status))
         goto fail3;
 
+    if (Fdo->EmulatedInterface.Interface.Context == NULL)
+        goto fallback;
+
+    status = XENFILT_EMULATED(Acquire, &Fdo->EmulatedInterface);
+    if (!NT_SUCCESS(status))
+        goto fallback;
+
+    Present = XENFILT_EMULATED(IsDevicePresent,
+                               &Fdo->EmulatedInterface,
+                               DeviceID,
+                               NULL,
+                               &IsForceActivated);
+    BUG_ON(!Present);
+
+    XENFILT_EMULATED(Release, &Fdo->EmulatedInterface);
+
+    if (IsForceActivated == 0)
+        goto fallback;
+
+    Fdo->Active = IsForceActivated > 0;
+    Info("FDO %s force %sactivated\n", DeviceID, Fdo->Active ? "" : "de");
+
+    if (Fdo->Active)
+        (VOID) ConfigSetActive(DeviceID, InstanceID, LocationInformation);
+
+    goto done;
+
+fallback:
     status = ConfigGetActive("DeviceID", &ActiveDeviceID);
     if (NT_SUCCESS(status)) {
         Fdo->Active = (_stricmp(DeviceID, ActiveDeviceID) == 0) ? TRUE : FALSE;
@@ -780,6 +813,7 @@ FdoSetActive(
             Fdo->Active = TRUE;
     }
 
+done:
     ExFreePool(LocationInformation);
     ExFreePool(InstanceID);
     ExFreePool(DeviceID);
@@ -5822,10 +5856,19 @@ FdoCreate(
 
     __FdoSetName(Fdo);
 
-    status = FdoSetActive(Fdo);
+    status = FDO_QUERY_INTERFACE(Fdo,
+                                 XENFILT,
+                                 EMULATED,
+                                 (PINTERFACE)&Fdo->EmulatedInterface,
+                                 sizeof (Fdo->EmulatedInterface),
+                                 TRUE);
     if (!NT_SUCCESS(status))
         goto fail9;
 
+    status = FdoSetActive(Fdo);
+    if (!NT_SUCCESS(status))
+        goto fail10;
+
     if (!__FdoIsActive(Fdo))
         goto done;
 
@@ -5841,47 +5884,47 @@ FdoCreate(
 
     status = DebugInitialize(Fdo, &Fdo->DebugContext);
     if (!NT_SUCCESS(status))
-        goto fail10;
+        goto fail11;
 
     status = SuspendInitialize(Fdo, &Fdo->SuspendContext);
     if (!NT_SUCCESS(status))
-        goto fail11;
+        goto fail12;
 
     status = SharedInfoInitialize(Fdo, &Fdo->SharedInfoContext);
     if (!NT_SUCCESS(status))
-        goto fail12;
+        goto fail13;
 
     status = EvtchnInitialize(Fdo, &Fdo->EvtchnContext);
     if (!NT_SUCCESS(status))
-        goto fail13;
+        goto fail14;
 
     status = RangeSetInitialize(Fdo, &Fdo->RangeSetContext);
     if (!NT_SUCCESS(status))
-        goto fail14;
+        goto fail15;
 
     status = CacheInitialize(Fdo, &Fdo->CacheContext);
     if (!NT_SUCCESS(status))
-        goto fail15;
+        goto fail16;
 
     status = GnttabInitialize(Fdo, &Fdo->GnttabContext);
     if (!NT_SUCCESS(status))
-        goto fail16;
+        goto fail17;
 
     status = StoreInitialize(Fdo, &Fdo->StoreContext);
     if (!NT_SUCCESS(status))
-        goto fail17;
+        goto fail18;
 
     status = ConsoleInitialize(Fdo, &Fdo->ConsoleContext);
     if (!NT_SUCCESS(status))
-        goto fail18;
+        goto fail19;
 
     status = UnplugInitialize(Fdo, &Fdo->UnplugContext);
     if (!NT_SUCCESS(status))
-        goto fail19;
+        goto fail20;
 
     status = FdoBalloonInitialize(Fdo);
     if (!NT_SUCCESS(status))
-        goto fail20;
+        goto fail21;
 
     status = DebugGetInterface(__FdoGetDebugContext(Fdo),
                                XENBUS_DEBUG_INTERFACE_VERSION_MAX,
@@ -5950,68 +5993,68 @@ done:
 
     return STATUS_SUCCESS;
 
-fail20:
-    Error("fail20\n");
+fail21:
+    Error("fail21\n");
 
     UnplugTeardown(Fdo->UnplugContext);
     Fdo->UnplugContext = NULL;
 
-fail19:
-    Error("fail19\n");
+fail20:
+    Error("fail20\n");
 
     ConsoleTeardown(Fdo->ConsoleContext);
     Fdo->ConsoleContext = NULL;
 
-fail18:
-    Error("fail18\n");
+fail19:
+    Error("fail19\n");
 
     StoreTeardown(Fdo->StoreContext);
     Fdo->StoreContext = NULL;
 
-fail17:
-    Error("fail17\n");
+fail18:
+    Error("fail18\n");
 
     GnttabTeardown(Fdo->GnttabContext);
     Fdo->GnttabContext = NULL;
 
-fail16:
-    Error("fail16\n");
+fail17:
+    Error("fail17\n");
 
     CacheTeardown(Fdo->CacheContext);
     Fdo->CacheContext = NULL;
 
-fail15:
-    Error("fail15\n");
+fail16:
+    Error("fail16\n");
 
     RangeSetTeardown(Fdo->RangeSetContext);
     Fdo->RangeSetContext = NULL;
 
-fail14:
-    Error("fail14\n");
+fail15:
+    Error("fail15\n");
 
     EvtchnTeardown(Fdo->EvtchnContext);
     Fdo->EvtchnContext = NULL;
 
-fail13:
-    Error("fail13\n");
+fail14:
+    Error("fail14\n");
 
     SharedInfoTeardown(Fdo->SharedInfoContext);
     Fdo->SharedInfoContext = NULL;
 
-fail12:
-    Error("fail12\n");
+fail13:
+    Error("fail13\n");
 
     SuspendTeardown(Fdo->SuspendContext);
     Fdo->SuspendContext = NULL;
 
-fail11:
-    Error("fail11\n");
+fail12:
+    Error("fail12\n");
 
     DebugTeardown(Fdo->DebugContext);
     Fdo->DebugContext = NULL;
 
-fail10:
-    Error("fail10\n");
+fail11:
+    Error("fail11\n");
 
     Fdo->UseMemoryHole = 0;
 
@@ -6021,6 +6064,12 @@ fail10:
     //
     Fdo->Active = FALSE;
 
+fail10:
+    Error("fail10\n");
+
+    RtlZeroMemory(&Fdo->EmulatedInterface,
+                  sizeof (Fdo->EmulatedInterface));
+
 fail9:
     Error("fail9\n");
 
@@ -6159,6 +6208,9 @@ FdoDestroy(
         FdoClearActive(Fdo);
     }
 
+    RtlZeroMemory(&Fdo->EmulatedInterface,
+                  sizeof (Fdo->EmulatedInterface));
+
     RtlZeroMemory(Fdo->VendorName, MAXNAMELEN);
 
     FdoReleaseLowerBusInterface(Fdo);
diff --git a/src/xenfilt/driver.c b/src/xenfilt/driver.c
index 8f39b8d..370ee6e 100644
--- a/src/xenfilt/driver.c
+++ b/src/xenfilt/driver.c
@@ -321,13 +321,20 @@ DriverIsActivePresent(
 {
     PSTR        ActiveDeviceID;
     BOOLEAN     Present;
+    LONG        IsForceActivated;
     NTSTATUS    status;
 
     status = XENFILT_EMULATED(Acquire, &Driver.EmulatedInterface);
     if (!NT_SUCCESS(status))
         goto fail1;
 
-    Present = FALSE;
+    Present = XENFILT_EMULATED(IsDevicePresent,
+                               &Driver.EmulatedInterface,
+                               NULL,
+                               NULL,
+                               &IsForceActivated);
+    if (NT_SUCCESS(status) && Present)
+        goto done;
 
     status = __DriverGetActive("DeviceID",
                                &ActiveDeviceID);
@@ -337,14 +344,17 @@ DriverIsActivePresent(
     Present = XENFILT_EMULATED(IsDevicePresent,
                                &Driver.EmulatedInterface,
                                ActiveDeviceID,
-                               NULL);
+                               NULL,
+                               &IsForceActivated);
 
     ExFreePool(ActiveDeviceID);
 
 done:
     XENFILT_EMULATED(Release, &Driver.EmulatedInterface);
 
-    Info("ACTIVE DEVICE %sPRESENT\n", (!Present) ? "NOT " : "");
+    Info("ACTIVE DEVICE %sPRESENT%s\n",
+         (!Present) ? "NOT " : "",
+         IsForceActivated > 0 ? " (FORCED)" : "");
 
     return Present;
 
-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Wed Jul 23 13:58:43 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Jul 2025 13:58:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1054062.1422895 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueZzX-0000G7-CS; Wed, 23 Jul 2025 13:58:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1054062.1422895; Wed, 23 Jul 2025 13:58:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueZzX-0000Fv-81; Wed, 23 Jul 2025 13:58:43 +0000
Received: by outflank-mailman (input) for mailman id 1054062;
 Wed, 23 Jul 2025 13:58:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i+H7=2E=bounce.vates.tech=bounce-md_30504962.6880ea8f.v1-3b5ca39bf3d44c7295c2d847a447c0fe@srs-se1.protection.inumbo.net>)
 id 1ueZzW-0008H4-H5
 for win-pv-devel@lists.xenproject.org; Wed, 23 Jul 2025 13:58:42 +0000
Received: from mail132-21.atl131.mandrillapp.com
 (mail132-21.atl131.mandrillapp.com [198.2.132.21])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2298e0f2-67cd-11f0-b895-0df219b8e170;
 Wed, 23 Jul 2025 15:58:40 +0200 (CEST)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4bnG271w9Vz1bQNG0
 for <win-pv-devel@lists.xenproject.org>; Wed, 23 Jul 2025 13:58:39 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 3b5ca39bf3d44c7295c2d847a447c0fe; Wed, 23 Jul 2025 13:58:39 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2298e0f2-67cd-11f0-b895-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1753279119; x=1753549119;
	bh=F7HY+nkmd5W2sYMesECKTv91z/RrJwodbcR2F0VWEBI=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=hT51Ees0bdORDM+tSmBZuefacBGxTMAJuLWsq3ne1QFBz8tFmjz7eDXk4pPX0oaFr
	 XWqyggCTJAFtc/vsqPQExvhzwkcrGFhCP0gcJMseaNZf0tYTo+TWxSyBE1evG+fXgt
	 U9f0mVAhMCKh/JnbwZJDS2zoH/teY5o7JU5PzA8s/40JWW8JQ8E6O/pDLI1myE+pi7
	 37Rfm67DzlZdOyfM/MZKDQY7EmMOozHl686zvyMP1SYQRJRD/E81NsZTcL1oqc7wPl
	 Ql3gZkuUxTuQJqb/+aTG4jUJtbKmdFcqXSjBTyuiA1ynkkUqe5OgZR54zZ8OpepcnK
	 077Tb8GiUb8CQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1753279119; x=1753539619; i=ngoc-tu.dinh@vates.tech;
	bh=F7HY+nkmd5W2sYMesECKTv91z/RrJwodbcR2F0VWEBI=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=OL943v3U+wd6sfAwU91z8hXSlJtADpKa8t6ojCkuvJrl5BY8mH/nNQaYX9wEIGeL5
	 qVdsx9H1WE/GRE7uoscBmKgJEUgm+DKQblqKlHg/EIiWG4SpHvxPAekJ6JpajvI6CO
	 oRy4WSgG3lGx9Yh6z1OMRARO3D26ie+ytCUf8hI2dHvCgB26+tk+3Y+7GxCvy0Ixyk
	 61Reikm5Az2M76AtlKh1tuUKnx/Y+TBpp1pr+DWhFmsfwDbTBzX5GdwB5nyhl3CEK5
	 MJY27Mh0b9GZbEKetqpf+560VJQCM19QADst136OA1cBDE/LyAH9Q5XGsjtGP7MF2X
	 SJEuVVWohRU8w==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[XENBUS=20PATCH=20v2=206/7]=20Enable=20Xenbus=20precedence?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1753279118519
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250723135819.988-7-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
References: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.3b5ca39bf3d44c7295c2d847a447c0fe?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250723:md
Date: Wed, 23 Jul 2025 13:58:39 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Define precedence values based on each device's numeric device ID.

This ensures that vendor devices always get activated instead of the
generic ones.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 src/xenbus.inf | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/xenbus.inf b/src/xenbus.inf
index 7cc9ac2..30274e2 100644
--- a/src/xenbus.inf
+++ b/src/xenbus.inf
@@ -120,6 +120,9 @@ AddReg = XenFilt_Parameters
 HKR,"Parameters",,0x00000010
 HKR,"Parameters","*PNP0A03",0x00000000,"PCI"
 HKR,"Parameters","Internal_IDE_Channel",0x00000000,"IDE"
+HKR,"Parameters","PCI\VEN_5853&DEV_0001",0x00010001,0x0001
+HKR,"Parameters","PCI\VEN_5853&DEV_0002",0x00010001,0x0002
+HKR,"Parameters","PCI\VEN_5853&DEV_C000",0x00010001,0x@VENDOR_DEVICE_ID@
 
 [Monitor_Service]
 DisplayName=%MonitorName%
-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Wed Jul 23 13:58:44 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Jul 2025 13:58:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1054063.1422896 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueZzY-0000J4-CI; Wed, 23 Jul 2025 13:58:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1054063.1422896; Wed, 23 Jul 2025 13:58:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ueZzY-0000Iv-9Q; Wed, 23 Jul 2025 13:58:44 +0000
Received: by outflank-mailman (input) for mailman id 1054063;
 Wed, 23 Jul 2025 13:58:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BEb8=2E=bounce.vates.tech=bounce-md_30504962.6880ea8f.v1-94205c4d77fb4400bc2a68945a47c04b@srs-se1.protection.inumbo.net>)
 id 1ueZzX-0008H4-HP
 for win-pv-devel@lists.xenproject.org; Wed, 23 Jul 2025 13:58:43 +0000
Received: from mail132-21.atl131.mandrillapp.com
 (mail132-21.atl131.mandrillapp.com [198.2.132.21])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 23ae03eb-67cd-11f0-b895-0df219b8e170;
 Wed, 23 Jul 2025 15:58:41 +0200 (CEST)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4bnG275zrBz1ZLDhD
 for <win-pv-devel@lists.xenproject.org>; Wed, 23 Jul 2025 13:58:39 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 94205c4d77fb4400bc2a68945a47c04b; Wed, 23 Jul 2025 13:58:39 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 23ae03eb-67cd-11f0-b895-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1753279119; x=1753549119;
	bh=krcOBvc7tjHRUVixKnSSy07lfGHPc7QmMqy1e24+Fzw=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=yd+j4XFldAPxKuVnbFSkWDpL17Cv2x/hN24NfB1X5Kb+XklSPGIkxH31196scmAn/
	 HiGRiHisNN+8ivLK9KRYqlHjtvFvi6ggELVoDDIdxAnvz4AeUeqb8O+TR7K2sF7Q/x
	 2k1+QkvwmhKgev8dzLJm6gmjTRMFFqdB5EDcXOeyZyNRJmzI/TWbI4kjZQUnQBTMyO
	 Lm8ZM8oYV263pRycCWyzgaQxIvhmAKSR4UXNvTijg18A1J7Nq5JjwqWdxpmGDrkNK7
	 +iGoAvae8hhPVAHdse9g9oUd00uc/viOHm0OV47xBpqTdOfky1Sxy0LYGmJ5AK+iFk
	 GmhK4be6amzZw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1753279119; x=1753539619; i=ngoc-tu.dinh@vates.tech;
	bh=krcOBvc7tjHRUVixKnSSy07lfGHPc7QmMqy1e24+Fzw=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=WfcyTtqetM8MlvD/XL4SEuc6cZ4B2OpyKAA0pZh0OJNdBATWR7EV6VF1UqzA8PKIU
	 Efvn1r1bO2w9nDA+oC1HIPOKstJiengnCp3zzxZ/hdr+RE1isF/gJR8DSBo9Uhvytm
	 9gDHbugf+9wY39J5WwBxxXmYyYfoB1dcS/5Nta2D3aZN/VSwl+wiE/muvL3hAlI16I
	 7uys4wUcUuiM7sgnc3UGeTqGJQFu7vbklPoG8GTpLpoDQb2c523p2OYC7y/TPP1C/x
	 2hegmqMqxMCYV9vkmtO4EAwdpCnIpeTc7q78BY2UWOGQtm8m/2BXP7NY9FbBbstB6C
	 kLWgVVUClNYag==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[XENBUS=20PATCH=20v2=207/7]=20Install=20Xenfilt=20with=20INF=20AddReg?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1753279119224
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250723135819.988-8-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
References: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.94205c4d77fb4400bc2a68945a47c04b?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250723:md
Date: Wed, 23 Jul 2025 13:58:39 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

With forced-activation Xenbus, there's little reason not to install
Xenfilt.

Add a new INF section to this effect, conditioned on the FORCE_ACTIVATE
environment variable.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 scripts/genfiles.ps1 |  2 ++
 src/xenbus.inf       | 14 +++++++++++---
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/scripts/genfiles.ps1 b/scripts/genfiles.ps1
index 4c58f03..5b99728 100644
--- a/scripts/genfiles.ps1
+++ b/scripts/genfiles.ps1
@@ -68,6 +68,8 @@ $Replacements = [ordered]@{
 	'MICRO_VERSION' = $Env:MICRO_VERSION;
 	'BUILD_NUMBER' = $Env:BUILD_NUMBER;
 
+	'FORCE_ACTIVATE' = $Env:FORCE_ACTIVATE;
+
 	# generated values
 	'GIT_REVISION' = $GitRevision;
 
diff --git a/src/xenbus.inf b/src/xenbus.inf
index 30274e2..47d9703 100644
--- a/src/xenbus.inf
+++ b/src/xenbus.inf
@@ -115,14 +115,20 @@ ErrorControl=%SERVICE_ERROR_NORMAL%
 ServiceBinary=%12%\xenfilt.sys 
 LoadOrderGroup="Boot Bus Extender"
 AddReg = XenFilt_Parameters
+; Attention: XenFilt_Filters should only be used with forced-activation Xenbus
+AddReg = XenFilt_Filters  ; @FORCE_ACTIVATE@
 
 [XenFilt_Parameters]
 HKR,"Parameters",,0x00000010
 HKR,"Parameters","*PNP0A03",0x00000000,"PCI"
 HKR,"Parameters","Internal_IDE_Channel",0x00000000,"IDE"
-HKR,"Parameters","PCI\VEN_5853&DEV_0001",0x00010001,0x0001
-HKR,"Parameters","PCI\VEN_5853&DEV_0002",0x00010001,0x0002
-HKR,"Parameters","PCI\VEN_5853&DEV_C000",0x00010001,0x@VENDOR_DEVICE_ID@
+HKR,"Parameters","PCI\VEN_5853&DEV_0001",0x00010001,0x0001  ; @FORCE_ACTIVATE@
+HKR,"Parameters","PCI\VEN_5853&DEV_0002",0x00010001,0x0002  ; @FORCE_ACTIVATE@
+HKR,"Parameters","PCI\VEN_5853&DEV_C000",0x00010001,0x@VENDOR_DEVICE_ID@  ; @FORCE_ACTIVATE@
+
+[XenFilt_Filters]  ; @FORCE_ACTIVATE@
+HKLM,%SystemClassKey%,"UpperFilters",0x00010008,"XENFILT"  ; @FORCE_ACTIVATE@
+HKLM,%HDCClassKey%,"UpperFilters",0x00010008,"XENFILT"  ; @FORCE_ACTIVATE@
 
 [Monitor_Service]
 DisplayName=%MonitorName%
@@ -160,6 +166,8 @@ MonitorName="@PRODUCT_NAME@ PV Driver Monitor"
 MonitorDesc="Provides support for @PRODUCT_NAME@ PV drivers"
 RequestKey="SYSTEM\CurrentControlSet\Services\xenbus_monitor\Request"
 UnplugKey="SYSTEM\CurrentControlSet\Services\XEN\Unplug"
+SystemClassKey="SYSTEM\CurrentControlSet\Control\Class\{4d36e97d-e325-11ce-bfc1-08002be10318}"
+HDCClassKey="SYSTEM\CurrentControlSet\Control\Class\{4d36e96a-e325-11ce-bfc1-08002be10318}"
 DialogTitle="@PRODUCT_NAME@"
 DialogText="needs to restart the system to complete installation."
 DialogQuestion="Press 'Yes' to restart the system now or 'No' if you plan to restart the system later."
-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Wed Jul 23 14:00:57 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Jul 2025 14:00:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1054108.1422901 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uea1h-0001yn-Ib; Wed, 23 Jul 2025 14:00:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1054108.1422901; Wed, 23 Jul 2025 14:00:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uea1h-0001yg-Fl; Wed, 23 Jul 2025 14:00:57 +0000
Received: by outflank-mailman (input) for mailman id 1054108;
 Wed, 23 Jul 2025 14:00:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=e/mg=2E=bounce.vates.tech=bounce-md_30504962.6880eaca.v1-1ebe0e6de3e34e39879d6be4f9fd953e@srs-se1.protection.inumbo.net>)
 id 1uea0T-0008H4-Bn
 for win-pv-devel@lists.xenproject.org; Wed, 23 Jul 2025 13:59:41 +0000
Received: from mail132-21.atl131.mandrillapp.com
 (mail132-21.atl131.mandrillapp.com [198.2.132.21])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4616240f-67cd-11f0-b895-0df219b8e170;
 Wed, 23 Jul 2025 15:59:39 +0200 (CEST)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4bnG3G5mQ0z1b9ZVs
 for <win-pv-devel@lists.xenproject.org>; Wed, 23 Jul 2025 13:59:38 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 1ebe0e6de3e34e39879d6be4f9fd953e; Wed, 23 Jul 2025 13:59:38 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4616240f-67cd-11f0-b895-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1753279178; x=1753549178;
	bh=R6xpPzUlifi4cdIs0/+ZHjll/k+6CYo0HWw1WC2wsqc=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=NbgrIYjN9cgJfLyQCox9Iwlckzb/GabYJqpPRYFgqpeMmQ/PVjNHqMJPOeOVxQ79w
	 i1Qs/AtB6qBFwn20hyhY6fKeeVfo2X+4fwYwT7jHUs46ZtZlX/7YLrZkg+nfMrtxCW
	 0qntTBtcmbJ5LznKEY3QMOqFjwnHFmZGC17FN5Xt/UgE+9PUjBrgUKC40fGh+ozSJR
	 dfsMdhwV6pAsnOoGUelQEeLnscqKoIsMQiX4YKNu9bVP60T9zn5dYbyE28CjYlJ8ju
	 YzUN/hjkErVnfpAKIeOSs784z/ewyNt1iNrbtBFmamJsxQbZ2p6qsKhGL1LhO0utSg
	 ExtPYNG8uwb1g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1753279178; x=1753539678; i=ngoc-tu.dinh@vates.tech;
	bh=R6xpPzUlifi4cdIs0/+ZHjll/k+6CYo0HWw1WC2wsqc=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=n7euw8rudgUicPW8yr7DXEmMJekZTxcofvbn3pIUz95A1/Uk3TPlVvgZtheraAqQ3
	 A28VKmjSAn/MSXsnG7UOmjgFhv1QhrIF+JH4i36MuZjAC9u2vkSGJXheWcC102f70o
	 T+ewnFm4hdewXWJF48BeulPQtOnIxmO2ml2KXArQcT3SxtQPZs//5s+TKQRtrI9x/D
	 1+70pN7PCvjIDZt4D5TKqkH8nZJlxJba/+x6xvGEZ+ImsEJPiK5L3R3mibeKps8rja
	 J65Z3GKiEufRz2Gqi+y0KgP/DcBktygcS5l2pmKjh+OujysltpalzYOR/aJi5WWcKh
	 EIrPSfHC1RYPw==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[XENNET=20PATCH=20v2]=20Opt=20into=20forced=20unplug?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1753279178204
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250723135855.1414-2-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250723135855.1414-1-ngoc-tu.dinh@vates.tech>
References: <20250723135819.988-1-ngoc-tu.dinh@vates.tech> <20250723135855.1414-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.1ebe0e6de3e34e39879d6be4f9fd953e?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250723:md
Date: Wed, 23 Jul 2025 13:59:38 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Condition the opt-in to the FORCE_UNPLUG build variable.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 scripts/genfiles.ps1 | 2 ++
 src/xennet.inf       | 6 +++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/scripts/genfiles.ps1 b/scripts/genfiles.ps1
index 6991440..a0faed5 100644
--- a/scripts/genfiles.ps1
+++ b/scripts/genfiles.ps1
@@ -68,6 +68,8 @@ $Replacements = [ordered]@{
 	'MICRO_VERSION' = $Env:MICRO_VERSION;
 	'BUILD_NUMBER' = $Env:BUILD_NUMBER;
 
+	'FORCE_UNPLUG' = $Env:FORCE_UNPLUG;
+
 	# generated values
 	'GIT_REVISION' = $GitRevision;
 
diff --git a/src/xennet.inf b/src/xennet.inf
index 4923388..b684219 100644
--- a/src/xennet.inf
+++ b/src/xennet.inf
@@ -179,11 +179,14 @@ StartType=%SERVICE_DEMAND_START%
 ErrorControl=%SERVICE_ERROR_NORMAL% 
 ServiceBinary=%12%\xennet.sys 
 LoadOrderGroup="NDIS"
-AddReg = XenNet_BootFlags
+AddReg = XenNet_BootFlags,XenNet_Unplug
 
 [XenNet_BootFlags]
 HKR,,"BootFlags",0x00010003,0x81
 
+[XenNet_Unplug]
+HKLM,%ForceUnplugKey%,"NICS",0x00010001,1  ; @FORCE_UNPLUG@
+
 [XenNet_EventLog]
 AddReg=XenNet_EventLog_AddReg
 
@@ -196,6 +199,7 @@ HKR,,TypesSupported,0x00010001,7
 Vendor="@VENDOR_NAME@"
 DiskDesc="@PRODUCT_NAME@ PV Network Device Package" 
 XenNetName="@PRODUCT_NAME@ PV Network Device"
+ForceUnplugKey="SYSTEM\CurrentControlSet\Services\XEN\ForceUnplug"
 IPChecksumOffloadIPv4="IPv4 Checksum Offload"
 TCPChecksumOffloadIPv4="TCP Checksum Offload (IPv4)"
 UDPChecksumOffloadIPv4="UDP Checksum Offload (IPv4)"
-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Wed Jul 23 14:02:08 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Jul 2025 14:02:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1054151.1422905 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uea2p-0002Ea-Mt; Wed, 23 Jul 2025 14:02:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1054151.1422905; Wed, 23 Jul 2025 14:02:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uea2p-0002ET-KK; Wed, 23 Jul 2025 14:02:07 +0000
Received: by outflank-mailman (input) for mailman id 1054151;
 Wed, 23 Jul 2025 14:02:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YTfF=2E=bounce.vates.tech=bounce-md_30504962.6880eac9.v1-f5fdab30b4b24c3992efef974d3ee738@srs-se1.protection.inumbo.net>)
 id 1uea0R-0008FA-Mn
 for win-pv-devel@lists.xenproject.org; Wed, 23 Jul 2025 13:59:39 +0000
Received: from mail13.wdc04.mandrillapp.com (mail13.wdc04.mandrillapp.com
 [205.201.139.13]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 45a48e2f-67cd-11f0-a31d-13f23c93f187;
 Wed, 23 Jul 2025 15:59:39 +0200 (CEST)
Received: from pmta16.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail13.wdc04.mandrillapp.com (Mailchimp) with ESMTP id 4bnG3G0TVrzNCdD3q
 for <win-pv-devel@lists.xenproject.org>; Wed, 23 Jul 2025 13:59:38 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f5fdab30b4b24c3992efef974d3ee738; Wed, 23 Jul 2025 13:59:37 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 45a48e2f-67cd-11f0-a31d-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1753279178; x=1753549178;
	bh=0662Me/zHSZ9Bd478d39IQB811fwjDBJzXDB2OGeBmU=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=nP7T+yjLYTmkbFe7x6mOT5o9Ehc8FG7ZI3VUd7/QbToWheSQdK3sVTAQbP0E3Hreq
	 r4fjMjqj6S6YcaXm0u2EUsSYqDBjx9au40xqlj0JWdL7K6wKDEqHSsQ3fo0aGjHUg3
	 Q+10fGIX8Qokl/XZX4VCpZFTy1j02T26P27ewVQWScYJadOtWLCPMSqj61O5XEzO8g
	 qFOTdSRdoIGCITBo1CHlM7rY/eBwG9rAsrMkXY3wFRg7EjcZOd6uq08dj7hy8tz7+g
	 3tgWXrTUqUVdH7Zq36CA2a2fdObfVx0505WASPIDiK7V/ly5g33agps1S5fOXN5vPO
	 7bMRVu+6Kiqqg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1753279178; x=1753539678; i=ngoc-tu.dinh@vates.tech;
	bh=0662Me/zHSZ9Bd478d39IQB811fwjDBJzXDB2OGeBmU=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=QtjaGqxrp1X9OZzw8/WC5YXyC3op3a3+bC4w3/5dKqd9VjpkDtiHf1HWuwPFpLYvs
	 DNXW8uRv4h4H/otfSFYTFFA4Ktk1Uop9oznykN/fpX7vBVnKufTOqrnjgEefEjvQs9
	 UGElZlANrZfRQgwLTQeOGcWECJ0ogm35vVuvE/TBCHmB94/armqAbMuTuqmnE5JEtL
	 gbg1Y7WRWAjBrKztP+MFktvrlG/uh8GhikaIrcmMRvX4yYVgEVNGnAz65KXLz+xtyL
	 XZJutfEMUyRMyLaAhh9VXGmehNLhRQIwo+FPQz4bzwcZnYzpKw1TN3oPphj5JK6ONd
	 6yPktYyUlVWrg==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[XENVBD=20PATCH=20v2]=20Opt=20into=20forced=20unplug?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1753279177205
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250723135855.1414-1-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
References: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.f5fdab30b4b24c3992efef974d3ee738?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250723:md
Date: Wed, 23 Jul 2025 13:59:37 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Condition the opt-in to the FORCE_UNPLUG build variable.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 scripts/genfiles.ps1 | 2 ++
 src/xenvbd.inf       | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/scripts/genfiles.ps1 b/scripts/genfiles.ps1
index 093b5ee..8b0b14b 100644
--- a/scripts/genfiles.ps1
+++ b/scripts/genfiles.ps1
@@ -68,6 +68,8 @@ $Replacements = [ordered]@{
 	'MICRO_VERSION' = $Env:MICRO_VERSION;
 	'BUILD_NUMBER' = $Env:BUILD_NUMBER;
 
+	'FORCE_UNPLUG' = $Env:FORCE_UNPLUG;
+
 	# generated values
 	'GIT_REVISION' = $GitRevision;
 
diff --git a/src/xenvbd.inf b/src/xenvbd.inf
index dfde613..0de71d1 100644
--- a/src/xenvbd.inf
+++ b/src/xenvbd.inf
@@ -106,6 +106,7 @@ HKR,"Parameters","multi-queue-max-queues",0x00010001,0x00000002
 
 [XenVbd_Unplug]
 HKLM,%UnplugKey%,"DISKS",0x00010001,0
+HKLM,%ForceUnplugKey%,"DISKS",0x00010001,1  ; @FORCE_UNPLUG@
 
 [XenVbd_Extras]
 HKLM,%PnpKey%,"DisableCDDB",0x00010001,0
@@ -120,6 +121,7 @@ DiskDesc = "@PRODUCT_NAME@ PV Storage Host Adapter Package"
 XenVbdName= "@PRODUCT_NAME@ PV Storage Host Adapter"
 XenDiskName= "@PRODUCT_NAME@ PV Storage Filter"
 UnplugKey="SYSTEM\CurrentControlSet\Services\XEN\Unplug"
+ForceUnplugKey="SYSTEM\CurrentControlSet\Services\XEN\ForceUnplug"
 PnpKey="SYSTEM\CurrentControlSet\Control\Pnp"
 PartMgrKey="SYSTEM\CurrentControlSet\Services\PartMgr\Parameters"
 DiskKey="SYSTEM\CurrentControlSet\Services\Disk"
-- 
2.50.1.windows.1



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Wed Jul 23 14:05:35 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 23 Jul 2025 14:05:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1054176.1422918 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uea6A-0002ri-73; Wed, 23 Jul 2025 14:05:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1054176.1422918; Wed, 23 Jul 2025 14:05:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uea6A-0002rb-4E; Wed, 23 Jul 2025 14:05:34 +0000
Received: by outflank-mailman (input) for mailman id 1054176;
 Wed, 23 Jul 2025 14:05:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jglK=2E=bounce.vates.tech=bounce-md_30504962.6880ec29.v1-3b8d6b4d74544671b75413b163cbdc48@srs-se1.protection.inumbo.net>)
 id 1uea69-0002qy-5C
 for win-pv-devel@lists.xenproject.org; Wed, 23 Jul 2025 14:05:33 +0000
Received: from mail13.wdc04.mandrillapp.com (mail13.wdc04.mandrillapp.com
 [205.201.139.13]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 17a90d1c-67ce-11f0-b895-0df219b8e170;
 Wed, 23 Jul 2025 16:05:31 +0200 (CEST)
Received: from pmta16.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail13.wdc04.mandrillapp.com (Mailchimp) with ESMTP id 4bnGB16TMyzNCd9HH
 for <win-pv-devel@lists.xenproject.org>; Wed, 23 Jul 2025 14:05:29 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 3b8d6b4d74544671b75413b163cbdc48; Wed, 23 Jul 2025 14:05:29 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 17a90d1c-67ce-11f0-b895-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1753279529; x=1753549529;
	bh=SIDhqf4CSS6Y93pPVR+2u5DdYWLFZljOsyLZiNlgvBo=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=PclOnglCbEbHPJ+4JLY7xDBWRoe1U2NoctTQkJXqlbojELNXYVW0fnoGp6qB5i0J5
	 arv05Y1wdmOmz+qDWpnnU8QIXECQ5ROBYvjKAT488RD/lFv9DqPp6PqC7GgbfYjFKr
	 CoYwqfyaySVrH+QioPl+Xhg0++I0pcVU90E2KCb/bybZn9G8k50Zl0gbNxeGH9VJog
	 FMx1kzXp70eh4tSGYtjGIjpvQGEKyyE1VnxHTJmqUdobEsumBKPfAr8EZwJNQvc3xT
	 OIVNMAN/fsWdUovoDpQFrzxPukMk3WUVXjQQyNqiGGv4j0AViE0joVfnp8KgfgQsRV
	 unHiTLbZZHk3A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1753279529; x=1753540029; i=ngoc-tu.dinh@vates.tech;
	bh=SIDhqf4CSS6Y93pPVR+2u5DdYWLFZljOsyLZiNlgvBo=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=b7vRj23hhg76FJNXjkqMYYvYJt2m2Si33jDthAesdsCcHYP7jmxfpIs2MdYXTgUgV
	 sE5epn9E47iKYfzphRB76d/ymYIZ4ckAXN4kRDpB+7qosjixP6HKwEy5y/FuC8KisH
	 UPCfmnP5yNuqOwWlcroeZOyCxQ2NOuBipW4veE5QKxQabSjMQbwwraIfhEVPdTlBRr
	 pESqPs46CBl4IRsiP/bIKuVRD+pWSAgc2JTV+ixKxb8sGFkvjg/7b73yr9zPbx99j6
	 N1ni7YBhFDjDi+fCXsjrszdh032pVB6O1ME3snN8p5ekTI+Bd8/AjIvYt/5jD13/R5
	 1gTEk6Jx4MnFQ==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[XENVKBD=20PATCH]=20Fix=20FDO=20invalidation=20when=20no=20devices=20are=20present?=
X-Mailer: git-send-email 2.50.1.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1753279529168
To: win-pv-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Owen Smith" <owen.smith@cloud.com>
Message-Id: <20250723140526.1708-1-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.3b8d6b4d74544671b75413b163cbdc48?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250723:md
Date: Wed, 23 Jul 2025 14:05:29 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

__FdoEnumerate is called with Devices==NULL to signify that the entire
device xenstore key has been removed. However, the PdoIsMissing check
was under the Devices!=NULL check, and will never be called. This means
existing PDOs will never be validated in this situation.

Instead, always check for the PDO's existence even if Devices==NULL.

Fixes: 270cb87d3d2a ("Invalidate FDOs when no devices are present")
Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
This is rather untested, but the logic was rewritten to follow xenvif.
---
 src/xenvkbd/fdo.c | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/src/xenvkbd/fdo.c b/src/xenvkbd/fdo.c
index 98297fc..12b8717 100644
--- a/src/xenvkbd/fdo.c
+++ b/src/xenvkbd/fdo.c
@@ -771,23 +771,23 @@ __FdoEnumerate(
                         break;
                     }
                 }
+            }

-                if (!PdoIsMissing(Pdo)) {
-                    if (PdoIsEjectRequested(Pdo)) {
-                        IoRequestDeviceEject(PdoGetDeviceObject(Pdo));
-                    } else if (Missing) {
-                        PdoSetMissing(Pdo, "device disappeared");
-
-                        // If the PDO has not yet been enumerated then we can
-                        // go ahead and mark it as deleted, otherwise we need
-                        // to notify PnP manager and wait for the REMOVE_DEVICE
-                        // IRP.
-                        if (PdoGetDevicePnpState(Pdo) == Present) {
-                            PdoSetDevicePnpState(Pdo, Deleted);
-                            PdoDestroy(Pdo);
-                        } else {
-                            NeedInvalidate = TRUE;
-                        }
+            if (!PdoIsMissing(Pdo)) {
+                if (PdoIsEjectRequested(Pdo)) {
+                    IoRequestDeviceEject(PdoGetDeviceObject(Pdo));
+                } else if (Missing) {
+                    PdoSetMissing(Pdo, "device disappeared");
+
+                    // If the PDO has not yet been enumerated then we can
+                    // go ahead and mark it as deleted, otherwise we need
+                    // to notify PnP manager and wait for the REMOVE_DEVICE
+                    // IRP.
+                    if (PdoGetDevicePnpState(Pdo) == Present) {
+                        PdoSetDevicePnpState(Pdo, Deleted);
+                        PdoDestroy(Pdo);
+                    } else {
+                        NeedInvalidate = TRUE;
                     }
                 }
             }
--
2.50.0.windows.2


Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Thu Jul 24 10:40:26 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Jul 2025 10:40:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1055649.1424013 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uetN6-0006A5-VC; Thu, 24 Jul 2025 10:40:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1055649.1424013; Thu, 24 Jul 2025 10:40:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uetN6-00069x-SI; Thu, 24 Jul 2025 10:40:20 +0000
Received: by outflank-mailman (input) for mailman id 1055649;
 Thu, 24 Jul 2025 10:40:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WvLx=2F=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1uetN5-00069r-C4
 for win-pv-devel@lists.xenproject.org; Thu, 24 Jul 2025 10:40:19 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 95c1a92a-687a-11f0-a31e-13f23c93f187;
 Thu, 24 Jul 2025 12:40:17 +0200 (CEST)
Received: from phl-compute-08.internal (phl-compute-08.phl.internal
 [10.202.2.48])
 by mailfout.phl.internal (Postfix) with ESMTP id 15710EC0324;
 Thu, 24 Jul 2025 06:40:15 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-08.internal (MEProxy); Thu, 24 Jul 2025 06:40:15 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 24 Jul 2025 06:40:13 -0400 (EDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 95c1a92a-687a-11f0-a31e-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm2; t=1753353615;
	 x=1753440015; bh=SZWDQp1OxffmFghFOraIs+Q/B5jJFlnYjoYT4tjxwGE=; b=
	uBcMUka9MmAMcJeQsso67aSnmxxZBVtHMtLv/lu7dulcsDVRu3gzkcJA2jL4o/gU
	Vq3RPbrcvmzgus2tSou/vYlL0Q1aMRnynejQL4ZxZFosx+IrAkKXhSSXPygZwktC
	3JHkVd/WKHtqtdcJUDJbUVWhokKQi9hNuyfn0GefgX4P/mzA2ZujTM36nQcd3fxq
	G/Rdwe64t+vnheL6mUSXhRkKPjrb+pO4EmKbuyfRpMJUzkHSr/8SmV/yF94wJcub
	vRIAmCsZWsSF2cD63+kA99xD1wkQxXLvxQ7g6BCHkdzl5nQs1YoCSr27bBCw6LPO
	/NvKYg38rEPCqynMs34Prg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=
	1753353615; x=1753440015; bh=SZWDQp1OxffmFghFOraIs+Q/B5jJFlnYjoY
	T4tjxwGE=; b=dDCEIyw5jWNRwNBJ+108O6dQ4vjQv5aLWu+Nk7HMdrktL5Zmj5T
	Pq/9Cy/Vr7G3BDwAaAudTqVBscFtmxCgFqPbL4S0WT+0W5vl0Nksl5bRiPARRN8I
	m6oAv8fOtf6/iacHx3DGjQ3YGUjRrqCaMoMk5z4gmaJEcUc4PvKISjlssQwPlDou
	IYzJjjN3SKqWMmZcpbY/R0NLvpWCScK5LBOq5+kUiyLVq8jf4RsBMGyMqrSCRqNf
	UZ5k4Mhpv1SAFBkhZWPk5utDZjsErzCW2OwwCO1jq5EaImxGRXDGm3Xq9k26mbi2
	lx1vtspJW7otoEKqjiOSNusoRjNS6XZ2OtQ==
X-ME-Sender: <xms:jg2CaFMvZL_DYtdWdRPsST63k9caHMb1JvlStOeEKPyoEmfRGn1TZw>
    <xme:jg2CaLPALk_lx3aLi3KCCT79Jc74hz8-LdvFe09dgsp25gogYxYQdul6a7SnCFYbD
    4C37WY8eWfdiA>
X-ME-Received: <xmr:jg2CaNth139sDpPCZZBFBqmO_QMWc9yV2jYPEbwoxT2lmOSA7Q8GeCeSzc1KtZohzPedt8yqtdnKESjBS9pXKTp0VmqtrH7Wf08>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdektdegfecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpedtheevtdff
    geegffegteeiveefledvhfejkedvhffgffevvdeuvdeiudeggfeuvdenucffohhmrghinh
    epghhithhhuhgsrdgtohhmpdhquhgsvghsqdhoshdrohhrghenucevlhhushhtvghrufhi
    iigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeefpdhmohguvgep
    shhmthhpohhuthdprhgtphhtthhopehnghhotgdqthhurdguihhnhhesvhgrthgvshdrth
    gvtghhpdhrtghpthhtohepfihinhdqphhvqdguvghvvghlsehlihhsthhsrdigvghnphhr
    ohhjvggtthdrohhrghdprhgtphhtthhopehofigvnhdrshhmihhthhestghlohhuugdrtg
    homh
X-ME-Proxy: <xmx:jg2CaNXn5HqcVqqVee2JbWFjRvBVeu2WFBJh1e1BDxn2yi_1rSKEvA>
    <xmx:jg2CaNuUrXT1s9UX2I60LSxPKQIS7M2C3bjE4aCqg1yhGdzLdrLUyQ>
    <xmx:jg2CaBUtXDOPqLZ2xYL-rkCRbOa-ACXwCY9PjPyK-7VZztM0-0OQSQ>
    <xmx:jg2CaInQStcZSSR7nmEfdSuuqryp-FjL7nf1Vq8zBEjPFSmeOuGoHg>
    <xmx:jw2CaJXnPUIx3eHBrKd4kso0TCR3mr9-GGDmq6mRXrUi6SjAkHOIQ4KE>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 24 Jul 2025 12:40:10 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org, Owen Smith <owen.smith@cloud.com>
Subject: Re: [PATCH v2 0/7] Implement forced unplug and forced activation
Message-ID: <aIINjK0lAEsY53GF@mail-itl>
References: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="x46qgAuNI4B2oktU"
Content-Disposition: inline
In-Reply-To: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>


--x46qgAuNI4B2oktU
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 24 Jul 2025 12:40:10 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org, Owen Smith <owen.smith@cloud.com>
Subject: Re: [PATCH v2 0/7] Implement forced unplug and forced activation

On Wed, Jul 23, 2025 at 01:58:27PM +0000, Tu Dinh wrote:
> The goal of these two features is to simplify driver servicing and avoid
> requiring storing driver state in Registry.
>=20
> Forced unplug, as name implies, forcefully unplugs emulated devices when
> a driver is present, rather than when it's active. It defines a Registry
> key at CurrentControlSet\XEN\ForceUnplug. Drivers can opt into forced
> unplug by creating an appropriate value (DISKS/NICS) in this key.
>=20
> Forced activation is the companion to forced unplug. It aims to make
> activation of Xenbus FDOs deterministic and stateless, using a
> precedence mapping based on device IDs, prioritizing the vendor device
> over the generic ones. This avoids situations where the wrong FDO is
> activated, which will prevent Windows Update from working.
>=20
> With forced activation, Xenfilt is now installed via INF on top of the
> current installation routines. This means PV drivers can be injected
> offline without needing another reboot to be reconfigured.
>=20
> To avoid affecting older drivers, the two features are conditioned
> behind new build variables FORCE_UNPLUG and FORCE_ACTIVATE.
>=20
> The following scenarios have been successfully tested, both requiring
> only one reboot:
> * Offline driver installation via DISM
> * Toggling vendor device

Hi,

I tested this series (or rather
https://github.com/xcp-ng/win-xenbus/tree/emulated-v3 at
9424383b7c2f0b6d9f4a7fd554662c8679cc935f) and got the following failure:

    xen platform: xenbus|PdoQueryId: (ULONG_PTR)Buffer - (ULONG_PTR)Id.Buff=
er =3D 1032
    xen platform: xenbus|PdoQueryId: REGSTR_VAL_MAX_HCID_LEN =3D 1024
    xen platform: xenbus|PdoQueryId: ASSERTION FAILED: ((ULONG_PTR)Buffer -=
 (ULONG_PTR)Id.Buffer) < (1024)
    xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 0000000000038990)
    xen platform: xenbus|SUSPEND: Count =3D 0
    xen platform: xenbus|SUSPEND: EARLY: xenbus.sys + 0000000000010910 (FFF=
FC08B03CFF130)
    xen platform: xenbus|SUSPEND: EARLY: xenbus.sys + 000000000002F3D0 (FFF=
FC08B03F11910)
    xen platform: xenbus|SUSPEND: EARLY: xenbus.sys + 0000000000026DA0 (FFF=
FC08B04B63640)
    xen platform: xenbus|SUSPEND: EARLY: xenbus.sys + 00000000000373A0 (FFF=
FC08B09393000)
    xen platform: xenbus|SUSPEND: LATE: xenbus.sys + 0000000000010B10 (FFFF=
C08B03CFF130)
    xen platform: xenbus|SUSPEND: LATE: xenbus.sys + 0000000000037440 (FFFF=
C08B09393000)
    xen platform: xenbus|SUSPEND: LATE: xenbus.sys + 0000000000004520 (FFFF=
C08B09265260)
    xen platform: xenbus|SUSPEND: LATE: xenbus.sys + 0000000000021110 (FFFF=
C08B092DA010)
    xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 0000000000038990)
    xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000003C5C0)
    xen platform: xenbus|RANGE_SET: RANGE SETS:
    xen platform: xenbus|RANGE_SET:  - gnttab:
    xen platform: xenbus|RANGE_SET:    {20 - 1ff}*
    xen platform: xenbus|RANGE_SET:  - balloon:
    xen platform: xenbus|RANGE_SET:    EMPTY
    xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000003C5C0)
    xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000000D850)
    xen platform: xenbus|EVTCHN: EVENT CHANNELS:
    xen platform: xenbus|EVTCHN: - (0001) BY xenbus.sys + 0000000000034A41 =
ACTIVE
    xen platform: xenbus|EVTCHN: FIXED
    xen platform: xenbus|EVTCHN: Count =3D 40
    xen platform: xenbus|EVTCHN: - (0002) BY xenbus.sys + 0000000000003AD6 =
ACTIVE
    xen platform: xenbus|EVTCHN: FIXED
    xen platform: xenbus|EVTCHN: Count =3D 0
    xen platform: xenbus|EVTCHN: - (0006) BY xenbus.sys + 000000000002355B =
ACTIVE
    xen platform: xenbus|EVTCHN: VIRQ: Index =3D 1
    xen platform: xenbus|EVTCHN: Count =3D 0
    xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000000D850)
    xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000002E680)
    xen platform: xenbus|SHARED_INFO: Address =3D 00000000.7ee78000
    xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000002E680)
    xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 0000000000042710)
    xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 0000000000042710)
    xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 0000000000025D60)
    xen platform: xenbus|GNTTAB: [0] Address =3D 7ee66000.884c0740
    xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 0000000000025D60)
    xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 00000000000341A0)
    xen platform: xenbus|STORE: Address =3D 00000000.feffc000
    xen platform: xenbus|STORE: Events =3D 40 Dpcs =3D 4 Polls =3D 44
    xen platform: xenbus|STORE: WATCHES:
    xen platform: xenbus|STORE: - (9255) ON device BY xenbus.sys + 00000000=
00022879 [ACTIVE]
    xen platform: xenbus|STORE: - (9256) ON control/shutdown BY xenbus.sys =
+ 0000000000022908 [ACTIVE]
    xen platform: xenbus|STORE: - (9257) ON memory/target BY xenbus.sys + 0=
000000000022A0A [ACTIVE]
    xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 00000000000341A0)
    xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 0000000000003680)
    xen platform: xenbus|CONSOLE: Address =3D 00000000.fefff000
    xen platform: xenbus|CONSOLE: Events =3D 0 Dpcs =3D 1
    xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 0000000000003680)
    xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 0000000000016F90)
    xen platform: xenbus|FDO: VIRQS:
    xen platform: xenbus|FDO: - DEBUG: (0:0) Count =3D 0
    xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 0000000000016F90)
    xen platform: xen|BUGCHECK: =3D=3D=3D=3D>
    xen platform: xen|BUGCHECK: SYSTEM_THREAD_EXCEPTION_NOT_HANDLED: FFFFFF=
FFC0000420 FFFFF8028845B042 FFFFB0849D5E9178 FFFFB0849D5E89B0
    xen platform: xen|BUGCHECK: C0000420 AT xenbus.sys + 000000000002B042
    xen platform: xen|BUGCHECK: EXCEPTION (FFFFB0849D5E9178):
    xen platform: xen|BUGCHECK: - Code =3D C0000420
    xen platform: xen|BUGCHECK: - Flags =3D 00000000
    xen platform: xen|BUGCHECK: - Address =3D FFFFF8028845B042
    xen platform: xen|BUGCHECK: CONTEXT (FFFFB0849D5E89B0):
    xen platform: xen|BUGCHECK: - GS =3D 002B
    xen platform: xen|BUGCHECK: - FS =3D 0053
    xen platform: xen|BUGCHECK: - ES =3D 002B
    xen platform: xen|BUGCHECK: - DS =3D 002B
    xen platform: xen|BUGCHECK: - SS =3D 0018
    xen platform: xen|BUGCHECK: - CS =3D 0010
    xen platform: xen|BUGCHECK: - EFLAGS =3D 00040282
    xen platform: xen|BUGCHECK: - RDI =3D 00000000090FCA70
    xen platform: xen|BUGCHECK: - RSI =3D 000000009D5E9700
    xen platform: xen|BUGCHECK: - RBX =3D 0000000009389340
    xen platform: xen|BUGCHECK: - RDX =3D 0000000000000059
    xen platform: xen|BUGCHECK: - RCX =3D 00000000FD000000
    xen platform: xen|BUGCHECK: - RAX =3D 0000000000000001
    xen platform: xen|BUGCHECK: - RBP =3D 0000000000000000
    xen platform: xen|BUGCHECK: - RIP =3D 000000008845B042
    xen platform: xen|BUGCHECK: - RSP =3D 000000009D5E93B0
    xen platform: xen|BUGCHECK: - R8 =3D 000000000000004D
    xen platform: xen|BUGCHECK: - R9 =3D 0000000000000000
    xen platform: xen|BUGCHECK: - R10 =3D 00000000719679B0
    xen platform: xen|BUGCHECK: - R11 =3D 0000000000000000
    xen platform: xen|BUGCHECK: - R12 =3D 0000000080000FB4
    xen platform: xen|BUGCHECK: - R13 =3D 0000000000000001
    xen platform: xen|BUGCHECK: - R14 =3D 00000000C00000BB
    xen platform: xen|BUGCHECK: - R15 =3D 0000000009389340
    xen platform: xen|BUGCHECK: STACK:
    xen platform: xen|BUGCHECK: 000000009D5E9500: (00000000091AA140 0000000=
0090FCA70 0000000000000013 000000008847C370) xenbus.sys + 0000000000028668
    xen platform: xen|BUGCHECK: 000000009D5E9560: (00000000091AA140 0000000=
0090FCA70 0000000000000518 0000000000000000) xenbus.sys + 0000000000028408
    xen platform: xen|BUGCHECK: 000000009D5E95A0: (00000000091AA140 0000000=
0090FCA70 0000000000000000 000000007182E891) xenbus.sys + 000000000000A3CC
    xen platform: xen|BUGCHECK: 000000009D5E9620: (0000000009389340 0000000=
0090FCA70 0000000000000001 0000000069706E04) ntoskrnl.exe + 000000000022A6B5
    xen platform: xen|BUGCHECK: 000000009D5E9660: (0000000000000000 0000000=
009389340 000000009D5E9700 0000000000000001) ntoskrnl.exe + 0000000000694A88
    xen platform: xen|BUGCHECK: 000000009D5E96D0: (00000000C00000BB 0000000=
00938CC90 000000009D5E9878 0000000009389340) ntoskrnl.exe + 0000000000733716
    xen platform: xen|BUGCHECK: 000000009D5E9760: (0000000000000000 0000000=
09D5E9878 0000000003D5A500 0000000000000000) ntoskrnl.exe + 00000000007335F4
    xen platform: xen|BUGCHECK: 000000009D5E97C0: (0000000000000000 0000000=
09D5E98C0 0000000000020000 000000000938CC90) ntoskrnl.exe + 0000000000730EC1


This is on fresh Windows 10 (22H2) domU, with opt-in patches for both xenvbd
and xennet.

The test was done on our CI system, more logs are available at
https://openqa.qubes-os.org/tests/147544#downloads. Especially it
includes tarball of the whole /var/log, where you can find
/var/log/xen/console/guest-windows-test-dm.log with messages before the
above failure.

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--x46qgAuNI4B2oktU
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmiCDYwACgkQ24/THMrX
1ywvCQf/QxQo9BhLWKJpkJ4W8ObalSsc7JsYdn22ddrarkfFD/ucWYKLbPvicMd0
VSDB/ge47lZHj7jCYXtnlGtodMRaROUNv3fn5oXvLmYd9ytwFJOEIDWrgmXh/ePq
Ld9kV0vb3MlJAIeV6eQcJf3HKuYKiz2uQd5FDXQhDzYNki3FincYUWmEIvHoSqI/
rOfsaPC2JD/ojwjXavT6+fFlY4pQZvtSxqlMRFsQx92FmWiNl1hFps0ChtrMH7lF
rHRdRANSCAAskAM26ea3M+wg5CQvm31xMxYuXXRVPLu0PHqlQ6y4255ysl/gFYfu
cbisj4MawrJeowAwrj6mDEFM2EUF2A==
=pfvC
-----END PGP SIGNATURE-----

--x46qgAuNI4B2oktU--


From win-pv-devel-bounces@lists.xenproject.org Thu Jul 24 10:43:37 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Jul 2025 10:43:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1055659.1424017 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uetQH-0006UA-7e; Thu, 24 Jul 2025 10:43:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1055659.1424017; Thu, 24 Jul 2025 10:43:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uetQH-0006U3-4W; Thu, 24 Jul 2025 10:43:37 +0000
Received: by outflank-mailman (input) for mailman id 1055659;
 Thu, 24 Jul 2025 10:43:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=bKlW=2F=bounce.vates.tech=bounce-md_30504962.68820e54.v1-be8aa86006194888b53a5a124f775a73@srs-se1.protection.inumbo.net>)
 id 1uetQG-0006Tx-45
 for win-pv-devel@lists.xenproject.org; Thu, 24 Jul 2025 10:43:36 +0000
Received: from mail132-21.atl131.mandrillapp.com
 (mail132-21.atl131.mandrillapp.com [198.2.132.21])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0bc65818-687b-11f0-a31e-13f23c93f187;
 Thu, 24 Jul 2025 12:43:34 +0200 (CEST)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-21.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4bnnfX5k3rz1XLct3
 for <win-pv-devel@lists.xenproject.org>; Thu, 24 Jul 2025 10:43:32 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 be8aa86006194888b53a5a124f775a73; Thu, 24 Jul 2025 10:43:32 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0bc65818-687b-11f0-a31e-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1753353812; x=1753623812;
	bh=cq1joXsu7jgP3bfjlKnVTrzX7i9lfhOjbY2VJI31FDk=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=lTKh0Bg/BIdVHEgB/ZKFq5W+22iq/m/s49m3dcf0WsDYudjhQ88KQs1c5YGQMG1Pc
	 HlGjFtW7YY6NfFCQa/wbhoVtzhB7byXP8NDV7DaGC6aqbCAdTkMc+VIqQoWVeaxDAJ
	 JP+LfG5om+EqVz6vbCRxQfGkXXTCIHhe0+UgWwipLiscFP24AXDWFqwgTD8xu3z1Jo
	 7aWni+NP9q3BdV8wq95jF1A39Yud3bGf5m/P8pL2Xaan7Jwl7GFn3aMTD2Z03hLPKM
	 91X4Oa7x78nVq+gQUwwxuCJEwpa7MwEqMPiVTYadVULZosj4/uJ2mU7tzdJBY8afh/
	 +TjeiFAhbLu7Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1753353812; x=1753614312; i=ngoc-tu.dinh@vates.tech;
	bh=cq1joXsu7jgP3bfjlKnVTrzX7i9lfhOjbY2VJI31FDk=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=BoPjna8aM2P6jwyTmB1VGYgXb2Z3lq1mmAMJK7WRjoAA4dHmFKJfXnbxHXyRWtnEW
	 TCKrAaAKUeeiK4f5JAVtRI1OGWqL7fwtnENLPuk9tRrbLkTDSomasSpq0a4GrY49ED
	 1bqjhSM2eVtSUvf3yHCoVfKgUweyKsXHHMvCvpBpDYHwzFGqPPNg97aZ42RLTCWhdf
	 dwsDfhJvoWg0puQ6hEkjbvEUMSfmgKoKY9VrW201p/QyfF4cNFIS+hmmpd8721jFkK
	 kf9Z1Q/GFaoF3xgOEyyLJLtiE4rSvCGMozlNllTzajw3Y3iNMsaIQy4cys8WDR4wdA
	 obxs4i6Bk/tOg==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v2=200/7]=20Implement=20forced=20unplug=20and=20forced=20activation?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1753353811695
Message-Id: <36a62b84-b4aa-4c2c-88f9-dbd0e9123500@vates.tech>
To: "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>
Cc: win-pv-devel@lists.xenproject.org, "Owen Smith" <owen.smith@cloud.com>
References: <20250723135819.988-1-ngoc-tu.dinh@vates.tech> <aIINjK0lAEsY53GF@mail-itl>
In-Reply-To: <aIINjK0lAEsY53GF@mail-itl>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.be8aa86006194888b53a5a124f775a73?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250724:md
Date: Thu, 24 Jul 2025 10:43:32 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi Marek,

On 24/07/2025 12:40, Marek Marczykowski-G=C3=B3recki wrote:
> On Wed, Jul 23, 2025 at 01:58:27PM +0000, Tu Dinh wrote:
>> The goal of these two features is to simplify driver servicing and avoid
>> requiring storing driver state in Registry.
>>
>> Forced unplug, as name implies, forcefully unplugs emulated devices when
>> a driver is present, rather than when it's active. It defines a Registry
>> key at CurrentControlSet\XEN\ForceUnplug. Drivers can opt into forced
>> unplug by creating an appropriate value (DISKS/NICS) in this key.
>>
>> Forced activation is the companion to forced unplug. It aims to make
>> activation of Xenbus FDOs deterministic and stateless, using a
>> precedence mapping based on device IDs, prioritizing the vendor device
>> over the generic ones. This avoids situations where the wrong FDO is
>> activated, which will prevent Windows Update from working.
>>
>> With forced activation, Xenfilt is now installed via INF on top of the
>> current installation routines. This means PV drivers can be injected
>> offline without needing another reboot to be reconfigured.
>>
>> To avoid affecting older drivers, the two features are conditioned
>> behind new build variables FORCE_UNPLUG and FORCE_ACTIVATE.
>>
>> The following scenarios have been successfully tested, both requiring
>> only one reboot:
>> * Offline driver installation via DISM
>> * Toggling vendor device
> 
> Hi,
> 
> I tested this series (or rather
> https://github.com/xcp-ng/win-xenbus/tree/emulated-v3 at
> 9424383b7c2f0b6d9f4a7fd554662c8679cc935f) and got the following failure:
> 
>      xen platform: xenbus|PdoQueryId: (ULONG_PTR)Buffer - (ULONG_PTR)Id.B=
uffer =3D 1032
>      xen platform: xenbus|PdoQueryId: REGSTR_VAL_MAX_HCID_LEN =3D 1024
>      xen platform: xenbus|PdoQueryId: ASSERTION FAILED: ((ULONG_PTR)Buffe=
r - (ULONG_PTR)Id.Buffer) < (1024)
>      xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000003899=
0)
>      xen platform: xenbus|SUSPEND: Count =3D 0
>      xen platform: xenbus|SUSPEND: EARLY: xenbus.sys + 0000000000010910 (=
FFFFC08B03CFF130)
>      xen platform: xenbus|SUSPEND: EARLY: xenbus.sys + 000000000002F3D0 (=
FFFFC08B03F11910)
>      xen platform: xenbus|SUSPEND: EARLY: xenbus.sys + 0000000000026DA0 (=
FFFFC08B04B63640)
>      xen platform: xenbus|SUSPEND: EARLY: xenbus.sys + 00000000000373A0 (=
FFFFC08B09393000)
>      xen platform: xenbus|SUSPEND: LATE: xenbus.sys + 0000000000010B10 (F=
FFFC08B03CFF130)
>      xen platform: xenbus|SUSPEND: LATE: xenbus.sys + 0000000000037440 (F=
FFFC08B09393000)
>      xen platform: xenbus|SUSPEND: LATE: xenbus.sys + 0000000000004520 (F=
FFFC08B09265260)
>      xen platform: xenbus|SUSPEND: LATE: xenbus.sys + 0000000000021110 (F=
FFFC08B092DA010)
>      xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000003899=
0)
>      xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000003C5C=
0)
>      xen platform: xenbus|RANGE_SET: RANGE SETS:
>      xen platform: xenbus|RANGE_SET:  - gnttab:
>      xen platform: xenbus|RANGE_SET:    {20 - 1ff}*
>      xen platform: xenbus|RANGE_SET:  - balloon:
>      xen platform: xenbus|RANGE_SET:    EMPTY
>      xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000003C5C=
0)
>      xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000000D85=
0)
>      xen platform: xenbus|EVTCHN: EVENT CHANNELS:
>      xen platform: xenbus|EVTCHN: - (0001) BY xenbus.sys + 0000000000034A=
41 ACTIVE
>      xen platform: xenbus|EVTCHN: FIXED
>      xen platform: xenbus|EVTCHN: Count =3D 40
>      xen platform: xenbus|EVTCHN: - (0002) BY xenbus.sys + 0000000000003A=
D6 ACTIVE
>      xen platform: xenbus|EVTCHN: FIXED
>      xen platform: xenbus|EVTCHN: Count =3D 0
>      xen platform: xenbus|EVTCHN: - (0006) BY xenbus.sys + 00000000000235=
5B ACTIVE
>      xen platform: xenbus|EVTCHN: VIRQ: Index =3D 1
>      xen platform: xenbus|EVTCHN: Count =3D 0
>      xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000000D85=
0)
>      xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000002E68=
0)
>      xen platform: xenbus|SHARED_INFO: Address =3D 00000000.7ee78000
>      xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000002E68=
0)
>      xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000004271=
0)
>      xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000004271=
0)
>      xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 0000000000025D6=
0)
>      xen platform: xenbus|GNTTAB: [0] Address =3D 7ee66000.884c0740
>      xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 0000000000025D6=
0)
>      xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 00000000000341A=
0)
>      xen platform: xenbus|STORE: Address =3D 00000000.feffc000
>      xen platform: xenbus|STORE: Events =3D 40 Dpcs =3D 4 Polls =3D 44
>      xen platform: xenbus|STORE: WATCHES:
>      xen platform: xenbus|STORE: - (9255) ON device BY xenbus.sys + 00000=
00000022879 [ACTIVE]
>      xen platform: xenbus|STORE: - (9256) ON control/shutdown BY xenbus.s=
ys + 0000000000022908 [ACTIVE]
>      xen platform: xenbus|STORE: - (9257) ON memory/target BY xenbus.sys =
+ 0000000000022A0A [ACTIVE]
>      xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 00000000000341A=
0)
>      xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000000368=
0)
>      xen platform: xenbus|CONSOLE: Address =3D 00000000.fefff000
>      xen platform: xenbus|CONSOLE: Events =3D 0 Dpcs =3D 1
>      xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000000368=
0)
>      xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 0000000000016F9=
0)
>      xen platform: xenbus|FDO: VIRQS:
>      xen platform: xenbus|FDO: - DEBUG: (0:0) Count =3D 0
>      xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 0000000000016F9=
0)
>      xen platform: xen|BUGCHECK: =3D=3D=3D=3D>
>      xen platform: xen|BUGCHECK: SYSTEM_THREAD_EXCEPTION_NOT_HANDLED: FFF=
FFFFFC0000420 FFFFF8028845B042 FFFFB0849D5E9178 FFFFB0849D5E89B0
>      xen platform: xen|BUGCHECK: C0000420 AT xenbus.sys + 000000000002B04=
2
>      xen platform: xen|BUGCHECK: EXCEPTION (FFFFB0849D5E9178):
>      xen platform: xen|BUGCHECK: - Code =3D C0000420
>      xen platform: xen|BUGCHECK: - Flags =3D 00000000
>      xen platform: xen|BUGCHECK: - Address =3D FFFFF8028845B042
>      xen platform: xen|BUGCHECK: CONTEXT (FFFFB0849D5E89B0):
>      xen platform: xen|BUGCHECK: - GS =3D 002B
>      xen platform: xen|BUGCHECK: - FS =3D 0053
>      xen platform: xen|BUGCHECK: - ES =3D 002B
>      xen platform: xen|BUGCHECK: - DS =3D 002B
>      xen platform: xen|BUGCHECK: - SS =3D 0018
>      xen platform: xen|BUGCHECK: - CS =3D 0010
>      xen platform: xen|BUGCHECK: - EFLAGS =3D 00040282
>      xen platform: xen|BUGCHECK: - RDI =3D 00000000090FCA70
>      xen platform: xen|BUGCHECK: - RSI =3D 000000009D5E9700
>      xen platform: xen|BUGCHECK: - RBX =3D 0000000009389340
>      xen platform: xen|BUGCHECK: - RDX =3D 0000000000000059
>      xen platform: xen|BUGCHECK: - RCX =3D 00000000FD000000
>      xen platform: xen|BUGCHECK: - RAX =3D 0000000000000001
>      xen platform: xen|BUGCHECK: - RBP =3D 0000000000000000
>      xen platform: xen|BUGCHECK: - RIP =3D 000000008845B042
>      xen platform: xen|BUGCHECK: - RSP =3D 000000009D5E93B0
>      xen platform: xen|BUGCHECK: - R8 =3D 000000000000004D
>      xen platform: xen|BUGCHECK: - R9 =3D 0000000000000000
>      xen platform: xen|BUGCHECK: - R10 =3D 00000000719679B0
>      xen platform: xen|BUGCHECK: - R11 =3D 0000000000000000
>      xen platform: xen|BUGCHECK: - R12 =3D 0000000080000FB4
>      xen platform: xen|BUGCHECK: - R13 =3D 0000000000000001
>      xen platform: xen|BUGCHECK: - R14 =3D 00000000C00000BB
>      xen platform: xen|BUGCHECK: - R15 =3D 0000000009389340
>      xen platform: xen|BUGCHECK: STACK:
>      xen platform: xen|BUGCHECK: 000000009D5E9500: (00000000091AA140 0000=
0000090FCA70 0000000000000013 000000008847C370) xenbus.sys + 00000000000286=
68
>      xen platform: xen|BUGCHECK: 000000009D5E9560: (00000000091AA140 0000=
0000090FCA70 0000000000000518 0000000000000000) xenbus.sys + 00000000000284=
08
>      xen platform: xen|BUGCHECK: 000000009D5E95A0: (00000000091AA140 0000=
0000090FCA70 0000000000000000 000000007182E891) xenbus.sys + 000000000000A3=
CC
>      xen platform: xen|BUGCHECK: 000000009D5E9620: (0000000009389340 0000=
0000090FCA70 0000000000000001 0000000069706E04) ntoskrnl.exe + 000000000022=
A6B5
>      xen platform: xen|BUGCHECK: 000000009D5E9660: (0000000000000000 0000=
000009389340 000000009D5E9700 0000000000000001) ntoskrnl.exe + 000000000069=
4A88
>      xen platform: xen|BUGCHECK: 000000009D5E96D0: (00000000C00000BB 0000=
00000938CC90 000000009D5E9878 0000000009389340) ntoskrnl.exe + 000000000073=
3716
>      xen platform: xen|BUGCHECK: 000000009D5E9760: (0000000000000000 0000=
00009D5E9878 0000000003D5A500 0000000000000000) ntoskrnl.exe + 000000000073=
35F4
>      xen platform: xen|BUGCHECK: 000000009D5E97C0: (0000000000000000 0000=
00009D5E98C0 0000000000020000 000000000938CC90) ntoskrnl.exe + 000000000073=
0EC1
> 
> 
> This is on fresh Windows 10 (22H2) domU, with opt-in patches for both xen=
vbd
> and xennet.
> 
> The test was done on our CI system, more logs are available at
> https://openqa.qubes-os.org/tests/147544#downloads. Especially it
> includes tarball of the whole /var/log, where you can find
> /var/log/xen/console/guest-windows-test-dm.log with messages before the
> above failure.
> 

That tree is stale, could you try again (or apply the patches directly)? 
That BSOD should already be fixed with 3e93bee44bbc "xenbus: Use 
nonpaged pool in FdoQueryId".


Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From win-pv-devel-bounces@lists.xenproject.org Thu Jul 24 10:50:03 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Jul 2025 10:50:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1055684.1424020 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uetWU-0006tR-NW; Thu, 24 Jul 2025 10:50:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1055684.1424020; Thu, 24 Jul 2025 10:50:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uetWU-0006tH-Kq; Thu, 24 Jul 2025 10:50:02 +0000
Received: by outflank-mailman (input) for mailman id 1055684;
 Thu, 24 Jul 2025 10:50:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WvLx=2F=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1uetWT-0006h3-LA
 for win-pv-devel@lists.xenproject.org; Thu, 24 Jul 2025 10:50:01 +0000
Received: from fhigh-a8-smtp.messagingengine.com
 (fhigh-a8-smtp.messagingengine.com [103.168.172.159])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f1bcb8be-687b-11f0-a31e-13f23c93f187;
 Thu, 24 Jul 2025 12:50:00 +0200 (CEST)
Received: from phl-compute-09.internal (phl-compute-09.phl.internal
 [10.202.2.49])
 by mailfhigh.phl.internal (Postfix) with ESMTP id D8786140059D;
 Thu, 24 Jul 2025 06:49:58 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-09.internal (MEProxy); Thu, 24 Jul 2025 06:49:58 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 24 Jul 2025 06:49:57 -0400 (EDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f1bcb8be-687b-11f0-a31e-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm2; t=1753354198;
	 x=1753440598; bh=1ix5M4VzP6UTHk3BtZUA8HxqviCncDffi0YWX3dhLiE=; b=
	TEPtNoFiZTtDPExecYuenJpeIjdlENvsj7fMvjVgWuJsvR8ROtzebvQZn/EqcfLf
	XZnILwlbu+THrzK4Tri8Od0XNUlQP+hIeYZfgB0USIAIudNOfCxeHVePoLMaxHfj
	3v0QhPyjAwCC909xIf20NFkg31FvO7d5BVHnGSNaNCzr/jDbtAXeWalROReMMB5i
	0pkwFZdlkL1YULBY6pOgy2UafexCIl6rROQIZ0fT7+FWsP0/yBdN6z+jSmq+BeWy
	4WPXtWFDoRPAppcgMeR6DCbrtYer0rBx0aOayqMc0Xlxt4jWKImldHSJ+BNGzSgj
	tV6Lr0IqnyN1WkQlrurD9g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=
	1753354198; x=1753440598; bh=1ix5M4VzP6UTHk3BtZUA8HxqviCncDffi0Y
	WX3dhLiE=; b=eNUFh7Jxd5Knt9S2FDQVO4Tadw1/GCeh5Y28ymzA1Bsf5OF616k
	h88HULDtnqnraHMX6Luy/Ib2teSPUYd30Rby+YjGh7eYORZjlP64lUgD/RTFOshj
	zEmgxVkKsh9Jv4xwefcmDId8PXS3ACYR6CMR+6fsCauiqYsykVF6Ey/6BZstTwAD
	D4Y/XtJ9aNI6YM099K+jN4QOkrU+pJidePdwRJQYTrxq8sAWzmWaqJr+JGEl1lcJ
	jz59dnofEZ4wijTstodpodhF8HkHpIb8o+WLV5MkkiVlwdf/EXW7YxQYK4MoEU+u
	722P3M7gO0IVg72aKf4soYc/zy609rfz9Zw==
X-ME-Sender: <xms:1g-CaDi85bytrg19AcZrLMtZHh0IjbBgguvsfg_rFn6Q6lf7zVG5hA>
    <xme:1g-CaDR8CR2nNml-F97B_IwcIdY-PibOOhEFYVNcNSObuqlmS511JdHflcqnBUhNF
    rpzfs9Yj5GN3g>
X-ME-Received: <xmr:1g-CaMgdW2Pfy6fAgCPnP6en1Ib6BJ2_somX0aXeBNY0F9c2db4A9ohtZ8VofE4j8wHyHUx6K0UHuLwgqGK3TYT7tWQRxHYONII>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdektdeghecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr
    ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug
    hrpeffhffvvefukfhfgggtuggjsehgtderredttdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpedtheevtdff
    geegffegteeiveefledvhfejkedvhffgffevvdeuvdeiudeggfeuvdenucffohhmrghinh
    epghhithhhuhgsrdgtohhmpdhquhgsvghsqdhoshdrohhrghenucevlhhushhtvghrufhi
    iigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeefpdhmohguvgep
    shhmthhpohhuthdprhgtphhtthhopehnghhotgdqthhurdguihhnhhesvhgrthgvshdrth
    gvtghhpdhrtghpthhtohepfihinhdqphhvqdguvghvvghlsehlihhsthhsrdigvghnphhr
    ohhjvggtthdrohhrghdprhgtphhtthhopehofigvnhdrshhmihhthhestghlohhuugdrtg
    homh
X-ME-Proxy: <xmx:1g-CaL7ZTnkzfRDNMDg_RKOAlRO7V_pAaWWaBLDZtdofwEj8QjUwww>
    <xmx:1g-CaBDr7AcR49tw08cgSP_tEs1gNNIfOBQ1tfQpd-6NAtAVWIcIlg>
    <xmx:1g-CaKZ_oztDYEybvPhwgWBDyqMehvcpcTqQXXVFUS11cyfza-IfCg>
    <xmx:1g-CaEY-g03qGQVVxb3fY6E8tmR2F0GW6aNGBvpyNhow-wL8gdCFNw>
    <xmx:1g-CaGa5vj4zICHEHLU9z7S20jPQhok5oyLSHNTfFpDGrwmEbjuMfCn1>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 24 Jul 2025 12:49:56 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org, Owen Smith <owen.smith@cloud.com>
Subject: Re: [PATCH v2 0/7] Implement forced unplug and forced activation
Message-ID: <aIIP1GrINNeOW9io@mail-itl>
References: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
 <aIINjK0lAEsY53GF@mail-itl>
 <36a62b84-b4aa-4c2c-88f9-dbd0e9123500@vates.tech>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="PnmT5Vk1hZjnFrqd"
Content-Disposition: inline
In-Reply-To: <36a62b84-b4aa-4c2c-88f9-dbd0e9123500@vates.tech>


--PnmT5Vk1hZjnFrqd
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 24 Jul 2025 12:49:56 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org, Owen Smith <owen.smith@cloud.com>
Subject: Re: [PATCH v2 0/7] Implement forced unplug and forced activation

On Thu, Jul 24, 2025 at 10:43:32AM +0000, Tu Dinh wrote:
> Hi Marek,
>=20
> On 24/07/2025 12:40, Marek Marczykowski-G=C3=B3recki wrote:
> > On Wed, Jul 23, 2025 at 01:58:27PM +0000, Tu Dinh wrote:
> >> The goal of these two features is to simplify driver servicing and avo=
id
> >> requiring storing driver state in Registry.
> >>
> >> Forced unplug, as name implies, forcefully unplugs emulated devices wh=
en
> >> a driver is present, rather than when it's active. It defines a Regist=
ry
> >> key at CurrentControlSet\XEN\ForceUnplug. Drivers can opt into forced
> >> unplug by creating an appropriate value (DISKS/NICS) in this key.
> >>
> >> Forced activation is the companion to forced unplug. It aims to make
> >> activation of Xenbus FDOs deterministic and stateless, using a
> >> precedence mapping based on device IDs, prioritizing the vendor device
> >> over the generic ones. This avoids situations where the wrong FDO is
> >> activated, which will prevent Windows Update from working.
> >>
> >> With forced activation, Xenfilt is now installed via INF on top of the
> >> current installation routines. This means PV drivers can be injected
> >> offline without needing another reboot to be reconfigured.
> >>
> >> To avoid affecting older drivers, the two features are conditioned
> >> behind new build variables FORCE_UNPLUG and FORCE_ACTIVATE.
> >>
> >> The following scenarios have been successfully tested, both requiring
> >> only one reboot:
> >> * Offline driver installation via DISM
> >> * Toggling vendor device
> >
> > Hi,
> >
> > I tested this series (or rather
> > https://github.com/xcp-ng/win-xenbus/tree/emulated-v3 at
> > 9424383b7c2f0b6d9f4a7fd554662c8679cc935f) and got the following failure:
> >
> >      xen platform: xenbus|PdoQueryId: (ULONG_PTR)Buffer - (ULONG_PTR)Id=
=2EBuffer =3D 1032
> >      xen platform: xenbus|PdoQueryId: REGSTR_VAL_MAX_HCID_LEN =3D 1024
> >      xen platform: xenbus|PdoQueryId: ASSERTION FAILED: ((ULONG_PTR)Buf=
fer - (ULONG_PTR)Id.Buffer) < (1024)
> >      xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 0000000000038=
990)
> >      xen platform: xenbus|SUSPEND: Count =3D 0
> >      xen platform: xenbus|SUSPEND: EARLY: xenbus.sys + 0000000000010910=
 (FFFFC08B03CFF130)
> >      xen platform: xenbus|SUSPEND: EARLY: xenbus.sys + 000000000002F3D0=
 (FFFFC08B03F11910)
> >      xen platform: xenbus|SUSPEND: EARLY: xenbus.sys + 0000000000026DA0=
 (FFFFC08B04B63640)
> >      xen platform: xenbus|SUSPEND: EARLY: xenbus.sys + 00000000000373A0=
 (FFFFC08B09393000)
> >      xen platform: xenbus|SUSPEND: LATE: xenbus.sys + 0000000000010B10 =
(FFFFC08B03CFF130)
> >      xen platform: xenbus|SUSPEND: LATE: xenbus.sys + 0000000000037440 =
(FFFFC08B09393000)
> >      xen platform: xenbus|SUSPEND: LATE: xenbus.sys + 0000000000004520 =
(FFFFC08B09265260)
> >      xen platform: xenbus|SUSPEND: LATE: xenbus.sys + 0000000000021110 =
(FFFFC08B092DA010)
> >      xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 0000000000038=
990)
> >      xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000003C=
5C0)
> >      xen platform: xenbus|RANGE_SET: RANGE SETS:
> >      xen platform: xenbus|RANGE_SET:  - gnttab:
> >      xen platform: xenbus|RANGE_SET:    {20 - 1ff}*
> >      xen platform: xenbus|RANGE_SET:  - balloon:
> >      xen platform: xenbus|RANGE_SET:    EMPTY
> >      xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000003C=
5C0)
> >      xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000000D=
850)
> >      xen platform: xenbus|EVTCHN: EVENT CHANNELS:
> >      xen platform: xenbus|EVTCHN: - (0001) BY xenbus.sys + 000000000003=
4A41 ACTIVE
> >      xen platform: xenbus|EVTCHN: FIXED
> >      xen platform: xenbus|EVTCHN: Count =3D 40
> >      xen platform: xenbus|EVTCHN: - (0002) BY xenbus.sys + 000000000000=
3AD6 ACTIVE
> >      xen platform: xenbus|EVTCHN: FIXED
> >      xen platform: xenbus|EVTCHN: Count =3D 0
> >      xen platform: xenbus|EVTCHN: - (0006) BY xenbus.sys + 000000000002=
355B ACTIVE
> >      xen platform: xenbus|EVTCHN: VIRQ: Index =3D 1
> >      xen platform: xenbus|EVTCHN: Count =3D 0
> >      xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000000D=
850)
> >      xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000002E=
680)
> >      xen platform: xenbus|SHARED_INFO: Address =3D 00000000.7ee78000
> >      xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000002E=
680)
> >      xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 0000000000042=
710)
> >      xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 0000000000042=
710)
> >      xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 0000000000025=
D60)
> >      xen platform: xenbus|GNTTAB: [0] Address =3D 7ee66000.884c0740
> >      xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 0000000000025=
D60)
> >      xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 0000000000034=
1A0)
> >      xen platform: xenbus|STORE: Address =3D 00000000.feffc000
> >      xen platform: xenbus|STORE: Events =3D 40 Dpcs =3D 4 Polls =3D 44
> >      xen platform: xenbus|STORE: WATCHES:
> >      xen platform: xenbus|STORE: - (9255) ON device BY xenbus.sys + 000=
0000000022879 [ACTIVE]
> >      xen platform: xenbus|STORE: - (9256) ON control/shutdown BY xenbus=
=2Esys + 0000000000022908 [ACTIVE]
> >      xen platform: xenbus|STORE: - (9257) ON memory/target BY xenbus.sy=
s + 0000000000022A0A [ACTIVE]
> >      xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 0000000000034=
1A0)
> >      xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 0000000000003=
680)
> >      xen platform: xenbus|CONSOLE: Address =3D 00000000.fefff000
> >      xen platform: xenbus|CONSOLE: Events =3D 0 Dpcs =3D 1
> >      xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 0000000000003=
680)
> >      xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 0000000000016=
F90)
> >      xen platform: xenbus|FDO: VIRQS:
> >      xen platform: xenbus|FDO: - DEBUG: (0:0) Count =3D 0
> >      xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 0000000000016=
F90)
> >      xen platform: xen|BUGCHECK: =3D=3D=3D=3D>
> >      xen platform: xen|BUGCHECK: SYSTEM_THREAD_EXCEPTION_NOT_HANDLED: F=
FFFFFFFC0000420 FFFFF8028845B042 FFFFB0849D5E9178 FFFFB0849D5E89B0
> >      xen platform: xen|BUGCHECK: C0000420 AT xenbus.sys + 000000000002B=
042
> >      xen platform: xen|BUGCHECK: EXCEPTION (FFFFB0849D5E9178):
> >      xen platform: xen|BUGCHECK: - Code =3D C0000420
> >      xen platform: xen|BUGCHECK: - Flags =3D 00000000
> >      xen platform: xen|BUGCHECK: - Address =3D FFFFF8028845B042
> >      xen platform: xen|BUGCHECK: CONTEXT (FFFFB0849D5E89B0):
> >      xen platform: xen|BUGCHECK: - GS =3D 002B
> >      xen platform: xen|BUGCHECK: - FS =3D 0053
> >      xen platform: xen|BUGCHECK: - ES =3D 002B
> >      xen platform: xen|BUGCHECK: - DS =3D 002B
> >      xen platform: xen|BUGCHECK: - SS =3D 0018
> >      xen platform: xen|BUGCHECK: - CS =3D 0010
> >      xen platform: xen|BUGCHECK: - EFLAGS =3D 00040282
> >      xen platform: xen|BUGCHECK: - RDI =3D 00000000090FCA70
> >      xen platform: xen|BUGCHECK: - RSI =3D 000000009D5E9700
> >      xen platform: xen|BUGCHECK: - RBX =3D 0000000009389340
> >      xen platform: xen|BUGCHECK: - RDX =3D 0000000000000059
> >      xen platform: xen|BUGCHECK: - RCX =3D 00000000FD000000
> >      xen platform: xen|BUGCHECK: - RAX =3D 0000000000000001
> >      xen platform: xen|BUGCHECK: - RBP =3D 0000000000000000
> >      xen platform: xen|BUGCHECK: - RIP =3D 000000008845B042
> >      xen platform: xen|BUGCHECK: - RSP =3D 000000009D5E93B0
> >      xen platform: xen|BUGCHECK: - R8 =3D 000000000000004D
> >      xen platform: xen|BUGCHECK: - R9 =3D 0000000000000000
> >      xen platform: xen|BUGCHECK: - R10 =3D 00000000719679B0
> >      xen platform: xen|BUGCHECK: - R11 =3D 0000000000000000
> >      xen platform: xen|BUGCHECK: - R12 =3D 0000000080000FB4
> >      xen platform: xen|BUGCHECK: - R13 =3D 0000000000000001
> >      xen platform: xen|BUGCHECK: - R14 =3D 00000000C00000BB
> >      xen platform: xen|BUGCHECK: - R15 =3D 0000000009389340
> >      xen platform: xen|BUGCHECK: STACK:
> >      xen platform: xen|BUGCHECK: 000000009D5E9500: (00000000091AA140 00=
000000090FCA70 0000000000000013 000000008847C370) xenbus.sys + 000000000002=
8668
> >      xen platform: xen|BUGCHECK: 000000009D5E9560: (00000000091AA140 00=
000000090FCA70 0000000000000518 0000000000000000) xenbus.sys + 000000000002=
8408
> >      xen platform: xen|BUGCHECK: 000000009D5E95A0: (00000000091AA140 00=
000000090FCA70 0000000000000000 000000007182E891) xenbus.sys + 000000000000=
A3CC
> >      xen platform: xen|BUGCHECK: 000000009D5E9620: (0000000009389340 00=
000000090FCA70 0000000000000001 0000000069706E04) ntoskrnl.exe + 0000000000=
22A6B5
> >      xen platform: xen|BUGCHECK: 000000009D5E9660: (0000000000000000 00=
00000009389340 000000009D5E9700 0000000000000001) ntoskrnl.exe + 0000000000=
694A88
> >      xen platform: xen|BUGCHECK: 000000009D5E96D0: (00000000C00000BB 00=
0000000938CC90 000000009D5E9878 0000000009389340) ntoskrnl.exe + 0000000000=
733716
> >      xen platform: xen|BUGCHECK: 000000009D5E9760: (0000000000000000 00=
0000009D5E9878 0000000003D5A500 0000000000000000) ntoskrnl.exe + 0000000000=
7335F4
> >      xen platform: xen|BUGCHECK: 000000009D5E97C0: (0000000000000000 00=
0000009D5E98C0 0000000000020000 000000000938CC90) ntoskrnl.exe + 0000000000=
730EC1
> >
> >
> > This is on fresh Windows 10 (22H2) domU, with opt-in patches for both x=
envbd
> > and xennet.
> >
> > The test was done on our CI system, more logs are available at
> > https://openqa.qubes-os.org/tests/147544#downloads. Especially it
> > includes tarball of the whole /var/log, where you can find
> > /var/log/xen/console/guest-windows-test-dm.log with messages before the
> > above failure.
> >
>=20
> That tree is stale, could you try again (or apply the patches directly)?
> That BSOD should already be fixed with 3e93bee44bbc "xenbus: Use
> nonpaged pool in FdoQueryId".

Hm, I have this patch included already. Now when fetched diff shows two
logical differences:
- change in evtchn_fifo.c (change while loop to for)
- changes in xenbus.inf adding FORCE_ACTIVATION among other things

BTW, should I enable also FORCE_ACTIVATION?

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--PnmT5Vk1hZjnFrqd
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmiCD9QACgkQ24/THMrX
1yzjcwf/bLzpanYdxMD+5jzP3snlj5OAJSCPph2PBy0W1DPsae90sAiJfP00/uXp
Uv/itFSoQNi/1q3Hchcm4sfshoyI5R6j7AykyNRKgbm9mpfsJ6y1X2TKGKYqrtZa
2e0LN46J0k9GwBgrmeVdNRU/AYfNdAO1xLaI4QPw0fX4WrGdFDyaHbKcXkL5Tsti
NkNgyZ201OG+Np2I4BYfrJD6FD6X45wQoW2giTbWI3b1Cw5KmIltcKS1sF5YMgre
aKle1bfYPsmi9HhfvRv5+X4bcioGDLt/QUfC8OCnAzwWe6a3oShwia+mo8g7Vwr2
Rw1c41JfpvW2cXEXNHf4vErlcUWcdg==
=gebK
-----END PGP SIGNATURE-----

--PnmT5Vk1hZjnFrqd--


From win-pv-devel-bounces@lists.xenproject.org Thu Jul 24 11:01:47 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 24 Jul 2025 11:01:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1055707.1424025 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uethq-0000me-ID; Thu, 24 Jul 2025 11:01:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1055707.1424025; Thu, 24 Jul 2025 11:01:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uethq-0000mX-FS; Thu, 24 Jul 2025 11:01:46 +0000
Received: by outflank-mailman (input) for mailman id 1055707;
 Thu, 24 Jul 2025 11:01:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=D8df=2F=bounce.vates.tech=bounce-md_30504962.68821294.v1-61d8182d6bf84a7e8855ed3ce5f9bbeb@srs-se1.protection.inumbo.net>)
 id 1uetho-0000mR-UY
 for win-pv-devel@lists.xenproject.org; Thu, 24 Jul 2025 11:01:45 +0000
Received: from mail13.wdc04.mandrillapp.com (mail13.wdc04.mandrillapp.com
 [205.201.139.13]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 940ceb65-687d-11f0-b895-0df219b8e170;
 Thu, 24 Jul 2025 13:01:42 +0200 (CEST)
Received: from pmta16.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail13.wdc04.mandrillapp.com (Mailchimp) with ESMTP id 4bnp3S2nJ2zNCd91l
 for <win-pv-devel@lists.xenproject.org>; Thu, 24 Jul 2025 11:01:40 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 61d8182d6bf84a7e8855ed3ce5f9bbeb; Thu, 24 Jul 2025 11:01:40 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 940ceb65-687d-11f0-b895-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1753354900; x=1753624900;
	bh=xQsjkS36mCCucHmqdfyl92T2f9gXGO2tICvVxkFwKsQ=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=rwsPSt9d9BxqlBiJyswBIDYrSQNSzysvUe3L9Wb5HZHu3Atdyq/+8EcNGWh2Vv788
	 JmHlUKBTzVUnBDYRuQUHaJsuMQGjlsqWKAExpOjI1jgwOiqqIL+93IWk7uPCER/ZQD
	 TVwol6zb69NIMxvYbMZlsQAP1z7BJKYjD5eqAiyAK5TZ/GqXiRKm7lj53+FJ270hwJ
	 Lb+1TLd/jqedeUJxv9VgAmeO4wyn5Xj5+v+YrmgeiWOdVlA9xiJeupabnysee4kYjx
	 45Dov2WYReRDrcO+zzN8QySP9mdW0h6ec41hK8mgx6SVUYJMYlAMjLGxPaKYMDAQFY
	 ZHC1DNmg6cU7Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1753354900; x=1753615400; i=ngoc-tu.dinh@vates.tech;
	bh=xQsjkS36mCCucHmqdfyl92T2f9gXGO2tICvVxkFwKsQ=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=XEmHclG6vjM6uE7oK4qkz3VQkU0CpHRDhPWDFz5rjeA+glG1OImkyKdPN/jNB+hSB
	 bBdg/xRB38NKYbhdVutpeklJayBrm+ssvEcgn7HVRhAowdaWqwoJx95QJDTDismEzy
	 xnZX7HnBGcoo04QRr4uUd1HxoOOOLFnN8mu+rDtmXKYJyLQdgSX2OZPne8rvdEfByj
	 SM12pbePMkE/gI0FoUxi/JukOXgQhUvjLLxKdwO+9A3RGdDZDKRJZTip7Ts+VVfBee
	 2roHkA6jBFfkEzboOWSvFJtaxcfFejWatclPlCsNF4rZpLfHsFsXuIoSL0XxADO7sc
	 KFohxrXV7RQ9A==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v2=200/7]=20Implement=20forced=20unplug=20and=20forced=20activation?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1753354899403
Message-Id: <4fbfc33b-dec3-4b7f-b036-bc6678f06c3f@vates.tech>
To: "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>
Cc: win-pv-devel@lists.xenproject.org, "Owen Smith" <owen.smith@cloud.com>
References: <20250723135819.988-1-ngoc-tu.dinh@vates.tech> <aIINjK0lAEsY53GF@mail-itl> <36a62b84-b4aa-4c2c-88f9-dbd0e9123500@vates.tech> <aIIP1GrINNeOW9io@mail-itl>
In-Reply-To: <aIIP1GrINNeOW9io@mail-itl>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.61d8182d6bf84a7e8855ed3ce5f9bbeb?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250724:md
Date: Thu, 24 Jul 2025 11:01:40 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 24/07/2025 12:49, Marek Marczykowski-G=C3=B3recki wrote:
> On Thu, Jul 24, 2025 at 10:43:32AM +0000, Tu Dinh wrote:
>> Hi Marek,
>>
>> On 24/07/2025 12:40, Marek Marczykowski-G=C3=B3recki wrote:
>>> On Wed, Jul 23, 2025 at 01:58:27PM +0000, Tu Dinh wrote:
>>>> The goal of these two features is to simplify driver servicing and avo=
id
>>>> requiring storing driver state in Registry.
>>>>
>>>> Forced unplug, as name implies, forcefully unplugs emulated devices wh=
en
>>>> a driver is present, rather than when it's active. It defines a Regist=
ry
>>>> key at CurrentControlSet\XEN\ForceUnplug. Drivers can opt into forced
>>>> unplug by creating an appropriate value (DISKS/NICS) in this key.
>>>>
>>>> Forced activation is the companion to forced unplug. It aims to make
>>>> activation of Xenbus FDOs deterministic and stateless, using a
>>>> precedence mapping based on device IDs, prioritizing the vendor device
>>>> over the generic ones. This avoids situations where the wrong FDO is
>>>> activated, which will prevent Windows Update from working.
>>>>
>>>> With forced activation, Xenfilt is now installed via INF on top of the
>>>> current installation routines. This means PV drivers can be injected
>>>> offline without needing another reboot to be reconfigured.
>>>>
>>>> To avoid affecting older drivers, the two features are conditioned
>>>> behind new build variables FORCE_UNPLUG and FORCE_ACTIVATE.
>>>>
>>>> The following scenarios have been successfully tested, both requiring
>>>> only one reboot:
>>>> * Offline driver installation via DISM
>>>> * Toggling vendor device
>>>
>>> Hi,
>>>
>>> I tested this series (or rather
>>> https://github.com/xcp-ng/win-xenbus/tree/emulated-v3 at
>>> 9424383b7c2f0b6d9f4a7fd554662c8679cc935f) and got the following failure=
:
>>>
>>>       xen platform: xenbus|PdoQueryId: (ULONG_PTR)Buffer - (ULONG_PTR)I=
d.Buffer =3D 1032
>>>       xen platform: xenbus|PdoQueryId: REGSTR_VAL_MAX_HCID_LEN =3D 1024
>>>       xen platform: xenbus|PdoQueryId: ASSERTION FAILED: ((ULONG_PTR)Bu=
ffer - (ULONG_PTR)Id.Buffer) < (1024)
>>>       xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000003=
8990)
>>>       xen platform: xenbus|SUSPEND: Count =3D 0
>>>       xen platform: xenbus|SUSPEND: EARLY: xenbus.sys + 000000000001091=
0 (FFFFC08B03CFF130)
>>>       xen platform: xenbus|SUSPEND: EARLY: xenbus.sys + 000000000002F3D=
0 (FFFFC08B03F11910)
>>>       xen platform: xenbus|SUSPEND: EARLY: xenbus.sys + 0000000000026DA=
0 (FFFFC08B04B63640)
>>>       xen platform: xenbus|SUSPEND: EARLY: xenbus.sys + 00000000000373A=
0 (FFFFC08B09393000)
>>>       xen platform: xenbus|SUSPEND: LATE: xenbus.sys + 0000000000010B10=
 (FFFFC08B03CFF130)
>>>       xen platform: xenbus|SUSPEND: LATE: xenbus.sys + 0000000000037440=
 (FFFFC08B09393000)
>>>       xen platform: xenbus|SUSPEND: LATE: xenbus.sys + 0000000000004520=
 (FFFFC08B09265260)
>>>       xen platform: xenbus|SUSPEND: LATE: xenbus.sys + 0000000000021110=
 (FFFFC08B092DA010)
>>>       xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000003=
8990)
>>>       xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000003=
C5C0)
>>>       xen platform: xenbus|RANGE_SET: RANGE SETS:
>>>       xen platform: xenbus|RANGE_SET:  - gnttab:
>>>       xen platform: xenbus|RANGE_SET:    {20 - 1ff}*
>>>       xen platform: xenbus|RANGE_SET:  - balloon:
>>>       xen platform: xenbus|RANGE_SET:    EMPTY
>>>       xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000003=
C5C0)
>>>       xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000000=
D850)
>>>       xen platform: xenbus|EVTCHN: EVENT CHANNELS:
>>>       xen platform: xenbus|EVTCHN: - (0001) BY xenbus.sys + 00000000000=
34A41 ACTIVE
>>>       xen platform: xenbus|EVTCHN: FIXED
>>>       xen platform: xenbus|EVTCHN: Count =3D 40
>>>       xen platform: xenbus|EVTCHN: - (0002) BY xenbus.sys + 00000000000=
03AD6 ACTIVE
>>>       xen platform: xenbus|EVTCHN: FIXED
>>>       xen platform: xenbus|EVTCHN: Count =3D 0
>>>       xen platform: xenbus|EVTCHN: - (0006) BY xenbus.sys + 00000000000=
2355B ACTIVE
>>>       xen platform: xenbus|EVTCHN: VIRQ: Index =3D 1
>>>       xen platform: xenbus|EVTCHN: Count =3D 0
>>>       xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000000=
D850)
>>>       xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000002=
E680)
>>>       xen platform: xenbus|SHARED_INFO: Address =3D 00000000.7ee78000
>>>       xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000002=
E680)
>>>       xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000004=
2710)
>>>       xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000004=
2710)
>>>       xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000002=
5D60)
>>>       xen platform: xenbus|GNTTAB: [0] Address =3D 7ee66000.884c0740
>>>       xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000002=
5D60)
>>>       xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000003=
41A0)
>>>       xen platform: xenbus|STORE: Address =3D 00000000.feffc000
>>>       xen platform: xenbus|STORE: Events =3D 40 Dpcs =3D 4 Polls =3D 44
>>>       xen platform: xenbus|STORE: WATCHES:
>>>       xen platform: xenbus|STORE: - (9255) ON device BY xenbus.sys + 00=
00000000022879 [ACTIVE]
>>>       xen platform: xenbus|STORE: - (9256) ON control/shutdown BY xenbu=
s.sys + 0000000000022908 [ACTIVE]
>>>       xen platform: xenbus|STORE: - (9257) ON memory/target BY xenbus.s=
ys + 0000000000022A0A [ACTIVE]
>>>       xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000003=
41A0)
>>>       xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000000=
3680)
>>>       xen platform: xenbus|CONSOLE: Address =3D 00000000.fefff000
>>>       xen platform: xenbus|CONSOLE: Events =3D 0 Dpcs =3D 1
>>>       xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000000=
3680)
>>>       xen platform: XEN|DEBUG: =3D=3D=3D=3D> (xenbus.sys + 000000000001=
6F90)
>>>       xen platform: xenbus|FDO: VIRQS:
>>>       xen platform: xenbus|FDO: - DEBUG: (0:0) Count =3D 0
>>>       xen platform: XEN|DEBUG: <=3D=3D=3D=3D (xenbus.sys + 000000000001=
6F90)
>>>       xen platform: xen|BUGCHECK: =3D=3D=3D=3D>
>>>       xen platform: xen|BUGCHECK: SYSTEM_THREAD_EXCEPTION_NOT_HANDLED: =
FFFFFFFFC0000420 FFFFF8028845B042 FFFFB0849D5E9178 FFFFB0849D5E89B0
>>>       xen platform: xen|BUGCHECK: C0000420 AT xenbus.sys + 000000000002=
B042
>>>       xen platform: xen|BUGCHECK: EXCEPTION (FFFFB0849D5E9178):
>>>       xen platform: xen|BUGCHECK: - Code =3D C0000420
>>>       xen platform: xen|BUGCHECK: - Flags =3D 00000000
>>>       xen platform: xen|BUGCHECK: - Address =3D FFFFF8028845B042
>>>       xen platform: xen|BUGCHECK: CONTEXT (FFFFB0849D5E89B0):
>>>       xen platform: xen|BUGCHECK: - GS =3D 002B
>>>       xen platform: xen|BUGCHECK: - FS =3D 0053
>>>       xen platform: xen|BUGCHECK: - ES =3D 002B
>>>       xen platform: xen|BUGCHECK: - DS =3D 002B
>>>       xen platform: xen|BUGCHECK: - SS =3D 0018
>>>       xen platform: xen|BUGCHECK: - CS =3D 0010
>>>       xen platform: xen|BUGCHECK: - EFLAGS =3D 00040282
>>>       xen platform: xen|BUGCHECK: - RDI =3D 00000000090FCA70
>>>       xen platform: xen|BUGCHECK: - RSI =3D 000000009D5E9700
>>>       xen platform: xen|BUGCHECK: - RBX =3D 0000000009389340
>>>       xen platform: xen|BUGCHECK: - RDX =3D 0000000000000059
>>>       xen platform: xen|BUGCHECK: - RCX =3D 00000000FD000000
>>>       xen platform: xen|BUGCHECK: - RAX =3D 0000000000000001
>>>       xen platform: xen|BUGCHECK: - RBP =3D 0000000000000000
>>>       xen platform: xen|BUGCHECK: - RIP =3D 000000008845B042
>>>       xen platform: xen|BUGCHECK: - RSP =3D 000000009D5E93B0
>>>       xen platform: xen|BUGCHECK: - R8 =3D 000000000000004D
>>>       xen platform: xen|BUGCHECK: - R9 =3D 0000000000000000
>>>       xen platform: xen|BUGCHECK: - R10 =3D 00000000719679B0
>>>       xen platform: xen|BUGCHECK: - R11 =3D 0000000000000000
>>>       xen platform: xen|BUGCHECK: - R12 =3D 0000000080000FB4
>>>       xen platform: xen|BUGCHECK: - R13 =3D 0000000000000001
>>>       xen platform: xen|BUGCHECK: - R14 =3D 00000000C00000BB
>>>       xen platform: xen|BUGCHECK: - R15 =3D 0000000009389340
>>>       xen platform: xen|BUGCHECK: STACK:
>>>       xen platform: xen|BUGCHECK: 000000009D5E9500: (00000000091AA140 0=
0000000090FCA70 0000000000000013 000000008847C370) xenbus.sys + 00000000000=
28668
>>>       xen platform: xen|BUGCHECK: 000000009D5E9560: (00000000091AA140 0=
0000000090FCA70 0000000000000518 0000000000000000) xenbus.sys + 00000000000=
28408
>>>       xen platform: xen|BUGCHECK: 000000009D5E95A0: (00000000091AA140 0=
0000000090FCA70 0000000000000000 000000007182E891) xenbus.sys + 00000000000=
0A3CC
>>>       xen platform: xen|BUGCHECK: 000000009D5E9620: (0000000009389340 0=
0000000090FCA70 0000000000000001 0000000069706E04) ntoskrnl.exe + 000000000=
022A6B5
>>>       xen platform: xen|BUGCHECK: 000000009D5E9660: (0000000000000000 0=
000000009389340 000000009D5E9700 0000000000000001) ntoskrnl.exe + 000000000=
0694A88
>>>       xen platform: xen|BUGCHECK: 000000009D5E96D0: (00000000C00000BB 0=
00000000938CC90 000000009D5E9878 0000000009389340) ntoskrnl.exe + 000000000=
0733716
>>>       xen platform: xen|BUGCHECK: 000000009D5E9760: (0000000000000000 0=
00000009D5E9878 0000000003D5A500 0000000000000000) ntoskrnl.exe + 000000000=
07335F4
>>>       xen platform: xen|BUGCHECK: 000000009D5E97C0: (0000000000000000 0=
00000009D5E98C0 0000000000020000 000000000938CC90) ntoskrnl.exe + 000000000=
0730EC1
>>>
>>>
>>> This is on fresh Windows 10 (22H2) domU, with opt-in patches for both x=
envbd
>>> and xennet.
>>>
>>> The test was done on our CI system, more logs are available at
>>> https://openqa.qubes-os.org/tests/147544#downloads. Especially it
>>> includes tarball of the whole /var/log, where you can find
>>> /var/log/xen/console/guest-windows-test-dm.log with messages before the
>>> above failure.
>>>
>>
>> That tree is stale, could you try again (or apply the patches directly)?
>> That BSOD should already be fixed with 3e93bee44bbc "xenbus: Use
>> nonpaged pool in FdoQueryId".
> 
> Hm, I have this patch included already. Now when fetched diff shows two
> logical differences:
> - change in evtchn_fifo.c (change while loop to for)
> - changes in xenbus.inf adding FORCE_ACTIVATION among other things
> 
> BTW, should I enable also FORCE_ACTIVATION?
> 

You're right, I missed the assertion failure. Looks like adding rev 
0900000C caused the compatible ID list to exceed 
REGSTR_VAL_MAX_HCID_LEN. Although I have no idea how to fix this without 
breaking compatibility somehow.

The evtchn_fifo fix is a minor fix that only concerns failure cleanup.

If you use forced unplug you'll very likely want forced activation as 
well, as you'll get to avoid the reboots needed to change the active 
Xenbus FDO.


Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From win-pv-devel-bounces@lists.xenproject.org Fri Jul 25 07:15:11 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 25 Jul 2025 07:15:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1057372.1425281 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ufCe5-0004bY-Iw; Fri, 25 Jul 2025 07:15:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1057372.1425281; Fri, 25 Jul 2025 07:15:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ufCe5-0004bR-GJ; Fri, 25 Jul 2025 07:15:09 +0000
Received: by outflank-mailman (input) for mailman id 1057372;
 Fri, 25 Jul 2025 07:15:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lRcE=2G=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1ufCe4-0004bL-J1
 for win-pv-devel@lists.xenproject.org; Fri, 25 Jul 2025 07:15:08 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 17d843d1-6927-11f0-a31e-13f23c93f187;
 Fri, 25 Jul 2025 09:15:07 +0200 (CEST)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-553b584ac96so1880538e87.1
 for <win-pv-devel@lists.xenproject.org>; Fri, 25 Jul 2025 00:15:07 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 17d843d1-6927-11f0-a31e-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1753427707; x=1754032507; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=3AcbKrkdPEZwUrzABqL3fuQs2IsYlbUDGRxYrgoZG2E=;
        b=KAwdjV2/Vr3DVesaftuFTeAgZz+pAedKFCaZ0Xnosqroc3pHaPvbPp2pqaMrjFcN5W
         b3N85jzpGBehM9P8UuS+uNd+JJWA4Wmo2mVysX00qRCIwBrBtsVIA4Hpaian/2cZ1tIx
         aZAoLRSOdxWlAZGNpeX+J0Xxz5qrS3vTsL9rs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1753427707; x=1754032507;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=3AcbKrkdPEZwUrzABqL3fuQs2IsYlbUDGRxYrgoZG2E=;
        b=WlUoUCzSpXDRahWv8kDbxEwpnuNZM97JFxgZvEZdv4ymjLUVaagYjvYzqc1q8YlXj8
         49XDJOudv/EK1ubNU2R2vfP/cGpBoDEksNzp2y/yzCU0XMCRr9bYZuegej+KnEXiA5ne
         REEe8VleoDmokDL2wf/5bswSpMD9AlTuzEWBSchfasurKBPoh2UYY8qVhK6xwP3D5rby
         eRmdwEHLikFBi3Mi7j/GH6YDpgncvxWXfIXkBnMep1qZiWJkxV7kbhk1l6VzZ9DROW3m
         QrqIekwGba+UTCYh515CqroA9w/ReKEYetSXeZqlp1hCChqgsjxMLgDnfJ08FQwg/MXX
         cvvQ==
X-Gm-Message-State: AOJu0Yxc43TOfLuBzObYzKnZ8HlLTbAPoDVCAZ+aa9PSczS/iuju9Yyz
	jF/GCu3YVw8kXwY1lGN5MIl2GQyat3AfSACF5UXosMXoFTPjFUuNWS20JXft3ug6f5lnYZhan9g
	aQdJGUg9bxGTZNhlLO3bXgkgxFoRgG4F7Q43xOhkt5o4zQzGS/Lk=
X-Gm-Gg: ASbGncvVEA8cxkhx4R2w9zAZRjkmPd3JBruwL9PSgYiMMnembfS78t66unl9LIrhVfI
	BUjA/rlyXo8VssbUXQgLrMLnxpHnC27tl+MWu+uVkte3pt4vOswIe6OCCuhtno6nUu7ohicHHfi
	HbYoeabll5IEf7fwBsPkEyzB6ts4E/P3bhCCVX6Il3fArBXwwDEVmpC+bhglsj4UMGfv+kAsPKt
	eJVVPA=
X-Google-Smtp-Source: AGHT+IHnXOW2qVwYFnZ5uiJ+FlEPwwHiXk+vyC+xogldIi0FEyjWa7TacnvK8VsS2bI57A+lzjVN8Tf3pxSCSxL+Ez4=
X-Received: by 2002:a05:6512:3a86:b0:55a:5013:f42b with SMTP id
 2adb3069b0e04-55b5f4df88bmr190577e87.47.1753427706712; Fri, 25 Jul 2025
 00:15:06 -0700 (PDT)
MIME-Version: 1.0
References: <20250723090243.1957-1-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250723090243.1957-1-ngoc-tu.dinh@vates.tech>
From: Owen Smith <owen.smith@cloud.com>
Date: Fri, 25 Jul 2025 08:14:55 +0100
X-Gm-Features: Ac12FXzgeJGkgByeoQ-_CX2rP7r4HZ95A-KDqQwl7CY3wtyuU2HFDM8qsOZXCi4
Message-ID: <CAC_UY8_V-vgqaMzTyUsuvQ=0DHveW-At-58wUY2F0+L6LaqLxw@mail.gmail.com>
Subject: Re: [XENVIF PATCH v2] Fix argument to ControllerSetHashAlgorithm
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000992cab063abbb307"

--000000000000992cab063abbb307
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

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

On Wed, Jul 23, 2025 at 10:02=E2=80=AFAM Tu Dinh <ngoc-tu.dinh@vates.tech> =
wrote:

> ControllerSetHashAlgorithm expects a XEN_NETIF_CTRL_HASH_ALGORITHM_*
> whereas Hash->Algorithm is of type XENVIF_PACKET_HASH_ALGORITHM.
>
> These two enums are not aligned so translate them manually.
>
> Also treat XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED the same as
> XENVIF_PACKET_HASH_ALGORITHM_NONE, but return STATUS_NOT_SUPPORTED when
> an unsupported Hash->Algorithm is supplied.
>
> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
> ---
> v2: Treat XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED the same as
> XENVIF_PACKET_HASH_ALGORITHM_NONE.
> ---
>  src/xenvif/frontend.c | 13 +++++++------
>  1 file changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
> index 79b04fb..90ec2b1 100644
> --- a/src/xenvif/frontend.c
> +++ b/src/xenvif/frontend.c
> @@ -1883,6 +1883,7 @@ __FrontendUpdateHash(
>  {
>      PXENVIF_CONTROLLER      Controller;
>      ULONG                   Zero =3D 0;
> +    ULONG                   NetifAlgorithm;
>      ULONG                   Size;
>      PULONG                  Mapping;
>      ULONG                   Flags;
> @@ -1892,30 +1893,30 @@ __FrontendUpdateHash(
>
>      switch (Hash->Algorithm) {
>      case XENVIF_PACKET_HASH_ALGORITHM_NONE:
> +    case XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED:
> +        NetifAlgorithm =3D XEN_NETIF_CTRL_HASH_ALGORITHM_NONE;
>          Size =3D 1;
>          Mapping =3D &Zero;
>          Flags =3D 0;
>          break;
>
>      case XENVIF_PACKET_HASH_ALGORITHM_TOEPLITZ:
> +        NetifAlgorithm =3D XEN_NETIF_CTRL_HASH_ALGORITHM_TOEPLITZ;
>          Size =3D Hash->Size;
>          Mapping =3D Hash->Mapping;
>          Flags =3D Hash->Flags;
>          break;
>
> -    case XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED:
>      default:
> -        (VOID) ControllerSetHashAlgorithm(Controller,
> -
> XEN_NETIF_CTRL_HASH_ALGORITHM_NONE);
> -        goto done;
> +        return STATUS_NOT_SUPPORTED;
>      }
>
>      status =3D ControllerSetHashAlgorithm(Controller,
> -                                        Hash->Algorithm);
> +                                        NetifAlgorithm);
>      if (!NT_SUCCESS(status))
>          goto fail1;
>
> -    if (Hash->Algorithm =3D=3D XEN_NETIF_CTRL_HASH_ALGORITHM_NONE)
> +    if (NetifAlgorithm =3D=3D XEN_NETIF_CTRL_HASH_ALGORITHM_NONE)
>          goto done;
>
>      status =3D ControllerSetHashMappingSize(Controller, Size);
> --
> 2.50.1.windows.1
>
>
>
> Ngoc Tu Dinh | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech
>
>

--000000000000992cab063abbb307
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">Reviewed-by: Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com">owen=
.smith@cloud.com</a>&gt;</div></div><br><div class=3D"gmail_quote gmail_quo=
te_container"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, Jul 23, 2025 at=
 10:02=E2=80=AFAM Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt; wrote:<br></div><=
blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l=
eft:1px solid rgb(204,204,204);padding-left:1ex">ControllerSetHashAlgorithm=
 expects a XEN_NETIF_CTRL_HASH_ALGORITHM_*<br>
whereas Hash-&gt;Algorithm is of type XENVIF_PACKET_HASH_ALGORITHM.<br>
<br>
These two enums are not aligned so translate them manually.<br>
<br>
Also treat XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED the same as<br>
XENVIF_PACKET_HASH_ALGORITHM_NONE, but return STATUS_NOT_SUPPORTED when<br>
an unsupported Hash-&gt;Algorithm is supplied.<br>
<br>
Signed-off-by: Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt;<br>
---<br>
v2: Treat XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED the same as<br>
XENVIF_PACKET_HASH_ALGORITHM_NONE.<br>
---<br>
=C2=A0src/xenvif/frontend.c | 13 +++++++------<br>
=C2=A01 file changed, 7 insertions(+), 6 deletions(-)<br>
<br>
diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c<br>
index 79b04fb..90ec2b1 100644<br>
--- a/src/xenvif/frontend.c<br>
+++ b/src/xenvif/frontend.c<br>
@@ -1883,6 +1883,7 @@ __FrontendUpdateHash(<br>
=C2=A0{<br>
=C2=A0 =C2=A0 =C2=A0PXENVIF_CONTROLLER=C2=A0 =C2=A0 =C2=A0 Controller;<br>
=C2=A0 =C2=A0 =C2=A0ULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0Zero =3D 0;<br>
+=C2=A0 =C2=A0 ULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0NetifAlgorithm;<br>
=C2=A0 =C2=A0 =C2=A0ULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0Size;<br>
=C2=A0 =C2=A0 =C2=A0PULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 Mapping;<br>
=C2=A0 =C2=A0 =C2=A0ULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0Flags;<br>
@@ -1892,30 +1893,30 @@ __FrontendUpdateHash(<br>
<br>
=C2=A0 =C2=A0 =C2=A0switch (Hash-&gt;Algorithm) {<br>
=C2=A0 =C2=A0 =C2=A0case XENVIF_PACKET_HASH_ALGORITHM_NONE:<br>
+=C2=A0 =C2=A0 case XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED:<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 NetifAlgorithm =3D XEN_NETIF_CTRL_HASH_ALGORIT=
HM_NONE;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Size =3D 1;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Mapping =3D &amp;Zero;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Flags =3D 0;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
<br>
=C2=A0 =C2=A0 =C2=A0case XENVIF_PACKET_HASH_ALGORITHM_TOEPLITZ:<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 NetifAlgorithm =3D XEN_NETIF_CTRL_HASH_ALGORIT=
HM_TOEPLITZ;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Size =3D Hash-&gt;Size;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Mapping =3D Hash-&gt;Mapping;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Flags =3D Hash-&gt;Flags;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break;<br>
<br>
-=C2=A0 =C2=A0 case XENVIF_PACKET_HASH_ALGORITHM_UNSPECIFIED:<br>
=C2=A0 =C2=A0 =C2=A0default:<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 (VOID) ControllerSetHashAlgorithm(Controller,<=
br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 X=
EN_NETIF_CTRL_HASH_ALGORITHM_NONE);<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 goto done;<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 return STATUS_NOT_SUPPORTED;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0status =3D ControllerSetHashAlgorithm(Controller,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Hash-&gt=
;Algorithm);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 NetifAlg=
orithm);<br>
=C2=A0 =C2=A0 =C2=A0if (!NT_SUCCESS(status))<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto fail1;<br>
<br>
-=C2=A0 =C2=A0 if (Hash-&gt;Algorithm =3D=3D XEN_NETIF_CTRL_HASH_ALGORITHM_=
NONE)<br>
+=C2=A0 =C2=A0 if (NetifAlgorithm =3D=3D XEN_NETIF_CTRL_HASH_ALGORITHM_NONE=
)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0goto done;<br>
<br>
=C2=A0 =C2=A0 =C2=A0status =3D ControllerSetHashMappingSize(Controller, Siz=
e);<br>
-- <br>
2.50.1.windows.1<br>
<br>
<br>
<br>
Ngoc Tu Dinh | Vates XCP-ng Developer<br>
<br>
XCP-ng &amp; Xen Orchestra - Vates solutions<br>
<br>
web: <a href=3D"https://vates.tech" rel=3D"noreferrer" target=3D"_blank">ht=
tps://vates.tech</a><br>
<br>
</blockquote></div>

--000000000000992cab063abbb307--


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 25 07:18:37 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 25 Jul 2025 07:18:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1057383.1425284 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ufChQ-0004iz-SA; Fri, 25 Jul 2025 07:18:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1057383.1425284; Fri, 25 Jul 2025 07:18:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ufChQ-0004is-PY; Fri, 25 Jul 2025 07:18:36 +0000
Received: by outflank-mailman (input) for mailman id 1057383;
 Fri, 25 Jul 2025 07:18:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lRcE=2G=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1ufChP-0004im-RI
 for win-pv-devel@lists.xenproject.org; Fri, 25 Jul 2025 07:18:35 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 92d01620-6927-11f0-b895-0df219b8e170;
 Fri, 25 Jul 2025 09:18:33 +0200 (CEST)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-32b43846e8cso14822161fa.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 25 Jul 2025 00:18:33 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 92d01620-6927-11f0-b895-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1753427913; x=1754032713; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=3Xax7kE8yrESMai/MD8mW7/g2w1vP94Myx7GhHMWPrg=;
        b=Q5Ciga/l8FI/TMRfH4jM5wRY5hD8d/AOEwUU8mQAbTsFTdAGwHUrudlUAlGkGcqb/+
         dU0UiZwwJbo6a4HfASjmb0XqKAjr5Tdlr5r64M4SjpuINAN5TIYd4phpwM1bdYcWbJzf
         /FAWRSrRv53Kt9OMnExHaD/psAoH4VCSOBkcA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1753427913; x=1754032713;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=3Xax7kE8yrESMai/MD8mW7/g2w1vP94Myx7GhHMWPrg=;
        b=LnBYpMwIcI4u+oHfSYRl7YPLkth/yaUZ1ARrqfhqr8dBWRFnnEJSfdYMO7fEc/77eu
         vC1Y/Q6Ci90iLpYIHNYw6GFKbaRWRSW4oIRCE3bddVgiOw++jqVPK4TfYDbU5b8b3dAL
         0ENaXaooBATWLHyBIMng0KoTPxeibCG36Ev+heWbKnDwOxh/WmRdpO7kzJCHPnS2W+B1
         7DT/MvIR7BMBv+5eVrUiNzsH7eAHcMAPYvZr0cLQk+Hq6ulATwkm83QXaoG8CNpR7tp2
         8p1DrN71iCbAnTHw8Omz2wTZtlC0r/ifYfztl+SXBOo/JDqsLh4ubXv/XNBHNVFrDR2J
         KCIQ==
X-Gm-Message-State: AOJu0Yyboo0Hgiwjtp3hf3arSY25DPsTGtjqI2LQpmEQDsqxjlflQCkc
	CRnFn1vqufShfGPwxVveYWm0B+W3t7cLtuD0FQeo+NaT+JAhU0IVAaBp1KRXJaQa1NztAOKketa
	iRQYTuViCCu5Nne5ru88uBmw3CkIv2cfW5RSKJowflcaAUul91Z0=
X-Gm-Gg: ASbGnct2gKcc2uWMXUDE1WRTVIIiV+tCeCCk5Ce0k8PgXQ63Ft5fgAY+2mi+Hd96mBE
	b8JQEWXPm+MRrkaprXLZQq9cGpKMjkd/rCXDP1HEoIkB6bPBTU7r1IdfOwbX71gPTGhwBdk24iU
	nNfng3QSfDnwHGx3pvVkoei6LZXWRhurdT8utVDSLCNTUQwbO+nkp00El9PSJZU38w2QFzjGXZu
	Vpg2UU=
X-Google-Smtp-Source: AGHT+IEwYOhHqKwS6nTYR2ZVkO0KExPnuqDT1ur8VBet27e0b+UKsr4/BMh05zSpS8hqAqbGiWFQv7qcsLnI+iigCVE=
X-Received: by 2002:a2e:a984:0:b0:32b:5e32:d2a5 with SMTP id
 38308e7fff4ca-331ee835a04mr2592401fa.30.1753427912915; Fri, 25 Jul 2025
 00:18:32 -0700 (PDT)
MIME-Version: 1.0
References: <20250723140526.1708-1-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250723140526.1708-1-ngoc-tu.dinh@vates.tech>
From: Owen Smith <owen.smith@cloud.com>
Date: Fri, 25 Jul 2025 08:18:21 +0100
X-Gm-Features: Ac12FXxqKcRG-OMr09GbcmzQOTuH5mxnllxbt5QFV6eA9-OB67rXqke8APpEBpQ
Message-ID: <CAC_UY8_AphMeBtiWD5qY4cedCSzALDT8mMUu0vAs3FcTDcJw7A@mail.gmail.com>
Subject: Re: [XENVKBD PATCH] Fix FDO invalidation when no devices are present
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000e3a1d2063abbbf58"

--000000000000e3a1d2063abbbf58
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

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


On Wed, Jul 23, 2025 at 3:05=E2=80=AFPM Tu Dinh <ngoc-tu.dinh@vates.tech> w=
rote:

> __FdoEnumerate is called with Devices=3D=3DNULL to signify that the entir=
e
> device xenstore key has been removed. However, the PdoIsMissing check
> was under the Devices!=3DNULL check, and will never be called. This means
> existing PDOs will never be validated in this situation.
>
> Instead, always check for the PDO's existence even if Devices=3D=3DNULL.
>
> Fixes: 270cb87d3d2a ("Invalidate FDOs when no devices are present")
> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
> ---
> This is rather untested, but the logic was rewritten to follow xenvif.
> ---
>  src/xenvkbd/fdo.c | 32 ++++++++++++++++----------------
>  1 file changed, 16 insertions(+), 16 deletions(-)
>
> diff --git a/src/xenvkbd/fdo.c b/src/xenvkbd/fdo.c
> index 98297fc..12b8717 100644
> --- a/src/xenvkbd/fdo.c
> +++ b/src/xenvkbd/fdo.c
> @@ -771,23 +771,23 @@ __FdoEnumerate(
>                          break;
>                      }
>                  }
> +            }
>
> -                if (!PdoIsMissing(Pdo)) {
> -                    if (PdoIsEjectRequested(Pdo)) {
> -                        IoRequestDeviceEject(PdoGetDeviceObject(Pdo));
> -                    } else if (Missing) {
> -                        PdoSetMissing(Pdo, "device disappeared");
> -
> -                        // If the PDO has not yet been enumerated then w=
e
> can
> -                        // go ahead and mark it as deleted, otherwise we
> need
> -                        // to notify PnP manager and wait for the
> REMOVE_DEVICE
> -                        // IRP.
> -                        if (PdoGetDevicePnpState(Pdo) =3D=3D Present) {
> -                            PdoSetDevicePnpState(Pdo, Deleted);
> -                            PdoDestroy(Pdo);
> -                        } else {
> -                            NeedInvalidate =3D TRUE;
> -                        }
> +            if (!PdoIsMissing(Pdo)) {
> +                if (PdoIsEjectRequested(Pdo)) {
> +                    IoRequestDeviceEject(PdoGetDeviceObject(Pdo));
> +                } else if (Missing) {
> +                    PdoSetMissing(Pdo, "device disappeared");
> +
> +                    // If the PDO has not yet been enumerated then we ca=
n
> +                    // go ahead and mark it as deleted, otherwise we nee=
d
> +                    // to notify PnP manager and wait for the
> REMOVE_DEVICE
> +                    // IRP.
> +                    if (PdoGetDevicePnpState(Pdo) =3D=3D Present) {
> +                        PdoSetDevicePnpState(Pdo, Deleted);
> +                        PdoDestroy(Pdo);
> +                    } else {
> +                        NeedInvalidate =3D TRUE;
>                      }
>                  }
>              }
> --
> 2.50.0.windows.2
>
>
> Ngoc Tu Dinh | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech
>
>

--000000000000e3a1d2063abbbf58
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: base64

PGRpdiBkaXI9Imx0ciI+PGRpdiBjbGFzcz0iZ21haWxfZGVmYXVsdCIgc3R5bGU9ImZvbnQtZmFt
aWx5Om1vbm9zcGFjZSI+UmV2aWV3ZWQtYnk6IE93ZW4gU21pdGggJmx0OzxhIGhyZWY9Im1haWx0
bzpvd2VuLnNtaXRoQGNsb3VkLmNvbSI+b3dlbi5zbWl0aEBjbG91ZC5jb208L2E+Jmd0OzwvZGl2
PjxkaXYgY2xhc3M9ImdtYWlsX2RlZmF1bHQiIHN0eWxlPSJmb250LWZhbWlseTptb25vc3BhY2Ui
Pjxicj48L2Rpdj48L2Rpdj48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUgZ21haWxfcXVvdGVf
Y29udGFpbmVyIj48ZGl2IGRpcj0ibHRyIiBjbGFzcz0iZ21haWxfYXR0ciI+T24gV2VkLCBKdWwg
MjMsIDIwMjUgYXQgMzowNeKAr1BNIFR1IERpbmggJmx0O25nb2MtdHUuZGluaEB2YXRlcy50ZWNo
Jmd0OyB3cm90ZTo8YnI+PC9kaXY+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHls
ZT0ibWFyZ2luOjBweCAwcHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0
LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgiPl9fRmRvRW51bWVyYXRlIGlzIGNhbGxlZCB3aXRo
IERldmljZXM9PU5VTEwgdG8gc2lnbmlmeSB0aGF0IHRoZSBlbnRpcmU8YnI+DQpkZXZpY2UgeGVu
c3RvcmUga2V5IGhhcyBiZWVuIHJlbW92ZWQuIEhvd2V2ZXIsIHRoZSBQZG9Jc01pc3NpbmcgY2hl
Y2s8YnI+DQp3YXMgdW5kZXIgdGhlIERldmljZXMhPU5VTEwgY2hlY2ssIGFuZCB3aWxsIG5ldmVy
IGJlIGNhbGxlZC4gVGhpcyBtZWFuczxicj4NCmV4aXN0aW5nIFBET3Mgd2lsbCBuZXZlciBiZSB2
YWxpZGF0ZWQgaW4gdGhpcyBzaXR1YXRpb24uPGJyPg0KPGJyPg0KSW5zdGVhZCwgYWx3YXlzIGNo
ZWNrIGZvciB0aGUgUERPJiMzOTtzIGV4aXN0ZW5jZSBldmVuIGlmIERldmljZXM9PU5VTEwuPGJy
Pg0KPGJyPg0KRml4ZXM6IDI3MGNiODdkM2QyYSAoJnF1b3Q7SW52YWxpZGF0ZSBGRE9zIHdoZW4g
bm8gZGV2aWNlcyBhcmUgcHJlc2VudCZxdW90Oyk8YnI+DQpTaWduZWQtb2ZmLWJ5OiBUdSBEaW5o
ICZsdDtuZ29jLXR1LmRpbmhAdmF0ZXMudGVjaCZndDs8YnI+DQotLS08YnI+DQpUaGlzIGlzIHJh
dGhlciB1bnRlc3RlZCwgYnV0IHRoZSBsb2dpYyB3YXMgcmV3cml0dGVuIHRvIGZvbGxvdyB4ZW52
aWYuPGJyPg0KLS0tPGJyPg0KwqBzcmMveGVudmtiZC9mZG8uYyB8IDMyICsrKysrKysrKysrKysr
KystLS0tLS0tLS0tLS0tLS0tPGJyPg0KwqAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygr
KSwgMTYgZGVsZXRpb25zKC0pPGJyPg0KPGJyPg0KZGlmZiAtLWdpdCBhL3NyYy94ZW52a2JkL2Zk
by5jIGIvc3JjL3hlbnZrYmQvZmRvLmM8YnI+DQppbmRleCA5ODI5N2ZjLi4xMmI4NzE3IDEwMDY0
NDxicj4NCi0tLSBhL3NyYy94ZW52a2JkL2Zkby5jPGJyPg0KKysrIGIvc3JjL3hlbnZrYmQvZmRv
LmM8YnI+DQpAQCAtNzcxLDIzICs3NzEsMjMgQEAgX19GZG9FbnVtZXJhdGUoPGJyPg0KwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBicmVhazs8YnI+DQrCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoH08YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoH08YnI+
DQorwqAgwqAgwqAgwqAgwqAgwqAgfTxicj4NCjxicj4NCi3CoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCBpZiAoIVBkb0lzTWlzc2luZyhQZG8pKSB7PGJyPg0KLcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIGlmIChQZG9Jc0VqZWN0UmVxdWVzdGVkKFBkbykpIHs8YnI+DQotwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgSW9SZXF1ZXN0RGV2aWNlRWplY3QoUGRvR2V0RGV2aWNl
T2JqZWN0KFBkbykpOzxicj4NCi3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB9IGVsc2Ug
aWYgKE1pc3NpbmcpIHs8YnI+DQotwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
UGRvU2V0TWlzc2luZyhQZG8sICZxdW90O2RldmljZSBkaXNhcHBlYXJlZCZxdW90Oyk7PGJyPg0K
LTxicj4NCi3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAvLyBJZiB0aGUgUERP
IGhhcyBub3QgeWV0IGJlZW4gZW51bWVyYXRlZCB0aGVuIHdlIGNhbjxicj4NCi3CoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAvLyBnbyBhaGVhZCBhbmQgbWFyayBpdCBhcyBkZWxl
dGVkLCBvdGhlcndpc2Ugd2UgbmVlZDxicj4NCi3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCAvLyB0byBub3RpZnkgUG5QIG1hbmFnZXIgYW5kIHdhaXQgZm9yIHRoZSBSRU1PVkVf
REVWSUNFPGJyPg0KLcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8vIElSUC48
YnI+DQotwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgaWYgKFBkb0dldERldmlj
ZVBucFN0YXRlKFBkbykgPT0gUHJlc2VudCkgezxicj4NCi3CoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCBQZG9TZXREZXZpY2VQbnBTdGF0ZShQZG8sIERlbGV0ZWQpOzxi
cj4NCi3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBQZG9EZXN0cm95
KFBkbyk7PGJyPg0KLcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIH0gZWxzZSB7
PGJyPg0KLcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIE5lZWRJbnZh
bGlkYXRlID0gVFJVRTs8YnI+DQotwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
fTxicj4NCivCoCDCoCDCoCDCoCDCoCDCoCBpZiAoIVBkb0lzTWlzc2luZyhQZG8pKSB7PGJyPg0K
K8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGlmIChQZG9Jc0VqZWN0UmVxdWVzdGVkKFBkbykpIHs8
YnI+DQorwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgSW9SZXF1ZXN0RGV2aWNlRWplY3Qo
UGRvR2V0RGV2aWNlT2JqZWN0KFBkbykpOzxicj4NCivCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB9
IGVsc2UgaWYgKE1pc3NpbmcpIHs8YnI+DQorwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
UGRvU2V0TWlzc2luZyhQZG8sICZxdW90O2RldmljZSBkaXNhcHBlYXJlZCZxdW90Oyk7PGJyPg0K
Kzxicj4NCivCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAvLyBJZiB0aGUgUERPIGhhcyBu
b3QgeWV0IGJlZW4gZW51bWVyYXRlZCB0aGVuIHdlIGNhbjxicj4NCivCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCAvLyBnbyBhaGVhZCBhbmQgbWFyayBpdCBhcyBkZWxldGVkLCBvdGhlcndp
c2Ugd2UgbmVlZDxicj4NCivCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAvLyB0byBub3Rp
ZnkgUG5QIG1hbmFnZXIgYW5kIHdhaXQgZm9yIHRoZSBSRU1PVkVfREVWSUNFPGJyPg0KK8KgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8vIElSUC48YnI+DQorwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgaWYgKFBkb0dldERldmljZVBucFN0YXRlKFBkbykgPT0gUHJlc2VudCkgezxi
cj4NCivCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBQZG9TZXREZXZpY2VQbnBT
dGF0ZShQZG8sIERlbGV0ZWQpOzxicj4NCivCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCBQZG9EZXN0cm95KFBkbyk7PGJyPg0KK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IH0gZWxzZSB7PGJyPg0KK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIE5lZWRJ
bnZhbGlkYXRlID0gVFJVRTs8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoH08
YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoH08YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDC
oH08YnI+DQotLTxicj4NCjIuNTAuMC53aW5kb3dzLjI8YnI+DQo8YnI+DQo8YnI+DQpOZ29jIFR1
IERpbmggfCBWYXRlcyBYQ1AtbmcgRGV2ZWxvcGVyPGJyPg0KPGJyPg0KWENQLW5nICZhbXA7IFhl
biBPcmNoZXN0cmEgLSBWYXRlcyBzb2x1dGlvbnM8YnI+DQo8YnI+DQp3ZWI6IDxhIGhyZWY9Imh0
dHBzOi8vdmF0ZXMudGVjaCIgcmVsPSJub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6
Ly92YXRlcy50ZWNoPC9hPjxicj4NCjxicj4NCjwvYmxvY2txdW90ZT48L2Rpdj4NCg==
--000000000000e3a1d2063abbbf58--


From win-pv-devel-bounces@lists.xenproject.org Fri Jul 25 09:21:26 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 25 Jul 2025 09:21:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1057586.1425438 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ufEcG-0006vh-Ef; Fri, 25 Jul 2025 09:21:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1057586.1425438; Fri, 25 Jul 2025 09:21:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ufEcG-0006va-Bk; Fri, 25 Jul 2025 09:21:24 +0000
Received: by outflank-mailman (input) for mailman id 1057586;
 Fri, 25 Jul 2025 09:21:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lRcE=2G=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1ufEcF-0006vU-NB
 for win-pv-devel@lists.xenproject.org; Fri, 25 Jul 2025 09:21:23 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bb34021b-6938-11f0-a31e-13f23c93f187;
 Fri, 25 Jul 2025 11:21:22 +0200 (CEST)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-553b5165cf5so2400193e87.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 25 Jul 2025 02:21:22 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb34021b-6938-11f0-a31e-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1753435282; x=1754040082; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=kEsJeBQKVlEHSSaR2W+4UpHe08117PD79+vPUiaC2Fk=;
        b=Mt2GMw5eFI5cqVB/yINA+4z9B7e8YKUMDTmqpuQbhbZzE2DaUIae1yW4EP3luKgg2z
         F3ORs8PygWWPF9d4DgoGD+ToJFjVh2QehlTawutklM7Ste9PtWjdz+xzltw+6Ys4fJn2
         jsSWUVjt5CjLpVXVDIpLiGa70AEWD1JqqCuZA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1753435282; x=1754040082;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=kEsJeBQKVlEHSSaR2W+4UpHe08117PD79+vPUiaC2Fk=;
        b=XNlGj1mChk6BEGVgJFL8TqntGZ9OGCfPIyTPUhXcplAjFrSLUwdO61rpmTHcjJ77cO
         p1XSL3nMsOdWjDzy2cIdHyZA2j5yiHkBrOMqnk9hT10IuGHsGwTzV/fptHnL/sndsXPs
         QHQuMBtoJh5kwR3xnacYp3UaRtjqy6nmMdeJFScXAG4eyl8S2GTeHdLfKT41TzvcFDpC
         ldx3lKgyJWzkStIE+SV67Yopz7UPLq1uZVsXZnvn3Wc+fzaNZEMbwStMMJfTJQfm3VSn
         GF90BbzocbW3vEaTeWRj0x30Z0FnffxFcafiFIhF0T4aGJse65YSFjj112yq/d2cNAXT
         eDhg==
X-Forwarded-Encrypted: i=1; AJvYcCWP5EoCOEHu+OI+T1/LKFEMFJfw3TYBhrQnPef1V6xFcK3vAo2PXBxhrvAnLWpB5cbvtrDj0cvCBKaR030=@lists.xenproject.org
X-Gm-Message-State: AOJu0YydpwrReNJYKDpu9ZtnUz0lLpT8j8JdCdzMZmNhl7Rv3bYe9BTH
	AYwxFmBTbHbWkgK74/PZ1DoKV6tRxahWhd0hrFHc7LTUCV0P5GennQ3kLOzgKq3+r4GtSRe4jj9
	WpOPSpLC0jFKt8i8oi+Z4rZkR7DIH4PmlTfRMmIdhp2mSKWApHKU=
X-Gm-Gg: ASbGncvRFA2j2Rbt1nbVDJxx6k9IQME4mK4rvfaQowVi6LLa0Y+GKF4Z0wM5mlBJN6v
	lJNvvR3jJpCx9oU/3A9n9VNq241K1rlPulUY40V+xPTriSIQgR5J0jJSp5RAyTpnYaimOlKvDeq
	Wag9inlgvtY46nBESgKyi5+Rb3HWCZgcxXkbCMDdvkVE6JEVMXjzgh8F533EDk7iIeflGixjFeG
	yLRCdg=
X-Google-Smtp-Source: AGHT+IEvKWxmEPLG8uli/3nHXAlpRe5t0o1jB5xGnUqAuKzuQQ2Nj3nJAcICAfQIei6z29sNjeNU2I+67xbLvGNSqjs=
X-Received: by 2002:a05:6512:234a:b0:553:5135:6a0e with SMTP id
 2adb3069b0e04-55b5f3edc28mr373239e87.4.1753435282059; Fri, 25 Jul 2025
 02:21:22 -0700 (PDT)
MIME-Version: 1.0
References: <20250613183051.619-1-ngoc-tu.dinh@vates.tech> <92f7fad6-26be-4dd5-a7b1-13017963c46a@xen.org>
 <b9f78a48-fca7-4142-b2e9-45e6673271ad@vates.tech> <af7f89c8-8249-45ee-bc47-ca8519b7204f@xen.org>
In-Reply-To: <af7f89c8-8249-45ee-bc47-ca8519b7204f@xen.org>
From: Owen Smith <owen.smith@cloud.com>
Date: Fri, 25 Jul 2025 10:21:10 +0100
X-Gm-Features: Ac12FXxQorNQsPHLcLYixaBzsh5MKHOtExiwmWHion0qkw1WJYm_Xu0fR4nL-ks
Message-ID: <CAC_UY8_LNSHa2eRsXEzQHPKb51b40m9LJuFMuu8Mfj8Ghax+GQ@mail.gmail.com>
Subject: Re: [XENBUS PATCH] Kick the balloon thread in FdoStartDevice
To: paul@xen.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>, win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="0000000000001fcb80063abd77d9"

--0000000000001fcb80063abd77d9
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

There is a race here, as __FdoD3ToD0 registers the watch causing the
FdoBalloon thread to wake and race against FdoD3ToD0 setting the device to
the D0 power state. Should the balloon thread get to the power state check
first, it will bail without inflating the balloon, and since there is no
feedback mechanism in the protocol the toolstack does not identify the
issue.


Owen

On Tue, Jun 17, 2025 at 8:55=E2=80=AFAM Paul Durrant <xadimgnik@gmail.com> =
wrote:

> On 17/06/2025 08:53, Tu Dinh wrote:
> > On 17/06/2025 08:54, Paul Durrant wrote:
> >> On 13/06/2025 19:30, Tu Dinh wrote:
> >>> Xenbus currently doesn't apply the dynamic memory targets at boot tim=
e.
> >>>
> >>
> >> How so?
> >>
> >> The xenstore watch on memory/target signals the balloon thread's event
> >> so the watch registration in __FdoD3ToD0() should always wake the thre=
ad
> >> (since any watch registration triggers a spurious watch event).
> >
> > The problem is timing-related: FdoD3ToD0 sets the watch before setting
> > power state to D0, but the watch thread goes to sleep if it's not in D0
> > power state. Also, my VMs won't apply the memory target at boot without
> > this patch.
> >
>
> That's new then. This always worked in the XenServer env... for years.
>
>    Paul
>
> >>
> >>> Force the balloon thread to update memory targets at boot.
> >>>
> >>> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
> >>> ---
> >>>    src/xenbus/fdo.c | 3 +++
> >>>    1 file changed, 3 insertions(+)
> >>>
> >>> diff --git a/src/xenbus/fdo.c b/src/xenbus/fdo.c
> >>> index 3a4a1a2..c2e69fa 100644
> >>> --- a/src/xenbus/fdo.c
> >>> +++ b/src/xenbus/fdo.c
> >>> @@ -3949,6 +3949,9 @@ not_active:
> >>>            ASSERT(__FdoIsActive(Fdo));
> >>> +        KeClearEvent(&Fdo->BalloonEvent);
> >>> +        ThreadWake(Fdo->BalloonThread);
> >>> +
> >>>            //
> >>>            // Balloon inflation should complete within a reasonable
> >>>            // time (otherwise the target is probably unreasonable).
> >>
> >
> > Best regards,
> >
> >
> > Ngoc Tu Dinh | Vates XCP-ng Developer
> >
> > XCP-ng & Xen Orchestra - Vates solutions
> >
> > web: https://vates.tech
> >
> >
>
>

--0000000000001fcb80063abd77d9
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">There is a race here, as __FdoD3ToD0 registers the watch causing the Fdo=
Balloon thread to wake and race against FdoD3ToD0=C2=A0setting the device t=
o the D0 power state. Should the balloon=C2=A0thread get to the power state=
 check first, it will bail without inflating the balloon, and since there i=
s no feedback mechanism in the protocol the toolstack does not identify the=
 issue.</div><div class=3D"gmail_default" style=3D"font-family:monospace"><=
br></div><div class=3D"gmail_default" style=3D"font-family:monospace"><br><=
/div><div class=3D"gmail_default" style=3D"font-family:monospace">Owen</div=
></div><br><div class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr=
" class=3D"gmail_attr">On Tue, Jun 17, 2025 at 8:55=E2=80=AFAM Paul Durrant=
 &lt;<a href=3D"mailto:xadimgnik@gmail.com">xadimgnik@gmail.com</a>&gt; wro=
te:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px =
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 17/06/202=
5 08:53, Tu Dinh wrote:<br>
&gt; On 17/06/2025 08:54, Paul Durrant wrote:<br>
&gt;&gt; On 13/06/2025 19:30, Tu Dinh wrote:<br>
&gt;&gt;&gt; Xenbus currently doesn&#39;t apply the dynamic memory targets =
at boot time.<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; How so?<br>
&gt;&gt;<br>
&gt;&gt; The xenstore watch on memory/target signals the balloon thread&#39=
;s event<br>
&gt;&gt; so the watch registration in __FdoD3ToD0() should always wake the =
thread<br>
&gt;&gt; (since any watch registration triggers a spurious watch event).<br=
>
&gt; <br>
&gt; The problem is timing-related: FdoD3ToD0 sets the watch before setting=
<br>
&gt; power state to D0, but the watch thread goes to sleep if it&#39;s not =
in D0<br>
&gt; power state. Also, my VMs won&#39;t apply the memory target at boot wi=
thout<br>
&gt; this patch.<br>
&gt; <br>
<br>
That&#39;s new then. This always worked in the XenServer env... for years.<=
br>
<br>
=C2=A0 =C2=A0Paul<br>
<br>
&gt;&gt;<br>
&gt;&gt;&gt; Force the balloon thread to update memory targets at boot.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Signed-off-by: Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt;<br>
&gt;&gt;&gt; ---<br>
&gt;&gt;&gt;=C2=A0 =C2=A0 src/xenbus/fdo.c | 3 +++<br>
&gt;&gt;&gt;=C2=A0 =C2=A0 1 file changed, 3 insertions(+)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; diff --git a/src/xenbus/fdo.c b/src/xenbus/fdo.c<br>
&gt;&gt;&gt; index 3a4a1a2..c2e69fa 100644<br>
&gt;&gt;&gt; --- a/src/xenbus/fdo.c<br>
&gt;&gt;&gt; +++ b/src/xenbus/fdo.c<br>
&gt;&gt;&gt; @@ -3949,6 +3949,9 @@ not_active:<br>
&gt;&gt;&gt;=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 A=
SSERT(__FdoIsActive(Fdo));<br>
&gt;&gt;&gt; +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 KeClearEvent(&amp;=
Fdo-&gt;BalloonEvent);<br>
&gt;&gt;&gt; +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ThreadWake(Fdo-&gt=
;BalloonThread);<br>
&gt;&gt;&gt; +<br>
&gt;&gt;&gt;=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /=
/<br>
&gt;&gt;&gt;=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /=
/ Balloon inflation should complete within a reasonable<br>
&gt;&gt;&gt;=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /=
/ time (otherwise the target is probably unreasonable).<br>
&gt;&gt;<br>
&gt; <br>
&gt; Best regards,<br>
&gt; <br>
&gt; <br>
&gt; Ngoc Tu Dinh | Vates XCP-ng Developer<br>
&gt; <br>
&gt; XCP-ng &amp; Xen Orchestra - Vates solutions<br>
&gt; <br>
&gt; web: <a href=3D"https://vates.tech" rel=3D"noreferrer" target=3D"_blan=
k">https://vates.tech</a><br>
&gt; <br>
&gt; <br>
<br>
</blockquote></div>

--0000000000001fcb80063abd77d9--


From win-pv-devel-bounces@lists.xenproject.org Mon Jul 28 13:36:42 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 28 Jul 2025 13:36:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1061509.1427105 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ugO1v-0006vF-1r; Mon, 28 Jul 2025 13:36:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1061509.1427105; Mon, 28 Jul 2025 13:36:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ugO1u-0006v8-Uz; Mon, 28 Jul 2025 13:36:38 +0000
Received: by outflank-mailman (input) for mailman id 1061509;
 Mon, 28 Jul 2025 13:36:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Q9tn=2J=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1ugO1t-0006v0-Vy
 for win-pv-devel@lists.xenproject.org; Mon, 28 Jul 2025 13:36:38 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e16547f0-6bb7-11f0-a31e-13f23c93f187;
 Mon, 28 Jul 2025 15:36:37 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-32f1df58f21so43506251fa.3
 for <win-pv-devel@lists.xenproject.org>; Mon, 28 Jul 2025 06:36:35 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e16547f0-6bb7-11f0-a31e-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1753709795; x=1754314595; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=42eOz4iPWRkdP29joaTIXG3l2nflqZz9JHWAuBrd22w=;
        b=ORvqbH22SbQMetKlxwlQm6GZdM4aGkwQFVdWx0gvKsSlaw6IjgfSCcv7oifRw2JMKz
         Qk8c0isSrjUKruMjujpS5s65a7kKDL/b8xeTOloVeEfopdICy/EwRtGxmS50ByeHN6p5
         hOiJYoFes5q+hfxuE2DjbbDO+mUePcwigAG/0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1753709795; x=1754314595;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=42eOz4iPWRkdP29joaTIXG3l2nflqZz9JHWAuBrd22w=;
        b=r1q/podj6p1EpL9SLtPMWP3dP91R0vfi6z8jYDotEQvDnn8vUlxO56ik3ZfD+Ngcai
         rMvxdlHrEWA3Vnu9O7rdzxeQXj8XclgWehUJLf2It37sTREIPQFDaKG39DTLEOgskg8k
         aYww1QdHZhCRGjJnSEKdVkoBDWjA4xMw9NGm2f1uK6hdtSa48sin3VHex75K1ZQwRHum
         VCCrOmiw3qazdjixh9iiJZkw/gBJamtS9rW+y4qsS61k1RernSgyqjEi6ppHe2ic6qgu
         Dsz0NfxeZZxUS0xgnMHIrJ4OXVvCgTz3QxvHnEEow+yZigVSuh9xWTt2j3A76EjhoYp+
         gNmw==
X-Forwarded-Encrypted: i=1; AJvYcCXSNXkwPibM1C37wYqDQmgC97m69A8cO2ZoJ3hboMBUUmkh7AbaKqxlFbH8lP6XMT7vwxuWgaif8MUEWQE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywxq54RswYKuBMvDD9QDYYaEyWTlwC6V+bPscL6pU3j+asDMYIC
	+DR0fpcCHY887BEER3nVp54KDDkn/odG/+3WR+yRhlpR22NvNtfEfeWdo/Vf1fcsmM0WEQMXkdX
	9JTON2RLTFs3H8p9L4zrlZQXRvoVIar+XgJqMLf/8t9vjrzS1cHk=
X-Gm-Gg: ASbGnct7bdSYRrNdxlZM4xcydXR3DldYyJ3N05zEN6UAJIDoyd4uHMp4rAfD2fMIeTb
	n/6jsXlNiLTwplx+qB4owKex1Dkf2/LW9dN2aTX41fUwydXsq2CvKroUYfjVVpsIl2M7qJhPXe+
	XzMfMXaCn+Zkc5evqtwsupgD2ZSd+XWRMCO/UZAZGPyH8V9lqjHV+5YhBIME+dSyLOz+f4o4rlc
	bWprJgAnWpPXZ8Y1g==
X-Google-Smtp-Source: AGHT+IEn4rKVgUT0Y0ggZmhySBGzIJ1N17VATu/bw3t9jQupWrZJsthrizsSXVfaZxiOz5oxQaemWZb7wB3p6RpQu5w=
X-Received: by 2002:a05:651c:210c:b0:32b:7ddd:275f with SMTP id
 38308e7fff4ca-331ee76a942mr35591011fa.30.1753709794420; Mon, 28 Jul 2025
 06:36:34 -0700 (PDT)
MIME-Version: 1.0
References: <20250613183051.619-1-ngoc-tu.dinh@vates.tech> <92f7fad6-26be-4dd5-a7b1-13017963c46a@xen.org>
 <b9f78a48-fca7-4142-b2e9-45e6673271ad@vates.tech> <af7f89c8-8249-45ee-bc47-ca8519b7204f@xen.org>
 <CAC_UY8_LNSHa2eRsXEzQHPKb51b40m9LJuFMuu8Mfj8Ghax+GQ@mail.gmail.com>
In-Reply-To: <CAC_UY8_LNSHa2eRsXEzQHPKb51b40m9LJuFMuu8Mfj8Ghax+GQ@mail.gmail.com>
From: Owen Smith <owen.smith@cloud.com>
Date: Mon, 28 Jul 2025 14:36:22 +0100
X-Gm-Features: Ac12FXxo3fatOFG7DjnIhwJJEE_s5FxWPQRd4FcOa3QZCP33uA8zBACdJwjrne0
Message-ID: <CAC_UY88Pfx1qY+GAcVR2D4+poK7dUL4NPZ93-pyxyJ0HVMMWwQ@mail.gmail.com>
Subject: Re: [XENBUS PATCH] Kick the balloon thread in FdoStartDevice
To: paul@xen.org
Cc: Tu Dinh <ngoc-tu.dinh@vates.tech>, win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000560537063afd616e"

--000000000000560537063afd616e
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

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

On Fri, Jul 25, 2025 at 10:21=E2=80=AFAM Owen Smith <owen.smith@cloud.com> =
wrote:

> There is a race here, as __FdoD3ToD0 registers the watch causing the
> FdoBalloon thread to wake and race against FdoD3ToD0 setting the device t=
o
> the D0 power state. Should the balloon thread get to the power state chec=
k
> first, it will bail without inflating the balloon, and since there is no
> feedback mechanism in the protocol the toolstack does not identify the
> issue.
>
>
> Owen
>
> On Tue, Jun 17, 2025 at 8:55=E2=80=AFAM Paul Durrant <xadimgnik@gmail.com=
> wrote:
>
>> On 17/06/2025 08:53, Tu Dinh wrote:
>> > On 17/06/2025 08:54, Paul Durrant wrote:
>> >> On 13/06/2025 19:30, Tu Dinh wrote:
>> >>> Xenbus currently doesn't apply the dynamic memory targets at boot
>> time.
>> >>>
>> >>
>> >> How so?
>> >>
>> >> The xenstore watch on memory/target signals the balloon thread's even=
t
>> >> so the watch registration in __FdoD3ToD0() should always wake the
>> thread
>> >> (since any watch registration triggers a spurious watch event).
>> >
>> > The problem is timing-related: FdoD3ToD0 sets the watch before setting
>> > power state to D0, but the watch thread goes to sleep if it's not in D=
0
>> > power state. Also, my VMs won't apply the memory target at boot withou=
t
>> > this patch.
>> >
>>
>> That's new then. This always worked in the XenServer env... for years.
>>
>>    Paul
>>
>> >>
>> >>> Force the balloon thread to update memory targets at boot.
>> >>>
>> >>> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
>> >>> ---
>> >>>    src/xenbus/fdo.c | 3 +++
>> >>>    1 file changed, 3 insertions(+)
>> >>>
>> >>> diff --git a/src/xenbus/fdo.c b/src/xenbus/fdo.c
>> >>> index 3a4a1a2..c2e69fa 100644
>> >>> --- a/src/xenbus/fdo.c
>> >>> +++ b/src/xenbus/fdo.c
>> >>> @@ -3949,6 +3949,9 @@ not_active:
>> >>>            ASSERT(__FdoIsActive(Fdo));
>> >>> +        KeClearEvent(&Fdo->BalloonEvent);
>> >>> +        ThreadWake(Fdo->BalloonThread);
>> >>> +
>> >>>            //
>> >>>            // Balloon inflation should complete within a reasonable
>> >>>            // time (otherwise the target is probably unreasonable).
>> >>
>> >
>> > Best regards,
>> >
>> >
>> > Ngoc Tu Dinh | Vates XCP-ng Developer
>> >
>> > XCP-ng & Xen Orchestra - Vates solutions
>> >
>> > web: https://vates.tech
>> >
>> >
>>
>>

--000000000000560537063afd616e
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">Reviewed-by: Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com">owen=
.smith@cloud.com</a>&gt;</div></div><br><div class=3D"gmail_quote gmail_quo=
te_container"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, Jul 25, 2025 at=
 10:21=E2=80=AFAM Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com">ow=
en.smith@cloud.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote=
" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);=
padding-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fo=
nt-family:monospace">There is a race here, as __FdoD3ToD0 registers the wat=
ch causing the FdoBalloon thread to wake and race against FdoD3ToD0=C2=A0se=
tting the device to the D0 power state. Should the balloon=C2=A0thread get =
to the power state check first, it will bail without inflating the balloon,=
 and since there is no feedback mechanism in the protocol the toolstack doe=
s not identify the issue.</div><div class=3D"gmail_default" style=3D"font-f=
amily:monospace"><br></div><div class=3D"gmail_default" style=3D"font-famil=
y:monospace"><br></div><div class=3D"gmail_default" style=3D"font-family:mo=
nospace">Owen</div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" cl=
ass=3D"gmail_attr">On Tue, Jun 17, 2025 at 8:55=E2=80=AFAM Paul Durrant &lt=
;<a href=3D"mailto:xadimgnik@gmail.com" target=3D"_blank">xadimgnik@gmail.c=
om</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margi=
n:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex=
">On 17/06/2025 08:53, Tu Dinh wrote:<br>
&gt; On 17/06/2025 08:54, Paul Durrant wrote:<br>
&gt;&gt; On 13/06/2025 19:30, Tu Dinh wrote:<br>
&gt;&gt;&gt; Xenbus currently doesn&#39;t apply the dynamic memory targets =
at boot time.<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; How so?<br>
&gt;&gt;<br>
&gt;&gt; The xenstore watch on memory/target signals the balloon thread&#39=
;s event<br>
&gt;&gt; so the watch registration in __FdoD3ToD0() should always wake the =
thread<br>
&gt;&gt; (since any watch registration triggers a spurious watch event).<br=
>
&gt; <br>
&gt; The problem is timing-related: FdoD3ToD0 sets the watch before setting=
<br>
&gt; power state to D0, but the watch thread goes to sleep if it&#39;s not =
in D0<br>
&gt; power state. Also, my VMs won&#39;t apply the memory target at boot wi=
thout<br>
&gt; this patch.<br>
&gt; <br>
<br>
That&#39;s new then. This always worked in the XenServer env... for years.<=
br>
<br>
=C2=A0 =C2=A0Paul<br>
<br>
&gt;&gt;<br>
&gt;&gt;&gt; Force the balloon thread to update memory targets at boot.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Signed-off-by: Tu Dinh &lt;ngoc-tu.dinh@vates.tech&gt;<br>
&gt;&gt;&gt; ---<br>
&gt;&gt;&gt;=C2=A0 =C2=A0 src/xenbus/fdo.c | 3 +++<br>
&gt;&gt;&gt;=C2=A0 =C2=A0 1 file changed, 3 insertions(+)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; diff --git a/src/xenbus/fdo.c b/src/xenbus/fdo.c<br>
&gt;&gt;&gt; index 3a4a1a2..c2e69fa 100644<br>
&gt;&gt;&gt; --- a/src/xenbus/fdo.c<br>
&gt;&gt;&gt; +++ b/src/xenbus/fdo.c<br>
&gt;&gt;&gt; @@ -3949,6 +3949,9 @@ not_active:<br>
&gt;&gt;&gt;=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 A=
SSERT(__FdoIsActive(Fdo));<br>
&gt;&gt;&gt; +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 KeClearEvent(&amp;=
Fdo-&gt;BalloonEvent);<br>
&gt;&gt;&gt; +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ThreadWake(Fdo-&gt=
;BalloonThread);<br>
&gt;&gt;&gt; +<br>
&gt;&gt;&gt;=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /=
/<br>
&gt;&gt;&gt;=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /=
/ Balloon inflation should complete within a reasonable<br>
&gt;&gt;&gt;=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /=
/ time (otherwise the target is probably unreasonable).<br>
&gt;&gt;<br>
&gt; <br>
&gt; Best regards,<br>
&gt; <br>
&gt; <br>
&gt; Ngoc Tu Dinh | Vates XCP-ng Developer<br>
&gt; <br>
&gt; XCP-ng &amp; Xen Orchestra - Vates solutions<br>
&gt; <br>
&gt; web: <a href=3D"https://vates.tech" rel=3D"noreferrer" target=3D"_blan=
k">https://vates.tech</a><br>
&gt; <br>
&gt; <br>
<br>
</blockquote></div>
</blockquote></div>

--000000000000560537063afd616e--


From win-pv-devel-bounces@lists.xenproject.org Thu Jul 31 10:32:51 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 31 Jul 2025 10:32:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1065369.1430762 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uhQaf-0007HV-Bl; Thu, 31 Jul 2025 10:32:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1065369.1430762; Thu, 31 Jul 2025 10:32:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uhQaf-0007HO-7k; Thu, 31 Jul 2025 10:32:49 +0000
Received: by outflank-mailman (input) for mailman id 1065369;
 Thu, 31 Jul 2025 10:32:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2VIF=2M=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1uhQad-0007Gd-21
 for win-pv-devel@lists.xenproject.org; Thu, 31 Jul 2025 10:32:47 +0000
Received: from fout-a7-smtp.messagingengine.com
 (fout-a7-smtp.messagingengine.com [103.168.172.150])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id af06613e-6df9-11f0-a320-13f23c93f187;
 Thu, 31 Jul 2025 12:32:44 +0200 (CEST)
Received: from phl-compute-05.internal (phl-compute-05.phl.internal
 [10.202.2.45])
 by mailfout.phl.internal (Postfix) with ESMTP id 71402EC1B04;
 Thu, 31 Jul 2025 06:32:39 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-05.internal (MEProxy); Thu, 31 Jul 2025 06:32:39 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 31 Jul 2025 06:32:38 -0400 (EDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af06613e-6df9-11f0-a320-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm2; t=1753957959;
	 x=1754044359; bh=sQ0LUuV/ya6cMYqhnwZDb2vvUV2yamsnONDpx3YllN8=; b=
	kxe+YwSHrYD0fLrUmR4Vc4m+WPV1HSh57Y0OBCcee9suMo+VRc49Gh3jVrgBf17a
	iKOVBcUoE+wI3m7WRZHVjrwCMdM+TtXBBxX5gQnGkbMZTMRTNRiJmDZE/T93ZbQd
	LItpzLUxqSaB3PI9tt8W9SEUaIEfntMiNiCTETYDLNh29HaUjJh7ROzyFtwpjeq4
	KqL6FClxCZ+TWiK/TEcKFDh+++kObYZfhznD9O+eW8AZIo4symNNfP0psl+/g1hj
	DLtfa1jb1CGbnNZw0EfoiENHjZZkjOS6Z2E/Zp+EH9tgetj9h85rCHEiXULA4XV3
	SXK81+cNXatrupyhU8LSoA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=
	1753957959; x=1754044359; bh=sQ0LUuV/ya6cMYqhnwZDb2vvUV2yamsnOND
	px3YllN8=; b=NWHblpyQ8ZCtsL3eZ1zti93lA8A4fgDP39A3kqdDK/XqaLoB7sM
	ajt9WlXeKdV728D+kQB6B4zRzatIULrXkMVi9l4M6D7m2l93YhAcaVsp47pqjey3
	zaqUtefpJGzSPh/elCFC8w0FtjPbT2baVbwTCBeYpsTeI8gycCIrgBxr8pr4kPRN
	Ng8OeSDztK7SLfrzHFn151eD7mvuGx6nIIk72r29Gl0mGYvhddBkNdog0veqn+xZ
	OnmVGHMHN+TVOSfJEHUW6LSTEPkQAuiJglOIAfgs1KpwmOj/t8YCqquPdsQBXxsZ
	CPVnKbLGMMjMpnBXROeLNoogW5IhOzko82w==
X-ME-Sender: <xms:RkaLaBlIIuMSk4l_0444L9C1-pMqg9q3KH_UfLNVlLPa1dE6T_oN7g>
    <xme:RkaLaHY2VRXfiymTkXqbumaJ7GKq5ujV1NF0OVkDrKYgG8TDFZnpQ-GHSByxdhLAc
    i_3BaifZ4ovEw>
X-ME-Received: <xmr:RkaLaENCHgYrvto2t9F8ytSJbiMSJzNjNrHMimhsWTJ6onMGblkVKwl1ZVzWNJoAQxNZ2v9twkwNXfTOrzBMyrKToUmjBj82Fsg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgddutddtheekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnheptdehvedt
    ffeggeffgeetieevfeelvdfhjeekvdfhgfffvedvuedviedugefguedvnecuffhomhgrih
    hnpehgihhthhhusgdrtghomhdpqhhusggvshdqohhsrdhorhhgnecuvehluhhsthgvrhfu
    ihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepgedpmhhouggv
    pehsmhhtphhouhhtpdhrtghpthhtohepnhhgohgtqdhtuhdrughinhhhsehvrghtvghsrd
    htvggthhdprhgtphhtthhopeifihhnqdhpvhdquggvvhgvlheslhhishhtshdrgigvnhhp
    rhhojhgvtghtrdhorhhgpdhrtghpthhtohepohifvghnrdhsmhhithhhsegtlhhouhgurd
    gtohhmpdhrtghpthhtohepohhmvghgsehinhhvihhsihgslhgvthhhihhnghhslhgrsgdr
    tghomh
X-ME-Proxy: <xmx:RkaLaEaeb6c2ErV9dDb7zyf6fkBS7FBS8mIBt8Sg5gONedk_14nCXQ>
    <xmx:RkaLaK2V131Lnewobl6jrXt6raZADIIrKD5JenLHfu4aDNpbNUalVQ>
    <xmx:RkaLaCc8q84WbrIGVbsiOfv2NxWJrYBiAomgpeHyp9M12fwSQ_0PbQ>
    <xmx:RkaLaDGNFDjp9H8sx03hgZXGxX-etbKu6xA5z8kOEDfxvwvLJ1RqWA>
    <xmx:R0aLaHhWZOQX8uxhUkw_g5sWCEC9iwtb0zYbW7bCDnymOs5o5nlvhCaq>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 31 Jul 2025 12:32:36 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org, Owen Smith <owen.smith@cloud.com>,
	=?utf-8?B?UmFmYcWCIFdvamR5xYJh?= <omeg@invisiblethingslab.com>
Subject: Re: [PATCH v2 0/7] Implement forced unplug and forced activation
Message-ID: <aItGRC1yWcT32Toa@mail-itl>
References: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
 <aIINjK0lAEsY53GF@mail-itl>
 <36a62b84-b4aa-4c2c-88f9-dbd0e9123500@vates.tech>
 <aIIP1GrINNeOW9io@mail-itl>
 <4fbfc33b-dec3-4b7f-b036-bc6678f06c3f@vates.tech>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="sNLiHKQMAmy13ZF7"
Content-Disposition: inline
In-Reply-To: <4fbfc33b-dec3-4b7f-b036-bc6678f06c3f@vates.tech>


--sNLiHKQMAmy13ZF7
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 31 Jul 2025 12:32:36 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org, Owen Smith <owen.smith@cloud.com>,
	=?utf-8?B?UmFmYcWCIFdvamR5xYJh?= <omeg@invisiblethingslab.com>
Subject: Re: [PATCH v2 0/7] Implement forced unplug and forced activation

On Thu, Jul 24, 2025 at 11:01:40AM +0000, Tu Dinh wrote:
> On 24/07/2025 12:49, Marek Marczykowski-G=C3=B3recki wrote:
> > On Thu, Jul 24, 2025 at 10:43:32AM +0000, Tu Dinh wrote:
> >> Hi Marek,
> >>
> >> On 24/07/2025 12:40, Marek Marczykowski-G=C3=B3recki wrote:
> >>> On Wed, Jul 23, 2025 at 01:58:27PM +0000, Tu Dinh wrote:
> >>>> The goal of these two features is to simplify driver servicing and a=
void
> >>>> requiring storing driver state in Registry.
> >>>>
> >>>> Forced unplug, as name implies, forcefully unplugs emulated devices =
when
> >>>> a driver is present, rather than when it's active. It defines a Regi=
stry
> >>>> key at CurrentControlSet\XEN\ForceUnplug. Drivers can opt into forced
> >>>> unplug by creating an appropriate value (DISKS/NICS) in this key.
> >>>>
> >>>> Forced activation is the companion to forced unplug. It aims to make
> >>>> activation of Xenbus FDOs deterministic and stateless, using a
> >>>> precedence mapping based on device IDs, prioritizing the vendor devi=
ce
> >>>> over the generic ones. This avoids situations where the wrong FDO is
> >>>> activated, which will prevent Windows Update from working.
> >>>>
> >>>> With forced activation, Xenfilt is now installed via INF on top of t=
he
> >>>> current installation routines. This means PV drivers can be injected
> >>>> offline without needing another reboot to be reconfigured.
> >>>>
> >>>> To avoid affecting older drivers, the two features are conditioned
> >>>> behind new build variables FORCE_UNPLUG and FORCE_ACTIVATE.
> >>>>
> >>>> The following scenarios have been successfully tested, both requiring
> >>>> only one reboot:
> >>>> * Offline driver installation via DISM
> >>>> * Toggling vendor device
> >>>
> >>> Hi,
> >>>
> >>> I tested this series (or rather
> >>> https://github.com/xcp-ng/win-xenbus/tree/emulated-v3 at
> >>> 9424383b7c2f0b6d9f4a7fd554662c8679cc935f) and got the following failu=
re:
> >>>
> >>>       xen platform: xenbus|PdoQueryId: (ULONG_PTR)Buffer - (ULONG_PTR=
)Id.Buffer =3D 1032
> >>>       xen platform: xenbus|PdoQueryId: REGSTR_VAL_MAX_HCID_LEN =3D 10=
24
> >>>       xen platform: xenbus|PdoQueryId: ASSERTION FAILED: ((ULONG_PTR)=
Buffer - (ULONG_PTR)Id.Buffer) < (1024)
=2E..
> >>>
> >>> This is on fresh Windows 10 (22H2) domU, with opt-in patches for both=
 xenvbd
> >>> and xennet.
> >>>
> >>> The test was done on our CI system, more logs are available at
> >>> https://openqa.qubes-os.org/tests/147544#downloads. Especially it
> >>> includes tarball of the whole /var/log, where you can find
> >>> /var/log/xen/console/guest-windows-test-dm.log with messages before t=
he
> >>> above failure.
> >>>
> >>
> >> That tree is stale, could you try again (or apply the patches directly=
)?
> >> That BSOD should already be fixed with 3e93bee44bbc "xenbus: Use
> >> nonpaged pool in FdoQueryId".
> >
> > Hm, I have this patch included already. Now when fetched diff shows two
> > logical differences:
> > - change in evtchn_fifo.c (change while loop to for)
> > - changes in xenbus.inf adding FORCE_ACTIVATION among other things
> >
> > BTW, should I enable also FORCE_ACTIVATION?
> >
>=20
> You're right, I missed the assertion failure. Looks like adding rev
> 0900000C caused the compatible ID list to exceed
> REGSTR_VAL_MAX_HCID_LEN. Although I have no idea how to fix this without
> breaking compatibility somehow.
>=20
> The evtchn_fifo fix is a minor fix that only concerns failure cleanup.
>=20
> If you use forced unplug you'll very likely want forced activation as
> well, as you'll get to avoid the reboots needed to change the active
> Xenbus FDO.

With a patch that strips older revisions it doesn't crash this way
anymore. But installation of Qubes Windows Tools fail on starting
services (they use xeniface from userspace). I'm not sure what exactly
went wrong there (Omeg, do you have some debugging hints? Logs aren't
created for some reason...), but I double checked it's related to this
series - without it all works fine.

I posted all the info I know at
https://github.com/QubesOS/qubes-vmm-xen-windows-pvdrivers/pull/4#issuecomm=
ent-3139380653
(which isn't much).

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--sNLiHKQMAmy13ZF7
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmiLRkQACgkQ24/THMrX
1ywlzQf/QrMLXE3vJ2F7FqxQsRxLkApKXHfpEngYxbeDRy2tMHcJMN4Cb8Xc7uiz
YCpcRSkCabp8VI/J0xqjIEyH+LNlWYeDf0W988sjifgt6dMmB9x7fKndmHk+nD+1
4hz5FAGk+Iuty+gGLbC9YYsX1Y13HHUwZnW3Amiynz9BkIWkvi2ChGB2xTi7yMFe
RRdBuNL4VGtj/UQnvDEBDYvy1Iw2NaEsqw4CV1NOYL+r0aUllHpVeHZ1H2+iSWrl
oakBbefF5fPz/sJ9EgjiIkpVR0MFe3XBBanEt60qBCpbKeyToep+kUSJY8exI+K5
SH4SoNW9WyaxqH2uem/lTF3rMTSSIw==
=4Tmh
-----END PGP SIGNATURE-----

--sNLiHKQMAmy13ZF7--


From win-pv-devel-bounces@lists.xenproject.org Thu Jul 31 10:40:02 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 31 Jul 2025 10:40:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1065390.1430766 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uhQhd-0000gW-RK; Thu, 31 Jul 2025 10:40:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1065390.1430766; Thu, 31 Jul 2025 10:40:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uhQhd-0000g9-OJ; Thu, 31 Jul 2025 10:40:01 +0000
Received: by outflank-mailman (input) for mailman id 1065390;
 Thu, 31 Jul 2025 10:40:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=D17U=2M=bounce.vates.tech=bounce-md_30504962.688b47f8.v1-cdd6f87259d04d73b1119d5c970c264d@srs-se1.protection.inumbo.net>)
 id 1uhQhc-0000ZS-Dq
 for win-pv-devel@lists.xenproject.org; Thu, 31 Jul 2025 10:40:00 +0000
Received: from mail145-22.atl61.mandrillapp.com
 (mail145-22.atl61.mandrillapp.com [198.2.145.22])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b13cbe2c-6dfa-11f0-b895-0df219b8e170;
 Thu, 31 Jul 2025 12:39:54 +0200 (CEST)
Received: from pmta06.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail145-22.atl61.mandrillapp.com (Mailchimp) with ESMTP id
 4bt5F42484zFCWgPj
 for <win-pv-devel@lists.xenproject.org>; Thu, 31 Jul 2025 10:39:52 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 cdd6f87259d04d73b1119d5c970c264d; Thu, 31 Jul 2025 10:39:52 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b13cbe2c-6dfa-11f0-b895-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1753958392; x=1754228392;
	bh=X8DlsYxQWqAi5JpQ1iYxMXMruA89gxvNr4wvVplzOjE=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=MPokhBrWuLP57+wV8nztzx6RPKPO3jtRMe/ithYoQ4RJz+N4nSOUXXQBP5ygHibVJ
	 G51N2KpVVD+UMHC9G0B7zbRDFlaYTsuz/wvaEW09V4IGYLafOnbnSYzC3inQiwhaey
	 PUztrDK4p1blKcaiXJhvSpG11DXGNf4oSoW+jU7i4iHzpRLxWyJhWdvRgl4LuBYn12
	 3DaTXu50tmy3SOVCSerP41ayZUjvK9fXWNuRdIsjxFqsOhSkw9VdhMjEpTBEJyAWVD
	 lggIA115c6IG+6Us6N1nmCuFp0zWqG0qZmlOExJUGqSMYdYZSUz+7ACeq60Vvl8sgf
	 Y2oUtwsbz4vEQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1753958392; x=1754218892; i=ngoc-tu.dinh@vates.tech;
	bh=X8DlsYxQWqAi5JpQ1iYxMXMruA89gxvNr4wvVplzOjE=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=l8OYHboe0feqyFhgeCt6vHnBfTJ8aQcde4tx+0uJS5Fwpqf8Tw09aq9k2XHoCBhGf
	 JTNk1VmuqENCIVmomOPq2arvhqvlm+M8NWKTASfvZUEBrLTTR35LF61QSk2uSS4AMg
	 NxWS1BwV0cx/Ry/0tlpbqxt9+UT8tsWixW4Z8AcIvAFdmLnLRCLyS625KxpDW8X3gf
	 lI6yYEn2C8r5YftwBybSlDVEBCRSkr4gxKdBanksHfoZSZ3Tv+PCEESaA8nR8HSsqv
	 r4+pr+zAy76lox/DtQEA0SA+/7Gw3Z//B/lPowVE8J/YQJ5VifGE3mOJuaCj1qhvB9
	 QjcDJrgXJXdHg==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v2=200/7]=20Implement=20forced=20unplug=20and=20forced=20activation?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1753958391036
Message-Id: <df99186b-b835-4f60-b0c7-f894bc61b344@vates.tech>
To: "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>
Cc: win-pv-devel@lists.xenproject.org, "Owen Smith" <owen.smith@cloud.com>, "=?utf-8?Q?Rafa=C5=82=20Wojdy=C5=82a?=" <omeg@invisiblethingslab.com>
References: <20250723135819.988-1-ngoc-tu.dinh@vates.tech> <aIINjK0lAEsY53GF@mail-itl> <36a62b84-b4aa-4c2c-88f9-dbd0e9123500@vates.tech> <aIIP1GrINNeOW9io@mail-itl> <4fbfc33b-dec3-4b7f-b036-bc6678f06c3f@vates.tech> <aItGRC1yWcT32Toa@mail-itl>
In-Reply-To: <aItGRC1yWcT32Toa@mail-itl>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.cdd6f87259d04d73b1119d5c970c264d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250731:md
Date: Thu, 31 Jul 2025 10:39:52 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi,

On 31/07/2025 12:32, Marek Marczykowski-G=C3=B3recki wrote:
[...]
> 
> With a patch that strips older revisions it doesn't crash this way
> anymore. But installation of Qubes Windows Tools fail on starting
> services (they use xeniface from userspace). I'm not sure what exactly
> went wrong there (Omeg, do you have some debugging hints? Logs aren't
> created for some reason...), but I double checked it's related to this
> series - without it all works fine.
> 
> I posted all the info I know at
> https://github.com/QubesOS/qubes-vmm-xen-windows-pvdrivers/pull/4#issueco=
mment-3139380653
> (which isn't much).
> 

I saw that forced unplug/activation were not enabled during that test, 
so the drivers were asking for unplug, though xeniface seems to be 
working properly. How were the drivers installed in your tests 
(offline/online), and do you have the binaries somewhere?


Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From win-pv-devel-bounces@lists.xenproject.org Thu Jul 31 10:54:02 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 31 Jul 2025 10:54:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1065410.1430770 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uhQvA-00061X-QH; Thu, 31 Jul 2025 10:54:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1065410.1430770; Thu, 31 Jul 2025 10:54:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uhQvA-00061Q-N6; Thu, 31 Jul 2025 10:54:00 +0000
Received: by outflank-mailman (input) for mailman id 1065410;
 Thu, 31 Jul 2025 10:53:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2VIF=2M=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1uhQv8-00060q-Ql
 for win-pv-devel@lists.xenproject.org; Thu, 31 Jul 2025 10:53:58 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a51d8a6c-6dfc-11f0-b895-0df219b8e170;
 Thu, 31 Jul 2025 12:53:52 +0200 (CEST)
Received: from phl-compute-03.internal (phl-compute-03.phl.internal
 [10.202.2.43])
 by mailfout.phl.internal (Postfix) with ESMTP id 7DDDFEC172C;
 Thu, 31 Jul 2025 06:53:51 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-03.internal (MEProxy); Thu, 31 Jul 2025 06:53:51 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 31 Jul 2025 06:53:50 -0400 (EDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a51d8a6c-6dfc-11f0-b895-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm2; t=1753959231;
	 x=1754045631; bh=yKkSAMZiMDbww0ifUypNMvx4b3lqS1wEDYoXArsjfXc=; b=
	JjUD5lzWL3kLM9ZN/6yIte3SRivnu3Z70XFRR1SdhIXfUJLcRCcif8ggXIOLb34v
	l3SjKAcRxDkJnWhXbHKQhhlEB4EFD8hSTSG+i0f2lcDSDRvm3J72wsdkmZ59W+4c
	R1fZOjIzLs9CU/6r61WU5Ju5m2Y0mcqjxS59bPtDS8yXBVZehZLNV1lysHZRxh+W
	0nlh4EN1nxdhm663tnyZrgVYmaSEqs3JE49EQTgx5SqYkLAbLvuk4zMHGK5DPnwe
	0aGTDfKlA4MY0GYt4KOQYBM3qg3odxcTzzXCaiwdbbgbLPaSf5LUvhmSxA/L+PPT
	iqGwRbfYFQnCKKydj++G+g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=
	1753959231; x=1754045631; bh=yKkSAMZiMDbww0ifUypNMvx4b3lqS1wEDYo
	XArsjfXc=; b=Mf2ZVz3B0Q51tcto1HgUd4dmwdvajPKnSoY2PluJaDhfvV1m8/5
	oyhO4++xfgkHjka/0qnYk8GH98uOwoi56IkP6elPpRhh1laa3SpokUj08zBbzyqC
	jJ5zSdiWW9U21+GWTHK/Mz75tY+hMCY0/4cy0SZzNGglHJdFYUUvy5y26EVv6zV3
	C7SqYhLqlbTE+lUmF79Ll4bPkgXMrjVSEeWr9vMpOlqFb4+mtaIXGdVOABrVUUvd
	Gmp+hrxi5MobVc+CtGNxVa88vyfEO4d/3Wf1T79nddmrUBv5c1xRCBdEN+L9ghIH
	qJRnO5xJ72BsmcGdv9XtRmZz9bbUYHbdBAw==
X-ME-Sender: <xms:P0uLaGtwbviqPcaFsEXxxfQ4xtGOSD6ITZ6IzZFdV1IazJzrgygFQw>
    <xme:P0uLaGANlNpXR3ruJ-yPX1aIhJ_7FMkwZFIA5FkBlt7T0Lz3qPtTDRHYSqBFqprgm
    KgASYKXfwsaCA>
X-ME-Received: <xmr:P0uLaOX_rYKaaPdeZF7zj_lkadDQ0mlQkmLzDzKKy9gtU94IQ5P0y4rCsovnRPR-3PafU5mNU-yeLBn7M7M64UlwzGPVO_aLTtI>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgddutddtiedvucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtroertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepudeitdfg
    vefhgefgveevjefhgeefleetteejteekvddufeeigfeliefgveeiueffnecuffhomhgrih
    hnpehgihhthhhusgdrtghomhdpghhithhlrggsrdgtohhmnecuvehluhhsthgvrhfuihii
    vgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsih
    gslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepgedpmhhouggvpehs
    mhhtphhouhhtpdhrtghpthhtohepnhhgohgtqdhtuhdrughinhhhsehvrghtvghsrdhtvg
    gthhdprhgtphhtthhopeifihhnqdhpvhdquggvvhgvlheslhhishhtshdrgigvnhhprhho
    jhgvtghtrdhorhhgpdhrtghpthhtohepohifvghnrdhsmhhithhhsegtlhhouhgurdgtoh
    hmpdhrtghpthhtohepohhmvghgsehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtgho
    mh
X-ME-Proxy: <xmx:P0uLaEDoWiLdqZ2xGXnfYCLfN8VYL2EFqmUnT1xMj-xCTz0DxGcXQA>
    <xmx:P0uLaB-x9Dainvv-0XCnTw1oXMsjZNKz9fKppHvPlProYThzhpD5sA>
    <xmx:P0uLaLFX0O8Uuuc5xSEOZWTGMWuZ2mndRk1FKurY9YkS6wBK4VCnKQ>
    <xmx:P0uLaPNC17ptUewNbBWqfbRgfLPoxwP7FCE0ZF6kkk93vGJ6gB207w>
    <xmx:P0uLaBr_wTnVS4Hh-k7cBKoe_zwkj8cnQ8L7R9iVip2y8Cu7vzU9psf7>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 31 Jul 2025 12:53:48 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org, Owen Smith <owen.smith@cloud.com>,
	=?utf-8?B?UmFmYcWCIFdvamR5xYJh?= <omeg@invisiblethingslab.com>
Subject: Re: [PATCH v2 0/7] Implement forced unplug and forced activation
Message-ID: <aItLPXCGuhGNUznH@mail-itl>
References: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
 <aIINjK0lAEsY53GF@mail-itl>
 <36a62b84-b4aa-4c2c-88f9-dbd0e9123500@vates.tech>
 <aIIP1GrINNeOW9io@mail-itl>
 <4fbfc33b-dec3-4b7f-b036-bc6678f06c3f@vates.tech>
 <aItGRC1yWcT32Toa@mail-itl>
 <df99186b-b835-4f60-b0c7-f894bc61b344@vates.tech>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="Pm6BSY5RLJ2mtcSn"
Content-Disposition: inline
In-Reply-To: <df99186b-b835-4f60-b0c7-f894bc61b344@vates.tech>


--Pm6BSY5RLJ2mtcSn
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 31 Jul 2025 12:53:48 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org, Owen Smith <owen.smith@cloud.com>,
	=?utf-8?B?UmFmYcWCIFdvamR5xYJh?= <omeg@invisiblethingslab.com>
Subject: Re: [PATCH v2 0/7] Implement forced unplug and forced activation

On Thu, Jul 31, 2025 at 10:39:51AM +0000, Tu Dinh wrote:
> Hi,
>=20
> On 31/07/2025 12:32, Marek Marczykowski-G=C3=B3recki wrote:
> [...]
> >
> > With a patch that strips older revisions it doesn't crash this way
> > anymore. But installation of Qubes Windows Tools fail on starting
> > services (they use xeniface from userspace). I'm not sure what exactly
> > went wrong there (Omeg, do you have some debugging hints? Logs aren't
> > created for some reason...), but I double checked it's related to this
> > series - without it all works fine.
> >
> > I posted all the info I know at
> > https://github.com/QubesOS/qubes-vmm-xen-windows-pvdrivers/pull/4#issue=
comment-3139380653
> > (which isn't much).
> >
>=20
> I saw that forced unplug/activation were not enabled during that test,
> so the drivers were asking for unplug, though xeniface seems to be
> working properly. How were the drivers installed in your tests
> (offline/online), and do you have the binaries somewhere?

I did applied a patches to enable unplug/activation. Specifically:
https://github.com/QubesOS/qubes-vmm-xen-windows-pvdrivers/pull/4/files#dif=
f-df9d6fe63e3f53cb993b34892589859b0eaf153875b49e4daebad00a5e9c0f75
https://github.com/marmarek/win-xennet/commit/33b2650052428df663a6e96f82cdb=
cbb664c1059
https://github.com/marmarek/win-xenvbd/commit/c86bc2780f9e34eaf14b25315d12e=
0340a18912c

Have I missed something?

As for binaries, unfortunately artifacts from that build were removed
already:
https://gitlab.com/QubesOS/qubes-continuous-integration/-/jobs/10846671186
but the one I just pushed is here:
https://gitlab.com/QubesOS/qubes-vmm-xen-windows-pvdrivers/-/jobs/108718568=
35/artifacts/browse/artifacts/repository/vm-win10/
(vmm-xen-windows-pvdrivers have drivers,
installer-qubes-os-windows-tools has the whole installer assembled)

--=20
Best Regards,
Marek Marczykowski-G=C3=B3recki
Invisible Things Lab

--Pm6BSY5RLJ2mtcSn
Content-Type: application/pgp-signature; name=signature.asc

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmiLSzwACgkQ24/THMrX
1yxPYgf9GtqXolS1Se/unMqaNZXH2gyxaAvYoC2c8nFXQZnBYeWHLS/JZ2DCS3oF
NQDbRqy2mc9aNVGElTrb91Uu+Hu3QNHAl1gi5TC8PHo78wNja94Eb/rrnIZB14XW
OgjPwTC6FsQ9pMJPV52S//GQJyBFAtGJNMIGs/hDvc5N/RXyhd/ZoQCqpVawRi+x
pMwGpL119X6mWFxSTi7hqLFJHCW3TEn1XZLIdDt0OvUx+pXaSiUJG9pdFCc75Cw0
EYx6zp+pxbcBVvL2SDb6ljK0NTruKwutyy5Zz/NumOc1jMN+UTokaLdEYHaINUkr
K/L4yCqxFfzsbFNHmy4OcoE/bof4mw==
=Y6C2
-----END PGP SIGNATURE-----

--Pm6BSY5RLJ2mtcSn--


From win-pv-devel-bounces@lists.xenproject.org Thu Jul 31 14:26:35 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 31 Jul 2025 14:26:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1065692.1431045 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uhUEq-0001Th-Dn; Thu, 31 Jul 2025 14:26:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1065692.1431045; Thu, 31 Jul 2025 14:26:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uhUEq-0001Ta-B1; Thu, 31 Jul 2025 14:26:32 +0000
Received: by outflank-mailman (input) for mailman id 1065692;
 Thu, 31 Jul 2025 14:26:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LYUv=2M=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1uhUEp-0001TU-01
 for win-pv-devel@lists.xenproject.org; Thu, 31 Jul 2025 14:26:31 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 58dadd0d-6e1a-11f0-a320-13f23c93f187;
 Thu, 31 Jul 2025 16:26:29 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-33230f1347fso3538031fa.3
 for <win-pv-devel@lists.xenproject.org>; Thu, 31 Jul 2025 07:26:28 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 58dadd0d-6e1a-11f0-a320-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1753971988; x=1754576788; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=fWvWrykzzzBUg36Je2El1UMFLC13LTPLxuE8s3R4sGs=;
        b=R666Rxj3VR4mWlNE5tGdNDYyvTw8J/NPACvHxhiAZz05ueb+U8xHjN4WiM43XRgaxA
         UqEHVMvkBA77XecQOQEKS2inb2VuthDqumYN+3Kj4LeeiH9QCVr5IpZfjppp+P95kyT4
         p7+4I+GQhzdyzplCv0OgmWJktArLZ4RX5TFlw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1753971988; x=1754576788;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=fWvWrykzzzBUg36Je2El1UMFLC13LTPLxuE8s3R4sGs=;
        b=w79DDNWkBqZyMqhCG4buj3/nIgg/ezU9ULFDB6ZBgPSTEOgUH4+Mv8ciyUeFoPrbj2
         pm//iG+1iUVzXLeAJtO5NffY/RS8qDiQMCV3j3DjAtxZD/kIOii2wOjHIVnyzCRY/+XX
         egiP6sSQtHwoxaJD++syzmJbjYTrlhyjsSp2v7/efbQVkewINLjeiIGq/OPHVvW679g8
         yDn0lPEZrcyxjAdyOhTGQCZDGA/iizL3E78GfJfP+2pvelEyODTAnGRAMYYMSPLr4VLq
         AXy8N+x5uBtoJd3R5JrjFpsD1LrapQdL6q356QKk/qnv/0p5tFvYTyPfGY4mxmtrX2Vr
         26SQ==
X-Gm-Message-State: AOJu0YwWAz3xGRNaNUG0OdNQCbODG66mefbj4e5v/qXvyWKXjWe1q0SE
	MhnKpVh8c5XNkzUwHgBeoUzpxaZdDcfpRYqXJxEtgwutnsKUs4QpHT/MBSJsI3jy3k/JPh6y8yf
	kvr5mAgzFRvzA6kM3ShLujk8F5yUmtl3UTSx3/JGjRXY60E67Lfc=
X-Gm-Gg: ASbGncsXfKBPw7iVLyHPw/TECYDwOZmftjB1Dt+eLzt3E9AnuysfKI0yFnDz/WRjh/F
	61vngfa0Et9nQO+8ARil8KpRNcTP5HP9v02DZ94WvZt+mjF63cw3iVkb38qBs+3a19alzf6VB6I
	mCMGiWk1KFvLNfd162+dwOhBUbZg+gLYft2pZyW3ewoy41T0xIh2Zsgke6BVqdo7wGZeTLQF84g
	/p7ae8=
X-Google-Smtp-Source: AGHT+IFu4nYjsVcwXfyfN5GFHiFQlWIWkJ/xsCD2/UPboqUTBRK98iP1V2+cYeJSipaEyuZahyqBgewYH6JdQjKql0Y=
X-Received: by 2002:a2e:2e03:0:b0:332:1de5:c52b with SMTP id
 38308e7fff4ca-33224a7d708mr20818861fa.1.1753971988022; Thu, 31 Jul 2025
 07:26:28 -0700 (PDT)
MIME-Version: 1.0
References: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250723135819.988-1-ngoc-tu.dinh@vates.tech>
From: Owen Smith <owen.smith@cloud.com>
Date: Thu, 31 Jul 2025 15:26:16 +0100
X-Gm-Features: Ac12FXwpKtn8qgaC9-1Yq9-wesCIKhSZ_PjjDrWUkXZXxKHI8pRsELaaZvC5YuE
Message-ID: <CAC_UY88Gftfmu-Bqz-axFyOmAu5Fqur4=OL_QTPLG0LdfA3GWg@mail.gmail.com>
Subject: Re: [PATCH v2 0/7] Implement forced unplug and forced activation
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="0000000000004aed46063b3a6d3b"

--0000000000004aed46063b3a6d3b
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Having played with this a bit, there seems to be several edge cases that
are fatal.
1) installing on 1 device (e.g. 0002) without any others seems to work.
Shutting down, and changing the device (e.g. to 0001) and booting, will
trigger an 0x7B bugcheck (emulated disk is unplugged, but the PV disk has
not bound to the 0001 device nodes)
2) installing on 1 device (e.g. 0002), shutting down and adding the vendor
device will trigger a 0x7B bugcheck on boot (as the emulated disk is
unplugged, but the driver stack has not reinstalled on the vendor device)
There may well be more problem cases, but I've not investigated further.

Owen


On Wed, Jul 23, 2025 at 2:58=E2=80=AFPM Tu Dinh <ngoc-tu.dinh@vates.tech> w=
rote:

> The goal of these two features is to simplify driver servicing and avoid
> requiring storing driver state in Registry.
>
> Forced unplug, as name implies, forcefully unplugs emulated devices when
> a driver is present, rather than when it's active. It defines a Registry
> key at CurrentControlSet\XEN\ForceUnplug. Drivers can opt into forced
> unplug by creating an appropriate value (DISKS/NICS) in this key.
>
> Forced activation is the companion to forced unplug. It aims to make
> activation of Xenbus FDOs deterministic and stateless, using a
> precedence mapping based on device IDs, prioritizing the vendor device
> over the generic ones. This avoids situations where the wrong FDO is
> activated, which will prevent Windows Update from working.
>
> With forced activation, Xenfilt is now installed via INF on top of the
> current installation routines. This means PV drivers can be injected
> offline without needing another reboot to be reconfigured.
>
> To avoid affecting older drivers, the two features are conditioned
> behind new build variables FORCE_UNPLUG and FORCE_ACTIVATE.
>
> The following scenarios have been successfully tested, both requiring
> only one reboot:
> * Offline driver installation via DISM
> * Toggling vendor device
>
> Tu Dinh (7):
>   Add forced unplug support
>   xenfilt: Add Xenbus device precedence mechanism
>   Add EMULATED v3
>   xenbus: Use nonpaged pool in FdoQueryId
>   Use EMULATED v3 to force activate Xenbus FDOs
>   Enable Xenbus precedence
>   Install Xenfilt with INF AddReg
>
>  include/emulated_interface.h |  52 ++++++++++++---
>  include/revision.h           |   3 +-
>  scripts/genfiles.ps1         |   2 +
>  src/xen/driver.c             |  79 ++++++++++++++++++-----
>  src/xen/driver.h             |   5 ++
>  src/xen/unplug.c             |  13 +++-
>  src/xenbus.inf               |  11 ++++
>  src/xenbus/fdo.c             | 122 +++++++++++++++++++++++++----------
>  src/xenfilt/driver.c         |  51 ++++++++++++++-
>  src/xenfilt/driver.h         |   7 ++
>  src/xenfilt/emulated.c       |  62 ++++++++++++++++--
>  src/xenfilt/emulated.h       |   1 +
>  src/xenfilt/fdo.c            |  25 ++++++-
>  src/xenfilt/pdo.c            |  80 +++++++++++++++++++----
>  src/xenfilt/pdo.h            |  10 ++-
>  15 files changed, 435 insertions(+), 88 deletions(-)
>
> --
> 2.50.1.windows.1
>
>
>
> Ngoc Tu Dinh | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech
>
>

--0000000000004aed46063b3a6d3b
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:monospac=
e">Having played with this a bit, there seems to be several edge cases that=
 are fatal.</div><div class=3D"gmail_default" style=3D"font-family:monospac=
e">1) installing on 1 device (e.g. 0002) without any others seems to work. =
Shutting down, and changing the device (e.g. to 0001) and booting, will tri=
gger an 0x7B bugcheck (emulated disk is unplugged, but the PV disk has not =
bound to the 0001 device nodes)<br>2) installing on 1 device (e.g. 0002), s=
hutting down and adding the vendor device will trigger a 0x7B bugcheck on b=
oot (as the emulated disk is unplugged, but the driver stack has not reinst=
alled on the vendor device)<br>There may well be more problem cases, but I&=
#39;ve not investigated further.</div><div class=3D"gmail_default" style=3D=
"font-family:monospace"><br></div><div class=3D"gmail_default" style=3D"fon=
t-family:monospace">Owen</div><div class=3D"gmail_default" style=3D"font-fa=
mily:monospace"><br></div></div><br><div class=3D"gmail_quote"><div dir=3D"=
ltr" class=3D"gmail_attr">On Wed, Jul 23, 2025 at 2:58=E2=80=AFPM Tu Dinh &=
lt;ngoc-tu.dinh@vates.tech&gt; wrote:<br></div><blockquote class=3D"gmail_q=
uote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,2=
04);padding-left:1ex">The goal of these two features is to simplify driver =
servicing and avoid<br>
requiring storing driver state in Registry.<br>
<br>
Forced unplug, as name implies, forcefully unplugs emulated devices when<br=
>
a driver is present, rather than when it&#39;s active. It defines a Registr=
y<br>
key at CurrentControlSet\XEN\ForceUnplug. Drivers can opt into forced<br>
unplug by creating an appropriate value (DISKS/NICS) in this key.<br>
<br>
Forced activation is the companion to forced unplug. It aims to make<br>
activation of Xenbus FDOs deterministic and stateless, using a<br>
precedence mapping based on device IDs, prioritizing the vendor device<br>
over the generic ones. This avoids situations where the wrong FDO is<br>
activated, which will prevent Windows Update from working.<br>
<br>
With forced activation, Xenfilt is now installed via INF on top of the<br>
current installation routines. This means PV drivers can be injected<br>
offline without needing another reboot to be reconfigured.<br>
<br>
To avoid affecting older drivers, the two features are conditioned<br>
behind new build variables FORCE_UNPLUG and FORCE_ACTIVATE.<br>
<br>
The following scenarios have been successfully tested, both requiring<br>
only one reboot:<br>
* Offline driver installation via DISM<br>
* Toggling vendor device<br>
<br>
Tu Dinh (7):<br>
=C2=A0 Add forced unplug support<br>
=C2=A0 xenfilt: Add Xenbus device precedence mechanism<br>
=C2=A0 Add EMULATED v3<br>
=C2=A0 xenbus: Use nonpaged pool in FdoQueryId<br>
=C2=A0 Use EMULATED v3 to force activate Xenbus FDOs<br>
=C2=A0 Enable Xenbus precedence<br>
=C2=A0 Install Xenfilt with INF AddReg<br>
<br>
=C2=A0include/emulated_interface.h |=C2=A0 52 ++++++++++++---<br>
=C2=A0include/revision.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =
=C2=A03 +-<br>
=C2=A0scripts/genfiles.ps1=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A02=
 +<br>
=C2=A0src/xen/driver.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=
=A0 79 ++++++++++++++++++-----<br>
=C2=A0src/xen/driver.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=
=A0 =C2=A05 ++<br>
=C2=A0src/xen/unplug.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=
=A0 13 +++-<br>
=C2=A0src/xenbus.inf=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
|=C2=A0 11 ++++<br>
=C2=A0src/xenbus/fdo.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| 122=
 +++++++++++++++++++++++++----------<br>
=C2=A0src/xenfilt/driver.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 51 ++++=
++++++++++-<br>
=C2=A0src/xenfilt/driver.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A07=
 ++<br>
=C2=A0src/xenfilt/emulated.c=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 62 +++++++++=
+++++++--<br>
=C2=A0src/xenfilt/emulated.h=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A01 +<br=
>
=C2=A0src/xenfilt/fdo.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 25=
 ++++++-<br>
=C2=A0src/xenfilt/pdo.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 80=
 +++++++++++++++++++----<br>
=C2=A0src/xenfilt/pdo.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 10=
 ++-<br>
=C2=A015 files changed, 435 insertions(+), 88 deletions(-)<br>
<br>
-- <br>
2.50.1.windows.1<br>
<br>
<br>
<br>
Ngoc Tu Dinh | Vates XCP-ng Developer<br>
<br>
XCP-ng &amp; Xen Orchestra - Vates solutions<br>
<br>
web: <a href=3D"https://vates.tech" rel=3D"noreferrer" target=3D"_blank">ht=
tps://vates.tech</a><br>
<br>
</blockquote></div>

--0000000000004aed46063b3a6d3b--


From win-pv-devel-bounces@lists.xenproject.org Thu Jul 31 15:04:06 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 31 Jul 2025 15:04:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1065740.1431078 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uhUpA-0006KG-81; Thu, 31 Jul 2025 15:04:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1065740.1431078; Thu, 31 Jul 2025 15:04:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uhUpA-0006K9-4m; Thu, 31 Jul 2025 15:04:04 +0000
Received: by outflank-mailman (input) for mailman id 1065740;
 Thu, 31 Jul 2025 15:04:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5nfl=2M=bounce.vates.tech=bounce-md_30504962.688b85dc.v1-de989201f7b844f294a14f40a465ddc1@srs-se1.protection.inumbo.net>)
 id 1uhUp9-0006K1-Cn
 for win-pv-devel@lists.xenproject.org; Thu, 31 Jul 2025 15:04:03 +0000
Received: from mail177-1.suw61.mandrillapp.com
 (mail177-1.suw61.mandrillapp.com [198.2.177.1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 951e69d9-6e1f-11f0-b895-0df219b8e170;
 Thu, 31 Jul 2025 17:03:58 +0200 (CEST)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-1.suw61.mandrillapp.com (Mailchimp) with ESMTP id 4btC5m556PzBsV2H2
 for <win-pv-devel@lists.xenproject.org>; Thu, 31 Jul 2025 15:03:56 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 de989201f7b844f294a14f40a465ddc1; Thu, 31 Jul 2025 15:03:56 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 951e69d9-6e1f-11f0-b895-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1753974236; x=1754244236;
	bh=ma2FU+2qTEemopwLq3D9Qgl68QHTtnHsuMqJUz9kO5Y=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=ZQTUclKyo5J4y9Tl3ET90JYnxP9PZ02c6eKgxUCLyDXYONpNKI76nBNBtqf2DHr4h
	 5DhsagO9HY1UFtCEyXb2M1z+dQP4nE8BZg5sD/JfUEXnk3nyz4TI2UprbwEzokHkoi
	 qACZunuUnQ4xkgj5Cs2yZfc40FNXMl832CUJHmzG0WSQYpG4e2l77Uhs0B31QyspB1
	 ibBaawBDg5UI5PEwyQnVSe0DwPbuH4Qvlo9qT80ypXAws3rDRDXFdT4y+cJ/8Lx1j1
	 gnJq3x+4a1JTAmQHg7b/aSjzKSui5hXD+L6ePA8hxEDkdEbAJHnKTycAmcTyb49ld1
	 VzPI77+8L5JlA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1753974236; x=1754234736; i=ngoc-tu.dinh@vates.tech;
	bh=ma2FU+2qTEemopwLq3D9Qgl68QHTtnHsuMqJUz9kO5Y=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=prFk/NuQ4ny+SDvgV6+K5//Kj0Lh/EkZW0XfztJPk1YX07A0bpa/m4YmjSJLf+oMD
	 ReuKlJKU6cHAab3+QMa6X18oqmVErHvbcBsYSeqYX8Hn1mysPZQpiYlZTJ8vcWmf38
	 7YxeH5LMmwcVcetpPj3LuPX+keTyNK2lyCRTo8WOz0nIsOV7V3PUQFxd2G3KAJZYjG
	 1c0T6LkVwKFVqzyjg4HZEvpu3KYz9U0FwwtSdY4FiOKM4RDS40paxYC2hDLw5qGJRz
	 Q8mQxApC6R23JE+B3m4G5ipqqaAI4EUCObI0ZWm7+I9CqQ1Sku4iVQ3oNx+rSwDV5/
	 go483Qd61fsmQ==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v2=200/7]=20Implement=20forced=20unplug=20and=20forced=20activation?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1753974235888
Message-Id: <d433745f-a580-4435-8505-ffcb96574f84@vates.tech>
To: "Owen Smith" <owen.smith@cloud.com>
Cc: win-pv-devel@lists.xenproject.org
References: <20250723135819.988-1-ngoc-tu.dinh@vates.tech> <CAC_UY88Gftfmu-Bqz-axFyOmAu5Fqur4=OL_QTPLG0LdfA3GWg@mail.gmail.com>
In-Reply-To: <CAC_UY88Gftfmu-Bqz-axFyOmAu5Fqur4=OL_QTPLG0LdfA3GWg@mail.gmail.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.de989201f7b844f294a14f40a465ddc1?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250731:md
Date: Thu, 31 Jul 2025 15:03:56 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On 31/07/2025 16:26, Owen Smith wrote:
> Having played with this a bit, there seems to be several edge cases that 
> are fatal.
> 1) installing on 1 device (e.g. 0002) without any others seems to work. 
> Shutting down, and changing the device (e.g. to 0001) and booting, will 
> trigger an 0x7B bugcheck (emulated disk is unplugged, but the PV disk 
> has not bound to the 0001 device nodes)
> 2) installing on 1 device (e.g. 0002), shutting down and adding the 
> vendor device will trigger a 0x7B bugcheck on boot (as the emulated disk 
> is unplugged, but the driver stack has not reinstalled on the vendor device)
> There may well be more problem cases, but I've not investigated further.
> 
> Owen
> 

It's something I've been looking at as well.

Basically, when the driver is installed online, it will only populate 
the registry keys 
HKLM\SYSTEM\DriverDatabase\DriverPackages\xenbus.inf_*\Descriptors\PCI\*
corresponding to the active device.
Once another device is installed, Windows is unable to pick up and 
install the driver. So forced unplug/activation and vendor device 
binding are incompatible at the moment.

Interestingly, the problem will not exist when the driver is installed 
offline via Dism, as it will populate the registry with all the 
supported device IDs.

One way to fix this is to (only when forced unplug/activation is set):
- make xenbus.inf bind to PCI\VEN_5853 or something equivalent instead 
of a list of branded device IDs;
- for each child PDO, add a compatible ID without the vendor device ID 
(e.g. XENBUS\VEN_@VENDOR_PREFIX@&DEV_VBD&REV_0900000B);
- make xenvbd.inf bind to that compatible ID

This should make sure that the full driver chain is available during 
boot time, at the cost of potentially breaking Windows Update delivery.

I've tested this on Server 2022 and it seems to work.

Related: 
https://community.osr.com/t/hklm-system-driverdatabase-driverpackages-bus-driver-inf-not-properly-configured/52214


Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From win-pv-devel-bounces@lists.xenproject.org Thu Jul 31 17:44:03 2025
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 31 Jul 2025 17:44:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1066202.1431471 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uhXJx-00045r-4c; Thu, 31 Jul 2025 17:44:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1066202.1431471; Thu, 31 Jul 2025 17:44:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1uhXJx-00045k-21; Thu, 31 Jul 2025 17:44:01 +0000
Received: by outflank-mailman (input) for mailman id 1066202;
 Thu, 31 Jul 2025 17:44:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ELRo=2M=bounce.vates.tech=bounce-md_30504962.688bab5c.v1-f6ac06d70dc64cd5a1b864f4c05fdc02@srs-se1.protection.inumbo.net>)
 id 1uhXJw-00045e-1C
 for win-pv-devel@lists.xenproject.org; Thu, 31 Jul 2025 17:44:00 +0000
Received: from mail333.us4.mandrillapp.com (mail333.us4.mandrillapp.com
 [205.201.137.77]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ef45b788-6e35-11f0-a320-13f23c93f187;
 Thu, 31 Jul 2025 19:43:58 +0200 (CEST)
Received: from pmta17.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail333.us4.mandrillapp.com (Mailchimp) with ESMTP id 4btGfN5gHdzNCdHBl
 for <win-pv-devel@lists.xenproject.org>; Thu, 31 Jul 2025 17:43:56 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f6ac06d70dc64cd5a1b864f4c05fdc02; Thu, 31 Jul 2025 17:43:56 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ef45b788-6e35-11f0-a320-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1753983836; x=1754253836;
	bh=cXjyoS9mG+A47jTR5kSTpqapBmpX4VJO3pJS34CLGhY=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=M+KC+HhG/UbaEarlAE/pQpHztnBSx9nh+BpKmwaz2AKrRHfwCyCaySHZBerny4gVe
	 LZUrOJFEJ/kEoBV7RRDwBN3qnrAN6oP5y4erCBCLaIWBD0slOla28qTiS1etYjG/HQ
	 3slTVniMI1lV+sgOtnxg94re/S+T5u5adl4weWE2dYwGQET7dTT63X1Gvlvl6rRfej
	 SANNbvwjxFMXNVadvwJEEKW1PbfxEk/d+GQU7wUdpgr0abgJtLDR6JLgWyoRFydVVR
	 WAuaytWPsbpj1h/WI8m4gcCnjPI7MveibQkcsdb/GkuQT1O7QJUnomsb6mZkYPc3Ra
	 VSeeEP/thFnYw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1753983836; x=1754244336; i=ngoc-tu.dinh@vates.tech;
	bh=cXjyoS9mG+A47jTR5kSTpqapBmpX4VJO3pJS34CLGhY=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=bAlAM0RJlYRfYl3+IcXGBrxrxqVHOYzYCVCzauiLOrMi/HUO5mX8yQTPzjfWJonXN
	 PIGa7CbA45p7QNlJ5nvFr7nm7kBbGLT4Frv4wZoh1L50w4fj1CB5LI+zeiqf7LHqd3
	 dNCNz6kxa+gGMUCN+CgqevnaAb93OWW0ZGsytcO3+6kKYZks4IcdSF6zLs6Db6VYEM
	 0Oge4BObhVd9dVikHVsZqYan/lM1hjgLBzygmSMAL+6wCJV17d6kmcw39at9wPU5Gz
	 mzkJdnH0VwcdpyTWVdZFKq/E6pSSsHG5cAYKJhDemc1RTSinCp+QUBmwZf2uW0h9TX
	 zwBcsu5PTdiFg==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[XENBUS=20PATCH=20v2=206/7]=20Enable=20Xenbus=20precedence?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1753983835921
Message-Id: <b3c0df4f-188c-4f75-82a9-97d0dcac72cf@vates.tech>
To: win-pv-devel@lists.xenproject.org
Cc: "Owen Smith" <owen.smith@cloud.com>
References: <20250723135819.988-1-ngoc-tu.dinh@vates.tech> <20250723135819.988-7-ngoc-tu.dinh@vates.tech>
In-Reply-To: <20250723135819.988-7-ngoc-tu.dinh@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.f6ac06d70dc64cd5a1b864f4c05fdc02?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250731:md
Date: Thu, 31 Jul 2025 17:43:56 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On 23/07/2025 15:58, Tu Dinh wrote:
> Define precedence values based on each device's numeric device ID.
> 
> This ensures that vendor devices always get activated instead of the
> generic ones.
> 
> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
> ---
>   src/xenbus.inf | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/src/xenbus.inf b/src/xenbus.inf
> index 7cc9ac2..30274e2 100644
> --- a/src/xenbus.inf
> +++ b/src/xenbus.inf
> @@ -120,6 +120,9 @@ AddReg = XenFilt_Parameters
>   HKR,"Parameters",,0x00000010
>   HKR,"Parameters","*PNP0A03",0x00000000,"PCI"
>   HKR,"Parameters","Internal_IDE_Channel",0x00000000,"IDE"
> +HKR,"Parameters","PCI\VEN_5853&DEV_0001",0x00010001,0x0001
> +HKR,"Parameters","PCI\VEN_5853&DEV_0002",0x00010001,0x0002
> +HKR,"Parameters","PCI\VEN_5853&DEV_C000",0x00010001,0x@VENDOR_DEVICE_ID@

The device ID should be "PCI\VEN_5853&DEV_@VENDOR_DEVICE_ID@" (but I'll 
probably drop vendor devices from forced activation in the next version; 
the commit message thus needs changing too)

>   
>   [Monitor_Service]
>   DisplayName=%MonitorName%



Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



