From win-pv-devel-bounces@lists.xenproject.org Thu Feb 01 17:35:16 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 01 Feb 2024 17:35:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.674607.1049680 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rVay1-0002WA-DV; Thu, 01 Feb 2024 17:35:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 674607.1049680; Thu, 01 Feb 2024 17:35:13 +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 1rVay1-0002W2-AZ; Thu, 01 Feb 2024 17:35:13 +0000
Received: by outflank-mailman (input) for mailman id 674607;
 Thu, 01 Feb 2024 17:35:12 +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=4Zkz=JK=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1rVay0-0002Vw-9d
 for win-pv-devel@lists.xenproject.org; Thu, 01 Feb 2024 17:35:12 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3ee91536-c128-11ee-98f5-efadbce2ee36;
 Thu, 01 Feb 2024 18:35:10 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-40e7e2e04f0so10742735e9.1
 for <win-pv-devel@lists.xenproject.org>; Thu, 01 Feb 2024 09:35:09 -0800 (PST)
Received: from [10.95.167.50] (54-240-197-233.amazon.com. [54.240.197.233])
 by smtp.gmail.com with ESMTPSA id
 z21-20020a1c4c15000000b0040fb783ad93sm157594wmf.48.2024.02.01.09.35.08
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 01 Feb 2024 09:35:08 -0800 (PST)
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: 3ee91536-c128-11ee-98f5-efadbce2ee36
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1706808909; x=1707413709; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=RVJPlOflC0VsV5QBpvlWK+C8lnARyALkBe6zZiuacek=;
        b=Vgmo4YcAKn6VSWYlVsGRD+pFW+8dy8vHZFc+nNy2w08O9/HwK34OPsvjDuG+0PQq7V
         ZMD5AJwTWeqUuMQDaVlHjhMYzxyd2GF/8R1579tjT67iOCmLwEH9589SzQ+8Ktb8Szpe
         EOrsqhvtqG7M3zCMacp95nOCK7C4Ye3ItDKwIZtX1HlHp55sn38lmuYsvEg8vLGHEmnj
         MZmACa+QdQv2/oEZ6jU1bRr7b8x9xILdZPsbN3qM04wEHiQM2KiPQ8cjNbpYGWbBmsgs
         7wvvB7hMmSdFDfJxMwfBqTuU1Z0Z7Nph8WoC/3A88+JMrAhji45TU+iS5y2E2oMvGa4W
         /DAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1706808909; x=1707413709;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RVJPlOflC0VsV5QBpvlWK+C8lnARyALkBe6zZiuacek=;
        b=G4grfNtOKVy4ENFKZAkwtWJhoQMtAB/BLsOFyXGnQDtPqDF0IgpQe36qXvsjryquH5
         217NGRmlg7WVXs1s0ofOsEmLtL4n/6dAjOnAEn/5LGM9I6nyentObqiDEemfx50Q/T40
         cL8RAzflIYTxE2S5MECVDKVzxhBXtyuMmnFTim5Lnxi+bbAELB17lQzeAU2+Vzd80A1q
         pRfZt/n0VFjnftNaIenOipJwvr7uEbZXMmUQM/hFzV06g2n84WOqnwvpFV2xiM84aOdP
         /VquR+LGswFNoCz9amN2wrhsRxy4XGMrOFNTzlPL3Jl1Q7DoTAjzghBZtIZW2ubN9Xz9
         lACQ==
X-Gm-Message-State: AOJu0YyHHvEUkzurLjuIOxNEsOIk7F+/9aZ/VlHxYqOQ1oOxMRRBnSDS
	nJyz1JXxlgHEHP6dAjIyOxuWm5jteLbG/YlkwQ/6leMlGc7TQF3tm+GTqe/DkiU=
X-Google-Smtp-Source: AGHT+IEug2rHAnOqryAswROwnd7SFhcnrSAAkLEda0FK2p4CqQL2cLYy2rk1/sI1EhOs23zwTeUSUw==
X-Received: by 2002:a05:600c:35d6:b0:40e:f632:494c with SMTP id r22-20020a05600c35d600b0040ef632494cmr3960637wmq.30.1706808908916;
        Thu, 01 Feb 2024 09:35:08 -0800 (PST)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <142046d9-b4bb-4ac9-ab28-8c13bebca115@xen.org>
Date: Thu, 1 Feb 2024 17:35:07 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 0/3] Rework Power handlers
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20240110134222.1660-1-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20240110134222.1660-1-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 10/01/2024 13:42, Owen Smith wrote:
> Current power handler code is passed to a single threaded work thread which
> can be delayed enough to trigger 0x9F (DRIVER_POWER_STATE_FAILURE) bugchecks.
> Rework power handlers to math standard practive, using pended IRPs,
> IoCompletionRoutines and deferred IoWorkItems where required.
> 
> Martin Harvey (2):
>    [XenFilt] Asynchronous power handling.
>    [XenBus] Asynchronous power handling
>

I advised Martin against these changes over a year ago. How prevalent is 
the problem? It took *years* to get this, and the PnP code stable. How 
much testing have these changes had?

   Paul

> Owen Smith (1):
>    ASSERT(Frame->Mdl != NULL) before dereference
> 
>   src/xenbus/fdo.c    | 792 ++++++++++++++++++++++++--------------------
>   src/xenbus/gnttab.c |   1 +
>   src/xenbus/pdo.c    | 250 ++++++--------
>   src/xenfilt/fdo.c   | 498 +++++++---------------------
>   src/xenfilt/pdo.c   | 503 +++++++---------------------
>   5 files changed, 777 insertions(+), 1267 deletions(-)
> 



From win-pv-devel-bounces@lists.xenproject.org Thu Feb 01 17:40:52 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 01 Feb 2024 17:40:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.674619.1049693 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rVb3U-00057I-16; Thu, 01 Feb 2024 17:40:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 674619.1049693; Thu, 01 Feb 2024 17:40: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 1rVb3T-00057B-Un; Thu, 01 Feb 2024 17:40:51 +0000
Received: by outflank-mailman (input) for mailman id 674619;
 Thu, 01 Feb 2024 17:40:50 +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=4Zkz=JK=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1rVb3S-000575-OT
 for win-pv-devel@lists.xenproject.org; Thu, 01 Feb 2024 17:40:50 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0873744d-c129-11ee-8a43-1f161083a0e0;
 Thu, 01 Feb 2024 18:40:49 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-51124d86022so1932910e87.0
 for <win-pv-devel@lists.xenproject.org>; Thu, 01 Feb 2024 09:40:47 -0800 (PST)
Received: from [10.95.167.50] (54-240-197-233.amazon.com. [54.240.197.233])
 by smtp.gmail.com with ESMTPSA id
 l2-20020a05600c4f0200b0040ebfbff33csm5123073wmq.36.2024.02.01.09.40.46
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 01 Feb 2024 09:40:46 -0800 (PST)
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: 0873744d-c129-11ee-8a43-1f161083a0e0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1706809247; x=1707414047; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=/d/KcwmNXCSAFY21fZHXs+0KKxDo9fAli3hiqE1etDM=;
        b=Cjv7bGrU8kXg6JA0czsZXOQm30dvNnPk6fjz44CIOZG40TPrO2IFgbZI52DqS9rjWU
         auIaYM66zg+X6Dn7vlZJeMdERj+HWA3Xoe6er2r+CgghpBB9AyTxHygu8BRTSTIGOi0g
         +W2sECa1iDr1b9ExhuOvkFr8/EcOC1uojHxCHVXnHbb42VWLTynf8VAMPyYEmoITj/Bg
         jrehIPTPOePTFiouDE8ZOBXKsUs+u2pQZ6ZoGFoqGZ+FU4xWepHw1R0hboJRDMK7ST4G
         xaG4G9ku/aIIN0TTFtZr3gWu0w2lYtuZe+NbVgDJHDc69SKmcR/N2svkAeY7bfc5r1wT
         HYpQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1706809247; x=1707414047;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/d/KcwmNXCSAFY21fZHXs+0KKxDo9fAli3hiqE1etDM=;
        b=r9YD4fee6bkoMgF/tAfO31YSXXmGWL0aSM4RhBMFQfj+FAnxWOOltVyhNIB+YU+FIF
         iwC8cMGoIHKGCIeix7pS6pR+GSRVYQFdyW12Z2+eUj3aLyfCBgarua0+oVmLxcoE13Mk
         1+PCU+eR3oWl3hBkQigry3r7BIt5C8EIzY4pL83/ptajmpj5//iwwUXaNLgltwV7WX81
         LooF/u10Zgnqw8E+FEUOBBwVe5wWFYW1mylACGkXoXI4hjQmQSCBNwVxGPwo0ocQ7FTm
         5MTawZqWetvukNj2BkcVTSSnf/WKTJfgABqDgNlNWUkpEtaLhIya6nq3z04l9rIPoRxg
         ZWig==
X-Gm-Message-State: AOJu0Yws+P5NQWR4FAtlA7CzNgTJyJoBHZPU41uCaj+p+3P6cTXe8CEm
	wwfvsk5h2w/o0qlnjVsZalTR6qNDeuN8X+27CbFTD30aNITGaSTjg5gOMAqbJrc=
X-Google-Smtp-Source: AGHT+IE6WhXk/pLYAzpxVPEoWO1X91KCC3EowIZVIw563AWvj/ohr6YlktD1VddWV59A1MWM9o/Zew==
X-Received: by 2002:a05:6512:5d6:b0:50e:3649:8649 with SMTP id o22-20020a05651205d600b0050e36498649mr2119266lfo.61.1706809246836;
        Thu, 01 Feb 2024 09:40:46 -0800 (PST)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <8ba04617-16e4-4b10-b624-4fa3dd75c868@xen.org>
Date: Thu, 1 Feb 2024 17:40:44 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 1/2] Add ETW support
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20240112125915.1229-1-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20240112125915.1229-1-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 12/01/2024 12:59, Owen Smith wrote:
> Defines ETW schema with EtwEnter and EtwExit events, which can be used to track
> code-paths and produce flamegraphs of executions.
> Only uses EtwEnter and EtwExit in the driver.c file of XenBus, but more events
> will be added in subsequent patches.
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/common/dbg_print.h       | 60 +++++++++++++++++++++++++++++++++++
>   src/xenbus/driver.c          | 11 +++++++
>   src/xenbus/xenbus_etw.xml    | 61 ++++++++++++++++++++++++++++++++++++
>   vs2019/xenbus/xenbus.vcxproj | 13 +++++++-
>   vs2022/xenbus/xenbus.vcxproj | 13 +++++++-
>   5 files changed, 156 insertions(+), 2 deletions(-)
>   create mode 100644 src/xenbus/xenbus_etw.xml
> 
> diff --git a/src/common/dbg_print.h b/src/common/dbg_print.h
> index a0bd727..98c22cf 100644
> --- a/src/common/dbg_print.h
> +++ b/src/common/dbg_print.h
> @@ -42,6 +42,66 @@
>   
>   #pragma warning(disable:4127)   // conditional expression is constant
>   
> +#ifdef ETW_HEADER
> +#include ETW_HEADER
> +
> +static __inline VOID
> +__EtwEnter(
> +    IN  const CHAR      *Module,
> +    IN  const CHAR      *Function,
> +    IN  ULONG           Line
> +    )
> +{
> +    CHAR                _Module[16];
> +    CHAR                _Function[32];
> +
> +    if (!EventEnabledEvtEnter())
> +        return;
> +
> +    RtlZeroMemory(_Module, sizeof(_Module));
> +    RtlZeroMemory(_Function, sizeof(_Function));
> +
> +    strncpy(_Module, Module, ARRAYSIZE(_Module) -1);

Missing space. I can fix.

> +    strncpy(_Function, Function, ARRAYSIZE(_Function) - 1);
> +
> +    EventWriteEvtEnter(NULL, _Module, _Function, Line);
> +}
> +
> +static __inline VOID
> +__EtwExit(
> +    IN  const CHAR      *Module,
> +    IN  const CHAR      *Function,
> +    IN  ULONG           Line,
> +    IN  NTSTATUS        Status
> +    )
> +{
> +    CHAR                _Module[16];
> +    CHAR                _Function[32];
> +
> +    if (!EventEnabledEvtExit())
> +        return;
> +
> +    RtlZeroMemory(_Module, sizeof(_Module));
> +    RtlZeroMemory(_Function, sizeof(_Function));
> +
> +    strncpy(_Module, Module, sizeof(_Module));

Why sizeof() here but ARRAYSIZE above?

> +    strncpy(_Function, Function, sizeof(_Function));
> +
> +    EventWriteEvtExit(NULL, _Module, _Function, Line, (ULONG)Status);
> +}
> +
> +#define EtwEnter()          __EtwEnter(__MODULE__, __FUNCTION__, __LINE__)
> +#define EtwExit()           __EtwExit(__MODULE__, __FUNCTION__, __LINE__, STATUS_SUCCESS)
> +#define EtwExit2(status)    __EtwExit(__MODULE__, __FUNCTION__, __LINE__, status)

Why this rather than requiring an explicit status for EtwExit()?

   Paul

> +
> +#else
> +
> +#define EtwEnter()          (VOID)0
> +#define EtwExit()           (VOID)0
> +#define EtwExit2(status)    (VOID)status
> +
> +#endif
> +
>   static __inline VOID
>   __Error(
>       IN  const CHAR  *Prefix,
> diff --git a/src/xenbus/driver.c b/src/xenbus/driver.c
> index 522acef..4443559 100644
> --- a/src/xenbus/driver.c
> +++ b/src/xenbus/driver.c
> @@ -708,6 +708,8 @@ DriverUnload(
>   
>       __DriverSetDriverObject(NULL);
>   
> +    EventUnregisterXenBus_Driver();
> +
>       ASSERT(IsZeroMemory(&Driver, sizeof (XENBUS_DRIVER)));
>   
>       Trace("<====\n");
> @@ -726,6 +728,7 @@ DriverAddDevice(
>   
>       ASSERT3P(DriverObject, ==, __DriverGetDriverObject());
>   
> +    EtwEnter();
>       Trace("====>\n");
>   
>       __DriverAcquireMutex();
> @@ -737,12 +740,14 @@ DriverAddDevice(
>       __DriverReleaseMutex();
>   
>       Trace("<====\n");
> +    EtwExit();
>   
>       return STATUS_SUCCESS;
>   
>   fail1:
>       __DriverReleaseMutex();
>   
> +    EtwExit2(status);
>       return status;
>   }
>   
> @@ -757,6 +762,8 @@ DriverDispatch(
>       PXENBUS_DX          Dx;
>       NTSTATUS            status;
>   
> +    EtwEnter();
> +
>       Dx = (PXENBUS_DX)DeviceObject->DeviceExtension;
>       ASSERT3P(Dx->DeviceObject, ==, DeviceObject);
>   
> @@ -800,6 +807,7 @@ DriverDispatch(
>       }
>   
>   done:
> +    EtwExit2(status);
>       return status;
>   }
>   
> @@ -819,6 +827,7 @@ DriverEntry(
>   
>       ASSERT3P(__DriverGetDriverObject(), ==, NULL);
>   
> +    EventRegisterXenBus_Driver();
>       ExInitializeDriverRuntime(DrvRtPoolNxOptIn);
>       WdmlibProcgrpInitialize();
>   
> @@ -915,6 +924,8 @@ fail1:
>   
>       __DriverSetDriverObject(NULL);
>   
> +    EventUnregisterXenBus_Driver();
> +
>       ASSERT(IsZeroMemory(&Driver, sizeof (XENBUS_DRIVER)));
>   
>       return status;
> diff --git a/src/xenbus/xenbus_etw.xml b/src/xenbus/xenbus_etw.xml
> new file mode 100644
> index 0000000..c73dfe6
> --- /dev/null
> +++ b/src/xenbus/xenbus_etw.xml
> @@ -0,0 +1,61 @@
> +<?xml version='1.0' encoding='utf-8' standalone='yes'?>
> +<instrumentationManifest
> +    xmlns="http://schemas.microsoft.com/win/2004/08/events"
> +    xmlns:win="http://manifests.microsoft.com/win/2004/08/windows/events"
> +    xmlns:xs="http://www.w3.org/2001/XMLSchema"
> +    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> +    xsi:schemaLocation="http://schemas.microsoft.com/win/2004/08/events eventman.xsd" >
> +  <instrumentation>
> +    <events>
> +      <provider
> +          guid="{e580595b-a8a6-41b7-a9c1-1954d2138ffc}"
> +          messageFileName="%SystemDrive%\windows\system32\drivers\xenbus.sys"
> +          name="XenBus_Driver"
> +          resourceFileName="%SystemDrive%\windows\system32\drivers\xenbus.sys"
> +          symbol="DriverControlGuid" >
> +        <channels>
> +          <channel chid="XENBUS" name="XenBus" type="Analytic" enabled="true" />
> +        </channels>
> +        <templates>
> +          <template tid="tid_enter">
> +            <data name="Module" inType="win:Int8" count="16" outType="xs:string" />     <!-- 16 chars -->
> +            <data name="Function" inType="win:Int8" count="32" outType="xs:string" />   <!-- 32 chars -->
> +            <data name="Line" inType="win:UInt32" outType="xs:unsignedInt" />           <!-- line number -->
> +          </template>
> +          <template tid="tid_exit">
> +            <data name="Module" inType="win:Int8" count="16" outType="xs:string" />     <!-- 16 chars -->
> +            <data name="Function" inType="win:Int8" count="32" outType="xs:string" />   <!-- 32 chars -->
> +            <data name="Line" inType="win:UInt32" outType="xs:unsignedInt" />           <!-- line number -->
> +            <data name="Status" inType="win:UInt32" outType="xs:unsignedInt" />         <!-- NTSTATUS -->
> +          </template>
> +        </templates>
> +        <events>
> +          <event
> +            channel="XENBUS"
> +            level="win:Informational"
> +            message="$(string.EventTraceInfo.Enter)"
> +            opcode="win:Info"
> +            symbol="EvtEnter"
> +            template="tid_enter"
> +            value="10" />
> +          <event
> +            channel="XENBUS"
> +            level="win:Informational"
> +            message="$(string.EventTraceInfo.Exit)"
> +            opcode="win:Info"
> +            symbol="EvtExit"
> +            template="tid_exit"
> +            value="11" />
> +        </events>
> +      </provider>
> +    </events>
> +  </instrumentation>
> +  <localization xmlns="http://schemas.microsoft.com/win/2004/08/events">
> +    <resources culture="en-US">
> +      <stringTable>
> +        <string id="EventTraceInfo.Enter" value="[Enter]" />
> +        <string id="EventTraceInfo.Exit"  value="[Exit ]" />
> +      </stringTable>
> +    </resources>
> +  </localization>
> +</instrumentationManifest>
> diff --git a/vs2019/xenbus/xenbus.vcxproj b/vs2019/xenbus/xenbus.vcxproj
> index aa88980..e191527 100644
> --- a/vs2019/xenbus/xenbus.vcxproj
> +++ b/vs2019/xenbus/xenbus.vcxproj
> @@ -20,7 +20,7 @@
>     <ItemDefinitionGroup>
>       <ClCompile>
>         <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
> -      <PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
> +      <PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;ETW_HEADER="xenbus_etw.h";%(PreprocessorDefinitions)</PreprocessorDefinitions>
>         <IntrinsicFunctions>true</IntrinsicFunctions>
>         <AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;..\..\src\common;</AdditionalIncludeDirectories>
>         <WarningLevel>EnableAllWarnings</WarningLevel>
> @@ -38,6 +38,13 @@
>         <MapExports>true</MapExports>
>         <AdditionalOptions>/INTEGRITYCHECK %(AdditionalOptions)</AdditionalOptions>
>       </Link>
> +    <MessageCompile>
> +      <HeaderFilePath>..\..\include</HeaderFilePath>
> +      <GeneratedFilesBaseName>%(Filename)</GeneratedFilesBaseName>
> +      <RCFilePath>..\..\src\xenbus</RCFilePath>
> +      <GenerateKernelModeLoggingMacros>true</GenerateKernelModeLoggingMacros>
> +      <UseBaseNameOfInput>true</UseBaseNameOfInput>
> +    </MessageCompile>
>       <DriverSign>
>         <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
>       </DriverSign>
> @@ -68,6 +75,7 @@
>     <ItemGroup>
>       <FilesToPackage Include="$(TargetPath)" />
>       <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
> +    <FilesToPackage Include="..\..\src\xenbus\xenbus_etw.xml" />
>     </ItemGroup>
>     <ItemGroup>
>       <ClCompile Include="..\..\src\common\registry.c" />
> @@ -97,5 +105,8 @@
>     <ItemGroup>
>       <ResourceCompile Include="..\..\src\xenbus\xenbus.rc" />
>     </ItemGroup>
> +  <ItemGroup>
> +    <MessageCompile Include="..\..\src\xenbus\xenbus_etw.xml" />
> +  </ItemGroup>
>     <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
>   </Project>
> diff --git a/vs2022/xenbus/xenbus.vcxproj b/vs2022/xenbus/xenbus.vcxproj
> index ce0526f..1322d15 100644
> --- a/vs2022/xenbus/xenbus.vcxproj
> +++ b/vs2022/xenbus/xenbus.vcxproj
> @@ -20,7 +20,7 @@
>     <ItemDefinitionGroup>
>       <ClCompile>
>         <AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
> -      <PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
> +      <PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;ETW_HEADER="xenbus_etw.h";%(PreprocessorDefinitions)</PreprocessorDefinitions>
>         <IntrinsicFunctions>true</IntrinsicFunctions>
>         <AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;..\..\src\common;</AdditionalIncludeDirectories>
>         <WarningLevel>EnableAllWarnings</WarningLevel>
> @@ -38,6 +38,13 @@
>         <MapExports>true</MapExports>
>         <AdditionalOptions>/INTEGRITYCHECK %(AdditionalOptions)</AdditionalOptions>
>       </Link>
> +    <MessageCompile>
> +      <HeaderFilePath>..\..\include</HeaderFilePath>
> +      <GeneratedFilesBaseName>%(Filename)</GeneratedFilesBaseName>
> +      <RCFilePath>..\..\src\xenbus</RCFilePath>
> +      <GenerateKernelModeLoggingMacros>true</GenerateKernelModeLoggingMacros>
> +      <UseBaseNameOfInput>true</UseBaseNameOfInput>
> +    </MessageCompile>
>       <DriverSign>
>         <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
>       </DriverSign>
> @@ -60,6 +67,7 @@
>     <ItemGroup>
>       <FilesToPackage Include="$(TargetPath)" />
>       <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
> +    <FilesToPackage Include="..\..\src\xenbus\xenbus_etw.xml" />
>     </ItemGroup>
>     <ItemGroup>
>       <ClCompile Include="..\..\src\common\registry.c" />
> @@ -89,5 +97,8 @@
>     <ItemGroup>
>       <ResourceCompile Include="..\..\src\xenbus\xenbus.rc" />
>     </ItemGroup>
> +  <ItemGroup>
> +    <MessageCompile Include="..\..\src\xenbus\xenbus_etw.xml" />
> +  </ItemGroup>
>     <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
>   </Project>



From win-pv-devel-bounces@lists.xenproject.org Thu Feb 01 17:41:48 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 01 Feb 2024 17:41:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.674624.1049698 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rVb4O-0005V9-4a; Thu, 01 Feb 2024 17:41:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 674624.1049698; Thu, 01 Feb 2024 17:41: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 1rVb4O-0005V2-1z; Thu, 01 Feb 2024 17:41:48 +0000
Received: by outflank-mailman (input) for mailman id 674624;
 Thu, 01 Feb 2024 17:41: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=4Zkz=JK=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1rVb4N-0005Rl-OM
 for win-pv-devel@lists.xenproject.org; Thu, 01 Feb 2024 17:41:47 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2be80938-c129-11ee-8a43-1f161083a0e0;
 Thu, 01 Feb 2024 18:41:47 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-40e7065b7bdso10019855e9.3
 for <win-pv-devel@lists.xenproject.org>; Thu, 01 Feb 2024 09:41:47 -0800 (PST)
Received: from [10.95.167.50] (54-240-197-233.amazon.com. [54.240.197.233])
 by smtp.gmail.com with ESMTPSA id
 l2-20020a05600c4f0200b0040ebfbff33csm5123073wmq.36.2024.02.01.09.41.45
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 01 Feb 2024 09:41:46 -0800 (PST)
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: 2be80938-c129-11ee-8a43-1f161083a0e0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1706809306; x=1707414106; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=5Gbt/Pl0wEobOv0T0UaylooB/KXGQt7Vxy7AqjH/ffk=;
        b=AfHNMrxu34D5NVSqs72DntjQUQdVdXygdcILTqCt7dgt7qpvMrHFe85FAEUvK/mFrE
         Almt+E7pqKeFvvWIBsl8W2besf3/dq885WzD7kgxUfbD5x/JqOwxZmRrCIKK1s9zS27l
         k7ozrbhkoYitRJnnTHKJwwnUt54sElLiLf6M8NymH4K7gHB32GOxSBX+yR6GnJWn/98y
         6rDAnraaGIyi6FsDznkjSy8UhyZF/C9lgjJitEyo6E6of3YDsZQZisnWmI2Yczs+3EzS
         h4dMB2wF/zCYqwPB+NZNWtSruz4CBowjaBUoMIEI/aIF0rW+7v4l6aVYVzfbByPCx1Dc
         e0YQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1706809306; x=1707414106;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5Gbt/Pl0wEobOv0T0UaylooB/KXGQt7Vxy7AqjH/ffk=;
        b=saHuArGOFPDiSx7jEWiycxdMA/heZY9yWJDRruIW+/QfqSmFhzJzYGRqkeNO2WOQfJ
         aOUJwkbiZ5lD4khiGirLLHQNNM6P8cG3hd4YRMDJTFQsZZniptE3dEyQFZxajvbC6ldh
         kUm1+PffH3IazkUTbTd1MqzyR/1hXU99zKUbaRV//tiA7J9Kdjo+B95rcH9QKG7+rcYQ
         SPT+lxEzirWmY/njKG+jtaCVmQ6aXzuAFoumPP/pZdBcMBgWYkSCQHrjcsixsAiUkjZd
         fd1dyPdVn7yT2UHJQBGNeLz8Hv0W8+6HxE/2PN7/4r2DUmxvw29fL2pCRW6H1diGPtqZ
         fpZQ==
X-Gm-Message-State: AOJu0Yx04DdudfX25QV4dw/1rrSaB6kPzbJuqwd25pNyvBxrftI0iIAr
	QVFeekGKk9S+8p1Fhj8AAKomdkbMk6qJUDXzULo40zKBUoH7YkTd/gGAkVL+RT8=
X-Google-Smtp-Source: AGHT+IEQRox+HZ8aFQPsiDppgc9uZ+cSWREB3FyYRI/9Zkoe7Mo7RaHN78C1VS1aLQ10jXOwyTU+vw==
X-Received: by 2002:a05:600c:a3a5:b0:40f:afd6:b266 with SMTP id hn37-20020a05600ca3a500b0040fafd6b266mr2318033wmb.18.1706809306492;
        Thu, 01 Feb 2024 09:41:46 -0800 (PST)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <5850eca4-5321-4e81-9f9b-a6e1024ac408@xen.org>
Date: Thu, 1 Feb 2024 17:41:45 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Bump binding to REV_09000004
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20240124140655.1446-1-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20240124140655.1446-1-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 24/01/2024 14:06, Owen Smith wrote:
> Force XenNet to bind to the latest revision exposed by XenVif, so that
> XenNet will only bind to XenVif that uses UNPLUG(IsRequested, ...) to
> check that emulated devices are unplugged.
> While this change is not required for functionality, the change does prevent
> new versions of XenNet binding to older XenVif that, when restarting with
> the emulated device present, do not fail PdoStartDevice with
> STATUS_PNP_REBOOT_REQUIRED
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>

Acked-by: Paul Durrant <paul@xen.org>

> ---
>   src/xennet.inf | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/src/xennet.inf b/src/xennet.inf
> index b1d1105..dcf3e04 100644
> --- a/src/xennet.inf
> +++ b/src/xennet.inf
> @@ -58,9 +58,9 @@ xennet.sys
>   ; DisplayName		Section		DeviceID
>   ; -----------		-------		--------
>   
> -%XenNetName%		=XenNet_Inst,	XENVIF\VEN_@VENDOR_PREFIX@@VENDOR_DEVICE_ID@&DEV_NET&REV_09000003
> -%XenNetName%		=XenNet_Inst,	XENVIF\VEN_@VENDOR_PREFIX@0001&DEV_NET&REV_09000003
> -%XenNetName%		=XenNet_Inst,	XENVIF\VEN_@VENDOR_PREFIX@0002&DEV_NET&REV_09000003
> +%XenNetName%		=XenNet_Inst,	XENVIF\VEN_@VENDOR_PREFIX@@VENDOR_DEVICE_ID@&DEV_NET&REV_09000004
> +%XenNetName%		=XenNet_Inst,	XENVIF\VEN_@VENDOR_PREFIX@0001&DEV_NET&REV_09000004
> +%XenNetName%		=XenNet_Inst,	XENVIF\VEN_@VENDOR_PREFIX@0002&DEV_NET&REV_09000004
>   
>   [XenNet_Inst]
>   Characteristics=0x84



From win-pv-devel-bounces@lists.xenproject.org Thu Feb 01 17:48:52 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 01 Feb 2024 17:48:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.674634.1049702 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rVbBC-0006fO-Lh; Thu, 01 Feb 2024 17:48:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 674634.1049702; Thu, 01 Feb 2024 17:48: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 1rVbBC-0006fH-JA; Thu, 01 Feb 2024 17:48:50 +0000
Received: by outflank-mailman (input) for mailman id 674634;
 Thu, 01 Feb 2024 17:48:50 +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=4Zkz=JK=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1rVbBC-0006fB-6m
 for win-pv-devel@lists.xenproject.org; Thu, 01 Feb 2024 17:48:50 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 26cd1a75-c12a-11ee-98f5-efadbce2ee36;
 Thu, 01 Feb 2024 18:48:48 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-40e800461baso10722405e9.3
 for <win-pv-devel@lists.xenproject.org>; Thu, 01 Feb 2024 09:48:48 -0800 (PST)
Received: from [10.95.167.50] (54-240-197-233.amazon.com. [54.240.197.233])
 by smtp.gmail.com with ESMTPSA id
 e23-20020a05600c219700b0040ee2460966sm5009199wme.24.2024.02.01.09.48.46
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 01 Feb 2024 09:48:47 -0800 (PST)
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: 26cd1a75-c12a-11ee-98f5-efadbce2ee36
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1706809727; x=1707414527; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=mRqAjcygPgd/T9FljZC9N9FecuHtHBQPos+KZnWiG4g=;
        b=aXWqzTsYtY3KktHjB+pIugqzp9fktBSJk1C9NC14KdUvGTKhHE+GLSwLQ0rdaYSApg
         Svp9HnaCJazp6a0EChAsjG2AYJ+CUxiVQ4tdJmqH2M7vG3fvvyiKs1YoLkJ+agrJRpDc
         vId1EXPGZEytL2/ywPCrqOJAXs3A0ZPvI4nSZ+gbXW12lelbKiMETgIFyIIwm0aobA/o
         HXfJKdS+cISC+EY/gIvr8RgrAp7j709+hseoq4aXaNMbSmPyCMcg+nZ2PK66dU7Fhj3i
         kNSUcxV3nsTiEQVs/w074AeWkMPF9e/Kx5V3c0NPQ7fKT8Vh6I9N3LdON3w3+8ib4nzV
         p1aQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1706809727; x=1707414527;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mRqAjcygPgd/T9FljZC9N9FecuHtHBQPos+KZnWiG4g=;
        b=vDrRjxGpBlxmJvq0cvwZRAK2X6xCrI4mCk4SlTGMB5DFeCvqteswcKQLt2GSZfS3gM
         5xwQIb3U+AkYYK4ei2Hjhc7GDjmy7LqlGWCeSd9g6HV9yUEjFRKWmOtVTGuVxuSIBgcq
         EhPMOAMaavPeDiPx5RCozURdI9qAbuD1mlrV90fAfpbhmvXReumhXBfH99jW39ht19VB
         UD9CfApNgoFIO2DKCgPA+d17k/0ARKWFac0HmNJr8nZUtiTwNvcYfND6IKFadCyNKzIM
         jNe1NdTfpZ9l/bGL0unoeFijhrhmCPe+VNILyYTxpBgvEu/cjYujnQzWjO7wFxFesz6N
         7a3w==
X-Gm-Message-State: AOJu0Yz/bg/aNFPWBFO+om0gouMciomJt1k+Ks7M8mzXQmzZE7A/XV01
	09uwmp80QMbywrp9mvVHoCtGgo80ItQyaGjIAmvpbLnO1iG8TiN8jZ24jQ7NSLs=
X-Google-Smtp-Source: AGHT+IHmSX6Dk5hZxXmR5yoJm6RcCjvWVD/SadyYx/goMPjJ1wMPRxbtPJgQboVIDnZobBnBuMaGpw==
X-Received: by 2002:a05:600c:4ed1:b0:40e:f9f4:eed2 with SMTP id g17-20020a05600c4ed100b0040ef9f4eed2mr4454826wmq.28.1706809727407;
        Thu, 01 Feb 2024 09:48:47 -0800 (PST)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <f0f59aab-5113-415d-b1b8-9b1a558b1c5b@xen.org>
Date: Thu, 1 Feb 2024 17:48:45 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] XenAgent: Advertise all features in 1 location
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20240131081236.1837-1-owen.smith@cloud.com>
 <20240131081236.1837-2-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20240131081236.1837-2-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 31/01/2024 08:12, Owen Smith wrote:> Signed-off-by: Owen Smith 
<owen.smith@cloud.com>

Can we have *some* text to justify the change?

   Paul

> ---
>   src/xenagent/xenifacedevice.cpp | 32 +++++++++++++++++++++-----------
>   src/xenagent/xenifacedevice.h   |  1 +
>   2 files changed, 22 insertions(+), 11 deletions(-)
> 
> diff --git a/src/xenagent/xenifacedevice.cpp b/src/xenagent/xenifacedevice.cpp
> index 69a584b..9ed1aa7 100644
> --- a/src/xenagent/xenifacedevice.cpp
> +++ b/src/xenagent/xenifacedevice.cpp
> @@ -213,6 +213,8 @@ CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent* agent) : CDeviceList(GUID_IN
>       if (m_agent->ConvDevicePresent())
>           StartSlateModeWatch(device);
>   
> +    AdvertiseFeatures(device, true);
> +
>       SetXenTime(device);
>   }
>   
> @@ -228,6 +230,8 @@ CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent* agent) : CDeviceList(GUID_IN
>           device->SuspendDeregister(m_ctxt_suspend);
>       m_ctxt_suspend = NULL;
>   
> +    AdvertiseFeatures(device, false);
> +
>       if (m_agent->ConvDevicePresent())
>           StopSlateModeWatch(device);
>   
> @@ -242,6 +246,8 @@ CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent* agent) : CDeviceList(GUID_IN
>       if (dev != GetFirstDevice())
>           return;
>   
> +    AdvertiseFeatures(device, false);
> +
>       if (m_agent->ConvDevicePresent())
>           StopSlateModeWatch(device);
>   
> @@ -260,6 +266,8 @@ CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent* agent) : CDeviceList(GUID_IN
>   
>       if (m_agent->ConvDevicePresent())
>           StartSlateModeWatch(device);
> +
> +    AdvertiseFeatures(device, true);
>   }
>   
>   void CXenIfaceDeviceList::Log(const char* message)
> @@ -381,6 +389,8 @@ void CXenIfaceDeviceList::CheckSuspend()
>       if (m_agent->ConvDevicePresent())
>           StartSlateModeWatch(device);
>   
> +    AdvertiseFeatures(device, true);
> +
>       m_count = count;
>   }
>   
> @@ -425,11 +435,6 @@ void CXenIfaceDeviceList::StartShutdownWatch(CXenIfaceDevice* device)
>           return;
>   
>       device->StoreAddWatch("control/shutdown", m_evt_shutdown, &m_ctxt_shutdown);
> -
> -    device->StoreWrite("control/feature-poweroff", "1");
> -    device->StoreWrite("control/feature-reboot", "1");
> -    device->StoreWrite("control/feature-s3", "1");
> -    device->StoreWrite("control/feature-s4", "1");
>   }
>   
>   void CXenIfaceDeviceList::StopShutdownWatch(CXenIfaceDevice* device)
> @@ -437,11 +442,6 @@ void CXenIfaceDeviceList::StopShutdownWatch(CXenIfaceDevice* device)
>       if (!m_ctxt_shutdown)
>           return;
>   
> -    device->StoreWrite("control/feature-poweroff", "");
> -    device->StoreWrite("control/feature-reboot", "");
> -    device->StoreWrite("control/feature-s3", "");
> -    device->StoreWrite("control/feature-s4", "");
> -
>       device->StoreRemoveWatch(m_ctxt_shutdown);
>       m_ctxt_shutdown = NULL;
>   }
> @@ -452,7 +452,6 @@ void CXenIfaceDeviceList::StartSlateModeWatch(CXenIfaceDevice* device)
>           return;
>   
>       device->StoreAddWatch("control/laptop-slate-mode", m_evt_slate_mode, &m_ctxt_slate_mode);
> -    device->StoreWrite("control/feature-laptop-slate-mode", "1");
>   }
>   
>   void CXenIfaceDeviceList::StopSlateModeWatch(CXenIfaceDevice* device)
> @@ -466,6 +465,17 @@ void CXenIfaceDeviceList::StopSlateModeWatch(CXenIfaceDevice* device)
>       m_ctxt_slate_mode = NULL;
>   }
>   
> +void CXenIfaceDeviceList::AdvertiseFeatures(CXenIfaceDevice* device, bool add)
> +{
> +    const char* value = add ? "1" : "";
> +
> +    device->StoreWrite("control/feature-poweroff", value);
> +    device->StoreWrite("control/feature-reboot", value);
> +    device->StoreWrite("control/feature-s3", value);
> +    device->StoreWrite("control/feature-s4", value);
> +    device->StoreWrite("control/feature-laptop-slate-mode", value);
> +}
> +
>   void CXenIfaceDeviceList::AcquireShutdownPrivilege()
>   {
>       HANDLE          token;
> diff --git a/src/xenagent/xenifacedevice.h b/src/xenagent/xenifacedevice.h
> index d85e469..29ac100 100644
> --- a/src/xenagent/xenifacedevice.h
> +++ b/src/xenagent/xenifacedevice.h
> @@ -94,6 +94,7 @@ private:
>       void StopShutdownWatch(CXenIfaceDevice* device);
>       void StartSlateModeWatch(CXenIfaceDevice* device);
>       void StopSlateModeWatch(CXenIfaceDevice* device);
> +    void AdvertiseFeatures(CXenIfaceDevice* device, bool add);
>       void AcquireShutdownPrivilege();
>       void SetXenTime(CXenIfaceDevice* device);
>   



From win-pv-devel-bounces@lists.xenproject.org Thu Feb 01 17:51:37 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 01 Feb 2024 17:51:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.674642.1049706 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rVbDs-0008UU-UX; Thu, 01 Feb 2024 17:51:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 674642.1049706; Thu, 01 Feb 2024 17:51: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 1rVbDs-0008UN-Rc; Thu, 01 Feb 2024 17:51:36 +0000
Received: by outflank-mailman (input) for mailman id 674642;
 Thu, 01 Feb 2024 17:51: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=4Zkz=JK=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1rVbDr-0008UH-Fz
 for win-pv-devel@lists.xenproject.org; Thu, 01 Feb 2024 17:51:35 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 89ebc06d-c12a-11ee-8a43-1f161083a0e0;
 Thu, 01 Feb 2024 18:51:34 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-40f033c2e30so10995515e9.0
 for <win-pv-devel@lists.xenproject.org>; Thu, 01 Feb 2024 09:51:34 -0800 (PST)
Received: from [10.95.167.50] (54-240-197-233.amazon.com. [54.240.197.233])
 by smtp.gmail.com with ESMTPSA id
 z21-20020a1c4c15000000b0040fb783ad93sm192234wmf.48.2024.02.01.09.51.33
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 01 Feb 2024 09:51:33 -0800 (PST)
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: 89ebc06d-c12a-11ee-8a43-1f161083a0e0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1706809894; x=1707414694; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=mEutnN2jnhkf8uMEVgONFFcpT5iFoY+qTMS7rlWyzTU=;
        b=mFFW0kMNwtzdm37+pyGw9nhSQeRPmLu/qV4aGGRhBam3WpTQeftharrzJfNldJNhEL
         IsynUXRoR34i3P+nBXSYwRTU5GClQZbSFKnx0kXmI1Ug85DUcohJ5RvmE4r81fNCn6gY
         AHgbFx2yZEdz8lUTTKq78TJZgKmG6XMPMwbegpewjOBSGnLpEQBHjpNYaMsJQ81GqnAh
         Mlr7vQtn4UZakzQe8gjly+SxYbphq0iSdlCldPE893/QzXX58IxitVItbCLaX9qo+sM5
         BuS3GQHrNb6iCjKL7R12Jr68OPBZ7wyowaYyz/FkaVDzk5aKrXn3MwK+sDJHMt+of31E
         nD+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1706809894; x=1707414694;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mEutnN2jnhkf8uMEVgONFFcpT5iFoY+qTMS7rlWyzTU=;
        b=PCTDzJMrmzmEawRgSdhHaXqIKoPY5+nN5K5yaUlhHAT+Uhqp+c/gmY1BtMCc7c4dEU
         hymZFVCqMFl3wb2bp4njLCIsllRJN6rOerkfF9xT2zON6fGyO9POgWVmcNeQjQXakH2g
         fUqANPqR7y8FI1Ixxf5zqHHXoqxC2FaHXJsU8CXfgh40PH1vXch9a82e9EtSEh9gqnhG
         Kz8RbIj9iNp+e/Ox1OEx5lGe+LbynpatDcLA56dH5OOU0UldYvXNEujZX7k8gb3WHI/8
         JmNqOt5ZmsAQ95a+4KQ005JswoHMPr7w7ntdgBSqou/SPAGROQ1crZGw8eM0vsnqM7Ep
         ocsQ==
X-Gm-Message-State: AOJu0YxXF6wNLi4G4lDLrzbSchOZpFVUZZkX5ReYyJkNwrZXGZBljgFq
	tclGUtkyMn+YTJIejd1LwLAMM9ecAcWFwuJ+DcvUbbBg8RGVi9eS/cgbCp4Qi2k=
X-Google-Smtp-Source: AGHT+IF6HSdfXr1d0oBeg2BIRSq/gwgWTDd2xXOpwqk6HiXCtalH0ngVGBEXKZAVxfrprWWM/JKX9g==
X-Received: by 2002:a05:600c:1c22:b0:40e:fa6b:f355 with SMTP id j34-20020a05600c1c2200b0040efa6bf355mr4367631wms.41.1706809893559;
        Thu, 01 Feb 2024 09:51:33 -0800 (PST)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <50152c95-376d-4ada-a27a-6c32f98c99ef@xen.org>
Date: Thu, 1 Feb 2024 17:51:31 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/4] XenAgent: Add retry for system shutdown/restart
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20240131081236.1837-1-owen.smith@cloud.com>
 <20240131081236.1837-3-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20240131081236.1837-3-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 31/01/2024 08:12, Owen Smith wrote:
> In some situations, InitiateSystemShutdownEx can fail and not trigger the
> shutdown/restart correctly, leading to toolstack failing the shutdown/restart
> operation. Add a simple retry mechanism to attempt to trigger the
> shutdown/restart several times before giving up.
> 
> Suggested-by: Martin Harvey <martin.harvey@citrix.com>
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/xenagent/service.cpp        | 13 ++++-
>   src/xenagent/xenifacedevice.cpp | 86 +++++++++++++++++++++++++--------
>   src/xenagent/xenifacedevice.h   |  5 ++
>   3 files changed, 83 insertions(+), 21 deletions(-)
> 
> diff --git a/src/xenagent/service.cpp b/src/xenagent/service.cpp
> index 535d761..ec32ecc 100644
> --- a/src/xenagent/service.cpp
> +++ b/src/xenagent/service.cpp
> @@ -202,8 +202,13 @@ bool CXenAgent::ServiceMainLoop()
>       HANDLE  events[] = { m_svc_stop,
>                            m_xeniface.m_evt_shutdown,
>                            m_xeniface.m_evt_suspend,
> -                         m_xeniface.m_evt_slate_mode };
> -    DWORD   wait = WaitForMultipleObjectsEx(4, events, FALSE, timeout, TRUE);
> +                         m_xeniface.m_evt_slate_mode,
> +                         m_xeniface.m_evt_shutdown_retry };
> +    DWORD   wait = WaitForMultipleObjectsEx(sizeof(events) / sizeof(events[0]),

ARRAYSIZE() or std::size() perhaps? I'll adjust. Rest of it looks fine.

Acked-by: Paul Durrant <paul@xen.org>

> +                                            events,
> +                                            FALSE,
> +                                            timeout,
> +                                            TRUE);
>   
>       switch (wait) {
>       case WAIT_OBJECT_0:
> @@ -229,6 +234,10 @@ bool CXenAgent::ServiceMainLoop()
>   
>           return true; // continue loop
>       }
> +    case WAIT_OBJECT_0+4:
> +        m_xeniface.CheckShutdownRetry();
> +        return true; // continue loop
> +
>       case WAIT_TIMEOUT:
>           m_xeniface.CheckXenTime();
>           __fallthrough;
> diff --git a/src/xenagent/xenifacedevice.cpp b/src/xenagent/xenifacedevice.cpp
> index 9ed1aa7..223d6e9 100644
> --- a/src/xenagent/xenifacedevice.cpp
> +++ b/src/xenagent/xenifacedevice.cpp
> @@ -40,6 +40,9 @@
>   #include "xeniface_ioctls.h"
>   #include "messages.h"
>   
> +#define DEFAULT_SHUTDOWN_RETRIES        5
> +#define DEFAULT_SHUTDOWN_RETRY_TIME     60
> +
>   CXenIfaceDevice::CXenIfaceDevice(const wchar_t* path) : CDevice(path)
>   {}
>   
> @@ -178,16 +181,20 @@ CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent* agent) : CDeviceList(GUID_IN
>       m_agent(agent),
>       m_ctxt_suspend(NULL),
>       m_ctxt_shutdown(NULL),
> -    m_ctxt_slate_mode(NULL)
> +    m_ctxt_slate_mode(NULL),
> +    m_shutdown_reboot(false),
> +    m_shutdown_retry(0)
>   {
>       m_evt_shutdown = CreateEvent(NULL, TRUE, FALSE, NULL);
>       m_evt_suspend = CreateEvent(NULL, TRUE, FALSE, NULL);
>       m_evt_slate_mode = CreateEvent(NULL, TRUE, FALSE, NULL);
> +    m_evt_shutdown_retry = CreateWaitableTimer(NULL, FALSE, NULL);
>       m_count = 0;
>   }
>   
>   /*virtual*/ CXenIfaceDeviceList::~CXenIfaceDeviceList()
>   {
> +    CloseHandle(m_evt_shutdown_retry);
>       CloseHandle(m_evt_slate_mode);
>       CloseHandle(m_evt_suspend);
>       CloseHandle(m_evt_shutdown);
> @@ -301,29 +308,21 @@ bool CXenIfaceDeviceList::CheckShutdown()
>           m_agent->EventLog(EVENT_XENUSER_POWEROFF);
>           LogIfRebootPending();
>   
> -        AcquireShutdownPrivilege();
> -#pragma warning(suppress:28159) /* Consider using a design alternative... Rearchitect to avoid Reboot */
> -        if (!InitiateSystemShutdownEx(NULL, NULL, 0, TRUE, FALSE,
> -                                      SHTDN_REASON_MAJOR_OTHER |
> -                                      SHTDN_REASON_MINOR_ENVIRONMENT |
> -                                      SHTDN_REASON_FLAG_PLANNED)) {
> -            CXenAgent::Log("InitiateSystemShutdownEx failed %08x\n", GetLastError());
> -        }
> -        return true;
> +        m_shutdown_retry = DEFAULT_SHUTDOWN_RETRIES;
> +        m_shutdown_reboot = false;
> +
> +        RequestSystemShutdown();
> +        return false; // keep service running, to retry shutdown if needed.
>       } else if (type == "reboot") {
>           device->StoreWrite("control/shutdown", "");
>           m_agent->EventLog(EVENT_XENUSER_REBOOT);
>           LogIfRebootPending();
>   
> -        AcquireShutdownPrivilege();
> -#pragma warning(suppress:28159) /* Consider using a design alternative... Rearchitect to avoid Reboot */
> -        if (!InitiateSystemShutdownEx(NULL, NULL, 0, TRUE, TRUE,
> -                                      SHTDN_REASON_MAJOR_OTHER |
> -                                      SHTDN_REASON_MINOR_ENVIRONMENT |
> -                                      SHTDN_REASON_FLAG_PLANNED)) {
> -            CXenAgent::Log("InitiateSystemShutdownEx failed %08x\n", GetLastError());
> -        }
> -        return true;
> +        m_shutdown_retry = DEFAULT_SHUTDOWN_RETRIES;
> +        m_shutdown_reboot = true;
> +
> +        RequestSystemShutdown();
> +        return false; // keep service running, to retry shutdown if needed.
>       } else if (type == "s4") {
>           device->StoreWrite("control/shutdown", "");
>           m_agent->EventLog(EVENT_XENUSER_S4);
> @@ -347,6 +346,12 @@ bool CXenIfaceDeviceList::CheckShutdown()
>       return false;
>   }
>   
> +void CXenIfaceDeviceList::CheckShutdownRetry()
> +{
> +    CXenAgent::Log("Previous shutdown attempt failed, retrying...\n");
> +    RequestSystemShutdown();
> +}
> +
>   void CXenIfaceDeviceList::CheckXenTime()
>   {
>       CCritSec crit(&m_crit);
> @@ -476,6 +481,49 @@ void CXenIfaceDeviceList::AdvertiseFeatures(CXenIfaceDevice* device, bool add)
>       device->StoreWrite("control/feature-laptop-slate-mode", value);
>   }
>   
> +#define TIME_US(_us)            ((_us) * 10ll)
> +#define TIME_MS(_ms)            (TIME_US((_ms) * 1000ll))
> +#define TIME_S(_s)              (TIME_MS((_s) * 1000ll))
> +#define TIME_RELATIVE(_t)       (-(_t))
> +
> +void CXenIfaceDeviceList::RequestSystemShutdown()
> +{
> +    LARGE_INTEGER dueTime;
> +
> +    AcquireShutdownPrivilege();
> +
> +#pragma warning(suppress:28159) /* Consider using a design alternative... Rearchitect to avoid Reboot */
> +    if (!InitiateSystemShutdownEx(NULL,
> +                                  NULL,
> +                                  0,
> +                                  TRUE,
> +                                  (m_shutdown_reboot ? TRUE : FALSE),
> +                                  SHTDN_REASON_MAJOR_OTHER |
> +                                  SHTDN_REASON_MINOR_ENVIRONMENT |
> +                                  SHTDN_REASON_FLAG_PLANNED)) {
> +        CXenAgent::Log("InitiateSystemShutdownEx failed %08x\n", GetLastError());
> +    }
> +
> +    if (m_shutdown_retry == 0) {
> +        CXenAgent::Log("System not shutdown after several tries, giving up.\n");
> +        return;
> +    }
> +
> +    m_shutdown_retry--;
> +
> +    // Negative (i.e. relative) number of minutes to wait in 100ns intervals.
> +    dueTime.QuadPart = TIME_RELATIVE(TIME_S(DEFAULT_SHUTDOWN_RETRY_TIME));
> +
> +    if (!SetWaitableTimer(m_evt_shutdown_retry,
> +                          &dueTime,
> +                          0,
> +                          NULL,
> +                          NULL,
> +                          FALSE)) {
> +        CXenAgent::Log("SetWaitableTimer failed %08x\n", GetLastError());
> +    }
> +}
> +
>   void CXenIfaceDeviceList::AcquireShutdownPrivilege()
>   {
>       HANDLE          token;
> diff --git a/src/xenagent/xenifacedevice.h b/src/xenagent/xenifacedevice.h
> index 29ac100..5a1aecf 100644
> --- a/src/xenagent/xenifacedevice.h
> +++ b/src/xenagent/xenifacedevice.h
> @@ -81,9 +81,11 @@ public:
>       HANDLE  m_evt_shutdown;
>       HANDLE  m_evt_suspend;
>       HANDLE  m_evt_slate_mode;
> +    HANDLE  m_evt_shutdown_retry;
>   
>       void Log(const char* message);
>       bool CheckShutdown();
> +    void CheckShutdownRetry();
>       void CheckXenTime();
>       void CheckSuspend();
>       bool CheckSlateMode(std::string& mode);
> @@ -95,6 +97,7 @@ private:
>       void StartSlateModeWatch(CXenIfaceDevice* device);
>       void StopSlateModeWatch(CXenIfaceDevice* device);
>       void AdvertiseFeatures(CXenIfaceDevice* device, bool add);
> +    void RequestSystemShutdown();
>       void AcquireShutdownPrivilege();
>       void SetXenTime(CXenIfaceDevice* device);
>   
> @@ -104,6 +107,8 @@ private:
>       void*       m_ctxt_suspend;
>       void*       m_ctxt_shutdown;
>       void*       m_ctxt_slate_mode;
> +    bool        m_shutdown_reboot;
> +    DWORD       m_shutdown_retry;
>   };
>   
>   #endif



From win-pv-devel-bounces@lists.xenproject.org Thu Feb 01 17:57:42 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 01 Feb 2024 17:57:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.674648.1049710 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rVbJl-0000Rh-8z; Thu, 01 Feb 2024 17:57:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 674648.1049710; Thu, 01 Feb 2024 17:57: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 1rVbJl-0000Ra-6G; Thu, 01 Feb 2024 17:57:41 +0000
Received: by outflank-mailman (input) for mailman id 674648;
 Thu, 01 Feb 2024 17:57:40 +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=4Zkz=JK=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1rVbJj-0000QF-TI
 for win-pv-devel@lists.xenproject.org; Thu, 01 Feb 2024 17:57:39 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 625833be-c12b-11ee-98f5-efadbce2ee36;
 Thu, 01 Feb 2024 18:57:37 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-40eacb4bfa0so10478205e9.1
 for <win-pv-devel@lists.xenproject.org>; Thu, 01 Feb 2024 09:57:37 -0800 (PST)
Received: from [10.95.167.50] (54-240-197-233.amazon.com. [54.240.197.233])
 by smtp.gmail.com with ESMTPSA id
 n13-20020a5d588d000000b0033ae9e7f6b6sm6596wrf.111.2024.02.01.09.57.36
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 01 Feb 2024 09:57:36 -0800 (PST)
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: 625833be-c12b-11ee-98f5-efadbce2ee36
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1706810257; x=1707415057; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=QgV4gcuV6VRRkz+kqJW9QfpQHzcaJ/CJnp6fmMQaD4c=;
        b=UVGTcm+3+CflqKHMOn9okoChx6cgIrWIFJ5OtFhiJN2z+WV0p7iA4DwOahouh78na1
         XfIHSo/rxLvOM+/tpA4aLsknEMbDRdhf5S1iuNaTQK3Cd9asma6mNdXOAUyudidSajcL
         /6UPF66JpctrqPWBAwpdg/a9IoG8GqSfYw9M0nJee17amAnsHeT7ThS7dKxiGB1f8K/8
         C0ER7DvgY38hvlzQlxlGs7qGFQ5nSzHHwH6YhdxNh+Npf0Ewwg4UhAqeUqOP6vtDOEVS
         edvnVjyrOZqc0LV7w4JyrHJxRx4ZsJXdWo4z/JxK/z1yevgi8jOaTxfJFhPFhz2sAVc0
         E2EA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1706810257; x=1707415057;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QgV4gcuV6VRRkz+kqJW9QfpQHzcaJ/CJnp6fmMQaD4c=;
        b=PJM6UipradgZdMc3y0LblYtK4I9AymLT3UFQS610l/LcWVBXahxpsbFGemz2yEWPiW
         of1Sk5gGSPCsq7lzRGg/KOYkEE8QHeUfGzvr9uXSUDWyaHha1aBPZS4IFyraRlCdnK1k
         WHpCMYltUHpXw21O/dtZmdSaD3iK1uFNobiFwnv5eNMPpNpbWBUH45r9hrF6rTsTNeX5
         tcZxk/6zR1XCPEdTvymvOEQlwQWXu9+qEI0qTJk6Wa1xwKidjS3ZE3+KxK+Gwu+mEuRq
         n1tZ8We1KFwreNkF2im1Xryzlxi08qtp07s6dCToxf76nK21P0WhfIfa02a7I2YMK0kw
         OT2g==
X-Gm-Message-State: AOJu0Yw113NKFV9J/3WMjLfuFE2wCYwLuhi99StC6sWTWAssvyS8hEtS
	XIVVN3VBFbon0zk0+IFCT8TJk0AWffNP9yzpLKhRCdiJ/23DXxZDptSlp8h7t6o=
X-Google-Smtp-Source: AGHT+IG/MxkYHUjcqZrMYbVHpduV25NTu4QkfmM0mbjsdy2oOvwoIpLwXAT2ZnjcdfQSONcqEe5fEg==
X-Received: by 2002:a05:600c:35cd:b0:40f:b5d2:1b17 with SMTP id r13-20020a05600c35cd00b0040fb5d21b17mr2413547wmq.12.1706810256667;
        Thu, 01 Feb 2024 09:57:36 -0800 (PST)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <f3360fcf-1ab3-46cd-9101-fb0045ad7d48@xen.org>
Date: Thu, 1 Feb 2024 17:57:34 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] XenAgent: Add options to time sync code
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20240131081236.1837-1-owen.smith@cloud.com>
 <20240131081236.1837-4-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20240131081236.1837-4-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 31/01/2024 08:12, Owen Smith wrote:
> Adds registry overrided to control how and when XenAgent will update the
> system time.
> "TimeSyncMode" is a bit-field with the following options:
>    0b0000 = do not update system time
>    0b0001 = update after resume from suspend
>    0b0010 = update periodically
>    0b0100 = update when xeniface device detected (including on service start)
>    Default is 0b0001 (after resume).
> 
> "TimeSyncInterval" is the number of minutes between attempts to update
>    system time. This only applies if "TimeSyncMode" contains 0b0010
>    Default is 30 minutes.
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/xenagent/service.cpp        |   6 +-
>   src/xenagent/xenifacedevice.cpp | 144 +++++++++++++++++++++++++++++---
>   src/xenagent/xenifacedevice.h   |  15 +++-
>   3 files changed, 149 insertions(+), 16 deletions(-)
> 
> diff --git a/src/xenagent/service.cpp b/src/xenagent/service.cpp
> index ec32ecc..3e30bb0 100644
> --- a/src/xenagent/service.cpp
> +++ b/src/xenagent/service.cpp
> @@ -198,7 +198,7 @@ void CXenAgent::OnPowerEvent(DWORD evt, LPVOID data)
>   
>   bool CXenAgent::ServiceMainLoop()
>   {
> -    DWORD   timeout = 30 * 60 * 1000;
> +    DWORD   timeout = 1 * 60 * 1000;
>       HANDLE  events[] = { m_svc_stop,
>                            m_xeniface.m_evt_shutdown,
>                            m_xeniface.m_evt_suspend,
> @@ -221,7 +221,7 @@ bool CXenAgent::ServiceMainLoop()
>   
>       case WAIT_OBJECT_0+2:
>           ResetEvent(m_xeniface.m_evt_suspend);
> -        m_xeniface.CheckXenTime();
> +        m_xeniface.CheckXenTime(XENIFACE_TIMESYNC_RESUME);
>           m_xeniface.CheckSuspend();
>           return true; // continue loop
>   
> @@ -239,7 +239,7 @@ bool CXenAgent::ServiceMainLoop()
>           return true; // continue loop
>   
>       case WAIT_TIMEOUT:
> -        m_xeniface.CheckXenTime();
> +        m_xeniface.CheckXenTime(XENIFACE_TIMESYNC_PERIODIC);
>           __fallthrough;
>       case WAIT_IO_COMPLETION:
>           m_xeniface.CheckSuspend();
> diff --git a/src/xenagent/xenifacedevice.cpp b/src/xenagent/xenifacedevice.cpp
> index 223d6e9..ffada25 100644
> --- a/src/xenagent/xenifacedevice.cpp
> +++ b/src/xenagent/xenifacedevice.cpp
> @@ -43,6 +43,13 @@
>   #define DEFAULT_SHUTDOWN_RETRIES        5
>   #define DEFAULT_SHUTDOWN_RETRY_TIME     60
>   
> +#define XENAGENT_TIMESYNC_INTERVAL_DEFAULT  30
> +
> +#define XENAGENT_SERVICE_KEY            "SYSTEM\\CurrentControlSet\\Services\\xenagent"
> +#define XENAGENT_TIMESYNC_MODE          "TimeSyncMode"
> +#define XENAGENT_TIMESYNC_INTERVAL      "TimeSyncInterval"
> +#define XENAGENT_TIMESYNC_LAST          "LastSyncFiletime"
> +
>   CXenIfaceDevice::CXenIfaceDevice(const wchar_t* path) : CDevice(path)
>   {}
>   
> @@ -222,7 +229,7 @@ CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent* agent) : CDeviceList(GUID_IN
>   
>       AdvertiseFeatures(device, true);
>   
> -    SetXenTime(device);
> +    SetXenTime(device, XENIFACE_TIMESYNC_ADDED);
>   }
>   
>   /*virtual*/ void CXenIfaceDeviceList::OnDeviceRemoved(CDevice* dev)
> @@ -352,7 +359,7 @@ void CXenIfaceDeviceList::CheckShutdownRetry()
>       RequestSystemShutdown();
>   }
>   
> -void CXenIfaceDeviceList::CheckXenTime()
> +void CXenIfaceDeviceList::CheckXenTime(DWORD reason)
>   {
>       CCritSec crit(&m_crit);
>       CXenIfaceDevice* device = (CXenIfaceDevice*)GetFirstDevice();
> @@ -360,7 +367,7 @@ void CXenIfaceDeviceList::CheckXenTime()
>       if (device == NULL)
>           return;
>   
> -    SetXenTime(device);
> +    SetXenTime(device, reason);
>   }
>   
>   void CXenIfaceDeviceList::CheckSuspend()
> @@ -543,28 +550,30 @@ void CXenIfaceDeviceList::AcquireShutdownPrivilege()
>       CloseHandle(token);
>   }
>   
> -void CXenIfaceDeviceList::SetXenTime(CXenIfaceDevice* device)
> +void CXenIfaceDeviceList::SetXenTime(CXenIfaceDevice* device, DWORD reason)
>   {
> -    bool local;
> +    XENIFACE_SHARED_TIME now;
>   
> -    FILETIME now = { 0 };
> -    if (!device->SharedInfoGetTime(&now, &local))
> +    if (!device->SharedInfoGetTime(&now.time, &now.local))
> +        return;
> +
> +    if (!CheckXenTimeEnabled(reason, &now))
>           return;
>   
>       SYSTEMTIME cur = { 0 };
> -    if (local)
> +    if (now.local)
>           GetLocalTime(&cur);
>       else
>           GetSystemTime(&cur);
>   
>       SYSTEMTIME sys = { 0 };
> -    if (!FileTimeToSystemTime(&now, &sys))
> +    if (!FileTimeToSystemTime(&now.time, &sys))
>           return;
>   
>       if (memcmp(&cur, &sys, sizeof(SYSTEMTIME)) == 0)
>           return;
>   
> -    CXenAgent::Log("RTC is in %s\n", local ? "local time" : "UTC");
> +    CXenAgent::Log("RTC is in %s\n", now.local ? "local time" : "UTC");
>       CXenAgent::Log("Time Now = %d/%d/%d %d:%02d:%02d.%d\n",
>                      cur.wYear, cur.wMonth, cur.wDay,
>                      cur.wHour, cur.wMinute, cur.wSecond, cur.wMilliseconds);
> @@ -572,8 +581,121 @@ void CXenIfaceDeviceList::SetXenTime(CXenIfaceDevice* device)
>                      sys.wYear, sys.wMonth, sys.wDay,
>                      sys.wHour, sys.wMinute, sys.wSecond, sys.wMilliseconds);
>   
> -    if (local)
> +    if (now.local)
>           SetLocalTime(&sys);
>       else
>           SetSystemTime(&sys);
>   }
> +
> +static FORCEINLINE LONG64
> +TimeDiff(FILETIME* old, FILETIME* now)
> +{
> +    ULONG64     ftOld;
> +    ULONG64     ftNow;
> +    LONG64      ftDiff;
> +
> +    ftOld = ((ULONG64)old->dwHighDateTime) << 32 |
> +             (ULONG64)old->dwLowDateTime;
> +
> +    ftNow = ((ULONG64)now->dwHighDateTime) << 32 |
> +             (ULONG64)now->dwLowDateTime;
> +
> +    ftDiff = (LONG64)(ftNow - ftOld);
> +    //From 100NS to whole minutes.
> +    ftDiff /= (10 * 1000 * 1000 * 60);
> +    return ftDiff;
> +}
> +
> +bool CXenIfaceDeviceList::CheckXenTimeEnabled(DWORD reason, PXENIFACE_SHARED_TIME now)
> +{
> +    HKEY                    key;
> +    LONG                    lResult;
> +    DWORD                   type;
> +    DWORD                   size;
> +    DWORD                   mode;
> +    bool                    enabled;
> +
> +    enabled = (reason == XENIFACE_TIMESYNC_RESUME);
> +
> +    lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
> +                           XENAGENT_SERVICE_KEY,
> +                           0,
> +                           KEY_READ,
> +                           &key);
> +    if (lResult != ERROR_SUCCESS)
> +        goto fail1;
> +
> +    size = sizeof(DWORD);
> +    lResult = RegQueryValueEx(key,
> +                              XENAGENT_TIMESYNC_MODE,
> +                              NULL,
> +                              &type,
> +                              (LPBYTE)&mode,
> +                              &size);
> +    if (lResult != ERROR_SUCCESS)
> +        goto fail2;
> +
> +    if (type != REG_DWORD ||
> +        size != sizeof(DWORD))
> +        goto fail3;
> +
> +    // mode is bit-flags, test for reason's bit
> +    enabled = (mode & reason) != 0;
> +
> +    if (reason == XENIFACE_TIMESYNC_PERIODIC && enabled) {
> +        DWORD                   interval;
> +        XENIFACE_SHARED_TIME    last;
> +
> +        // check interval has expired
> +        size = sizeof(DWORD);
> +        lResult = RegQueryValueEx(key,
> +                                  XENAGENT_TIMESYNC_INTERVAL,
> +                                  NULL,
> +                                  &type,
> +                                  (LPBYTE)&interval,
> +                                  &size);
> +        if (lResult != ERROR_SUCCESS ||
> +            type != REG_DWORD ||
> +            size != sizeof(DWORD))
> +            interval = XENAGENT_TIMESYNC_INTERVAL_DEFAULT;
> +
> +        size = sizeof(XENIFACE_SHARED_TIME);
> +        lResult = RegQueryValueEx(key,
> +                                  XENAGENT_TIMESYNC_LAST,
> +                                  NULL,
> +                                  &type,
> +                                  (LPBYTE)&last,
> +                                  &size);
> +        if (lResult == ERROR_SUCCESS ||
> +            type == REG_BINARY ||
> +            size == sizeof(XENIFACE_SHARED_TIME)) {
> +            // check if time is within interval -> dont update time
> +            if ((last.local == now->local) &&
> +                (TimeDiff(&last.time, &now->time) < interval)) {
> +                enabled = false;
> +            }
> +        }
> +    }
> +
> +    if (enabled) {
> +        lResult = RegSetValueEx(key,
> +                                XENAGENT_TIMESYNC_LAST,
> +                                0,
> +                                REG_BINARY,
> +                                (LPBYTE)&now,
> +                                sizeof(XENIFACE_SHARED_TIME));
> +        if (lResult != ERROR_SUCCESS)
> +            CXenAgent::Log("SetLastUpdateTime failed %08x\n", lResult);
> +    }
> +
> +    RegCloseKey(key);
> +
> +    return enabled;
> +
> +fail3:
> +fail2:
> +    RegCloseKey(key);
> +
> +fail1:
> +    return enabled;
> +}
> \ No newline at end of file
> diff --git a/src/xenagent/xenifacedevice.h b/src/xenagent/xenifacedevice.h
> index 5a1aecf..4878db0 100644
> --- a/src/xenagent/xenifacedevice.h
> +++ b/src/xenagent/xenifacedevice.h
> @@ -37,6 +37,16 @@
>   #include <string>
>   #include "devicelist.h"
>   
> +#define XENIFACE_TIMESYNC_NONE          0
> +#define XENIFACE_TIMESYNC_RESUME        1
> +#define XENIFACE_TIMESYNC_PERIODIC      2
> +#define XENIFACE_TIMESYNC_ADDED         4

Given that these are flags it would be nice to define them as shifts, to 
make it clearer. I can do that.

Acked-by: Paul Durrant <paul@xen.org>

> +
> +typedef struct _XENIFACE_SHARED_TIME {
> +    FILETIME    time;
> +    bool        local;
> +} XENIFACE_SHARED_TIME, *PXENIFACE_SHARED_TIME;
> +
>   class CXenIfaceDevice : public CDevice
>   {
>   public:
> @@ -86,7 +96,7 @@ public:
>       void Log(const char* message);
>       bool CheckShutdown();
>       void CheckShutdownRetry();
> -    void CheckXenTime();
> +    void CheckXenTime(DWORD reason);
>       void CheckSuspend();
>       bool CheckSlateMode(std::string& mode);
>       void LogIfRebootPending();
> @@ -99,7 +109,8 @@ private:
>       void AdvertiseFeatures(CXenIfaceDevice* device, bool add);
>       void RequestSystemShutdown();
>       void AcquireShutdownPrivilege();
> -    void SetXenTime(CXenIfaceDevice* device);
> +    void SetXenTime(CXenIfaceDevice* device, DWORD reason);
> +    bool CheckXenTimeEnabled(DWORD reason, PXENIFACE_SHARED_TIME now);
>   
>   private:
>       CXenAgent*  m_agent;



From win-pv-devel-bounces@lists.xenproject.org Thu Feb 01 17:59:42 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 01 Feb 2024 17:59:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.674654.1049713 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rVbLh-0001Oj-Eq; Thu, 01 Feb 2024 17:59:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 674654.1049713; Thu, 01 Feb 2024 17:59: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 1rVbLh-0001Oc-CF; Thu, 01 Feb 2024 17:59:41 +0000
Received: by outflank-mailman (input) for mailman id 674654;
 Thu, 01 Feb 2024 17:59:40 +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=4Zkz=JK=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1rVbLg-0001M6-DZ
 for win-pv-devel@lists.xenproject.org; Thu, 01 Feb 2024 17:59:40 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aa41ccd0-c12b-11ee-98f5-efadbce2ee36;
 Thu, 01 Feb 2024 18:59:38 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-33b189ae5e8so426780f8f.2
 for <win-pv-devel@lists.xenproject.org>; Thu, 01 Feb 2024 09:59:38 -0800 (PST)
Received: from [10.95.167.50] (54-240-197-233.amazon.com. [54.240.197.233])
 by smtp.gmail.com with ESMTPSA id
 e18-20020a05600c4e5200b0040e621feca9sm277437wmq.17.2024.02.01.09.59.36
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 01 Feb 2024 09:59:37 -0800 (PST)
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: aa41ccd0-c12b-11ee-98f5-efadbce2ee36
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1706810377; x=1707415177; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=vlMARZAlgH/UxC43EsqQ06PypCJ8zk6n8zTKAHJESyk=;
        b=DKECrUIj5mftmZQ2ODFT4gipMn+KfoKNdnk6CVCLy+3I3IsS8BCm9z1qwwzR+GbSqU
         S8miFBmjAaZ3E9TD1Ckm6TrpKrlYZeV/AiKvOVygh+cOHOjqXX/fCfBih8uuA1qe4yk1
         WucyWVQ78kykRfc8X46eWffSuh9xAtoN/e1/8D/ebcizmYfpUZUmoUCXVvO/aq2BF3rg
         aLcQqaS4uzciej8MtAVkyWEiJ4cfz2zBiHi2vX3eNCu8oKjuQWVNzSfzyddUUL1mE7jF
         4lovcOngWy1K599Z7MF8ULM7JpMtt6HTaRFlndaiQSTvngFWh3wOqEiCmE3s4M8mnfSM
         EDDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1706810377; x=1707415177;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vlMARZAlgH/UxC43EsqQ06PypCJ8zk6n8zTKAHJESyk=;
        b=hyoCC1Rk1/AO8eOnyAVAV6Wx3MuqFerY/8AgEBVGGPxI6S0N+XlzwTgsgO5girdvIP
         z58pRs2xGJ/AzKaYg4VDmBtKS/ySvkEkUfcPZygIUiG6mQaewZB7UeRVHUcinO2dew4E
         gYvzJ5hw7UNe0cE22uLuAVMzOf+ujG3L5BcXDQqDNGjZdvFuK6V516WSt+SiKMN4iQE8
         hE5He/XtdhoCM4bghv2yN2Mh4ljGAquFFw6QpVUzrHrFZaTPKIAq/Ke0oqAVo95K54BP
         2gD74SVnp0ml1CXPVHIOTL4sYfe9hrrppktAyK9ANWz8aOZ32JKryPBSHQBd3f+nEAto
         whyw==
X-Gm-Message-State: AOJu0YzCpZT/M78OnF49DppVsphQmRggpOehCribCWSwrSGVHntg1wrJ
	ZUtnMkZqMmKRL9JZlB/qC5rllifB2g1hMn5YAlKCt2Rq7TEm6F2MaD1CKY6RbQs=
X-Google-Smtp-Source: AGHT+IHynjBk/EFPYVXe5D9Iq7oeQ0i44DRVCaxZShC7kZyliA3nsaDUXD6YeQzciZneMKd5URaELw==
X-Received: by 2002:a05:6000:401f:b0:33a:e8bf:3262 with SMTP id cp31-20020a056000401f00b0033ae8bf3262mr4821026wrb.14.1706810377385;
        Thu, 01 Feb 2024 09:59:37 -0800 (PST)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <1fc70bca-9e90-493f-a275-d57f56012459@xen.org>
Date: Thu, 1 Feb 2024 17:59:35 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] XenVbd: Added MSBuild map file generation and
 handling.
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20240131113703.1058-1-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20240131113703.1058-1-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 31/01/2024 11:37, Owen Smith wrote:
> Suggested-by: Alex Burke <Alex.Burke@cloud.com>
> Signed-off-by: Owen Smith <owen.smith@cloud.com>

For this and the remaining patches tagged XenVif, please supply some 
text in the commit comment.

   Paul

> ---
>   build.ps1                      | 8 ++++++++
>   vs2019/xencrsh/xencrsh.vcxproj | 2 ++
>   vs2019/xendisk/xendisk.vcxproj | 2 ++
>   vs2019/xenvbd/xenvbd.vcxproj   | 2 ++
>   vs2022/xencrsh/xencrsh.vcxproj | 2 ++
>   vs2022/xendisk/xendisk.vcxproj | 2 ++
>   vs2022/xenvbd/xenvbd.vcxproj   | 2 ++
>   7 files changed, 20 insertions(+)
> 
> diff --git a/build.ps1 b/build.ps1
> index 4ff02c1..a178660 100644
> --- a/build.ps1
> +++ b/build.ps1
> @@ -14,6 +14,7 @@ param(
>   #
>   # Script Body
>   #
> +$TargetPath = "xenvbd"
>   
>   Function Build {
>   	param(
> @@ -37,6 +38,13 @@ Function Build {
>   		Write-Host -ForegroundColor Red "ERROR: Build failed, code:" $LASTEXITCODE
>   		Exit $LASTEXITCODE
>   	}
> +	# Find and Move map files
> +	foreach ($item in Get-ChildItem -Path $solutiondir[$visualstudioversion] -Include *.map -Recurse)
> +	{
> +		$filename = Split-Path -Path $item -Leaf -Resolve
> +		$newpath = "$TargetPath\$Arch\$filename"
> +		Move-Item $item -Destination $newpath -Force
> +	}
>   }
>   
>   Function SdvBuild {
> diff --git a/vs2019/xencrsh/xencrsh.vcxproj b/vs2019/xencrsh/xencrsh.vcxproj
> index 5433a39..d610072 100644
> --- a/vs2019/xencrsh/xencrsh.vcxproj
> +++ b/vs2019/xencrsh/xencrsh.vcxproj
> @@ -36,6 +36,8 @@
>         <AdditionalDependencies>$(DDK_LIB_PATH)/storport.lib;$(DDK_LIB_PATH)/libcntpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
>         <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
>         <CETCompat>true</CETCompat>
> +      <GenerateMapFile>true</GenerateMapFile>
> +      <MapExports>true</MapExports>
>       </Link>
>       <DriverSign>
>         <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
> diff --git a/vs2019/xendisk/xendisk.vcxproj b/vs2019/xendisk/xendisk.vcxproj
> index 6e714ae..7024581 100644
> --- a/vs2019/xendisk/xendisk.vcxproj
> +++ b/vs2019/xendisk/xendisk.vcxproj
> @@ -34,6 +34,8 @@
>         <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
>         <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
>         <CETCompat>true</CETCompat>
> +      <GenerateMapFile>true</GenerateMapFile>
> +      <MapExports>true</MapExports>
>       </Link>
>       <DriverSign>
>         <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
> diff --git a/vs2019/xenvbd/xenvbd.vcxproj b/vs2019/xenvbd/xenvbd.vcxproj
> index 470d16d..80a13a2 100644
> --- a/vs2019/xenvbd/xenvbd.vcxproj
> +++ b/vs2019/xenvbd/xenvbd.vcxproj
> @@ -34,6 +34,8 @@
>         <AdditionalDependencies>$(ProjectDir)..\$(ConfigurationName)\$(Platform)\xencrsh.lib;$(DDK_LIB_PATH)/storport.lib;$(DDK_LIB_PATH)/libcntpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
>         <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
>         <CETCompat>true</CETCompat>
> +      <GenerateMapFile>true</GenerateMapFile>
> +      <MapExports>true</MapExports>
>       </Link>
>       <DriverSign>
>         <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
> diff --git a/vs2022/xencrsh/xencrsh.vcxproj b/vs2022/xencrsh/xencrsh.vcxproj
> index 2026310..d4d9ad3 100644
> --- a/vs2022/xencrsh/xencrsh.vcxproj
> +++ b/vs2022/xencrsh/xencrsh.vcxproj
> @@ -36,6 +36,8 @@
>         <AdditionalDependencies>$(DDK_LIB_PATH)/storport.lib;$(DDK_LIB_PATH)/libcntpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
>         <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
>         <CETCompat>true</CETCompat>
> +      <GenerateMapFile>true</GenerateMapFile>
> +      <MapExports>true</MapExports>
>       </Link>
>       <DriverSign>
>         <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
> diff --git a/vs2022/xendisk/xendisk.vcxproj b/vs2022/xendisk/xendisk.vcxproj
> index 2fe56f5..ae2f56d 100644
> --- a/vs2022/xendisk/xendisk.vcxproj
> +++ b/vs2022/xendisk/xendisk.vcxproj
> @@ -34,6 +34,8 @@
>         <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
>         <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
>         <CETCompat>true</CETCompat>
> +      <GenerateMapFile>true</GenerateMapFile>
> +      <MapExports>true</MapExports>
>       </Link>
>       <DriverSign>
>         <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
> diff --git a/vs2022/xenvbd/xenvbd.vcxproj b/vs2022/xenvbd/xenvbd.vcxproj
> index 6d51630..fd95608 100644
> --- a/vs2022/xenvbd/xenvbd.vcxproj
> +++ b/vs2022/xenvbd/xenvbd.vcxproj
> @@ -34,6 +34,8 @@
>         <AdditionalDependencies>$(ProjectDir)..\$(ConfigurationName)\$(Platform)\xencrsh.lib;$(DDK_LIB_PATH)/storport.lib;$(DDK_LIB_PATH)/libcntpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
>         <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
>         <CETCompat>true</CETCompat>
> +      <GenerateMapFile>true</GenerateMapFile>
> +      <MapExports>true</MapExports>
>       </Link>
>       <DriverSign>
>         <FileDigestAlgorithm>sha256</FileDigestAlgorithm>



From win-pv-devel-bounces@lists.xenproject.org Fri Feb 02 07:36:52 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Feb 2024 07:36:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.674812.1049990 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rVo6U-0003yQ-1a; Fri, 02 Feb 2024 07:36:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 674812.1049990; Fri, 02 Feb 2024 07:36: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 1rVo6T-0003yJ-VI; Fri, 02 Feb 2024 07:36:49 +0000
Received: by outflank-mailman (input) for mailman id 674812;
 Fri, 02 Feb 2024 07:36: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=tPCe=JL=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1rVo6S-0003xx-9n
 for win-pv-devel@lists.xenproject.org; Fri, 02 Feb 2024 07:36:48 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d11f379b-c19d-11ee-98f5-efadbce2ee36;
 Fri, 02 Feb 2024 08:36:45 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-5112d5ab492so2308187e87.0
 for <win-pv-devel@lists.xenproject.org>; Thu, 01 Feb 2024 23:36:45 -0800 (PST)
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: d11f379b-c19d-11ee-98f5-efadbce2ee36
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1706859405; x=1707464205; 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=mvkRSGDbwsbi5vcNAFaccbvo1gtdHmF+r80zZdZV3zw=;
        b=uZfoLbGBp+AR2E4Pg9X56KDG8GyBS6qkGnYiyn5Mbmg1iXOmGgRqxOXMNXA5d6lcaw
         125nLCqTSVAbJjevn6BDziIJT2+Z1UpR7ZbpPmoADca9Kk0VPCC5UKjWGitUsCvZwbTN
         YTMTZrvYDOIRj8g+hQzp8chZEWoD/OsO+BuDc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1706859405; x=1707464205;
        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=mvkRSGDbwsbi5vcNAFaccbvo1gtdHmF+r80zZdZV3zw=;
        b=knEAScJzE64SHzZrYc2tEIxkCA8fcSWj5H4mTcHjdYwTYeksZ9qAWCKw2mjkHiEWS4
         b5khcDcRRXT0edbYpS/sDzSSCB3zQtvfC6RwzUmMJP70SCSZB04+BGXiuE+Whd7ZjqPx
         xi9XWqbNZIi9k+4x5TxeMKyJJzK1KvwEP5cjGBCbeaaKo68Ksc5Ur1iVCJxpXeMxz9Fz
         Xcyf9KsJYDKkCN9ghG9/ULfe5g/0VuHEL84R9MLrNgwCIwyvI7CO6IP1OksjBU7ZzUaB
         w9RoKQ283Yabml3rO6rQOiY6y/c9iRI8S4wUQMjvoDCgTWQlvl/L/GIeZPK8PFu9smyn
         5L/Q==
X-Gm-Message-State: AOJu0YxPsDFM1bkLTKHpwA2YG4f1KXIvWL99s4Cc2RM2DZTLiAWAeIQa
	UQK9ua8e8GkUwAa6Co55roo6U/CZQVgz3Vfa3N9fn0Q7MaFGOHKVUIw5nfJ1qet/8qYfYnwj6Xp
	sToin0V8ZSs5ZD3hL5IqzgmzjM+/p6uibBW146CQjiXVyaRI=
X-Google-Smtp-Source: AGHT+IFQKLgJFozzJulgDXuyQHweiTtt4p34pQxeJ6abbb/XCDOssOs+8ln9/Ggxb8UQwgOODjBvDjUqLp17RMtQf6A=
X-Received: by 2002:a05:6512:3b99:b0:511:3864:4d07 with SMTP id
 g25-20020a0565123b9900b0051138644d07mr277568lfv.56.1706859405262; Thu, 01 Feb
 2024 23:36:45 -0800 (PST)
MIME-Version: 1.0
References: <20240110134222.1660-1-owen.smith@cloud.com> <142046d9-b4bb-4ac9-ab28-8c13bebca115@xen.org>
In-Reply-To: <142046d9-b4bb-4ac9-ab28-8c13bebca115@xen.org>
From: Owen Smith <owen.smith@citrix.com>
Date: Fri, 2 Feb 2024 07:36:33 +0000
Message-ID: <CAC_UY88kTKC1RFWGZsDFXqaKxak+rgk3JCD0zn4Uru2SafmdTQ@mail.gmail.com>
Subject: Re: [RFC PATCH 0/3] Rework Power handlers
To: paul@xen.org
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000885d090610612c59"

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

The problem is relatively rare - it tends to hit occasionally during our
automated tests, and is seen more often with xenfilt on other device stacks
(vGPU in particular).
These patches have been applied to the XS queue for some time. I refactored
and simplified the patches in Dec 2021 - these have been applied since then
and we have released at least 2 versions since with no reported power
failure issues. Previously this was 1 big messy patch that, I think, has
been released at least once. No power related issues detected in all our
automated testing or through our support.

Owen

On Thu, Feb 1, 2024 at 5:35=E2=80=AFPM Paul Durrant <xadimgnik@gmail.com> w=
rote:

> On 10/01/2024 13:42, Owen Smith wrote:
> > Current power handler code is passed to a single threaded work thread
> which
> > can be delayed enough to trigger 0x9F (DRIVER_POWER_STATE_FAILURE)
> bugchecks.
> > Rework power handlers to math standard practive, using pended IRPs,
> > IoCompletionRoutines and deferred IoWorkItems where required.
> >
> > Martin Harvey (2):
> >    [XenFilt] Asynchronous power handling.
> >    [XenBus] Asynchronous power handling
> >
>
> I advised Martin against these changes over a year ago. How prevalent is
> the problem? It took *years* to get this, and the PnP code stable. How
> much testing have these changes had?
>
>    Paul
>
> > Owen Smith (1):
> >    ASSERT(Frame->Mdl !=3D NULL) before dereference
> >
> >   src/xenbus/fdo.c    | 792 ++++++++++++++++++++++++-------------------=
-
> >   src/xenbus/gnttab.c |   1 +
> >   src/xenbus/pdo.c    | 250 ++++++--------
> >   src/xenfilt/fdo.c   | 498 +++++++---------------------
> >   src/xenfilt/pdo.c   | 503 +++++++---------------------
> >   5 files changed, 777 insertions(+), 1267 deletions(-)
> >
>
>
>

--000000000000885d090610612c59
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">The problem is relatively rare - it tends to hit occasionally during our=
 automated tests, and is seen more often with xenfilt on other device stack=
s (vGPU in particular).</div><div class=3D"gmail_default" style=3D"font-fam=
ily:monospace">These patches have been applied to the XS queue for some tim=
e. I refactored and simplified the patches in Dec 2021 - these have been ap=
plied since then and we have released at least 2 versions since with no rep=
orted power failure issues. Previously this was 1 big messy patch that, I t=
hink, has been released at least once. No power related issues detected in =
all our automated testing or through our support.</div><div class=3D"gmail_=
default" style=3D"font-family:monospace"><br></div><div class=3D"gmail_defa=
ult" style=3D"font-family:monospace">Owen</div></div><br><div class=3D"gmai=
l_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, Feb 1, 2024 at 5:35=
=E2=80=AFPM Paul Durrant &lt;<a href=3D"mailto:xadimgnik@gmail.com">xadimgn=
ik@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddin=
g-left:1ex">On 10/01/2024 13:42, Owen Smith wrote:<br>
&gt; Current power handler code is passed to a single threaded work thread =
which<br>
&gt; can be delayed enough to trigger 0x9F (DRIVER_POWER_STATE_FAILURE) bug=
checks.<br>
&gt; Rework power handlers to math standard practive, using pended IRPs,<br=
>
&gt; IoCompletionRoutines and deferred IoWorkItems where required.<br>
&gt; <br>
&gt; Martin Harvey (2):<br>
&gt;=C2=A0 =C2=A0 [XenFilt] Asynchronous power handling.<br>
&gt;=C2=A0 =C2=A0 [XenBus] Asynchronous power handling<br>
&gt;<br>
<br>
I advised Martin against these changes over a year ago. How prevalent is <b=
r>
the problem? It took *years* to get this, and the PnP code stable. How <br>
much testing have these changes had?<br>
<br>
=C2=A0 =C2=A0Paul<br>
<br>
&gt; Owen Smith (1):<br>
&gt;=C2=A0 =C2=A0 ASSERT(Frame-&gt;Mdl !=3D NULL) before dereference<br>
&gt; <br>
&gt;=C2=A0 =C2=A0src/xenbus/fdo.c=C2=A0 =C2=A0 | 792 ++++++++++++++++++++++=
++--------------------<br>
&gt;=C2=A0 =C2=A0src/xenbus/gnttab.c |=C2=A0 =C2=A01 +<br>
&gt;=C2=A0 =C2=A0src/xenbus/pdo.c=C2=A0 =C2=A0 | 250 ++++++--------<br>
&gt;=C2=A0 =C2=A0src/xenfilt/fdo.c=C2=A0 =C2=A0| 498 +++++++---------------=
------<br>
&gt;=C2=A0 =C2=A0src/xenfilt/pdo.c=C2=A0 =C2=A0| 503 +++++++---------------=
------<br>
&gt;=C2=A0 =C2=A05 files changed, 777 insertions(+), 1267 deletions(-)<br>
&gt; <br>
<br>
<br>
</blockquote></div>

--000000000000885d090610612c59--


From win-pv-devel-bounces@lists.xenproject.org Fri Feb 02 07:39:18 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Feb 2024 07:39:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.674821.1049994 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rVo8s-0004JY-8v; Fri, 02 Feb 2024 07:39:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 674821.1049994; Fri, 02 Feb 2024 07:39: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 1rVo8s-0004JR-66; Fri, 02 Feb 2024 07:39:18 +0000
Received: by outflank-mailman (input) for mailman id 674821;
 Fri, 02 Feb 2024 07:39: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=tPCe=JL=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1rVo8q-0004JK-Hk
 for win-pv-devel@lists.xenproject.org; Fri, 02 Feb 2024 07:39:16 +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 295ecc36-c19e-11ee-98f5-efadbce2ee36;
 Fri, 02 Feb 2024 08:39:13 +0100 (CET)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-511396ec8c7so109137e87.0
 for <win-pv-devel@lists.xenproject.org>; Thu, 01 Feb 2024 23:39:13 -0800 (PST)
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: 295ecc36-c19e-11ee-98f5-efadbce2ee36
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1706859553; x=1707464353; 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=niTyfdyVj6LVMSEYuoIic4vaYR3lzCPJUe5CuLVzguk=;
        b=jwnBT5PJmKfK5rd4SPwLxbZcWE1bmggqKR/ZoyW5azLpeue810p2NYR7CKowUgw9AN
         PnFhgJ4eXlTt/6MNlLSb9M0484gaQO2MH3//M/9nW2rOAfsiaDp48EkADbWSMy/6poIl
         FSzJFvgnIQHToiy0T4EtG2pnKAnJF8X4YSAvk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1706859553; x=1707464353;
        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=niTyfdyVj6LVMSEYuoIic4vaYR3lzCPJUe5CuLVzguk=;
        b=QpdGqXdk2pvlocPbFzOK2Oe0oEFPIm6cqs8hL3U8ts1NZO9N0OGzcJQ6ApUreKYejP
         umIyk517nd+oeW/rgO+vetr69uUlATTZy9kG/xBtiqvcAlphBSUBN6qcvgvLdzCMg2FU
         mpxwp8AvIGodL6capQiVJlfjOGuo7c8ogTSywBNIX0U5zu7ZzR4iOVpGIbetRi30aDYM
         SbuEMow4q7CzeIW6I5Da2oj33jdbwhqUGZgEM15E05+z0MhrSLUIdifhgzBvySUfIsh2
         t8Oo/lC3OczFQF22Ll5K7dL5xrhBOr1xJjxZOtMdPHoYHjCkfEEv2nuFMPT6QUJfeVs4
         hGHA==
X-Gm-Message-State: AOJu0Yz9clx8Z0fisdIWeFj2Bcih5GwE20g/A1PwdksmlziwXiEtzi0J
	1edoIOpj8uSK2UJ1iJTIij1sMCfSTbpEeOm90CWMnNl7kAIMn1TJBT07odfI+rgGrK6jd8/DBEJ
	q1YJ5CGoDnBtoI/Zq1rFj+hMzNPmjwJO12ivHBy6QmmW6pcc=
X-Google-Smtp-Source: AGHT+IGJYnieDkU/y4e+8A6Ss1HgFJVDctC3V5EYV361HIYBPJK03eZOn/rRg89gkI6AZTOThtfvpis3sLdv2mHPEeE=
X-Received: by 2002:ac2:4d05:0:b0:511:3636:78a2 with SMTP id
 r5-20020ac24d05000000b00511363678a2mr594724lfi.42.1706859553347; Thu, 01 Feb
 2024 23:39:13 -0800 (PST)
MIME-Version: 1.0
References: <20240112125915.1229-1-owen.smith@cloud.com> <8ba04617-16e4-4b10-b624-4fa3dd75c868@xen.org>
In-Reply-To: <8ba04617-16e4-4b10-b624-4fa3dd75c868@xen.org>
From: Owen Smith <owen.smith@citrix.com>
Date: Fri, 2 Feb 2024 07:39:01 +0000
Message-ID: <CAC_UY8-DZ1+O9mzNh0enpS2hW4d_rM=w6=FuzY2L3nQvX9eSCQ@mail.gmail.com>
Subject: Re: [RFC PATCH 1/2] Add ETW support
To: paul@xen.org
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="0000000000005bf5a40610613519"

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

ARRAYSIZE vs sizeof - looks like I missed something here.
EtwExit vs EtwExit2 - specifically to reduce having to insert EtwExit(..
STATUS_SUCCESS) in functions that do not return a NTSTATUS

Owen

On Thu, Feb 1, 2024 at 5:41=E2=80=AFPM Paul Durrant <xadimgnik@gmail.com> w=
rote:

> On 12/01/2024 12:59, Owen Smith wrote:
> > Defines ETW schema with EtwEnter and EtwExit events, which can be used
> to track
> > code-paths and produce flamegraphs of executions.
> > Only uses EtwEnter and EtwExit in the driver.c file of XenBus, but more
> events
> > will be added in subsequent patches.
> >
> > Signed-off-by: Owen Smith <owen.smith@cloud.com>
> > ---
> >   src/common/dbg_print.h       | 60 +++++++++++++++++++++++++++++++++++
> >   src/xenbus/driver.c          | 11 +++++++
> >   src/xenbus/xenbus_etw.xml    | 61 +++++++++++++++++++++++++++++++++++=
+
> >   vs2019/xenbus/xenbus.vcxproj | 13 +++++++-
> >   vs2022/xenbus/xenbus.vcxproj | 13 +++++++-
> >   5 files changed, 156 insertions(+), 2 deletions(-)
> >   create mode 100644 src/xenbus/xenbus_etw.xml
> >
> > diff --git a/src/common/dbg_print.h b/src/common/dbg_print.h
> > index a0bd727..98c22cf 100644
> > --- a/src/common/dbg_print.h
> > +++ b/src/common/dbg_print.h
> > @@ -42,6 +42,66 @@
> >
> >   #pragma warning(disable:4127)   // conditional expression is constant
> >
> > +#ifdef ETW_HEADER
> > +#include ETW_HEADER
> > +
> > +static __inline VOID
> > +__EtwEnter(
> > +    IN  const CHAR      *Module,
> > +    IN  const CHAR      *Function,
> > +    IN  ULONG           Line
> > +    )
> > +{
> > +    CHAR                _Module[16];
> > +    CHAR                _Function[32];
> > +
> > +    if (!EventEnabledEvtEnter())
> > +        return;
> > +
> > +    RtlZeroMemory(_Module, sizeof(_Module));
> > +    RtlZeroMemory(_Function, sizeof(_Function));
> > +
> > +    strncpy(_Module, Module, ARRAYSIZE(_Module) -1);
>
> Missing space. I can fix.
>
> > +    strncpy(_Function, Function, ARRAYSIZE(_Function) - 1);
> > +
> > +    EventWriteEvtEnter(NULL, _Module, _Function, Line);
> > +}
> > +
> > +static __inline VOID
> > +__EtwExit(
> > +    IN  const CHAR      *Module,
> > +    IN  const CHAR      *Function,
> > +    IN  ULONG           Line,
> > +    IN  NTSTATUS        Status
> > +    )
> > +{
> > +    CHAR                _Module[16];
> > +    CHAR                _Function[32];
> > +
> > +    if (!EventEnabledEvtExit())
> > +        return;
> > +
> > +    RtlZeroMemory(_Module, sizeof(_Module));
> > +    RtlZeroMemory(_Function, sizeof(_Function));
> > +
> > +    strncpy(_Module, Module, sizeof(_Module));
>
> Why sizeof() here but ARRAYSIZE above?
>
> > +    strncpy(_Function, Function, sizeof(_Function));
> > +
> > +    EventWriteEvtExit(NULL, _Module, _Function, Line, (ULONG)Status);
> > +}
> > +
> > +#define EtwEnter()          __EtwEnter(__MODULE__, __FUNCTION__,
> __LINE__)
> > +#define EtwExit()           __EtwExit(__MODULE__, __FUNCTION__,
> __LINE__, STATUS_SUCCESS)
> > +#define EtwExit2(status)    __EtwExit(__MODULE__, __FUNCTION__,
> __LINE__, status)
>
> Why this rather than requiring an explicit status for EtwExit()?
>
>    Paul
>
> > +
> > +#else
> > +
> > +#define EtwEnter()          (VOID)0
> > +#define EtwExit()           (VOID)0
> > +#define EtwExit2(status)    (VOID)status
> > +
> > +#endif
> > +
> >   static __inline VOID
> >   __Error(
> >       IN  const CHAR  *Prefix,
> > diff --git a/src/xenbus/driver.c b/src/xenbus/driver.c
> > index 522acef..4443559 100644
> > --- a/src/xenbus/driver.c
> > +++ b/src/xenbus/driver.c
> > @@ -708,6 +708,8 @@ DriverUnload(
> >
> >       __DriverSetDriverObject(NULL);
> >
> > +    EventUnregisterXenBus_Driver();
> > +
> >       ASSERT(IsZeroMemory(&Driver, sizeof (XENBUS_DRIVER)));
> >
> >       Trace("<=3D=3D=3D=3D\n");
> > @@ -726,6 +728,7 @@ DriverAddDevice(
> >
> >       ASSERT3P(DriverObject, =3D=3D, __DriverGetDriverObject());
> >
> > +    EtwEnter();
> >       Trace("=3D=3D=3D=3D>\n");
> >
> >       __DriverAcquireMutex();
> > @@ -737,12 +740,14 @@ DriverAddDevice(
> >       __DriverReleaseMutex();
> >
> >       Trace("<=3D=3D=3D=3D\n");
> > +    EtwExit();
> >
> >       return STATUS_SUCCESS;
> >
> >   fail1:
> >       __DriverReleaseMutex();
> >
> > +    EtwExit2(status);
> >       return status;
> >   }
> >
> > @@ -757,6 +762,8 @@ DriverDispatch(
> >       PXENBUS_DX          Dx;
> >       NTSTATUS            status;
> >
> > +    EtwEnter();
> > +
> >       Dx =3D (PXENBUS_DX)DeviceObject->DeviceExtension;
> >       ASSERT3P(Dx->DeviceObject, =3D=3D, DeviceObject);
> >
> > @@ -800,6 +807,7 @@ DriverDispatch(
> >       }
> >
> >   done:
> > +    EtwExit2(status);
> >       return status;
> >   }
> >
> > @@ -819,6 +827,7 @@ DriverEntry(
> >
> >       ASSERT3P(__DriverGetDriverObject(), =3D=3D, NULL);
> >
> > +    EventRegisterXenBus_Driver();
> >       ExInitializeDriverRuntime(DrvRtPoolNxOptIn);
> >       WdmlibProcgrpInitialize();
> >
> > @@ -915,6 +924,8 @@ fail1:
> >
> >       __DriverSetDriverObject(NULL);
> >
> > +    EventUnregisterXenBus_Driver();
> > +
> >       ASSERT(IsZeroMemory(&Driver, sizeof (XENBUS_DRIVER)));
> >
> >       return status;
> > diff --git a/src/xenbus/xenbus_etw.xml b/src/xenbus/xenbus_etw.xml
> > new file mode 100644
> > index 0000000..c73dfe6
> > --- /dev/null
> > +++ b/src/xenbus/xenbus_etw.xml
> > @@ -0,0 +1,61 @@
> > +<?xml version=3D'1.0' encoding=3D'utf-8' standalone=3D'yes'?>
> > +<instrumentationManifest
> > +    xmlns=3D"http://schemas.microsoft.com/win/2004/08/events"
> > +    xmlns:win=3D"
> http://manifests.microsoft.com/win/2004/08/windows/events"
> > +    xmlns:xs=3D"http://www.w3.org/2001/XMLSchema"
> > +    xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance"
> > +    xsi:schemaLocation=3D"http://schemas.microsoft.com/win/2004/08/eve=
nts
> eventman.xsd" >
> > +  <instrumentation>
> > +    <events>
> > +      <provider
> > +          guid=3D"{e580595b-a8a6-41b7-a9c1-1954d2138ffc}"
> > +
> messageFileName=3D"%SystemDrive%\windows\system32\drivers\xenbus.sys"
> > +          name=3D"XenBus_Driver"
> > +
> resourceFileName=3D"%SystemDrive%\windows\system32\drivers\xenbus.sys"
> > +          symbol=3D"DriverControlGuid" >
> > +        <channels>
> > +          <channel chid=3D"XENBUS" name=3D"XenBus" type=3D"Analytic"
> enabled=3D"true" />
> > +        </channels>
> > +        <templates>
> > +          <template tid=3D"tid_enter">
> > +            <data name=3D"Module" inType=3D"win:Int8" count=3D"16"
> outType=3D"xs:string" />     <!-- 16 chars -->
> > +            <data name=3D"Function" inType=3D"win:Int8" count=3D"32"
> outType=3D"xs:string" />   <!-- 32 chars -->
> > +            <data name=3D"Line" inType=3D"win:UInt32"
> outType=3D"xs:unsignedInt" />           <!-- line number -->
> > +          </template>
> > +          <template tid=3D"tid_exit">
> > +            <data name=3D"Module" inType=3D"win:Int8" count=3D"16"
> outType=3D"xs:string" />     <!-- 16 chars -->
> > +            <data name=3D"Function" inType=3D"win:Int8" count=3D"32"
> outType=3D"xs:string" />   <!-- 32 chars -->
> > +            <data name=3D"Line" inType=3D"win:UInt32"
> outType=3D"xs:unsignedInt" />           <!-- line number -->
> > +            <data name=3D"Status" inType=3D"win:UInt32"
> outType=3D"xs:unsignedInt" />         <!-- NTSTATUS -->
> > +          </template>
> > +        </templates>
> > +        <events>
> > +          <event
> > +            channel=3D"XENBUS"
> > +            level=3D"win:Informational"
> > +            message=3D"$(string.EventTraceInfo.Enter)"
> > +            opcode=3D"win:Info"
> > +            symbol=3D"EvtEnter"
> > +            template=3D"tid_enter"
> > +            value=3D"10" />
> > +          <event
> > +            channel=3D"XENBUS"
> > +            level=3D"win:Informational"
> > +            message=3D"$(string.EventTraceInfo.Exit)"
> > +            opcode=3D"win:Info"
> > +            symbol=3D"EvtExit"
> > +            template=3D"tid_exit"
> > +            value=3D"11" />
> > +        </events>
> > +      </provider>
> > +    </events>
> > +  </instrumentation>
> > +  <localization xmlns=3D"http://schemas.microsoft.com/win/2004/08/even=
ts
> ">
> > +    <resources culture=3D"en-US">
> > +      <stringTable>
> > +        <string id=3D"EventTraceInfo.Enter" value=3D"[Enter]" />
> > +        <string id=3D"EventTraceInfo.Exit"  value=3D"[Exit ]" />
> > +      </stringTable>
> > +    </resources>
> > +  </localization>
> > +</instrumentationManifest>
> > diff --git a/vs2019/xenbus/xenbus.vcxproj b/vs2019/xenbus/xenbus.vcxpro=
j
> > index aa88980..e191527 100644
> > --- a/vs2019/xenbus/xenbus.vcxproj
> > +++ b/vs2019/xenbus/xenbus.vcxproj
> > @@ -20,7 +20,7 @@
> >     <ItemDefinitionGroup>
> >       <ClCompile>
> >         <AdditionalOptions>/ZH:SHA_256
> %(AdditionalOptions)</AdditionalOptions>
> > -
> <PreprocessorDefinitions>PROJECT=3D$(ProjectName);POOL_NX_OPTIN=3D1;NT_PR=
OCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
> > +
> <PreprocessorDefinitions>PROJECT=3D$(ProjectName);POOL_NX_OPTIN=3D1;NT_PR=
OCESSOR_GROUPS;ETW_HEADER=3D"xenbus_etw.h";%(PreprocessorDefinitions)</Prep=
rocessorDefinitions>
> >         <IntrinsicFunctions>true</IntrinsicFunctions>
> >
>  <AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;=
..\..\include\xen;..\..\src\common;</AdditionalIncludeDirectories>
> >         <WarningLevel>EnableAllWarnings</WarningLevel>
> > @@ -38,6 +38,13 @@
> >         <MapExports>true</MapExports>
> >         <AdditionalOptions>/INTEGRITYCHECK
> %(AdditionalOptions)</AdditionalOptions>
> >       </Link>
> > +    <MessageCompile>
> > +      <HeaderFilePath>..\..\include</HeaderFilePath>
> > +      <GeneratedFilesBaseName>%(Filename)</GeneratedFilesBaseName>
> > +      <RCFilePath>..\..\src\xenbus</RCFilePath>
> > +
> <GenerateKernelModeLoggingMacros>true</GenerateKernelModeLoggingMacros>
> > +      <UseBaseNameOfInput>true</UseBaseNameOfInput>
> > +    </MessageCompile>
> >       <DriverSign>
> >         <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
> >       </DriverSign>
> > @@ -68,6 +75,7 @@
> >     <ItemGroup>
> >       <FilesToPackage Include=3D"$(TargetPath)" />
> >       <FilesToPackage Include=3D"$(OutDir)$(TargetName).pdb" />
> > +    <FilesToPackage Include=3D"..\..\src\xenbus\xenbus_etw.xml" />
> >     </ItemGroup>
> >     <ItemGroup>
> >       <ClCompile Include=3D"..\..\src\common\registry.c" />
> > @@ -97,5 +105,8 @@
> >     <ItemGroup>
> >       <ResourceCompile Include=3D"..\..\src\xenbus\xenbus.rc" />
> >     </ItemGroup>
> > +  <ItemGroup>
> > +    <MessageCompile Include=3D"..\..\src\xenbus\xenbus_etw.xml" />
> > +  </ItemGroup>
> >     <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.targets" />
> >   </Project>
> > diff --git a/vs2022/xenbus/xenbus.vcxproj b/vs2022/xenbus/xenbus.vcxpro=
j
> > index ce0526f..1322d15 100644
> > --- a/vs2022/xenbus/xenbus.vcxproj
> > +++ b/vs2022/xenbus/xenbus.vcxproj
> > @@ -20,7 +20,7 @@
> >     <ItemDefinitionGroup>
> >       <ClCompile>
> >         <AdditionalOptions>/ZH:SHA_256
> %(AdditionalOptions)</AdditionalOptions>
> > -
> <PreprocessorDefinitions>PROJECT=3D$(ProjectName);POOL_NX_OPTIN=3D1;NT_PR=
OCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
> > +
> <PreprocessorDefinitions>PROJECT=3D$(ProjectName);POOL_NX_OPTIN=3D1;NT_PR=
OCESSOR_GROUPS;ETW_HEADER=3D"xenbus_etw.h";%(PreprocessorDefinitions)</Prep=
rocessorDefinitions>
> >         <IntrinsicFunctions>true</IntrinsicFunctions>
> >
>  <AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;=
..\..\include\xen;..\..\src\common;</AdditionalIncludeDirectories>
> >         <WarningLevel>EnableAllWarnings</WarningLevel>
> > @@ -38,6 +38,13 @@
> >         <MapExports>true</MapExports>
> >         <AdditionalOptions>/INTEGRITYCHECK
> %(AdditionalOptions)</AdditionalOptions>
> >       </Link>
> > +    <MessageCompile>
> > +      <HeaderFilePath>..\..\include</HeaderFilePath>
> > +      <GeneratedFilesBaseName>%(Filename)</GeneratedFilesBaseName>
> > +      <RCFilePath>..\..\src\xenbus</RCFilePath>
> > +
> <GenerateKernelModeLoggingMacros>true</GenerateKernelModeLoggingMacros>
> > +      <UseBaseNameOfInput>true</UseBaseNameOfInput>
> > +    </MessageCompile>
> >       <DriverSign>
> >         <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
> >       </DriverSign>
> > @@ -60,6 +67,7 @@
> >     <ItemGroup>
> >       <FilesToPackage Include=3D"$(TargetPath)" />
> >       <FilesToPackage Include=3D"$(OutDir)$(TargetName).pdb" />
> > +    <FilesToPackage Include=3D"..\..\src\xenbus\xenbus_etw.xml" />
> >     </ItemGroup>
> >     <ItemGroup>
> >       <ClCompile Include=3D"..\..\src\common\registry.c" />
> > @@ -89,5 +97,8 @@
> >     <ItemGroup>
> >       <ResourceCompile Include=3D"..\..\src\xenbus\xenbus.rc" />
> >     </ItemGroup>
> > +  <ItemGroup>
> > +    <MessageCompile Include=3D"..\..\src\xenbus\xenbus_etw.xml" />
> > +  </ItemGroup>
> >     <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.targets" />
> >   </Project>
>
>
>

--0000000000005bf5a40610613519
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">ARRAYSIZE vs sizeof - looks like I missed something here.</div><div clas=
s=3D"gmail_default" style=3D"font-family:monospace">EtwExit=C2=A0vs EtwExit=
2 - specifically to reduce having to insert EtwExit(.. STATUS_SUCCESS) in f=
unctions that do not return a NTSTATUS</div><div class=3D"gmail_default" st=
yle=3D"font-family:monospace"><br></div><div class=3D"gmail_default" style=
=3D"font-family:monospace">Owen=C2=A0</div></div><br><div class=3D"gmail_qu=
ote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, Feb 1, 2024 at 5:41=E2=
=80=AFPM Paul Durrant &lt;<a href=3D"mailto:xadimgnik@gmail.com">xadimgnik@=
gmail.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">On 12/01/2024 12:59, Owen Smith wrote:<br>
&gt; Defines ETW schema with EtwEnter and EtwExit events, which can be used=
 to track<br>
&gt; code-paths and produce flamegraphs of executions.<br>
&gt; Only uses EtwEnter and EtwExit in the driver.c file of XenBus, but mor=
e events<br>
&gt; will be added in subsequent patches.<br>
&gt; <br>
&gt; Signed-off-by: Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com" =
target=3D"_blank">owen.smith@cloud.com</a>&gt;<br>
&gt; ---<br>
&gt;=C2=A0 =C2=A0src/common/dbg_print.h=C2=A0 =C2=A0 =C2=A0 =C2=A0| 60 ++++=
+++++++++++++++++++++++++++++++<br>
&gt;=C2=A0 =C2=A0src/xenbus/driver.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | 11=
 +++++++<br>
&gt;=C2=A0 =C2=A0src/xenbus/xenbus_etw.xml=C2=A0 =C2=A0 | 61 ++++++++++++++=
++++++++++++++++++++++<br>
&gt;=C2=A0 =C2=A0vs2019/xenbus/xenbus.vcxproj | 13 +++++++-<br>
&gt;=C2=A0 =C2=A0vs2022/xenbus/xenbus.vcxproj | 13 +++++++-<br>
&gt;=C2=A0 =C2=A05 files changed, 156 insertions(+), 2 deletions(-)<br>
&gt;=C2=A0 =C2=A0create mode 100644 src/xenbus/xenbus_etw.xml<br>
&gt; <br>
&gt; diff --git a/src/common/dbg_print.h b/src/common/dbg_print.h<br>
&gt; index a0bd727..98c22cf 100644<br>
&gt; --- a/src/common/dbg_print.h<br>
&gt; +++ b/src/common/dbg_print.h<br>
&gt; @@ -42,6 +42,66 @@<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0#pragma warning(disable:4127)=C2=A0 =C2=A0// conditional e=
xpression is constant<br>
&gt;=C2=A0 =C2=A0<br>
&gt; +#ifdef ETW_HEADER<br>
&gt; +#include ETW_HEADER<br>
&gt; +<br>
&gt; +static __inline VOID<br>
&gt; +__EtwEnter(<br>
&gt; +=C2=A0 =C2=A0 IN=C2=A0 const CHAR=C2=A0 =C2=A0 =C2=A0 *Module,<br>
&gt; +=C2=A0 =C2=A0 IN=C2=A0 const CHAR=C2=A0 =C2=A0 =C2=A0 *Function,<br>
&gt; +=C2=A0 =C2=A0 IN=C2=A0 ULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
Line<br>
&gt; +=C2=A0 =C2=A0 )<br>
&gt; +{<br>
&gt; +=C2=A0 =C2=A0 CHAR=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 _Module[16];<br>
&gt; +=C2=A0 =C2=A0 CHAR=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 _Function[32];<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 if (!EventEnabledEvtEnter())<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 return;<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 RtlZeroMemory(_Module, sizeof(_Module));<br>
&gt; +=C2=A0 =C2=A0 RtlZeroMemory(_Function, sizeof(_Function));<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 strncpy(_Module, Module, ARRAYSIZE(_Module) -1);<br>
<br>
Missing space. I can fix.<br>
<br>
&gt; +=C2=A0 =C2=A0 strncpy(_Function, Function, ARRAYSIZE(_Function) - 1);=
<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 EventWriteEvtEnter(NULL, _Module, _Function, Line);<br>
&gt; +}<br>
&gt; +<br>
&gt; +static __inline VOID<br>
&gt; +__EtwExit(<br>
&gt; +=C2=A0 =C2=A0 IN=C2=A0 const CHAR=C2=A0 =C2=A0 =C2=A0 *Module,<br>
&gt; +=C2=A0 =C2=A0 IN=C2=A0 const CHAR=C2=A0 =C2=A0 =C2=A0 *Function,<br>
&gt; +=C2=A0 =C2=A0 IN=C2=A0 ULONG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
Line,<br>
&gt; +=C2=A0 =C2=A0 IN=C2=A0 NTSTATUS=C2=A0 =C2=A0 =C2=A0 =C2=A0 Status<br>
&gt; +=C2=A0 =C2=A0 )<br>
&gt; +{<br>
&gt; +=C2=A0 =C2=A0 CHAR=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 _Module[16];<br>
&gt; +=C2=A0 =C2=A0 CHAR=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 _Function[32];<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 if (!EventEnabledEvtExit())<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 return;<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 RtlZeroMemory(_Module, sizeof(_Module));<br>
&gt; +=C2=A0 =C2=A0 RtlZeroMemory(_Function, sizeof(_Function));<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 strncpy(_Module, Module, sizeof(_Module));<br>
<br>
Why sizeof() here but ARRAYSIZE above?<br>
<br>
&gt; +=C2=A0 =C2=A0 strncpy(_Function, Function, sizeof(_Function));<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 EventWriteEvtExit(NULL, _Module, _Function, Line, (ULON=
G)Status);<br>
&gt; +}<br>
&gt; +<br>
&gt; +#define EtwEnter()=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 __EtwEnter(__MOD=
ULE__, __FUNCTION__, __LINE__)<br>
&gt; +#define EtwExit()=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0__EtwExit(_=
_MODULE__, __FUNCTION__, __LINE__, STATUS_SUCCESS)<br>
&gt; +#define EtwExit2(status)=C2=A0 =C2=A0 __EtwExit(__MODULE__, __FUNCTIO=
N__, __LINE__, status)<br>
<br>
Why this rather than requiring an explicit status for EtwExit()?<br>
<br>
=C2=A0 =C2=A0Paul<br>
<br>
&gt; +<br>
&gt; +#else<br>
&gt; +<br>
&gt; +#define EtwEnter()=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (VOID)0<br>
&gt; +#define EtwExit()=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(VOID)0<br>
&gt; +#define EtwExit2(status)=C2=A0 =C2=A0 (VOID)status<br>
&gt; +<br>
&gt; +#endif<br>
&gt; +<br>
&gt;=C2=A0 =C2=A0static __inline VOID<br>
&gt;=C2=A0 =C2=A0__Error(<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0IN=C2=A0 const CHAR=C2=A0 *Prefix,<br>
&gt; diff --git a/src/xenbus/driver.c b/src/xenbus/driver.c<br>
&gt; index 522acef..4443559 100644<br>
&gt; --- a/src/xenbus/driver.c<br>
&gt; +++ b/src/xenbus/driver.c<br>
&gt; @@ -708,6 +708,8 @@ DriverUnload(<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0__DriverSetDriverObject(NULL);<br>
&gt;=C2=A0 =C2=A0<br>
&gt; +=C2=A0 =C2=A0 EventUnregisterXenBus_Driver();<br>
&gt; +<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0ASSERT(IsZeroMemory(&amp;Driver, sizeof (XEN=
BUS_DRIVER)));<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Trace(&quot;&lt;=3D=3D=3D=3D\n&quot;);<br>
&gt; @@ -726,6 +728,7 @@ DriverAddDevice(<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0ASSERT3P(DriverObject, =3D=3D, __DriverGetDr=
iverObject());<br>
&gt;=C2=A0 =C2=A0<br>
&gt; +=C2=A0 =C2=A0 EtwEnter();<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Trace(&quot;=3D=3D=3D=3D&gt;\n&quot;);<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0__DriverAcquireMutex();<br>
&gt; @@ -737,12 +740,14 @@ DriverAddDevice(<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0__DriverReleaseMutex();<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Trace(&quot;&lt;=3D=3D=3D=3D\n&quot;);<br>
&gt; +=C2=A0 =C2=A0 EtwExit();<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0return STATUS_SUCCESS;<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0fail1:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0__DriverReleaseMutex();<br>
&gt;=C2=A0 =C2=A0<br>
&gt; +=C2=A0 =C2=A0 EtwExit2(status);<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0return status;<br>
&gt;=C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0<br>
&gt; @@ -757,6 +762,8 @@ DriverDispatch(<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0PXENBUS_DX=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 Dx;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0NTSTATUS=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 status;<br>
&gt;=C2=A0 =C2=A0<br>
&gt; +=C2=A0 =C2=A0 EtwEnter();<br>
&gt; +<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Dx =3D (PXENBUS_DX)DeviceObject-&gt;DeviceEx=
tension;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0ASSERT3P(Dx-&gt;DeviceObject, =3D=3D, Device=
Object);<br>
&gt;=C2=A0 =C2=A0<br>
&gt; @@ -800,6 +807,7 @@ DriverDispatch(<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0done:<br>
&gt; +=C2=A0 =C2=A0 EtwExit2(status);<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0return status;<br>
&gt;=C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0<br>
&gt; @@ -819,6 +827,7 @@ DriverEntry(<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0ASSERT3P(__DriverGetDriverObject(), =3D=3D, =
NULL);<br>
&gt;=C2=A0 =C2=A0<br>
&gt; +=C2=A0 =C2=A0 EventRegisterXenBus_Driver();<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0ExInitializeDriverRuntime(DrvRtPoolNxOptIn);=
<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0WdmlibProcgrpInitialize();<br>
&gt;=C2=A0 =C2=A0<br>
&gt; @@ -915,6 +924,8 @@ fail1:<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0__DriverSetDriverObject(NULL);<br>
&gt;=C2=A0 =C2=A0<br>
&gt; +=C2=A0 =C2=A0 EventUnregisterXenBus_Driver();<br>
&gt; +<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0ASSERT(IsZeroMemory(&amp;Driver, sizeof (XEN=
BUS_DRIVER)));<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0return status;<br>
&gt; diff --git a/src/xenbus/xenbus_etw.xml b/src/xenbus/xenbus_etw.xml<br>
&gt; new file mode 100644<br>
&gt; index 0000000..c73dfe6<br>
&gt; --- /dev/null<br>
&gt; +++ b/src/xenbus/xenbus_etw.xml<br>
&gt; @@ -0,0 +1,61 @@<br>
&gt; +&lt;?xml version=3D&#39;1.0&#39; encoding=3D&#39;utf-8&#39; standalon=
e=3D&#39;yes&#39;?&gt;<br>
&gt; +&lt;instrumentationManifest<br>
&gt; +=C2=A0 =C2=A0 xmlns=3D&quot;<a href=3D"http://schemas.microsoft.com/w=
in/2004/08/events" rel=3D"noreferrer" target=3D"_blank">http://schemas.micr=
osoft.com/win/2004/08/events</a>&quot;<br>
&gt; +=C2=A0 =C2=A0 xmlns:win=3D&quot;<a href=3D"http://manifests.microsoft=
.com/win/2004/08/windows/events" rel=3D"noreferrer" target=3D"_blank">http:=
//manifests.microsoft.com/win/2004/08/windows/events</a>&quot;<br>
&gt; +=C2=A0 =C2=A0 xmlns:xs=3D&quot;<a href=3D"http://www.w3.org/2001/XMLS=
chema" rel=3D"noreferrer" target=3D"_blank">http://www.w3.org/2001/XMLSchem=
a</a>&quot;<br>
&gt; +=C2=A0 =C2=A0 xmlns:xsi=3D&quot;<a href=3D"http://www.w3.org/2001/XML=
Schema-instance" rel=3D"noreferrer" target=3D"_blank">http://www.w3.org/200=
1/XMLSchema-instance</a>&quot;<br>
&gt; +=C2=A0 =C2=A0 xsi:schemaLocation=3D&quot;<a href=3D"http://schemas.mi=
crosoft.com/win/2004/08/events" rel=3D"noreferrer" target=3D"_blank">http:/=
/schemas.microsoft.com/win/2004/08/events</a> eventman.xsd&quot; &gt;<br>
&gt; +=C2=A0 &lt;instrumentation&gt;<br>
&gt; +=C2=A0 =C2=A0 &lt;events&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;provider<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 guid=3D&quot;{e580595b-a8a6-41b7-a=
9c1-1954d2138ffc}&quot;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 messageFileName=3D&quot;%SystemDri=
ve%\windows\system32\drivers\xenbus.sys&quot;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 name=3D&quot;XenBus_Driver&quot;<b=
r>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 resourceFileName=3D&quot;%SystemDr=
ive%\windows\system32\drivers\xenbus.sys&quot;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 symbol=3D&quot;DriverControlGuid&q=
uot; &gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;channels&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;channel chid=3D&quot;XENBUS&qu=
ot; name=3D&quot;XenBus&quot; type=3D&quot;Analytic&quot; enabled=3D&quot;t=
rue&quot; /&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;/channels&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;templates&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;template tid=3D&quot;tid_enter=
&quot;&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;data name=3D&quot;Modul=
e&quot; inType=3D&quot;win:Int8&quot; count=3D&quot;16&quot; outType=3D&quo=
t;xs:string&quot; /&gt;=C2=A0 =C2=A0 =C2=A0&lt;!-- 16 chars --&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;data name=3D&quot;Funct=
ion&quot; inType=3D&quot;win:Int8&quot; count=3D&quot;32&quot; outType=3D&q=
uot;xs:string&quot; /&gt;=C2=A0 =C2=A0&lt;!-- 32 chars --&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;data name=3D&quot;Line&=
quot; inType=3D&quot;win:UInt32&quot; outType=3D&quot;xs:unsignedInt&quot; =
/&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;!-- line number --&gt;<br=
>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;/template&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;template tid=3D&quot;tid_exit&=
quot;&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;data name=3D&quot;Modul=
e&quot; inType=3D&quot;win:Int8&quot; count=3D&quot;16&quot; outType=3D&quo=
t;xs:string&quot; /&gt;=C2=A0 =C2=A0 =C2=A0&lt;!-- 16 chars --&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;data name=3D&quot;Funct=
ion&quot; inType=3D&quot;win:Int8&quot; count=3D&quot;32&quot; outType=3D&q=
uot;xs:string&quot; /&gt;=C2=A0 =C2=A0&lt;!-- 32 chars --&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;data name=3D&quot;Line&=
quot; inType=3D&quot;win:UInt32&quot; outType=3D&quot;xs:unsignedInt&quot; =
/&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;!-- line number --&gt;<br=
>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;data name=3D&quot;Statu=
s&quot; inType=3D&quot;win:UInt32&quot; outType=3D&quot;xs:unsignedInt&quot=
; /&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;!-- NTSTATUS --&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;/template&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;/templates&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;events&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;event<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 channel=3D&quot;XENBUS&quot=
;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 level=3D&quot;win:Informati=
onal&quot;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 message=3D&quot;$(string.Ev=
entTraceInfo.Enter)&quot;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 opcode=3D&quot;win:Info&quo=
t;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 symbol=3D&quot;EvtEnter&quo=
t;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 template=3D&quot;tid_enter&=
quot;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 value=3D&quot;10&quot; /&gt=
;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;event<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 channel=3D&quot;XENBUS&quot=
;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 level=3D&quot;win:Informati=
onal&quot;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 message=3D&quot;$(string.Ev=
entTraceInfo.Exit)&quot;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 opcode=3D&quot;win:Info&quo=
t;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 symbol=3D&quot;EvtExit&quot=
;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 template=3D&quot;tid_exit&q=
uot;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 value=3D&quot;11&quot; /&gt=
;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;/events&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;/provider&gt;<br>
&gt; +=C2=A0 =C2=A0 &lt;/events&gt;<br>
&gt; +=C2=A0 &lt;/instrumentation&gt;<br>
&gt; +=C2=A0 &lt;localization xmlns=3D&quot;<a href=3D"http://schemas.micro=
soft.com/win/2004/08/events" rel=3D"noreferrer" target=3D"_blank">http://sc=
hemas.microsoft.com/win/2004/08/events</a>&quot;&gt;<br>
&gt; +=C2=A0 =C2=A0 &lt;resources culture=3D&quot;en-US&quot;&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;stringTable&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;string id=3D&quot;EventTraceInfo.Ente=
r&quot; value=3D&quot;[Enter]&quot; /&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;string id=3D&quot;EventTraceInfo.Exit=
&quot;=C2=A0 value=3D&quot;[Exit ]&quot; /&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;/stringTable&gt;<br>
&gt; +=C2=A0 =C2=A0 &lt;/resources&gt;<br>
&gt; +=C2=A0 &lt;/localization&gt;<br>
&gt; +&lt;/instrumentationManifest&gt;<br>
&gt; diff --git a/vs2019/xenbus/xenbus.vcxproj b/vs2019/xenbus/xenbus.vcxpr=
oj<br>
&gt; index aa88980..e191527 100644<br>
&gt; --- a/vs2019/xenbus/xenbus.vcxproj<br>
&gt; +++ b/vs2019/xenbus/xenbus.vcxproj<br>
&gt; @@ -20,7 +20,7 @@<br>
&gt;=C2=A0 =C2=A0 =C2=A0&lt;ItemDefinitionGroup&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;ClCompile&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;AdditionalOptions&gt;/ZH:SHA_256 =
%(AdditionalOptions)&lt;/AdditionalOptions&gt;<br>
&gt; -=C2=A0 =C2=A0 =C2=A0 &lt;PreprocessorDefinitions&gt;PROJECT=3D$(Proje=
ctName);POOL_NX_OPTIN=3D1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)&lt=
;/PreprocessorDefinitions&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;PreprocessorDefinitions&gt;PROJECT=3D$(Proje=
ctName);POOL_NX_OPTIN=3D1;NT_PROCESSOR_GROUPS;ETW_HEADER=3D&quot;xenbus_etw=
.h&quot;;%(PreprocessorDefinitions)&lt;/PreprocessorDefinitions&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;IntrinsicFunctions&gt;true&lt;/In=
trinsicFunctions&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;AdditionalIncludeDirectories&gt;$=
(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;..\..\src\common=
;&lt;/AdditionalIncludeDirectories&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;WarningLevel&gt;EnableAllWarnings=
&lt;/WarningLevel&gt;<br>
&gt; @@ -38,6 +38,13 @@<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;MapExports&gt;true&lt;/MapExports=
&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;AdditionalOptions&gt;/INTEGRITYCH=
ECK %(AdditionalOptions)&lt;/AdditionalOptions&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;/Link&gt;<br>
&gt; +=C2=A0 =C2=A0 &lt;MessageCompile&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;HeaderFilePath&gt;..\..\include&lt;/HeaderFi=
lePath&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;GeneratedFilesBaseName&gt;%(Filename)&lt;/Ge=
neratedFilesBaseName&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;RCFilePath&gt;..\..\src\xenbus&lt;/RCFilePat=
h&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;GenerateKernelModeLoggingMacros&gt;true&lt;/=
GenerateKernelModeLoggingMacros&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;UseBaseNameOfInput&gt;true&lt;/UseBaseNameOf=
Input&gt;<br>
&gt; +=C2=A0 =C2=A0 &lt;/MessageCompile&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;DriverSign&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;FileDigestAlgorithm&gt;sha256&lt;=
/FileDigestAlgorithm&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;/DriverSign&gt;<br>
&gt; @@ -68,6 +75,7 @@<br>
&gt;=C2=A0 =C2=A0 =C2=A0&lt;ItemGroup&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;FilesToPackage Include=3D&quot;$(TargetP=
ath)&quot; /&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;FilesToPackage Include=3D&quot;$(OutDir)=
$(TargetName).pdb&quot; /&gt;<br>
&gt; +=C2=A0 =C2=A0 &lt;FilesToPackage Include=3D&quot;..\..\src\xenbus\xen=
bus_etw.xml&quot; /&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&lt;/ItemGroup&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&lt;ItemGroup&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;ClCompile Include=3D&quot;..\..\src\comm=
on\registry.c&quot; /&gt;<br>
&gt; @@ -97,5 +105,8 @@<br>
&gt;=C2=A0 =C2=A0 =C2=A0&lt;ItemGroup&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;ResourceCompile Include=3D&quot;..\..\sr=
c\xenbus\xenbus.rc&quot; /&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&lt;/ItemGroup&gt;<br>
&gt; +=C2=A0 &lt;ItemGroup&gt;<br>
&gt; +=C2=A0 =C2=A0 &lt;MessageCompile Include=3D&quot;..\..\src\xenbus\xen=
bus_etw.xml&quot; /&gt;<br>
&gt; +=C2=A0 &lt;/ItemGroup&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&lt;Import Project=3D&quot;$(VCTargetsPath)\Microso=
ft.Cpp.targets&quot; /&gt;<br>
&gt;=C2=A0 =C2=A0&lt;/Project&gt;<br>
&gt; diff --git a/vs2022/xenbus/xenbus.vcxproj b/vs2022/xenbus/xenbus.vcxpr=
oj<br>
&gt; index ce0526f..1322d15 100644<br>
&gt; --- a/vs2022/xenbus/xenbus.vcxproj<br>
&gt; +++ b/vs2022/xenbus/xenbus.vcxproj<br>
&gt; @@ -20,7 +20,7 @@<br>
&gt;=C2=A0 =C2=A0 =C2=A0&lt;ItemDefinitionGroup&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;ClCompile&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;AdditionalOptions&gt;/ZH:SHA_256 =
%(AdditionalOptions)&lt;/AdditionalOptions&gt;<br>
&gt; -=C2=A0 =C2=A0 =C2=A0 &lt;PreprocessorDefinitions&gt;PROJECT=3D$(Proje=
ctName);POOL_NX_OPTIN=3D1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)&lt=
;/PreprocessorDefinitions&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;PreprocessorDefinitions&gt;PROJECT=3D$(Proje=
ctName);POOL_NX_OPTIN=3D1;NT_PROCESSOR_GROUPS;ETW_HEADER=3D&quot;xenbus_etw=
.h&quot;;%(PreprocessorDefinitions)&lt;/PreprocessorDefinitions&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;IntrinsicFunctions&gt;true&lt;/In=
trinsicFunctions&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;AdditionalIncludeDirectories&gt;$=
(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;..\..\src\common=
;&lt;/AdditionalIncludeDirectories&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;WarningLevel&gt;EnableAllWarnings=
&lt;/WarningLevel&gt;<br>
&gt; @@ -38,6 +38,13 @@<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;MapExports&gt;true&lt;/MapExports=
&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;AdditionalOptions&gt;/INTEGRITYCH=
ECK %(AdditionalOptions)&lt;/AdditionalOptions&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;/Link&gt;<br>
&gt; +=C2=A0 =C2=A0 &lt;MessageCompile&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;HeaderFilePath&gt;..\..\include&lt;/HeaderFi=
lePath&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;GeneratedFilesBaseName&gt;%(Filename)&lt;/Ge=
neratedFilesBaseName&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;RCFilePath&gt;..\..\src\xenbus&lt;/RCFilePat=
h&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;GenerateKernelModeLoggingMacros&gt;true&lt;/=
GenerateKernelModeLoggingMacros&gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;UseBaseNameOfInput&gt;true&lt;/UseBaseNameOf=
Input&gt;<br>
&gt; +=C2=A0 =C2=A0 &lt;/MessageCompile&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;DriverSign&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;FileDigestAlgorithm&gt;sha256&lt;=
/FileDigestAlgorithm&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;/DriverSign&gt;<br>
&gt; @@ -60,6 +67,7 @@<br>
&gt;=C2=A0 =C2=A0 =C2=A0&lt;ItemGroup&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;FilesToPackage Include=3D&quot;$(TargetP=
ath)&quot; /&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;FilesToPackage Include=3D&quot;$(OutDir)=
$(TargetName).pdb&quot; /&gt;<br>
&gt; +=C2=A0 =C2=A0 &lt;FilesToPackage Include=3D&quot;..\..\src\xenbus\xen=
bus_etw.xml&quot; /&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&lt;/ItemGroup&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&lt;ItemGroup&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;ClCompile Include=3D&quot;..\..\src\comm=
on\registry.c&quot; /&gt;<br>
&gt; @@ -89,5 +97,8 @@<br>
&gt;=C2=A0 =C2=A0 =C2=A0&lt;ItemGroup&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;ResourceCompile Include=3D&quot;..\..\sr=
c\xenbus\xenbus.rc&quot; /&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&lt;/ItemGroup&gt;<br>
&gt; +=C2=A0 &lt;ItemGroup&gt;<br>
&gt; +=C2=A0 =C2=A0 &lt;MessageCompile Include=3D&quot;..\..\src\xenbus\xen=
bus_etw.xml&quot; /&gt;<br>
&gt; +=C2=A0 &lt;/ItemGroup&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0&lt;Import Project=3D&quot;$(VCTargetsPath)\Microso=
ft.Cpp.targets&quot; /&gt;<br>
&gt;=C2=A0 =C2=A0&lt;/Project&gt;<br>
<br>
<br>
</blockquote></div>

--0000000000005bf5a40610613519--


From win-pv-devel-bounces@lists.xenproject.org Fri Feb 02 07:39:50 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Feb 2024 07:39:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.674829.1049998 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rVo9O-0004Oa-D2; Fri, 02 Feb 2024 07:39:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 674829.1049998; Fri, 02 Feb 2024 07:39: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 1rVo9O-0004OT-9U; Fri, 02 Feb 2024 07:39:50 +0000
Received: by outflank-mailman (input) for mailman id 674829;
 Fri, 02 Feb 2024 07:39:49 +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=tPCe=JL=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1rVo9N-0004JK-AH
 for win-pv-devel@lists.xenproject.org; Fri, 02 Feb 2024 07:39:49 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3d0b7774-c19e-11ee-98f5-efadbce2ee36;
 Fri, 02 Feb 2024 08:39:46 +0100 (CET)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2cf206e4d56so22708001fa.3
 for <win-pv-devel@lists.xenproject.org>; Thu, 01 Feb 2024 23:39:46 -0800 (PST)
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: 3d0b7774-c19e-11ee-98f5-efadbce2ee36
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1706859586; x=1707464386; 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=6F3YgIb56GhSi9ZD6uW3lYurhAZZhxrzlOw2j6cjGVc=;
        b=TpguZ75zJK3OcfAZn32srWw5APEkEb/mVmLzjYB6NoQugeROmDLiqRZQLrMWnUtlG/
         HMDz1v9uS2YOLRDE51tLUo2LTjIBwRZd1ygKzdBqzkpd0U48xOg53rrV3VwPzJVpzklo
         HF0dC527RERSMEc3A7yoB6NvVfNoLbkJ1Bs/A=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1706859586; x=1707464386;
        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=6F3YgIb56GhSi9ZD6uW3lYurhAZZhxrzlOw2j6cjGVc=;
        b=CbxqUR5m6WJODgK5gzWT+R0pko/l6j1wrFouATIbiLWi/4T8Bp7jTvk1oRyaPHMwPJ
         2xdRUhFOnBGTnZsIHXZ5wgh2OabfnuMkv/WudkL5+2hb75S5IA7Yp69vokYeVTY/VEMp
         QLwnCiSfGfqHQMyFEjwbRbfj2M82hGYnsC6Vqh+Zo5E9VKLXg2CHMHP8w3yBNxpawNDq
         j8hhsazUkDhNsJU2pY8WSkUXRiTXdjMlg8kib/CdGl3SpJBvvrXkHryGJAxRQa/ymHLz
         qCulYUNH8vHVYUS44ZsTSfo+IhuCUXlxeQPtjcB5lKO8U51low2xb8KortVTAOiZ9zN5
         ckcQ==
X-Gm-Message-State: AOJu0YxibSJsiHQQWBpsvb4+jRiUzKMsoT6sCH10EK6TFopDR1CIycg6
	vu9VoCsX+Oo2SxKw9W8P3bGFVMVGQ6DM5yByo26yJB7OGBU75uuSzfxRW4Jq3mOOlB1nOtS1DX2
	YDVudoBTuni3mvyE3HCxN61SD+5PdSIqJXGCO
X-Google-Smtp-Source: AGHT+IHVnl4Z9cy9mMg72URPHjtkZy0W3ameXG6s7Efra70MO71K68PbdVT5qZHtUvFm0mtcIqc8qCGjLSmArLNLCXo=
X-Received: by 2002:a2e:9c0c:0:b0:2cf:35d8:31ee with SMTP id
 s12-20020a2e9c0c000000b002cf35d831eemr2446392lji.16.1706859586367; Thu, 01
 Feb 2024 23:39:46 -0800 (PST)
MIME-Version: 1.0
References: <20240131113703.1058-1-owen.smith@cloud.com> <1fc70bca-9e90-493f-a275-d57f56012459@xen.org>
In-Reply-To: <1fc70bca-9e90-493f-a275-d57f56012459@xen.org>
From: Owen Smith <owen.smith@citrix.com>
Date: Fri, 2 Feb 2024 07:39:34 +0000
Message-ID: <CAC_UY89Bc4cp+H8YJgqDf_esPM6-cA9voLtk=PTQpfUxe6W1yg@mail.gmail.com>
Subject: Re: [PATCH 1/2] XenVbd: Added MSBuild map file generation and handling.
To: paul@xen.org
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="00000000000053d3e80610613784"

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

I will resubmit with better patch comments

Owen

On Thu, Feb 1, 2024 at 5:59=E2=80=AFPM Paul Durrant <xadimgnik@gmail.com> w=
rote:

> On 31/01/2024 11:37, Owen Smith wrote:
> > Suggested-by: Alex Burke <Alex.Burke@cloud.com>
> > Signed-off-by: Owen Smith <owen.smith@cloud.com>
>
> For this and the remaining patches tagged XenVif, please supply some
> text in the commit comment.
>
>    Paul
>
> > ---
> >   build.ps1                      | 8 ++++++++
> >   vs2019/xencrsh/xencrsh.vcxproj | 2 ++
> >   vs2019/xendisk/xendisk.vcxproj | 2 ++
> >   vs2019/xenvbd/xenvbd.vcxproj   | 2 ++
> >   vs2022/xencrsh/xencrsh.vcxproj | 2 ++
> >   vs2022/xendisk/xendisk.vcxproj | 2 ++
> >   vs2022/xenvbd/xenvbd.vcxproj   | 2 ++
> >   7 files changed, 20 insertions(+)
> >
> > diff --git a/build.ps1 b/build.ps1
> > index 4ff02c1..a178660 100644
> > --- a/build.ps1
> > +++ b/build.ps1
> > @@ -14,6 +14,7 @@ param(
> >   #
> >   # Script Body
> >   #
> > +$TargetPath =3D "xenvbd"
> >
> >   Function Build {
> >       param(
> > @@ -37,6 +38,13 @@ Function Build {
> >               Write-Host -ForegroundColor Red "ERROR: Build failed,
> code:" $LASTEXITCODE
> >               Exit $LASTEXITCODE
> >       }
> > +     # Find and Move map files
> > +     foreach ($item in Get-ChildItem -Path
> $solutiondir[$visualstudioversion] -Include *.map -Recurse)
> > +     {
> > +             $filename =3D Split-Path -Path $item -Leaf -Resolve
> > +             $newpath =3D "$TargetPath\$Arch\$filename"
> > +             Move-Item $item -Destination $newpath -Force
> > +     }
> >   }
> >
> >   Function SdvBuild {
> > diff --git a/vs2019/xencrsh/xencrsh.vcxproj
> b/vs2019/xencrsh/xencrsh.vcxproj
> > index 5433a39..d610072 100644
> > --- a/vs2019/xencrsh/xencrsh.vcxproj
> > +++ b/vs2019/xencrsh/xencrsh.vcxproj
> > @@ -36,6 +36,8 @@
> >
>  <AdditionalDependencies>$(DDK_LIB_PATH)/storport.lib;$(DDK_LIB_PATH)/lib=
cntpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
> >
>  <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneratio=
n>
> >         <CETCompat>true</CETCompat>
> > +      <GenerateMapFile>true</GenerateMapFile>
> > +      <MapExports>true</MapExports>
> >       </Link>
> >       <DriverSign>
> >         <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
> > diff --git a/vs2019/xendisk/xendisk.vcxproj
> b/vs2019/xendisk/xendisk.vcxproj
> > index 6e714ae..7024581 100644
> > --- a/vs2019/xendisk/xendisk.vcxproj
> > +++ b/vs2019/xendisk/xendisk.vcxproj
> > @@ -34,6 +34,8 @@
> >
>  <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencie=
s>
> >
>  <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneratio=
n>
> >         <CETCompat>true</CETCompat>
> > +      <GenerateMapFile>true</GenerateMapFile>
> > +      <MapExports>true</MapExports>
> >       </Link>
> >       <DriverSign>
> >         <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
> > diff --git a/vs2019/xenvbd/xenvbd.vcxproj b/vs2019/xenvbd/xenvbd.vcxpro=
j
> > index 470d16d..80a13a2 100644
> > --- a/vs2019/xenvbd/xenvbd.vcxproj
> > +++ b/vs2019/xenvbd/xenvbd.vcxproj
> > @@ -34,6 +34,8 @@
> >
>  <AdditionalDependencies>$(ProjectDir)..\$(ConfigurationName)\$(Platform)=
\xencrsh.lib;$(DDK_LIB_PATH)/storport.lib;$(DDK_LIB_PATH)/libcntpr.lib;%(Ad=
ditionalDependencies)</AdditionalDependencies>
> >
>  <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneratio=
n>
> >         <CETCompat>true</CETCompat>
> > +      <GenerateMapFile>true</GenerateMapFile>
> > +      <MapExports>true</MapExports>
> >       </Link>
> >       <DriverSign>
> >         <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
> > diff --git a/vs2022/xencrsh/xencrsh.vcxproj
> b/vs2022/xencrsh/xencrsh.vcxproj
> > index 2026310..d4d9ad3 100644
> > --- a/vs2022/xencrsh/xencrsh.vcxproj
> > +++ b/vs2022/xencrsh/xencrsh.vcxproj
> > @@ -36,6 +36,8 @@
> >
>  <AdditionalDependencies>$(DDK_LIB_PATH)/storport.lib;$(DDK_LIB_PATH)/lib=
cntpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
> >
>  <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneratio=
n>
> >         <CETCompat>true</CETCompat>
> > +      <GenerateMapFile>true</GenerateMapFile>
> > +      <MapExports>true</MapExports>
> >       </Link>
> >       <DriverSign>
> >         <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
> > diff --git a/vs2022/xendisk/xendisk.vcxproj
> b/vs2022/xendisk/xendisk.vcxproj
> > index 2fe56f5..ae2f56d 100644
> > --- a/vs2022/xendisk/xendisk.vcxproj
> > +++ b/vs2022/xendisk/xendisk.vcxproj
> > @@ -34,6 +34,8 @@
> >
>  <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencie=
s>
> >
>  <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneratio=
n>
> >         <CETCompat>true</CETCompat>
> > +      <GenerateMapFile>true</GenerateMapFile>
> > +      <MapExports>true</MapExports>
> >       </Link>
> >       <DriverSign>
> >         <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
> > diff --git a/vs2022/xenvbd/xenvbd.vcxproj b/vs2022/xenvbd/xenvbd.vcxpro=
j
> > index 6d51630..fd95608 100644
> > --- a/vs2022/xenvbd/xenvbd.vcxproj
> > +++ b/vs2022/xenvbd/xenvbd.vcxproj
> > @@ -34,6 +34,8 @@
> >
>  <AdditionalDependencies>$(ProjectDir)..\$(ConfigurationName)\$(Platform)=
\xencrsh.lib;$(DDK_LIB_PATH)/storport.lib;$(DDK_LIB_PATH)/libcntpr.lib;%(Ad=
ditionalDependencies)</AdditionalDependencies>
> >
>  <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneratio=
n>
> >         <CETCompat>true</CETCompat>
> > +      <GenerateMapFile>true</GenerateMapFile>
> > +      <MapExports>true</MapExports>
> >       </Link>
> >       <DriverSign>
> >         <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
>
>
>

--00000000000053d3e80610613784
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">I will resubmit with better patch comments</div><div class=3D"gmail_defa=
ult" 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_qu=
ote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, Feb 1, 2024 at 5:59=E2=
=80=AFPM Paul Durrant &lt;<a href=3D"mailto:xadimgnik@gmail.com">xadimgnik@=
gmail.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">On 31/01/2024 11:37, Owen Smith wrote:<br>
&gt; Suggested-by: Alex Burke &lt;<a href=3D"mailto:Alex.Burke@cloud.com" t=
arget=3D"_blank">Alex.Burke@cloud.com</a>&gt;<br>
&gt; Signed-off-by: Owen Smith &lt;<a href=3D"mailto:owen.smith@cloud.com" =
target=3D"_blank">owen.smith@cloud.com</a>&gt;<br>
<br>
For this and the remaining patches tagged XenVif, please supply some <br>
text in the commit comment.<br>
<br>
=C2=A0 =C2=A0Paul<br>
<br>
&gt; ---<br>
&gt;=C2=A0 =C2=A0build.ps1=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 | 8 ++++++++<br>
&gt;=C2=A0 =C2=A0vs2019/xencrsh/xencrsh.vcxproj | 2 ++<br>
&gt;=C2=A0 =C2=A0vs2019/xendisk/xendisk.vcxproj | 2 ++<br>
&gt;=C2=A0 =C2=A0vs2019/xenvbd/xenvbd.vcxproj=C2=A0 =C2=A0| 2 ++<br>
&gt;=C2=A0 =C2=A0vs2022/xencrsh/xencrsh.vcxproj | 2 ++<br>
&gt;=C2=A0 =C2=A0vs2022/xendisk/xendisk.vcxproj | 2 ++<br>
&gt;=C2=A0 =C2=A0vs2022/xenvbd/xenvbd.vcxproj=C2=A0 =C2=A0| 2 ++<br>
&gt;=C2=A0 =C2=A07 files changed, 20 insertions(+)<br>
&gt; <br>
&gt; diff --git a/build.ps1 b/build.ps1<br>
&gt; index 4ff02c1..a178660 100644<br>
&gt; --- a/build.ps1<br>
&gt; +++ b/build.ps1<br>
&gt; @@ -14,6 +14,7 @@ param(<br>
&gt;=C2=A0 =C2=A0#<br>
&gt;=C2=A0 =C2=A0# Script Body<br>
&gt;=C2=A0 =C2=A0#<br>
&gt; +$TargetPath =3D &quot;xenvbd&quot;<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0Function Build {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0param(<br>
&gt; @@ -37,6 +38,13 @@ Function Build {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Write-Host -Fore=
groundColor Red &quot;ERROR: Build failed, code:&quot; $LASTEXITCODE<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Exit $LASTEXITCO=
DE<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; +=C2=A0 =C2=A0 =C2=A0# Find and Move map files<br>
&gt; +=C2=A0 =C2=A0 =C2=A0foreach ($item in Get-ChildItem -Path $solutiondi=
r[$visualstudioversion] -Include *.map -Recurse)<br>
&gt; +=C2=A0 =C2=A0 =C2=A0{<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0$filename =3D Split-P=
ath -Path $item -Leaf -Resolve<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0$newpath =3D &quot;$T=
argetPath\$Arch\$filename&quot;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Move-Item $item -Dest=
ination $newpath -Force<br>
&gt; +=C2=A0 =C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0Function SdvBuild {<br>
&gt; diff --git a/vs2019/xencrsh/xencrsh.vcxproj b/vs2019/xencrsh/xencrsh.v=
cxproj<br>
&gt; index 5433a39..d610072 100644<br>
&gt; --- a/vs2019/xencrsh/xencrsh.vcxproj<br>
&gt; +++ b/vs2019/xencrsh/xencrsh.vcxproj<br>
&gt; @@ -36,6 +36,8 @@<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;AdditionalDependencies&gt;$(DDK_L=
IB_PATH)/storport.lib;$(DDK_LIB_PATH)/libcntpr.lib;%(AdditionalDependencies=
)&lt;/AdditionalDependencies&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;LinkTimeCodeGeneration&gt;UseLink=
TimeCodeGeneration&lt;/LinkTimeCodeGeneration&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;CETCompat&gt;true&lt;/CETCompat&g=
t;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;GenerateMapFile&gt;true&lt;/GenerateMapFile&=
gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;MapExports&gt;true&lt;/MapExports&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;/Link&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;DriverSign&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;FileDigestAlgorithm&gt;sha256&lt;=
/FileDigestAlgorithm&gt;<br>
&gt; diff --git a/vs2019/xendisk/xendisk.vcxproj b/vs2019/xendisk/xendisk.v=
cxproj<br>
&gt; index 6e714ae..7024581 100644<br>
&gt; --- a/vs2019/xendisk/xendisk.vcxproj<br>
&gt; +++ b/vs2019/xendisk/xendisk.vcxproj<br>
&gt; @@ -34,6 +34,8 @@<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;AdditionalDependencies&gt;%(Addit=
ionalDependencies)&lt;/AdditionalDependencies&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;LinkTimeCodeGeneration&gt;UseLink=
TimeCodeGeneration&lt;/LinkTimeCodeGeneration&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;CETCompat&gt;true&lt;/CETCompat&g=
t;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;GenerateMapFile&gt;true&lt;/GenerateMapFile&=
gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;MapExports&gt;true&lt;/MapExports&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;/Link&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;DriverSign&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;FileDigestAlgorithm&gt;sha256&lt;=
/FileDigestAlgorithm&gt;<br>
&gt; diff --git a/vs2019/xenvbd/xenvbd.vcxproj b/vs2019/xenvbd/xenvbd.vcxpr=
oj<br>
&gt; index 470d16d..80a13a2 100644<br>
&gt; --- a/vs2019/xenvbd/xenvbd.vcxproj<br>
&gt; +++ b/vs2019/xenvbd/xenvbd.vcxproj<br>
&gt; @@ -34,6 +34,8 @@<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;AdditionalDependencies&gt;$(Proje=
ctDir)..\$(ConfigurationName)\$(Platform)\xencrsh.lib;$(DDK_LIB_PATH)/storp=
ort.lib;$(DDK_LIB_PATH)/libcntpr.lib;%(AdditionalDependencies)&lt;/Addition=
alDependencies&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;LinkTimeCodeGeneration&gt;UseLink=
TimeCodeGeneration&lt;/LinkTimeCodeGeneration&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;CETCompat&gt;true&lt;/CETCompat&g=
t;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;GenerateMapFile&gt;true&lt;/GenerateMapFile&=
gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;MapExports&gt;true&lt;/MapExports&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;/Link&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;DriverSign&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;FileDigestAlgorithm&gt;sha256&lt;=
/FileDigestAlgorithm&gt;<br>
&gt; diff --git a/vs2022/xencrsh/xencrsh.vcxproj b/vs2022/xencrsh/xencrsh.v=
cxproj<br>
&gt; index 2026310..d4d9ad3 100644<br>
&gt; --- a/vs2022/xencrsh/xencrsh.vcxproj<br>
&gt; +++ b/vs2022/xencrsh/xencrsh.vcxproj<br>
&gt; @@ -36,6 +36,8 @@<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;AdditionalDependencies&gt;$(DDK_L=
IB_PATH)/storport.lib;$(DDK_LIB_PATH)/libcntpr.lib;%(AdditionalDependencies=
)&lt;/AdditionalDependencies&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;LinkTimeCodeGeneration&gt;UseLink=
TimeCodeGeneration&lt;/LinkTimeCodeGeneration&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;CETCompat&gt;true&lt;/CETCompat&g=
t;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;GenerateMapFile&gt;true&lt;/GenerateMapFile&=
gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;MapExports&gt;true&lt;/MapExports&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;/Link&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;DriverSign&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;FileDigestAlgorithm&gt;sha256&lt;=
/FileDigestAlgorithm&gt;<br>
&gt; diff --git a/vs2022/xendisk/xendisk.vcxproj b/vs2022/xendisk/xendisk.v=
cxproj<br>
&gt; index 2fe56f5..ae2f56d 100644<br>
&gt; --- a/vs2022/xendisk/xendisk.vcxproj<br>
&gt; +++ b/vs2022/xendisk/xendisk.vcxproj<br>
&gt; @@ -34,6 +34,8 @@<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;AdditionalDependencies&gt;%(Addit=
ionalDependencies)&lt;/AdditionalDependencies&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;LinkTimeCodeGeneration&gt;UseLink=
TimeCodeGeneration&lt;/LinkTimeCodeGeneration&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;CETCompat&gt;true&lt;/CETCompat&g=
t;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;GenerateMapFile&gt;true&lt;/GenerateMapFile&=
gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;MapExports&gt;true&lt;/MapExports&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;/Link&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;DriverSign&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;FileDigestAlgorithm&gt;sha256&lt;=
/FileDigestAlgorithm&gt;<br>
&gt; diff --git a/vs2022/xenvbd/xenvbd.vcxproj b/vs2022/xenvbd/xenvbd.vcxpr=
oj<br>
&gt; index 6d51630..fd95608 100644<br>
&gt; --- a/vs2022/xenvbd/xenvbd.vcxproj<br>
&gt; +++ b/vs2022/xenvbd/xenvbd.vcxproj<br>
&gt; @@ -34,6 +34,8 @@<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;AdditionalDependencies&gt;$(Proje=
ctDir)..\$(ConfigurationName)\$(Platform)\xencrsh.lib;$(DDK_LIB_PATH)/storp=
ort.lib;$(DDK_LIB_PATH)/libcntpr.lib;%(AdditionalDependencies)&lt;/Addition=
alDependencies&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;LinkTimeCodeGeneration&gt;UseLink=
TimeCodeGeneration&lt;/LinkTimeCodeGeneration&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;CETCompat&gt;true&lt;/CETCompat&g=
t;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;GenerateMapFile&gt;true&lt;/GenerateMapFile&=
gt;<br>
&gt; +=C2=A0 =C2=A0 =C2=A0 &lt;MapExports&gt;true&lt;/MapExports&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;/Link&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;DriverSign&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;FileDigestAlgorithm&gt;sha256&lt;=
/FileDigestAlgorithm&gt;<br>
<br>
<br>
</blockquote></div>

--00000000000053d3e80610613784--


From win-pv-devel-bounces@lists.xenproject.org Fri Feb 02 07:41:08 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Feb 2024 07:41:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.674841.1050002 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rVoAe-0005Ko-Gz; Fri, 02 Feb 2024 07:41:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 674841.1050002; Fri, 02 Feb 2024 07:41:08 +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 1rVoAe-0005Kh-Dw; Fri, 02 Feb 2024 07:41:08 +0000
Received: by outflank-mailman (input) for mailman id 674841;
 Fri, 02 Feb 2024 07:41:07 +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=tPCe=JL=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1rVoAd-0004Qj-EC
 for win-pv-devel@lists.xenproject.org; Fri, 02 Feb 2024 07:41:07 +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 6ca25572-c19e-11ee-8a43-1f161083a0e0;
 Fri, 02 Feb 2024 08:41:06 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-50eac018059so2224092e87.0
 for <win-pv-devel@lists.xenproject.org>; Thu, 01 Feb 2024 23:41:06 -0800 (PST)
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: 6ca25572-c19e-11ee-8a43-1f161083a0e0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1706859666; x=1707464466; 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=91yo+ocpnh2EjF2t0B/lLpF450N7gJ3qtQRXnWRA83M=;
        b=iTp92RoRUuOuqa6fzUfc5xT1Shf2UXoYdJgWahKicpJ2B3OQefIal6nyDR3omJ6FeH
         BpM/XmA3rNOkx60RiowxDMoPrHTpcU2X9rQ6Kp8efEEjgIMqQ8bA1BQOaboT3AkftIWl
         NqLMuK4hybIXTV09Rz8EfiNFsxREpAgmJdG5c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1706859666; x=1707464466;
        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=91yo+ocpnh2EjF2t0B/lLpF450N7gJ3qtQRXnWRA83M=;
        b=CtdoPf25uPiL03Fogm7da7Vzc3a0kUgZG2nIBA/ujsi2EvXgLjqWVsgol62p88HiUE
         KqlL5Oj+KCH8c0PWVOuQrruPoMT0BC1eAPVPdE3poeTka+0LnpI5cXMjmQo3mNfwTYiK
         fGsvPGoH2xFO9B2z6qD7AEjR0x45iVv7p6jgLt3pMpTzkM9PhexbdLO91DV30J2NH5oQ
         ip9FIeGZm00s9qOZO1LqwdR+m2y3nl41AE0TT69eImDqzMqIcHQJuc1TpoouUvfpTdzd
         2Lbh+qQ0Fq7HwCFzpu4Tt+ysWc9IK4MLPrJiH5P0DMe+olR+SOln3zJ26y36kiJpB0+r
         dZwA==
X-Gm-Message-State: AOJu0Yx3nF1V7drSDB5YxHQZ90aQLJcnHqR/lowWPWnJqgyNCEj/XfRt
	uLcKlzCaJubaYS/1oER0Tj+nTLYCTcLKZKbnzPMqK2B30L0pU5F9FOrqQwEJ812FG8T4Rg3UcPY
	s4TaP/40pdCGwfOokl7jHTEPo8ZPU94V9QDGRNBavZ1dfNws=
X-Google-Smtp-Source: AGHT+IEDaIgfoQ4yUSs1cF/HCJ4/bQFlqI4pOaQdaUluQOiy4d/f1UMA/opFeVd1APyg7wRImE+qL0aGsrif3zLNvu0=
X-Received: by 2002:a05:6512:3252:b0:511:1dff:f605 with SMTP id
 c18-20020a056512325200b005111dfff605mr674084lfr.46.1706859666253; Thu, 01 Feb
 2024 23:41:06 -0800 (PST)
MIME-Version: 1.0
References: <20240131081236.1837-1-owen.smith@cloud.com> <20240131081236.1837-2-owen.smith@cloud.com>
 <f0f59aab-5113-415d-b1b8-9b1a558b1c5b@xen.org>
In-Reply-To: <f0f59aab-5113-415d-b1b8-9b1a558b1c5b@xen.org>
From: Owen Smith <owen.smith@citrix.com>
Date: Fri, 2 Feb 2024 07:40:54 +0000
Message-ID: <CAC_UY8-piFuHm-anfSg8WRSs-LK9rFwTTXdYiobCcd0yUAq3_A@mail.gmail.com>
Subject: Re: [PATCH 2/4] XenAgent: Advertise all features in 1 location
To: paul@xen.org
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="00000000000016c5930610613c65"

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

This is primarily to clean up the code - I will resubmit with a better
comment

Owen

On Thu, Feb 1, 2024 at 5:49=E2=80=AFPM Paul Durrant <xadimgnik@gmail.com> w=
rote:

> On 31/01/2024 08:12, Owen Smith wrote:> Signed-off-by: Owen Smith
> <owen.smith@cloud.com>
>
> Can we have *some* text to justify the change?
>
>    Paul
>
> > ---
> >   src/xenagent/xenifacedevice.cpp | 32 +++++++++++++++++++++-----------
> >   src/xenagent/xenifacedevice.h   |  1 +
> >   2 files changed, 22 insertions(+), 11 deletions(-)
> >
> > diff --git a/src/xenagent/xenifacedevice.cpp
> b/src/xenagent/xenifacedevice.cpp
> > index 69a584b..9ed1aa7 100644
> > --- a/src/xenagent/xenifacedevice.cpp
> > +++ b/src/xenagent/xenifacedevice.cpp
> > @@ -213,6 +213,8 @@ CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent*
> agent) : CDeviceList(GUID_IN
> >       if (m_agent->ConvDevicePresent())
> >           StartSlateModeWatch(device);
> >
> > +    AdvertiseFeatures(device, true);
> > +
> >       SetXenTime(device);
> >   }
> >
> > @@ -228,6 +230,8 @@ CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent*
> agent) : CDeviceList(GUID_IN
> >           device->SuspendDeregister(m_ctxt_suspend);
> >       m_ctxt_suspend =3D NULL;
> >
> > +    AdvertiseFeatures(device, false);
> > +
> >       if (m_agent->ConvDevicePresent())
> >           StopSlateModeWatch(device);
> >
> > @@ -242,6 +246,8 @@ CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent*
> agent) : CDeviceList(GUID_IN
> >       if (dev !=3D GetFirstDevice())
> >           return;
> >
> > +    AdvertiseFeatures(device, false);
> > +
> >       if (m_agent->ConvDevicePresent())
> >           StopSlateModeWatch(device);
> >
> > @@ -260,6 +266,8 @@ CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent*
> agent) : CDeviceList(GUID_IN
> >
> >       if (m_agent->ConvDevicePresent())
> >           StartSlateModeWatch(device);
> > +
> > +    AdvertiseFeatures(device, true);
> >   }
> >
> >   void CXenIfaceDeviceList::Log(const char* message)
> > @@ -381,6 +389,8 @@ void CXenIfaceDeviceList::CheckSuspend()
> >       if (m_agent->ConvDevicePresent())
> >           StartSlateModeWatch(device);
> >
> > +    AdvertiseFeatures(device, true);
> > +
> >       m_count =3D count;
> >   }
> >
> > @@ -425,11 +435,6 @@ void
> CXenIfaceDeviceList::StartShutdownWatch(CXenIfaceDevice* device)
> >           return;
> >
> >       device->StoreAddWatch("control/shutdown", m_evt_shutdown,
> &m_ctxt_shutdown);
> > -
> > -    device->StoreWrite("control/feature-poweroff", "1");
> > -    device->StoreWrite("control/feature-reboot", "1");
> > -    device->StoreWrite("control/feature-s3", "1");
> > -    device->StoreWrite("control/feature-s4", "1");
> >   }
> >
> >   void CXenIfaceDeviceList::StopShutdownWatch(CXenIfaceDevice* device)
> > @@ -437,11 +442,6 @@ void
> CXenIfaceDeviceList::StopShutdownWatch(CXenIfaceDevice* device)
> >       if (!m_ctxt_shutdown)
> >           return;
> >
> > -    device->StoreWrite("control/feature-poweroff", "");
> > -    device->StoreWrite("control/feature-reboot", "");
> > -    device->StoreWrite("control/feature-s3", "");
> > -    device->StoreWrite("control/feature-s4", "");
> > -
> >       device->StoreRemoveWatch(m_ctxt_shutdown);
> >       m_ctxt_shutdown =3D NULL;
> >   }
> > @@ -452,7 +452,6 @@ void
> CXenIfaceDeviceList::StartSlateModeWatch(CXenIfaceDevice* device)
> >           return;
> >
> >       device->StoreAddWatch("control/laptop-slate-mode",
> m_evt_slate_mode, &m_ctxt_slate_mode);
> > -    device->StoreWrite("control/feature-laptop-slate-mode", "1");
> >   }
> >
> >   void CXenIfaceDeviceList::StopSlateModeWatch(CXenIfaceDevice* device)
> > @@ -466,6 +465,17 @@ void
> CXenIfaceDeviceList::StopSlateModeWatch(CXenIfaceDevice* device)
> >       m_ctxt_slate_mode =3D NULL;
> >   }
> >
> > +void CXenIfaceDeviceList::AdvertiseFeatures(CXenIfaceDevice* device,
> bool add)
> > +{
> > +    const char* value =3D add ? "1" : "";
> > +
> > +    device->StoreWrite("control/feature-poweroff", value);
> > +    device->StoreWrite("control/feature-reboot", value);
> > +    device->StoreWrite("control/feature-s3", value);
> > +    device->StoreWrite("control/feature-s4", value);
> > +    device->StoreWrite("control/feature-laptop-slate-mode", value);
> > +}
> > +
> >   void CXenIfaceDeviceList::AcquireShutdownPrivilege()
> >   {
> >       HANDLE          token;
> > diff --git a/src/xenagent/xenifacedevice.h
> b/src/xenagent/xenifacedevice.h
> > index d85e469..29ac100 100644
> > --- a/src/xenagent/xenifacedevice.h
> > +++ b/src/xenagent/xenifacedevice.h
> > @@ -94,6 +94,7 @@ private:
> >       void StopShutdownWatch(CXenIfaceDevice* device);
> >       void StartSlateModeWatch(CXenIfaceDevice* device);
> >       void StopSlateModeWatch(CXenIfaceDevice* device);
> > +    void AdvertiseFeatures(CXenIfaceDevice* device, bool add);
> >       void AcquireShutdownPrivilege();
> >       void SetXenTime(CXenIfaceDevice* device);
> >
>
>
>

--00000000000016c5930610613c65
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 primarily to clean up the code - I will resubmit with a better c=
omment</div><div class=3D"gmail_default" style=3D"font-family:monospace"><b=
r></div><div class=3D"gmail_default" style=3D"font-family:monospace">Owen</=
div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_at=
tr">On Thu, Feb 1, 2024 at 5:49=E2=80=AFPM Paul Durrant &lt;<a href=3D"mail=
to:xadimgnik@gmail.com">xadimgnik@gmail.com</a>&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">On 31/01/2024 08:12, Owen Smith =
wrote:&gt; Signed-off-by: Owen Smith <br>
&lt;<a href=3D"mailto:owen.smith@cloud.com" target=3D"_blank">owen.smith@cl=
oud.com</a>&gt;<br>
<br>
Can we have *some* text to justify the change?<br>
<br>
=C2=A0 =C2=A0Paul<br>
<br>
&gt; ---<br>
&gt;=C2=A0 =C2=A0src/xenagent/xenifacedevice.cpp | 32 +++++++++++++++++++++=
-----------<br>
&gt;=C2=A0 =C2=A0src/xenagent/xenifacedevice.h=C2=A0 =C2=A0|=C2=A0 1 +<br>
&gt;=C2=A0 =C2=A02 files changed, 22 insertions(+), 11 deletions(-)<br>
&gt; <br>
&gt; diff --git a/src/xenagent/xenifacedevice.cpp b/src/xenagent/xenifacede=
vice.cpp<br>
&gt; index 69a584b..9ed1aa7 100644<br>
&gt; --- a/src/xenagent/xenifacedevice.cpp<br>
&gt; +++ b/src/xenagent/xenifacedevice.cpp<br>
&gt; @@ -213,6 +213,8 @@ CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent=
* agent) : CDeviceList(GUID_IN<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0if (m_agent-&gt;ConvDevicePresent())<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0StartSlateModeWatch(device);<b=
r>
&gt;=C2=A0 =C2=A0<br>
&gt; +=C2=A0 =C2=A0 AdvertiseFeatures(device, true);<br>
&gt; +<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0SetXenTime(device);<br>
&gt;=C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0<br>
&gt; @@ -228,6 +230,8 @@ CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent=
* agent) : CDeviceList(GUID_IN<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0device-&gt;SuspendDeregister(m=
_ctxt_suspend);<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0m_ctxt_suspend =3D NULL;<br>
&gt;=C2=A0 =C2=A0<br>
&gt; +=C2=A0 =C2=A0 AdvertiseFeatures(device, false);<br>
&gt; +<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0if (m_agent-&gt;ConvDevicePresent())<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0StopSlateModeWatch(device);<br=
>
&gt;=C2=A0 =C2=A0<br>
&gt; @@ -242,6 +246,8 @@ CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent=
* agent) : CDeviceList(GUID_IN<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0if (dev !=3D GetFirstDevice())<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
&gt;=C2=A0 =C2=A0<br>
&gt; +=C2=A0 =C2=A0 AdvertiseFeatures(device, false);<br>
&gt; +<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0if (m_agent-&gt;ConvDevicePresent())<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0StopSlateModeWatch(device);<br=
>
&gt;=C2=A0 =C2=A0<br>
&gt; @@ -260,6 +266,8 @@ CXenIfaceDeviceList::CXenIfaceDeviceList(CXenAgent=
* agent) : CDeviceList(GUID_IN<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0if (m_agent-&gt;ConvDevicePresent())<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0StartSlateModeWatch(device);<b=
r>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 AdvertiseFeatures(device, true);<br>
&gt;=C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0void CXenIfaceDeviceList::Log(const char* message)<br>
&gt; @@ -381,6 +389,8 @@ void CXenIfaceDeviceList::CheckSuspend()<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0if (m_agent-&gt;ConvDevicePresent())<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0StartSlateModeWatch(device);<b=
r>
&gt;=C2=A0 =C2=A0<br>
&gt; +=C2=A0 =C2=A0 AdvertiseFeatures(device, true);<br>
&gt; +<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0m_count =3D count;<br>
&gt;=C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0<br>
&gt; @@ -425,11 +435,6 @@ void CXenIfaceDeviceList::StartShutdownWatch(CXen=
IfaceDevice* device)<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0device-&gt;StoreAddWatch(&quot;control/shutd=
own&quot;, m_evt_shutdown, &amp;m_ctxt_shutdown);<br>
&gt; -<br>
&gt; -=C2=A0 =C2=A0 device-&gt;StoreWrite(&quot;control/feature-poweroff&qu=
ot;, &quot;1&quot;);<br>
&gt; -=C2=A0 =C2=A0 device-&gt;StoreWrite(&quot;control/feature-reboot&quot=
;, &quot;1&quot;);<br>
&gt; -=C2=A0 =C2=A0 device-&gt;StoreWrite(&quot;control/feature-s3&quot;, &=
quot;1&quot;);<br>
&gt; -=C2=A0 =C2=A0 device-&gt;StoreWrite(&quot;control/feature-s4&quot;, &=
quot;1&quot;);<br>
&gt;=C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0void CXenIfaceDeviceList::StopShutdownWatch(CXenIfaceDevic=
e* device)<br>
&gt; @@ -437,11 +442,6 @@ void CXenIfaceDeviceList::StopShutdownWatch(CXenI=
faceDevice* device)<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0if (!m_ctxt_shutdown)<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
&gt;=C2=A0 =C2=A0<br>
&gt; -=C2=A0 =C2=A0 device-&gt;StoreWrite(&quot;control/feature-poweroff&qu=
ot;, &quot;&quot;);<br>
&gt; -=C2=A0 =C2=A0 device-&gt;StoreWrite(&quot;control/feature-reboot&quot=
;, &quot;&quot;);<br>
&gt; -=C2=A0 =C2=A0 device-&gt;StoreWrite(&quot;control/feature-s3&quot;, &=
quot;&quot;);<br>
&gt; -=C2=A0 =C2=A0 device-&gt;StoreWrite(&quot;control/feature-s4&quot;, &=
quot;&quot;);<br>
&gt; -<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0device-&gt;StoreRemoveWatch(m_ctxt_shutdown)=
;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0m_ctxt_shutdown =3D NULL;<br>
&gt;=C2=A0 =C2=A0}<br>
&gt; @@ -452,7 +452,6 @@ void CXenIfaceDeviceList::StartSlateModeWatch(CXen=
IfaceDevice* device)<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0device-&gt;StoreAddWatch(&quot;control/lapto=
p-slate-mode&quot;, m_evt_slate_mode, &amp;m_ctxt_slate_mode);<br>
&gt; -=C2=A0 =C2=A0 device-&gt;StoreWrite(&quot;control/feature-laptop-slat=
e-mode&quot;, &quot;1&quot;);<br>
&gt;=C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0<br>
&gt;=C2=A0 =C2=A0void CXenIfaceDeviceList::StopSlateModeWatch(CXenIfaceDevi=
ce* device)<br>
&gt; @@ -466,6 +465,17 @@ void CXenIfaceDeviceList::StopSlateModeWatch(CXen=
IfaceDevice* device)<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0m_ctxt_slate_mode =3D NULL;<br>
&gt;=C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0<br>
&gt; +void CXenIfaceDeviceList::AdvertiseFeatures(CXenIfaceDevice* device, =
bool add)<br>
&gt; +{<br>
&gt; +=C2=A0 =C2=A0 const char* value =3D add ? &quot;1&quot; : &quot;&quot=
;;<br>
&gt; +<br>
&gt; +=C2=A0 =C2=A0 device-&gt;StoreWrite(&quot;control/feature-poweroff&qu=
ot;, value);<br>
&gt; +=C2=A0 =C2=A0 device-&gt;StoreWrite(&quot;control/feature-reboot&quot=
;, value);<br>
&gt; +=C2=A0 =C2=A0 device-&gt;StoreWrite(&quot;control/feature-s3&quot;, v=
alue);<br>
&gt; +=C2=A0 =C2=A0 device-&gt;StoreWrite(&quot;control/feature-s4&quot;, v=
alue);<br>
&gt; +=C2=A0 =C2=A0 device-&gt;StoreWrite(&quot;control/feature-laptop-slat=
e-mode&quot;, value);<br>
&gt; +}<br>
&gt; +<br>
&gt;=C2=A0 =C2=A0void CXenIfaceDeviceList::AcquireShutdownPrivilege()<br>
&gt;=C2=A0 =C2=A0{<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0HANDLE=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 tok=
en;<br>
&gt; diff --git a/src/xenagent/xenifacedevice.h b/src/xenagent/xenifacedevi=
ce.h<br>
&gt; index d85e469..29ac100 100644<br>
&gt; --- a/src/xenagent/xenifacedevice.h<br>
&gt; +++ b/src/xenagent/xenifacedevice.h<br>
&gt; @@ -94,6 +94,7 @@ private:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0void StopShutdownWatch(CXenIfaceDevice* devi=
ce);<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0void StartSlateModeWatch(CXenIfaceDevice* de=
vice);<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0void StopSlateModeWatch(CXenIfaceDevice* dev=
ice);<br>
&gt; +=C2=A0 =C2=A0 void AdvertiseFeatures(CXenIfaceDevice* device, bool ad=
d);<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0void AcquireShutdownPrivilege();<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0void SetXenTime(CXenIfaceDevice* device);<br=
>
&gt;=C2=A0 =C2=A0<br>
<br>
<br>
</blockquote></div>

--00000000000016c5930610613c65--


From win-pv-devel-bounces@lists.xenproject.org Fri Feb 02 09:00:50 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Feb 2024 09:00:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.674862.1050015 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rVpPj-0007qz-Jr; Fri, 02 Feb 2024 09:00:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 674862.1050015; Fri, 02 Feb 2024 09:00: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 1rVpPj-0007qs-H9; Fri, 02 Feb 2024 09:00:47 +0000
Received: by outflank-mailman (input) for mailman id 674862;
 Fri, 02 Feb 2024 09:00:46 +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=JhER=JL=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1rVpPi-0007qm-Ic
 for win-pv-devel@lists.xenproject.org; Fri, 02 Feb 2024 09:00:46 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8ce4c35e-c1a9-11ee-8a43-1f161083a0e0;
 Fri, 02 Feb 2024 10:00:45 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-40ef6da20feso2841805e9.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 02 Feb 2024 01:00:45 -0800 (PST)
Received: from [192.168.12.38] (54-240-197-238.amazon.com. [54.240.197.238])
 by smtp.gmail.com with ESMTPSA id
 s15-20020a05600c45cf00b0040e3635ca65sm6854679wmo.2.2024.02.02.01.00.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 02 Feb 2024 01:00:43 -0800 (PST)
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: 8ce4c35e-c1a9-11ee-8a43-1f161083a0e0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1706864445; x=1707469245; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:references:cc:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=DocJRJgpyI7kprtWwLIg397iZrF/VHXOTWP6AdeeCEo=;
        b=Jt1KdMrHyb+7pITSlFLEdJU98OOOYbcROFFx08M+2f0ZDLAzZnLnfP41CNO3yauFp9
         Zsxfm3jyzKSIE3EuN4yld5q8+Q4G6rh8JbHlG+6O02sVt/Txbn1f5wPHMpZbWMoL74eU
         4QmlDf7T3Uq7l/TKUAl/zBg7QfasEIulxt0DHYkYFVdNFypBTn5kPIspKE4jWpBQybCh
         9JkikJ3upkhYv/L+iYdqnLYydohZ2+lfphW4pl87jcYko3S6AESEQGIBbHswUjh/ap6i
         GRNVGqVQXe8wC6JfIBTWxnBkNiy/GjL2NdKLhkD8IOii+XDdZlOtcF2UxIHID6Rlzri7
         ya9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1706864445; x=1707469245;
        h=content-transfer-encoding:in-reply-to:organization:references:cc:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DocJRJgpyI7kprtWwLIg397iZrF/VHXOTWP6AdeeCEo=;
        b=V5CqYN4AHuV3gnK066h855RQR1BTwzSLvENnR3OImIOW3i/4lATO9jhW6de+HTSz8T
         /Gr1TN9Py5HOKD/cGKGMwTe0Y4b2/zYklDX8QOG4zo9bNHEzGh78UY4JYgHwzQcjGOF7
         mFhc4xQnqmbLgibjHBxCnmeD9xXWq/PD1PHw3w5WSdF7lmDvnNOfTCj5J1DTHVLYf74T
         aDzUn/Y+9jqNQqYcOljHowird88FgM+Rosqy85INWCQgkz0O8BgGs7z1MAejKJ/jSe9N
         26E+Zhm1aTKPBckhjjbBbGUnaskXzrfbOzSVobAIeHzOLjOP2hT5E5XeKr+GnqMi/IQJ
         KB6w==
X-Gm-Message-State: AOJu0Yy55RBdvoUE3s9T/LmlG991TOUuFxGkPmT4ZWL6DzT4vMwJpEEw
	vbVvVtYn8OhPO2UPIhcD9R9S2LcC7LR2GJZ8coBnwGoVcAOLfuEH4P7taA/4XZ8=
X-Google-Smtp-Source: AGHT+IGE5pH0divM9UJn+z/NsmyXgnOS/hwbaSTxcXaDUi/TWdBEuOOStMM358+8Nlne/+drJy0ToA==
X-Received: by 2002:a05:600c:458f:b0:40f:b2ba:b893 with SMTP id r15-20020a05600c458f00b0040fb2bab893mr1196736wmo.1.1706864444026;
        Fri, 02 Feb 2024 01:00:44 -0800 (PST)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <d84189c5-ea34-471b-a608-16f07b83a898@xen.org>
Date: Fri, 2 Feb 2024 09:00:41 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [RFC PATCH 0/3] Rework Power handlers
Content-Language: en-US
To: Owen Smith <owen.smith@citrix.com>
Cc: win-pv-devel@lists.xenproject.org
References: <20240110134222.1660-1-owen.smith@cloud.com>
 <142046d9-b4bb-4ac9-ab28-8c13bebca115@xen.org>
 <CAC_UY88kTKC1RFWGZsDFXqaKxak+rgk3JCD0zn4Uru2SafmdTQ@mail.gmail.com>
Organization: Xen Project
In-Reply-To: <CAC_UY88kTKC1RFWGZsDFXqaKxak+rgk3JCD0zn4Uru2SafmdTQ@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 02/02/2024 07:36, Owen Smith wrote:
> The problem is relatively rare - it tends to hit occasionally during our 
> automated tests, and is seen more often with xenfilt on other device 
> stacks (vGPU in particular).
> These patches have been applied to the XS queue for some time. I 
> refactored and simplified the patches in Dec 2021 - these have been 
> applied since then and we have released at least 2 versions since with 
> no reported power failure issues. Previously this was 1 big messy patch 
> that, I think, has been released at least once. No power related issues 
> detected in all our automated testing or through our support.
> 

Ok, thanks Owen. That gives me much more confidence in the code. I'll 
run some tests on my own rig now :-)

     Paul

> Owen
> 
> On Thu, Feb 1, 2024 at 5:35 PM Paul Durrant <xadimgnik@gmail.com 
> <mailto:xadimgnik@gmail.com>> wrote:
> 
>     On 10/01/2024 13:42, Owen Smith wrote:
>      > Current power handler code is passed to a single threaded work
>     thread which
>      > can be delayed enough to trigger 0x9F
>     (DRIVER_POWER_STATE_FAILURE) bugchecks.
>      > Rework power handlers to math standard practive, using pended IRPs,
>      > IoCompletionRoutines and deferred IoWorkItems where required.
>      >
>      > Martin Harvey (2):
>      >    [XenFilt] Asynchronous power handling.
>      >    [XenBus] Asynchronous power handling
>      >
> 
>     I advised Martin against these changes over a year ago. How
>     prevalent is
>     the problem? It took *years* to get this, and the PnP code stable. How
>     much testing have these changes had?
> 
>         Paul
> 
>      > Owen Smith (1):
>      >    ASSERT(Frame->Mdl != NULL) before dereference
>      >
>      >   src/xenbus/fdo.c    | 792
>     ++++++++++++++++++++++++--------------------
>      >   src/xenbus/gnttab.c |   1 +
>      >   src/xenbus/pdo.c    | 250 ++++++--------
>      >   src/xenfilt/fdo.c   | 498 +++++++---------------------
>      >   src/xenfilt/pdo.c   | 503 +++++++---------------------
>      >   5 files changed, 777 insertions(+), 1267 deletions(-)
>      >
> 
> 



From win-pv-devel-bounces@lists.xenproject.org Fri Feb 02 09:03:39 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Feb 2024 09:03:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.674875.1050030 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rVpSV-0008S0-3Q; Fri, 02 Feb 2024 09:03:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 674875.1050030; Fri, 02 Feb 2024 09:03: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 1rVpSV-0008Rt-0Y; Fri, 02 Feb 2024 09:03:39 +0000
Received: by outflank-mailman (input) for mailman id 674875;
 Fri, 02 Feb 2024 09:03:37 +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=JhER=JL=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1rVpST-0008Ri-Iw
 for win-pv-devel@lists.xenproject.org; Fri, 02 Feb 2024 09:03:37 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f218613a-c1a9-11ee-98f5-efadbce2ee36;
 Fri, 02 Feb 2024 10:03:35 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3394b892691so275956f8f.1
 for <win-pv-devel@lists.xenproject.org>; Fri, 02 Feb 2024 01:03:35 -0800 (PST)
Received: from [192.168.12.38] (54-240-197-238.amazon.com. [54.240.197.238])
 by smtp.gmail.com with ESMTPSA id
 t18-20020a0560001a5200b0033aedaea1b2sm1457723wry.30.2024.02.02.01.03.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 02 Feb 2024 01:03:34 -0800 (PST)
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: f218613a-c1a9-11ee-98f5-efadbce2ee36
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1706864614; x=1707469414; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:references:cc:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=tMOe1I8Y5jY2+ZXEFiYQpMAMAi4NNwTKZs3zhc0eVyA=;
        b=Vmuh79Ke6svhGZHq2jz4UY/sYEamnEIvl71wEzUKgQ205NH78tgPSIt/uLLni/fQwl
         y3SbXrNr0zNkZIjg5koZFjBN9v0mhTIPFlLx+Snbl/ztCh2e8KsoV0uWg2G7l7a1t7dy
         4QSxTYn4r5Q6QNybAMJMmpPrI7Ais0kQig/cJgv2QyFLmwBcEIhc+uHICoxPtw9i4xmJ
         t5eczM6dv4u3bKjPkWYtdD1KR49blJmBp5V9kz+f5Da5xvQoueymn0CtwUx821Rz01kz
         wIZcQ7ktmReOjFFm7q7mRUYVgxqyIZxstT/q0zTN6iSfeETDTm1oTbiIwqfREpWJMRVc
         /QuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1706864614; x=1707469414;
        h=content-transfer-encoding:in-reply-to:organization:references:cc:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tMOe1I8Y5jY2+ZXEFiYQpMAMAi4NNwTKZs3zhc0eVyA=;
        b=JzORsoj3aitZUJqiR2Pp2CmmMFlH7/SHm/vwl1sWBpoc3W1Udxg0G7JvGNfnmWyAAm
         pbhT6J0aDFFLpGPEsKgr+kUxP2dPWKsRvXUnLrOwaAyiFhJ/qsKrjl5SX7BFfOuZVQiO
         /Fn/bWp5Dq+6wHp7WIvluhTIljWQVbXvegTzef8ZRLnRW0N7wk5o1+sEp+1bH3Zywr7T
         i1R5Qrlo7MkKUnrFz5447QJunqJ8o3lEm33NAbbstOxJb8w//wjXpYsdvUfPXdY31Tcw
         ba/u5MGVTm3wvlxbxjZdBAGAcoO2NYlRUl9/5nnuaImqr1FNLEWDVVCGiBwPfUJFTjZm
         hNDA==
X-Gm-Message-State: AOJu0YzumJURanxQv4sv3KeYn95rLGGNrVoC+l7meWMJh4/QayAL0Gb4
	dtwjRXNSRKvGN406356i1ZZ5qvtdzV4luqY7hTH/JIbx/u+p8NFR
X-Google-Smtp-Source: AGHT+IFns1lqQnFUOAUsdHot4KpEwoG4mWP9LXQVVH5inv6U+29Ogn5YU1utxlqfZCqxnI9Buo9X1g==
X-Received: by 2002:a5d:408c:0:b0:33a:ff6f:815e with SMTP id o12-20020a5d408c000000b0033aff6f815emr1025097wrp.8.1706864614352;
        Fri, 02 Feb 2024 01:03:34 -0800 (PST)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <3ef36247-3da5-40ac-92cb-1a78a7e345d4@xen.org>
Date: Fri, 2 Feb 2024 09:03:32 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [RFC PATCH 1/2] Add ETW support
Content-Language: en-US
To: Owen Smith <owen.smith@citrix.com>
Cc: win-pv-devel@lists.xenproject.org
References: <20240112125915.1229-1-owen.smith@cloud.com>
 <8ba04617-16e4-4b10-b624-4fa3dd75c868@xen.org>
 <CAC_UY8-DZ1+O9mzNh0enpS2hW4d_rM=w6=FuzY2L3nQvX9eSCQ@mail.gmail.com>
Organization: Xen Project
In-Reply-To: <CAC_UY8-DZ1+O9mzNh0enpS2hW4d_rM=w6=FuzY2L3nQvX9eSCQ@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 02/02/2024 07:39, Owen Smith wrote:
> ARRAYSIZE vs sizeof - looks like I missed something here.
> EtwExit vs EtwExit2 - specifically to reduce having to insert EtwExit(.. 
> STATUS_SUCCESS) in functions that do not return a NTSTATUS
> 

Ok, the naming is ugly though so let's have EtwExit() be the generic one 
that takes the NTSTATUS. How about EtwSuccess() if you really want a 
short-hand?

   Paul

> Owen
> 
> On Thu, Feb 1, 2024 at 5:41 PM Paul Durrant <xadimgnik@gmail.com 
> <mailto:xadimgnik@gmail.com>> wrote:
> 
>     On 12/01/2024 12:59, Owen Smith wrote:
>      > Defines ETW schema with EtwEnter and EtwExit events, which can be
>     used to track
>      > code-paths and produce flamegraphs of executions.
>      > Only uses EtwEnter and EtwExit in the driver.c file of XenBus,
>     but more events
>      > will be added in subsequent patches.
>      >
>      > Signed-off-by: Owen Smith <owen.smith@cloud.com
>     <mailto:owen.smith@cloud.com>>
>      > ---
>      >   src/common/dbg_print.h       | 60
>     +++++++++++++++++++++++++++++++++++
>      >   src/xenbus/driver.c          | 11 +++++++
>      >   src/xenbus/xenbus_etw.xml    | 61
>     ++++++++++++++++++++++++++++++++++++
>      >   vs2019/xenbus/xenbus.vcxproj | 13 +++++++-
>      >   vs2022/xenbus/xenbus.vcxproj | 13 +++++++-
>      >   5 files changed, 156 insertions(+), 2 deletions(-)
>      >   create mode 100644 src/xenbus/xenbus_etw.xml
>      >
>      > diff --git a/src/common/dbg_print.h b/src/common/dbg_print.h
>      > index a0bd727..98c22cf 100644
>      > --- a/src/common/dbg_print.h
>      > +++ b/src/common/dbg_print.h
>      > @@ -42,6 +42,66 @@
>      >
>      >   #pragma warning(disable:4127)   // conditional expression is
>     constant
>      >
>      > +#ifdef ETW_HEADER
>      > +#include ETW_HEADER
>      > +
>      > +static __inline VOID
>      > +__EtwEnter(
>      > +    IN  const CHAR      *Module,
>      > +    IN  const CHAR      *Function,
>      > +    IN  ULONG           Line
>      > +    )
>      > +{
>      > +    CHAR                _Module[16];
>      > +    CHAR                _Function[32];
>      > +
>      > +    if (!EventEnabledEvtEnter())
>      > +        return;
>      > +
>      > +    RtlZeroMemory(_Module, sizeof(_Module));
>      > +    RtlZeroMemory(_Function, sizeof(_Function));
>      > +
>      > +    strncpy(_Module, Module, ARRAYSIZE(_Module) -1);
> 
>     Missing space. I can fix.
> 
>      > +    strncpy(_Function, Function, ARRAYSIZE(_Function) - 1);
>      > +
>      > +    EventWriteEvtEnter(NULL, _Module, _Function, Line);
>      > +}
>      > +
>      > +static __inline VOID
>      > +__EtwExit(
>      > +    IN  const CHAR      *Module,
>      > +    IN  const CHAR      *Function,
>      > +    IN  ULONG           Line,
>      > +    IN  NTSTATUS        Status
>      > +    )
>      > +{
>      > +    CHAR                _Module[16];
>      > +    CHAR                _Function[32];
>      > +
>      > +    if (!EventEnabledEvtExit())
>      > +        return;
>      > +
>      > +    RtlZeroMemory(_Module, sizeof(_Module));
>      > +    RtlZeroMemory(_Function, sizeof(_Function));
>      > +
>      > +    strncpy(_Module, Module, sizeof(_Module));
> 
>     Why sizeof() here but ARRAYSIZE above?
> 
>      > +    strncpy(_Function, Function, sizeof(_Function));
>      > +
>      > +    EventWriteEvtExit(NULL, _Module, _Function, Line,
>     (ULONG)Status);
>      > +}
>      > +
>      > +#define EtwEnter()          __EtwEnter(__MODULE__, __FUNCTION__,
>     __LINE__)
>      > +#define EtwExit()           __EtwExit(__MODULE__, __FUNCTION__,
>     __LINE__, STATUS_SUCCESS)
>      > +#define EtwExit2(status)    __EtwExit(__MODULE__, __FUNCTION__,
>     __LINE__, status)
> 
>     Why this rather than requiring an explicit status for EtwExit()?
> 
>         Paul
> 
>      > +
>      > +#else
>      > +
>      > +#define EtwEnter()          (VOID)0
>      > +#define EtwExit()           (VOID)0
>      > +#define EtwExit2(status)    (VOID)status
>      > +
>      > +#endif
>      > +
>      >   static __inline VOID
>      >   __Error(
>      >       IN  const CHAR  *Prefix,
>      > diff --git a/src/xenbus/driver.c b/src/xenbus/driver.c
>      > index 522acef..4443559 100644
>      > --- a/src/xenbus/driver.c
>      > +++ b/src/xenbus/driver.c
>      > @@ -708,6 +708,8 @@ DriverUnload(
>      >
>      >       __DriverSetDriverObject(NULL);
>      >
>      > +    EventUnregisterXenBus_Driver();
>      > +
>      >       ASSERT(IsZeroMemory(&Driver, sizeof (XENBUS_DRIVER)));
>      >
>      >       Trace("<====\n");
>      > @@ -726,6 +728,7 @@ DriverAddDevice(
>      >
>      >       ASSERT3P(DriverObject, ==, __DriverGetDriverObject());
>      >
>      > +    EtwEnter();
>      >       Trace("====>\n");
>      >
>      >       __DriverAcquireMutex();
>      > @@ -737,12 +740,14 @@ DriverAddDevice(
>      >       __DriverReleaseMutex();
>      >
>      >       Trace("<====\n");
>      > +    EtwExit();
>      >
>      >       return STATUS_SUCCESS;
>      >
>      >   fail1:
>      >       __DriverReleaseMutex();
>      >
>      > +    EtwExit2(status);
>      >       return status;
>      >   }
>      >
>      > @@ -757,6 +762,8 @@ DriverDispatch(
>      >       PXENBUS_DX          Dx;
>      >       NTSTATUS            status;
>      >
>      > +    EtwEnter();
>      > +
>      >       Dx = (PXENBUS_DX)DeviceObject->DeviceExtension;
>      >       ASSERT3P(Dx->DeviceObject, ==, DeviceObject);
>      >
>      > @@ -800,6 +807,7 @@ DriverDispatch(
>      >       }
>      >
>      >   done:
>      > +    EtwExit2(status);
>      >       return status;
>      >   }
>      >
>      > @@ -819,6 +827,7 @@ DriverEntry(
>      >
>      >       ASSERT3P(__DriverGetDriverObject(), ==, NULL);
>      >
>      > +    EventRegisterXenBus_Driver();
>      >       ExInitializeDriverRuntime(DrvRtPoolNxOptIn);
>      >       WdmlibProcgrpInitialize();
>      >
>      > @@ -915,6 +924,8 @@ fail1:
>      >
>      >       __DriverSetDriverObject(NULL);
>      >
>      > +    EventUnregisterXenBus_Driver();
>      > +
>      >       ASSERT(IsZeroMemory(&Driver, sizeof (XENBUS_DRIVER)));
>      >
>      >       return status;
>      > diff --git a/src/xenbus/xenbus_etw.xml b/src/xenbus/xenbus_etw.xml
>      > new file mode 100644
>      > index 0000000..c73dfe6
>      > --- /dev/null
>      > +++ b/src/xenbus/xenbus_etw.xml
>      > @@ -0,0 +1,61 @@
>      > +<?xml version='1.0' encoding='utf-8' standalone='yes'?>
>      > +<instrumentationManifest
>      > +    xmlns="http://schemas.microsoft.com/win/2004/08/events
>     <http://schemas.microsoft.com/win/2004/08/events>"
>      > +   
>     xmlns:win="http://manifests.microsoft.com/win/2004/08/windows/events
>     <http://manifests.microsoft.com/win/2004/08/windows/events>"
>      > +    xmlns:xs="http://www.w3.org/2001/XMLSchema
>     <http://www.w3.org/2001/XMLSchema>"
>      > +    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
>     <http://www.w3.org/2001/XMLSchema-instance>"
>      > +   
>     xsi:schemaLocation="http://schemas.microsoft.com/win/2004/08/events
>     <http://schemas.microsoft.com/win/2004/08/events> eventman.xsd" >
>      > +  <instrumentation>
>      > +    <events>
>      > +      <provider
>      > +          guid="{e580595b-a8a6-41b7-a9c1-1954d2138ffc}"
>      > +         
>     messageFileName="%SystemDrive%\windows\system32\drivers\xenbus.sys"
>      > +          name="XenBus_Driver"
>      > +         
>     resourceFileName="%SystemDrive%\windows\system32\drivers\xenbus.sys"
>      > +          symbol="DriverControlGuid" >
>      > +        <channels>
>      > +          <channel chid="XENBUS" name="XenBus" type="Analytic"
>     enabled="true" />
>      > +        </channels>
>      > +        <templates>
>      > +          <template tid="tid_enter">
>      > +            <data name="Module" inType="win:Int8" count="16"
>     outType="xs:string" />     <!-- 16 chars -->
>      > +            <data name="Function" inType="win:Int8" count="32"
>     outType="xs:string" />   <!-- 32 chars -->
>      > +            <data name="Line" inType="win:UInt32"
>     outType="xs:unsignedInt" />           <!-- line number -->
>      > +          </template>
>      > +          <template tid="tid_exit">
>      > +            <data name="Module" inType="win:Int8" count="16"
>     outType="xs:string" />     <!-- 16 chars -->
>      > +            <data name="Function" inType="win:Int8" count="32"
>     outType="xs:string" />   <!-- 32 chars -->
>      > +            <data name="Line" inType="win:UInt32"
>     outType="xs:unsignedInt" />           <!-- line number -->
>      > +            <data name="Status" inType="win:UInt32"
>     outType="xs:unsignedInt" />         <!-- NTSTATUS -->
>      > +          </template>
>      > +        </templates>
>      > +        <events>
>      > +          <event
>      > +            channel="XENBUS"
>      > +            level="win:Informational"
>      > +            message="$(string.EventTraceInfo.Enter)"
>      > +            opcode="win:Info"
>      > +            symbol="EvtEnter"
>      > +            template="tid_enter"
>      > +            value="10" />
>      > +          <event
>      > +            channel="XENBUS"
>      > +            level="win:Informational"
>      > +            message="$(string.EventTraceInfo.Exit)"
>      > +            opcode="win:Info"
>      > +            symbol="EvtExit"
>      > +            template="tid_exit"
>      > +            value="11" />
>      > +        </events>
>      > +      </provider>
>      > +    </events>
>      > +  </instrumentation>
>      > +  <localization
>     xmlns="http://schemas.microsoft.com/win/2004/08/events
>     <http://schemas.microsoft.com/win/2004/08/events>">
>      > +    <resources culture="en-US">
>      > +      <stringTable>
>      > +        <string id="EventTraceInfo.Enter" value="[Enter]" />
>      > +        <string id="EventTraceInfo.Exit"  value="[Exit ]" />
>      > +      </stringTable>
>      > +    </resources>
>      > +  </localization>
>      > +</instrumentationManifest>
>      > diff --git a/vs2019/xenbus/xenbus.vcxproj
>     b/vs2019/xenbus/xenbus.vcxproj
>      > index aa88980..e191527 100644
>      > --- a/vs2019/xenbus/xenbus.vcxproj
>      > +++ b/vs2019/xenbus/xenbus.vcxproj
>      > @@ -20,7 +20,7 @@
>      >     <ItemDefinitionGroup>
>      >       <ClCompile>
>      >         <AdditionalOptions>/ZH:SHA_256
>     %(AdditionalOptions)</AdditionalOptions>
>      > -     
>     <PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
>      > +     
>     <PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;ETW_HEADER="xenbus_etw.h";%(PreprocessorDefinitions)</PreprocessorDefinitions>
>      >         <IntrinsicFunctions>true</IntrinsicFunctions>
>      >       
>       <AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;..\..\src\common;</AdditionalIncludeDirectories>
>      >         <WarningLevel>EnableAllWarnings</WarningLevel>
>      > @@ -38,6 +38,13 @@
>      >         <MapExports>true</MapExports>
>      >         <AdditionalOptions>/INTEGRITYCHECK
>     %(AdditionalOptions)</AdditionalOptions>
>      >       </Link>
>      > +    <MessageCompile>
>      > +      <HeaderFilePath>..\..\include</HeaderFilePath>
>      > +      <GeneratedFilesBaseName>%(Filename)</GeneratedFilesBaseName>
>      > +      <RCFilePath>..\..\src\xenbus</RCFilePath>
>      > +     
>     <GenerateKernelModeLoggingMacros>true</GenerateKernelModeLoggingMacros>
>      > +      <UseBaseNameOfInput>true</UseBaseNameOfInput>
>      > +    </MessageCompile>
>      >       <DriverSign>
>      >         <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
>      >       </DriverSign>
>      > @@ -68,6 +75,7 @@
>      >     <ItemGroup>
>      >       <FilesToPackage Include="$(TargetPath)" />
>      >       <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
>      > +    <FilesToPackage Include="..\..\src\xenbus\xenbus_etw.xml" />
>      >     </ItemGroup>
>      >     <ItemGroup>
>      >       <ClCompile Include="..\..\src\common\registry.c" />
>      > @@ -97,5 +105,8 @@
>      >     <ItemGroup>
>      >       <ResourceCompile Include="..\..\src\xenbus\xenbus.rc" />
>      >     </ItemGroup>
>      > +  <ItemGroup>
>      > +    <MessageCompile Include="..\..\src\xenbus\xenbus_etw.xml" />
>      > +  </ItemGroup>
>      >     <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
>      >   </Project>
>      > diff --git a/vs2022/xenbus/xenbus.vcxproj
>     b/vs2022/xenbus/xenbus.vcxproj
>      > index ce0526f..1322d15 100644
>      > --- a/vs2022/xenbus/xenbus.vcxproj
>      > +++ b/vs2022/xenbus/xenbus.vcxproj
>      > @@ -20,7 +20,7 @@
>      >     <ItemDefinitionGroup>
>      >       <ClCompile>
>      >         <AdditionalOptions>/ZH:SHA_256
>     %(AdditionalOptions)</AdditionalOptions>
>      > -     
>     <PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
>      > +     
>     <PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;ETW_HEADER="xenbus_etw.h";%(PreprocessorDefinitions)</PreprocessorDefinitions>
>      >         <IntrinsicFunctions>true</IntrinsicFunctions>
>      >       
>       <AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;..\..\src\common;</AdditionalIncludeDirectories>
>      >         <WarningLevel>EnableAllWarnings</WarningLevel>
>      > @@ -38,6 +38,13 @@
>      >         <MapExports>true</MapExports>
>      >         <AdditionalOptions>/INTEGRITYCHECK
>     %(AdditionalOptions)</AdditionalOptions>
>      >       </Link>
>      > +    <MessageCompile>
>      > +      <HeaderFilePath>..\..\include</HeaderFilePath>
>      > +      <GeneratedFilesBaseName>%(Filename)</GeneratedFilesBaseName>
>      > +      <RCFilePath>..\..\src\xenbus</RCFilePath>
>      > +     
>     <GenerateKernelModeLoggingMacros>true</GenerateKernelModeLoggingMacros>
>      > +      <UseBaseNameOfInput>true</UseBaseNameOfInput>
>      > +    </MessageCompile>
>      >       <DriverSign>
>      >         <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
>      >       </DriverSign>
>      > @@ -60,6 +67,7 @@
>      >     <ItemGroup>
>      >       <FilesToPackage Include="$(TargetPath)" />
>      >       <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
>      > +    <FilesToPackage Include="..\..\src\xenbus\xenbus_etw.xml" />
>      >     </ItemGroup>
>      >     <ItemGroup>
>      >       <ClCompile Include="..\..\src\common\registry.c" />
>      > @@ -89,5 +97,8 @@
>      >     <ItemGroup>
>      >       <ResourceCompile Include="..\..\src\xenbus\xenbus.rc" />
>      >     </ItemGroup>
>      > +  <ItemGroup>
>      > +    <MessageCompile Include="..\..\src\xenbus\xenbus_etw.xml" />
>      > +  </ItemGroup>
>      >     <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
>      >   </Project>
> 
> 



From win-pv-devel-bounces@lists.xenproject.org Fri Feb 02 09:24:36 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Feb 2024 09:24:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.674906.1050085 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rVpml-00049W-Fq; Fri, 02 Feb 2024 09:24:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 674906.1050085; Fri, 02 Feb 2024 09:24: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 1rVpml-00049P-DC; Fri, 02 Feb 2024 09:24:35 +0000
Received: by outflank-mailman (input) for mailman id 674906;
 Fri, 02 Feb 2024 09:24:33 +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=tPCe=JL=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1rVpmj-00049J-QD
 for win-pv-devel@lists.xenproject.org; Fri, 02 Feb 2024 09:24:33 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id df9a7c70-c1ac-11ee-8a43-1f161083a0e0;
 Fri, 02 Feb 2024 10:24:32 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-a36597a3104so260407666b.2
 for <win-pv-devel@lists.xenproject.org>; Fri, 02 Feb 2024 01:24:32 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
 by smtp.gmail.com with ESMTPSA id
 st1-20020a170907c08100b00a35aaa70875sm690508ejc.42.2024.02.02.01.24.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 02 Feb 2024 01:24:31 -0800 (PST)
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: df9a7c70-c1ac-11ee-8a43-1f161083a0e0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1706865871; x=1707470671; 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=DJ8CuQdyONeTV9jdjMeiG4mVAjuLPITxSZuX0GFyxw0=;
        b=FCp0cxsSOuTdeP94Ou8V4uzE+ByF95WMX0NNHL3wWlCfWFF/8ZN61b0fVA/qM2xWNq
         UP6/NZXkvCG78CFMMiB9OIKnHeWvCO0U1fC3xhE5zyKKIo2zawAwNIOFgqGCX2Ehvm9V
         KmQcnXqcyyTA7JJtbn8H9rQ54XCC//+7+UR7U=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1706865871; x=1707470671;
        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=DJ8CuQdyONeTV9jdjMeiG4mVAjuLPITxSZuX0GFyxw0=;
        b=o1f/+NVW9zZBDOiHeVyUhL/PldhbrV2hSSy8jkHj1l7uZ+k6nRtfhtp4iUFCul7Nho
         +VPLe13jhGMKaO1HP4VCNokeG3jM0602NIlm3STt4sakUX5Lju+zddUnkTiQf+Zz78oG
         G/4MmxwijySo20zYWR/mw1i8wNuMNRQdHBtvEesonp7LCNYZnGSvj0fYljVm2qduWFNd
         +imu4axF+mVbpwSLbtifi0ErBGw8xpl3PS3tAU41HYF6y4TzqektPtv5r2nKu7uXQ7Mj
         rMmw+U7KPUQ3s5e/HeSOq/OPMhdLujVmVgFIHbMmjkEoue+Rrzu55Xcd17pNTsHEX4VX
         y2dA==
X-Gm-Message-State: AOJu0Yw+QrnHjpo+bzyPS4b1/qyevpCXBNUccZdNc5v5vPUgFAGm7PC/
	hee4RBFP2gYkdM7OUmK1LuI+A/0w6X5Ldw82g+xZV28My2d39luJuL3XwKLzzAK4cTZVC0TmrOE
	=
X-Google-Smtp-Source: AGHT+IEHwJlAjSDzS3BwoJktiLoJcIQiArVf465vSE/E9hkDZqlhRDV+Yc/mjqA9ivm+/ZvC+Up2FA==
X-Received: by 2002:a17:906:3bca:b0:a35:aa64:7348 with SMTP id v10-20020a1709063bca00b00a35aa647348mr1082379ejf.59.1706865871380;
        Fri, 02 Feb 2024 01:24:31 -0800 (PST)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH] Generate map files and enable integrity check
Date: Fri,  2 Feb 2024 09:24:19 +0000
Message-ID: <20240202092419.662-1-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Enable linker options to generates map files, to help debugging crashdumps
Adds map files to output package
Add /INTEGRITYCHECK to linker options

https://learn.microsoft.com/en-us/cpp/build/reference/map-generate-mapfile?view=msvc-170
https://learn.microsoft.com/en-us/cpp/build/reference/mapinfo-include-information-in-mapfile?view=msvc-170
https://learn.microsoft.com/en-us/cpp/build/reference/integritycheck-require-signature-check?view=msvc-170

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 vs2019/xennet/xennet.vcxproj | 4 ++++
 vs2022/xennet/xennet.vcxproj | 6 +++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/vs2019/xennet/xennet.vcxproj b/vs2019/xennet/xennet.vcxproj
index 5549d9b..cfc70b0 100644
--- a/vs2019/xennet/xennet.vcxproj
+++ b/vs2019/xennet/xennet.vcxproj
@@ -34,8 +34,11 @@
     </ResourceCompile>
     <Link>
       <AdditionalDependencies>$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/aux_klib.lib;$(DDK_LIB_PATH)/procgrp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalOptions>/INTEGRITYCHECK %(AdditionalOptions)</AdditionalOptions>
       <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
       <CETCompat>true</CETCompat>
+      <GenerateMapFile>true</GenerateMapFile>
+      <MapExports>true</MapExports>
     </Link>
     <DriverSign>
       <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
@@ -68,6 +71,7 @@
 <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="../../src/xennet/adapter.c" />
diff --git a/vs2022/xennet/xennet.vcxproj b/vs2022/xennet/xennet.vcxproj
index 159b9a5..c97a158 100644
--- a/vs2022/xennet/xennet.vcxproj
+++ b/vs2022/xennet/xennet.vcxproj
@@ -34,8 +34,11 @@
     </ResourceCompile>
     <Link>
       <AdditionalDependencies>$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/aux_klib.lib;$(DDK_LIB_PATH)/procgrp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalOptions>/INTEGRITYCHECK %(AdditionalOptions)</AdditionalOptions>
       <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
       <CETCompat>true</CETCompat>
+      <GenerateMapFile>true</GenerateMapFile>
+      <MapExports>true</MapExports>
     </Link>
     <DriverSign>
       <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
@@ -56,9 +59,10 @@
       <AdditionalOptions>/Qspectre %(AdditionalOptions)</AdditionalOptions>
     </ClCompile>
   </ItemDefinitionGroup>
-<ItemGroup>
+  <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="../../src/xennet/adapter.c" />
-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Fri Feb 02 10:04:34 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Feb 2024 10:04:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.674941.1050140 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rVqPP-0003e9-Q9; Fri, 02 Feb 2024 10:04:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 674941.1050140; Fri, 02 Feb 2024 10:04: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 1rVqPP-0003e1-NH; Fri, 02 Feb 2024 10:04:31 +0000
Received: by outflank-mailman (input) for mailman id 674941;
 Fri, 02 Feb 2024 10:04:30 +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=tPCe=JL=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1rVqPO-0003dv-Hl
 for win-pv-devel@lists.xenproject.org; Fri, 02 Feb 2024 10:04:30 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 72dccb93-c1b2-11ee-98f5-efadbce2ee36;
 Fri, 02 Feb 2024 11:04:27 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-a30f7c9574eso271914566b.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 02 Feb 2024 02:04:27 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
 by smtp.gmail.com with ESMTPSA id
 cw10-20020a170907160a00b00a3493e2dbfesm708359ejd.53.2024.02.02.02.04.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 02 Feb 2024 02:04:25 -0800 (PST)
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: 72dccb93-c1b2-11ee-98f5-efadbce2ee36
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1706868266; x=1707473066; 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=jo21L4B87CrwVSXVaJe+3uSZw1TkQVnbf2VQkCUTXmM=;
        b=FvAVzX3jnW6yyf7Q1pc2bxPKOLYOjL7i1I2Swt2OKdrTX1QZQGuyULTh3v6GKRWpIy
         y00mNPqYi0X8rezP9PERn1gpDFxK8Y8Wkfxla1ZJB/2lMVlZAzMv5u1IITWu3fGchHAW
         NrfSFcA0kGLCuMEIqz6valxINyY4Zd8H2wZpU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1706868266; x=1707473066;
        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=jo21L4B87CrwVSXVaJe+3uSZw1TkQVnbf2VQkCUTXmM=;
        b=nNbfsEOk7vm66ixIzlXrV0VsTGUom5Q27b6rMJhav8NEBmTiCbPau9r6Bl/6Qc6qcS
         eQTnikUeXMUqAf1z4Qw7JXabtt1dTgJ/mFMdyPkxdBi9552qhEe6ClY6cIYEJ7YFWpbE
         R9zMC+15YSBqZmAqWt3nDLVgGnSCPs1E0vGNM279dvhEFdJJ6iUXTLaBnwtiDDFqMDLW
         X+0qb/5lrrzogwdRw47WVVzhASaDkO5AilQob6Fo8dJ8jPWkjWEgeaziCjjmBF8wxPHt
         2jAJ9L7mjpzR5VQB75hNdrm18KbXoEDTEuKiWuiDUBl8eylwXX8AR6tSaVZh68EeV+nT
         HU+A==
X-Gm-Message-State: AOJu0YzfaNOhn2zw5F3xcnwti/NEeMQ7GkOBQMv5aTPFILdH6gEAN7EY
	Uq5CvO43Ruuedpn3RvPkcaE9w0gGe4wuSoOUpL9Ha/qGtkw09GVUNGLjiyVFyV0IbOMHHEH8ooo
	=
X-Google-Smtp-Source: AGHT+IGcpOZKLX8xtIUgxzQ/HnkYnrQnHt9MAvwdfjfl7mnYOCbzAgF8F/FqsvSQbSe+qtxpx/opAQ==
X-Received: by 2002:a17:906:3111:b0:a37:209c:58f7 with SMTP id 17-20020a170906311100b00a37209c58f7mr206599ejx.39.1706868265918;
        Fri, 02 Feb 2024 02:04:25 -0800 (PST)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH] Generate map files and enable integrity check
Date: Fri,  2 Feb 2024 10:04:14 +0000
Message-ID: <20240202100414.1641-1-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Enable linker options to generates map files, to help debugging crashdumps
Adds map files to output package
Add /INTEGRITYCHECK to linker options
Removes /LTCG from linker command line for XenAgent. This removes a linker log output suggesting
removal of this argument.

https://learn.microsoft.com/en-us/cpp/build/reference/map-generate-mapfile?view=msvc-170
https://learn.microsoft.com/en-us/cpp/build/reference/mapinfo-include-information-in-mapfile?view=msvc-170
https://learn.microsoft.com/en-us/cpp/build/reference/integritycheck-require-signature-check?view=msvc-170

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 vs2019/xenagent/xenagent.vcxproj     | 4 ++++
 vs2019/xencontrol/xencontrol.vcxproj | 4 ++++
 vs2019/xeniface/xeniface.vcxproj     | 4 ++++
 vs2022/xenagent/xenagent.vcxproj     | 4 ++++
 vs2022/xencontrol/xencontrol.vcxproj | 4 ++++
 vs2022/xeniface/xeniface.vcxproj     | 4 ++++
 6 files changed, 24 insertions(+)

diff --git a/vs2019/xenagent/xenagent.vcxproj b/vs2019/xenagent/xenagent.vcxproj
index 02b7b65..27bf3af 100644
--- a/vs2019/xenagent/xenagent.vcxproj
+++ b/vs2019/xenagent/xenagent.vcxproj
@@ -35,7 +35,10 @@
     </ClCompile>
     <Link>
       <AdditionalDependencies>powrprof.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalOptions>/INTEGRITYCHECK %(AdditionalOptions)</AdditionalOptions>
       <CETCompat>true</CETCompat>
+      <GenerateMapFile>true</GenerateMapFile>
+      <MapExports>true</MapExports>
     </Link>
     <ResourceCompile>
       <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@@ -67,6 +70,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
     <FilesToPackage Include="$(OutDir)$(TargetName).dll" />
   </ItemGroup>
   <ItemGroup>
diff --git a/vs2019/xencontrol/xencontrol.vcxproj b/vs2019/xencontrol/xencontrol.vcxproj
index 5474ceb..5da405e 100644
--- a/vs2019/xencontrol/xencontrol.vcxproj
+++ b/vs2019/xencontrol/xencontrol.vcxproj
@@ -34,7 +34,10 @@
     </ClCompile>
     <Link>
       <AdditionalDependencies>setupapi.lib;ws2_32.lib;shlwapi.lib;wtsapi32.lib;userenv.lib;version.lib;ntdll.lib;kernel32.lib;user32.lib;gdi32.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalOptions>/INTEGRITYCHECK %(AdditionalOptions)</AdditionalOptions>
       <CETCompat>true</CETCompat>
+      <GenerateMapFile>true</GenerateMapFile>
+      <MapExports>true</MapExports>
     </Link>
     <ResourceCompile>
       <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@@ -56,6 +59,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
     <FilesToPackage Include="$(OutDir)$(TargetName).dll" />
     <FilesToPackage Include="$(OutDir)$(TargetName).lib" />
   </ItemGroup>
diff --git a/vs2019/xeniface/xeniface.vcxproj b/vs2019/xeniface/xeniface.vcxproj
index 9b72b69..1c5c15b 100644
--- a/vs2019/xeniface/xeniface.vcxproj
+++ b/vs2019/xeniface/xeniface.vcxproj
@@ -32,8 +32,11 @@
     </ResourceCompile>
     <Link>
       <AdditionalDependencies>$(DDK_LIB_PATH)\ntstrsafe.lib;$(DDK_LIB_PATH)\procgrp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalOptions>/INTEGRITYCHECK %(AdditionalOptions)</AdditionalOptions>
       <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
       <CETCompat>true</CETCompat>
+      <GenerateMapFile>true</GenerateMapFile>
+      <MapExports>true</MapExports>
     </Link>
     <DriverSign>
       <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
@@ -65,6 +68,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\src\xeniface\ioctls.c" />
diff --git a/vs2022/xenagent/xenagent.vcxproj b/vs2022/xenagent/xenagent.vcxproj
index dedd1d2..5f360ca 100644
--- a/vs2022/xenagent/xenagent.vcxproj
+++ b/vs2022/xenagent/xenagent.vcxproj
@@ -35,7 +35,10 @@
     </ClCompile>
     <Link>
       <AdditionalDependencies>powrprof.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalOptions>/INTEGRITYCHECK %(AdditionalOptions)</AdditionalOptions>
       <CETCompat>true</CETCompat>
+      <GenerateMapFile>true</GenerateMapFile>
+      <MapExports>true</MapExports>
     </Link>
     <ResourceCompile>
       <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@@ -57,6 +60,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
     <FilesToPackage Include="$(OutDir)$(TargetName).dll" />
   </ItemGroup>
   <ItemGroup>
diff --git a/vs2022/xencontrol/xencontrol.vcxproj b/vs2022/xencontrol/xencontrol.vcxproj
index c6ea3ed..aed7b7f 100644
--- a/vs2022/xencontrol/xencontrol.vcxproj
+++ b/vs2022/xencontrol/xencontrol.vcxproj
@@ -34,7 +34,10 @@
     </ClCompile>
     <Link>
       <AdditionalDependencies>setupapi.lib;ws2_32.lib;shlwapi.lib;wtsapi32.lib;userenv.lib;version.lib;ntdll.lib;kernel32.lib;user32.lib;gdi32.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalOptions>/INTEGRITYCHECK %(AdditionalOptions)</AdditionalOptions>
       <CETCompat>true</CETCompat>
+      <GenerateMapFile>true</GenerateMapFile>
+      <MapExports>true</MapExports>
     </Link>
     <ResourceCompile>
       <AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@@ -51,6 +54,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
     <FilesToPackage Include="$(OutDir)$(TargetName).dll" />
     <FilesToPackage Include="$(OutDir)$(TargetName).lib" />
   </ItemGroup>
diff --git a/vs2022/xeniface/xeniface.vcxproj b/vs2022/xeniface/xeniface.vcxproj
index bcce921..776e68e 100644
--- a/vs2022/xeniface/xeniface.vcxproj
+++ b/vs2022/xeniface/xeniface.vcxproj
@@ -32,8 +32,11 @@
     </ResourceCompile>
     <Link>
       <AdditionalDependencies>$(DDK_LIB_PATH)\ntstrsafe.lib;$(DDK_LIB_PATH)\procgrp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalOptions>/INTEGRITYCHECK %(AdditionalOptions)</AdditionalOptions>
       <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
       <CETCompat>true</CETCompat>
+      <GenerateMapFile>true</GenerateMapFile>
+      <MapExports>true</MapExports>
     </Link>
     <DriverSign>
       <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
@@ -57,6 +60,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\src\xeniface\ioctls.c" />
-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Fri Feb 02 10:10:53 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Feb 2024 10:10:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.674950.1050144 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rVqVY-0004vw-9W; Fri, 02 Feb 2024 10:10:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 674950.1050144; Fri, 02 Feb 2024 10:10: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 1rVqVY-0004vp-6l; Fri, 02 Feb 2024 10:10:52 +0000
Received: by outflank-mailman (input) for mailman id 674950;
 Fri, 02 Feb 2024 10:10: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=tPCe=JL=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1rVqVX-0004vj-0s
 for win-pv-devel@lists.xenproject.org; Fri, 02 Feb 2024 10:10:51 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 56fd0f3a-c1b3-11ee-8a43-1f161083a0e0;
 Fri, 02 Feb 2024 11:10:50 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-55fbbfbc0f5so2629989a12.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 02 Feb 2024 02:10:49 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
 by smtp.gmail.com with ESMTPSA id
 vo12-20020a170907a80c00b00a3726a5e5fdsm18076ejc.95.2024.02.02.02.10.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 02 Feb 2024 02:10:48 -0800 (PST)
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: 56fd0f3a-c1b3-11ee-8a43-1f161083a0e0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1706868649; x=1707473449; 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=0tpuIiq6REexpHHaVi0WKHMZU3Xw5hK1G7NnK9OjGjA=;
        b=OHfx6BBaUEVQDyyQdpU+qefzGrgHgLqEyQ2IRB6y965n2hed/RJs+/469PFit3gWzA
         /HZ2saEXm9tSzFVTTy/mvSlFPgWPNzaX7O8BgjVbpbsoVulb6x3w4/G6/Hx+1hSeLa+x
         vTJbcGugK2kjcsqywMDXFdBYGwFQdcKZn6muc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1706868649; x=1707473449;
        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=0tpuIiq6REexpHHaVi0WKHMZU3Xw5hK1G7NnK9OjGjA=;
        b=FqpCUoen9RPExOYmcynNN54Yy4CJ0YlxNyL9zCryt/CtIx2G/WlOqKJYab5aS/Me6D
         jVN3bMqYSeXYuQV/dLvX+zINq15Se2n9GQNURK6b1tOdVfwhZfLeUmQ4hw4h3I39tKeV
         2un6GS6lC5zwlKG1LrrpUnWUak7A3/9viFebOU8Rlv6W6BW7IxPb6Ew3pAbeLzGWEkiz
         XMtrLN5++t/xXQR+ejH5ZrYel6gE8PizdprH12aDH5PNcSKJSfVIn6Setmrg1hH08k28
         PAlvHHrOpUPAOhJNdWBobZP0gkS/XZ5AkBQ+D044/slOpFrGL5DWfJt7gktrQUabG2+w
         Q0aw==
X-Gm-Message-State: AOJu0YwjR5RCVtXMOpA0mPnP6zerZMA3YdOrPnciWfVlI+QnyfaXczD5
	LhnPfKm889iXooZSHtRti+hPJCYHjMGVJGe2yOAlJroHKt5UoHmwY+cMV8/MuJS72hg/00LMUHY
	=
X-Google-Smtp-Source: AGHT+IGSu7HCDWtXVFmrK/TmTn/TuTMAGIIXA6G1QYx1+m9vSgKtds3qgbL9l3iIIvcwwWu2/GZ0vw==
X-Received: by 2002:a17:906:1cd3:b0:a35:d1c6:9981 with SMTP id i19-20020a1709061cd300b00a35d1c69981mr1378402ejh.8.1706868649179;
        Fri, 02 Feb 2024 02:10:49 -0800 (PST)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH] Generate map files and enable integrity check
Date: Fri,  2 Feb 2024 10:10:37 +0000
Message-ID: <20240202101037.789-1-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Enable linker options to generates map files, to help debugging crashdumps
Adds map files to output package
Add /INTEGRITYCHECK to linker options

https://learn.microsoft.com/en-us/cpp/build/reference/map-generate-mapfile?view=msvc-170
https://learn.microsoft.com/en-us/cpp/build/reference/mapinfo-include-information-in-mapfile?view=msvc-170
https://learn.microsoft.com/en-us/cpp/build/reference/integritycheck-require-signature-check?view=msvc-170

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 vs2019/xencrsh/xencrsh.vcxproj | 4 ++++
 vs2019/xendisk/xendisk.vcxproj | 4 ++++
 vs2019/xenvbd/xenvbd.vcxproj   | 4 ++++
 vs2022/xencrsh/xencrsh.vcxproj | 4 ++++
 vs2022/xendisk/xendisk.vcxproj | 4 ++++
 vs2022/xenvbd/xenvbd.vcxproj   | 4 ++++
 6 files changed, 24 insertions(+)

diff --git a/vs2019/xencrsh/xencrsh.vcxproj b/vs2019/xencrsh/xencrsh.vcxproj
index 5433a39..a7d1c68 100644
--- a/vs2019/xencrsh/xencrsh.vcxproj
+++ b/vs2019/xencrsh/xencrsh.vcxproj
@@ -34,8 +34,11 @@
       <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
       <ModuleDefinitionFile>../../src/xencrsh/xencrsh.def</ModuleDefinitionFile>
       <AdditionalDependencies>$(DDK_LIB_PATH)/storport.lib;$(DDK_LIB_PATH)/libcntpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalOptions>/INTEGRITYCHECK %(AdditionalOptions)</AdditionalOptions>
       <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
       <CETCompat>true</CETCompat>
+      <GenerateMapFile>true</GenerateMapFile>
+      <MapExports>true</MapExports>
     </Link>
     <DriverSign>
       <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
@@ -61,6 +64,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\src\xencrsh\austere.c" />
diff --git a/vs2019/xendisk/xendisk.vcxproj b/vs2019/xendisk/xendisk.vcxproj
index 6e714ae..25b195f 100644
--- a/vs2019/xendisk/xendisk.vcxproj
+++ b/vs2019/xendisk/xendisk.vcxproj
@@ -32,8 +32,11 @@
     </ResourceCompile>
     <Link>
       <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalOptions>/INTEGRITYCHECK %(AdditionalOptions)</AdditionalOptions>
       <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
       <CETCompat>true</CETCompat>
+      <GenerateMapFile>true</GenerateMapFile>
+      <MapExports>true</MapExports>
     </Link>
     <DriverSign>
       <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
@@ -64,6 +67,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="../../src/xendisk/driver.c" />
diff --git a/vs2019/xenvbd/xenvbd.vcxproj b/vs2019/xenvbd/xenvbd.vcxproj
index 470d16d..8ebb58c 100644
--- a/vs2019/xenvbd/xenvbd.vcxproj
+++ b/vs2019/xenvbd/xenvbd.vcxproj
@@ -32,8 +32,11 @@
     </ResourceCompile>
     <Link>
       <AdditionalDependencies>$(ProjectDir)..\$(ConfigurationName)\$(Platform)\xencrsh.lib;$(DDK_LIB_PATH)/storport.lib;$(DDK_LIB_PATH)/libcntpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalOptions>/INTEGRITYCHECK %(AdditionalOptions)</AdditionalOptions>
       <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
       <CETCompat>true</CETCompat>
+      <GenerateMapFile>true</GenerateMapFile>
+      <MapExports>true</MapExports>
     </Link>
     <DriverSign>
       <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
@@ -65,6 +68,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="../../src/xenvbd/driver.c" />
diff --git a/vs2022/xencrsh/xencrsh.vcxproj b/vs2022/xencrsh/xencrsh.vcxproj
index 2026310..93bd705 100644
--- a/vs2022/xencrsh/xencrsh.vcxproj
+++ b/vs2022/xencrsh/xencrsh.vcxproj
@@ -34,8 +34,11 @@
       <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
       <ModuleDefinitionFile>../../src/xencrsh/xencrsh.def</ModuleDefinitionFile>
       <AdditionalDependencies>$(DDK_LIB_PATH)/storport.lib;$(DDK_LIB_PATH)/libcntpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalOptions>/INTEGRITYCHECK %(AdditionalOptions)</AdditionalOptions>
       <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
       <CETCompat>true</CETCompat>
+      <GenerateMapFile>true</GenerateMapFile>
+      <MapExports>true</MapExports>
     </Link>
     <DriverSign>
       <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
@@ -56,6 +59,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\src\xencrsh\austere.c" />
diff --git a/vs2022/xendisk/xendisk.vcxproj b/vs2022/xendisk/xendisk.vcxproj
index 2fe56f5..d7df663 100644
--- a/vs2022/xendisk/xendisk.vcxproj
+++ b/vs2022/xendisk/xendisk.vcxproj
@@ -32,8 +32,11 @@
     </ResourceCompile>
     <Link>
       <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalOptions>/INTEGRITYCHECK %(AdditionalOptions)</AdditionalOptions>
       <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
       <CETCompat>true</CETCompat>
+      <GenerateMapFile>true</GenerateMapFile>
+      <MapExports>true</MapExports>
     </Link>
     <DriverSign>
       <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
@@ -57,6 +60,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="../../src/xendisk/driver.c" />
diff --git a/vs2022/xenvbd/xenvbd.vcxproj b/vs2022/xenvbd/xenvbd.vcxproj
index 6d51630..7ccaa99 100644
--- a/vs2022/xenvbd/xenvbd.vcxproj
+++ b/vs2022/xenvbd/xenvbd.vcxproj
@@ -32,8 +32,11 @@
     </ResourceCompile>
     <Link>
       <AdditionalDependencies>$(ProjectDir)..\$(ConfigurationName)\$(Platform)\xencrsh.lib;$(DDK_LIB_PATH)/storport.lib;$(DDK_LIB_PATH)/libcntpr.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalOptions>/INTEGRITYCHECK %(AdditionalOptions)</AdditionalOptions>
       <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
       <CETCompat>true</CETCompat>
+      <GenerateMapFile>true</GenerateMapFile>
+      <MapExports>true</MapExports>
     </Link>
     <DriverSign>
       <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
@@ -57,6 +60,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="../../src/xenvbd/driver.c" />
-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Fri Feb 02 10:14:00 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Feb 2024 10:14:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.674959.1050147 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rVqYa-000535-Hm; Fri, 02 Feb 2024 10:14:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 674959.1050147; Fri, 02 Feb 2024 10:14: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 1rVqYa-00052y-FK; Fri, 02 Feb 2024 10:14:00 +0000
Received: by outflank-mailman (input) for mailman id 674959;
 Fri, 02 Feb 2024 10:13:59 +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=tPCe=JL=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1rVqYZ-00052s-BL
 for win-pv-devel@lists.xenproject.org; Fri, 02 Feb 2024 10:13:59 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c611e281-c1b3-11ee-98f5-efadbce2ee36;
 Fri, 02 Feb 2024 11:13:56 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-51121637524so2845369e87.1
 for <win-pv-devel@lists.xenproject.org>; Fri, 02 Feb 2024 02:13:56 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
 by smtp.gmail.com with ESMTPSA id
 gx2-20020a1709068a4200b00a35ed4fd4cesm723578ejc.115.2024.02.02.02.13.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 02 Feb 2024 02:13:55 -0800 (PST)
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: c611e281-c1b3-11ee-98f5-efadbce2ee36
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1706868835; x=1707473635; 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=uwF/Fl+CWifqkoCEPmNsP/bccUfPrSoV0VxERpohA3Y=;
        b=N353UqcN3Cu0cz7bkgDxDVMNbbS7bwoYN/X4rYSHkR90pyAhJwpJ7G/gutkAd+YmQH
         IWHk2sUZ/JfRQrd1TpnO0H0PS7OLJlJayqtORbZbtKF8GI34EGyLjIUamdatbF8AWSJ+
         JL7fiUoc/1TfXaq4R2yMkfc/Fr66DB8ujdqD0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1706868835; x=1707473635;
        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=uwF/Fl+CWifqkoCEPmNsP/bccUfPrSoV0VxERpohA3Y=;
        b=EIY7mcBCFz9JI84ZOnGfhCTbzkn8DW20KFTvwE7iZWQ9runkMGvS2oo+XZmy9Vrp4v
         68EWm9SvfM5Hy1n69l9j5oY1YHvueDxPmSdSsnFanSKsaU3olVFy7pmoNVGMESsWTgok
         NWqQ/buisHCg3UGqrB4XmsuJaD+MY2KGWyo+91rrnJ2HbXLC1N9b8QcXQEgJQBT3FTLn
         uegxyudg09BSZWdCwsLIDysRxk7zwPzoalpDNBc3NDRfPt/JuuCkVlcGqG/Ny+P5SecA
         DemtZTPqQnOGmJ8T4unOZnuu53o6M0VVE7qD5LPo//V/Car5cTlv3GPuT7kZIbtuaGt7
         LfVA==
X-Gm-Message-State: AOJu0Yxx7RNbvnifsv5boTRIUMIJdUY3ow9Iqu1r3XqUXjPytQzfTvVa
	SfPiBmn42Qkq6hkPeQIC9hwRM0Tu71lRMjaXoesHRn4BMWnaY4fFDgOnyuMZqlJeA3JRYMpHCVU
	=
X-Google-Smtp-Source: AGHT+IEIKBqZUdYAhGt4kqfgGS0QnmLFjf9NgBWevf6hFzK65ikp0M6qP5+IUHZUXd8vaAgX4aS7mA==
X-Received: by 2002:ac2:4c8b:0:b0:511:3222:bfd2 with SMTP id d11-20020ac24c8b000000b005113222bfd2mr1881142lfl.6.1706868835353;
        Fri, 02 Feb 2024 02:13:55 -0800 (PST)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH] Generate map files and enable integrity check
Date: Fri,  2 Feb 2024 10:13:43 +0000
Message-ID: <20240202101344.1040-1-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Enable linker options to generates map files, to help debugging crashdumps
Adds map files to output package
Add /INTEGRITYCHECK to linker options

https://learn.microsoft.com/en-us/cpp/build/reference/map-generate-mapfile?view=msvc-170
https://learn.microsoft.com/en-us/cpp/build/reference/mapinfo-include-information-in-mapfile?view=msvc-170
https://learn.microsoft.com/en-us/cpp/build/reference/integritycheck-require-signature-check?view=msvc-170

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 vs2019/xenvif/xenvif.vcxproj | 4 ++++
 vs2022/xenvif/xenvif.vcxproj | 4 ++++
 2 files changed, 8 insertions(+)

diff --git a/vs2019/xenvif/xenvif.vcxproj b/vs2019/xenvif/xenvif.vcxproj
index d070a03..0412426 100644
--- a/vs2019/xenvif/xenvif.vcxproj
+++ b/vs2019/xenvif/xenvif.vcxproj
@@ -32,8 +32,11 @@
     </ResourceCompile>
     <Link>
       <AdditionalDependencies>$(DDK_LIB_PATH)/Rtlver.lib;$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/aux_klib.lib;$(DDK_LIB_PATH)/ksecdd.lib;$(DDK_LIB_PATH)/procgrp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalOptions>/INTEGRITYCHECK %(AdditionalOptions)</AdditionalOptions>
       <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
       <CETCompat>true</CETCompat>
+      <GenerateMapFile>true</GenerateMapFile>
+      <MapExports>true</MapExports>
     </Link>
     <DriverSign>
       <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
@@ -65,6 +68,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="../../src/xenvif/bus.c" />
diff --git a/vs2022/xenvif/xenvif.vcxproj b/vs2022/xenvif/xenvif.vcxproj
index 85c0a05..be84232 100644
--- a/vs2022/xenvif/xenvif.vcxproj
+++ b/vs2022/xenvif/xenvif.vcxproj
@@ -32,8 +32,11 @@
     </ResourceCompile>
     <Link>
       <AdditionalDependencies>$(DDK_LIB_PATH)/Rtlver.lib;$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/aux_klib.lib;$(DDK_LIB_PATH)/ksecdd.lib;$(DDK_LIB_PATH)/procgrp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalOptions>/INTEGRITYCHECK %(AdditionalOptions)</AdditionalOptions>
       <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
       <CETCompat>true</CETCompat>
+      <GenerateMapFile>true</GenerateMapFile>
+      <MapExports>true</MapExports>
     </Link>
     <DriverSign>
       <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
@@ -57,6 +60,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="../../src/xenvif/bus.c" />
-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Fri Feb 02 10:21:42 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Feb 2024 10:21:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.674968.1050152 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rVqg1-0006Ir-4k; Fri, 02 Feb 2024 10:21:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 674968.1050152; Fri, 02 Feb 2024 10: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 1rVqg1-0006Ik-25; Fri, 02 Feb 2024 10:21:41 +0000
Received: by outflank-mailman (input) for mailman id 674968;
 Fri, 02 Feb 2024 10:21:39 +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=tPCe=JL=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1rVqfz-0006Ie-I9
 for win-pv-devel@lists.xenproject.org; Fri, 02 Feb 2024 10:21:39 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d98b64ba-c1b4-11ee-8a43-1f161083a0e0;
 Fri, 02 Feb 2024 11:21:38 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-a35e65df2d8so259830866b.0
 for <win-pv-devel@lists.xenproject.org>; Fri, 02 Feb 2024 02:21:38 -0800 (PST)
Received: from localhost.localdomain ([185.25.64.249])
 by smtp.gmail.com with ESMTPSA id
 j20-20020a170906475400b00a353ca3d907sm721116ejs.217.2024.02.02.02.21.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 02 Feb 2024 02:21:36 -0800 (PST)
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: d98b64ba-c1b4-11ee-8a43-1f161083a0e0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1706869297; x=1707474097; 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=JNj0/E6iTdMkS0kmFaBZ5GwTJGP55/i2b8MGk/opT1Y=;
        b=amcAQKB6QQgAsWi7wVAQ85I6ITh3VNNVq5U3c2qWhHqO3Y0yTURA8OMbKlgpG+BNT9
         eUIef3GxzBjxvkTCp0UOLokj5ZmG2XGMNCxrQ+k6Vi9f14uAG8si0wix5Cl2d8Pk1zDG
         wmqOf1L0ParQNjLSiHdnhBdWI3ddaYUyLssXg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1706869297; x=1707474097;
        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=JNj0/E6iTdMkS0kmFaBZ5GwTJGP55/i2b8MGk/opT1Y=;
        b=azQSSZzfa6zoewgwP7lmxYruGz3P9kC/NoGe1jOVw6KFt1lUX3IY5+3y+kfW+Za2a5
         2mAC4zixNFdnm8hfwMn9qWdQir7v0TTyNrhzzN/rftQWxwKSADgLW1AJDb2YzptzSgh/
         e9QBnXcRHkzOy12czVqdCoggR81HboYLAoiLC1rK1CPCXi/k5AAh75UKr16l90aQucU5
         vulG2bG9P+pelTqgy7FAwrcOJy06cqApCIGpqiKPlezwcIsp1A2Nre24AK4XTuS5hI1h
         bb/sgdFyUMrh4l6KiSywU9S72kX7F+YNMtCvTiyefbTO+dDC/ShJuDv3ZboZNtHEkoKc
         WwQw==
X-Gm-Message-State: AOJu0YySNIxHrMOGGGMoZdDwZruFxGb6LcfvGI9Nu216RJew49dcaTft
	OUDKsgWgditk7hvsUYrxpq/JOqcsxgBSTCuBSSoo+pce7KuxZRc9jmt/2tQPkp0pkS5TVUtNA6U
	=
X-Google-Smtp-Source: AGHT+IHckHmOGQ9UPFcPi8/me1N9chB+a8+Nqge5Th1ujIIrR5Xg+YuMnHqzBe0tLe1SOv+Vm4zMgw==
X-Received: by 2002:a17:906:185:b0:a35:7685:1731 with SMTP id 5-20020a170906018500b00a3576851731mr1197490ejb.12.1706869297108;
        Fri, 02 Feb 2024 02:21:37 -0800 (PST)
From: Owen Smith <owen.smith@cloud.com>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@cloud.com>
Subject: [PATCH] Use FilesToPackage to copy map files
Date: Fri,  2 Feb 2024 10:21:25 +0000
Message-ID: <20240202102125.24-1-owen.smith@cloud.com>
X-Mailer: git-send-email 2.41.0.windows.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

And remove build.ps1 scripting to copy map files

Signed-off-by: Owen Smith <owen.smith@cloud.com>
---
 build.ps1                                    | 8 --------
 vs2019/xen/xen.vcxproj                       | 1 +
 vs2019/xenbus/xenbus.vcxproj                 | 1 +
 vs2019/xenbus_monitor/xenbus_monitor.vcxproj | 1 +
 vs2019/xenfilt/xenfilt.vcxproj               | 1 +
 vs2022/xen/xen.vcxproj                       | 1 +
 vs2022/xenbus/xenbus.vcxproj                 | 1 +
 vs2022/xenbus_monitor/xenbus_monitor.vcxproj | 1 +
 vs2022/xenfilt/xenfilt.vcxproj               | 1 +
 9 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/build.ps1 b/build.ps1
index 38f8386..4ff02c1 100644
--- a/build.ps1
+++ b/build.ps1
@@ -14,7 +14,6 @@ param(
 #
 # Script Body
 #
-$TargetPath = "xenbus"
 
 Function Build {
 	param(
@@ -38,13 +37,6 @@ Function Build {
 		Write-Host -ForegroundColor Red "ERROR: Build failed, code:" $LASTEXITCODE
 		Exit $LASTEXITCODE
 	}
-	 # Find and Move map files
-	foreach ($item in Get-ChildItem -Path $solutiondir[$visualstudioversion] -Include *.map -Recurse)
-	{
-		$filename = Split-Path -Path $item -Leaf -Resolve
-		$newpath = "$TargetPath\$Arch\$filename"
-		Move-Item $item -Destination $newpath -Force
-	}
 }
 
 Function SdvBuild {
diff --git a/vs2019/xen/xen.vcxproj b/vs2019/xen/xen.vcxproj
index 9fc9b10..ca6cef6 100644
--- a/vs2019/xen/xen.vcxproj
+++ b/vs2019/xen/xen.vcxproj
@@ -64,6 +64,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\src\common\registry.c" />
diff --git a/vs2019/xenbus/xenbus.vcxproj b/vs2019/xenbus/xenbus.vcxproj
index aa88980..9227e0a 100644
--- a/vs2019/xenbus/xenbus.vcxproj
+++ b/vs2019/xenbus/xenbus.vcxproj
@@ -68,6 +68,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\src\common\registry.c" />
diff --git a/vs2019/xenbus_monitor/xenbus_monitor.vcxproj b/vs2019/xenbus_monitor/xenbus_monitor.vcxproj
index d98a059..2a2c00f 100644
--- a/vs2019/xenbus_monitor/xenbus_monitor.vcxproj
+++ b/vs2019/xenbus_monitor/xenbus_monitor.vcxproj
@@ -69,6 +69,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
     <FilesToPackage Include="$(OutDir)$(TargetName).dll" />
     <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
   </ItemGroup>
diff --git a/vs2019/xenfilt/xenfilt.vcxproj b/vs2019/xenfilt/xenfilt.vcxproj
index dce68ee..58e231f 100644
--- a/vs2019/xenfilt/xenfilt.vcxproj
+++ b/vs2019/xenfilt/xenfilt.vcxproj
@@ -68,6 +68,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="../../src/common/registry.c" />
diff --git a/vs2022/xen/xen.vcxproj b/vs2022/xen/xen.vcxproj
index 40285d0..2304a4b 100644
--- a/vs2022/xen/xen.vcxproj
+++ b/vs2022/xen/xen.vcxproj
@@ -59,6 +59,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\src\common\registry.c" />
diff --git a/vs2022/xenbus/xenbus.vcxproj b/vs2022/xenbus/xenbus.vcxproj
index ce0526f..422f610 100644
--- a/vs2022/xenbus/xenbus.vcxproj
+++ b/vs2022/xenbus/xenbus.vcxproj
@@ -60,6 +60,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\src\common\registry.c" />
diff --git a/vs2022/xenbus_monitor/xenbus_monitor.vcxproj b/vs2022/xenbus_monitor/xenbus_monitor.vcxproj
index 198a03c..4d26331 100644
--- a/vs2022/xenbus_monitor/xenbus_monitor.vcxproj
+++ b/vs2022/xenbus_monitor/xenbus_monitor.vcxproj
@@ -59,6 +59,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
     <FilesToPackage Include="$(OutDir)$(TargetName).dll" />
     <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
   </ItemGroup>
diff --git a/vs2022/xenfilt/xenfilt.vcxproj b/vs2022/xenfilt/xenfilt.vcxproj
index 0df220f..1b71252 100644
--- a/vs2022/xenfilt/xenfilt.vcxproj
+++ b/vs2022/xenfilt/xenfilt.vcxproj
@@ -60,6 +60,7 @@
   <ItemGroup>
     <FilesToPackage Include="$(TargetPath)" />
     <FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
+    <FilesToPackage Include="$(OutDir)$(TargetName).map" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="../../src/common/registry.c" />
-- 
2.41.0.windows.3



From win-pv-devel-bounces@lists.xenproject.org Fri Feb 02 10:35:34 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Feb 2024 10:35:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.674979.1050156 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rVqtR-0007f7-5c; Fri, 02 Feb 2024 10:35:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 674979.1050156; Fri, 02 Feb 2024 10:35: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 1rVqtR-0007f0-2s; Fri, 02 Feb 2024 10:35:33 +0000
Received: by outflank-mailman (input) for mailman id 674979;
 Fri, 02 Feb 2024 10:35: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=tPCe=JL=cloud.com=owen.smith@srs-se1.protection.inumbo.net>)
 id 1rVqtQ-0007eu-0q
 for win-pv-devel@lists.xenproject.org; Fri, 02 Feb 2024 10:35:32 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c905dc54-c1b6-11ee-98f5-efadbce2ee36;
 Fri, 02 Feb 2024 11:35:29 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-5113a8ab4ceso142127e87.1
 for <win-pv-devel@lists.xenproject.org>; Fri, 02 Feb 2024 02:35:29 -0800 (PST)
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: c905dc54-c1b6-11ee-98f5-efadbce2ee36
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1706870129; x=1707474929; 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=GSLvKaE9JfO6K6VB0iPhuTy23KTMdRLJPkk9Ewp7WaY=;
        b=ppz9hMhmM8N6YhS54wNMwU1WM4gYykvIK3xh08sgjjW3IKVrUDCSn02pa9gHw0hjuM
         Dn1KjnOsq313XNhjUFZsNAYRz+1c3XsdkFXEqGluMPNR23pcsJ2OGg0Z6aEGZJfeywxN
         BkvarY3zwMFOLdbFu2JrP8aUpxOfBi5oEyf+I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1706870129; x=1707474929;
        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=GSLvKaE9JfO6K6VB0iPhuTy23KTMdRLJPkk9Ewp7WaY=;
        b=R4pT/DxZnuzIAD2GUZIEjq4qTSdTN/2XgBmaTGJ9V6ZKwQJ/hW+Ug2xtOnso6sBGC5
         bxFd+KoGQtIv1axfapBJFPF+hhxaGk3P8stEpda3hffjTdjaNUgKCzRFbHl4uDcWRXWM
         BYkEYGC8/fdLQ+XpELUO1p0gH7Rh8k8Da1OsVP9wQ9vi2jJv0v/nlcwaOjUehESYveU6
         tE/x+bm9brpMREm85+pDij8IWoLGr9xz9ESlsbfOtRBTDjFPed+MhWEU9oPc6DYpAm1y
         JvZS4YzzNH43aROrNNsJ7jZ5WmzMaLZGwZxzFXC0OHbcIuSKFJ5wbis8KnrCSvx9IwQD
         tmIw==
X-Gm-Message-State: AOJu0Yx+Yu6xgIm1GPM/o8xdD+l3sSoGrzi9KEXcoEyZxkNDb/yarI7r
	SZmzoorIjFSb5osN6ViMEnxfw4p4kx24y08uhhs9Ii02SEHLI5StSTjKYcQUNZ+euOMGOkNvUG+
	93MLM2eZ5EUOUhe1XtC7b9n8EMuXtPCZiC0gVJA1WnFH56Wc=
X-Google-Smtp-Source: AGHT+IFp++MzFMFJZYtDfXRDz6sLBbENc9Bj1PqeLZxUt7PCWpMl0f4N2Z9qdbSoaD5fqwXHB8BnKZ8cqzOHQ7BYIdE=
X-Received: by 2002:a05:6512:2188:b0:50e:a8c7:b2e2 with SMTP id
 b8-20020a056512218800b0050ea8c7b2e2mr3638572lft.38.1706870129067; Fri, 02 Feb
 2024 02:35:29 -0800 (PST)
MIME-Version: 1.0
References: <20240110134222.1660-1-owen.smith@cloud.com> <142046d9-b4bb-4ac9-ab28-8c13bebca115@xen.org>
 <CAC_UY88kTKC1RFWGZsDFXqaKxak+rgk3JCD0zn4Uru2SafmdTQ@mail.gmail.com> <d84189c5-ea34-471b-a608-16f07b83a898@xen.org>
In-Reply-To: <d84189c5-ea34-471b-a608-16f07b83a898@xen.org>
From: Owen Smith <owen.smith@citrix.com>
Date: Fri, 2 Feb 2024 10:35:17 +0000
Message-ID: <CAC_UY880OaPNspVJXcXJBK39cajwxORqTPy2Cs52GuYgLP=Ktw@mail.gmail.com>
Subject: Re: [RFC PATCH 0/3] Rework Power handlers
To: paul@xen.org
Cc: win-pv-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000b8a52a061063ab34"

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

There are similar patches for other drivers too, but I've not submitted
them yet - I was looking to get a general 'this looks like a good change to
make' first

Owen

On Fri, Feb 2, 2024 at 9:00=E2=80=AFAM Paul Durrant <xadimgnik@gmail.com> w=
rote:

> On 02/02/2024 07:36, Owen Smith wrote:
> > The problem is relatively rare - it tends to hit occasionally during ou=
r
> > automated tests, and is seen more often with xenfilt on other device
> > stacks (vGPU in particular).
> > These patches have been applied to the XS queue for some time. I
> > refactored and simplified the patches in Dec 2021 - these have been
> > applied since then and we have released at least 2 versions since with
> > no reported power failure issues. Previously this was 1 big messy patch
> > that, I think, has been released at least once. No power related issues
> > detected in all our automated testing or through our support.
> >
>
> Ok, thanks Owen. That gives me much more confidence in the code. I'll
> run some tests on my own rig now :-)
>
>      Paul
>
> > Owen
> >
> > On Thu, Feb 1, 2024 at 5:35=E2=80=AFPM Paul Durrant <xadimgnik@gmail.co=
m
> > <mailto:xadimgnik@gmail.com>> wrote:
> >
> >     On 10/01/2024 13:42, Owen Smith wrote:
> >      > Current power handler code is passed to a single threaded work
> >     thread which
> >      > can be delayed enough to trigger 0x9F
> >     (DRIVER_POWER_STATE_FAILURE) bugchecks.
> >      > Rework power handlers to math standard practive, using pended
> IRPs,
> >      > IoCompletionRoutines and deferred IoWorkItems where required.
> >      >
> >      > Martin Harvey (2):
> >      >    [XenFilt] Asynchronous power handling.
> >      >    [XenBus] Asynchronous power handling
> >      >
> >
> >     I advised Martin against these changes over a year ago. How
> >     prevalent is
> >     the problem? It took *years* to get this, and the PnP code stable.
> How
> >     much testing have these changes had?
> >
> >         Paul
> >
> >      > Owen Smith (1):
> >      >    ASSERT(Frame->Mdl !=3D NULL) before dereference
> >      >
> >      >   src/xenbus/fdo.c    | 792
> >     ++++++++++++++++++++++++--------------------
> >      >   src/xenbus/gnttab.c |   1 +
> >      >   src/xenbus/pdo.c    | 250 ++++++--------
> >      >   src/xenfilt/fdo.c   | 498 +++++++---------------------
> >      >   src/xenfilt/pdo.c   | 503 +++++++---------------------
> >      >   5 files changed, 777 insertions(+), 1267 deletions(-)
> >      >
> >
> >
>
>

--000000000000b8a52a061063ab34
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 are similar patches for other drivers too, but I&#39;ve not submit=
ted them yet - I was looking to get a general &#39;this looks like a good c=
hange to make&#39; first</div><div class=3D"gmail_default" style=3D"font-fa=
mily:monospace"><br></div><div class=3D"gmail_default" style=3D"font-family=
:monospace">Owen</div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr"=
 class=3D"gmail_attr">On Fri, Feb 2, 2024 at 9:00=E2=80=AFAM Paul Durrant &=
lt;<a href=3D"mailto:xadimgnik@gmail.com">xadimgnik@gmail.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">On 02/02/2024 =
07:36, Owen Smith wrote:<br>
&gt; The problem is relatively rare - it tends to hit occasionally during o=
ur <br>
&gt; automated tests, and is seen more often with xenfilt on other device <=
br>
&gt; stacks (vGPU in particular).<br>
&gt; These patches have been applied to the XS queue for some time. I <br>
&gt; refactored and simplified the patches in Dec 2021 - these have been <b=
r>
&gt; applied since then and we have released at least 2 versions since with=
 <br>
&gt; no reported power failure issues. Previously this was 1 big messy patc=
h <br>
&gt; that, I think, has been released at least once. No power related issue=
s <br>
&gt; detected in all our automated testing or through our support.<br>
&gt; <br>
<br>
Ok, thanks Owen. That gives me much more confidence in the code. I&#39;ll <=
br>
run some tests on my own rig now :-)<br>
<br>
=C2=A0 =C2=A0 =C2=A0Paul<br>
<br>
&gt; Owen<br>
&gt; <br>
&gt; On Thu, Feb 1, 2024 at 5:35=E2=80=AFPM Paul Durrant &lt;<a href=3D"mai=
lto:xadimgnik@gmail.com" target=3D"_blank">xadimgnik@gmail.com</a> <br>
&gt; &lt;mailto:<a href=3D"mailto:xadimgnik@gmail.com" target=3D"_blank">xa=
dimgnik@gmail.com</a>&gt;&gt; wrote:<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0On 10/01/2024 13:42, Owen Smith wrote:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 &gt; Current power handler code is passed to a sin=
gle threaded work<br>
&gt;=C2=A0 =C2=A0 =C2=A0thread which<br>
&gt;=C2=A0 =C2=A0 =C2=A0 &gt; can be delayed enough to trigger 0x9F<br>
&gt;=C2=A0 =C2=A0 =C2=A0(DRIVER_POWER_STATE_FAILURE) bugchecks.<br>
&gt;=C2=A0 =C2=A0 =C2=A0 &gt; Rework power handlers to math standard practi=
ve, using pended IRPs,<br>
&gt;=C2=A0 =C2=A0 =C2=A0 &gt; IoCompletionRoutines and deferred IoWorkItems=
 where required.<br>
&gt;=C2=A0 =C2=A0 =C2=A0 &gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 &gt; Martin Harvey (2):<br>
&gt;=C2=A0 =C2=A0 =C2=A0 &gt;=C2=A0 =C2=A0 [XenFilt] Asynchronous power han=
dling.<br>
&gt;=C2=A0 =C2=A0 =C2=A0 &gt;=C2=A0 =C2=A0 [XenBus] Asynchronous power hand=
ling<br>
&gt;=C2=A0 =C2=A0 =C2=A0 &gt;<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0I advised Martin against these changes over a year =
ago. How<br>
&gt;=C2=A0 =C2=A0 =C2=A0prevalent is<br>
&gt;=C2=A0 =C2=A0 =C2=A0the problem? It took *years* to get this, and the P=
nP code stable. How<br>
&gt;=C2=A0 =C2=A0 =C2=A0much testing have these changes had?<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Paul<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 &gt; Owen Smith (1):<br>
&gt;=C2=A0 =C2=A0 =C2=A0 &gt;=C2=A0 =C2=A0 ASSERT(Frame-&gt;Mdl !=3D NULL) =
before dereference<br>
&gt;=C2=A0 =C2=A0 =C2=A0 &gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 &gt;=C2=A0 =C2=A0src/xenbus/fdo.c=C2=A0 =C2=A0 | 7=
92<br>
&gt;=C2=A0 =C2=A0 =C2=A0++++++++++++++++++++++++--------------------<br>
&gt;=C2=A0 =C2=A0 =C2=A0 &gt;=C2=A0 =C2=A0src/xenbus/gnttab.c |=C2=A0 =C2=
=A01 +<br>
&gt;=C2=A0 =C2=A0 =C2=A0 &gt;=C2=A0 =C2=A0src/xenbus/pdo.c=C2=A0 =C2=A0 | 2=
50 ++++++--------<br>
&gt;=C2=A0 =C2=A0 =C2=A0 &gt;=C2=A0 =C2=A0src/xenfilt/fdo.c=C2=A0 =C2=A0| 4=
98 +++++++---------------------<br>
&gt;=C2=A0 =C2=A0 =C2=A0 &gt;=C2=A0 =C2=A0src/xenfilt/pdo.c=C2=A0 =C2=A0| 5=
03 +++++++---------------------<br>
&gt;=C2=A0 =C2=A0 =C2=A0 &gt;=C2=A0 =C2=A05 files changed, 777 insertions(+=
), 1267 deletions(-)<br>
&gt;=C2=A0 =C2=A0 =C2=A0 &gt;<br>
&gt; <br>
&gt; <br>
<br>
</blockquote></div>

--000000000000b8a52a061063ab34--


From win-pv-devel-bounces@lists.xenproject.org Fri Feb 02 11:39:36 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Feb 2024 11:39:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.675002.1050189 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rVrtO-0008MF-9b; Fri, 02 Feb 2024 11:39:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 675002.1050189; Fri, 02 Feb 2024 11:39: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 1rVrtO-0008M8-70; Fri, 02 Feb 2024 11:39:34 +0000
Received: by outflank-mailman (input) for mailman id 675002;
 Fri, 02 Feb 2024 11:39:32 +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=JhER=JL=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1rVrtM-0008M2-SM
 for win-pv-devel@lists.xenproject.org; Fri, 02 Feb 2024 11:39:32 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bb1e7fdf-c1bf-11ee-8a43-1f161083a0e0;
 Fri, 02 Feb 2024 12:39:32 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-40fc654a77dso4996915e9.2
 for <win-pv-devel@lists.xenproject.org>; Fri, 02 Feb 2024 03:39:31 -0800 (PST)
Received: from [192.168.12.38] (54-240-197-238.amazon.com. [54.240.197.238])
 by smtp.gmail.com with ESMTPSA id
 a2-20020a5d5082000000b0033b18230c0dsm1753425wrt.10.2024.02.02.03.39.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 02 Feb 2024 03:39:30 -0800 (PST)
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: bb1e7fdf-c1bf-11ee-8a43-1f161083a0e0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1706873971; x=1707478771; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:references:cc:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=CPHBOS0sDKUnyZoTIBqArwcnPsIlYQBNKtVOz2xcGEk=;
        b=K//JPzhs6P8YIIxqRQhfrwVjNRdUrDvKoUeJseWgtbrm30xHiLVhnVvxwvhuixdV1U
         J2O8AlHdfV3BZY/tA6O8XmabkTIVzwPnrm68Uf+U/04+m+JHGLwhENiK2R1dDGe1qlgA
         wYR5qZX/G7pZPaaSLK6JpGylQdNJ2Dj30bCrIOCs3g+3O8DyZmlO6+6/BsnOOQTf1E4q
         8TeTI4Xa5wXm8jCoGchQ9vHQSlp2mWEAd21c9VjDE+Hk53a88xtrOIEOh5gEFuxwHdVD
         rLljY3ZbVd/3F+5BlGMDL89/vv0XariTrH8pP/2Lhb3OcVrZLPHfE8WyvrLqB9NRGnQC
         LcxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1706873971; x=1707478771;
        h=content-transfer-encoding:in-reply-to:organization:references:cc:to
         :content-language:subject:reply-to:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CPHBOS0sDKUnyZoTIBqArwcnPsIlYQBNKtVOz2xcGEk=;
        b=nHMy+9JndRFaoVDkAPUOwskfGRXCg4g6dWCkXlF7RHahzPUbSoj4daJRAnQOhF7qfE
         7QmQg/u2nUIEnsM7MJh7OjL7jLlzq38unWBJhr0scQvKx6Aj0hVKn1IYfKIaD8Zphx5r
         l+bY2CQnRagWyPZmyUzOTTSZJdLgIs3KT+Y+qR0t/JsZ97gOfJrLSHhfxEAr+bPVCHGq
         6Y4+QCB70793M9X9PUFLXTylvNJukc4DRdtMbKxCKFvfL1ZL2/hXIOJyLkU50iSQqAIu
         X4/iP5ifYPnSl3G8hfDpwgh302Ri+K53unii4YhYv2c7bQfgSbwFoE1HjGiP+f2fl5sk
         +PvA==
X-Gm-Message-State: AOJu0Yw62i+mcEkl5dGOUJs8X1Vvjg9B31XKGGGVRNg2tLJJw1idZy49
	luK5qpZo/wCzR2gWHM0/Gvdf6Wbt5JFr7OQHh4rXLmWKFn4DMPgsMdYS9dOOvXg=
X-Google-Smtp-Source: AGHT+IHVjjKUvp0EG7Q0wZUsjMc79f1KenYk4vxkD3zzkkU2ngoUkwhbHo1kqmqD2WcNUjAYJRptUw==
X-Received: by 2002:a05:600c:45c8:b0:40f:b03d:86b8 with SMTP id s8-20020a05600c45c800b0040fb03d86b8mr1299770wmo.28.1706873971029;
        Fri, 02 Feb 2024 03:39:31 -0800 (PST)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <3e51fad3-97ac-4925-a2a1-c22a5eba72cd@xen.org>
Date: Fri, 2 Feb 2024 11:39:28 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Reply-To: paul@xen.org
Subject: Re: [RFC PATCH 0/3] Rework Power handlers
Content-Language: en-US
To: Owen Smith <owen.smith@citrix.com>
Cc: win-pv-devel@lists.xenproject.org
References: <20240110134222.1660-1-owen.smith@cloud.com>
 <142046d9-b4bb-4ac9-ab28-8c13bebca115@xen.org>
 <CAC_UY88kTKC1RFWGZsDFXqaKxak+rgk3JCD0zn4Uru2SafmdTQ@mail.gmail.com>
 <d84189c5-ea34-471b-a608-16f07b83a898@xen.org>
 <CAC_UY880OaPNspVJXcXJBK39cajwxORqTPy2Cs52GuYgLP=Ktw@mail.gmail.com>
Organization: Xen Project
In-Reply-To: <CAC_UY880OaPNspVJXcXJBK39cajwxORqTPy2Cs52GuYgLP=Ktw@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 02/02/2024 10:35, Owen Smith wrote:
> There are similar patches for other drivers too, but I've not submitted 
> them yet - I was looking to get a general 'this looks like a good change 
> to make' first
> 

Ok. I'll give the patches a spin and, assuming I don't find any issues, 
I'll ack them then.

   Paul



From win-pv-devel-bounces@lists.xenproject.org Wed Feb 07 17:52:35 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 07 Feb 2024 17:52:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.677867.1054772 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rXm65-0000he-76; Wed, 07 Feb 2024 17:52:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 677867.1054772; Wed, 07 Feb 2024 17:52: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 1rXm65-0000hX-4Z; Wed, 07 Feb 2024 17:52:33 +0000
Received: by outflank-mailman (input) for mailman id 677867;
 Wed, 07 Feb 2024 17:52:31 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul@xen.org>) id 1rXm63-0000hR-IM
 for win-pv-devel@lists.xenproject.org; Wed, 07 Feb 2024 17:52:31 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul@xen.org>)
 id 1rXm63-0007Rw-CH; Wed, 07 Feb 2024 17:52:31 +0000
Received: from 54-240-197-235.amazon.com ([54.240.197.235]
 helo=REM-PW02S00X.ant.amazon.com)
 by xenbits.xenproject.org with esmtpsa
 (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92)
 (envelope-from <paul@xen.org>)
 id 1rXm63-00008w-3W; Wed, 07 Feb 2024 17:52:31 +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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date:
	Subject:Cc:To:From; bh=qkVRFhm4XyBWnJXp7HprY488UcIdphfsKUhjt4+NxZM=; b=hHiuv9
	FNFhPZpOytshsIWPj/YoRzvgISsPC37akwns6INd8P3vMVhE605fnLvzNAO9XMLSfD/V1JaX/Rat5
	ZTd92xHgE112+e7ei63nipkKfxUSEEz1qbAVYFv5pIyc+yL9LuvDUcVdF4+ZnfSvz+gv1YB9qI5Tz
	3kXyCzxcTEo=;
From: Paul Durrant <paul@xen.org>
To: win-pv-devel@lists.xenproject.org
Cc: Paul Durrant <pdurrant@amazon.com>
Subject: [PATCH] Don't prematurely fake transmit responses
Date: Wed,  7 Feb 2024 17:52:22 +0000
Message-Id: <20240207175222.2670-1-paul@xen.org>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Paul Durrant <pdurrant@amazon.com>

If the device is being ejected then the backend state will transition from
XenbusStateConnected to XenbusStateClosing. This is done by the toolstack
and should have no effect on the backend's ability to complete requests.
Therefore, when we fake responses in __TransmitterRingDisable() we could
be racing with an active backend. Hence amend the test in the loop to
consider a backend in either XenbusStateConnected or XenbusStateClosing to
be worth waiting for.

Signed-off-by: Paul Durrant <pdurrant@amazon.com>
---
 src/xenvif/transmitter.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/xenvif/transmitter.c b/src/xenvif/transmitter.c
index fefa712b281b..9736d8119f8d 100644
--- a/src/xenvif/transmitter.c
+++ b/src/xenvif/transmitter.c
@@ -3933,6 +3933,7 @@ __TransmitterRingDisable(
     PCHAR                           Buffer;
     XenbusState                     State;
     ULONG                           Attempt;
+    BOOLEAN                         WaitForBackend;
     NTSTATUS                        status;
 
     Transmitter = Ring->Transmitter;
@@ -3985,6 +3986,13 @@ __TransmitterRingDisable(
                      Buffer);
     }
 
+    //
+    // If the we are disabling during an eject then the backend will still be
+    // be there, but it will be in XenbusStateClosing state, not
+    // XenbusStateConnected.
+    //
+    WaitForBackend = (State == XenbusStateConnected) || (State == XenbusStateClosing);
+
     Attempt = 0;
     ASSERT3U(Ring->RequestsPushed, ==, Ring->RequestsPosted);
     while (Ring->ResponsesProcessed != Ring->RequestsPushed) {
@@ -3996,7 +4004,7 @@ __TransmitterRingDisable(
         __TransmitterRingSend(Ring);
         (VOID) TransmitterRingPoll(Ring);
 
-        if ((Attempt >= 100) || (State != XenbusStateConnected))
+        if ((Attempt >= 100) || !WaitForBackend)
             break;
 
         // We are waiting for a watch event at DISPATCH_LEVEL so
-- 
2.25.1



From win-pv-devel-bounces@lists.xenproject.org Tue Feb 13 14:56:37 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 13 Feb 2024 14:56:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.679965.1057767 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rZuD6-0002fZ-0g; Tue, 13 Feb 2024 14:56:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 679965.1057767; Tue, 13 Feb 2024 14:56: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 1rZuD5-0002fS-U6; Tue, 13 Feb 2024 14:56:35 +0000
Received: by outflank-mailman (input) for mailman id 679965;
 Tue, 13 Feb 2024 14:56: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=oPHc=JW=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1rZuD5-0002fE-0x
 for win-pv-devel@lists.xenproject.org; Tue, 13 Feb 2024 14:56:35 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 13047032-ca80-11ee-98f5-efadbce2ee36;
 Tue, 13 Feb 2024 15:56:33 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-410e676c6bbso7211455e9.1
 for <win-pv-devel@lists.xenproject.org>; Tue, 13 Feb 2024 06:56:32 -0800 (PST)
Received: from [192.168.8.23] (54-240-197-234.amazon.com. [54.240.197.234])
 by smtp.gmail.com with ESMTPSA id
 bk26-20020a0560001d9a00b0033b46111d7csm10037248wrb.6.2024.02.13.06.56.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 13 Feb 2024 06:56:30 -0800 (PST)
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: 13047032-ca80-11ee-98f5-efadbce2ee36
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1707836191; x=1708440991; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:cc:to:content-language:subject:user-agent:mime-version
         :date:message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=IkzkxPe+siRyaSHxRzF8fujwXIjI5rzXKbA9fkhkfpg=;
        b=lGiBVhtmfdeZjAFn4sUUWcQTHDojFsDX61+9NPztXy1Wsnvi9SdHrdpX8UA0Dnjj4z
         ndGgHoxz9DNIlNEaXEOK/nMVvyaEXSjgDxY8baSdrZ2fCz4KheUd9S5IEsbsFOyNZxaz
         1/ItnKJy7+jcs8itdorB5V6nTqb4/nrQPDQud8HLiod7rFQ1PBULh94aVQ89UOyKmdT6
         oTCx/wNMEUAEq2cwNqrgXk6GHk23tJWisqm0Sa7nOO7PUAML8hEMzTzo/ftmZqWbWpdk
         aed3HvEphnUMsjGb73U6SZRoWkUKFark2Fy9QFe1BKflGFXc4/PzTx/tKbojUm09cv+q
         IgfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1707836191; x=1708440991;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:cc:to:content-language:subject:user-agent:mime-version
         :date:message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IkzkxPe+siRyaSHxRzF8fujwXIjI5rzXKbA9fkhkfpg=;
        b=BGvx2FP1plRnRYDBN7yPCqivnqxdA6a0omaGxU+DrL0oTat64JKEaJql1ll1wJK+g/
         oaThoP1w82HScDeZRPkseanefOiZrCLPgDbRDasEJ7zfisC/R+TCdjL8uE9imHzoLtbB
         7FlBUw5GIjdW5qKwonS9XgFIJpas2Xev0IAVIG2+m2urmqx6vQ5Ajj7mC6E6sna1Lv5X
         2p60cXd7y2nLHzYWYlj0IwRDiVz/FPwvLI4zkLmpLt+WOdOsC9wapMZq4LtdOSQIgH+w
         9tbwJFO2v2glT+Ltnhe0Vg+4LUvPRiJSk4vhyKv+vofmikTVr2t1vTYAuvLOJwD3isM+
         rcaw==
X-Gm-Message-State: AOJu0Yyj3PfSnPZaYFahyaf8YbFBHbGae/tSVA5UevQtEUK+f1T8utx6
	0RbupaPrIDJhXTH2gtnSG1C1CSf/ANeYpE6IIdFnprTrQ93cQFRC
X-Google-Smtp-Source: AGHT+IFcHxRgdavq5w5ewGA0ACCMWreMhLQWe/LL+JbAkeX/Asux1tiOgdnZALTdKP7Ch3+ACBKI8g==
X-Received: by 2002:a5d:5183:0:b0:33b:51a0:4dd3 with SMTP id k3-20020a5d5183000000b0033b51a04dd3mr6952560wrv.17.1707836191337;
        Tue, 13 Feb 2024 06:56:31 -0800 (PST)
X-Forwarded-Encrypted: i=1; AJvYcCU5rMtLJ0n8Y1J+AQoyN78jQHjZ9FgFoa9B4VCL+XoC3YUO8MS5wqeUebCgcMbVmSexVCHx5sIc78uR17SBGMerqRX2rgEP6VMCfQh63XDegas=
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <4febe8f6-d62e-468d-a642-9293ffb197ea@xen.org>
Date: Tue, 13 Feb 2024 14:56:18 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 1/3] [XenFilt] Asynchronous power handling
Content-Language: en-US
To: Owen Smith <owen.smith@cloud.com>, win-pv-devel@lists.xenproject.org
Cc: Martin Harvey <Martin.Harvey@citrix.com>
References: <20240110134222.1660-1-owen.smith@cloud.com>
 <20240110134222.1660-2-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20240110134222.1660-2-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 10/01/2024 13:42, Owen Smith wrote:
> From: Martin Harvey <Martin.Harvey@citrix.com>
> 
> XenFilt requires minimal IRP_MN_SET_POWER/IRP_MN_QUERY_POWER interactions.
> No IoWorkItems are required as operationsperform no significant work.
> Power handlers are is limited to tracking state changes and calling PoSetPowerState.
> 
> Signed-off-by: Martin Harvey <martin.harvey@citrix.com>
> 
> Refactored and limited to XenFilt changes
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/xenfilt/fdo.c | 498 +++++++++++----------------------------------
>   src/xenfilt/pdo.c | 503 +++++++++++-----------------------------------
>   2 files changed, 242 insertions(+), 759 deletions(-)
> 

Acked-by: Paul Durrant <paul@xen.org>



From win-pv-devel-bounces@lists.xenproject.org Tue Feb 13 14:57:31 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 13 Feb 2024 14:57:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.679973.1057773 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rZuDz-0002qA-4w; Tue, 13 Feb 2024 14:57:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 679973.1057773; Tue, 13 Feb 2024 14:57: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 1rZuDz-0002q3-1O; Tue, 13 Feb 2024 14:57:31 +0000
Received: by outflank-mailman (input) for mailman id 679973;
 Tue, 13 Feb 2024 14:57: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=oPHc=JW=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1rZuDx-0002pv-L1
 for win-pv-devel@lists.xenproject.org; Tue, 13 Feb 2024 14:57:29 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3440336c-ca80-11ee-98f5-efadbce2ee36;
 Tue, 13 Feb 2024 15:57:27 +0100 (CET)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-2d0d95e8133so54995561fa.1
 for <win-pv-devel@lists.xenproject.org>; Tue, 13 Feb 2024 06:57:27 -0800 (PST)
Received: from [192.168.8.23] (54-240-197-234.amazon.com. [54.240.197.234])
 by smtp.gmail.com with ESMTPSA id
 bk26-20020a0560001d9a00b0033b46111d7csm10037248wrb.6.2024.02.13.06.57.26
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 13 Feb 2024 06:57:26 -0800 (PST)
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: 3440336c-ca80-11ee-98f5-efadbce2ee36
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1707836247; x=1708441047; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=/zJsmTQRHistjSy1+l4BbuHa85ZYgc9LE/b00Rya/Nk=;
        b=EwPV875u48MfkQWCvtEiwLaSefPaS/yzcJbSDLlgpacTURRUYbTSl3IHwQNj2HsBf2
         hu6JHGuGYND+ttfCq19nSBw7cqsvW6RXn1TCXDYgvalic1D/+nMjg2Hdn6MCJSBQmQoD
         k5p72S9jpY0kqDXoO0S0sBfsuSY7wi/qpFrZJOB/8218hr9DMXar1TJHthO2aV0AypTa
         ovTBK1DctMU4IgacERrqaDQWPGj63EwouljSvea/xjVAwXL1h4PRYLbAfa5SGeFse5kd
         NHudCEdKwJhc3Aa+HpXObXXJbGjq2O/xaQJVV34pXCUd2saxsgJhCUl4Mq0za1DnWDf3
         zFxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1707836247; x=1708441047;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/zJsmTQRHistjSy1+l4BbuHa85ZYgc9LE/b00Rya/Nk=;
        b=oVMN6J9+tZO2cE9GXyMrE9pUq/hKo/QtMBj3RuVBPnnrtx4GsVYKaHlKCQcpNU36om
         dTo11AsRyNuXpQQMa5Iy/Zmy0mZK2XqhTxO6tO6TNctOlGJfTnkbJiASbxUqV54stnUA
         6h5Zgzy+zFGuF667zDbWg4VjHJwLGrN5zO1iHceGdmd9zGTYP6fCLQMqCDpOpcPPneIH
         73o2pgE0cY77lQL/IemHjs2JvNhDxmCRYGe6rzbKXwAYklwklpAF6a6sL1tRprizYXYP
         Ffn31Sje8bA+3IY7r7l23xXM226Z3k6ewtbe8oIt8TFvZ7sYQdB1+hJXmpMH1cGvwQ0l
         nH2w==
X-Gm-Message-State: AOJu0YycIZveCY15HTtNGL5aOlui9A40bMUQolP/lBTxq+QkTgfgHfaB
	RrHNUtV7ynHNkVgezQzemruVXIGA5lFjQgC6q2TWaURtdlJnpBp80LjtvJvh3Hrm2w==
X-Google-Smtp-Source: AGHT+IEdbJN8gHt44wbPKNdDGu6DiPp8f7jLuC6SEQ2lby2kvTFzuOsU8pME6f8m9OMba0KLxUxHYg==
X-Received: by 2002:a2e:9945:0:b0:2d0:c9af:a336 with SMTP id r5-20020a2e9945000000b002d0c9afa336mr5852322ljj.28.1707836247065;
        Tue, 13 Feb 2024 06:57:27 -0800 (PST)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <a9fd3bae-507d-479a-92a4-7368af862241@xen.org>
Date: Tue, 13 Feb 2024 14:57:15 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 2/3] [XenBus] Asynchronous power handling.
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20240110134222.1660-1-owen.smith@cloud.com>
 <20240110134222.1660-3-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20240110134222.1660-3-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 10/01/2024 13:42, Owen Smith wrote:
> From: Martin Harvey <Martin.Harvey@citrix.com>
> 
> Replace a static, single thread for System and Device power transitions with
> an IO_WORKITEM for each transition. IO_WORKITEMs are only used when a transition
> requires calling codepaths that must be called at PASSIVE_LEVEL.
> Move the bulk of power transitions to pending IRPs and IRP completion routines.
> 
> Signed-off-by: Martin Harvey <martin.harvey@citrix.com>
> 
> Refactored to only apply to XenBus power
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/xenbus/fdo.c | 792 ++++++++++++++++++++++++++---------------------
>   src/xenbus/pdo.c | 250 ++++++---------
>   2 files changed, 534 insertions(+), 508 deletions(-)
> 

Acked-by: Paul Durrant <paul@xen.org>

... although I am going to clean up the plethora of out-of-style comments.



From win-pv-devel-bounces@lists.xenproject.org Tue Feb 13 14:57:55 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 13 Feb 2024 14:57:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.679981.1057775 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rZuEN-0002ui-6G; Tue, 13 Feb 2024 14:57:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 679981.1057775; Tue, 13 Feb 2024 14:57: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 1rZuEN-0002ub-3f; Tue, 13 Feb 2024 14:57:55 +0000
Received: by outflank-mailman (input) for mailman id 679981;
 Tue, 13 Feb 2024 14:57:53 +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=oPHc=JW=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1rZuEL-0002pv-Rf
 for win-pv-devel@lists.xenproject.org; Tue, 13 Feb 2024 14:57:53 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 42c6d90d-ca80-11ee-98f5-efadbce2ee36;
 Tue, 13 Feb 2024 15:57:52 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-33cda3dfa06so409312f8f.3
 for <win-pv-devel@lists.xenproject.org>; Tue, 13 Feb 2024 06:57:52 -0800 (PST)
Received: from [192.168.8.23] (54-240-197-234.amazon.com. [54.240.197.234])
 by smtp.gmail.com with ESMTPSA id
 bk26-20020a0560001d9a00b0033b46111d7csm10037248wrb.6.2024.02.13.06.57.50
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 13 Feb 2024 06:57:51 -0800 (PST)
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: 42c6d90d-ca80-11ee-98f5-efadbce2ee36
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1707836271; x=1708441071; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=bZxZ3x68ElqqVC/Z7HxK9S+2+DrgiiyaDgPeZsbwbZI=;
        b=ald2tLHrUXjJsgHoLUpBxo718uSHvcdNGPPlRFQqo+dfkniQMxnZekuBF3VO+JuNyc
         GaEE04yeteW78akv5CfCrKypDD1vLzvOkSIl99oqD6Z5SftltWtG8DapYq65+ENZyPAU
         fP9i/Zs5yzG+G2/QXrpBpcVV5zW5aS39Aq12gKQb0ruxZjvnKVzApsAcMpK95YgPejfM
         4wchbR3Bg6oZSHqFbziNMs254HFy0KmbKP9nho/l7dIyrOa6heuLgjGGmhCk75SoLhZB
         MZ4T8fYCRMFJvuhWXkA4VhRbZAJpzywOj/FhNiZN0zi4Lx0NeB0i2Gi/nFx2FK2wTsKY
         rSnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1707836271; x=1708441071;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bZxZ3x68ElqqVC/Z7HxK9S+2+DrgiiyaDgPeZsbwbZI=;
        b=E+rl418VVQs8IHTMBViYFjCgLHBqztoE0mKqE9S3hqaT2e47nYJ8ueR3Yt7HFQU2w5
         h6YFRP+SbNVrV8ZzlKcGuxx0DK/719MF8tjF4e9u74xbhaKwrLo6PLo+2u9q0F0YmcvV
         ibqaUAcyYD9Q39ZldczV43HRM7tSzXnNZ94ypI0QkFYvkmMIHJAtTzd1aSyNN8hycJPT
         OMghol7FGXLQwcPbW49oC1CK0sI/HwNCPsoprgqIrb5EZg6bJuTz2MxZ52Pirg+9dC0f
         kdkZyYvy+DDLtoqcHZ4S4jAzW32M+K7p4F8MBK9zYMhfUkPQpZGCPMWfSHCLAJEmmEsn
         gEHA==
X-Gm-Message-State: AOJu0Yw68NUFpG1euTzcpTOSiWEIM1csCSYGKyo5XdnvYNn+d1ZZQCmv
	+3PNhZropYGgmr2BN45xJJN35k2TUICduqCmNvXsbDXVe4GQ48mjmkaE9YMQbbzPHw==
X-Google-Smtp-Source: AGHT+IGcpJaSFCrNtuvixcycFZY+G4QpfrUY1BEWFEPRqjyjN7HnAjfHDsroUjSYGABDD/2OsxQNrQ==
X-Received: by 2002:adf:f712:0:b0:33b:4656:5e5 with SMTP id r18-20020adff712000000b0033b465605e5mr7682407wrp.27.1707836271462;
        Tue, 13 Feb 2024 06:57:51 -0800 (PST)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <30e847d9-4633-49f3-b710-3b75bde7cf81@xen.org>
Date: Tue, 13 Feb 2024 14:57:39 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 3/3] ASSERT(Frame->Mdl != NULL) before dereference
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20240110134222.1660-1-owen.smith@cloud.com>
 <20240110134222.1660-4-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20240110134222.1660-4-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 10/01/2024 13:42, Owen Smith wrote:
> CodeAnalysis detects a false positive, where Frame->Mdl could be NULL in
> GnttabContract. Without asserting a non-NULL pointer, SDV will generate a
> DVL log file that will fail WHQL testing.
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   src/xenbus/gnttab.c | 1 +
>   1 file changed, 1 insertion(+)
> 

Acked-by: Paul Durrant <paul@xen.org>



From win-pv-devel-bounces@lists.xenproject.org Tue Feb 13 15:54:07 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 13 Feb 2024 15:54:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.680040.1057879 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rZv6k-0000rl-EO; Tue, 13 Feb 2024 15:54:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 680040.1057879; Tue, 13 Feb 2024 15:54:06 +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 1rZv6k-0000rc-Bm; Tue, 13 Feb 2024 15:54:06 +0000
Received: by outflank-mailman (input) for mailman id 680040;
 Tue, 13 Feb 2024 15:54:04 +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=oPHc=JW=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1rZv6i-0000rU-MT
 for win-pv-devel@lists.xenproject.org; Tue, 13 Feb 2024 15:54:04 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1bbf4287-ca88-11ee-98f5-efadbce2ee36;
 Tue, 13 Feb 2024 16:54:02 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-337d05b8942so3708397f8f.3
 for <win-pv-devel@lists.xenproject.org>; Tue, 13 Feb 2024 07:54:02 -0800 (PST)
Received: from [192.168.8.23] (54-240-197-234.amazon.com. [54.240.197.234])
 by smtp.gmail.com with ESMTPSA id
 a4-20020a05600c224400b00410ebcf8180sm5006182wmm.43.2024.02.13.07.54.01
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 13 Feb 2024 07:54:01 -0800 (PST)
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: 1bbf4287-ca88-11ee-98f5-efadbce2ee36
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1707839642; x=1708444442; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=iDq+q/9jfxp0Jpm9UVWIxw0bVnzKfjVWSvRFjkA0kuA=;
        b=EvCoScAfouqz6ekL83HBzJvHx9MytxKGizhNkcE6oVJi6hUUyu9jGYYTDFkrMV2/Qb
         24QNqfWxzgQMT7/yGqKl39Mv0mnfPFzpWLRgCVyHjX1RimQq7Rup5k6nGVsDg66FA8Qx
         t+y45wDsC+lLP4fPhO5cS7KjVIJwZCt1c+cyo5Qko4OzBBMLa1rODNA1diCrBak1EYgP
         a9Z5Hp8Rqv+YHjk/pmoCNIDQyCexh9SFhBUpok1CbCDXs4DBuvQSUGoKPyKiu0yukrpS
         Yd2C0JhoXybK0WCYXAZdixNrs4vIRTeFiZdfzjn0b2W+06DOpx1cmVoxhSh1gyoqtaL6
         BEmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1707839642; x=1708444442;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iDq+q/9jfxp0Jpm9UVWIxw0bVnzKfjVWSvRFjkA0kuA=;
        b=GbrVtf/PymAkvXIKHJpKncQv7ILJRYFF79Jaf7QSFJBG4oKTI1T/eaKZDJsHQTqcTE
         ELykfW9/ptYQrdFYOx/wtLaOtdsqkjYHmMZhF/ZEiLDSRpP2khjfiIm6T+D+bpoIHo0/
         kAkcdsszoBHxlm4Khqj3WhhX3+qYqcLBJPlIWVYNq1tePZWN9b6wFjx11KtqFciFZJ2H
         qaKaOJJonL1nHj2F7wEkMe9gvm06j2cA4tJTaQPGTHkHRwka1Ll/jXaVx9zgRon5MqWB
         Kfv+nCHLIiR1/7rSHmXG1lJae6Gg70Bd1x4hf4Dr3rXi7Yas3aPB36mrDOVRqqUfSWkC
         w9ew==
X-Gm-Message-State: AOJu0YwfcFbopmREBHPxBilAl7v0xM407RhXXOpM228ipgfEBnAGogod
	E/XKT/v2/8t5it/R4ZuZ+/ho50AE8oVi90HxbwTGdZXjDQwgUO0XQ2Yii3bUL62xXA==
X-Google-Smtp-Source: AGHT+IEwuqsu+5N16XMjoHXdpfC76CdcJSPiTBKkI3T4Jn0wv6qr8R5EKIa3MXatUoLQyee0cGuAng==
X-Received: by 2002:a5d:468e:0:b0:33c:dd2d:c89d with SMTP id u14-20020a5d468e000000b0033cdd2dc89dmr1205079wrq.17.1707839642117;
        Tue, 13 Feb 2024 07:54:02 -0800 (PST)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <c2b36912-1fb1-4534-b436-2c1a407dc93b@xen.org>
Date: Tue, 13 Feb 2024 15:53:49 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Generate map files and enable integrity check
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20240202101344.1040-1-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20240202101344.1040-1-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 02/02/2024 10:13, Owen Smith wrote:
> Enable linker options to generates map files, to help debugging crashdumps
> Adds map files to output package
> Add /INTEGRITYCHECK to linker options
> 
> https://learn.microsoft.com/en-us/cpp/build/reference/map-generate-mapfile?view=msvc-170
> https://learn.microsoft.com/en-us/cpp/build/reference/mapinfo-include-information-in-mapfile?view=msvc-170
> https://learn.microsoft.com/en-us/cpp/build/reference/integritycheck-require-signature-check?view=msvc-170
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   vs2019/xenvif/xenvif.vcxproj | 4 ++++
>   vs2022/xenvif/xenvif.vcxproj | 4 ++++
>   2 files changed, 8 insertions(+)
> 

This patch and similar....

Acked-by: Paul Durrant <paul@xen.org>

... and I assume we'll see similar patches for the remaining drivers?



From win-pv-devel-bounces@lists.xenproject.org Tue Feb 13 16:25:17 2024
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 13 Feb 2024 16:25:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.680064.1057904 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1rZvat-0000Cc-2j; Tue, 13 Feb 2024 16:25:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 680064.1057904; Tue, 13 Feb 2024 16:25: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 1rZvat-0000CV-0H; Tue, 13 Feb 2024 16:25:15 +0000
Received: by outflank-mailman (input) for mailman id 680064;
 Tue, 13 Feb 2024 16:25: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=oPHc=JW=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1rZvar-0000CP-L4
 for win-pv-devel@lists.xenproject.org; Tue, 13 Feb 2024 16:25:13 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 75eb7c5b-ca8c-11ee-8a4d-1f161083a0e0;
 Tue, 13 Feb 2024 17:25:12 +0100 (CET)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-2d0aabed735so59227241fa.0
 for <win-pv-devel@lists.xenproject.org>; Tue, 13 Feb 2024 08:25:11 -0800 (PST)
Received: from [192.168.8.23] (54-240-197-234.amazon.com. [54.240.197.234])
 by smtp.gmail.com with ESMTPSA id
 i13-20020adffc0d000000b0033b63a0bd0dsm9950771wrr.109.2024.02.13.08.25.10
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 13 Feb 2024 08:25:10 -0800 (PST)
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: 75eb7c5b-ca8c-11ee-8a4d-1f161083a0e0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1707841511; x=1708446311; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:from:to:cc:subject:date:message-id:reply-to;
        bh=phw3+0Rfm4Px6YDwRKmdtuXhvWnkb0gCrOT8NpRiJgs=;
        b=EtwqVrp1e3zMjQoKd/Zgeo/Sh2y6T/Nj1Py9+rvn881EaJyLdiiF3Mx6HNRlZbZCrK
         GJ1yb1Vexx73Y3fyJFlNdbHMdaiooH8IWC2RumhDunoDG7p4FXIyh+mFpMg3l1QUkFeE
         bSBXWVbsGDp5qs/Ol3R7hsTopTbtYr0jeTbuue+PkXeX6Umm9wxj+bZiPTobNSOnCPPK
         PnrPNm9cCiQXgDSb4mEZuz24Hr86GachbJ5UMFpf9vApV9OOy/oqmHZBzb7NJpBcB04u
         uwYL4D5UJmcr9CSphvt6Loz5BDYVblTHeiMZGKsqYqJzBwf/LAjtO1sNRZDXoqCYG0Ke
         8Fsg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1707841511; x=1708446311;
        h=content-transfer-encoding:in-reply-to:organization:reply-to
         :references:to:content-language:subject:user-agent:mime-version:date
         :message-id:from:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=phw3+0Rfm4Px6YDwRKmdtuXhvWnkb0gCrOT8NpRiJgs=;
        b=lmMCWswIen7qiEqm+uVQoOGgBDnv0vvEHiqKzMTXCejJv6kWdEp0zIOl41Rwtrn7qw
         hBPGtbZg5AAFBso3T+lXQiQ6GVKZX0lBTnYswWY5YciNfKgJ9kNlSjc2DoNB1bVR/FEC
         dmW4pzjiEPe4xkjSXH3zLcrzVEg7LV2rnNgCSr7Ub4SDacqE8hF8oIoSdSCn9MmIoQiP
         agPMjKjUdNk8M6gxwpoqao0ck7Kfs8el0G0BkZOgmQyV1l6c7BWYeZXh0o9Eedz13lr2
         syjAqUx+wQs0UjLUUAeEL0Mpyc8hnZsrRwl/f069sI994sm7yjM1/WATxV4x5s3He22u
         4QyA==
X-Gm-Message-State: AOJu0Yxar2zCiYetr59R1EZWwfAze/LT5n+eCBM9YAcaEUUnGVNN8nPJ
	O+bxty82AKsJjR+GTgnUT9wacSZ4VhmKqlTYGT3YeuiDE4rHkhwus/R+6U5SF5PpoA==
X-Google-Smtp-Source: AGHT+IFnh1i6ctEhLZfIiAqTf/iHlCoaK+Z/H+uAO+mD8H04cfgNE/ZLt8HtPhj+wIoR0TvC4b9JJw==
X-Received: by 2002:a2e:be27:0:b0:2d0:ca46:46be with SMTP id z39-20020a2ebe27000000b002d0ca4646bemr121413ljq.20.1707841511037;
        Tue, 13 Feb 2024 08:25:11 -0800 (PST)
From: Paul Durrant <xadimgnik@gmail.com>
X-Google-Original-From: Paul Durrant <paul@xen.org>
Message-ID: <063f3bd4-91e3-4823-8822-ca786d47dc7e@xen.org>
Date: Tue, 13 Feb 2024 16:24:58 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Use FilesToPackage to copy map files
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20240202102125.24-1-owen.smith@cloud.com>
Reply-To: paul@xen.org
Organization: Xen Project
In-Reply-To: <20240202102125.24-1-owen.smith@cloud.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 02/02/2024 10:21, Owen Smith wrote:
> And remove build.ps1 scripting to copy map files
> 
> Signed-off-by: Owen Smith <owen.smith@cloud.com>
> ---
>   build.ps1                                    | 8 --------
>   vs2019/xen/xen.vcxproj                       | 1 +
>   vs2019/xenbus/xenbus.vcxproj                 | 1 +
>   vs2019/xenbus_monitor/xenbus_monitor.vcxproj | 1 +
>   vs2019/xenfilt/xenfilt.vcxproj               | 1 +
>   vs2022/xen/xen.vcxproj                       | 1 +
>   vs2022/xenbus/xenbus.vcxproj                 | 1 +
>   vs2022/xenbus_monitor/xenbus_monitor.vcxproj | 1 +
>   vs2022/xenfilt/xenfilt.vcxproj               | 1 +
>   9 files changed, 8 insertions(+), 8 deletions(-)
> 

Acked-by: Paul Durrant <paul@xen.org>



