From win-pv-devel-bounces@lists.xenproject.org Thu Jun 02 10:46:21 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 02 Jun 2022 10:46:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.341085.566265 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1nwiLK-0002nr-LP; Thu, 02 Jun 2022 10:46:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 341085.566265; Thu, 02 Jun 2022 10:46: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 1nwiLK-0002nk-Ia; Thu, 02 Jun 2022 10:46:18 +0000
Received: by outflank-mailman (input) for mailman id 341085;
 Thu, 02 Jun 2022 10:46:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1NJu=WJ=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1nwiLJ-0002ne-H0
 for win-pv-devel@lists.xenproject.org; Thu, 02 Jun 2022 10:46:17 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3a2ff027-e261-11ec-bd2c-47488cf2e6aa;
 Thu, 02 Jun 2022 12:46:15 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id q7so5931601wrg.5
 for <win-pv-devel@lists.xenproject.org>; Thu, 02 Jun 2022 03:46:15 -0700 (PDT)
Received: from [10.95.152.198] (54-240-197-230.amazon.com. [54.240.197.230])
 by smtp.gmail.com with ESMTPSA id
 j5-20020a05600c1c0500b0039c3056c3dfsm2139814wms.27.2022.06.02.03.46.14
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 02 Jun 2022 03:46:14 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3a2ff027-e261-11ec-bd2c-47488cf2e6aa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:reply-to:subject
         :content-language:to:references:from:in-reply-to
         :content-transfer-encoding;
        bh=fzOgZj8BmI45hqJogPtPQvBlES3kIt46xewIYfS4mPg=;
        b=eGp6fR/oFzNqwNRE9qKakacaRhkTCiS9wCCN8+CqfArVYpOa9WpP+hscy8RKaheFAq
         Iley6Y++edrY8V1GSIrUj2z082HtVNLoHr2cE454XeuldCtk0Ka7WrXetj1/4ThaK9Tw
         /M+e80p5VgmFGdt0dPnFXBkvm3/7eFPHkea8wnog7a0DAtkwLpFjoGYXh0+RD2qIyMwk
         oAPB1gzl7ljF2bW6/MNy+sJxOrXZtM5r98twfBqWnu3C2PkRBxQX6EKm4bGSsrbGAHEa
         kRtrYYmxbkr5KFXQ0PgQSwUlzbe5Emzhr7mywFPAQXqHdGktoqXVgiwx1HZOg32/ODJu
         +y4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:reply-to
         :subject:content-language:to:references:from:in-reply-to
         :content-transfer-encoding;
        bh=fzOgZj8BmI45hqJogPtPQvBlES3kIt46xewIYfS4mPg=;
        b=CwkrAPQp7wmSrJGNjtVBKSrgDYecviIqRAQYURRSPyoHkGxvEPGTU8iu9si5+jye5f
         2YPD84QSDW5YpJg9tQUnWwrKZyTJGtWsSpXuNNPS2/Pu1v7uYD83Uu9RinEJfn7OzaBi
         ZqvownqEAm6Xvn31LsMHKNuU1r6Q/DgyAGyG1RCm/OeWzJQq7WVVTyMlb92EqhIWrxx/
         fyp7FeVUQ86TBTDo/SCTCTQK9nNXPOtlEU08LLlyZ4b3nM+X1i+1xuNbSv67k3Qx2dnM
         qRSrn8TI3xgZpL0eaf2HDEhZMzy21a30NnQd8RuhzxDOLiAigsEuSg5oCKIWZkTJU1cr
         TxkA==
X-Gm-Message-State: AOAM5310InIdgePtV4GttswegbEvqcHdwLVrdo2lPvKzc4an4lHUlUq4
	/sQC5II9hE8wwnxyZP0zbHV82YgP/To04w==
X-Google-Smtp-Source: ABdhPJypMh23W4HSmVUvhYi2fl27Z2wkG50C8BjM6ll3jn+nk13MejAHCXIACmXPSWw9Qu8Fvgb4xg==
X-Received: by 2002:a5d:598a:0:b0:20f:e113:5011 with SMTP id n10-20020a5d598a000000b0020fe1135011mr3147903wri.144.1654166775329;
        Thu, 02 Jun 2022 03:46:15 -0700 (PDT)
Message-ID: <5af2d3db-b228-e8e2-9109-df1fef13cf18@gmail.com>
Date: Thu, 2 Jun 2022 11:46:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.9.1
Reply-To: paul@xen.org
Subject: Re: [PATCH 1/2] Rate limit per DPC in Xenvif only.
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20220520141416.833-1-Martin.Harvey@citrix.com>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <20220520141416.833-1-Martin.Harvey@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 20/05/2022 15:14, Martin Harvey wrote:
> From: Owen Smith <owen.smith@citrix.com>
> 
> Change the receive algorithm, such that, for any particular receive DPC,
> only a fixed number of packets can be pushed up the stack. Under higher
> load conditions, another DPC is scheduled to process the remainder
> before any more packets are removed from the descriptor ring.
> 
> This functionality currently local to xenvif. A more complete
> solution, where xennet determines when to finish a batch
> of packets will be included in a subsequent patch.
> 
> Signed-off-by: Martin Harvey <Martin.Harvey@citrix.com>
> 
> Ported-by: Owen Smith <owen.smith@citrix.com>
> ---
>   src/xenvif/receiver.c | 82 ++++++++++++++++++++++++++++++++-----------
>   1 file changed, 61 insertions(+), 21 deletions(-)
> 
> diff --git a/src/xenvif/receiver.c b/src/xenvif/receiver.c
> index 505505e..f8bfdd4 100644
> --- a/src/xenvif/receiver.c
> +++ b/src/xenvif/receiver.c
> @@ -99,6 +99,8 @@ typedef struct _XENVIF_RECEIVER_RING {
>       BOOLEAN                     Connected;
>       BOOLEAN                     Enabled;
>       BOOLEAN                     Stopped;
> +    BOOLEAN                     Backpressured;

BackPressured would be nicer. I'll tweak it.

> +    BOOLEAN                     FinalFlush;
>       XENVIF_VIF_OFFLOAD_OPTIONS  OffloadOptions;
>       ULONG                       BackfillSize;
>       PXENBUS_DEBUG_CALLBACK      DebugCallback;
> @@ -148,6 +150,8 @@ struct _XENVIF_RECEIVER {
>   
>   #define XENVIF_RECEIVER_TAG 'ECER'
>   
> +#define RX_BUFFERING_MAX             2048 // X-ref XenNet IN_NDIS_MAX (half in NDIS half elsewhere)
> +

I don't tend to use abbreviations in comments. I'll fix for style.

>   static FORCEINLINE PVOID
>   __ReceiverAllocate(
>       IN  ULONG   Length
> @@ -1338,43 +1342,53 @@ __ReceiverRingSwizzle(
>       PXENVIF_VIF_CONTEXT         Context;
>       LIST_ENTRY                  List;
>       PLIST_ENTRY                 ListEntry;
> +    BOOLEAN                     AllFlushed;
> +    ULONG                       PushedUpstream;

I think this would be better named 'Queued'.

>   
>       Receiver = Ring->Receiver;
>       Frontend = Receiver->Frontend;
>       Context = PdoGetVifContext(FrontendGetPdo(Frontend));
> +    AllFlushed = TRUE;
> +    PushedUpstream = 0;
>   
>       InitializeListHead(&List);
>   
> -    ListEntry = InterlockedExchangePointer(&Ring->PacketQueue, NULL);
> +    if (IsListEmpty(&Ring->PacketComplete) || Ring->FinalFlush)
> +    {
> +        ListEntry = InterlockedExchangePointer(&Ring->PacketQueue, NULL);
>   
> -    // Packets are held in the queue in reverse order so that the most
> -    // recent is always head of the list. This is necessary to allow
> -    // addition to the list to be done atomically.
> +        // Packets are held in the queue in reverse order so that the most
> +        // recent is always head of the list. This is necessary to allow
> +        // addition to the list to be done atomically.
>   
> -    while (ListEntry != NULL) {
> -        PLIST_ENTRY NextEntry;
> +        while (ListEntry != NULL) {
> +            PLIST_ENTRY NextEntry;
>   
> -        NextEntry = ListEntry->Blink;
> -        ListEntry->Flink = ListEntry->Blink = ListEntry;
> +            NextEntry = ListEntry->Blink;
> +            ListEntry->Flink = ListEntry->Blink = ListEntry;
>   
> -        InsertHeadList(&List, ListEntry);
> +            InsertHeadList(&List, ListEntry);
>   
> -        ListEntry = NextEntry;
> -    }
> +            ListEntry = NextEntry;
> +        }
>   
> -    while (!IsListEmpty(&List)) {
> -        PXENVIF_RECEIVER_PACKET Packet;
> +        while (!IsListEmpty(&List)) {
> +            PXENVIF_RECEIVER_PACKET Packet;
>   
> -        ListEntry = RemoveHeadList(&List);
> -        ASSERT3P(ListEntry, !=, &List);
> +            ListEntry = RemoveHeadList(&List);
> +            ASSERT3P(ListEntry, !=, &List);
>   
> -        RtlZeroMemory(ListEntry, sizeof (LIST_ENTRY));
> +            RtlZeroMemory(ListEntry, sizeof (LIST_ENTRY));
>   
> -        Packet = CONTAINING_RECORD(ListEntry, XENVIF_RECEIVER_PACKET, ListEntry);
> -        ReceiverRingProcessPacket(Ring, Packet);
> +            Packet = CONTAINING_RECORD(ListEntry, XENVIF_RECEIVER_PACKET, ListEntry);
> +            ReceiverRingProcessPacket(Ring, Packet);
> +        }
> +    } else {
> +        AllFlushed = FALSE;
>       }
>   
> -    while (!IsListEmpty(&Ring->PacketComplete)) {
> +    while (!IsListEmpty(&Ring->PacketComplete) &&
> +           ((PushedUpstream < RX_BUFFERING_MAX) || Ring->FinalFlush)) {
>           PXENVIF_RECEIVER_PACKET Packet;
>           PXENVIF_PACKET_INFO     Info;
>           PUCHAR                  BaseVa;
> @@ -1382,6 +1396,8 @@ __ReceiverRingSwizzle(
>           PETHERNET_ADDRESS       DestinationAddress;
>           ETHERNET_ADDRESS_TYPE   Type;
>   
> +        PushedUpstream++;
> +
>           ListEntry = RemoveHeadList(&Ring->PacketComplete);
>           ASSERT3P(ListEntry, !=, &Ring->PacketComplete);
>   
> @@ -1537,9 +1553,29 @@ __ReceiverRingSwizzle(
>                                  Packet->TagControlInformation,
>                                  &Packet->Info,
>                                  &Packet->Hash,
> -                               !IsListEmpty(&Ring->PacketComplete) ? TRUE : FALSE,
> +                               ((!IsListEmpty(&Ring->PacketComplete)) &&
> +                               ((PushedUpstream < RX_BUFFERING_MAX) || Ring->FinalFlush)) ? TRUE : FALSE,
>                                  Packet);
>       }
> +
> +    if (!IsListEmpty(&Ring->PacketComplete))
> +        AllFlushed = FALSE;
> +
> +    if (!AllFlushed) {
> +        //Re-run remainder from back of DPC queue.
> +        Ring->Backpressured = TRUE;
> +        if (KeInsertQueueDpc(&Ring->QueueDpc, NULL, NULL))
> +            Ring->QueueDpcs++;
> +    } else {

I think Backpressured can be cleared unconditionally here, can't it? 
That way you could assert that it is false after setting FinalFlush and 
queuing the DPC, although the zero-check will pick that up automatically.

   Paul

> +        if ((Ring->Backpressured) && !Ring->FinalFlush) {
> +            //Not any more - restart dataflow from initial ring poll.
> +            Ring->Backpressured = FALSE;
> +
> +            //PollDpc zeroed before final flush, don't queue it here.
> +            if (KeInsertQueueDpc(&Ring->PollDpc, NULL, NULL))
> +                Ring->PollDpcs++;
> +        }
> +    }
>   }
>   
>   static FORCEINLINE VOID
> @@ -1990,7 +2026,7 @@ ReceiverRingPoll(
>   
>       Count = 0;
>   
> -    if (!Ring->Enabled)
> +    if (!Ring->Enabled || (Ring->Backpressured && !Ring->FinalFlush))
>           goto done;
>   
>       for (;;) {
> @@ -2963,8 +2999,12 @@ __ReceiverRingTeardown(
>       Ring->BackfillSize = 0;
>       Ring->OffloadOptions.Value = 0;
>   
> +    Ring->FinalFlush = TRUE;
> +    KeInsertQueueDpc(&Ring->QueueDpc, NULL, NULL);
>       KeFlushQueuedDpcs();
>       RtlZeroMemory(&Ring->QueueDpc, sizeof (KDPC));
> +    Ring->Backpressured = FALSE;
> +    Ring->FinalFlush = FALSE;
>   
>       ThreadAlert(Ring->WatchdogThread);
>       ThreadJoin(Ring->WatchdogThread);



From win-pv-devel-bounces@lists.xenproject.org Thu Jun 02 11:42:40 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 02 Jun 2022 11:42:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.341104.566279 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1nwjDq-0001it-Vw; Thu, 02 Jun 2022 11:42:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 341104.566279; Thu, 02 Jun 2022 11:42:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1nwjDq-0001im-SO; Thu, 02 Jun 2022 11:42:38 +0000
Received: by outflank-mailman (input) for mailman id 341104;
 Thu, 02 Jun 2022 11:42:37 +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 1nwjDp-0001ig-PG
 for win-pv-devel@lists.xenproject.org; Thu, 02 Jun 2022 11:42:37 +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 1nwjDp-0002bZ-JG; Thu, 02 Jun 2022 11:42:37 +0000
Received: from 54-240-197-230.amazon.com ([54.240.197.230]
 helo=CBG-R90WXYV0.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 1nwjDp-00024K-62; Thu, 02 Jun 2022 11:42:37 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Message-Id:Date:Subject:Cc:To:From;
	bh=wMjIG62Amh80ha4Ip0TUdxzhsV8xBYnGnuDcueo3zIM=; b=BNS8CkTccPKnd1VlJYyULZWy6t
	382pamG/6Nt8yu8cgcWhetgb5PTY4dz6WOzXXbJoV9G6NdaF9/pPmJJT721rfOuPS8Wkm/5Xnnu2j
	7GfU3IwFlbJjJOKqEW4dhMt6BadfAdjCuKDVcYNt/XcIejpXEzArUpEamPFDzR9y49S4=;
From: Paul Durrant <paul@xen.org>
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@citrix.com>,
	Martin Harvey <Martin.Harvey@citrix.com>,
	Paul Durrant <paul@xen.org>
Subject: [PATCH v2] Limit the amount of work done for each Receiver DPC
Date: Thu,  2 Jun 2022 12:42:21 +0100
Message-Id: <20220602114221.355-1-paul@xen.org>
X-Mailer: git-send-email 2.17.1

From: Owen Smith <owen.smith@citrix.com>

Change the receive algorithm, such that, for any particular DPC, only a
fixed number of packets can be pushed up the stack. Under higher load
conditions, another DPC is scheduled to process the remainder before
any more packets are removed from the descriptor ring (hence back-
pressuring the network backend).

This functionality currently local to XENVIF. A more complete solution,
where XENNET determines when to finish a batch of packets will be
included in a subsequent patch.

Signed-off-by: Martin Harvey <Martin.Harvey@citrix.com>
Ported-by: Owen Smith <owen.smith@citrix.com>

Some re-work.

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

v2:
 - Cosmetic tweaks
 - Got rid of 'AllFlushed' in __ReceiverRingSwizzle() and introduced
   'More'
---
 src/xenvif/receiver.c | 80 +++++++++++++++++++++++++++++++------------
 1 file changed, 59 insertions(+), 21 deletions(-)

diff --git a/src/xenvif/receiver.c b/src/xenvif/receiver.c
index 505505ee886e..050c86f0d1a8 100644
--- a/src/xenvif/receiver.c
+++ b/src/xenvif/receiver.c
@@ -99,6 +99,8 @@ typedef struct _XENVIF_RECEIVER_RING {
     BOOLEAN                     Connected;
     BOOLEAN                     Enabled;
     BOOLEAN                     Stopped;
+    BOOLEAN                     BackPressured;
+    BOOLEAN                     Flush;
     XENVIF_VIF_OFFLOAD_OPTIONS  OffloadOptions;
     ULONG                       BackfillSize;
     PXENBUS_DEBUG_CALLBACK      DebugCallback;
@@ -148,6 +150,9 @@ struct _XENVIF_RECEIVER {
 
 #define XENVIF_RECEIVER_TAG 'ECER'
 
+// Half of the maximum number of packets that XENNET will send up to NDIS
+#define RX_BUFFERING_MAX 2048
+
 static FORCEINLINE PVOID
 __ReceiverAllocate(
     IN  ULONG   Length
@@ -1338,43 +1343,54 @@ __ReceiverRingSwizzle(
     PXENVIF_VIF_CONTEXT         Context;
     LIST_ENTRY                  List;
     PLIST_ENTRY                 ListEntry;
+    ULONG                       Queued;
+    BOOLEAN                     More;
 
     Receiver = Ring->Receiver;
     Frontend = Receiver->Frontend;
     Context = PdoGetVifContext(FrontendGetPdo(Frontend));
+    Queued = 0;
 
     InitializeListHead(&List);
 
-    ListEntry = InterlockedExchangePointer(&Ring->PacketQueue, NULL);
+    //
+    // Only process the PacketQueue if there are no completed packets
+    // left to queue to XENNET, unless we are flushing the ring.
+    //
+    More = !IsListEmpty(&Ring->PacketComplete) ? TRUE : FALSE;
+    if (!More || Ring->Flush)
+    {
+        ListEntry = InterlockedExchangePointer(&Ring->PacketQueue, NULL);
 
-    // Packets are held in the queue in reverse order so that the most
-    // recent is always head of the list. This is necessary to allow
-    // addition to the list to be done atomically.
+        // Packets are held in the queue in reverse order so that the most
+        // recent is always head of the list. This is necessary to allow
+        // addition to the list to be done atomically.
 
-    while (ListEntry != NULL) {
-        PLIST_ENTRY NextEntry;
+        while (ListEntry != NULL) {
+            PLIST_ENTRY NextEntry;
 
-        NextEntry = ListEntry->Blink;
-        ListEntry->Flink = ListEntry->Blink = ListEntry;
+            NextEntry = ListEntry->Blink;
+            ListEntry->Flink = ListEntry->Blink = ListEntry;
 
-        InsertHeadList(&List, ListEntry);
+            InsertHeadList(&List, ListEntry);
 
-        ListEntry = NextEntry;
-    }
+            ListEntry = NextEntry;
+        }
 
-    while (!IsListEmpty(&List)) {
-        PXENVIF_RECEIVER_PACKET Packet;
+        while (!IsListEmpty(&List)) {
+            PXENVIF_RECEIVER_PACKET Packet;
 
-        ListEntry = RemoveHeadList(&List);
-        ASSERT3P(ListEntry, !=, &List);
+            ListEntry = RemoveHeadList(&List);
+            ASSERT3P(ListEntry, !=, &List);
 
-        RtlZeroMemory(ListEntry, sizeof (LIST_ENTRY));
+            RtlZeroMemory(ListEntry, sizeof (LIST_ENTRY));
 
-        Packet = CONTAINING_RECORD(ListEntry, XENVIF_RECEIVER_PACKET, ListEntry);
-        ReceiverRingProcessPacket(Ring, Packet);
+            Packet = CONTAINING_RECORD(ListEntry, XENVIF_RECEIVER_PACKET, ListEntry);
+            ReceiverRingProcessPacket(Ring, Packet);
+        }
     }
 
-    while (!IsListEmpty(&Ring->PacketComplete)) {
+    while (More) {
         PXENVIF_RECEIVER_PACKET Packet;
         PXENVIF_PACKET_INFO     Info;
         PUCHAR                  BaseVa;
@@ -1382,6 +1398,8 @@ __ReceiverRingSwizzle(
         PETHERNET_ADDRESS       DestinationAddress;
         ETHERNET_ADDRESS_TYPE   Type;
 
+        Queued++;
+
         ListEntry = RemoveHeadList(&Ring->PacketComplete);
         ASSERT3P(ListEntry, !=, &Ring->PacketComplete);
 
@@ -1527,6 +1545,10 @@ __ReceiverRingSwizzle(
 
         (VOID) InterlockedIncrement(&Receiver->Loaned);
 
+        More = !IsListEmpty(&Ring->PacketComplete) ? TRUE : FALSE;
+        if (!Ring->Flush && Queued == RX_BUFFERING_MAX)
+            More = FALSE;
+
         VifReceiverQueuePacket(Context,
                                Ring->Index,
                                &Packet->Mdl,
@@ -1537,9 +1559,22 @@ __ReceiverRingSwizzle(
                                Packet->TagControlInformation,
                                &Packet->Info,
                                &Packet->Hash,
-                               !IsListEmpty(&Ring->PacketComplete) ? TRUE : FALSE,
+                               More,
                                Packet);
     }
+
+    if (!IsListEmpty(&Ring->PacketComplete)) {
+        // Re-run for the remainder from the back of DPC queue.
+        Ring->BackPressured = TRUE;
+        if (KeInsertQueueDpc(&Ring->QueueDpc, NULL, NULL))
+            Ring->QueueDpcs++;
+    } else {
+        Ring->BackPressured = FALSE;
+
+        // PollDpc is zeroed before final flush, don't queue it here.
+        if (!Ring->Flush && KeInsertQueueDpc(&Ring->PollDpc, NULL, NULL))
+            Ring->PollDpcs++;
+    }
 }
 
 static FORCEINLINE VOID
@@ -1990,7 +2025,7 @@ ReceiverRingPoll(
 
     Count = 0;
 
-    if (!Ring->Enabled)
+    if (!Ring->Enabled || (Ring->BackPressured && !Ring->Flush))
         goto done;
 
     for (;;) {
@@ -2963,8 +2998,11 @@ __ReceiverRingTeardown(
     Ring->BackfillSize = 0;
     Ring->OffloadOptions.Value = 0;
 
+    Ring->Flush = TRUE;
+    KeInsertQueueDpc(&Ring->QueueDpc, NULL, NULL);
     KeFlushQueuedDpcs();
     RtlZeroMemory(&Ring->QueueDpc, sizeof (KDPC));
+    Ring->Flush = FALSE;
 
     ThreadAlert(Ring->WatchdogThread);
     ThreadJoin(Ring->WatchdogThread);
-- 
2.17.1



From win-pv-devel-bounces@lists.xenproject.org Thu Jun 02 11:44:33 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 02 Jun 2022 11:44:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.341110.566284 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1nwjFh-0001pc-4i; Thu, 02 Jun 2022 11:44:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 341110.566284; Thu, 02 Jun 2022 11:44: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 1nwjFh-0001pV-1e; Thu, 02 Jun 2022 11:44:33 +0000
Received: by outflank-mailman (input) for mailman id 341110;
 Thu, 02 Jun 2022 11:44:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1NJu=WJ=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1nwjFf-0001pP-1X
 for win-pv-devel@lists.xenproject.org; Thu, 02 Jun 2022 11:44:31 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5c56cdd9-e269-11ec-837f-e5687231ffcc;
 Thu, 02 Jun 2022 13:44:30 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id x17so6115049wrg.6
 for <win-pv-devel@lists.xenproject.org>; Thu, 02 Jun 2022 04:44:29 -0700 (PDT)
Received: from [10.95.152.198] (54-240-197-230.amazon.com. [54.240.197.230])
 by smtp.gmail.com with ESMTPSA id
 v13-20020adfe28d000000b00212a83b93f3sm2045280wri.88.2022.06.02.04.44.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 02 Jun 2022 04:44:28 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c56cdd9-e269-11ec-837f-e5687231ffcc
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:reply-to:subject
         :content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=dkyQlwbjCBm0cUBqAwWquXInkeGnxUd3CwccRqlOtS0=;
        b=IaWaC8NAwAYrdXyDxjOPAXbq3mfemM29E6GOWqZQwiXNMO4U1xj6TX4gU84EUxH6TX
         QyCq6JVw83gxAsOAlGymMX9aTNaHFeZAhEayw0N6KQqH43Wr9oqtktbZR4lTdudDxQjo
         vLhSvTJnQrEO7EWaPFsMEvUusyrBmu1MxoJltYuoej8aU4fjnQzLt8O03FUVrac5/ujR
         A0+GR+gfKR0j2SIBNEmreQQMO1PiFhHXpuFPzDZ5qKERGPY47SOq02mGoqLC9sQhXXMC
         3dJ7QZk1nBBVNGV9frf4KngiOMp9xZ1KEHm9C1/p2wfbqBaUFvI2ve8utI8cIPy4cPbw
         couQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:reply-to
         :subject:content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=dkyQlwbjCBm0cUBqAwWquXInkeGnxUd3CwccRqlOtS0=;
        b=JjZBhLrxHdLfroAXeyDKL2K8XDrcoXct8lTZhUnjFT7wlzW0+GZULmT8uQJcKwQkCw
         8df+J6VhtNiW1Zyz4XqSqTbdMF4r/MjwTrLu7onekDV5UUHLyiqcseGOsNPY3dLYJ87s
         5GcyTOSicJ5pGDjXNCt82lHw1D5cQlH2hjV3BFZq7yf8kn9Xp9n/WimHJpx52hAL8aLj
         Di4vPfO77RZt+779frXuTKW2X9rJfp4xfSPFYYcxkpjJZgVV7pzeu0jtUfZa/7yHDCDq
         0L9c2Jf5b9NjrTc//bsJ0juhu1QHlHGFuexwegsMDkylnJxc3befu2vGbSLX8DlBgfOt
         JsMg==
X-Gm-Message-State: AOAM530QdNsOpVHfUtTL0Ed2GwD/ATZYVnnek5EzI+oXbdRnNFLMzBFM
	EVkU63oL2dfRYqm/XO8eA3E=
X-Google-Smtp-Source: ABdhPJz2ZTxw+Xe93JZk8r/5wUHmZt3Kd63nomSLi+0RoLl3hnQ/SB5VMesFhcSHNsFz9P5miudqPQ==
X-Received: by 2002:adf:d1c6:0:b0:20f:c7dc:8466 with SMTP id b6-20020adfd1c6000000b0020fc7dc8466mr3262783wrd.43.1654170268626;
        Thu, 02 Jun 2022 04:44:28 -0700 (PDT)
Message-ID: <98e1a4a9-d459-75cb-8126-f73c58096c65@gmail.com>
Date: Thu, 2 Jun 2022 12:44:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.9.1
Reply-To: paul@xen.org
Subject: Re: [PATCH v2] Limit the amount of work done for each Receiver DPC
Content-Language: en-US
To: Owen Smith <owen.smith@citrix.com>,
 Martin Harvey <Martin.Harvey@citrix.com>
Cc: win-pv-devel@lists.xenproject.org
References: <20220602114221.355-1-paul@xen.org>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <20220602114221.355-1-paul@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 02/06/2022 12:42, Paul Durrant wrote:
> From: Owen Smith <owen.smith@citrix.com>
> 
> Change the receive algorithm, such that, for any particular DPC, only a
> fixed number of packets can be pushed up the stack. Under higher load
> conditions, another DPC is scheduled to process the remainder before
> any more packets are removed from the descriptor ring (hence back-
> pressuring the network backend).
> 
> This functionality currently local to XENVIF. A more complete solution,
> where XENNET determines when to finish a batch of packets will be
> included in a subsequent patch.
> 
> Signed-off-by: Martin Harvey <Martin.Harvey@citrix.com>
> Ported-by: Owen Smith <owen.smith@citrix.com>
> 
> Some re-work.
> 
> Signed-off-by: Paul Durrant <paul@xen.org>

How does this version look?

   Paul


From win-pv-devel-bounces@lists.xenproject.org Mon Jun 06 10:04:30 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Jun 2022 10:04:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.342425.567494 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ny9b0-0001Bz-D1; Mon, 06 Jun 2022 10:04:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 342425.567494; Mon, 06 Jun 2022 10:04:26 +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 1ny9b0-0001Bs-9o; Mon, 06 Jun 2022 10:04:26 +0000
Received: by outflank-mailman (input) for mailman id 342425;
 Mon, 06 Jun 2022 10:04:24 +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=Bu96=WN=citrix.com=prvs=149739580=martin.harvey@srs-se1.protection.inumbo.net>)
 id 1ny9ax-0001Bm-Vm
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jun 2022 10:04:24 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 07544124-e580-11ec-b605-df0040e90b76;
 Mon, 06 Jun 2022 12:04:21 +0200 (CEST)
Received: from mail-dm6nam11lp2172.outbound.protection.outlook.com (HELO
 NAM11-DM6-obe.outbound.protection.outlook.com) ([104.47.57.172])
 by ob1.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256;
 06 Jun 2022 06:04:10 -0400
Received: from MW4PR03MB6347.namprd03.prod.outlook.com (2603:10b6:303:11e::22)
 by SA1PR03MB6371.namprd03.prod.outlook.com (2603:10b6:806:1b6::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.12; Mon, 6 Jun
 2022 10:04:07 +0000
Received: from MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::5587:5e20:5c2b:d94e]) by MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::5587:5e20:5c2b:d94e%8]) with mapi id 15.20.5293.019; Mon, 6 Jun 2022
 10:04:07 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 07544124-e580-11ec-b605-df0040e90b76
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1654509861;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=7jH58CtQbI3u0/iOWHg8a6cY9dA72xm+1Zcjy37ZUCU=;
  b=ZiaaGd/V7UXhfKg4Zk7qWqmHU+hO+1vGwSXaOcoD+oUA+N3x0bH4Cfcq
   TMo+P4wgmWul/upuzuRKslLUAcbIr3XcMFH5158woGYKQEINYS6a9jMYO
   a6J12eH+ruPaXJ1Cnl3XAbcIIEQdkmBar5SBmtLwEkZNDsBUqHLc95ANK
   Y=;
X-IronPort-RemoteIP: 104.47.57.172
X-IronPort-MID: 72780147
X-IronPort-Reputation: None
X-IronPort-Listener: OutboundMail
X-IronPort-SenderGroup: RELAY_O365
X-IronPort-MailFlowPolicy: $RELAYED
IronPort-Data: A9a23:uqmzR6M00nROtnfvrR3HlsFynXyQoLVcMsEvi/4bfWQNrUp3gmFSx
 mAfDWyGaP+ONGf2fd9+PoW09kwC7ZLXyYViGQto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdleF+lH1dOKJQUBUjclkfJKlYAL/En03FFYMpBsJ00o5wbZn2tMw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z8
 9NVj6bqEF8TGrDr2+IHc0B3ORxjFPgTkFPHCSDXXc276WTjKiKp79AwSUY8MMsf5/p9BnxI+
 boAMjcRYxufhuWwhrWmVu1rgcdlJ87uVG8dkig4kXeFUrB7HtaaHP+iCdxwhV/cguhLFOzCZ
 sxfaTN1chnRSxZOJk0WGNQ1m+LAanzXLGcH+ArM+fVfD277zjIo6JS8CNDvdtmadepVsFeo/
 0vv1jGsav0dHJnFodafyVq0j/LLtTP2XsQVDrLQ3uFrhhiL2CkfBQMbUXO/oOKlkQiuVtRHM
 UsW9yEy668o+ySWosLVWhS5pDuIu0AaUt8JSukisljSkOzT/hqTAXUCQnhZcts6ucQqRDssk
 FiUg9fuAj8pu7qQIZ6AyoqpQfqJEXB9BQc/ieUsF2PpP/GLTFkPsy/y
IronPort-HdrOrdr: A9a23:ApoIp6hXPKhAZw9ixX3ohcTxyXBQX3F13DAbv31ZSRFFG/FwyP
 rCoB1L73XJYWgqM03IwerwQ5VpQRvnhP1ICPoqTM2ftW7dySaVxeBZnMHfKljbdxEWmdQtsp
 uIH5IeNDS0NykDsS+Y2nj1Lz9D+qjgzEnAv463oBlQpENRGthdBmxCe2Sm+zhNNW177O0CZf
 +hD6R8xwaISDAyVICWF3MFV+/Mq5ngj5T9eyMLABYh9U2nkS6owKSSKWnX4j4uFxd0hZsy+2
 nMlAL0oo+5teug9xPa32jPq7xLhdrazMdZDsDksLlVFtyssHfpWG1SYczBgNkHmpDr1L/sqq
 iJn/4UBbUx15oWRBDznfKi4Xin7N9k0Q6e9bbRuwqenSW+fkN0NyMJv/MnTjLJr0Unp91yy6
 RNwiaQsIdWFwrJmGDn68HPTAwCrDv8nZMOq59ls5Vka/ppVFaRl/1twGpFVJMbWC7q4oEuF+
 djSMna+fZNaFufK3TUpHNmztCgVmk6Wk7ueDlIhuWFlzxN2HxpxUoRw8IS2n8G6ZImUpFBo+
 DJKL5hmr1CRtIfKah9GOACS82qDXGle2OFDEuCZVD8UK0XMXPErJD6pL0z+eGxYZQNiIA/nZ
 zQOWkowVLau3iefPFm8Kc7gywlGl/NIwgF4vsul6RRq/n7WKfhNzGFRRQnj9agys9vcPHmZw
 ==
X-IronPort-AV: E=Sophos;i="5.91,280,1647316800"; 
   d="scan'208";a="72780147"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=X7hnqrEqgMIkN3/yCKFEzLHbdUJ5YkYeY4Nqb4SS6RvAvmxG72AwY59NogOS1/7b+coMaFfgVhDqlFgqG5zs1YIGFGZxu2uWnbzcjVQlq176aIkxroIgmqjg2I4yeZmsbrYvvNLYgZJgKxNJrsriMdcfybtL20EM6bIddE4CRZiU8p6xbURjAQfc+zXciYwFNUavSrqssOixwrxiQPF0OCP8zAdBrSVDmZicdI4hGJ88DFJLmu2J+39GKEWYkLcDHytJWYOr5sWnQFcBA1W/RycKYjjuhEGBl0BXEbS+Zwk4TXs5HzAGrtpWH4yy6clVZvI/lPYsU0PZTWafLPRQAQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7jH58CtQbI3u0/iOWHg8a6cY9dA72xm+1Zcjy37ZUCU=;
 b=BBFK0Iub1MTe/o5HpYBlb91wcEsW86K+zmBCT7akuncVL21gH/Qv0nhI9+MeEGhkS9GbiLd/Jg6bCof9jEQLahU23bejuXaVBlcMpINO0VCKWD3AtVm22pbkk+NTm1cICaYS/Wx4QUTK8GS7ixdza+hNFPVD0D6ezJ/B+NIfkmqWiY/nh02s9BIw0iJaPBWw0OO1Biy41r39QSrfor+1MQt2EzqKehNChxjmPhcvGjez4V/fYlcV3wdiCwWEkDDsDD3bjEEHDVyagd3U2zhVtbLe8QCP/h8rKlZEn8qUzNS5WrOQDQZHz6Osm0oMFQ+tRLApwxrWUwpihM+Gv1ZrDw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7jH58CtQbI3u0/iOWHg8a6cY9dA72xm+1Zcjy37ZUCU=;
 b=ABNlSc9aXZ+zslj8PjS6BUnRuasn/yTMo/LK/oKpREJrErlU0ya7bV8lB9QK6GdmhNpwDYagg8NIVrwv859aeR4YATl6IBWMJ0Ij42OTgfJILU7e5A6dXnI1C4um2fe0/taWCfkHLZ7da16S1ST6rRqRJ1/Ja3kjia4boztLMFs=
From: Martin Harvey <martin.harvey@citrix.com>
To: "paul@xen.org" <paul@xen.org>, Owen Smith <owen.smith@citrix.com>
CC: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: RE: [PATCH v2] Limit the amount of work done for each Receiver DPC
Thread-Topic: [PATCH v2] Limit the amount of work done for each Receiver DPC
Thread-Index: AQHYdnXhM853CaX5dkS4JamzRTB2U607/02AgAYoYaA=
Date: Mon, 6 Jun 2022 10:04:07 +0000
Message-ID:
 <MW4PR03MB63473DEC80B4AFFA74CE6F8D9AA29@MW4PR03MB6347.namprd03.prod.outlook.com>
References: <20220602114221.355-1-paul@xen.org>
 <98e1a4a9-d459-75cb-8126-f73c58096c65@gmail.com>
In-Reply-To: <98e1a4a9-d459-75cb-8126-f73c58096c65@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: db7dd7e4-c2d6-4af8-d203-08da47a3e532
x-ms-traffictypediagnostic: SA1PR03MB6371:EE_
x-microsoft-antispam-prvs:
 <SA1PR03MB6371C684C5DD1F50DDD545C19AA29@SA1PR03MB6371.namprd03.prod.outlook.com>
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 I+gGR+2Ie1rEXJFjnNig7mzR23bXXAj31JKudx7c2q0i4XKbgaE/fU9dPzUIuOqeEvmAA6Tx1G+QvfbisJ2AcmlLb/qKnlsjOM5o3PTGOB59d+/DrfuEryLmschsvUPp2/j7ILtlf/8uJDmqmCj4BKo76JIZQNzUIJVbvtRUSTsQ6KZwpXARW1EiOZQ308tkrgOD/KhkoJ2KzzkbE/Iq37GPB3R/fv9anfqs1wm97NaOhfpNqOErW6ah3OWZhkrRYOEM+NWM8+16YY6bTJP1d1KhsycsdwvZZ3UpsbjiSAeLCQsQLQ4U3Xc82Jzw73kkTvjer46aSKQUYhWjaXtEEWIe3Ud+az/l0nVPRj2FLshk/ucwtnQS4B3RFWXFA9/nH6G0nqPlI2RmkPXaeGdkI+whZGoa82lgwia2nyKE/up+x3xOwdPqhuq44sD24kqNkmqeQ/M1eF5cQystO7P/oStvDy4ChPqYPOFQYH/QI/HeqEZ4MaI+BTfvrE110eCoE6G9DS3miuxZqkFAfnDLGYz2Hq05OXGec5ZXy8k5bw9JonwEFH3NRtKWa7+5+zr7GOwA/LVSQRNDi6qKUeQn+r+F2YhCIjh+++KWpzOJt64ev2alVpzzduBzO7tfLONebUQI2rsyhO/pxQMbRUhF2LSMwZTbXe1QuptJ1Ra5IqtIj7ocqyyAc0yoaTBHdr+itXucjaGRzYuSXU2x8Dm/nQ==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR03MB6347.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(76116006)(8936002)(5660300002)(52536014)(44832011)(2906002)(6506007)(71200400001)(86362001)(7696005)(9686003)(53546011)(26005)(64756008)(66946007)(8676002)(66446008)(82960400001)(66476007)(110136005)(66556008)(186003)(83380400001)(4326008)(33656002)(38100700002)(122000001)(55016003)(6636002)(38070700005)(508600001)(316002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?TGw3blZNTG42TXc2UjdIR0h2R1NXRWhHbE5Sc1NsL1JPQXMrMTZDOWgwNytq?=
 =?utf-8?B?ODV2eVJnLzk0eXJrdUlOMjVxZXozL1J2ekVNL0l2cjV5UjF2SkdLZElIeXNM?=
 =?utf-8?B?TmRuNzNEMjhSR3ZLTUxlUGhZaGpyVGczaXdzaURhcFVaV0phQ0srZzZFUUw0?=
 =?utf-8?B?QTZCdzZlRDFrZkhPOHRmUFJ3N2duVURQR25McjFCdkUvQ04wekY3NVV6VHhO?=
 =?utf-8?B?VVU4RVhHUVNVN2NLNmhJeitCNTNheXZTSDNibjcrREM5dE53WGZ6dHQzd3Rh?=
 =?utf-8?B?T1JTSU91THQ4S3JLc05vbDhUUHNXTVFMMEowZ2ZvemN3OUlNaGN0bmlpK0lh?=
 =?utf-8?B?bjF6TnhhQ3BBdlJ0b3RadkxmTytnWllNUlExaE9qclZMNEZkZGk1QnNHM2dv?=
 =?utf-8?B?L2NhUWo4cjBPdFJaV0lWWW9PenFrdE92aXFkMTAxb1U0ZExwUWlzUjRzZGlk?=
 =?utf-8?B?OGQ2TjljRW9GWTdleUQ4RkhDL0dHMHNiYmdORnlLQnFDenZOaWFvS2FmbXNW?=
 =?utf-8?B?RlEyalZIRnpWQWRUTldIMnI3MEw3NGdybGdrNWJRditrNjNNVURlVGE5YWkw?=
 =?utf-8?B?L2ZabXhtWFdVNEFOQkNhb1FNNzFzSkpuZHFqL0ppWlBad2VsUlppNDRVdjMv?=
 =?utf-8?B?MUdWeTh4YXFUL3VkQ2xIZmkwQVd3NUQwaVZDVldoRHE1RzZJZWZpMVFKa2pQ?=
 =?utf-8?B?OU9KM1BQWHF5K2JHSENndHJEZjBhZ1NzSnhyRlZMWGhtNHU1aUtud21GS0dF?=
 =?utf-8?B?b3l4L2VzWlcrMVNzSkRPcHMvbklBZHc3c2hLVGhaS0JWZitQNHBXNERaZk96?=
 =?utf-8?B?ZlBtbWtaa3BEMzFFbVExWWVVNXVsZ3psclZ4cWtTMEtzYzVVcjVvTHJxQVQ3?=
 =?utf-8?B?d0Z0OFZMOHpId0RDOVpmQjFBbDhpNTluTlFQN0diWDRxWXdsOEZMUGVBM1ND?=
 =?utf-8?B?UllRaFJNUFNiRzgxZE1IcmxXS1c1UWRjdnpJc2JBVS8yVUVGZzZDa053SE9S?=
 =?utf-8?B?Q3crVWtVLzVScmdPNmhqbVlsdkZReWJKamZVQ1RvU2UwbTVkdXlNVGVjWUZF?=
 =?utf-8?B?U01DamYvNTh1dVp5dm15Nm9YQjBvTXBBZVBSVzNYeitaTFdIWlE2RitOU2pN?=
 =?utf-8?B?VmJwRkt0YjZCTTdIdjU1eE1QQ1RWSUZoMU9kcy9CNDBHNjVacjlxcStRUG9i?=
 =?utf-8?B?L01vLytEV2FBNHE2K1JCbHVQQnlQb2NveG1DZHJHT2RLdTJackk0cUVkQ3Jn?=
 =?utf-8?B?SUhFQUIvQzQxWjFuYytrclhqR2xsKzBZSHpNa0VBZ2tQMmNSaW1reVJEd0lK?=
 =?utf-8?B?MzlZcnVMdTNvSlR1V3hpTXZja1lGSXBDTHkrTzZoNCswVkQyU0pZdytKbkdH?=
 =?utf-8?B?c3NSS0tuaUVvQjlSNHNnMy9zL2YwU2pzanZnd1MzckRUM2dXdzFPSWdtL09K?=
 =?utf-8?B?TFg3dXZlU0RyQmk5T2wwTThxZHF5a0VvODhPQThrTDgvVWVNYndCRjN0T2Ur?=
 =?utf-8?B?eUxvR2taYUMvU2JROVFHejZLRER0WUhkK2FzUEJOalh0YVcyTFgxc3ZLTGVi?=
 =?utf-8?B?amFhZllocXNtbzFEemF4VXduaklMYS9aQjlDWDZrMGpsSDlWSCtHU3AvbWJl?=
 =?utf-8?B?VDRmNldtV1ZXaWFWTjlGdThwSnUzeXZ5YTcxTmNwYm5iby8ycmZJcXZHc3lX?=
 =?utf-8?B?V2Q2VDQyUnQzTXZibUtXT0REZUt2cGZvZ2lRUDJzMXdCaU9qdFd0N3lFRjE4?=
 =?utf-8?B?clFPZWRVT2J6L2hCRDB2NTJWT2JvMFR2anFIeHMrOGR5YjhKRXljNXJrYnlM?=
 =?utf-8?B?UUxKM1I5NnJtUkRuYUlZQ3VJV3NvUWNLdVZPTjVES2dXQm9JVEcwZVlOalZp?=
 =?utf-8?B?ZFFMcnRndnljRm1ZUG1xaG85VWxaSFl0dTU2TEdhVUNvbTFBV0R1VlVRc1Zx?=
 =?utf-8?B?OVhtbGYvS1FjZ0x0SkNrMFJKT2Y3R0VTSjA3UVpDWngrTzhyNDlQaEUwTW1p?=
 =?utf-8?B?bVZ6NHBzUVE3MHVhOENaZ1NqQmtUbk5ERmpZQlEyZGFIMWNxYmhOVEpDemlq?=
 =?utf-8?B?R0ZITGlMN3VmaEJXSTFzVWdIdS9VbnMyem85dS9VZ0ZUSXpncVFKSStiZ2M2?=
 =?utf-8?B?SEtiS29EamppVVoycXAyUHpHM2QvTkpQbkdMM1ZrRmR3WDBSVnNSakFZdmxx?=
 =?utf-8?B?R1JTZGJ0bjJuR1BWL1U3U2hiTkpmOWx0ZVQvdVRpR1JCalViQXpRcVVuS1JJ?=
 =?utf-8?B?cnV2TmYybjlwVWpwZDQ1U0k2UjJheEZPUFlkbDlLWjBSRzZTODNaUjZKbHY1?=
 =?utf-8?B?Q2F3Sm1ueUVRd0pzb09aMkFUZXEzTFI5MXVrc3A5TDF4eEZ6cFV5UT09?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MW4PR03MB6347.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: db7dd7e4-c2d6-4af8-d203-08da47a3e532
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jun 2022 10:04:07.6744
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: cU4mkfySXN3Yv5JJZ3yoPymJYivbudBxKzvz3ow+/Lzqg48Plct1GO0t1LqtkHCs7kCRO+JrtK/zl8PK9usQo3R/ErBo1bUFG9CLw6Qg3LQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6371

DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBEdXJyYW50LCBQYXVsIDx4YWRp
bWduaWtAZ21haWwuY29tPiANClNlbnQ6IDAyIEp1bmUgMjAyMiAxMjo0NA0KVG86IE93ZW4gU21p
dGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT47IE1hcnRpbiBIYXJ2ZXkgPG1hcnRpbi5oYXJ2ZXlA
Y2l0cml4LmNvbT4NCkNjOiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNClN1Ympl
Y3Q6IFJlOiBbUEFUQ0ggdjJdIExpbWl0IHRoZSBhbW91bnQgb2Ygd29yayBkb25lIGZvciBlYWNo
IFJlY2VpdmVyIERQQw0KDQoNCj4gSG93IGRvZXMgdGhpcyB2ZXJzaW9uIGxvb2s/DQoNClVnZ2dn
LiBSZWFsbHkgcmVhbGx5IG5vLCBzb3JyeS4NCg0KU2VtYW50aWMgcG9pbnQgMToNCg0KSWYgeW91
IGxvb2sgYXQgaG93IGl0IHdvcmtzIHdoZW4gYm90aCBwYXRjaGVzIGFyZSBhcHBsaWVkLCB5b3Un
bGwgc2VlIHRoYXQgQWxsRmx1c2hlZCBpcyBtZWFudCB0byBiZSBrZXB0IGFzIGEgcnVubmluZyBj
aGVjayBhcyB0byB3aGV0aGVyIGFsbCBwYWNrZXRzIHRoYXQgY291bGQgYmUgcHJvY2Vzc2VkLCBo
YXZlIGJlZW4gcHJvY2Vzc2VkIGF0IHRoaXMgcG9pbnQuIEl0J3Mgbm90IGp1c3Qgc29tZSBzdGF0
aWNhbGx5IGRldGVybWluZWQgY3JpdGVyaWEgYXQgdGhlIHN0YXJ0IG9mIHRoZSBEUEMgcm91dGlu
ZSBhcyB0byB3aGV0aGVyIHdlIHdpbGwgYmUgYWJsZSB0byBwcm9jZXNzIGFsbCB0aGUgcGFja2V0
cyBpbiB0aGUgY3VycmVudCBEUEMuDQoNClRoaXMgaXMgdGhlIGNhc2Ugd2hlbiB5b3UgY29uc2lk
ZXIgMi8yIHdoZW4gWGVuTmV0IGNhbiBhYm9ydCB0aGUgcHJvY2Vzc2luZywgYW5kIHdlIHJlLWNo
ZWNrIHRoZSBpcy1saXN0LWVtcHR5IGNyaXRlcmlvbiwgaW5zdGVhZCBvZiBzaW1wbHkgcmVmZXJy
aW5nIHRvIHRoZSAibW9yZSIgdmFyaWFibGUgd2hpY2ggaGFkIGJlZW4gcHJldmlvdXNseSBjYWxj
dWxhdGVkIChidXQgaXMgbm8gbG9uZ2VyIGFuIGFjY3VyYXRlIGluZGljYXRvciBvZiB0aGUgc3Rh
dGUgb2YgdGhlIGxpc3QpLg0KDQpCdWcgMjoNCg0KLSAgICB3aGlsZSAoIUlzTGlzdEVtcHR5KCZS
aW5nLT5QYWNrZXRDb21wbGV0ZSkpIHsNCisgICAgd2hpbGUgKE1vcmUpIHsNCg0KV2VsbCwgeWVz
LWlzaCBleGNlcHQgdGhhdCBNb3JlIGlzIG5vdyBub3QgYW4gYWNjdXJhdGUgcmVsZWN0aW9uIGFu
ZCB5b3UgaGF2ZSB0byByZWNhbGN1bGF0ZSBpdCwgYW5kIGl0IGJlY29tZXMgYSBiaXQgZGlzaW5n
ZW51b3VzLg0KDQpUQkggaXQgbG9va3MgYSBsb3QgYmV0dGVyIHdoZW4gYm90aCBwYXRjaGVzIGhh
dmUgYmVlbiBhcHBsaWVkLCBiZWNhdXNlIHRoZW4geGVubmV0IGNhbiBzdG9wIHRoZSBwcm9jZXNz
aW5nLCBhbmQgYXQgdGhhdCBwb2ludCBpdCdzIGNsZWFyIHRoZSB0aGUgIkFsbEZsdXNoZWQiIGZs
YWcgaW5kaWNhdGVzIHByb2Nlc3NpbmcgaGFzIHByb2NlZWRlZCBhcyBmYXIgYXMgaXQgY2FuLCBh
bmQgaXMgbm90IHJlbGF0ZWQgdG8gc29tZSBzdGF0aWMgY2FsY3VsYXRpb24gYXMgdG8gaG93IG1h
bnkgcGFja2V0cyBhcmUgbGVmdCBpbiB0aGlzIGJhdGNoLg0KDQpNSC4gDQo=


From win-pv-devel-bounces@lists.xenproject.org Mon Jun 06 10:21:56 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Jun 2022 10:21:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.342444.567509 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1ny9rw-0003jj-19; Mon, 06 Jun 2022 10:21:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 342444.567509; Mon, 06 Jun 2022 10:21:56 +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 1ny9rv-0003jc-U7; Mon, 06 Jun 2022 10:21:55 +0000
Received: by outflank-mailman (input) for mailman id 342444;
 Mon, 06 Jun 2022 10:21:55 +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=Bu96=WN=citrix.com=prvs=149739580=martin.harvey@srs-se1.protection.inumbo.net>)
 id 1ny9rv-0003jW-2v
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jun 2022 10:21:55 +0000
Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com
 [216.71.145.153]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7b59958d-e582-11ec-b605-df0040e90b76;
 Mon, 06 Jun 2022 12:21:53 +0200 (CEST)
Received: from mail-co1nam11lp2172.outbound.protection.outlook.com (HELO
 NAM11-CO1-obe.outbound.protection.outlook.com) ([104.47.56.172])
 by ob1.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256;
 06 Jun 2022 06:21:51 -0400
Received: from MW4PR03MB6347.namprd03.prod.outlook.com (2603:10b6:303:11e::22)
 by DM8PR03MB6214.namprd03.prod.outlook.com (2603:10b6:8:3d::5) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.5314.17; Mon, 6 Jun 2022 10:21:49 +0000
Received: from MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::5587:5e20:5c2b:d94e]) by MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::5587:5e20:5c2b:d94e%8]) with mapi id 15.20.5293.019; Mon, 6 Jun 2022
 10:21:49 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b59958d-e582-11ec-b605-df0040e90b76
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1654510913;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=lOBPMZpxsVxEz93d/EnNpTYAXFvVomXNvOlMMRnPOXM=;
  b=SAmyqDgs3B11LcTw36W+98JXfAE/D/2PN+FEk08Ld0Ti+zBMQVlph4Ec
   fh4/Y1hUOU5KoZqMRq7j6FYUse9oXJ3/9JbtJ2mhZLNHtG7F3CTkf5a7W
   oEbW3MOYR/Vf4fidbhqhAO8SpbWTlHUfoQeHNmJGVyXrFuWNnGDzyiT0k
   Q=;
X-IronPort-RemoteIP: 104.47.56.172
X-IronPort-MID: 72941081
X-IronPort-Reputation: None
X-IronPort-Listener: OutboundMail
X-IronPort-SenderGroup: RELAY_O365
X-IronPort-MailFlowPolicy: $RELAYED
IronPort-Data: A9a23:zROIGKg59J6eFgJP2dSUaglOX161AhEKZh0ujC45NGQN5FlHY01je
 htvD2mBP/+DYzTwLYt1aNiyo04FuZKDnNJiTABvpSE1Higb9cadCdqndUqhZCn6wu8v7a5EA
 2fyTvGacajYm1eF/k/F3oDJ9CU6jefSLlbFILas1hpZHGeIcw98z0M68wIFqtQw24LhXVvQ4
 YmaT/D3YzdJ5RYlagr41IrbwP9flKyaVOQw5wFWiVhj5TcyplFNZH4tDfjZw0jQG+G4KtWSV
 efbpIxVy0uCl/sb5nFJpZ6gGqECaua60QFjERO6UYD66vRJjnRaPqrWqJPwwKqY4tmEt4kZ9
 TlDiXC/YV8vGYTqlvkBaBZ7MDhVGIB62+faMEHq5KR/z2WeG5ft69NHKRhveKY/o6NwC2wI8
 uEEIjcQaBzFn/ix3L+wVuhrgIIkMdXvO4Qc/HpnyFk1D95/GcyFH/qMuIEehWhq7ixNNa+2i
 84xbDN1cBXGJR1GIEkaGbo1nfuyh2m5eDpdwL6QjfVtsjSKlFwouFTrGPjMK8WBbsZ8omfCu
 HqYuFzmWzE/NMPKnFJp9Vrp3IcjhxjTQIsPEJWo+/gsh0ecrkQMCRtTTUX+rfSnh0qWX9NEN
 1dS6icotbI19kGgUp/6RRLQnZKflhsVWt4VGOpj7giIk/PQ+1zAWTJCSSNdYts7ssNwXSYty
 lKCg9LuA3poraGRTnWesLyTqFteJBQoEIPLXgdcJSNt3jUpiNpbYs7nJjq7LJOIsw==
IronPort-HdrOrdr: A9a23:HswCb6Fxn3EoL1dKpLqFQ5HXdLJyesId70hD6qkvc3Fom52j/f
 xGws5x6fatskdrZJkh8erwW5VoMkmsj6KdhrNhcItKPTOW8ldASbsP0WKM+UyGJ8STzI9gPO
 JbAtBD4b7LfBRHZKTBkW+F+r8bqbHpnpxAx92utkuFJjsaCZ2Imj0JbjpzZXcGITWua6BYKL
 Osou584xawc3Ueacq2QlMfWfLYmtHNnJX6JTYbGh8O8mC1/H2VwY+/NyLd8gYVUjtJz7tn23
 PCiRbF6qKqtOz+4gPA1lXU849dlLLau5p+7Y23+4gowwfX+0SVjbdaKvi/VfcO0aWSAWMR4Z
 rxStEbToNOAj3qDyeISFDWqnTdOX4VmgPfIBmj8DTeSIXCNU0HItsEioRDfhTD7U08+Nl6za
 JQxmqc84FaFBXagU3GlpH1vjxR5z2JSEAZ4JguZr1kIPgjQa4UqZZa8FJeEZ8GEi6/4Ic7EP
 N2BMWZ4PpNa1uVY33Qo2EqmbWXLz8ONwbDRlJHtt2e0jBQknw8x0wExNYHlnNF8J4mUZFL6+
 nNL6wtnrBTSc0da757GY46MIOKI32IRQiJPHOZIFzhGq1CM3XRq4Tv6LFw/+2ucIxg9upHpH
 0AaiIsiYcfQTOeNSTV5uw0zvnkehTMYR39jsdD+pN+prrwALL2LCzrciFdr/ed
X-IronPort-AV: E=Sophos;i="5.91,280,1647316800"; 
   d="scan'208";a="72941081"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=HpRtnIxD8owur2KTFLt0BKdDmKlQkrMXBlXYiSA7GZ8g30n0n4lQ+g3W9NKvKmdmIDYixRN2a7m7yMtFveI9x3Uh3g+lMBXOfU1yyfvHC5Ng0TL2TsvAKhMmWX3HW/7P7mqE9jGeaWYExQgolYZvRWJrw0o+vnDUnfVx01yyt805k4JCocX0/PQ/dDoVkiY8a99Cdo3rCt1Nemli9fB7gUjrmLP6jIp6eE9yr5rtKrRm/2vcZCghKT0QyMP3g9381qzhdMf+MoLasXUTPJKUCFL9O2ftqeSX5TdLMj4V48Nc2L/3GnBejrHHmVK0dTKaR/9KdvdH7tnV5jq4q9f9ug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lOBPMZpxsVxEz93d/EnNpTYAXFvVomXNvOlMMRnPOXM=;
 b=DCNkwIGkeQCgDeEji/18OqYYQU4FXuHV+2GHY309GVDLag3e+e7CzSCkenGCgzNSJsouaJnWzAKk0Ow1oZg0EHmj+ULjyfjoe/Llm4PIrTlWKm9/qNWtbgfmsZYL97heZoShO9xR4TGgMpZIXh7z6vX20O56vcL2vKGChME10iUy4DcsfgKe/HBv6B+0WBR6+L4HTdyYG9OfZj/RLmtu4RTU7/9SpVJnvTJaRVDOvewnY8po6dxVURUeYKeV1ElFzQB44zUu3BVtQvWUFyfitNqcGI08WWhbatPDXOApjvgSKPdM2chqfb38H3cK4x94DORfQ/436obLqMLxpzLX9Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lOBPMZpxsVxEz93d/EnNpTYAXFvVomXNvOlMMRnPOXM=;
 b=pTefiqncuFyX364z3o+80S3v1cuTU4+E7jdTIokFSDAsUxYeOqWiWlfi7vWIdCn4zuj8bFLN0sYyJxwMTuI5Q5/4iCUQadGW+/DZ1ap4sX9B7nxYBiKN41uErR3xjuNhbLDL7DRt5Gbah+rDlobpDRTeDvjqf45H5b2Lm1grnEs=
From: Martin Harvey <martin.harvey@citrix.com>
To: "paul@xen.org" <paul@xen.org>, Owen Smith <owen.smith@citrix.com>
CC: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: RE: [PATCH v2] Limit the amount of work done for each Receiver DPC
Thread-Topic: [PATCH v2] Limit the amount of work done for each Receiver DPC
Thread-Index: AQHYdnXhM853CaX5dkS4JamzRTB2U607/02AgAYxeUA=
Date: Mon, 6 Jun 2022 10:21:49 +0000
Message-ID:
 <MW4PR03MB6347648FD7592B6D8DABA0799AA29@MW4PR03MB6347.namprd03.prod.outlook.com>
References: <20220602114221.355-1-paul@xen.org>
 <98e1a4a9-d459-75cb-8126-f73c58096c65@gmail.com>
In-Reply-To: <98e1a4a9-d459-75cb-8126-f73c58096c65@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 13289f87-7201-46e0-a8ed-08da47a65e06
x-ms-traffictypediagnostic: DM8PR03MB6214:EE_
x-microsoft-antispam-prvs:
 <DM8PR03MB621422889C123AC68FDAA5C99AA29@DM8PR03MB6214.namprd03.prod.outlook.com>
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 p9hfPKvg0NFqmRUwjElyIK53okkUL+EzaCMBo1p1U6FzvcDt3ORG5RFYG4Mkut8OADdyLNE+fGtQlSQWihQ2Y1xz0VZMuEkBe6eHCQaTaGcfrOPXrqGd4im11/37H4y/ovkAzTe2GhBtUyqgxvMqmuepJU4lARE/gRCLI6e6aZC1k73RumAcw46DHtq0YeQPc1jL61OE+nkLovJAp+h6q4NvzQxMIfGZRrbqIz1uiVLpOJe06/2oSPz0WRcrwYhZSFvFf6pXzSBofA/8Aw/gB8QaATIhSFIiXEUgUxDZUW/Fun56T6caS/5nQ7MMz/DredVxPTgYom5Y6ZeI4ehRxiKCHr+fHyH+oZd4tEc7NCoIw7l3cQFd4fkrJymbfktHNRGGS9aMObGW1cuKw6xOpyo8Fkl/qYdxo91fh0w0/7ydl3E3oqpRppZrtZHbDD0T/5e+vdcFPoD8OFcjek82u4ndl0L949EpzN0MGKFCCSz8S/o89k54NpnAa29TP7iXQL98rw4HgEsSIzRVD05MEXDlx/9vCq1/jEOiuYO/SHUICdOBc7HBSwTD9Qp4G7JqjOUrpFr1BX0p2kzX+ncjSUg/DAPcNbI1XjtubNITwN8wuo+evkbuvkqjIcMwfddW0S/3AQby9YfgnMMiNX7XKYjxlnpd95ssbjpN3LHYD6UT8igOQ8x0hbQqiQuOkRYkNY0LzVEzO6y/4o/pGCj4yg==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR03MB6347.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(5660300002)(4744005)(44832011)(8676002)(4326008)(66476007)(66946007)(66556008)(64756008)(76116006)(66446008)(508600001)(9686003)(186003)(7696005)(53546011)(110136005)(2906002)(6636002)(26005)(316002)(55016003)(6506007)(86362001)(52536014)(82960400001)(83380400001)(71200400001)(38100700002)(33656002)(8936002)(122000001)(38070700005);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MytPYVBqVmNQMnVOL296TXZEbzlTWmdoTzdjelJTVjRXc0tuQ1Rzanp4MHIz?=
 =?utf-8?B?WnVLOEVpNjVqUHFKVnZFN0w3ZVl6K3V5d0tZdUNVZG0vYzRvWVJ2dk4vbVdu?=
 =?utf-8?B?TzkrSlpvV25xMUF5M0p5M0NZL0RCLzI5TUxSd3FvUXlMK1IxM05jM1dUTFQ0?=
 =?utf-8?B?WDRJRjUwZE1NM2YzcGxpQis1YXp4Y3E3ZC81VFoyWjMxRGRrVUZMNlFZTGhk?=
 =?utf-8?B?TVE3eEdnZ29EbmNXd0xXK0NxdW9STFR1ckNtYlhlUHZjUFlCU2hzVCtVZStV?=
 =?utf-8?B?R0U4S1JJOGdKbFY4RC9jcTYyckFzUWt0ZlRXWENwQlE2RmF3M3pKaDdJVEVu?=
 =?utf-8?B?NGJyZ3poSXBjNlBRcFBVeGtSdTJraUZCVVFuRDMweFVWMFlYY2FUVXBLb2Nr?=
 =?utf-8?B?STlpZ1JPQ2lscXVjeDBqUmQremhRWXgyRUhqWk9RME94Q21kOFZoL294ZUJn?=
 =?utf-8?B?Z05UZ2pKNjVaejhUdUt0NXc5SnVvM016d2VzY0JFc2NaMVkyOFJhZXYyTjJ4?=
 =?utf-8?B?UFdkazhmczRxWE1BQmpuYVFLTkhoZ2RDZ0tIY1hvcjhSZ3FBbUZGQjJMa0xI?=
 =?utf-8?B?L1ZxZXNBOFp5RzJtUVRHMGJCOXNPUS9nOGRYMFNib3UyN2JSTFZlNjlTVjdO?=
 =?utf-8?B?K2hCNDNRS0FtWDltUzlQL0poYTNWZHcrV2lHNHJ5bjlhQ0NHUnd2Y0wwRTRs?=
 =?utf-8?B?WTRYRmQ1bWdwK3FlajRFR0IyeE1PZ2FYd05zU0FRZWQ3aXRyVmFNcTZjSEF3?=
 =?utf-8?B?WVFQdHEzdlMyNDZyS0txK05jN1RJakRMVkZUL1NtNUlaWU00aXkxM3Jia1Jj?=
 =?utf-8?B?bnJ2RnlsNllJbFM0WklvM1I4U3ZDTTFDYTNuMGx2dyswZkw1SGJ0Y1pmbXlJ?=
 =?utf-8?B?MDhNdzFHNlEwcHI2Z2FDQWxyQmZOUHFhQ05vcjdSdVlwbE91ajJOWlpRTzBz?=
 =?utf-8?B?ZlhGU04vbUltMkVHUUFHNFM0TnA3dlFFZ3BOWTQ5cFBxaU10MnU0YVd5TEZT?=
 =?utf-8?B?TFdSK2V4dzhydldJY1U1dVhuSmtnVXNVNVloeTYwcHlBdzdhM0JWNURRdGta?=
 =?utf-8?B?bXhMU0VTR1hjV05LaUFpTUVVZmxtTy9vRW5hQlN2bGRIbU11aTR6cktPVzg0?=
 =?utf-8?B?Z2R3ZU9KSnBQdVNQaTNIM0wxUTFpRG9OTXhiODRUMDFBMVhweE4zbXVYR3Fj?=
 =?utf-8?B?ZlBDSEhqRUowZlBYNDhPWm9jR1Z0UmpQVkhhRDR6TkF6Zm5zUjZHcHRiNDN3?=
 =?utf-8?B?WFBCeW9vYnpCUjVHQS9FUGpLMzFKTCtIUE92NkUzYmJIdmxkakFKQ3RzMWh0?=
 =?utf-8?B?TXpQMVlZSVhwT2ZaeVlyMkF4alZFWnR3aWczNUtFNEl6eW14cWhlZjk0elZO?=
 =?utf-8?B?L2FIdmo4ZXJpY0FQS1RUSlN6VFVRN1dqaW04V2ZoY2dtcS82UUFjbktWSU15?=
 =?utf-8?B?dXhzZTdjNDhaK2k5VjNRTTdwRk5JZkQ1cVB6UFJWQzNUSzFMbEF5UFpJTVFl?=
 =?utf-8?B?TjJNN0ZBVFBxUHJUS2dKZ1pQUlhYNGhZanc1aTNKcU5mVlBEcjZYcGpXcDRZ?=
 =?utf-8?B?YTNzVXkzeEtSa3Zvb1dodjRRakNqbXhPK3paN2w1UWZaRFYxUnZ6dXg0Z2Jx?=
 =?utf-8?B?UGlnRjdTNlp2UUxNTmZ5ZVEvUnExZWNOWTM3TG1OVU04VCt6VmJRNElySWxU?=
 =?utf-8?B?czgvRHpCTHFnekxwNjNvYkU5ZmJaVFBFWm4yZVBCWFpkTGdPaEVlOVNaUTNi?=
 =?utf-8?B?NXZmT3lKT2NLK0lWK0lIQUpYZ09vMWp3QkRXNWZHcVUzNXFibXJ3b05RZmRW?=
 =?utf-8?B?ZzRtUFVQbldGL1RkTzZuby8vT01lbUZzTzdYVnlwZGVYRFl3MjlhV0hseWRx?=
 =?utf-8?B?TzdWUytOeTJIcG9NbjF6SVU1eUFHMnZ2d3dRQ0cwTDQvOENCd1p5RzZTTnZE?=
 =?utf-8?B?V0lxdGMzUHNVcXpUblBWUFNCaHNHaDgzMVBGd0RrNC9sdjc5RUJReHBva3R6?=
 =?utf-8?B?TTVYUklWQnpiMzVvUURuZWlCSG5BeTFiMWVTU2lVd3FjeUlMWC9VQUVUV3pH?=
 =?utf-8?B?bzBGMkNRYXNLd05IaWNPd1dac0hKd24vOEplbnhnNVpLZyt1V1QyckxCYzNX?=
 =?utf-8?B?a0hobnQzeTlUQnRVR0JYcFlkUzloYWFjRGcvYlVSMU1sQlprTGMzcWdPamRR?=
 =?utf-8?B?V3hCRkZESzhyV2pLaTU4UHl1N2JpVzBpYnpIZTFUak1GYkx5dEVhc3VSNmJv?=
 =?utf-8?B?OE54a0ltbnNkc0Q3TUdtRmYxYmVDVjV3RnZRaWYrTG41UmNxSjFCZFowSDlF?=
 =?utf-8?B?TytWaHFMcHQwRXpYbGNqNFVTazl5Z29nOFo0VktIZ3F2Qkk2ZlhuekVBc1No?=
 =?utf-8?Q?sU8YOVd6gT4nqO0k=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MW4PR03MB6347.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 13289f87-7201-46e0-a8ed-08da47a65e06
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jun 2022 10:21:49.3359
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: w2cXnYvvlfoQQIjIXzlttLE2XUjalN3zThrNpvAqJ8mxaOBP00H5fJxoRc03S5qIbfGM7q0judoQvLaYHejw9cmbzd8dZp8q/TafG4e2au0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR03MB6214

DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBEdXJyYW50LCBQYXVsIDx4YWRp
bWduaWtAZ21haWwuY29tPiANClNlbnQ6IDAyIEp1bmUgMjAyMiAxMjo0NA0KVG86IE93ZW4gU21p
dGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT47IE1hcnRpbiBIYXJ2ZXkgPG1hcnRpbi5oYXJ2ZXlA
Y2l0cml4LmNvbT4NCkNjOiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNClN1Ympl
Y3Q6IFJlOiBbUEFUQ0ggdjJdIExpbWl0IHRoZSBhbW91bnQgb2Ygd29yayBkb25lIGZvciBlYWNo
IFJlY2VpdmVyIERQQw0KDQpPbiAwMi8wNi8yMDIyIDEyOjQyLCBQYXVsIER1cnJhbnQgd3JvdGU6
DQoNCj4gSG93IGRvZXMgdGhpcyB2ZXJzaW9uIGxvb2s/DQoNClNlY29uZCB0aG91Z2h0cyBvbiBt
eSBjb21wbGFpbmluZy4gDQoNCk9LLCBJIGd1ZXNzIHRoYXQncyBmaW5lLiBJIHRob3VnaHQgIm1v
cmUiIHdhcyBhIGJpdCBnZW5lcmljLCBidXQgSSB0aGVuIHNlZSB0aGF0IHlvdSdyZSByZS1jaGVj
a2luZyBSaW5nLT5QYWNrZXRDb21wbGV0ZSBhZnRlciBsZWF2aW5nIHRoZSBsb29wLCBhbmQgdGhh
dCBmb3Igc3Vic2VxdWVudCBwYXRjaGVzLCB3ZSBjYW4gc2V0ICJtb3JlIiBhY2NvcmRpbmcgdG8g
cHVzaC11cCByZXQtY29kZS4NCg0KT0ssIG5vdyBNb25kYXkgbW9ybmluZyBjb2ZmZWUgaGFzIGtp
Y2tlZCBpbiwgaXQgYWxsIG1ha2VzIHNlbnNlLCB5ZXMsIEkgbGlrZSBpdC4NCg0KTUgvDQoNCg==


From win-pv-devel-bounces@lists.xenproject.org Mon Jun 06 12:00:28 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Jun 2022 12:00:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.342460.567513 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1nyBPH-00055x-64; Mon, 06 Jun 2022 12:00:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 342460.567513; Mon, 06 Jun 2022 12:00:27 +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 1nyBPH-00055q-33; Mon, 06 Jun 2022 12:00:27 +0000
Received: by outflank-mailman (input) for mailman id 342460;
 Mon, 06 Jun 2022 12:00:26 +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=Bu96=WN=citrix.com=prvs=149739580=martin.harvey@srs-se1.protection.inumbo.net>)
 id 1nyBPF-00055g-TY
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jun 2022 12:00:26 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d57b7a3-e590-11ec-bd2c-47488cf2e6aa;
 Mon, 06 Jun 2022 14:00:24 +0200 (CEST)
Received: from mail-bn8nam12lp2169.outbound.protection.outlook.com (HELO
 NAM12-BN8-obe.outbound.protection.outlook.com) ([104.47.55.169])
 by ob1.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256;
 06 Jun 2022 08:00:07 -0400
Received: from MW4PR03MB6347.namprd03.prod.outlook.com (2603:10b6:303:11e::22)
 by BN9PR03MB5995.namprd03.prod.outlook.com (2603:10b6:408:134::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.13; Mon, 6 Jun
 2022 12:00:04 +0000
Received: from MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::5587:5e20:5c2b:d94e]) by MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::5587:5e20:5c2b:d94e%8]) with mapi id 15.20.5293.019; Mon, 6 Jun 2022
 12:00:04 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d57b7a3-e590-11ec-bd2c-47488cf2e6aa
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1654516823;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=V4mRuDONUAtfWwuNXYuZrEmhjSZ/D/jtDie5x95u3yk=;
  b=O9W/70yK0Wu+Qc/S3BE2Mb9Th6H/snqWurBtFoVE5ah+t/UAic9PbxIO
   4jf8JNCTaBIoKDAk9f3xnKO25o4HKqHl3Km7JLZWCmDDMxn8FPkg8e8eJ
   GsvgJu9f9dluMDp+QVEIoL8V7b9it+Wyj+DcXj7P5OaMBujPUSSd2rypt
   g=;
X-IronPort-RemoteIP: 104.47.55.169
X-IronPort-MID: 72931765
X-IronPort-Reputation: None
X-IronPort-Listener: OutboundMail
X-IronPort-SenderGroup: RELAY_O365
X-IronPort-MailFlowPolicy: $RELAYED
IronPort-Data: A9a23:G0t0uK9l88tdPJYLaQGxDrUD7H+TJUtcMsCJ2f8bNWPcYEJGY0x3n
 zMbCzrQaf/cZzCgfIwnPdiy8xgDu5WGx9VnTQZrqCE8E34SpcT7XtnIdU2Y0wF+jyHgoOCLy
 +1EN7Es+ehtFie0Si+Fa+Sn9T8mvU2xbuKU5NTsY0idfic5DnZ44f5fs7Rh2NQw34DkW1nlV
 e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL
 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
 DlCnb3vU0AtF6/TpPwyfiVELH59YKJd/6CSdBBTseTLp6HHW13F5qw0SWsQbcgf8OsxBnxS/
 /sFLjxLdgqEm++93LO8TK9rm9gnK87oeogYvxmMzxmAVapgHc+FHviMvIEJtNszrpkm8fL2Y
 sMDdTtpKhTJeQNCK38cCY4knffujX76G9FdgA3P9PFuvDaOpOB3+InVEeLVWvvWfOUWwRmEr
 0jfxkKoPR5PYbRzzhLAqBpAnNTnhSrmXKoCGbv+8eRl6HWMx2pWEANTWValrP2Rjk+lR8kZO
 0ES4jApr6U56AqsVNaVYvGjiHuNvxpZUdwAFeQ/sVuJ0vCNvVffAXUYRDlcbtBgrNUxWTEhy
 l6OmZXuGCBrt7qWD3ma8994sA+PBMTcFkdaDQdscOfPy4C5/unfUjqnog5fLZOI
IronPort-HdrOrdr: A9a23:3Ohsmqo97xI2oEWQKJeNimsaV5uAL9V00zEX/kB9WHVpm5Oj+v
 xGzc5w6farsl0ssSkb6Ku90KnpewK+yXcH2/hqAV7EZniqhILIFvAp0WKG+VHd8kLFh4lgPM
 tbEpSWTeeAdWSS7vyKrDVQcexQpuVvmZrA7Yix854ud3ASV0gK1XYaNu/vKDwTeOAwP+tdKH
 Pz3Kp6jgvlXU5SQtWwB3EDUeSGjcbMjojabRkPAANiwBWSjBuzgYSKXSSw71M7aXdi0L0i+W
 /Kn0jS/aO4qcy2zRfayiv684lWot380dFObfb8y/T9aw+cyjpAVr4RGYFqjwpF5d1HL2xa1O
 Ukli1QfPibLUmhOV1d7yGdnTUImwxelkMKgWXo/UcL5/aJCw7SQvAx+r5xY1/X7VEts8p717
 8O12WFt4BPBReFhyjl4cPUPisa33ZcjEBS5tL7tUYvJ7f2qYUh3rA37QdQCtMNDSj64IcoHK
 1nC9zd/u9fdRefY2rCtmdizdSwVjBrdy32CXQqq4iQyXxbjXp5x0wXyIgWmWoB7os0T91B6/
 7fOqplmblSRosdbL57Bu0GXcyrY1a9CS7kISaXOxDqBasHM3XCp9r+56g0/vijfNgSwJ47iP
 36ISdlXK4JCjfT4OG1rex2G0r2MRuAtBzWu7Fjzok8vKHgT7z2NiDGQEwykqKb0ociPvE=
X-IronPort-AV: E=Sophos;i="5.91,280,1647316800"; 
   d="scan'208";a="72931765"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=OkZks+5elQCm28jhKyzBqyNnRXd61ddRLGHv4anAnrQN60udm3VerU9t/BVGfuBC43R/YKqxnJ1VaSwDNmj6a9qU32Z9oyWt9rIJp3oXuWG/RxC4T+aRzBW4IcUVUp7lSXXRS8O8tDC6tDOvCB6I23GRYVYw5vJyliXTu/CKGNE/8+bEg2bqLXVPI2MkkWFmiP7umoewR0cu7b3cCafjnBZYx+yg7+c+ts9kDrSzboC6XXw7mb1v1LB9elApRm+Fd7SxAXYyiAMmH5iIbvhji5D64TKQKYo8QnniftRIR07RACuGRoRyl1jTWodarT3JPodwbF+lelDVStxOkgqB9w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=V4mRuDONUAtfWwuNXYuZrEmhjSZ/D/jtDie5x95u3yk=;
 b=HFLiRK/12ewvSJaLCfZQc2GtfpiPQsN1ap0QhbFY/M14yggb0WVnVYoX6VOSoC8cr3qMWj4qQKDmxavFdHehBG8qT/niIHZbA7yZcYXhAx3s1SVz3ZR/s9JCjdU5wJe1nllh2rhQgK474qJEGNsjlYA2IlcLcJVBpv2Ha87/1L/S3DhcATQoSB/8nGI4G+Gvc7Zn3y+OXqH3W9UXjCX0o1foIJ/6NIgQxmmN9vKCS+cThRowA2dIyvEcJTDWk3ZMj9au8gbUcD3UmgDLaDicCs/9+CKlQuJmq2PxfGx6VVKqx7awjTIMNeqGjXevHQgRj2MP84V2r486kXnHPiSgwg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=V4mRuDONUAtfWwuNXYuZrEmhjSZ/D/jtDie5x95u3yk=;
 b=A51DDb1dyPDmQuVVFLyBWfR659zePe2j4NQaYV5B4G6MzM/ORq7BTn368p/u7gDKUYNO/I8VX7k17G52yOC0LEr4/bYo66i/ZoEhC8u1USWCMtJx0diwZkJHONZDPEUDtKkS416/5brFM77FZKhahmGvEGiFSYtTTihSdoxpwqA=
From: Martin Harvey <martin.harvey@citrix.com>
To: Martin Harvey <martin.harvey@citrix.com>, "paul@xen.org" <paul@xen.org>,
	Owen Smith <owen.smith@citrix.com>
CC: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: RE: [PATCH v2] Limit the amount of work done for each Receiver DPC
Thread-Topic: [PATCH v2] Limit the amount of work done for each Receiver DPC
Thread-Index: AQHYdnXhM853CaX5dkS4JamzRTB2U607/02AgAYxeUCAABtgAA==
Date: Mon, 6 Jun 2022 12:00:04 +0000
Message-ID:
 <MW4PR03MB63475AF6F21F43A8B2BFE89D9AA29@MW4PR03MB6347.namprd03.prod.outlook.com>
References: <20220602114221.355-1-paul@xen.org>
 <98e1a4a9-d459-75cb-8126-f73c58096c65@gmail.com>
 <MW4PR03MB6347648FD7592B6D8DABA0799AA29@MW4PR03MB6347.namprd03.prod.outlook.com>
In-Reply-To:
 <MW4PR03MB6347648FD7592B6D8DABA0799AA29@MW4PR03MB6347.namprd03.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 75e9e2d3-1e01-40bb-8dba-08da47b417cf
x-ms-traffictypediagnostic: BN9PR03MB5995:EE_
x-microsoft-antispam-prvs:
 <BN9PR03MB599564C77716F8A17AD491639AA29@BN9PR03MB5995.namprd03.prod.outlook.com>
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 VWIK595WwgRSNV0R71TLz0sIgceqPWJmowMJAt3ioVBqZ9wda/SyQqYFjwZoQKfo0/pQQsxYbucVp7QsTjRK6JSszlDDLnFlxRc9ZGBb95ANSrm1LdUnOa+RvnUjqXdz2mDkIvQUe50h3GiKvRvpslx5gXRInjpI1HeTGGoWlxIp42kXuHB7Kkv3wkWNr7t/ELGUWpphtJv++TRm7bl+ngnPXEtfZ0WAaPEYukqTGEZSa1QG2QHMDyyhxxN0CgIM8XOT83NsuYJQyTgGnA/YRik97ClPSMAZvu7ECqVdEYAwrGZnDsAENxdbqKKyQ5NsUyViF63tS4auKRfm5vZwfK7mb4uTdpfu1IYSOTlgykyuorompJTUIbK1pN0jJXxWKo8Sx6YMMNqxn9/zYlwm7AcAFZNc2yjzVjzd1szRvZII2porIKEcxJLD1nxvQ/BdcIrU+8WZh3esy6J92dubJnFco5Rk0z9osz83MW75Aeul7z16Yycy3elpF0Z7PrMLAxB4YFvnhjxRNyut0s8BBAQ7CnXJicCYoSF7XM+kRDgACKs0HVhCF79/8SUHbeZxwU/3d899FI4ygKwYbs374m8DoSDJGIu9+4sxEwk/LoDtUyUjCR1IZf1wCprR1OywKtLxp4Yp6HsQ3wmCGRj6ZzpTNrrmuONuITvbQQdVnGKsbPsUyA4H3mT1q4IAXp0aNxdRew7VKVtK3jD4hO3z/A==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR03MB6347.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(82960400001)(66946007)(6636002)(7696005)(33656002)(86362001)(76116006)(122000001)(508600001)(26005)(38070700005)(55016003)(110136005)(2940100002)(8936002)(5660300002)(4744005)(44832011)(52536014)(38100700002)(8676002)(4326008)(64756008)(66446008)(66556008)(66476007)(186003)(2906002)(316002)(9686003)(71200400001)(6506007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?cXE0SXl6WGJ5Y0Myc3FDT3BvK29uOFRDWDQ5L1Q1bDBvaDlSbGpNeTBnaWJC?=
 =?utf-8?B?NVpIYkFWMVRabGF2c1dVaWRxL2w1UWp4MEw4QlJRRExVQ2gzOXBkQTA2SUp0?=
 =?utf-8?B?Y25BelFpNVRqNzNLMVk0c0M4UkEyTmpOb3BNZWRtS0QyT0xOUnV6SHVuY1Vj?=
 =?utf-8?B?Tlg4Z0ZDait6ekozRzZpNkY4M25ud2dwUE5ITzduMnNGSDBSdlMxaHJIeGlr?=
 =?utf-8?B?K1BHb25SNGc4azZBS0ZHUG5jcXB6T0xKVndqTWlmTnJMbHpmNU9PeG9wZnRi?=
 =?utf-8?B?c0RNUlRiRFJRSHdjMjJvSHMxK0FaUVpiTTBSOGh6UHRSTWhoYUpmREE5eXhm?=
 =?utf-8?B?ejRudFZ6dDZyR2JzWkl1bktGQVhINjhBUVk0UnFNRDZLcHY2WDVFNmJKUjNV?=
 =?utf-8?B?VjFLMWFCc1k4eVR0U0lmdERmWm5XbmR4Z2tteFJMNGNKcm01WFo2U1pnS1pC?=
 =?utf-8?B?T1h5TkMwWnh5OEFzbTdOcUlIQ3F4NFJObnNlcktBZ0tjc2NHYlpYRlc3N1Jn?=
 =?utf-8?B?SUlySmhEd3BNTkdvN05UODBoVExFMkhFbVN4RUszTUxlQ0xDWkJpY3l1MlNT?=
 =?utf-8?B?eEo4SHg4c09Ld25US1JJL2VkS2NLcktWRHNJTHpxRmpoVmRtTVF5QXRQL0xx?=
 =?utf-8?B?d29RUzlVNjA2SXFObERrcWR2MlhRaHU0VHRGN2RGQ2J0WnluMHNSTlB5dGdD?=
 =?utf-8?B?eE5BVUFWNjZ6VU1IYjZRZENidm1IVmEweW14OTJVa01KNCtScjl6YVk3Tklk?=
 =?utf-8?B?R0UzejBUU1dHNVNsS3JWYWFtU3MvT2dvNDRGNEJOWkdoYVVFQ1FQL0dQV1lC?=
 =?utf-8?B?U0QycmpSdEY2ZlFHbVdreENCZDBxc0V0YXU2TFRzSklLQzJGZ0lxR0JXN1Zs?=
 =?utf-8?B?UHNFMVNDdWtGYld1eWkzcW85TGtReVEvQ0JaUi9WdHl6YnMxdlVzYVh1U2ZV?=
 =?utf-8?B?L1cyQ0pYWlRLaEtGNm42U1lGalBvNW80bURHc0x1bjErbWo0b2srelNYb1hj?=
 =?utf-8?B?NVZyOVRRTDRIanFqcmpwd3VtVnpYZXk1TnA5RG1HNkRjU0dpc0czakszNHc5?=
 =?utf-8?B?NVRDQ2dPa2RiTDBBRHVkLytNVy93d3Y1SlZQTStNTlc2U3dLZGxFYXpoc0d4?=
 =?utf-8?B?TVBNcUhIM0ZNUVRDTWNTWEI4UmlWSXlGOW4zMjg0RXBNU3c4UEdyR3FZN0Zq?=
 =?utf-8?B?VkFtMHNlTDgwKy96dEVIM3p3eFNZYXRKRzdBbDRIcVhvSXNpYzVrbHk3Umhs?=
 =?utf-8?B?ZWVrKzRqTzZDakdPOTdLczNmVmhTb0FYZDlTM25aRHhNN2pGenA5cGRIRzF6?=
 =?utf-8?B?Q081dysvUUhjQ3huMlAzV3Z6TUNVUjlUNDFicDROR1ljeXNWU2ZkR2JwSmJE?=
 =?utf-8?B?Sm8yR25qWlVubzh6Z3lUd1JsWHR3OEdVa1ZxcXptcFpXTkVYV05ZVVRLUUp5?=
 =?utf-8?B?WXgyU2g0VEZxVjNWQ2NiNzBnay9KRG41UWVqWGdsSWxDbklKZ3VlVDlaRkZO?=
 =?utf-8?B?OVBoRk5IMUhVYThFYjd1QnBQdisvdjlsTXJRZ3RPRlFQQnpUYWVXQjJUWXM3?=
 =?utf-8?B?aUNENzR4Q3pXSFEvL2o0S3BnM1UyQm4zUTJVQ1VKRkEycjlScFFtZkxDQ2oz?=
 =?utf-8?B?Q1cxeFF0b3B4ZERpR2wwYXhxS3piZUIxMlh4RDJiS2hyRGlWVWw3b0hpV2VS?=
 =?utf-8?B?dXVCLzFCcFlDNC81Yjl2WVo1bWFtUVdocS9uMElwRDhrNXRpeW5Dak9jL1gz?=
 =?utf-8?B?SFpRcTI2QTJWVEVycm1EREFrR2lFcnl2aytDb0d2bzNRZytwdUluM0tSZ2Ni?=
 =?utf-8?B?SE4zOWlaY0JTemVNQ0k2cXZxSHArVTM3aExSQ3NuMXcwV3BvN2t0S1ZVd1F4?=
 =?utf-8?B?cWRwbmFsWG90ZzRlaGJWK2xiS3NLNERNcUxabDF1SGlnbmdWL2JtL2ZYUDQ2?=
 =?utf-8?B?clRRb2xjdHhBeFFETGJmZjQ5eUIrMW1KMGJ6eEkvemRPTmUxYUNaZHFMK3Rr?=
 =?utf-8?B?czhlc1BrN2l1dlhocFNzUW9zSXZDZmtYT0VxNmZpcFhoSjZCTTZqcDhYNGJ2?=
 =?utf-8?B?cmZJcVVaSzdtMUhWaXJReUNXci9VcjRpeTMwYUJmQm1jMEVFSDFPcGIyYzBo?=
 =?utf-8?B?MlpsRTZXeUk4SklCTXkrdUY2a0QwZ0lJNG5neTQxVWVvK1Z1YWFlNU9zamtV?=
 =?utf-8?B?cElpak1qL09JQ1pqVXBRcVM0TThzMUpaNlJ0MDVjMnI0citRbVlDZVYzMFh0?=
 =?utf-8?B?WU1tbkJvRlFoQi8rWUd4NDBkZnlFZWlHcytDUUZsbmdiWnJycWNtaDZvTUQr?=
 =?utf-8?B?SW9WY1h1dWlwT3B3eEhpZWE0TUVIOXdlTEhTZ0JYVlkvdVpJL0hmMjZ0YmJs?=
 =?utf-8?Q?Ho9oYPAvaWPtZ+t8=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MW4PR03MB6347.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 75e9e2d3-1e01-40bb-8dba-08da47b417cf
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jun 2022 12:00:04.4885
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 61stwhmTqG3cd4wtIrxKEUrNJaHUjjFauSbNHNSLymMW4qeQ1cltLuEFNvIY1HaJtsj+ZtESLNwOf+ATslGN+wJHBESEFhZ3Zd0ZnbxneAs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR03MB5995

KyAgICBpZiAoIUlzTGlzdEVtcHR5KCZSaW5nLT5QYWNrZXRDb21wbGV0ZSkpIHsNCisgICAgICAg
IC8vIFJlLXJ1biBmb3IgdGhlIHJlbWFpbmRlciBmcm9tIHRoZSBiYWNrIG9mIERQQyBxdWV1ZS4N
CisgICAgICAgIFJpbmctPkJhY2tQcmVzc3VyZWQgPSBUUlVFOw0KKyAgICAgICAgaWYgKEtlSW5z
ZXJ0UXVldWVEcGMoJlJpbmctPlF1ZXVlRHBjLCBOVUxMLCBOVUxMKSkNCisgICAgICAgICAgICBS
aW5nLT5RdWV1ZURwY3MrKzsNCisgICAgfSBlbHNlIHsNCisgICAgICAgIFJpbmctPkJhY2tQcmVz
c3VyZWQgPSBGQUxTRTsNCisNCisgICAgICAgIC8vIFBvbGxEcGMgaXMgemVyb2VkIGJlZm9yZSBm
aW5hbCBmbHVzaCwgZG9uJ3QgcXVldWUgaXQgaGVyZS4NCisgICAgICAgIGlmICghUmluZy0+Rmx1
c2ggJiYgS2VJbnNlcnRRdWV1ZURwYygmUmluZy0+UG9sbERwYywgTlVMTCwgTlVMTCkpDQorICAg
ICAgICAgICAgUmluZy0+UG9sbERwY3MrKzsNCisgICAgfQ0KIH0NCg0KQWRkaXRpb25hbGx5LCB0
aGVyZSdzIGEgcHJvYmxlbSBoZXJlIGluIHlvdXIgcmV3cml0ZS4gV2Ugb25seSB3YW50IHRvIHF1
ZXVlIHRoZSBQb2xsRHBjIHdoZW4gd2UgZ28gZnJvbSB0aGUgYmFja3ByZXNzdXJlZCB0byB0aGUg
bm9uLWJhY2twcmVzc3VyZWQgc3RhdGUuIERvaW5nIHRoaXMgaW4gdGhlIGxvdyBsb2FkIGNhc2Ug
d2lsbCBydW4gdGhlIGVudGlyZSBQb2xsRHBjIHJ4IHBhdGggY29udGludW91c2x5LCB3aGljaCBp
cyBkZWZpbml0ZWx5IGEgbWlzdGFrZS4NCg0KTUguDQo=


From win-pv-devel-bounces@lists.xenproject.org Mon Jun 06 12:09:09 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Jun 2022 12:09:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.342470.567517 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1nyBXg-0005Pp-SH; Mon, 06 Jun 2022 12:09:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 342470.567517; Mon, 06 Jun 2022 12:09: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 1nyBXg-0005Pi-Oz; Mon, 06 Jun 2022 12:09:08 +0000
Received: by outflank-mailman (input) for mailman id 342470;
 Mon, 06 Jun 2022 12:09:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Iu0M=WN=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1nyBXf-0005Pc-VZ
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jun 2022 12:09:08 +0000
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com
 [2a00:1450:4864:20::432])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 76d67416-e591-11ec-bd2c-47488cf2e6aa;
 Mon, 06 Jun 2022 14:09:07 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id d14so10585532wra.10
 for <win-pv-devel@lists.xenproject.org>; Mon, 06 Jun 2022 05:09:07 -0700 (PDT)
Received: from [10.7.237.8] (54-240-197-224.amazon.com. [54.240.197.224])
 by smtp.gmail.com with ESMTPSA id
 h42-20020a05600c49aa00b003973d425a7fsm18318223wmp.41.2022.06.06.05.09.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 06 Jun 2022 05:09:06 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 76d67416-e591-11ec-bd2c-47488cf2e6aa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:reply-to:subject
         :content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=uAo09ntJjSDHhuWNg9WIGTmFT66xcArmbvcX+C75mfA=;
        b=SqIkfyxxQ5VncilkBro8ionDxHD+2XwyC/OQTuoA1XiyDFV0ac7qCR2NWtK7dLXJRn
         3oC0aCAA3qoE7SWdNZZ0vdUHYqmGpRZY55NL3MsBAQtnF+YrKndAyLHNWqpyEAaN6OrR
         Z396/r1HhFVHymR+RTN/pTALOdr7bWA/xxutnfdBwm1laoDh1FOvdBU4D4btlvRqbWY2
         7vN4KDO0I90Nwc2VZSnEnDk095OHeFrMir5OiH4LxaPcZAjO712Q7GOBivPf4hEs1fS0
         pW/806C3BYd3Zt5oo6Li7IkuNktG9hk6vCcIADToGMWncy3wiUhxbWlSY5FHi5pwhgx4
         fykA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:reply-to
         :subject:content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=uAo09ntJjSDHhuWNg9WIGTmFT66xcArmbvcX+C75mfA=;
        b=Si0C2klUaed9NKT67QcaWljiwxA6MINwdH1MQbSgpBZFlJE9sDzsUn+1dez2nA3XIe
         4lupjYg35ErRkfq8ef7UE1vu6XFVA5BmlLBwTOeYmuVPuDK0+mAd1iz2MVPD3JGmLriK
         7SkKR97kntXEMIdgJ+pzRuTSW6NKj3X44RZkzyqU1AaPCW4N/FiJIJbSfsi/Sj1se2/V
         zmiWTvBKsDzEAySEIRx8ZwrwkzZpG7sGQYDT1qPiD+qPiVmmITgs+8R/MEJdUZx4A16x
         ECX65xiFNO9C8Tgr0oyhl+hMP6Pv2mVpC8ZDZAYL0Pts+Zyzjaw1RF9nz+xCN6WAJ0wN
         oKzQ==
X-Gm-Message-State: AOAM532WdDvGH7sBuV742wW91ENuqbkDjNA9xvaq1c+ry9ocF3++rM/j
	K6ANkWdkgKsmhEg86OUskCE=
X-Google-Smtp-Source: ABdhPJzJL3XohzR3d0dL+kkfz0dx4dTtf7pbN/bJhyjW/h44qvFoHrs1OvitIbRhAH1jrFg/zoAbTA==
X-Received: by 2002:a5d:490d:0:b0:218:4312:2a2f with SMTP id x13-20020a5d490d000000b0021843122a2fmr2784711wrq.431.1654517346430;
        Mon, 06 Jun 2022 05:09:06 -0700 (PDT)
Message-ID: <65f5ffd2-8e68-8702-6293-806b41b215bd@gmail.com>
Date: Mon, 6 Jun 2022 13:09:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.10.0
Reply-To: paul@xen.org
Subject: Re: [PATCH v2] Limit the amount of work done for each Receiver DPC
Content-Language: en-US
To: Martin Harvey <martin.harvey@citrix.com>, "paul@xen.org" <paul@xen.org>,
 Owen Smith <owen.smith@citrix.com>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
References: <20220602114221.355-1-paul@xen.org>
 <98e1a4a9-d459-75cb-8126-f73c58096c65@gmail.com>
 <MW4PR03MB6347648FD7592B6D8DABA0799AA29@MW4PR03MB6347.namprd03.prod.outlook.com>
 <MW4PR03MB63475AF6F21F43A8B2BFE89D9AA29@MW4PR03MB6347.namprd03.prod.outlook.com>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <MW4PR03MB63475AF6F21F43A8B2BFE89D9AA29@MW4PR03MB6347.namprd03.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 06/06/2022 13:00, Martin Harvey wrote:
> +    if (!IsListEmpty(&Ring->PacketComplete)) {
> +        // Re-run for the remainder from the back of DPC queue.
> +        Ring->BackPressured = TRUE;
> +        if (KeInsertQueueDpc(&Ring->QueueDpc, NULL, NULL))
> +            Ring->QueueDpcs++;
> +    } else {
> +        Ring->BackPressured = FALSE;
> +
> +        // PollDpc is zeroed before final flush, don't queue it here.
> +        if (!Ring->Flush && KeInsertQueueDpc(&Ring->PollDpc, NULL, NULL))
> +            Ring->PollDpcs++;
> +    }
>   }
> 
> Additionally, there's a problem here in your rewrite. We only want to queue the PollDpc when we go from the backpressured to the non-backpressured state. Doing this in the low load case will run the entire PollDpc rx path continuously, which is definitely a mistake.

Yes, that is a mistake.

I'll rebase the 2nd patch on top and let's see how that looks.

   Paul

> 
> MH.



From win-pv-devel-bounces@lists.xenproject.org Mon Jun 06 12:21:59 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Jun 2022 12:21:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.342478.567521 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1nyBk6-0007J5-Qx; Mon, 06 Jun 2022 12:21:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 342478.567521; Mon, 06 Jun 2022 12:21:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1nyBk6-0007Ix-Ni; Mon, 06 Jun 2022 12:21:58 +0000
Received: by outflank-mailman (input) for mailman id 342478;
 Mon, 06 Jun 2022 12:21:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Bu96=WN=citrix.com=prvs=149739580=martin.harvey@srs-se1.protection.inumbo.net>)
 id 1nyBk5-0007Ir-MQ
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jun 2022 12:21:57 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3fd5b6a8-e593-11ec-b605-df0040e90b76;
 Mon, 06 Jun 2022 14:21:55 +0200 (CEST)
Received: from mail-dm6nam11lp2175.outbound.protection.outlook.com (HELO
 NAM11-DM6-obe.outbound.protection.outlook.com) ([104.47.57.175])
 by ob1.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256;
 06 Jun 2022 08:21:52 -0400
Received: from MW4PR03MB6347.namprd03.prod.outlook.com (2603:10b6:303:11e::22)
 by MN2PR03MB5086.namprd03.prod.outlook.com (2603:10b6:208:1a5::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.13; Mon, 6 Jun
 2022 12:21:51 +0000
Received: from MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::5587:5e20:5c2b:d94e]) by MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::5587:5e20:5c2b:d94e%8]) with mapi id 15.20.5293.019; Mon, 6 Jun 2022
 12:21:51 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3fd5b6a8-e593-11ec-b605-df0040e90b76
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1654518115;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=+le76VFoSTOAHMb8FiLC3lBSCpq+3sNAwa6Ukz31XyI=;
  b=P+VbjUNNheXNNkQkYJxXjqQB9ADip/en9ToDvAuMhG2dCDU/zdwQUevg
   F7I/CJ/TtjYK6g10hsblOqwzK72ntT1ID8XKKrm6wUBgsfRBIrQiT1Ogv
   5Up9K0Gm9MsDT1E/TTlFzTlifu3DdV29Lj2kzsa4Amf8pToMVjGqbVmzq
   Y=;
X-IronPort-RemoteIP: 104.47.57.175
X-IronPort-MID: 72934144
X-IronPort-Reputation: None
X-IronPort-Listener: OutboundMail
X-IronPort-SenderGroup: RELAY_O365
X-IronPort-MailFlowPolicy: $RELAYED
IronPort-Data: A9a23:jTCs2KOEZkLkkITvrR3HlsFynXyQoLVcMsEvi/4bfWQNrUpz02BVz
 GAbW26OOa3cazOjLowlbtizp01UsZDXzdU2QQto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdleF+lH1dOKJQUBUjclkfJKlYAL/En03FFYMpBsJ00o5wbZn2tMw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z5
 9JXt4GydQISF7DNs8Q7cil2ARtYIvgTkFPHCSDXXc276WTjKiKp79AwSUY8MMsf5/p9BnxI+
 boAMjcRYxufhuWwhrWmVu1rgcdlJ87uVG8dkig4kXeFUrB7HtaaHPiiCdxwhV/cguhLFOzCZ
 sxfaTN1chnRSxZOJk0WGNQ1m+LAanzXLGcJ8w7M+fZfD2778yMo0qbSbsfvI9WTdJh0ol2mr
 ULs8DGsav0dHJnFodafyVq0j/LLtTP2XsQVDrLQ3uFrhhiL2CkfBQMbUXO/oOKlkQiuVtRHM
 UsW9yEy668o+ySWosLVWhS5pDuIu0AaUt8JSukisljSl+zT/hqTAXUCQnhZcts6ucQqRDssk
 FiUg9fuAj8pu7qQIZ6AyoqpQfqJEXB9BQc/ieUsFGPpP/GLTFkPsy/y
IronPort-HdrOrdr: A9a23:QmUJrqHrf9wtgBwvpLqFQ5HXdLJyesId70hD6qkvc3Fom52j/f
 xGws5x6fatskdrZJkh8erwW5VoMkmsj6KdhrNhcItKPTOW8ldASbsP0WKM+UyGJ8STzI9gPO
 JbAtBD4b7LfBRHZKTBkW+F+r8bqbHpnpxAx92utkuFJjsaCZ2Imj0JbjpzZXcGITWua6BYKL
 Osou584xawc3Ueacq2QlMfWfLYmtHNnJX6JTYbGh8O8mC1/H2VwY+/NyLd8gYVUjtJz7tn23
 PCiRbF6qKqtOz+4gPA1lXU849dlLLau5p+7Y23+4gowwfX+0SVjbdaKvi/VfcO0aWSAWMR4Z
 rxStEbToNOAj3qDyeISFDWqnTdOX4VmgPfIBmj8DTeSIXCNU0HItsEioRDfhTD7U08+Nl6za
 JQxmqc84FaFBXagU3GlpH1vjxR5z2JSEAZ4JguZr1kIPgjQa4UqZZa8FJeEZ8GEi6/4Ic7EP
 N2BMWZ4PpNa1uVY33Qo2EqmbWXLz8ONwbDRlJHtt2e0jBQknw8x0wExNYHlnNF8J4mUZFL6+
 nNL6wtnrBTSc0da757GY46MIOKI32IRQiJPHOZIFzhGq1CM3XRq4Tv6LFw/+2ucIxg9upHpH
 0AaiIsiYcfQTOeNSTV5uw0zvnkehTMYR39jsdD+pN+prrwALL2LCzrciFdr/ed
X-IronPort-AV: E=Sophos;i="5.91,280,1647316800"; 
   d="scan'208";a="72934144"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=C5RnE2booTMZLclbNmMp7i9l/eCmXUtfPfLYjfxPnsyFgRx3PX7Yd0Er6twpemj71o29VkYAhoe11wJfIdAvzDhYKXxypTEdKLTNK7e8gOD21EUkSsO9RT8aHvzuKhAVn292cawGw6O4GpJ25KdI6XCIWgJz87HH+3WTRSHaaKeiuAK/SQke9JzucIyu9SrXn1423aBkHEo95ibLLyTAq9sV+cs5gsXoLIRxg5CrKbr2qrtiLDl8ReAG31P85t5lTzFOQWs2YUmnIqjtziaNbuSbCeiOxerHlEoZRDSQIPJB0/N5wkJnruzOBhAhTTyY6hxbdR3rTaQvalhH+BW2AA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+le76VFoSTOAHMb8FiLC3lBSCpq+3sNAwa6Ukz31XyI=;
 b=POai5cLF1BWSjvtYU/FzZn9TvrMnS62f4ygxCpsQjGtVH1JAjMdqntqoTEzaCCCAWfGbQegn1HtJbkcG/0DH+5LlHJFRsQwnjFm/iklo7ds0nihlUO3/Qiy9lFrWsqafHHlAs1+RFvNwveTcGFKJzQ23NIxGNrvZ5vi33bjLMP6qLOs+PtwEKGw05WXr1LeFXb0ownamuBkTuSU/BlDaAj6plCwy8e9+x2Lw2HFcwBXjLJ6WrhVx7MPhH/8lso/4DOuZkDII5AwhFJPvB+KhCXGmvPNgVFJa7B6r76YM67gRmGSDKY9GXKOgDxtG9yQhtJ4Pl0i7gAq3lWgM4rW6Rw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+le76VFoSTOAHMb8FiLC3lBSCpq+3sNAwa6Ukz31XyI=;
 b=u+ehm4ABqkUKsDtWBeP2jYFEgq/ahishTemegsOuVkBpP6JwPuteA2t3D1LvGbaVcE2JsgoyGEtp7vfgeqszYxsGCh+FZXHhCUSB9vMz6DU4yF2HIh8n/7PcQAsv4LOa7aAQG98IbOkHdz+Ly1l2ediYs6xkmPCCK1T1L/xTjJA=
From: Martin Harvey <martin.harvey@citrix.com>
To: "paul@xen.org" <paul@xen.org>, Owen Smith <owen.smith@citrix.com>
CC: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: RE: [PATCH v2] Limit the amount of work done for each Receiver DPC
Thread-Topic: [PATCH v2] Limit the amount of work done for each Receiver DPC
Thread-Index: AQHYdnXhM853CaX5dkS4JamzRTB2U607/02AgAYxeUCAABtgAIAAA1wAgAACyRA=
Date: Mon, 6 Jun 2022 12:21:50 +0000
Message-ID:
 <MW4PR03MB634795694518B27C0CF9AEC09AA29@MW4PR03MB6347.namprd03.prod.outlook.com>
References: <20220602114221.355-1-paul@xen.org>
 <98e1a4a9-d459-75cb-8126-f73c58096c65@gmail.com>
 <MW4PR03MB6347648FD7592B6D8DABA0799AA29@MW4PR03MB6347.namprd03.prod.outlook.com>
 <MW4PR03MB63475AF6F21F43A8B2BFE89D9AA29@MW4PR03MB6347.namprd03.prod.outlook.com>
 <65f5ffd2-8e68-8702-6293-806b41b215bd@gmail.com>
In-Reply-To: <65f5ffd2-8e68-8702-6293-806b41b215bd@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 8978a482-6d57-465f-76f6-08da47b72282
x-ms-traffictypediagnostic: MN2PR03MB5086:EE_
x-microsoft-antispam-prvs:
 <MN2PR03MB508664C83C795CB399DF15FA9AA29@MN2PR03MB5086.namprd03.prod.outlook.com>
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 xvdUnShcPbHuvcklONtkDMJE3Wz/KvfbMIzlgwbG3VQJ63AiO19v8FvqsmHvO0zUoJxFtvci/isQ76/iZWojUPFMmTUky+xwc4fQ+nwimNt4E0DeDnQxA3WehSwNFs1vJ/eiypHHzz6jhMojyBanKOaWgAgAVe2x933ZNO4rIGyudZ9YS+BL7OwIxAYJWWzKm8Xp+KQH8sqp8qPUqV/YxQSbzdRwHPNPoTD9Es4IHAq3VPj6m1f8yM7No6iQGmQywEfkzy2bxrXKxulC1q3vg/tpDLkV6Gyaltn3wHoQMohgAIpF97i8xRxOCtJtJJllmgt/Zg8hZixE83yjwo9Qfd/GnE3v+JXtZZqf3N7nOLuUnlc8gANWvuiX4pkx5rq5VsmIIdAbSknQfKyCKqyTzxaphze4cH0mSN5wmuyyLI27m3lzpUjnzue0CoMtXi++/D1zcipxp01XgwnmGdZ547uHHlcpicyA02r6+Gb337lWV2k87hoRiMWm9rczAB6UDAtdw5buVzQBTeRKw1W6KCo2SXPqBBzjT0LZEmCHrn+Ab2USar/RKDH3js4LRKJe0fqBQSzXhS51HAxxT/cWShzmDmqrLceaDvAM+jT0vgeNkM0wQbll43zvMFrumHnmlVqFE4sDn4jiHshKD40MZXdi+NWTELb8r9GK6Ze3el3MoUXiQl8/LV3WqTual4651+SsLMdttb3iemFrBKICbg==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR03MB6347.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(66446008)(38070700005)(38100700002)(83380400001)(82960400001)(71200400001)(76116006)(66946007)(64756008)(66476007)(66556008)(186003)(55016003)(8676002)(86362001)(6636002)(9686003)(26005)(5660300002)(52536014)(44832011)(316002)(508600001)(110136005)(7696005)(6506007)(122000001)(4326008)(2906002)(4744005)(8936002)(53546011)(33656002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?T01mNHorNHZXT0VsODRBQVA4R2tkYmRDcEVpMldZZlNIUTVGUkNUOG14blNB?=
 =?utf-8?B?cVJnaWltUlZONDI3QkVXbDU4d2g2UTFSNXhoUEtZc1hBdllaeUVVRmdIR3dr?=
 =?utf-8?B?QmdoTWhYQjBQNko0U0w1ZVc1dVdmaUN3RVozZzVWcWZ6MVVWek5GTEFDYVhj?=
 =?utf-8?B?WDZBMzIyWUZtS0dsQTIvZHFiSVlvU25LZzZVWmhXT0JCR213WnlHWWU0RHFs?=
 =?utf-8?B?QjkxKzN3ZzFZVkRYanc5Rm5XOHNBY0xnMFJicUFmUjJra1hSMG1vVVRvd2tY?=
 =?utf-8?B?Q2h1WUV0ZFVSNC9sblF5cjNWa2JVU1dTeEhGaTRpZnJya3RpNm5nUGl4R0Rm?=
 =?utf-8?B?TDMvb3JpUnlDcHErdGxURVZjbHpSN0k0ZW43dy9mTVIxZFlDOVdaWUZnOEhi?=
 =?utf-8?B?VkFaQTVsQmIyOEtIUC9sZlhmMVFqZ1FiSzAwSittNkdLQlg5NEt1b0pINHJl?=
 =?utf-8?B?WDhqZE92WFpaa1lvTU5CbHZXSVEzRkoya0NRK0Q4cEp5MlJiaEw5eFRMSmU2?=
 =?utf-8?B?Sk1OSTVJWjJhdmFhUmRuUDI2QkZ3VURrNzdxUThoYmlJUWRUWk55Sm9lTjNP?=
 =?utf-8?B?YjlSQkg2dG9lVmdLaUp1b1NxQ3JOYlV2bGdkRDBQMXhXRWl6cWFtWDk4MGdL?=
 =?utf-8?B?STFMaXgxVjNhK3BrNHBScFJiNCtSU2JtU3ZvekhkdWlnRi9EcmV4ejR4WlNB?=
 =?utf-8?B?WVE4eTZxbDgraStybXo2RjVVZ00rbUNOZkF3aVZlbkVPSFdSS1p4MVdVa2RH?=
 =?utf-8?B?cmNjaHNJQlVLL1RSRkd0dERJM3FKc0F6NVlVbDRuSjZiRU14a216V3ZKMVVo?=
 =?utf-8?B?TDlSem5mWTZWN1FtWjJGS2lJMks0MDlBU0tJUGc0RWJCUDRKc0tnQjIwYU1j?=
 =?utf-8?B?bUtBYjk4UUpHSnRTbkZpb2J4aURONWNBK01aeWg4ZE9JRGNPZlpLZm1UTkZ5?=
 =?utf-8?B?b1JoajZoa3dVR0wyenJ6YnhBcW5SbkVhZFFYK3QyYnI3T0ZGV0tSelpuUnYz?=
 =?utf-8?B?WmVNbjdMWUlWK2R0aHJuSHJhTkUrL2pRb3NmbzJOVHVSWG5wT1d2YktPZTIx?=
 =?utf-8?B?QzFZY3IvTjQ3SFdFR0QrR3dWN1FyMzdtUlhYem9GV3VzVERVcUk5VWxKemtp?=
 =?utf-8?B?NzZ1eXI1M3dYT3NOemNRNjlGZzhJUmQ0dnFUdkpIWFpXeW1jb2Y5S2VsZmJu?=
 =?utf-8?B?WjQrcmx0dzY1THJLVjRyYXpIL05pM2NxUjFZSFBMaTlvRVJOVi9na2dlRnpv?=
 =?utf-8?B?S3g5aXdJSUVkMURsZFo4d3N1cUFmOWJNWUVhbU50dUJHYlNZb1VzYUNxUEVY?=
 =?utf-8?B?L3pEbGZWek40WWlEZ2tSVHpIMVlEVWJ2eUZrWlRYUzNTLzg3aDYwL093TXA0?=
 =?utf-8?B?em9CZ0Joc09CelV3WVpsUENxVmt1aXFPMUNrL1pTSE5MeHRXMnFNd3R1VlVD?=
 =?utf-8?B?WXpwVTY4Qjk5amJod1RETG80OWtIR0pSRHJKUjRTYnB2a0hIb05rbTNENmdH?=
 =?utf-8?B?d3FpbUE2dkI1U0l6b3l4akl5azFhY3NXVy9NMzlJQ1MyeDhiY01FMUkrejZt?=
 =?utf-8?B?SXhJbmtSVWdiZUdaM3huMDNpeWU2Q3pKQTJ6Z2JzZUVtbnF2cXYzWFJOVk1G?=
 =?utf-8?B?amQzQnpWaUM0WUtmYmQybzZLeDdxV0Npb1NyR0xUaGd6V3hEWmdPWDNrOFY4?=
 =?utf-8?B?OEZ5L25GdmFyWkFMR3lvTi9GakRtRGlERHpCcDhJRkNoT0cwVjNwa3pUTVRC?=
 =?utf-8?B?dko1VW41YWtGNEI3T21pU3pQSG55QkRxRnU4MmxCUE1IbzRGTXJlcHhqZkRv?=
 =?utf-8?B?QzFja1hnZnFhV1RGQm1hZFM2QjRSRHA4bTU2djN0M3REb3dKdTl6R25ONDZS?=
 =?utf-8?B?NWd1MVBpem5Xa2RpbUlDRWZSM2s4c0todEp3UlErNlB5NExzNmJYWjdQNXdl?=
 =?utf-8?B?NndSMytkS1F3cXREaldBT2R4cDlnL1U3NUpFMUJydFQ3a3ZJSWxaMFRDekZ4?=
 =?utf-8?B?MXJuemFnc1BZc1lBUi9SeWZFbWJuWXNOOVVqVXY3NWRHYnZmNlNGNmxKYnU4?=
 =?utf-8?B?bjNFa1dkK3V5TjlRd2N4Zlh2L1NOWE0rMVBtamR6VXUxQ1NFNDdDeDlEV21N?=
 =?utf-8?B?K3Z6MFFENy9YR3RzcUprQVBBdEcra25rZUdPMEFINFdLUVQwdlJXcW9KaFlv?=
 =?utf-8?B?bWxyVkFsSFZORTZZQVhBclpDVGNyWmxqWGRqVlZkS3RqWGlRa3FGWnhRMWxj?=
 =?utf-8?B?aUx0K1JUMHR4ekc0aVN4Wk1uY3FGeUIwVTBrU1B3bGY3cGFmTEwxWGFIaHlG?=
 =?utf-8?B?VWpQMng4MDhaL1Rja2RjZDRDMlh0bWgwTklzMW5DcFpPZnQrZlo5ZDdkeW5Z?=
 =?utf-8?Q?hlcqV6j6DnFdw/Yw=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MW4PR03MB6347.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8978a482-6d57-465f-76f6-08da47b72282
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jun 2022 12:21:50.9596
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 3UQtqCQycum8YsywpevGEjawYOXzza0+J9SZA1DzgI/yJhoC6vmKbV3fkZx7AgPDWnFCP9ij2YI3fGTshhL0yYMa+4b1InK9+HuyQ/j7Pvo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5086

DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBEdXJyYW50LCBQYXVsIDx4YWRp
bWduaWtAZ21haWwuY29tPiANClNlbnQ6IDA2IEp1bmUgMjAyMiAxMzowOQ0KVG86IE1hcnRpbiBI
YXJ2ZXkgPG1hcnRpbi5oYXJ2ZXlAY2l0cml4LmNvbT47IHBhdWxAeGVuLm9yZzsgT3dlbiBTbWl0
aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KQ2M6IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZw0KU3ViamVjdDogUmU6IFtQQVRDSCB2Ml0gTGltaXQgdGhlIGFtb3VudCBvZiB3b3Jr
IGRvbmUgZm9yIGVhY2ggUmVjZWl2ZXIgRFBDDQoNCj4gWWVzLCB0aGF0IGlzIGEgbWlzdGFrZS4N
Cj4NCj4gSSdsbCByZWJhc2UgdGhlIDJuZCBwYXRjaCBvbiB0b3AgYW5kIGxldCdzIHNlZSBob3cg
dGhhdCBsb29rcy4NCg0KSWYgdGhlIGZpcnN0IGlzIGJyb2tlbiwgdGhlIHNlY29uZCBpcyB1bmxp
a2VseSB0byBiZSBhbnkgYmV0dGVyLi4uDQoNClByb21pc2UgdGhlIG9yaWdpbmFsIHBhdGNoZXMg
d2VyZSB3ZWxsIHRlc3RlZCwgYW5kIGhhdmUgYmVlbiBxdWl0ZSByZWxpYWJsZS4gVG90YWxseSBo
YXBweSB3aXRoIHZhcmlhYmxlIHJlbmFtZXMgYW5kIGNvc21ldGljIGNoYW5nZXMsIGJ1dCBzb21l
IG9mIHRoZSBsb2dpYyB0byBkbyB3aXRoIGJhY2twcmVzc3VyZSBhbmQgZmx1c2hpbmcgZGVsaWJl
cmF0ZWx5IG92ZXJsYXBzIGZyb20gb25lIERQQyB0byB0aGUgbmV4dCwgYW5kIGl0J3Mgbm90IHBv
c3NpYmxlIHRvIHNpbXBsaWZ5IGl0IGludG8gInN0YXRlIGRlcGVuZHMgb25seSBvbiB0aGlzIGRw
YyIuDQoNCldoYXQgZG8geW91IHdhbnQgdG8gYWNoaWV2ZSBoZXJlLCBhbmQgd2hhdCdzIHRoZSBi
ZXN0IHdheSBvZiBnb2luZyBhYm91dCBpdD8NCg0KTUguDQo=


From win-pv-devel-bounces@lists.xenproject.org Mon Jun 06 12:26:43 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 06 Jun 2022 12:26:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.342488.567524 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1nyBoh-0007Sp-7K; Mon, 06 Jun 2022 12:26:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 342488.567524; Mon, 06 Jun 2022 12:26:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1nyBoh-0007Si-4W; Mon, 06 Jun 2022 12:26:43 +0000
Received: by outflank-mailman (input) for mailman id 342488;
 Mon, 06 Jun 2022 12:26:42 +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=Ddx3=WN=amazon.co.uk=prvs=1497b527a=pdurrant@srs-se1.protection.inumbo.net>)
 id 1nyBof-0007Sc-MV
 for win-pv-devel@lists.xenproject.org; Mon, 06 Jun 2022 12:26:42 +0000
Received: from smtp-fw-6001.amazon.com (smtp-fw-6001.amazon.com [52.95.48.154])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ea168f92-e593-11ec-bd2c-47488cf2e6aa;
 Mon, 06 Jun 2022 14:26:40 +0200 (CEST)
Received: from iad12-co-svc-p1-lb1-vlan3.amazon.com (HELO
 email-inbound-relay-iad-1d-9a235a16.us-east-1.amazon.com) ([10.43.8.6])
 by smtp-border-fw-6001.iad6.amazon.com with ESMTP; 06 Jun 2022 12:26:28 +0000
Received: from EX13D32EUC003.ant.amazon.com
 (iad12-ws-svc-p26-lb9-vlan3.iad.amazon.com [10.40.163.38])
 by email-inbound-relay-iad-1d-9a235a16.us-east-1.amazon.com (Postfix) with
 ESMTPS id 73C248122F; Mon,  6 Jun 2022 12:26:27 +0000 (UTC)
Received: from EX13D32EUC003.ant.amazon.com (10.43.164.24) by
 EX13D32EUC003.ant.amazon.com (10.43.164.24) with Microsoft SMTP Server (TLS)
 id 15.0.1497.36; Mon, 6 Jun 2022 12:26:26 +0000
Received: from EX13D32EUC003.ant.amazon.com ([10.43.164.24]) by
 EX13D32EUC003.ant.amazon.com ([10.43.164.24]) with mapi id 15.00.1497.036;
 Mon, 6 Jun 2022 12:26:26 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ea168f92-e593-11ec-bd2c-47488cf2e6aa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=amazon.co.uk; i=@amazon.co.uk; q=dns/txt;
  s=amazon201209; t=1654518400; x=1686054400;
  h=from:to:cc:date:message-id:references:in-reply-to:
   content-transfer-encoding:mime-version:subject;
  bh=0q4+7Ywi5xrzZVG+uArxX4uJr6SAE3DrWR3DB08pXEU=;
  b=SaPyWIEwcR3+YV4fySv2qXRnih4kDHuMttVKufhhrnvVIt67YGHaEunw
   om2EEzpBPPXrZW7x62TksYKRulyChRwO6k7KfTMETvIwYYXJhV0I5UUbx
   fDJFRFkUIFE7sIRrrYZpgL9+B9HB2xHOEECQtzjyM7NrGaPakz/UC+Afr
   Q=;
Subject: RE: [PATCH v2] Limit the amount of work done for each Receiver DPC
Thread-Topic: [PATCH v2] Limit the amount of work done for each Receiver DPC
From: "Durrant, Paul" <pdurrant@amazon.co.uk>
To: Martin Harvey <martin.harvey@citrix.com>, "paul@xen.org" <paul@xen.org>,
	Owen Smith <owen.smith@citrix.com>
CC: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Index: AQHYdnZQxN+LP4ciO066apWBrnF3q61CMYqAgAAbcwCAAAKEAIAAA5EAgAAAlIA=
Date: Mon, 6 Jun 2022 12:26:26 +0000
Message-ID: <38563b3025ed4c3e9502edc8ff49bbd0@EX13D32EUC003.ant.amazon.com>
References: <20220602114221.355-1-paul@xen.org>
 <98e1a4a9-d459-75cb-8126-f73c58096c65@gmail.com>
 <MW4PR03MB6347648FD7592B6D8DABA0799AA29@MW4PR03MB6347.namprd03.prod.outlook.com>
 <MW4PR03MB63475AF6F21F43A8B2BFE89D9AA29@MW4PR03MB6347.namprd03.prod.outlook.com>
 <65f5ffd2-8e68-8702-6293-806b41b215bd@gmail.com>
 <MW4PR03MB634795694518B27C0CF9AEC09AA29@MW4PR03MB6347.namprd03.prod.outlook.com>
In-Reply-To: <MW4PR03MB634795694518B27C0CF9AEC09AA29@MW4PR03MB6347.namprd03.prod.outlook.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.43.164.144]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgPHdpbi1w
di1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnPiBPbiBCZWhhbGYgT2YgTWFydGlu
IEhhcnZleQ0KPiBTZW50OiAwNiBKdW5lIDIwMjIgMTM6MjINCj4gVG86IHBhdWxAeGVuLm9yZzsg
T3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiBDYzogd2luLXB2LWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnDQo+IFN1YmplY3Q6IFJFOiBbRVhURVJOQUxdW1BBVENIIHYyXSBM
aW1pdCB0aGUgYW1vdW50IG9mIHdvcmsgZG9uZSBmb3IgZWFjaCBSZWNlaXZlciBEUEMNCj4gDQo+
IENBVVRJT046IFRoaXMgZW1haWwgb3JpZ2luYXRlZCBmcm9tIG91dHNpZGUgb2YgdGhlIG9yZ2Fu
aXphdGlvbi4gRG8gbm90IGNsaWNrIGxpbmtzIG9yIG9wZW4NCj4gYXR0YWNobWVudHMgdW5sZXNz
IHlvdSBjYW4gY29uZmlybSB0aGUgc2VuZGVyIGFuZCBrbm93IHRoZSBjb250ZW50IGlzIHNhZmUu
DQo+IA0KPiANCj4gDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IER1cnJh
bnQsIFBhdWwgPHhhZGltZ25pa0BnbWFpbC5jb20+DQo+IFNlbnQ6IDA2IEp1bmUgMjAyMiAxMzow
OQ0KPiBUbzogTWFydGluIEhhcnZleSA8bWFydGluLmhhcnZleUBjaXRyaXguY29tPjsgcGF1bEB4
ZW4ub3JnOyBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNpdHJpeC5jb20+DQo+IENjOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2Ml0gTGlt
aXQgdGhlIGFtb3VudCBvZiB3b3JrIGRvbmUgZm9yIGVhY2ggUmVjZWl2ZXIgRFBDDQo+IA0KPiA+
IFllcywgdGhhdCBpcyBhIG1pc3Rha2UuDQo+ID4NCj4gPiBJJ2xsIHJlYmFzZSB0aGUgMm5kIHBh
dGNoIG9uIHRvcCBhbmQgbGV0J3Mgc2VlIGhvdyB0aGF0IGxvb2tzLg0KPiANCj4gSWYgdGhlIGZp
cnN0IGlzIGJyb2tlbiwgdGhlIHNlY29uZCBpcyB1bmxpa2VseSB0byBiZSBhbnkgYmV0dGVyLi4u
DQo+IA0KPiBQcm9taXNlIHRoZSBvcmlnaW5hbCBwYXRjaGVzIHdlcmUgd2VsbCB0ZXN0ZWQsIGFu
ZCBoYXZlIGJlZW4gcXVpdGUgcmVsaWFibGUuIFRvdGFsbHkgaGFwcHkgd2l0aA0KPiB2YXJpYWJs
ZSByZW5hbWVzIGFuZCBjb3NtZXRpYyBjaGFuZ2VzLCBidXQgc29tZSBvZiB0aGUgbG9naWMgdG8g
ZG8gd2l0aCBiYWNrcHJlc3N1cmUgYW5kIGZsdXNoaW5nDQo+IGRlbGliZXJhdGVseSBvdmVybGFw
cyBmcm9tIG9uZSBEUEMgdG8gdGhlIG5leHQsIGFuZCBpdCdzIG5vdCBwb3NzaWJsZSB0byBzaW1w
bGlmeSBpdCBpbnRvICJzdGF0ZQ0KPiBkZXBlbmRzIG9ubHkgb24gdGhpcyBkcGMiLg0KPiANCj4g
V2hhdCBkbyB5b3Ugd2FudCB0byBhY2hpZXZlIGhlcmUsIGFuZCB3aGF0J3MgdGhlIGJlc3Qgd2F5
IG9mIGdvaW5nIGFib3V0IGl0Pw0KPiANCg0KRWFjaCBwYXRjaCBnZW5lcmFsbHkgc3RhbmRzIG9u
IGl0cyBvd24gbWVyaXRzIGFuZCBJIHdhbnRlZCB0byB0cnkgdG8gZ2V0IHRoZSBpbmNyZW1lbnRh
bCBjaGFuZ2VzIGxvb2tpbmcgcmlnaHQ7IGUuZy4gd2UgZG9uJ3QgaW50cm9kdWNlIHN0YWNrIHZh
cmlhYmxlcyBpbiBwYXRjaCAxIHRoYXQgYXJlbid0IHJlYWxseSBuZWVkZWQgdW50aWwgcGF0Y2gg
Mi4gSSdsbCBwbGF5IHdpdGggYm90aCBwYXRjaGVzIHRvZ2V0aGVyLg0KDQogIFBhdWwNCg0KPiBN
SC4NCg==


From win-pv-devel-bounces@lists.xenproject.org Tue Jun 07 09:32:54 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 07 Jun 2022 09:32:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.343065.568216 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1nyVa0-0002Fk-VP; Tue, 07 Jun 2022 09:32:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 343065.568216; Tue, 07 Jun 2022 09:32: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 1nyVa0-0002Fd-Si; Tue, 07 Jun 2022 09:32:52 +0000
Received: by outflank-mailman (input) for mailman id 343065;
 Tue, 07 Jun 2022 09:32:52 +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=VGVm=WO=citrix.com=prvs=150b09a66=martin.harvey@srs-se1.protection.inumbo.net>)
 id 1nyVa0-0002FW-Hq
 for win-pv-devel@lists.xenproject.org; Tue, 07 Jun 2022 09:32:52 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cb3b9b4a-e644-11ec-bd2c-47488cf2e6aa;
 Tue, 07 Jun 2022 11:32:50 +0200 (CEST)
Received: from mail-mw2nam12lp2048.outbound.protection.outlook.com (HELO
 NAM12-MW2-obe.outbound.protection.outlook.com) ([104.47.66.48])
 by ob1.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256;
 07 Jun 2022 05:32:40 -0400
Received: from MW4PR03MB6347.namprd03.prod.outlook.com (2603:10b6:303:11e::22)
 by DM6PR03MB5178.namprd03.prod.outlook.com (2603:10b6:5:240::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.13; Tue, 7 Jun
 2022 09:32:39 +0000
Received: from MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::5587:5e20:5c2b:d94e]) by MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::5587:5e20:5c2b:d94e%8]) with mapi id 15.20.5293.019; Tue, 7 Jun 2022
 09:32:39 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cb3b9b4a-e644-11ec-bd2c-47488cf2e6aa
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1654594370;
  h=from:to:cc:subject:date:message-id:
   content-transfer-encoding:mime-version;
  bh=cQoHumL4lMMVAxbBvPdCHXbk3qxw+nQveZ9/zhN9iHY=;
  b=hylkedu6s4yJu41HNWholy+y9ohKHHcDNT5Kg/rZ41KU0aw0zDxjEHsC
   MBgpNoAWpuLfGD15KuunDxz23OPGDgXwsCZ5Rq4gt1PKfSJIBoQhdbMd+
   J8gK2I924Fy018HRtOI5msgj6Cry9e7VGYL5NS42Q0Ka/AbU0gY76vW4x
   w=;
X-IronPort-RemoteIP: 104.47.66.48
X-IronPort-MID: 72377747
X-IronPort-Reputation: None
X-IronPort-Listener: OutboundMail
X-IronPort-SenderGroup: RELAY_O365
X-IronPort-MailFlowPolicy: $RELAYED
IronPort-Data: A9a23:B1RJCqvcrETHUJOKZmG+TG3qLOfnVDVfMUV32f8akzHdYApBsoF/q
 tZmKWyHO67eNzb0c40jb4q08ElXv57Rx4c3HAdtrS88RigU+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZhSAgk/nOHNIQMcacUsxLbVYMpBwJ1FQywobVvqYy2YLjW13V5
 ouryyHiEATNNwBcYzp8B52r8HuDjNyq0N/PlgVjDRzjlAa2e0g9VPrzF4noR5fLatA88tqBb
 /TC1NmEElbxpH/BPD8HfoHTKSXmSpaKVeSHZ+E/t6KK2nCurQRquko32WZ1he66RFxlkvgoo
 Oihu6BcRi8iYJ3It+hAdiAGOCBlO4dP3ZLgeWmW5Jn7I03uKxMAwt1IJWRvZ8g9xbwyBmtDs
 /sFNDoKcxaPwfqsx662QfVtgcJlK9T3OIQYuTdryjSx4fQOGMifBfmVo4EGmmtg7ixNNa+2i
 84xbDN1cBXGJR1GIEkaGbo1nfuyh2m5eDpdwL6QjfVtuDeMk1AuuFTrGPb5UcaRdJ1TombCo
 0j60mLXXS86EvXKnFJp9Vrp3IcjhxjTQIsPEJWo+/gsh0ecrkQMCRtTTUX+rfSnh0qWX9NEN
 1dS6icotbI19kGgUp/6RRLQnZKflhsVWt4VFvJg7giIk/DQ+1zBWjhCSSNdYts7ssNwXSYty
 lKCg9LuA3poraGRTnWesLyTqFteJBQoEIPLXgdcJSNt3jUpiNhbYs7nJjq7LJOIsw==
IronPort-HdrOrdr: A9a23:QYCueqvx4nRxZnKVyBACYn5g7skCyYMji2hC6mlwRA09TyXGra
 2TdaUgvyMc1gx7ZJh5o6H4BEGBKUmslqKdkrNhRYtKOzOW81dATbsSpbcKpgeNJ8SQzJ876U
 4NSclD4b7LfBJHZKTBkW+F+r8bqbHpnpxA7t2urUuFODsaD52ImD0JbzpzfHcXeCB2Qb4CUL
 aM7MtOoDStPV4NaN6gO3UDV+/f4/XWiZPPe3c9dlIawTjLqQntxK/xEhCe0BtbeShI260e/W
 /MlBG8zrm/ssu81gTX2wbonttrcZrau5V+7f63+4gowwbX+0WVjUNaKv+/VQUO0aCSAZAR4Z
 zxSlkbToBOAjjqDxqISFPWqnPdOXAVmjLfIBaj8AbeiN28SzQgB8Vbg4VFNhPf9ko7pdl5lL
 lGxmSDqvNsfGT9dQnGlq31vitR5z6JSLsZ4J8upm0aVZFbZK5arIQZ8k8QGJAcHDji4IRiFO
 V1FsnT6PtfbFvfNhnizyBS6c3pWm52EgaNQ0AEtMDQ2z9KnGphx09dwMAEhH8P+J80VpEB7e
 XZNaZjkq1IU6YtHNRALfZERdHyBn3GQBrKPm7XKVP7FLsfM3aIsJLz6KVd3pDZRHXJ9upApH
 3saiImiYdpQTOTNSSn5uw0zjndBGOgQD/q1sZSo5Bkp7yUfsuaDRG+
X-IronPort-AV: E=Sophos;i="5.91,283,1647316800"; 
   d="scan'208";a="72377747"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hheMjJ2dDcdRa08MlhqOgbux8g6igyGTjEC+Yj9F93jBzXgE0Yc3q/MTM512SDUpiwFT1Hd8gOAzrLznuP2UtTWpL2Xjv8o+IfdP91OGUz5YkHTW/TxOHT1Dm542B3bk8xyOGxdcPJqJOjdg9l26NIR9kAf02m17EIWFA/RMitu4QxoPRh7X14SW2cQ62fmOMKDLE0pbvTC7WzC9qyNwDFYpa8uwfT6ixW9DGbVHGA0V1IQLTsIkT0lvOoqS4kH9rzYHgyu560y3ggyd2ICFK7JRb6eTKUciIY65TEo/KP9iQajS+oeHNkHbth14qzWva5/FUw1MmutrWitzE1i3kw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cQoHumL4lMMVAxbBvPdCHXbk3qxw+nQveZ9/zhN9iHY=;
 b=XCRN4kTuM8bO9fx/buagovP57tgz5eyrOd0Q2tXKIVXt0BFgRdsFgbZrw1m0KTsLRFn/ZXZFv5YB0X7YbCX+Uauos/VDk99S+YDa3C0el84JRXai0099HJAhngOnmJhiUQ9NDhScnt8y7HSqT1NGB769yw2dH/YP30NbxaSitvH2Q0mD2eiA73DIOWRMPPw2J3wFQiU9mHCqew7MFjJf2pi3Ohgd8fgFLO5UuNpvvy6jS+yHX66xOwRVj6OZVAAtlZhvRkok6lb7N0U0vAlUuaHSl+R5vRRncz4Sdjzgddd5v5z/UrMa0YvwWG/3cSFILeoVSu545FqzAKsBCbcDZQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cQoHumL4lMMVAxbBvPdCHXbk3qxw+nQveZ9/zhN9iHY=;
 b=dDzNHRAekatz8IgGfJPI6PAR2AFiwtKikGqjOcHyYwAEgrnW9cUotEBDWCPzreP+tSz71qJqjNGmnje8l7i/c/TrIHPC0rIvEDytTc57u4d72PgBtIeQomwy8K3F4WUxmmLzIzIsOazNgm2sCVukRDBPQ4ErJudtN2JTsvi0WSA=
From: Martin Harvey <martin.harvey@citrix.com>
To: "paul@xen.org" <paul@xen.org>, Owen Smith <owen.smith@citrix.com>, Edwin
 Torok <edvin.torok@citrix.com>
CC: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Performance enhancements: Checksum offloads.
Thread-Topic: Performance enhancements: Checksum offloads.
Thread-Index: Adh6UUbHfqbqrYPNRry7tCeUCkLgnw==
Date: Tue, 7 Jun 2022 09:32:39 +0000
Message-ID:
 <MW4PR03MB6347EF78D5255BAB146006789AA59@MW4PR03MB6347.namprd03.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 4a654435-a9c4-4b32-63c2-08da4868aa0f
x-ms-traffictypediagnostic: DM6PR03MB5178:EE_
x-microsoft-antispam-prvs:
 <DM6PR03MB5178377B0E0E566F298728A69AA59@DM6PR03MB5178.namprd03.prod.outlook.com>
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 FeoOLRRWPfujQBD4GqKOPP8ZUDSjlywRnopyed0dkYZDMgLuC9iJ4UKBBoERVkzlq74gXUfD3QNruShNd218X5bA8L4msuYZaIQUZ1vV0TsuNN/X1b2UWW8GaEJNEtAtE1zEb8NJF1xVOs/tJrjjT4QrkpVz0Fy8tSMXsPiidukyjKVYFHown8WKWbea2ngGgh2d9q7oJgABhm8qCClHkZpGROL4o4o5LCIE7VDerX3jFQjIn9W9mnyVQncId1IiEx1P78GZCwSyKd6LLW61UhHr+fYeQ5NVmE+Z5lYM1Hx6SjJ01r7UmpEGAjNvdfECRXXQELPIi1nBmbxwVbrrK7vni467l0v7o4VJA1q09tHhQGetimz7rzDkvlNecyW7POEns48QFtIs8fEkw8Pj1da9enGLwKhzaFsgJZIGBdn7VhLUgnsHw5at5XGnBd7JhuhBEGa4LZfi6zzkSoJscArD2ehrWi2xxJmDO1h6L9K87fHfaMtzihQLJUKB/h2utlYkwUN7y4hrcgjmwT+wqZrfx1MT4y69byf5v2chtaRF/DEz7iukDUTQcjxLCKtiQz4c/IzD9JFstSM4mu00UhzMEwTWf7wE1AUZy8EvidNIR7ljN5Wo5IbsFrmRmZeyfLkv8kZcWhOwXf3rbR797uIcK00qx6AxvSnMrPs0/R1aJ7yCbO1KpAPQNsTS/uTpVrfRl3H4BZTsEFt0mr3ffA==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR03MB6347.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(66446008)(66946007)(83380400001)(6506007)(9686003)(76116006)(4744005)(186003)(122000001)(38100700002)(66556008)(508600001)(44832011)(26005)(38070700005)(55016003)(82960400001)(5660300002)(52536014)(4326008)(110136005)(8936002)(8676002)(316002)(2906002)(66476007)(71200400001)(6636002)(86362001)(33656002)(7696005)(64756008);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?KzVJRjVSMnFqS0ZoK09YZkVoN0tUUkFnYzBFZnREdUdMa2xSc25Pcm5SMVVV?=
 =?utf-8?B?MVRYQTVrU3IzUHRUdFhGZnJvYlJIR01Ic1FuMUM2UFdKM2QxRTYyQ1pYUjRv?=
 =?utf-8?B?bGpUNXpxY1lzcVc1Y2ZlcUJEZVIzY3MvMHIwOVNtUE1XVldnazdPcTBlQU5T?=
 =?utf-8?B?RDhjVjRqQVl4Z3ZOTWFxWmpmY2d5MUxkckUzdE5Oc1Npa0VUdCttR0pGZDJ4?=
 =?utf-8?B?UU9KNWhrU3hmQTgyUE1aRnlkTjBGekpBYW9TNFhKQXpTNyt6NTdiWVRid0pU?=
 =?utf-8?B?VGZqakNPdjZ1QnNLQTlKQXQ2elY5SldFSnNNM05XOE04S0JPTHVEYkFqbjZC?=
 =?utf-8?B?NUVFV1pMZ2E3akFURDlSZ1JrekhUVXprRW8zWTNWVjNlYi9ONDN5d1FYNTFw?=
 =?utf-8?B?QnZWdUFlYUJ6Y1RMLzJNdW1VMWduMTRXMFZyajdnQnZ5WDE1K3dsSVh4elJP?=
 =?utf-8?B?Nmd1YUE3VGE1MmtTZi9ramFKRGthK2VFK3JGbjU3RHB1ejlvSEg0T0YybTJU?=
 =?utf-8?B?SmNmY2pHWFlSMnFDTmRMVFpURnJlUWhFaXZqRWhla25Ib1ZpRisxVVp1ajVS?=
 =?utf-8?B?QlBja3VTZmJXOFk4QXNzWUN0M2tTWXV1bzBlVnZEc1dzUlBtaExYeFNyaVNp?=
 =?utf-8?B?b2w5T08xTDZkcktObU1nS01TSUJjb0FJRHl2VHlJTVB2REdKVTkwZE9EK1Ew?=
 =?utf-8?B?aU9zSkNiWTZYc2N2Sy9KU3ZKamlHcnFqZXExZm1NNUFJOHlueVpFR3d2anNX?=
 =?utf-8?B?Y2xVZWZSRmo2YzU1TW9XbFRTNENHaFM4VDcwR1l2T3Q5Vm54K05ZWnd5WEJ2?=
 =?utf-8?B?blZ6N25hNEVOTVdLQ0JBaHJoWWluMUJKdEM1WFVqL3ZXYUtaQVlxOTlWUVJI?=
 =?utf-8?B?WmtleWxDNm1OSEFRRmhvcVlmOTJyZTBiMDVDRlpMRVZhYStkL3RNQzhtSGFi?=
 =?utf-8?B?MFZhWHhzRi94NzVoL2ZTNkpXZnl3K1U5VzFTUy8wY2J2bmVva0lMTVlTZWRK?=
 =?utf-8?B?RytQYVFQTHA4QStqZ3dMNW04TmFaNHFVWnBUL2hQRTg2TWtpWExxQ2M4eDIx?=
 =?utf-8?B?SWUvUkZiSG1NZUZJc21rb3k5M0cvRDJzYWJIVnNtUldveUlzOU5KV1lmaysz?=
 =?utf-8?B?VTdwYWVLMHNWR3J1dFBHQXRlZW1vVVdONlJmTVBxSlVMK2hLOUFROVB0bHc0?=
 =?utf-8?B?OHQ5TEpUaTBQUFU1OHBQMmpuNTUyY0VVY2hrOTQyZGFGUU1GN2hwK3R4cklW?=
 =?utf-8?B?TzZjWXY5NVJNL1BHWCtXTFgwRUR6ZW0yVDcxSGVpUzNseks5OFg0enF5MS9L?=
 =?utf-8?B?K3JXL2VzNjBnMDE3Y3cwQ0xTKzdiRzg1KzljN21VK0FZVDZpZG5YTU1SQTlB?=
 =?utf-8?B?VUY0dWROWllPNmpJLzVRaDhCbUFZNGRtdWRvUVp2SklCVjN3akZ0NEM4Y2R5?=
 =?utf-8?B?LzlHU3B4RHUvZGdyYXBHaCszTG8wV1N0VGZTdGF3RDQvQ3R5bW9RUVVEc2hR?=
 =?utf-8?B?MklRQTJMc3Y3YVRmazErL3ZyTHJCK2NsOGMrRzlJQlgrRUZ1TmN6WnRWNStt?=
 =?utf-8?B?OVZtS3lEZDlCcTl5VnZvZGd2ZU05RjloUVZBRDE0dzNDMURoR2I0R1dFNTVi?=
 =?utf-8?B?emoxbzEyMkJEcFE5bnAxSHM3N0ROSThucThsaVE2RStkMFNON2RKaEo0YUw5?=
 =?utf-8?B?ZkpxbGJzbC8rTUhxY21pbVJUWExFOW90YldmSGpnampvb0ZGeENjWGZmSmM5?=
 =?utf-8?B?bjQxK0U0NHdINzV3RjAzQkNSMFhnWU9UNnhSbitxSTEzZHNpTmdndXNvK2FU?=
 =?utf-8?B?cmlTNzVPKzg4VmZJeVZUTHI0SmRINkkvSE9DUktHUEdCVTMxUEJFNmQ5ckgy?=
 =?utf-8?B?M0RDRFdpaTJvejQzRGdGN3I0OWZzeUxTamRGUXNBbE1DNFJrYk1wNGVuaE1n?=
 =?utf-8?B?eWJsNGVQc2wxaUhFRGgyancrVkVsdXhUNjROV0pweXkwQXhrOG1ERUdpcmlS?=
 =?utf-8?B?MlN1TVJZWm5kSXJNSDhqa2p4U0Y4UEVkSU1pMXRTZTNNYmlzRFFIbVg4dFpa?=
 =?utf-8?B?eTBpdEp0a3N2K21zUi9hb1JDcWY0L2cvK2JXSFNlV0IrcXJnejkwTG5MaVcz?=
 =?utf-8?B?YS9QbzVNd09wUjcvdlhJUFkxRDZNdTRDZmVGUFZ1M0wzU0dRd1lQaEt5QkFL?=
 =?utf-8?B?enJnRWdhVFdJcyt1RytobW5JNy9hSDJoMjUyV2lNMjVmRm0rWUpKb3BvK3FX?=
 =?utf-8?B?Uk5xV0pJcnFjS20ya2ttdWJEdXlseklvTWlEeEFrTWZuZ3RpTi9PRzhCMG1y?=
 =?utf-8?B?NkYrSTJMenY1R3RhWDI2ZUxLS09Bc2o1cXU3cXZvUDFrQzM1c0tkblBwV2ho?=
 =?utf-8?Q?Blv/dwNSMarUaZXI=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MW4PR03MB6347.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4a654435-a9c4-4b32-63c2-08da4868aa0f
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jun 2022 09:32:39.3124
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Y6LIH45JCeyoDrQsHD5tWuJj/Txf92R5Q131rkJd0OoAfxPGuaDEftbJC8AoAnIhDx1hyL0QMmcNxWKVAW0uebbxgcC1m6Lh2JNqKeAGoRQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5178

U2luY2UgSSd2ZSBiZWVuIHdvcmtpbmcgb24gYSBwZXJmb3JtYW5jZSByZWxhdGVkIHRpY2tldCB0
b2RheSwgYSB0aG91Z2h0IGFib3V0IGZ1dHVyZSBlbmhhbmNlbWVudHM6DQoNCi0gQ2FuIHdlIGRv
IGNoZWNrc3VtIG9mZmxvYWRzIGFsbCB0aGUgd2F5IGZyb20gSC9XIHRvIHRoZSBndWVzdCAtIGlm
IHRoZSBkb20wIGRyaXZlcnMgc3VwcG9ydCB0aGUgb2ZmbG9hZHMsIHRoZW4gdGhlcmUgc2hvdWxk
IGJlIGEgd2F5IHRvIGdldCB0aGUgY2FsY3VsYXRlZCBjaGVja3N1bXMgYWxsIHRoZSB3YXkgdGhy
dSB0byB0aGUgZ3Vlc3Q/DQoNCi0gVGhpcyBjb3VsZCByZXF1aXJlIHNvbWUgdGhvdWdodCwgYW5k
IEknbSBub3Qgc3VyZSB3aGF0IHRoZSB2YXJpb3VzIHNlY3VyaXR5IGltcGxpY2F0aW9ucyBhcmUu
DQoNCi0gUHJldHR5IHN1cmUgaXQgd291bGQgcHJvdmlkZSBhIHVzZWZ1bCBwZXJmb3JtYW5jZSBi
b29zdC4NCg0KTUguDQo=


From win-pv-devel-bounces@lists.xenproject.org Tue Jun 07 10:24:25 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 07 Jun 2022 10:24:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.343128.568290 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1nyWNs-0002fi-KK; Tue, 07 Jun 2022 10:24:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 343128.568290; Tue, 07 Jun 2022 10:24:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1nyWNs-0002fb-HL; Tue, 07 Jun 2022 10:24:24 +0000
Received: by outflank-mailman (input) for mailman id 343128;
 Tue, 07 Jun 2022 10:24:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ShOx=WO=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1nyWNq-0002fV-Tp
 for win-pv-devel@lists.xenproject.org; Tue, 07 Jun 2022 10:24:22 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fe52de20-e64b-11ec-bd2c-47488cf2e6aa;
 Tue, 07 Jun 2022 12:24:22 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id h5so23538716wrb.0
 for <win-pv-devel@lists.xenproject.org>; Tue, 07 Jun 2022 03:24:20 -0700 (PDT)
Received: from [10.7.237.8] (54-240-197-224.amazon.com. [54.240.197.224])
 by smtp.gmail.com with ESMTPSA id
 h12-20020a05600c2cac00b0039749256d74sm24832102wmc.2.2022.06.07.03.24.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 07 Jun 2022 03:24:19 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fe52de20-e64b-11ec-bd2c-47488cf2e6aa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:reply-to:subject
         :content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=DWlfVqV32nb6KOsrHS/ckcyim0cvbxhhqoeC7FIPbQo=;
        b=I59Eoeu+mQb23rE65GmrGGds126U7vqW8csF4JFIeWQCfXow84RfjcvXOfMMyNUmgN
         MI3sL0uXa+4SMgYM/ZlYTfnkrZJRjSWpTG20I/dK693VyboHlMZBtmKj0Kj8SXJp1guZ
         aPhVi+LOao8mngTZic4qoIqq20Abku+hwRpk/5Emj+LRDqP9yPWbDMoZCVqrGW/uT8GZ
         CnfRIft0h993qr0Ry0Nj38XTwCHRlKCdhCLE9R8nelLZpPhlDT95M7L7RxuQPVSqFZwe
         FekGqCWCHHh5y81PpbapVS8DI2jG0L6GX4Am2q1Bu8pPrEjQO7VoFKr9Ygs9Dokyj2ij
         l2GA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:reply-to
         :subject:content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=DWlfVqV32nb6KOsrHS/ckcyim0cvbxhhqoeC7FIPbQo=;
        b=Mdq8XYLw+y+QqfT6lF29M5wenMqDqg9iLjsFgNSsWs9P2TaWW1rjx0W2Kf423q/jQk
         q64R43NFB+T8PYPtzyKht0SLBSgG+vAGn8faOY/w24aH2YqGbhpE2bxabpJ3RWTbFvUD
         ldYA3kEtYWrKCCiOlVXTL43mWE4wPqH+x0i5wsOomvo6apBLFPWBlze8vNcJp2F6J7vf
         3zpZgCtN4SnVmsWDvkWbE/wC3a8CplwKIGMvfAe8TJUzz9CyZ7WfnsJbCKUP3Eac7hx4
         DG8xOOhEja9j28JhyE/sOaoauuC2sOspmZPO3f0ryenArXlaAmkLbzYpL67M4XsSyoXt
         jPoA==
X-Gm-Message-State: AOAM530JFaPIabGDgV6gEXH4cqzzCcoy09GCeUJHvxusc1J2gLRlxqS0
	EY66nr53TyuMmxHPYF8zDqc=
X-Google-Smtp-Source: ABdhPJwNZo5AdeE7ZvU7NfzluseaokKt1dPTCIGsbK1QCO1n+T3I1pRPdKtKioxyLHLGvaIHa4t2Sw==
X-Received: by 2002:a5d:620f:0:b0:20c:c1ba:cf8e with SMTP id y15-20020a5d620f000000b0020cc1bacf8emr26186594wru.426.1654597460142;
        Tue, 07 Jun 2022 03:24:20 -0700 (PDT)
Message-ID: <8c96ea42-c461-cdff-cc18-868effd902d1@gmail.com>
Date: Tue, 7 Jun 2022 11:24:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.10.0
Reply-To: paul@xen.org
Subject: Re: Performance enhancements: Checksum offloads.
Content-Language: en-US
To: Martin Harvey <martin.harvey@citrix.com>, "paul@xen.org" <paul@xen.org>,
 Owen Smith <owen.smith@citrix.com>, Edwin Torok <edvin.torok@citrix.com>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
References: <MW4PR03MB6347EF78D5255BAB146006789AA59@MW4PR03MB6347.namprd03.prod.outlook.com>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <MW4PR03MB6347EF78D5255BAB146006789AA59@MW4PR03MB6347.namprd03.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 07/06/2022 10:32, Martin Harvey wrote:
> Since I've been working on a performance related ticket today, a thought about future enhancements:
> 
> - Can we do checksum offloads all the way from H/W to the guest - if the dom0 drivers support the offloads, then there should be a way to get the calculated checksums all the way thru to the guest?

Absolutely; the netif protocol has support for offloading (see 
NETRXF_data_validated) and you can set the 'Correct TCP/UDP Checksum 
Value' switch to 0 in the XENNET advanced properties if you want to 
avoid checksum recalculation.

The reason checksum recalculation is that validated packets coming from 
netback do not always have the correct checksum. Specifically packets 
from one VM to another VM on the same host may only contain a 
pseudo-header checksum. Also, I recall some NIC drivers zero-ing the 
checksum during validation. Now, you'd expect that when XENNET says to 
the network stack 'all is good with this packet' that nothing further up 
the stack should care about the checksum value however some of the good 
ole Citrix ICA stack (for example) actually does... so that's why we 
have to take the performance hit and fully recalculate. It's all rather 
silly.

   Paul

> 
> - This could require some thought, and I'm not sure what the various security implications are.
> 
> - Pretty sure it would provide a useful performance boost.
> 
> MH.



From win-pv-devel-bounces@lists.xenproject.org Wed Jun 08 09:40:08 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 08 Jun 2022 09:40:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.343470.569241 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1nysAY-0002TT-7o; Wed, 08 Jun 2022 09:40:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 343470.569241; Wed, 08 Jun 2022 09:40: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 1nysAY-0002TM-4P; Wed, 08 Jun 2022 09:40:06 +0000
Received: by outflank-mailman (input) for mailman id 343470;
 Tue, 07 Jun 2022 17:39:30 +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=dqFX=WO=citrix.com=prvs=150071ad3=edvin.torok@srs-se1.protection.inumbo.net>)
 id 1nydAw-0006m1-Ef
 for win-pv-devel@lists.xenproject.org; Tue, 07 Jun 2022 17:39:30 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c635119a-e688-11ec-bd2c-47488cf2e6aa;
 Tue, 07 Jun 2022 19:39:27 +0200 (CEST)
Received: from mail-dm3nam02lp2044.outbound.protection.outlook.com (HELO
 NAM02-DM3-obe.outbound.protection.outlook.com) ([104.47.56.44])
 by ob1.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256;
 07 Jun 2022 13:39:17 -0400
Received: from SJ0PR03MB5888.namprd03.prod.outlook.com (2603:10b6:a03:2d6::7)
 by MW4PR03MB6619.namprd03.prod.outlook.com (2603:10b6:303:12a::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.12; Tue, 7 Jun
 2022 17:39:15 +0000
Received: from SJ0PR03MB5888.namprd03.prod.outlook.com
 ([fe80::b876:40ed:1507:6fea]) by SJ0PR03MB5888.namprd03.prod.outlook.com
 ([fe80::b876:40ed:1507:6fea%2]) with mapi id 15.20.5314.019; Tue, 7 Jun 2022
 17:39:15 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c635119a-e688-11ec-bd2c-47488cf2e6aa
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1654623567;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to:content-id:content-transfer-encoding:
   mime-version;
  bh=37jS/M4TFzdiClWtDCqhJiemKnkO3ZHR59/C7TmgB/w=;
  b=OLrly0hq/sWl3ip1ZNKS5xtVXEb2HHrMVa6doI0fTCFrp9tbKPODJvcv
   6eVauPVt+d80aZyyBrBZj+8MV7LD+pZKNGkFEi/Y3RiqL4SsMKwWOpX2q
   QPxyX59L71rJrT3tyr4/v58LH1WnQnbNGOBGjMs772VW/Hf/SgMUaEBmn
   M=;
X-IronPort-RemoteIP: 104.47.56.44
X-IronPort-MID: 72419097
X-IronPort-Reputation: None
X-IronPort-Listener: OutboundMail
X-IronPort-SenderGroup: RELAY_O365
X-IronPort-MailFlowPolicy: $RELAYED
IronPort-Data: A9a23:4hUeuKMn9JBzrOPvrR3ElsFynXyQoLVcMsEvi/4bfWQNrUp302YFz
 WZKCm2GP66JZjekKtsga9vi9EJQsMOEytZqTAto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdleF+lH1dOKJQUBUjclkfJKlYAL/En03FFYMpBsJ00o5wbZn2tEw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Zi
 84W6LzrTiwVfajoiMFDY0N1KyZvIvgTkFPHCSDXXc276WTjKyGp79A1SUY8MMsf5/p9BnxI+
 boAMjcRYxufhuWwhrWmVu1rgcdlJ87uVG8dkig4kXeFUrB7H9afH80m5vcBtNs0rs1CA/fYI
 dYecz1sRB/BfwdOKhEcD5dWcOKA2SOjKmwA+Q39Sawfujb9kVZc9ZHWNpn1U//Udfl/rGSEn
 zeTl4j+KlRAXDCF8hKd+2+orv/Cm2X8Qo16PKK58Ltynhify3IeDDUSVECnur+ph0imQdVdJ
 kcIvC00osAPGFeDS9D8W1i0pSWCtxtEAd5ISbVmtEeK17be5BufCi4cVDldZdc6tcgwAzs3y
 luOmNCvDjtq2FGIdU+gGn6vhWvaEUAowaUqPEfokSNtDwHfnbwO
IronPort-HdrOrdr: A9a23:YnmZqqw50OgU30n2WFMJKrPxdegkLtp133Aq2lEZdPULSKGlfp
 GV9sjziyWetN9IYgBapTiBUJPwIk81bfZOkMUs1MSZLXPbUQyTXc5fBOrZsnDd8kjFmtK1up
 0QFJSWZOeQMbE+t7eD3ODaKadv/DDkytHPuQ629R4EIm9XguNbnn5E422gYy9LrXx9dP4E/e
 2nl696TlSbGUg/X4CePD0oTuLDr9rEmNbNehgdHSMq7wGIkHeB9KP6OwLw5GZfbxp/hZMZtU
 TVmQ3w4auu99uhzAXH6mPV55NK3PP819p4AtCWgMR9EESutu/oXvUiZ1SxhkFwnAid0idsrD
 AKmWZnAy1H0QKVQohym2q15+Cv6kd315ao8y7kvZKqm72EeNt9MbsBuWsRSGqm12Mw+N57y6
 5FxGSfqt5eCg7Bhj3045zSWwhtjVfcmwtrrQaC50YvLrf2RYUh27D3xnklWavo3RiKmrwPAa
 1rFoXR9fxWeVSVYzTQuXRu2sWlWjA2Eg2dSkYPt8SJ23wO9UoJhXcw1YgahDMN5Zg9Q55L66
 DNNblpjqhHSosTYbhmDOkMTMOrAijGQA7KMmiVPVP7fZt3cE7lutry+vE49euqcJsHwN87n4
 nASkpRsSood0fnGaS1rep2G9D2MRGAtBjWu7FjDsJCy8zBrZLQQF6+YUFrlde8qPMCBcCeU+
 qvOfttcoreEVc=
X-IronPort-AV: E=Sophos;i="5.91,284,1647316800"; 
   d="scan'208";a="72419097"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Jc+V214QIgkUSP0snuEGltq1RoJICnQoHR14Bm04wH3RHdVVHlY1aAC3KFBMeVWM9x0bB3uV+9L3uIHb117AwM3trI2rpKXWeGDd3ssJDzTRqt+DTgS1qBBhBA57Yi+KwYsfizte6OWoOco49xRPuZK6OHqKDQMXLzc4tJyjGCLOio/QVrHIF8xicjcuup3EKslgmlLK2R98BzbV1H/H1lZvz4fHbP5nfloP+QZsWP7uNMsOs81OmioDdrJj4tzw8EJYIBjV+G4E2cPrfLQMfbuyPvMaexJrkiPKmDso7aHEnhW0neMuinCmG1HgjlzeOMbsfMg1J7dQ5Q8ukhU3Qg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=67ck2rkI9AGcf8ZwVC870F7XZERYpH0Je0t3VQC5Q/A=;
 b=mEIXmUqB1+DpUHSjeaKjZu+0Cnsz4luE891tZ47K3KPznrEPRoAuJ3XVtcNTvPhe4dN4eSU5oAT6lpBNT7jVNMqcORnef/xSlsePOM5E+1achpGxC6vSlnqeE7FigqjuiyVagObPnh9r2Al0gQXn6dQZh5QiHykFusirWIjuHQ2h0CWb5UZ6gHbWJf/q7Gmai+9HTfYpZWduQ01PLOcNN9bkaLrXlIIrNlyONMbbhzon3Ms9Ywc+9ZVijlqUgZWw2OAtNpaIRdb2WZnXRCdRHK45dONu0wXzPhx07gyvl2r/l0BZEQeYBiyQwRP8Wv/C/Wkdtte2go5RQ2iF278+OQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=67ck2rkI9AGcf8ZwVC870F7XZERYpH0Je0t3VQC5Q/A=;
 b=oYcgARFLsyJ5O4WT7NAzXVE8vEqvyuZ6o7LSLuu40Mb4J4YnH5h/r0Bvn1uz/MAObfLkW471k9MlURGeLpgnSTdd2Tw5rocPcqDtV+rO2G7xAFZjksRsAIQOf236mD4FfamVQqN6J8E2KbGuR3LQHX5S/HSzzak6zcZ4JCRIMXs=
From: Edwin Torok <edvin.torok@citrix.com>
To: "paul@xen.org" <paul@xen.org>
CC: Martin Harvey <martin.harvey@citrix.com>, Owen Smith
	<owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Subject: Re: Performance enhancements: Checksum offloads.
Thread-Topic: Performance enhancements: Checksum offloads.
Thread-Index: Adh6UUbHfqbqrYPNRry7tCeUCkLgnwAB3fEAAA8wmwA=
Date: Tue, 7 Jun 2022 17:39:15 +0000
Message-ID: <D5415843-A2DB-4F5D-BEE3-3AE458019B48@citrix.com>
References:
 <MW4PR03MB6347EF78D5255BAB146006789AA59@MW4PR03MB6347.namprd03.prod.outlook.com>
 <8c96ea42-c461-cdff-cc18-868effd902d1@gmail.com>
In-Reply-To: <8c96ea42-c461-cdff-cc18-868effd902d1@gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3696.100.31)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: dda4d95f-3cf8-48b3-eb48-08da48aca415
x-ms-traffictypediagnostic: MW4PR03MB6619:EE_
x-microsoft-antispam-prvs:
 <MW4PR03MB6619A29667F7AFFF700E4BFD9BA59@MW4PR03MB6619.namprd03.prod.outlook.com>
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 l4v0lEZklNes43YCkf9g7zb2HpILtN9LP0S58/6BTEGsraLiGDlyXaFab1ncnpkVQs1qv45QbklhBcSplgaGjca5rCvMiHMhdgD6vZHJtAHmWaEIhH0TiB4e72KVYFTHjXu9wT85s58r96Z2KuGhxMzKZ+dr+JuTPorxBa68qrHxlx2KMeBSgnS1MIXcblENpsQ57sSDOCKl13t1o2OEiXnEDgz4p6+Iacz1BNBpWwXaN1dxfFSdjRQLPKAioIkUZ+RMihDD+6Pkgxj81Ak+gVjGD2LtUM4YeN+WioHfelyUou0xsuNCOlL6WaZOPpw3Csix2+tbXdp554Qtm6EBN1ZzGAoltD2smUiBOTbQss0J+XDHwEkyXgCm7SicejncGdUJK85Mw/2r2cjuOL1aJNqwAyVnZfFiIwrBxQiu3S+BpNiDenMnuoa+zEyaiixKnFklbzO6Cm63tlDUDBgvPIZTRbQev7r1ueLJxEe3FZdN2a4AhzP7xD0gnKgNRt2wC/GN9EguS7KuRRJ03A1H+H1ubLlmzTNX6X02G7fYHtDitOtmZ1GLYla29Cb0eoRdcixXdbXpg1dGAbUQ21BidW2OtX9xQ3ZXNVg05v/M0sYK47gKrKSnRL5nR0EBxW/2UZLzZtjvT/hc1qZSZU7wn25qr8cX4l76D76AwagtdM0jLX9gkMARHLbwJyyKI1GioL3C7uYyQcWqWHsupm4BrkesfoV8oHN+oEb9YZL65LMxAuoGu+JkEhgCLyX7QAIu
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR03MB5888.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(76116006)(66476007)(66446008)(86362001)(6506007)(64756008)(26005)(4326008)(8676002)(66556008)(66946007)(53546011)(91956017)(33656002)(83380400001)(186003)(2906002)(8936002)(5660300002)(6512007)(2616005)(38100700002)(38070700005)(36756003)(508600001)(6486002)(6916009)(54906003)(316002)(122000001)(71200400001)(82960400001)(45980500001);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?cuyVT4vRKtlzsIQtfMWZWK585RHiBAeyXVI3n5rAES+1w57ZZZJWqUgtGoWR?=
 =?us-ascii?Q?m9wolbLgFyY3YxtBTrnmKh2GIHSYZWwI30R1SkUZi9UB4XZV3SHmVqzcl5hc?=
 =?us-ascii?Q?S1CtiDpY8XT4EeaLZilG1kMhFRZlqB/rn+nBCNFj49VDiB3y/QBWP1lJ9vev?=
 =?us-ascii?Q?yOylnHWz/U+l6IWUXSA141KVHi6Pnaz0+JHbeX/oq+xHSw9Omx/6A1IxZF3J?=
 =?us-ascii?Q?9qdKvHdiCEg6TzkQqVfqOWWK9p955Z3kohNFSMd8nzphrFp+fqg3FdVIJfHH?=
 =?us-ascii?Q?DFsxMjh6Jyh+Ng+mefHndETlZwZxhdZhAv4yVwqwQvcHhd7xT/BtbvduJeZW?=
 =?us-ascii?Q?Xs9qFidejeOynVgLGvhIZuZ9AsxDrkZ9UGp9FlMo8bYJhCtwla17Ph14+SU3?=
 =?us-ascii?Q?l5CXbTpS3EL80Bwn6bfscdnUecAnxaxjJKYsLJhMzwnLSUH2GeFIi09Rxqwg?=
 =?us-ascii?Q?Sh0vp9zsv1Hr26VRiXmS4ilDPvb2v7Kl+10g2f9e5BmhiPsIBejWpUyFpRPx?=
 =?us-ascii?Q?Mb2ZWTGzLm2E46HCmVi5uglPYdE7jk6JZrDhVx4KT+PtaVVt5pNT660dZTqQ?=
 =?us-ascii?Q?XrXtUPvv3vmBQyIL7MdS7ZBTEZINNxJgrFDO3M6mSj84/Uhj2lljZkCdnjdN?=
 =?us-ascii?Q?+Twlws/uDZlMPu8vBnSqZT5qMGnon+qOY1V+BehIncDcY+e2eChB8ztRNnl5?=
 =?us-ascii?Q?7WkIZo9JxJhvTwaQANCHQqx/A5kZrhqmEzW8EOZHvrKiT/NiDjTMO9eIFbIU?=
 =?us-ascii?Q?kBc8rsrg3rcCFNnOS3NeJdNCvYpHMenFS6D0YZYIo4kBluDTUYxg4uHawgCE?=
 =?us-ascii?Q?ZAdKKZSaST8V+YXpxwGIt1ApovcW9eiorE03gd/lCBJC/W9ROvySbhqnaEd9?=
 =?us-ascii?Q?AwIeq9hv+jyDJAmClNLVplJcLhtuC7qunJZoU/fZqnw3bKE6eRxZkKfhWz0Q?=
 =?us-ascii?Q?tLmrPyIq+4YjHZwX9WG7JjdnL0eVk6K2szj7cNVlBACxVWV2CqmM5mP81G8L?=
 =?us-ascii?Q?ebuK2BgiMoAaACvIhRLFaJEBS8/TQgtOS0+hpNzlcd6s08KpfA9LGcmsI9DI?=
 =?us-ascii?Q?d8yBHhwlRJwelAsjYaOELdcNIgA+l/6AZCQlo563/eblAF2QyGlNG6uKmShp?=
 =?us-ascii?Q?eGQqHZMkKBUI7DzLGvtkw8pH2wV1NbG5HYdEzfFVE9fDROHXibgC5WBha24Z?=
 =?us-ascii?Q?FOgdSRfhLZX/0+Vzmv04p+HHyxYXT3K6+H9xW0ap81qC4ZvNTlmXCJ+A+YkM?=
 =?us-ascii?Q?H1fjwSyAUUuQGJtwMyvOQNp39QrQDVYnToJKKItaKxAutj/MV6ra9yrWfP/Q?=
 =?us-ascii?Q?t8VF/WO4vjWbI05TjkxUDWqY0ETBwz3CRYPSh7qeb5gABuxKbykK7aLVF2je?=
 =?us-ascii?Q?pFeUE3hYOqHLKt24ajsCSMVOLACC0eswsUxH1XJ5Ptw0XWz3pEaiHdUKHP+I?=
 =?us-ascii?Q?qVMxz5meg6Ew4ii96LxyoW+7vNwY7sDE3PK9Q/2cHt5MmMgLwFVXZx7YWNrU?=
 =?us-ascii?Q?0PCKNEb7NwgIj3NaznvHctrXBUgrKmhdRtR4ZiLd9VXBdBVLQWWcGxUHDzpl?=
 =?us-ascii?Q?83jiyTSdw4eRSqIM9eovhspWRTCL3TMsfnHdbdlEkdpK0b/YllAkidcwBijp?=
 =?us-ascii?Q?4/w/Hp6bAotsita+ZGPiyE0mdRG1+Q3lUlRD4UM4q8hhpAgTHeMXsr4vbTZc?=
 =?us-ascii?Q?efiv3ka65778sysJJJSu/SmdNhCqKcLm9MaJnzOmVPaJcKFMvSST2EOuRqbS?=
 =?us-ascii?Q?4oS0gTTOIS+LJcU39BGK3uONMKUhKnU=3D?=
Content-Type: text/plain; charset="us-ascii"
Content-ID: <A0F05AF1A801BA48A226EE5202AB5B7C@namprd03.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SJ0PR03MB5888.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dda4d95f-3cf8-48b3-eb48-08da48aca415
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jun 2022 17:39:15.0664
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: EjDEdNx/64FUasv6vi6BXMjrzv4jgIJ9uEQ4L951CWwo1ZbCINBu5ZHxn2EIHK9kt/J7vwwQWmF18ntx3DOXUw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6619



> On 7 Jun 2022, at 11:24, Durrant, Paul <xadimgnik@gmail.com> wrote:
>=20
> [CAUTION - EXTERNAL EMAIL] DO NOT reply, click links, or open attachments=
 unless you have verified the sender and know the content is safe.
>=20
> On 07/06/2022 10:32, Martin Harvey wrote:
>> Since I've been working on a performance related ticket today, a thought=
 about future enhancements:
>> - Can we do checksum offloads all the way from H/W to the guest - if the=
 dom0 drivers support the offloads, then there should be a way to get the c=
alculated checksums all the way thru to the guest?
>=20
> Absolutely; the netif protocol has support for offloading (see NETRXF_dat=
a_validated) and you can set the 'Correct TCP/UDP Checksum Value' switch to=
 0 in the XENNET advanced properties if you want to avoid checksum recalcul=
ation.

Thanks, we should probably do some internal benchmarks with that setting. A=
t least users with well-behaved applications could chose to avoid the perf =
hit.

Last time I looked at this there was some extra checksum recalculation goin=
g on when splitting up large receive offloaded packets (which are IIRC arou=
nd ~64k in size, much larger than even jumbo frames) and those had to get a=
 checksum from somewhere. If we can tell it "its fine, it has a valid check=
sum" without actually computing one then we can avoid all that, I assume th=
e above setting will avoid recomputation in this case too?

>=20
> The reason checksum recalculation is that validated packets coming from n=
etback do not always have the correct checksum. Specifically packets from o=
ne VM to another VM on the same host may only contain a pseudo-header check=
sum. Also, I recall some NIC drivers zero-ing the checksum during validatio=
n. Now, you'd expect that when XENNET says to the network stack 'all is goo=
d with this packet' that nothing further up the stack should care about the=
 checksum value however some of the good ole Citrix ICA stack (for example)=
 actually does... so that's why we have to take the performance hit and ful=
ly recalculate. It's all rather silly.

That would probably be broken when run on bare metal with NIC drivers that =
support hardware offload too though?
Perhaps there could be a setting to zero the checksum field when its comput=
ation is offloaded to more easily detect these cases, at least as something=
 to use during debugging / automated testing?

Best regards,
--Edwin

>=20
>  Paul
>=20
>> - This could require some thought, and I'm not sure what the various sec=
urity implications are.
>> - Pretty sure it would provide a useful performance boost.
>> MH.
>=20



From win-pv-devel-bounces@lists.xenproject.org Thu Jun 09 08:32:44 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 09 Jun 2022 08:32:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.344788.570399 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1nzDat-0002uW-Dv; Thu, 09 Jun 2022 08:32:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 344788.570399; Thu, 09 Jun 2022 08:32:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1nzDat-0002uP-Ap; Thu, 09 Jun 2022 08:32:43 +0000
Received: by outflank-mailman (input) for mailman id 344788;
 Thu, 09 Jun 2022 08:32:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=D07B=WQ=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1nzDas-0002uF-1h
 for win-pv-devel@lists.xenproject.org; Thu, 09 Jun 2022 08:32:42 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b9182e0e-e7ce-11ec-b605-df0040e90b76;
 Thu, 09 Jun 2022 10:32:41 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id d14so22360534wra.10
 for <win-pv-devel@lists.xenproject.org>; Thu, 09 Jun 2022 01:32:39 -0700 (PDT)
Received: from [10.7.237.8] (54-240-197-224.amazon.com. [54.240.197.224])
 by smtp.gmail.com with ESMTPSA id
 n187-20020a1c27c4000000b0039c151298b7sm30353752wmn.10.2022.06.09.01.32.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 09 Jun 2022 01:32:38 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b9182e0e-e7ce-11ec-b605-df0040e90b76
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:reply-to:subject
         :content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=9XIDO3LQNlD/OZyvPCdcujNlLwoPKqARCts3h8FTk9Q=;
        b=CiLT7DaqHVKHkv6M47x30u/SBofZvQxQfetGH3RiliY76UmH3zhbasNVtXqsVTbs5C
         LMUd4U+roYuKkzFvHVWQKQUeV6sA2XPcuGO0NoECSNXO8NrVgcQ3IRLne+wjallVy+R/
         fH7Vby82zwWOldVitPsK11MRriWVLEqzzRRBvpbC4RP1SPekAFJB6zscHbOBEbNRRyjk
         1RUl8DgZ8f+Bt+oTwbxQreWj+DkyiOgTU6HP6EJH0za8rX8zN/YTRC7LYUxu/JbTBrfq
         BYWo9PfJYim5duNL+BTHXD29E8S0Uu5RmqINwmoxZne2aeOLm6w0kJFWFdB3e2Jr3lwX
         jU/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:reply-to
         :subject:content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=9XIDO3LQNlD/OZyvPCdcujNlLwoPKqARCts3h8FTk9Q=;
        b=x1sqvcAKI46oRFCgUBqMdUbYHPgCpJQHS4jfGTESe501ctoPGwKzpabz0h5JFucBTy
         4LvDTdNwJnfbPjEi2YD+KOQ0Ue2OXZrYaPo4CQSzkRE0HCuAwWegXJgPfjwBR6ZMBykn
         0cZTXwxiTahATdZLYkn21596CADtsu37n08d84gsN0DSoYnH9600rR2AsR1Wa+Hj2/d0
         p6leY8qNVBQEamNWUY6Q/0w3ptJZIjPdnc/rqoCBij9tzXl6k11IioKKNCc4leVhNLkv
         LvpuvgF/fzRRTh3ykx4qrtZ96qCK9z506p72dBWdqxR+ISCe4mhN6HiwaV7VYFmv5abu
         YhoQ==
X-Gm-Message-State: AOAM5331uu3F1TshySh8adExCHCgOHjhAdaYkJSNewM7+K1VgGIMK2tz
	FakHkJVrFql0kpAQsHKiYqQ=
X-Google-Smtp-Source: ABdhPJw82KGD4wUjSgHOJrcASNMkcxDJnUTlfJj0V6RkEF282kFGTh2LfppCu16I/d1TA9I2H6bLrA==
X-Received: by 2002:a5d:6583:0:b0:212:1125:1442 with SMTP id q3-20020a5d6583000000b0021211251442mr38263113wru.45.1654763559116;
        Thu, 09 Jun 2022 01:32:39 -0700 (PDT)
Message-ID: <75abd1d7-16ca-441c-afcc-9a6496b84a5d@gmail.com>
Date: Thu, 9 Jun 2022 09:32:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.10.0
Reply-To: paul@xen.org
Subject: Re: Performance enhancements: Checksum offloads.
Content-Language: en-US
To: Edwin Torok <edvin.torok@citrix.com>, "paul@xen.org" <paul@xen.org>
Cc: Martin Harvey <martin.harvey@citrix.com>,
 Owen Smith <owen.smith@citrix.com>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
References: <MW4PR03MB6347EF78D5255BAB146006789AA59@MW4PR03MB6347.namprd03.prod.outlook.com>
 <8c96ea42-c461-cdff-cc18-868effd902d1@gmail.com>
 <D5415843-A2DB-4F5D-BEE3-3AE458019B48@citrix.com>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <D5415843-A2DB-4F5D-BEE3-3AE458019B48@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 07/06/2022 18:39, Edwin Torok wrote:
> 
>> On 7 Jun 2022, at 11:24, Durrant, Paul <xadimgnik@gmail.com> wrote:
>>
>> [CAUTION - EXTERNAL EMAIL] DO NOT reply, click links, or open attachments unless you have verified the sender and know the content is safe.
>>
>> On 07/06/2022 10:32, Martin Harvey wrote:
>>> Since I've been working on a performance related ticket today, a thought about future enhancements:
>>> - Can we do checksum offloads all the way from H/W to the guest - if the dom0 drivers support the offloads, then there should be a way to get the calculated checksums all the way thru to the guest?
>>
>> Absolutely; the netif protocol has support for offloading (see NETRXF_data_validated) and you can set the 'Correct TCP/UDP Checksum Value' switch to 0 in the XENNET advanced properties if you want to avoid checksum recalculation.
> 
> Thanks, we should probably do some internal benchmarks with that setting. At least users with well-behaved applications could chose to avoid the perf hit.

Yes, benchmarking should generally be done with that setting turned off.
> 
> Last time I looked at this there was some extra checksum recalculation going on when splitting up large receive offloaded packets (which are IIRC around ~64k in size, much larger than even jumbo frames) and those had to get a checksum from somewhere. If we can tell it "its fine, it has a valid checksum" without actually computing one then we can avoid all that, I assume the above setting will avoid recomputation in this case too?

Yes indeed. There should be no need to re-calculate for LRO if the 
higher layers of the stack are sane.

> 
>>
>> The reason checksum recalculation is that validated packets coming from netback do not always have the correct checksum. Specifically packets from one VM to another VM on the same host may only contain a pseudo-header checksum. Also, I recall some NIC drivers zero-ing the checksum during validation. Now, you'd expect that when XENNET says to the network stack 'all is good with this packet' that nothing further up the stack should care about the checksum value however some of the good ole Citrix ICA stack (for example) actually does... so that's why we have to take the performance hit and fully recalculate. It's all rather silly.
> 
> That would probably be broken when run on bare metal with NIC drivers that support hardware offload too though?

Yes, and I wouldn't mind betting that ICA support folks advise customers 
to turn off checksum offload in some environments.

> Perhaps there could be a setting to zero the checksum field when its computation is offloaded to more easily detect these cases, at least as something to use during debugging / automated testing?

I think I did something like that in the past, before adding the 
recalculation code because we had support escalations where e.g. a dom0 
NIC driver update was suddenly causing all virtual desktop instances on 
the host to start to fail... but it only affected hosts with a 
particular vendor's NIC.

Cheers,

   Paul


From win-pv-devel-bounces@lists.xenproject.org Fri Jun 10 12:26:59 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 10 Jun 2022 12:26:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.346417.572216 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1nzdj5-0004wf-9t; Fri, 10 Jun 2022 12:26:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 346417.572216; Fri, 10 Jun 2022 12:26: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 1nzdj5-0004wY-7F; Fri, 10 Jun 2022 12:26:55 +0000
Received: by outflank-mailman (input) for mailman id 346417;
 Fri, 10 Jun 2022 12:26:54 +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=maTa=WR=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1nzdj4-0004wS-AI
 for win-pv-devel@lists.xenproject.org; Fri, 10 Jun 2022 12:26:54 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9a7e0cbf-e8b8-11ec-8179-c7c2a468b362;
 Fri, 10 Jun 2022 14:26:53 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 i131-20020a1c3b89000000b0039c6fd897b4so582042wma.4
 for <win-pv-devel@lists.xenproject.org>; Fri, 10 Jun 2022 05:26:50 -0700 (PDT)
Received: from [10.7.237.8] (54-240-197-224.amazon.com. [54.240.197.224])
 by smtp.gmail.com with ESMTPSA id
 o12-20020a5d58cc000000b0020c6b78eb5asm27699556wrf.68.2022.06.10.05.26.49
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 10 Jun 2022 05:26:49 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a7e0cbf-e8b8-11ec-8179-c7c2a468b362
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:reply-to:subject
         :content-language:to:references:from:in-reply-to
         :content-transfer-encoding;
        bh=zPOPW5d6ImeBZYYCIolPPPqWNtajlIhj31T1FbARutE=;
        b=deKUgBtKg30gad4im/9kJhCYJeHM7KizXDr9SaqRs+/DBO9tc3qlEDaP2rzC5OSYzn
         gy8bbAN5YlOj5M/HKFY/itJCcf/mxTtzUeNJGRZ8hODyZ83fF6Y2qd0DghNzHtpDpPlz
         KiCHi/b/+f29K/TbDD2IKDuvjznCB30/0vsIW+FeeDKYykW4kVP/wtpTTBBkHHvKYD0b
         vOhx7ZppNc/H72DWuBfDInb7wb5p+FP7XiOeLKJTp3I7wJLp8D0+hkAVkkU6iBNPyROI
         Vr/v204Yvn/ddwjD5y3IqPjpaBDPRZyxjB7bixnF1P4nEH9huZTBPKS5lTac1njaZ7K6
         4YoQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:reply-to
         :subject:content-language:to:references:from:in-reply-to
         :content-transfer-encoding;
        bh=zPOPW5d6ImeBZYYCIolPPPqWNtajlIhj31T1FbARutE=;
        b=A7Kgq5XRhyqsmf+gQLs1ttXd6WX+uRg6ClpW3NrSdZZRSuURlhkvrq7R6cOWnvLNyv
         hftrAKFtajGOkoaC6tnKxWc/jf1hlOf+k7JI78Ix4kuJ/PDPdz5lhZy5lvP3jXZseJ9+
         cvkQvE2831mrIJhA5S8h+qp0zzfdSym+gxFqxkDpteFeMK9vIr53w69UWZPQDRgzHkWE
         3rmyRHxQEtJq2OMxnLc5ErP6QMvHaJsNtEBymhFlqN+gpM6pKtxZHKrqBrtpbdIhDCO3
         Q4ULS2Txnen9TPoVP5k+RQbTe9fqJ0GUFq/VFr/61V26a/vrvWgLzN9dy3PiCf95UD55
         XJww==
X-Gm-Message-State: AOAM532Cf8N6w4KQkwnbEp5u5GwkJIUIztWazMs80gAoGksBixhJ7q5V
	NZHAriSf0H2mqrQqGPL/fEKn5xwTRXIWug==
X-Google-Smtp-Source: ABdhPJyAC4WvUtdWbqznBNcHfbf2k6OrAjk6Q9LIJjo9ii409+Cp/OjN4wURz0k2R4PP7TYb3ctnvg==
X-Received: by 2002:a05:600c:1f12:b0:397:a959:a88b with SMTP id bd18-20020a05600c1f1200b00397a959a88bmr8538915wmb.17.1654864010243;
        Fri, 10 Jun 2022 05:26:50 -0700 (PDT)
Message-ID: <08c786a0-08f1-56f9-1f06-bc653158e1e2@gmail.com>
Date: Fri, 10 Jun 2022 13:26:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.10.0
Reply-To: paul@xen.org
Subject: Re: [PATCH 2/2] Rate limit per DPC using both xenvif and xennet.
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20220520141416.833-1-Martin.Harvey@citrix.com>
 <20220520141416.833-2-Martin.Harvey@citrix.com>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <20220520141416.833-2-Martin.Harvey@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 20/05/2022 15:14, Martin Harvey wrote:
> Further development of rate limiting code, whereby both xenvif
> and xennet co-operate across the VIF interface to decide how
> many packets to push up the stack. This allows for the situation
> where NDIS could provide information at upstream push time about
> how many more packets it is prepared to accept in this DPC.
> 
> Signed-off-by: Martin Harvey <martin.harvey@citrix.com>

I've looked at this a bit and umm-ed and ah-ed and I think I'd like the 
change from varargs to a struct in a separate patch. It'll mean burning 
a version number but I still think it would be cleaner; I'll work on 
splitting it up.

   Paul


From win-pv-devel-bounces@lists.xenproject.org Fri Jun 10 12:53:29 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 10 Jun 2022 12:53:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.346427.572227 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1nze8k-0008Vu-9l; Fri, 10 Jun 2022 12:53:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 346427.572227; Fri, 10 Jun 2022 12:53:26 +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 1nze8k-0008Vn-6d; Fri, 10 Jun 2022 12:53:26 +0000
Received: by outflank-mailman (input) for mailman id 346427;
 Fri, 10 Jun 2022 12:53:24 +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=wm+0=WR=citrix.com=prvs=153fe8227=owen.smith@srs-se1.protection.inumbo.net>)
 id 1nze8i-0008Vh-PA
 for win-pv-devel@lists.xenproject.org; Fri, 10 Jun 2022 12:53:24 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4daa81ef-e8bc-11ec-bd2c-47488cf2e6aa;
 Fri, 10 Jun 2022 14:53:22 +0200 (CEST)
Received: from mail-mw2nam12lp2047.outbound.protection.outlook.com (HELO
 NAM12-MW2-obe.outbound.protection.outlook.com) ([104.47.66.47])
 by ob1.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256;
 10 Jun 2022 08:52:53 -0400
Received: from DS7PR03MB5477.namprd03.prod.outlook.com (2603:10b6:5:2c4::17)
 by BN9PR03MB6202.namprd03.prod.outlook.com (2603:10b6:408:11f::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.13; Fri, 10 Jun
 2022 12:52:51 +0000
Received: from DS7PR03MB5477.namprd03.prod.outlook.com
 ([fe80::8409:e46c:3994:d082]) by DS7PR03MB5477.namprd03.prod.outlook.com
 ([fe80::8409:e46c:3994:d082%4]) with mapi id 15.20.5332.014; Fri, 10 Jun 2022
 12:52:51 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4daa81ef-e8bc-11ec-bd2c-47488cf2e6aa
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1654865602;
  h=from:to:subject:date:message-id:references:in-reply-to:
   content-transfer-encoding:mime-version;
  bh=1y7TqiUUFu8EfqRKihDR5UkyDnErrWVh+3zjZuIghVI=;
  b=RtscXmiq9Q6vG0cC62c4W+DjZJ3V0VgZ2qPi16GQpvL3UvrgKpftN8t5
   dPuYePoYhywzLyOCYuOJ3ldac/45dHpKcYaf7EqA+1XsiZY4u8mm07+Wc
   GWkl9dM+vDFibSlbb2GD2rrkNZy+IPlNi/sXa+1Afo4YicGXwSLO5HXbJ
   8=;
X-IronPort-RemoteIP: 104.47.66.47
X-IronPort-MID: 75869849
X-IronPort-Reputation: None
X-IronPort-Listener: OutboundMail
X-IronPort-SenderGroup: RELAY_O365
X-IronPort-MailFlowPolicy: $RELAYED
IronPort-Data: A9a23:t97eTKpdknJkzoDzXYmbPF3swZFeBmJ5ZBIvgKrLsJaIsI4StFCzt
 garIBmAPP+LMWr8L490at7i80gHvZTUyYcwSlZv/HwxFHhE95uZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlVEliefQAOCU5NfsYkidfyc9IMsaoU8lyrdRbrJA24DjWVvT4
 Iuq+aUzBXf+s9JKGjNMg068gEsHUMTa4Fv0aXRnOJinFHeH/5UkJMp3yZOZdhMUcaENdgKOf
 M7RzanRw4/s10xF5uVJMFrMWhZirrb6ZWBig5fNMkSoqkAqSicais7XOBeAAKv+Zvrgc91Zk
 b1wWZKMpQgBebLTvbQkAx5iSh4gFK9douLLB1vlrpnGp6HGWyOEL/RGKmgTZNdd39ktRGZE+
 LofNSwHaQ2Fi6Su2rWnR+Jwh8Mlas72IIcYvXImxjbcZRokacmbH+OWupkGgnFs2aiiHt6HD
 yYdQT1wYRKGeBhOJlc/A5Mihua4wHL4dlW0rXrK+PppsjiPnWSd1pDfEdHRZf+xGf93m028t
 n3n3mnHOhsVYYn3JT2ttyjEavX0tTvyRYY6BLC+sPlwjzW72W0VTQUIEFe2v/S9okq/QM5Eb
 VwZ/DI0qqo//1DtScPyNyBUu1aBtx8YHt9PSesz7VjXzrKOu1rGQG8ZUjRGddoq8tcsQiAn3
 UOImNWvAiFztLqSSjSW8bL8QS6OBBX55FQqPUcsJTbpKfG6+OnfUjqnog5fLZOI
IronPort-HdrOrdr: A9a23:4zIuaKsRKEGYQiB9gDHFo99Z7skCwoMji2hC6mlwRA09TyXGra
 2TdaUgvyMc1gx7ZJh5o6H5BEDyewKmyXcT2/haAV7CZnishILMFu1fBOTZslnd8kHFl9K1kJ
 0QCpSWa+eAQGSS7/yKhzVQeuxIqLbozEnrv5a5854Hd3AIV0gU1XYdNu/tKDwVeOApP/oEPa
 vZwvACiyureHwRYMj+LGICRfL/q9rCk4+jSQIaBjY8gTP+wg+A2frfKVy1zx0eWzRAzfMJ6m
 7eiTH04a2lrrWS1gLc7WnO9J5b8eGRhOerRfb8y/T9GA+cyTpAV74RGYFqewpF5d1H3Wxa0O
 UkZS1Qe/ibpUmhOV1d6iGdoTUImAxelkMKj2XozUcL6PaJOA4SGo5Pg5lUfQDe7FdltNZg0L
 hT12bcrJZPCwjc9R6NkeQgeisa4nZcm0BS5tL7TkYvIbc2eftUt8gS7UlVGJAPEGbz750mCv
 BnCIXZ6OxNeV2XYnjFti03qebcFkgbD1ODWAwPq8aV2z9ZkDRwyFYZ3tUWmjMF+IgmQ5dJ6u
 zYOuBjla1ITMURcaVhbd1xCPefGyjIW1bBIWiSKVPoGOUOPG/MsYf+5PEv6OSjaPUzve4PcV
 T6ISFlXEIJCjzT4Je1reJ2Gzj2MRSAdCWozN1C7J5kvbC5TKb3MES4OSMTr/c=
X-IronPort-AV: E=Sophos;i="5.91,290,1647316800"; 
   d="scan'208";a="75869849"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=gXlIAiNB31SitQcEBy8PZpewmvOpLmlxuVuO3p9OMnIhULPJkCIqggyaaoa4b0eDwmiEZuoe5QcbQ9VXqh6oU8u/g7uNwNBHKb834XI3RIz/LBOo7cWAiEQsSbW7VfOkt0OZ9sCezKbha5k0J/X7UTfc4bTxNbgeepli4+WV/DfU1Na8MaLgn9ESvtP8mRxfKmFV7Ec4LE3vx4XqAJf6prnpsnZmiqyfXC++ELkvPmQO3I6Pd8os+Zb4KxSQWvQpIs9Lydr4J8vtZY2CwE/cShhLy8SGaYy0P3RC/Z6L9Lh0+v66c7XKeC23x1kiqRU26HCwSxVWMnkmQ8louSAwQw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1y7TqiUUFu8EfqRKihDR5UkyDnErrWVh+3zjZuIghVI=;
 b=apFSavvi2NXJHYtUzxoKjPCLF9GAN+lrxQm3OYqoNbTGD3M/LQgT+6qOfe0OBRzvkxD+BYl1UcGnNzXjEmLmG1FrYylGD4lpN3fqOp8fU3kTP8ZOfm26ttz34heP6utkTeUSglBAWZAOT6F38X0LoxOyX5WOqPKZ8NUejosqsd1XbpLdNqMP/F2iyVGfECuPgKTaaGk9+XE5ILTB+r9Gs34LLvScisAwKlif8G7fYTyidegqNTVa+KzZCAhUqcyIBUdpKNNVbK70IpkGZK4Ald69BIhDD33UrIlEOh8ajrFZyGx/jDOEzfeWdfB6g0boqKZHTucZtrBnYIJv01MLFg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1y7TqiUUFu8EfqRKihDR5UkyDnErrWVh+3zjZuIghVI=;
 b=IpQnM64vvjza2hkeaROQc7hGTn+EqygEjhIxyx/m+cDca5QsUX0h1VKjfVthMUeGbQRjA5ha46uj4yCo0n27oZKha+ME1G7Z7q8BZSu1bLjzXI+S/f6JFzvckh5SNmv49mBDBE5t8HZDGjlSPueCKg+JTOlgVOXEz8RsRGasPkQ=
From: Owen Smith <owen.smith@citrix.com>
To: "paul@xen.org" <paul@xen.org>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Subject: RE: [PATCH 2/2] Rate limit per DPC using both xenvif and xennet.
Thread-Topic: [PATCH 2/2] Rate limit per DPC using both xenvif and xennet.
Thread-Index: AQHYbFP+0CwBwK5H30KPOTOINQ/8Tq1Isg0AgAAG2RA=
Date: Fri, 10 Jun 2022 12:52:51 +0000
Message-ID:
 <DS7PR03MB5477DA1DC613350836EEC98BFEA69@DS7PR03MB5477.namprd03.prod.outlook.com>
References: <20220520141416.833-1-Martin.Harvey@citrix.com>
 <20220520141416.833-2-Martin.Harvey@citrix.com>
 <08c786a0-08f1-56f9-1f06-bc653158e1e2@gmail.com>
In-Reply-To: <08c786a0-08f1-56f9-1f06-bc653158e1e2@gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 35eb66c7-3b28-446f-9933-08da4ae02128
x-ms-traffictypediagnostic: BN9PR03MB6202:EE_
x-microsoft-antispam-prvs:
 <BN9PR03MB6202DE369D391DEE2ABADEDAFEA69@BN9PR03MB6202.namprd03.prod.outlook.com>
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 QwxKV8WnKUEU7p3PDROT4lGyUKuItK6PZbGR30hWw1ztwlg1NX4o8ndGVRwL+e7sRKv4LAGR5vAVWNS3Zbauk3DRSVd9z5jBwT2bvi7XDr9RK44BR9klUJVBknGtGgLMs08KHu4C9XfDjGvuvBLaYzYOkNmnh5BGhJjmfWSjKpZ5sXyhbXnOcP/58iaXsBxZxVRH6W7pjGKzkyaiXBoqjgsdgv59vqaBTiB8Msb4TYn5/KnpIgbkZzUzkdDk+nw/9Na7smGJTenlLOq3ThVY21kJYlPAjRc4dh7CoyOAXpu69rscBGlGvymP/3YleM7e5IckcA0ym0OkyuVv9ZSmrn837eki23f2cGZ4BJRfjD0JrjO9x+SBH5QCVaF0MXoZOUXl4orpRWdfDeZCx/SHV/giYdlWDHs/9Py6Zv40Kks1tGs62LCuFKAlQGajAkU7h3NqZCWcqUzyx7K4340iR9cn3eDIlFf4+/6p6IQuhGP4GcCrKPhXlNOVN27LCaGga94/5ppMglTaKqMLeeuKkUUhQOHVQB9VafEwe4PUWxJ+w2bImMm9J+12EftxZ6FZSrQ40ugGvC0g2fLTYzd1u/iWhsSLi5rv8JKUj22eOc+PSoPGsGHYUBqaiGhCY2OtZDslGY5PetVQZlipnkiL+pI8zxfAZa1J4clsaj3J8FuoE+Tn+y7qTaov4S33UVR3GtQ+ISXYiZi685C/3WEuGA==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5477.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(55016003)(66946007)(66556008)(82960400001)(8936002)(5660300002)(52536014)(33656002)(71200400001)(44832011)(122000001)(8676002)(64756008)(66446008)(66476007)(76116006)(316002)(110136005)(38100700002)(38070700005)(86362001)(508600001)(26005)(53546011)(7696005)(6506007)(9686003)(186003)(83380400001)(2906002);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?aFU0dlFleSsrMGk5Q0xjeVdOMnZNU1hUM2p6SWZaR2dOajRab2xIU0ROa2Rr?=
 =?utf-8?B?cDVTYi9rblV1UkFaQXVUa1dSb0NXZlY5aUh1bkV6b0w0UU9iUkpzTDdCcnl6?=
 =?utf-8?B?TEpkMnNSTk0xM1dRUTdHcVVvMk04dTJSWE9VdG1BdENKSEx0d3laaFB2Z2gv?=
 =?utf-8?B?Q3EwVkxURU5JMlhtTXlkL1pVWklPOEFFZm1hWlh2QXhUOTFyV0VYUHk1djE0?=
 =?utf-8?B?dHVDbHEvYzEzK2Y0bXNiQUNzV1pqT0o1RDNWRG0xdlUvaWNEVEF3UWhISWVH?=
 =?utf-8?B?QnB0eHpHQXY5YTBJRThHQlBvd3ZlWDIybUlmMmVmYWc3c04xT3g2a0ZuUWNZ?=
 =?utf-8?B?NExPS3NsVlFkcDFkWTFhL0RmNWhpSjVsMHNlaklYYi92amNWL1FMd0JiWUV1?=
 =?utf-8?B?TldqTVhMNU5TQll1Nkt2RjFna2ZVTk1uaE5EUU1JTHN6N09kS2o2NmhtQTd0?=
 =?utf-8?B?SGtnd3V4YkdYTG1aOERSRmV4dGl0VFpsdkxMWHFhbTlQZVU4QVBidExXbFNr?=
 =?utf-8?B?RFpIeUFnNndmbElZNjRrbC96QWdUNXVqbklxRjIrN2R6ZnpmclZQL0xxSjgw?=
 =?utf-8?B?bExHZEYyUkVieit0NDAzTU55K0RoaU5Sc0t6alNhVHpoZGxMS1FRc0FUR1Qz?=
 =?utf-8?B?YlFwc1FIMmxzeTJraHduZjlGZVR6VElWM2s0cnZ1SUVQam50UzdBdGdkV1ZT?=
 =?utf-8?B?RnhYKzk2aUhNQkRENkJ5alRxZG96R28ydGVRS29XUnZUVWE2VzRrdnJldkFl?=
 =?utf-8?B?TXEvV2R1VThCK0RReXBMN3FQM3JOd2VsVTZnVWk0c2cxSm1HcFplYWFvSG9K?=
 =?utf-8?B?NHgwSURJWHdyMHZ0OUlLUGVaNnBkNnBIYktwYmFlNmpXVVEyV3ZaSGFBUlA2?=
 =?utf-8?B?aHFQU1l3UTdOUnZqVFN5aklnbW9NRSs4dnRycjdkbVBFVWUrdU56a0lQM0Fj?=
 =?utf-8?B?UDY1Mmt1QXFFY2dGZ1UvaE5sYWZKZ3hFTXhIUlQxbmRxMGIyL2JaU1owZ2Nv?=
 =?utf-8?B?clNJQ1c4dUJvSWxFRzV0Z2xWN0NKZjNORi9aWWd5MWdxcStEQ29TY2VyRnZQ?=
 =?utf-8?B?ZTVKaDJjWjFZUnFJazJhNlhHME1KeVpBK1NRQ3A1WEFSekNvRzl3NVFHU1Ja?=
 =?utf-8?B?b1J3a2xtRTBhMFlGOWMzbnR2UWJwS3IxU3JEQlhaaTBySkNkMnJ4ejY1NVcw?=
 =?utf-8?B?Zkt4SGttZmsvdzZKUzcvL0xrUjFKS0oyeTVxdjl2WkJMMGI5WjdFekhPZnp1?=
 =?utf-8?B?VUhPWFNOTmhOSDI4ak5SbWFqRDlaTXJIcG93Y0RlTVNRcngwaS8xYWpLOFd4?=
 =?utf-8?B?VUNnMnRtOWxSUUJCb3lvdXFkeHpYVnMwRU8zVUtVNlFtSkpRK1h5aTNFbnJ0?=
 =?utf-8?B?WkQ3ZmRkOHNRWEluUWFMVGRUSTJpN2Y3NVpzZFUxQ3o5SmhLdTRSMUhTa2R6?=
 =?utf-8?B?c0k4c3NZY3pWa3FvN2MzK202NE1vb3g1WTFaNFZBN1g4bXVhUkV6T0hmNURI?=
 =?utf-8?B?cXlhNzdBU2VmeWRJNkFQa084UG5iSUhha3FHM21pdU4rUDQ1U1M1dUhSQkZQ?=
 =?utf-8?B?OGJNM0dHbE1RZzNpNElTTjJ1RVpoRVpuY0l0YjUyMGg3cFZiM0lydkV4MGZS?=
 =?utf-8?B?VEEzWDI2N0Y3ekxpdGFtZ2YxUVB5YmNKMDhVWjNGd29ZYUFDREVpeHVsemU4?=
 =?utf-8?B?ejFXOHYyNlVhOHNNN2Z4S3VOYUMvcVNaSjZJZ1lWa1hKeFBuZnhGeThxSlNS?=
 =?utf-8?B?Y29SbURZLy83Y1YwSStnUU8wVmJURUlIbHFUZ0lTeEpiblFscy9ZSDRxWnZG?=
 =?utf-8?B?V0VielhPbklNZWhYQ28yNHpTaHJKTmp2WGRSSjdtb0dXeUhMYmd3YnlCcXdk?=
 =?utf-8?B?a2JKUHJRTTVWZ3JoY2Z3ZCtQZG5wOGxUbXZUOGxGWC84V1Y1aGpwTE1qeVhE?=
 =?utf-8?B?VVQwbHdkcDBtQzNnMklyTkE2QW5TcGdlTkNUN3FVSnJ3OGhGbWcrekliSUpa?=
 =?utf-8?B?VnhtOWVodHNYUXpIRXJ6eGs1bGJGejRKaDdFZWVaQVBJeFJ6Zm02UDd0YmNU?=
 =?utf-8?B?MDc2NWVLclBrZEh3K3QyY3NvZUZLVGhXUEJzcktNcVAxd3J4d3kyM0J3OFBw?=
 =?utf-8?B?RksrNDZhMWhDazNlMVdOdyt2VStuWlhmL05XbGZpaVNPU1JOWU9nZGN2OEJx?=
 =?utf-8?B?ZDRXd05oMkFVaUhwOWlKZnFlbG41c0lEZktSVVFacTVEUVNkWmZoN3RSYlgy?=
 =?utf-8?B?YjEzZUdSakpuMTQ3TW5nR2tIcit1aXFMMUdGRzBTVXc3dXhBWnJ2MUFKKytI?=
 =?utf-8?B?STN5ZThaOXNHY1ROZTI2aXVWa2RDR0NtZEJMY0pBZDQzNUNZN2JsQT09?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5477.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 35eb66c7-3b28-446f-9933-08da4ae02128
X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jun 2022 12:52:51.5628
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 4UmziQnn0d2jJA5zX4f/mDVsjaOy6rU56nWYFx1Ois5TJGbtVSVnl6ep4Uv1U7sK+CFnlg+pzheQD1z5Ewrl4w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR03MB6202

LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IHdpbi1wdi1kZXZlbCA8d2luLXB2LWRl
dmVsLWJvdW5jZXNAbGlzdHMueGVucHJvamVjdC5vcmc+IE9uIEJlaGFsZiBPZiBEdXJyYW50LCBQ
YXVsDQpTZW50OiAxMCBKdW5lIDIwMjIgMTM6MjcNClRvOiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVu
cHJvamVjdC5vcmcNClN1YmplY3Q6IFJlOiBbUEFUQ0ggMi8yXSBSYXRlIGxpbWl0IHBlciBEUEMg
dXNpbmcgYm90aCB4ZW52aWYgYW5kIHhlbm5ldC4NCg0KW0NBVVRJT04gLSBFWFRFUk5BTCBFTUFJ
TF0gRE8gTk9UIHJlcGx5LCBjbGljayBsaW5rcywgb3Igb3BlbiBhdHRhY2htZW50cyB1bmxlc3Mg
eW91IGhhdmUgdmVyaWZpZWQgdGhlIHNlbmRlciBhbmQga25vdyB0aGUgY29udGVudCBpcyBzYWZl
Lg0KDQpPbiAyMC8wNS8yMDIyIDE1OjE0LCBNYXJ0aW4gSGFydmV5IHdyb3RlOg0KPiBGdXJ0aGVy
IGRldmVsb3BtZW50IG9mIHJhdGUgbGltaXRpbmcgY29kZSwgd2hlcmVieSBib3RoIHhlbnZpZiBh
bmQgDQo+IHhlbm5ldCBjby1vcGVyYXRlIGFjcm9zcyB0aGUgVklGIGludGVyZmFjZSB0byBkZWNp
ZGUgaG93IG1hbnkgcGFja2V0cyANCj4gdG8gcHVzaCB1cCB0aGUgc3RhY2suIFRoaXMgYWxsb3dz
IGZvciB0aGUgc2l0dWF0aW9uIHdoZXJlIE5ESVMgY291bGQgDQo+IHByb3ZpZGUgaW5mb3JtYXRp
b24gYXQgdXBzdHJlYW0gcHVzaCB0aW1lIGFib3V0IGhvdyBtYW55IG1vcmUgcGFja2V0cyANCj4g
aXQgaXMgcHJlcGFyZWQgdG8gYWNjZXB0IGluIHRoaXMgRFBDLg0KPiANCj4gU2lnbmVkLW9mZi1i
eTogTWFydGluIEhhcnZleSA8bWFydGluLmhhcnZleUBjaXRyaXguY29tPg0KDQpJJ3ZlIGxvb2tl
ZCBhdCB0aGlzIGEgYml0IGFuZCB1bW0tZWQgYW5kIGFoLWVkIGFuZCBJIHRoaW5rIEknZCBsaWtl
IHRoZSBjaGFuZ2UgZnJvbSB2YXJhcmdzIHRvIGEgc3RydWN0IGluIGEgc2VwYXJhdGUgcGF0Y2gu
IEl0J2xsIG1lYW4gYnVybmluZyBhIHZlcnNpb24gbnVtYmVyIGJ1dCBJIHN0aWxsIHRoaW5rIGl0
IHdvdWxkIGJlIGNsZWFuZXI7IEknbGwgd29yayBvbiBzcGxpdHRpbmcgaXQgdXAuDQoNCiAgIFBh
dWwNCg0KDQpXb3VsZCBpdCBtYWtlIHNlbnNlIHRvIHJldGlyZSB0aGUgMHgwODAweHh4eCByZXZp
c2lvbnMgYXQgdGhlIHNhbWUgdGltZS4gV2UncmUgbm90IGhpdHRpbmcgdGhlIGRldmljZSBJRCBs
ZW5ndGggbGltaXRzLCBhbmQgd291bGQgYmUgdW5saWtlbHkgdG8gaGl0IHRoZW0sIGJ1dCBpdCBk
b2VzIG1ha2UgdGhpbmdzIGEgYml0IGNsZWFuZXINCg0KT3dlbg0K


From win-pv-devel-bounces@lists.xenproject.org Fri Jun 10 13:06:45 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 10 Jun 2022 13:06:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.346436.572235 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1nzeLc-0001Qv-9g; Fri, 10 Jun 2022 13:06:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 346436.572235; Fri, 10 Jun 2022 13:06:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1nzeLc-0001Qo-5t; Fri, 10 Jun 2022 13:06:44 +0000
Received: by outflank-mailman (input) for mailman id 346436;
 Fri, 10 Jun 2022 13:06:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=maTa=WR=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1nzeLb-0001Qi-9h
 for win-pv-devel@lists.xenproject.org; Fri, 10 Jun 2022 13:06:43 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2be0180e-e8be-11ec-8179-c7c2a468b362;
 Fri, 10 Jun 2022 15:06:42 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id u8so32126264wrm.13
 for <win-pv-devel@lists.xenproject.org>; Fri, 10 Jun 2022 06:06:42 -0700 (PDT)
Received: from [10.7.237.8] (54-240-197-224.amazon.com. [54.240.197.224])
 by smtp.gmail.com with ESMTPSA id
 k7-20020a1ca107000000b003973c54bd69sm3145290wme.1.2022.06.10.06.06.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 10 Jun 2022 06:06:40 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2be0180e-e8be-11ec-8179-c7c2a468b362
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:reply-to:subject
         :content-language:to:references:from:in-reply-to
         :content-transfer-encoding;
        bh=Ss9qPe+azkLgVnSYLwo/+Zwv8g4yn65d0+Cuno97ayY=;
        b=ZgVfMDg4Sp1mQozE2zHYw5wpINU2RpMtWpgI3LWcLDQf91Jsw9e/r+HgjjON2/0430
         jvjNmz+6bQjuccKyjxOPnmDjv/mQut+KZdrkd68Fps5kuiD5Yf2R5YNUFKQPZ03DJAds
         a1UzDJbvUx5FZxXzm/8T4vtWc++YBgRADYabndc75dGZyGNo7SxLvKo2lsInrhWTIOXq
         fv5I42UDmi9hgr6AoAOp7EohlK3r8sheX+GIyorO1LeCCh70gcUjz4gaBDsjM+t7g0ii
         /tKHGmnLM60LCvgRaxXcf0cm9ydW8ifnylHoHYpC6Qvyoy/Sy2kOx7RXQSDVVtxt+/Md
         NHog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:reply-to
         :subject:content-language:to:references:from:in-reply-to
         :content-transfer-encoding;
        bh=Ss9qPe+azkLgVnSYLwo/+Zwv8g4yn65d0+Cuno97ayY=;
        b=lF3islMxNQk2l5LGXPyOYnfXMxm21kDboeiZjkLt7LaH5jQVHw3ITtYD678KfOIhB6
         xVvUhWeftHF8EEBw34+tgpvgKVEhVYRcz9aqN/z1QBxMYpP5tlImoZ2WKhtRNcv31b5+
         YhQouvn9nv0cp3ErGUXv5sAkGz970OlU3rmAHJnc5eEjRFsESPFU4YGnAqAhhu1XWMaZ
         lx5l9FjVOIaIrYVHTeL3HDZ+rLQqQCnW0TMdtVXeVU86yi4QKIj1UWRFrjMZhhZi6/Lk
         n6pyq2i5q/Az5td4t034+e9tD3BczNsbpKdjVZVJhko4ntSPl9rnQNQ52fL1LEM022yE
         Dv0w==
X-Gm-Message-State: AOAM533YQJCFmMD7haPOITml7r3Nqc7OXZxnLE2ahAWvWrxEdprCpdli
	eupRO5+caExJresR476HF8eCNIgjAZ4DoA==
X-Google-Smtp-Source: ABdhPJxPTWpjt1qCXxklMfd0pzWyRTN7W7FjkbGBeDEWeUtnVYSRlc5ZchxQ8xbbNRSp/nuqIdLvEw==
X-Received: by 2002:a05:6000:1689:b0:218:3fb1:fd30 with SMTP id y9-20020a056000168900b002183fb1fd30mr25859007wrd.302.1654866401657;
        Fri, 10 Jun 2022 06:06:41 -0700 (PDT)
Message-ID: <7fc19efd-388e-1324-1c71-dafb525a5f2b@gmail.com>
Date: Fri, 10 Jun 2022 14:06:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.10.0
Reply-To: paul@xen.org
Subject: Re: [PATCH 2/2] Rate limit per DPC using both xenvif and xennet.
Content-Language: en-US
To: Owen Smith <owen.smith@citrix.com>, "paul@xen.org" <paul@xen.org>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
References: <20220520141416.833-1-Martin.Harvey@citrix.com>
 <20220520141416.833-2-Martin.Harvey@citrix.com>
 <08c786a0-08f1-56f9-1f06-bc653158e1e2@gmail.com>
 <DS7PR03MB5477DA1DC613350836EEC98BFEA69@DS7PR03MB5477.namprd03.prod.outlook.com>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <DS7PR03MB5477DA1DC613350836EEC98BFEA69@DS7PR03MB5477.namprd03.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 10/06/2022 13:52, Owen Smith wrote:
> -----Original Message-----
> From: win-pv-devel <win-pv-devel-bounces@lists.xenproject.org> On Behalf Of Durrant, Paul
> Sent: 10 June 2022 13:27
> To: win-pv-devel@lists.xenproject.org
> Subject: Re: [PATCH 2/2] Rate limit per DPC using both xenvif and xennet.
> 
> [CAUTION - EXTERNAL EMAIL] DO NOT reply, click links, or open attachments unless you have verified the sender and know the content is safe.
> 
> On 20/05/2022 15:14, Martin Harvey wrote:
>> Further development of rate limiting code, whereby both xenvif and
>> xennet co-operate across the VIF interface to decide how many packets
>> to push up the stack. This allows for the situation where NDIS could
>> provide information at upstream push time about how many more packets
>> it is prepared to accept in this DPC.
>>
>> Signed-off-by: Martin Harvey <martin.harvey@citrix.com>
> 
> I've looked at this a bit and umm-ed and ah-ed and I think I'd like the change from varargs to a struct in a separate patch. It'll mean burning a version number but I still think it would be cleaner; I'll work on splitting it up.
> 
>     Paul
> 
> 
> Would it make sense to retire the 0x0800xxxx revisions at the same time. We're not hitting the device ID length limits, and would be unlikely to hit them, but it does make things a bit cleaner
> 

Sure. Probably best to do that before making the varargs change. It'll 
get rid of interface version 7. I'll stick that in the series.

   Paul


From win-pv-devel-bounces@lists.xenproject.org Mon Jun 13 16:34:09 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 13 Jun 2022 16:34:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.348435.574674 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o0n0x-0007kb-E3; Mon, 13 Jun 2022 16:34:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 348435.574674; Mon, 13 Jun 2022 16:34:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o0n0x-0007kU-BG; Mon, 13 Jun 2022 16:34:07 +0000
Received: by outflank-mailman (input) for mailman id 348435;
 Mon, 13 Jun 2022 16:34:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8QqK=WU=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1o0n0w-0007kO-6C
 for win-pv-devel@lists.xenproject.org; Mon, 13 Jun 2022 16:34:06 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a25cfa9f-eb36-11ec-bd2c-47488cf2e6aa;
 Mon, 13 Jun 2022 18:34:04 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id q15so7788711wrc.11
 for <win-pv-devel@lists.xenproject.org>; Mon, 13 Jun 2022 09:34:03 -0700 (PDT)
Received: from [10.7.237.8] (54-240-197-224.amazon.com. [54.240.197.224])
 by smtp.gmail.com with ESMTPSA id
 o19-20020a05600c4fd300b0039c55bc2c97sm15285681wmq.16.2022.06.13.09.34.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 13 Jun 2022 09:34:01 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a25cfa9f-eb36-11ec-bd2c-47488cf2e6aa
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:reply-to:content-language
         :to:cc:from:subject:content-transfer-encoding;
        bh=9mWTnniKRwprARoMkEQE0aBO+2eQCM4JfXilvQZ4h/o=;
        b=X7qi6i1ZAWPVBhAUG1evTlHxp2hEZQZgevCRy2CozlPAaCN/RpKBMpfiFqMwzuLkIR
         U2oCjRFmka5k0jFM73ih2iZG+4/tRQiySF+GEec75HzXyeIG+69yd6TaIMTjQ2sBGbvr
         tP/MeiNakNQb/UyHnaMClNSR7fovT6fb7pqKdC9eBCLfxENTgkWXbAPp59mpzJxNsmP/
         LX/yX2dL0MkDMoyaZfEL8kH+nuCW2f/4SmqI5VLmTC2Q3AxUfPL9Q03TA5wg4PB9W6su
         dmEDs3IstFmMqWoV2jkpVD61z8Q8Nknoz9IrXRhYr/zyj7wJWft9QzB+pPeV/RWCL5dS
         clZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:reply-to
         :content-language:to:cc:from:subject:content-transfer-encoding;
        bh=9mWTnniKRwprARoMkEQE0aBO+2eQCM4JfXilvQZ4h/o=;
        b=lGyd+74fQAISz+JJ4hNWL4AuxPQn8Xi1Ap0xyaD+Dqpujs81vZKZirdoOkekNSsppj
         z91T/ytMLbVu1wsJYFRcU7jjB2ATKaGoN6WtviVnC+kMtym3kJEKJXJY5lZOftGc8Fyc
         5u51wOyObp/wN/FsDXAlRACHI4rz1h/1w7Rf/gicS9fjI6hQ8vD14pSzJA9OadIo4AI/
         q3aZsISHW6hCDFN+Hh8pQlhs4gBm+SNYCLHGYiIkngv0v0Ka6YiNwxxV/0A1xUts4XR2
         rROzIOlU53AfWiTaTpx8Q8gImPx/Kc0SFlATb0ehD50VpEvxdRN7EgVSU89DSWlsC/KI
         bdJg==
X-Gm-Message-State: AJIora8kYZAwrnkD6Ua7UohjsYmm6zJIag6u/4xo/NQtse4VFD7YIVP5
	5qoJ/wQKswj6jJYbI8uqLhFlQSmXAb8pmA==
X-Google-Smtp-Source: AGRyM1se9zbeB/PUSI4loWs+/2dmI11FlP4WyJK+YX3FZK695kd3Ifaoisrjveghgz7Zi7eo86h/Tg==
X-Received: by 2002:a5d:59a5:0:b0:218:3ffb:e6ea with SMTP id p5-20020a5d59a5000000b002183ffbe6eamr628017wrr.715.1655138042185;
        Mon, 13 Jun 2022 09:34:02 -0700 (PDT)
Message-ID: <6aabef8e-c70d-fdcf-7f87-2eb4dbf0a860@gmail.com>
Date: Mon, 13 Jun 2022 17:34:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.10.0
Reply-To: paul@xen.org
Content-Language: en-US
To: Martin Harvey <martin.harvey@citrix.com>,
 Owen Smith <owen.smith@citrix.com>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
From: "Durrant, Paul" <xadimgnik@gmail.com>
Subject: Using param structure in VIF interface
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Just to let you know that I am working on this...

It's more of a can of worms than I thought... Now that I have split up 
the patches I realise that, to use a params structure, we need that to 
be versioned along with the interface. Also when XENNET is using a 
down-rev version, which could theoretically be behind the latest version 
in XENVIF, we are going to need a chain of callback functions to 
translate each version of the params structure to/from the previous 
version until we get to the one that XENNET actually deals with.
I have something partially done, but it's going to take another day or so.

   Paul


From win-pv-devel-bounces@lists.xenproject.org Tue Jun 14 08:56:02 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Jun 2022 08:56:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.348670.574876 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o12LA-000476-O4; Tue, 14 Jun 2022 08:56:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 348670.574876; Tue, 14 Jun 2022 08:56: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 1o12LA-00046z-LS; Tue, 14 Jun 2022 08:56:00 +0000
Received: by outflank-mailman (input) for mailman id 348670;
 Tue, 14 Jun 2022 08:55:59 +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=M8zw=WV=citrix.com=prvs=1577c1f0a=martin.harvey@srs-se1.protection.inumbo.net>)
 id 1o12L9-00046t-Bj
 for win-pv-devel@lists.xenproject.org; Tue, 14 Jun 2022 08:55:59 +0000
Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com
 [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cd23336b-ebbf-11ec-bd2c-47488cf2e6aa;
 Tue, 14 Jun 2022 10:55:57 +0200 (CEST)
Received: from mail-dm6nam11lp2171.outbound.protection.outlook.com (HELO
 NAM11-DM6-obe.outbound.protection.outlook.com) ([104.47.57.171])
 by ob1.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256;
 14 Jun 2022 04:55:53 -0400
Received: from MW4PR03MB6347.namprd03.prod.outlook.com (2603:10b6:303:11e::22)
 by SJ0PR03MB5533.namprd03.prod.outlook.com (2603:10b6:a03:28e::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.13; Tue, 14 Jun
 2022 08:55:51 +0000
Received: from MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::5587:5e20:5c2b:d94e]) by MW4PR03MB6347.namprd03.prod.outlook.com
 ([fe80::5587:5e20:5c2b:d94e%8]) with mapi id 15.20.5332.020; Tue, 14 Jun 2022
 08:55:51 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd23336b-ebbf-11ec-bd2c-47488cf2e6aa
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1655196957;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=LnTFIXZ84zIcSlgXCxaputR/aMPDsp/cjmQORnsIXNo=;
  b=ay1Ik2jN/5oIdbEV4hMYusWyJoZrg2ZpAGVZGo9sG3Xi5X8CuSARLyr4
   TgRGnP6V5dPLJzltFGJu/suLXWAHUJDM+b4kCyX9UBSOgb5wgh5B2UAI4
   NRXad+z386fdfOOClC4+gUDenTPH4tJU1BzwboQrf1vV9sAlyt5xAooIR
   E=;
X-IronPort-RemoteIP: 104.47.57.171
X-IronPort-MID: 72888373
X-IronPort-Reputation: None
X-IronPort-Listener: OutboundMail
X-IronPort-SenderGroup: RELAY_O365
X-IronPort-MailFlowPolicy: $RELAYED
IronPort-Data: A9a23:feWrw6qhTPKBGJW1cFfrIWclc51eBmJ1ZBIvgKrLsJaIsI4StFCzt
 garIBmEaa7eYDGje4sna4S3p0tV65SHmtA3GQY/+3wwH38SopuZCYyVIHmrMnLJJKUvbq7GA
 +byyDXkBJppJpMJjk71atANlVEliefQAOCU5NfsYkidfyc9IMsaoU8lyrdRbrJA24DjWVvT4
 I+q+qUzBXf+s9JKGjNMg068gEsHUMTa4Fv0aXRnOJinFHeH/5UkJMp3yZOZdhMUcaENdgKOf
 M7RzanRw4/s10xF5uVJMFrMWhZirrb6ZWBig5fNMkSoqkAqSicais7XOBeAAKv+Zvrgc91Zk
 b1wWZKMpQgBE/XNt74FfDtiHg54PatkyZ+EAFiavpnGp6HGWyOEL/RGKmgTZNRd1sMpRGZE+
 LofNSwHaQ2Fi6Su2rWnR+Jwh8Mlas72IIcYvXImxjbcZRokacmbH+OWupkFg3Fp2Zkm8fX2P
 qL1bRJqZQ7cYhsJOl4NFp8vtOypmmP+Y3tTr1f9Sa8fvDKDnFwqj+OF3Nz9PcOkePsPn3ejg
 13D9VXgCU5DDvWcxm/Qmp6rrqqV9c/hY6oKHaC83u5nhhuU3GN7IAIXUx6jv7y1h1CzX/pbK
 lcI4Ww+oK4q7kupQ9LhGRqirxa5UgU0XtNRF6g27V+Lw6+NugKBXDFbF3hGdcAss9IwSXoyz
 FiVktj1BDtp9rqIVXaa8bTSpjS3UcQIEVI/ieY/ZVNty7HeTEsb10inogpLeEJtsuDIJA==
IronPort-HdrOrdr: A9a23:7ChW1Kxy2qpmNHaDT2XvKrPxh+skLtp133Aq2lEZdPULSKGlfp
 GV9sjziyWetN9IYgBapTiBUJPwIk80hqQFm7X5Wo3SETUO2VHYZr2KiLGP/9SOIVyYygcw78
 Zdmu1FeaXN5DtB/IrHCWuDYrAdKbC8mcjG69s2jU0dND2CAJsQjTuRfzzrdnGeMzM2YKbReq
 D92uN34x6bPVgHZMWyAXcIG8LZocfQqZ7gaRkaQzY69Qinl1qTmfDHOind+i1bfyJEwL8k/2
 SAuRf+/L+fv/ayzQKZ/3PP7q5RhMDqxrJ4dY2xY4kuW3XRYzSTFcZcso65zXUISSaUmRIXee
 z30lQd1gJImjTsly+O0F3QMkLboUsTAjfZuCOlaD3Y0IPErXsBerV8rJMcfR3D50U6utZglK
 pNwmKCrpJSSQjNhSLn+rHzJlhXf2eP0A0feNQo/gpiuEolGcxshJ1a+FkQHIYLHSr85oxiGO
 5yDNvE7PITdV+BdXjWsmRm3dTpBx0Ib1y7a1lHvtbQ3yldnXh/wUddzMsDnm0Y/JZ4T5Vf/e
 zLPqlhibkLRM4LaqB2AvsHXKKMeyTwaAOJNHjXLUXsFakBNX6Io5nr4K8t7OXvY5AMxItaou
 W0bLqZjx9GR6vDM7z+4HQQyGGyfIyUZ0Wc9uhOo55kp7b7WL3ndSWeVVFGqbrTn8ki
X-IronPort-AV: E=Sophos;i="5.91,299,1647316800"; 
   d="scan'208";a="72888373"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=lB/D4NFNRZdmHENSyRWtSPeofW9cCTzjBwdY2RoAz3TVwe4z1YaXbO0PypjHYNJXGRpv+YTSz33XN8m++1dFrs0DcIzur1p24tR/P640eZEbvMi/jKkR3KJs7lk6h+FMM/JVz9DNnQd6HIF1gnNk+TJb7TBHWSzRdcGXPyjJzN0eAoQxQWr6KQKpp63wvnbpyOwj7kPmgdWu6/VgQ5i7ccz097JuDvx7b9IKFxaTxYvP7+MVV9yJkpo5P9bo75rwm5P2ZgG6tI7sSCXcVwypeR8v4gDEc+5EpqPTHYfSkB0cc2gvRsvKQeqs2bMiSddnAFfmKEbJl0t5789bwIRMTQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LnTFIXZ84zIcSlgXCxaputR/aMPDsp/cjmQORnsIXNo=;
 b=IOGIxSowK70MOSQyezlJSeg4Co1JJfNrhdV9kYERl3onUII7tuY03q5qKl230P2SCiGQY/BIHTAhS18+8ndizEsLzxtfZSQW+queUXwwQowbDzQaH+Gt7uNsNEGcIxaSm0kNHy6EaV2X/rS8gpeuJ8r5OVTJ2lZ8phU929JRXKYrEpzxCfFuAHnNCVDZC7dWPlLiSC1HWPC+RxImszSOqO6npZnUIup5JSuxccq6zg/402SNDds4ZNDZLM6pdV3wF8I9ivj07adJhynBsBG6bHpVxr6jijI3I5kKwNUWSdY+rR5+/H1R2f+AmZtrcrRygV4/JPIO2xWENSAC8iXPEg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LnTFIXZ84zIcSlgXCxaputR/aMPDsp/cjmQORnsIXNo=;
 b=q9F3OK50LtpLiULQ4cupE6gQs8IS4MOHVh4xJJpX2eNt6fnjEL8pjEiCqFfAhEFPczZ+SLD9U9SDyDzpwuVZQIeX6pnCix7UCKPt8tBMN76oRBRHGg3xECNZ+o6KK9V/sL0vClg/qO71rm7s9D2lq/0Uaw3+gbQv4+YIh1a7sWw=
From: Martin Harvey <martin.harvey@citrix.com>
To: "paul@xen.org" <paul@xen.org>, Owen Smith <owen.smith@citrix.com>
CC: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: RE: Using param structure in VIF interface
Thread-Topic: Using param structure in VIF interface
Thread-Index: AQHYf0NmBmHzz1wX6UObxeXoX8prcK1OmYwg
Date: Tue, 14 Jun 2022 08:55:50 +0000
Message-ID:
 <MW4PR03MB6347E2371CE00E24925D988C9AAA9@MW4PR03MB6347.namprd03.prod.outlook.com>
References: <6aabef8e-c70d-fdcf-7f87-2eb4dbf0a860@gmail.com>
In-Reply-To: <6aabef8e-c70d-fdcf-7f87-2eb4dbf0a860@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: def18922-ed25-4ebc-fcd0-08da4de3aeb7
x-ms-traffictypediagnostic: SJ0PR03MB5533:EE_
x-microsoft-antispam-prvs:
 <SJ0PR03MB5533AD9650B21AC56ED4F65E9AAA9@SJ0PR03MB5533.namprd03.prod.outlook.com>
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 wUowdRJhghOHznZRODPYjRtty5Y+wh0eJvXiNyOw80pl95C5N3CvEmb2FzSnxXPh7gecSxA4xcKsqXXreNrRA5F0Gub3Xn9vlHIiUJqGyEPri9L2VLhyJsgRu32z0jDJkGnUkfcAt8UNNyb9Da8fuo3ZOZj/kpsIkkBXP79LxjtIaPXOP6zArrgyj/wXKP/z4Eo6qf6Z5KhaspLmi0JCHySMLbD0Nn2Mh9xetyX4TsOkfbuQw7NcyZe2WNkAdPdgAoC9ePradSOQxZNdOVlgK7Prfbipru8yH0PNQJm28C5B5l0skjgNsspFaN0nQY9T7loSp2dAI7Zxo++bLy7mUPBVxnG3oa2+ZEvQuxL9UwaEWaO2akau+0a3Xez0LXaBr4+8N4W37mwXIl0Mg2eF92AmO3cDlWOhln4fksr2+WEsKN7oFqww9iVU0eOvatToNrIyqQtoCyoEhvdyM7KobmhQTeTMz/cW3zaKFP6OlacodyYf6WDhfa3AWOAoou71651oB+WRpDMuWLVdhIUM1/gwZV8f29InDxv3CZDdyoUIUg0aJsZ4aPqkedN2mXVp2aimnBqPHsVQGRAWusDHf/nB9wBxBThEVlpb22VwRthvYkKG+yI7IVMbu1LFc2ke3RmwdcfRsJK/4pY39UNMRbVOWkj5NgD9KEZ3Qxic8d3qqfWR/mm/9ZYtVtia3MeloDJ/TvMqsBwAeL94q+ragQ==
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR03MB6347.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(366004)(26005)(86362001)(7696005)(122000001)(6506007)(9686003)(71200400001)(38070700005)(82960400001)(38100700002)(186003)(83380400001)(52536014)(6636002)(110136005)(8936002)(8676002)(4326008)(64756008)(66446008)(316002)(5660300002)(76116006)(66946007)(66556008)(33656002)(66476007)(55016003)(508600001)(2906002)(44832011);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Tmg5VTVsWGpLMTQvT29FQTdCd0I2QkxjVWRnbDNrY2RJTmRmKzJzOEJsRTIx?=
 =?utf-8?B?clZsc3ZydWZrTUt2aHpsaFIrYjJEWVQ5KzRVcmN5Q1ZXdWtXYkp2TDRsWVh0?=
 =?utf-8?B?S3RXNVRNRklQRkdMQ3Focm9Lam5aMzBjMU5sVkIrdDlNczNBREtyWEFhdGRo?=
 =?utf-8?B?cmRzZ2JkQm52TkoyazV1dkExaHZCTGJKSnIzb21oWGpISVBhZzVhazJDOTJR?=
 =?utf-8?B?WmZFNHVueDV6eVBRKzVaL2ZPbkZWei8zTEY1M3J5aVZsTjJYWGZ0OHRIOXZI?=
 =?utf-8?B?QzNGVk5HTStncVg3ZmxjWWZMN2wyajU4eUVGTSs2TzBPQncxR3hJTXRDZGF0?=
 =?utf-8?B?NHhKTExUVHBEOGQ1L2ZOczhSYmZLYjZ1a1hXOWtDUjNuU05UenovRndRWE05?=
 =?utf-8?B?SkQxZzc2QWN6U3B3UE9Jcy9qMU5tbmYzSEZoTWNvYUxIL0RTaDEwUkdveFQy?=
 =?utf-8?B?QnBzbFJmZFdna2g2ZllnOFBMUi9Tb01nS0tGNzhxRUJKVE5rcWNmN0E2Y2Zj?=
 =?utf-8?B?dkZXbDhzTHowR2dLRW93RUxla01PblNYKzUxWTdOQjQrK2VUUGE4YkM0TnUz?=
 =?utf-8?B?N3ZvQ0I3R0R3UjFzTHhCbG1LazIrZmp5bHZkOEtBRnU2K2MyQ0NHSmZHeDkr?=
 =?utf-8?B?elp2d1RPN2RCOUFjcEJiOVlpWGhrOGZ5V1VSRzFxd3luZDY4TmtDREp5NFdt?=
 =?utf-8?B?K0pBblFrUWQxRkNmSVUzR3E0YU9lYjZGdWNjNTNleWFmUzcvSUZpSnErTVR1?=
 =?utf-8?B?a2d0QWFhMHpHUUlhQ25nK0w0SHorcWlUVnllTE5pYU1SWGN0RkxzOHlwa0Ni?=
 =?utf-8?B?dHRXc29CM0pRRXdmWW5FR2JHdFZHbWJxZVFiVlFvSHQ0ZmNEdUF6L3IwTjJI?=
 =?utf-8?B?eFJsS0RUdzNadjIvSDU5bkwyWnA4TnZidVdvZUY5cXVsay9vakFQMGpkcGdB?=
 =?utf-8?B?Yzk0bDRtMUZvUUxoYkkzMGJMSmtwZWtYWFlPdzY1RldWeWtZcnlWUzV4Uk9o?=
 =?utf-8?B?Nkgwc1BFcHN0Y04wTnFkTmFTR0t4dEljd0VSVHpFaVhRYy9OSEhHeUFnaEJx?=
 =?utf-8?B?RGwzbjFyampXdlFhaCtTTDRETWlDUDlpMzF1QUEyWXFXTU12bExVU0ZBR2o1?=
 =?utf-8?B?aVlNZVdrSzJkRW1jdnFDNGNGaW9MYkIzeFNneWJkdi90N0JqWTJwaDQyeXlp?=
 =?utf-8?B?MzdhTjRaT3Y2Ync5VWFpL0J2UXB0Um56MUQzY3cza1ZWN1pEZW1Cc05aSngw?=
 =?utf-8?B?aUxEQVkxZ1R6bVhybGUxdlZBK2l6VkRMbGFCUy91QWdaeVkxK3NreFVKdXdx?=
 =?utf-8?B?cEVZTmYrYUkvTTg5eUN4Tk55dTVtRkd5MjFjOExQUi84UEk5MGJib2ljMDJQ?=
 =?utf-8?B?NGFwREsrRFdvTUZNT25oeFdMeXgydFk3dHoxd21zYnRyVEFTaGV4RjNpdStM?=
 =?utf-8?B?bFh5aTM5RmowTVRobTN1SVFXWllXU2xXVWtINzlJNEQvTkQ2QjFnRGNuUGxN?=
 =?utf-8?B?UDZCOG1tYzVRVFpzenFXd2JwWVl5Qlc0anczejJ2TjA5Ym5GZjZIMkdtdk1z?=
 =?utf-8?B?Y280UFdacEF0bStsM2VoY0xlbGRBbFloMDVZZVgzN1FFemh2dUIwaEdMMC9C?=
 =?utf-8?B?STBUZ2NsT08xMHF0bm9ocmJRdDA1WkdDWitJMWpNNnNJNE9HdVRSS3k3QktV?=
 =?utf-8?B?a1FreDJjN3lFYUJCYVdZcEJmelhURXRweFJPWlRuV1JXOHZzNVdGRVlpV21Y?=
 =?utf-8?B?MDM4dDJIWkQ0WDRKOHM1Q2txY3ZqUDVSOUNacEpHWmg1dTEwRVM0VW4xQXZI?=
 =?utf-8?B?ZVhEcWFFcGFvRElxSExoU2tCVkxuNFFJNnV0cEs5TS9KRVYyL2VLbUhTUUgw?=
 =?utf-8?B?YzNOZjZQVDcvZTZMSVE0N0d4YnhwY0hRZnVOd2hta2l4c3NMUXJvelJVSjZ1?=
 =?utf-8?B?Kzd1bTF6MDlEYkkwTWxOYnRMT29uQzhiRTl2M20zOExCbjYrWEd3QmNwU3Fj?=
 =?utf-8?B?VWkxVEs2anJuZUdxOWZzc0JFdnQ2THVWMW5kbkV3Z2taWXc5M29GL0xIa08z?=
 =?utf-8?B?MnhVUWRlSm82Q2hlakVybWRIUklZazFDd2hlZitNU3lXRERGSG1aVkY3V1h5?=
 =?utf-8?B?NFRhYytmU1d0RC84TDkyRVN4dFhhQWhIaGhGbWduSERMZU14Q3QyRXRHYVpy?=
 =?utf-8?B?dUpZN3owYTcya0FFNnB2ZGVVbFpMSnZnTUl1QlRCSzlxMnhXMXJ6WjNmTHVo?=
 =?utf-8?B?bUYvUlBzQTRPaGx0akZSdDZQN0YvcUQvQldjN3JMYkFUZHhzc2thTjBLSmMw?=
 =?utf-8?B?d2FOMXIyZWZDdWYvbWlQVTlxL1JZYlFWRGYySXF5NmRBc3owV0tZRTdyWG1k?=
 =?utf-8?Q?dzOkDdmy1/jWDm5c=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MW4PR03MB6347.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: def18922-ed25-4ebc-fcd0-08da4de3aeb7
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jun 2022 08:55:51.0086
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: n9haUDLJN1XDubN4hWStvLDoNVQPcKtZgRTVxPbec2/856DgFPtQS3DdL1M6tEgLvgJ+dUhF4tJYQVQp/XmWVccKs75xCSb+zU1l28yQO90=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5533

DQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogRHVycmFudCwgUGF1bCA8eGFkaW1n
bmlrQGdtYWlsLmNvbT4gDQpTZW50OiAxMyBKdW5lIDIwMjIgMTc6MzQNCg0KPiBKdXN0IHRvIGxl
dCB5b3Uga25vdyB0aGF0IEkgYW0gd29ya2luZyBvbiB0aGlzLi4uDQoNCk9rYXkhIDxSZWxpdmVk
IT4NCg0KPiBJdCdzIG1vcmUgb2YgYSBjYW4gb2Ygd29ybXMgdGhhbiBJIHRob3VnaHQuLi4gTm93
IHRoYXQgSSBoYXZlIHNwbGl0IHVwIHRoZSBwYXRjaGVzIEkgcmVhbGlzZSB0aGF0LCB0byB1c2Ug
YSBwYXJhbXMgc3RydWN0dXJlLCB3ZSBuZWVkIHRoYXQgdG8gYmUgdmVyc2lvbmVkIGFsb25nIHdp
dGggdGhlIGludGVyZmFjZS4gDQoNCkFsbCByaWdodC4gSSByZWNrb25lZCB3ZSB3ZXJlbid0IGdv
aW5nIHRvIGNoYW5nZSBpdCB0aGF0IG11Y2gsIGFuZCB0aGF0IHdlIGNvdWxkIHBvc3NpYmx5IGNv
dmVyIGFsbCB0aGUgY2hhbmdlcyB1bmRlciB0aGUgVklGIGludGVyZmFjZSB2ZXJzaW9uIG51bWJl
ci4gSSBrbm93IGluZGl2aWR1YWwgdmVyc2lvbmluZyBvZiBzdHJ1Y3R1cmVzIGlzIGEgdGhpbmcs
IGJ1dCB3ZSBuZWVkIG5vdCBzbGF2bGlzaGx5IGFwcGx5IGl0IHRvIGV2ZXJ5dGhpbmcuDQoNCj4g
QWxzbyB3aGVuIFhFTk5FVCBpcyB1c2luZyBhIGRvd24tcmV2IHZlcnNpb24sIHdoaWNoIGNvdWxk
IHRoZW9yZXRpY2FsbHkgYmUgYmVoaW5kIHRoZSBsYXRlc3QgdmVyc2lvbiBpbiBYRU5WSUYsIHdl
IGFyZSBnb2luZyB0byBuZWVkIGEgY2hhaW4gb2YgY2FsbGJhY2sgZnVuY3Rpb25zIHRvIHRyYW5z
bGF0ZSBlYWNoIHZlcnNpb24gb2YgdGhlIHBhcmFtcyBzdHJ1Y3R1cmUgdG8vZnJvbSB0aGUgcHJl
dmlvdXMgdmVyc2lvbiB1bnRpbCB3ZSBnZXQgdG8gdGhlIG9uZSB0aGF0IFhFTk5FVCBhY3R1YWxs
eSBkZWFscyB3aXRoLg0KDQpZZXMsIHRoYXQncyBhIHBvc3NpYmxlIHVzZSBjYXNlLCBidXQgaG9w
ZWZ1bGx5IHdlIHdvdWxkIGtub3cgd2hhdCB2ZXJzaW9ucyB1c2Ugd2hhdC4gQWdhaW4sIEkgd2Fz
IGhvcGluZyB0aGF0IHdlIHdlcmVuJ3QgZ29pbmcgdG8gY2hhbmdlIHRoZSBjYWxsYmFjayBwYXJh
bXMgNSBvciA2IHRpbWVzIGluIHF1aWNrIHN1Y2Nlc3Npb24uDQoNCj4gSSBoYXZlIHNvbWV0aGlu
ZyBwYXJ0aWFsbHkgZG9uZSwgYnV0IGl0J3MgZ29pbmcgdG8gdGFrZSBhbm90aGVyIGRheSBvciBz
by4NCg0KT0ssIHRoYW5rIHlvdS4NCg0KTUguDQo=


From win-pv-devel-bounces@lists.xenproject.org Tue Jun 14 14:40:59 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Jun 2022 14:40:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.349059.575269 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o17j1-0001sr-6t; Tue, 14 Jun 2022 14:40:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 349059.575269; Tue, 14 Jun 2022 14:40:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o17j1-0001sk-3e; Tue, 14 Jun 2022 14:40:59 +0000
Received: by outflank-mailman (input) for mailman id 349059;
 Tue, 14 Jun 2022 14:40:58 +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 1o17j0-0001sc-Dq
 for win-pv-devel@lists.xenproject.org; Tue, 14 Jun 2022 14:40:58 +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 1o17j0-0000kb-Cl; Tue, 14 Jun 2022 14:40:58 +0000
Received: from 54-240-197-224.amazon.com ([54.240.197.224]
 helo=CBG-R90WXYV0.cbg12.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 1o17j0-0005cY-3f; Tue, 14 Jun 2022 14:40:58 +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=Message-Id:Date:Subject:Cc:To:From;
	bh=HJsT7d8RZCsA18MurVSwl+00xK+Mxo+BoStoZa1/yw8=; b=5pMcKPPEfX2o2+yoGsMP0V4te3
	kVMnI6OSfC/cE2ysEueisycdWQKkkZOT+o8QNP843Rxwi7kfDFUBzD/gylrByY/GMz2t5dXjEILrq
	/XIPKD1xkydcsiTs9ZxCQs9Y+rtlF9AAQNRyy8CtvHSi0u+WlDDHSKGGgz64ChDRKKTw=;
From: Paul Durrant <paul@xen.org>
To: win-pv-devel@lists.xenproject.org
Cc: Paul Durrant <pdurrant@amazon.com>
Subject: [PATCH xenvif 1/4] Fix an IsZeroMemory() ASSERTion failure
Date: Tue, 14 Jun 2022 15:40:52 +0100
Message-Id: <20220614144055.5285-1-paul@xen.org>
X-Mailer: git-send-email 2.17.1

From: Paul Durrant <pdurrant@amazon.com>

The TargetProcessor field of the XENVIF_RECEIVER_RING structure is not being
cleared and hence may be non-zero when the buffer is checked. This patch
rectifies the situation.

Fixes: eb83dbd5162d ("Windows PV drivers fail to set up RSS when vCPU index >= 8")
Signed-off-by: Paul Durrant <pdurrant@amazon.com>
---
 src/xenvif/receiver.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/xenvif/receiver.c b/src/xenvif/receiver.c
index 505505ee886e..d4703b9bd322 100644
--- a/src/xenvif/receiver.c
+++ b/src/xenvif/receiver.c
@@ -2963,6 +2963,8 @@ __ReceiverRingTeardown(
     Ring->BackfillSize = 0;
     Ring->OffloadOptions.Value = 0;
 
+    RtlZeroMemory(&Ring->TargetProcessor, sizeof (PROCESSOR_NUMBER));
+
     KeFlushQueuedDpcs();
     RtlZeroMemory(&Ring->QueueDpc, sizeof (KDPC));
 
-- 
2.17.1



From win-pv-devel-bounces@lists.xenproject.org Tue Jun 14 14:41:00 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Jun 2022 14:41:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.349060.575272 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o17j2-0001uo-7v; Tue, 14 Jun 2022 14:41:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 349060.575272; Tue, 14 Jun 2022 14:41: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 1o17j2-0001uh-53; Tue, 14 Jun 2022 14:41:00 +0000
Received: by outflank-mailman (input) for mailman id 349060;
 Tue, 14 Jun 2022 14:40:59 +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 1o17j1-0001t1-5c
 for win-pv-devel@lists.xenproject.org; Tue, 14 Jun 2022 14:40:59 +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 1o17j1-0000kh-4N; Tue, 14 Jun 2022 14:40:59 +0000
Received: from 54-240-197-224.amazon.com ([54.240.197.224]
 helo=CBG-R90WXYV0.cbg12.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 1o17j0-0005cY-RF; Tue, 14 Jun 2022 14:40:59 +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=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	 bh=XcuruFuVvOz4Jw5hLpzZnRRJGFq1Y28S1lLfUkGKEZI=; b=PtLzlOOKp+pAKx9NMkB7diJAW
	wD9RdC684jQxqV4ucXRynVwkXiZhxCj+HcwmGslzpPFYhpT54UTx51Cv587SacJF94DkQxmS9M549
	84N0Lu02ykKvcX+JMnUcAliFa/gzdC/GkgsG/ObNKnANfLtsSRAy7BFoKpwA00Ptti20Y=;
From: Paul Durrant <paul@xen.org>
To: win-pv-devel@lists.xenproject.org
Cc: Paul Durrant <pdurrant@amazon.com>
Subject: [PATCH xenvif 2/4] Retire old versions of XENVIF_VIF_INTERFACE
Date: Tue, 14 Jun 2022 15:40:53 +0100
Message-Id: <20220614144055.5285-2-paul@xen.org>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20220614144055.5285-1-paul@xen.org>
References: <20220614144055.5285-1-paul@xen.org>

From: Paul Durrant <pdurrant@amazon.com>

Version 8 of the interface has been available since commit 4ccb01e2e24bc
("Pass the receive queue index to XENNET") in 2016. That's ample time for
deployed versions of XENNET to have been updated so let's retire interface
versions older than that.

Signed-off-by: Paul Durrant <pdurrant@amazon.com>
---
 include/revision.h      |   3 -
 include/vif_interface.h |  83 +--------------
 src/xenvif/vif.c        | 229 ----------------------------------------
 3 files changed, 1 insertion(+), 314 deletions(-)

diff --git a/include/revision.h b/include/revision.h
index 39476b2e8b08..9920b4c7314d 100644
--- a/include/revision.h
+++ b/include/revision.h
@@ -40,9 +40,6 @@
 
 //                    REVISION   C   V   ST  SU
 #define DEFINE_REVISION_TABLE                       \
-    DEFINE_REVISION(0x0800000B,  1,  6,  2,  1),    \
-    DEFINE_REVISION(0x0800000C,  1,  7,  2,  1),    \
-    DEFINE_REVISION(0x0800000D,  1,  8,  2,  1),    \
     DEFINE_REVISION(0x09000000,  1,  8,  2,  1),    \
     DEFINE_REVISION(0x09000001,  2,  8,  2,  1)
 
diff --git a/include/vif_interface.h b/include/vif_interface.h
index 20de31433297..0e5129452413 100644
--- a/include/vif_interface.h
+++ b/include/vif_interface.h
@@ -533,19 +533,6 @@ typedef VOID
     IN  PVOID       Cookie
     );
 
-typedef NTSTATUS
-(*XENVIF_VIF_TRANSMITTER_QUEUE_PACKET_V6)(
-    IN  PINTERFACE                  Interface,
-    IN  PMDL                        Mdl,
-    IN  ULONG                       Offset,
-    IN  ULONG                       Length,
-    IN  XENVIF_VIF_OFFLOAD_OPTIONS  OffloadOptions,
-    IN  USHORT                      MaximumSegmentSize,
-    IN  USHORT                      TagControlInformation,
-    IN  PXENVIF_PACKET_HASH         Hash,
-    IN  PVOID                       Cookie
-    );
-
 /*! \typedef XENVIF_VIF_TRANSMITTER_QUEUE_PACKET
     \brief Queue a packet at the provider's transmit side
 
@@ -826,74 +813,6 @@ typedef NTSTATUS
 DEFINE_GUID(GUID_XENVIF_VIF_INTERFACE, 
 0x76f279cd, 0xca11, 0x418b, 0x92, 0xe8, 0xc5, 0x7f, 0x77, 0xde, 0xe, 0x2e);
 
-/*! \struct _XENVIF_VIF_INTERFACE_V6
-    \brief VIF interface version 6
-    \ingroup interfaces
-*/
-struct _XENVIF_VIF_INTERFACE_V6 {
-    INTERFACE                                       Interface;
-    XENVIF_VIF_ACQUIRE                              Acquire;
-    XENVIF_VIF_RELEASE                              Release;
-    XENVIF_VIF_ENABLE                               Enable;
-    XENVIF_VIF_DISABLE                              Disable;
-    XENVIF_VIF_QUERY_STATISTIC                      QueryStatistic;
-    XENVIF_VIF_QUERY_RING_COUNT                     QueryRingCount;
-    XENVIF_VIF_UPDATE_HASH_MAPPING                  UpdateHashMapping;
-    XENVIF_VIF_RECEIVER_RETURN_PACKET               ReceiverReturnPacket;
-    XENVIF_VIF_RECEIVER_SET_OFFLOAD_OPTIONS         ReceiverSetOffloadOptions;
-    XENVIF_VIF_RECEIVER_SET_BACKFILL_SIZE           ReceiverSetBackfillSize;
-    XENVIF_VIF_RECEIVER_QUERY_RING_SIZE             ReceiverQueryRingSize;
-    XENVIF_VIF_RECEIVER_SET_HASH_ALGORITHM          ReceiverSetHashAlgorithm;
-    XENVIF_VIF_RECEIVER_QUERY_HASH_CAPABILITIES     ReceiverQueryHashCapabilities;
-    XENVIF_VIF_RECEIVER_UPDATE_HASH_PARAMETERS      ReceiverUpdateHashParameters;
-    XENVIF_VIF_TRANSMITTER_QUEUE_PACKET_V6          TransmitterQueuePacket;
-    XENVIF_VIF_TRANSMITTER_QUERY_OFFLOAD_OPTIONS    TransmitterQueryOffloadOptions;
-    XENVIF_VIF_TRANSMITTER_QUERY_LARGE_PACKET_SIZE  TransmitterQueryLargePacketSize;
-    XENVIF_VIF_TRANSMITTER_QUERY_RING_SIZE          TransmitterQueryRingSize;
-    XENVIF_VIF_MAC_QUERY_STATE                      MacQueryState;
-    XENVIF_VIF_MAC_QUERY_MAXIMUM_FRAME_SIZE         MacQueryMaximumFrameSize;
-    XENVIF_VIF_MAC_QUERY_PERMANENT_ADDRESS          MacQueryPermanentAddress;
-    XENVIF_VIF_MAC_QUERY_CURRENT_ADDRESS            MacQueryCurrentAddress;
-    XENVIF_VIF_MAC_QUERY_MULTICAST_ADDRESSES        MacQueryMulticastAddresses;
-    XENVIF_VIF_MAC_SET_MULTICAST_ADDRESSES          MacSetMulticastAddresses;
-    XENVIF_VIF_MAC_SET_FILTER_LEVEL                 MacSetFilterLevel;
-    XENVIF_VIF_MAC_QUERY_FILTER_LEVEL               MacQueryFilterLevel;
-};
-
-/*! \struct _XENVIF_VIF_INTERFACE_V7
-    \brief VIF interface version 7
-    \ingroup interfaces
-*/
-struct _XENVIF_VIF_INTERFACE_V7 {
-    INTERFACE                                       Interface;
-    XENVIF_VIF_ACQUIRE                              Acquire;
-    XENVIF_VIF_RELEASE                              Release;
-    XENVIF_VIF_ENABLE                               Enable;
-    XENVIF_VIF_DISABLE                              Disable;
-    XENVIF_VIF_QUERY_STATISTIC                      QueryStatistic;
-    XENVIF_VIF_QUERY_RING_COUNT                     QueryRingCount;
-    XENVIF_VIF_UPDATE_HASH_MAPPING                  UpdateHashMapping;
-    XENVIF_VIF_RECEIVER_RETURN_PACKET               ReceiverReturnPacket;
-    XENVIF_VIF_RECEIVER_SET_OFFLOAD_OPTIONS         ReceiverSetOffloadOptions;
-    XENVIF_VIF_RECEIVER_SET_BACKFILL_SIZE           ReceiverSetBackfillSize;
-    XENVIF_VIF_RECEIVER_QUERY_RING_SIZE             ReceiverQueryRingSize;
-    XENVIF_VIF_RECEIVER_SET_HASH_ALGORITHM          ReceiverSetHashAlgorithm;
-    XENVIF_VIF_RECEIVER_QUERY_HASH_CAPABILITIES     ReceiverQueryHashCapabilities;
-    XENVIF_VIF_RECEIVER_UPDATE_HASH_PARAMETERS      ReceiverUpdateHashParameters;
-    XENVIF_VIF_TRANSMITTER_QUEUE_PACKET             TransmitterQueuePacket;
-    XENVIF_VIF_TRANSMITTER_QUERY_OFFLOAD_OPTIONS    TransmitterQueryOffloadOptions;
-    XENVIF_VIF_TRANSMITTER_QUERY_LARGE_PACKET_SIZE  TransmitterQueryLargePacketSize;
-    XENVIF_VIF_TRANSMITTER_QUERY_RING_SIZE          TransmitterQueryRingSize;
-    XENVIF_VIF_MAC_QUERY_STATE                      MacQueryState;
-    XENVIF_VIF_MAC_QUERY_MAXIMUM_FRAME_SIZE         MacQueryMaximumFrameSize;
-    XENVIF_VIF_MAC_QUERY_PERMANENT_ADDRESS          MacQueryPermanentAddress;
-    XENVIF_VIF_MAC_QUERY_CURRENT_ADDRESS            MacQueryCurrentAddress;
-    XENVIF_VIF_MAC_QUERY_MULTICAST_ADDRESSES        MacQueryMulticastAddresses;
-    XENVIF_VIF_MAC_SET_MULTICAST_ADDRESSES          MacSetMulticastAddresses;
-    XENVIF_VIF_MAC_SET_FILTER_LEVEL                 MacSetFilterLevel;
-    XENVIF_VIF_MAC_QUERY_FILTER_LEVEL               MacQueryFilterLevel;
-};
-
 /*! \struct _XENVIF_VIF_INTERFACE_V8
     \brief VIF interface version 8
     \ingroup interfaces
@@ -938,7 +857,7 @@ typedef struct _XENVIF_VIF_INTERFACE_V8 XENVIF_VIF_INTERFACE, *PXENVIF_VIF_INTER
 
 #endif  // _WINDLL
 
-#define XENVIF_VIF_INTERFACE_VERSION_MIN    6
+#define XENVIF_VIF_INTERFACE_VERSION_MIN    8
 #define XENVIF_VIF_INTERFACE_VERSION_MAX    8
 
 #endif  // _XENVIF_INTERFACE_H
diff --git a/src/xenvif/vif.c b/src/xenvif/vif.c
index 69ced78cc0f7..33aceed5bba8 100644
--- a/src/xenvif/vif.c
+++ b/src/xenvif/vif.c
@@ -370,45 +370,6 @@ VifReceiverReturnPacket(
     ReleaseMrswLockShared(&Context->Lock);
 }
 
-static NTSTATUS
-VifTransmitterQueuePacketVersion6(
-    IN  PINTERFACE                  Interface,
-    IN  PMDL                        Mdl,
-    IN  ULONG                       Offset,
-    IN  ULONG                       Length,
-    IN  XENVIF_VIF_OFFLOAD_OPTIONS  OffloadOptions,
-    IN  USHORT                      MaximumSegmentSize,
-    IN  USHORT                      TagControlInformation,
-    IN  PXENVIF_PACKET_HASH         Hash,
-    IN  PVOID                       Cookie
-    )
-{
-    PXENVIF_VIF_CONTEXT             Context = Interface->Context;
-    NTSTATUS                        status;
-
-    AcquireMrswLockShared(&Context->Lock);
-
-    status = STATUS_UNSUCCESSFUL;
-    if (!Context->Enabled)
-        goto done;
-
-    status = TransmitterQueuePacket(FrontendGetTransmitter(Context->Frontend),
-                                    Mdl,
-                                    Offset,
-                                    Length,
-                                    OffloadOptions,
-                                    MaximumSegmentSize,
-                                    TagControlInformation,
-                                    Hash,
-                                    FALSE,
-                                    Cookie);
-
-done:
-    ReleaseMrswLockShared(&Context->Lock);
-
-    return status;
-}
-
 static NTSTATUS
 VifTransmitterQueuePacket(
     IN  PINTERFACE                  Interface,
@@ -828,66 +789,6 @@ done:
     ReleaseMrswLockExclusive(&Context->Lock, Irql, FALSE);
 }
 
-static struct _XENVIF_VIF_INTERFACE_V6 VifInterfaceVersion6 = {
-    { sizeof (struct _XENVIF_VIF_INTERFACE_V6), 6, NULL, NULL, NULL },
-    VifAcquire,
-    VifRelease,
-    VifEnable,
-    VifDisable,
-    VifQueryStatistic,
-    VifQueryRingCount,
-    VifUpdateHashMapping,
-    VifReceiverReturnPacket,
-    VifReceiverSetOffloadOptions,
-    VifReceiverSetBackfillSize,
-    VifReceiverQueryRingSize,
-    VifReceiverSetHashAlgorithm,
-    VifReceiverQueryHashCapabilities,
-    VifReceiverUpdateHashParameters,
-    VifTransmitterQueuePacketVersion6,
-    VifTransmitterQueryOffloadOptions,
-    VifTransmitterQueryLargePacketSize,
-    VifTransmitterQueryRingSize,
-    VifMacQueryState,
-    VifMacQueryMaximumFrameSize,
-    VifMacQueryPermanentAddress,
-    VifMacQueryCurrentAddress,
-    VifMacQueryMulticastAddresses,
-    VifMacSetMulticastAddresses,
-    VifMacSetFilterLevel,
-    VifMacQueryFilterLevel
-};
-
-static struct _XENVIF_VIF_INTERFACE_V7 VifInterfaceVersion7 = {
-    { sizeof (struct _XENVIF_VIF_INTERFACE_V7), 7, NULL, NULL, NULL },
-    VifAcquire,
-    VifRelease,
-    VifEnable,
-    VifDisable,
-    VifQueryStatistic,
-    VifQueryRingCount,
-    VifUpdateHashMapping,
-    VifReceiverReturnPacket,
-    VifReceiverSetOffloadOptions,
-    VifReceiverSetBackfillSize,
-    VifReceiverQueryRingSize,
-    VifReceiverSetHashAlgorithm,
-    VifReceiverQueryHashCapabilities,
-    VifReceiverUpdateHashParameters,
-    VifTransmitterQueuePacket,
-    VifTransmitterQueryOffloadOptions,
-    VifTransmitterQueryLargePacketSize,
-    VifTransmitterQueryRingSize,
-    VifMacQueryState,
-    VifMacQueryMaximumFrameSize,
-    VifMacQueryPermanentAddress,
-    VifMacQueryCurrentAddress,
-    VifMacQueryMulticastAddresses,
-    VifMacSetMulticastAddresses,
-    VifMacSetFilterLevel,
-    VifMacQueryFilterLevel
-};
-
 static struct _XENVIF_VIF_INTERFACE_V8 VifInterfaceVersion8 = {
     { sizeof (struct _XENVIF_VIF_INTERFACE_V8), 8, NULL, NULL, NULL },
     VifAcquire,
@@ -982,40 +883,6 @@ VifGetInterface(
     NTSTATUS                    status;
 
     switch (Version) {
-    case 6: {
-        struct _XENVIF_VIF_INTERFACE_V6 *VifInterface;
-
-        VifInterface = (struct _XENVIF_VIF_INTERFACE_V6 *)Interface;
-
-        status = STATUS_BUFFER_OVERFLOW;
-        if (Size < sizeof (struct _XENVIF_VIF_INTERFACE_V6))
-            break;
-
-        *VifInterface = VifInterfaceVersion6;
-
-        ASSERT3U(Interface->Version, ==, Version);
-        Interface->Context = Context;
-
-        status = STATUS_SUCCESS;
-        break;
-    }
-    case 7: {
-        struct _XENVIF_VIF_INTERFACE_V7 *VifInterface;
-
-        VifInterface = (struct _XENVIF_VIF_INTERFACE_V7 *)Interface;
-
-        status = STATUS_BUFFER_OVERFLOW;
-        if (Size < sizeof (struct _XENVIF_VIF_INTERFACE_V7))
-            break;
-
-        *VifInterface = VifInterfaceVersion7;
-
-        ASSERT3U(Interface->Version, ==, Version);
-        Interface->Context = Context;
-
-        status = STATUS_SUCCESS;
-        break;
-    }
     case 8: {
         struct _XENVIF_VIF_INTERFACE_V8 *VifInterface;
 
@@ -1068,70 +935,6 @@ VifTeardown(
     Trace("<====\n");
 }
 
-static FORCEINLINE VOID
-__VifReceiverQueuePacketVersion6(
-    IN  PXENVIF_VIF_CONTEXT             Context,
-    IN  ULONG                           Index,
-    IN  PMDL                            Mdl,
-    IN  ULONG                           Offset,
-    IN  ULONG                           Length,
-    IN  XENVIF_PACKET_CHECKSUM_FLAGS    Flags,
-    IN  USHORT                          MaximumSegmentSize,
-    IN  USHORT                          TagControlInformation,
-    IN  PXENVIF_PACKET_INFO             Info,
-    IN  PXENVIF_PACKET_HASH             Hash,
-    IN  BOOLEAN                         More,
-    IN  PVOID                           Cookie
-    )
-{
-    UNREFERENCED_PARAMETER(Index);
-    UNREFERENCED_PARAMETER(More);
-
-    Context->Callback(Context->Argument,
-                      XENVIF_RECEIVER_QUEUE_PACKET,
-                      Mdl,
-                      Offset,
-                      Length,
-                      Flags,
-                      MaximumSegmentSize,
-                      TagControlInformation,
-                      Info,
-                      Hash,
-                      Cookie);
-}
-
-static FORCEINLINE VOID
-__VifReceiverQueuePacketVersion7(
-    IN  PXENVIF_VIF_CONTEXT             Context,
-    IN  ULONG                           Index,
-    IN  PMDL                            Mdl,
-    IN  ULONG                           Offset,
-    IN  ULONG                           Length,
-    IN  XENVIF_PACKET_CHECKSUM_FLAGS    Flags,
-    IN  USHORT                          MaximumSegmentSize,
-    IN  USHORT                          TagControlInformation,
-    IN  PXENVIF_PACKET_INFO             Info,
-    IN  PXENVIF_PACKET_HASH             Hash,
-    IN  BOOLEAN                         More,
-    IN  PVOID                           Cookie
-    )
-{
-    UNREFERENCED_PARAMETER(Index);
-
-    Context->Callback(Context->Argument,
-                      XENVIF_RECEIVER_QUEUE_PACKET,
-                      Mdl,
-                      Offset,
-                      Length,
-                      Flags,
-                      MaximumSegmentSize,
-                      TagControlInformation,
-                      Info,
-                      Hash,
-                      More,
-                      Cookie);
-}
-
 static FORCEINLINE VOID
 __VifReceiverQueuePacket(
     IN  PXENVIF_VIF_CONTEXT             Context,
@@ -1185,36 +988,6 @@ VifReceiverQueuePacket(
     KeRaiseIrql(DISPATCH_LEVEL, &Irql);
 
     switch (Context->Version) {
-    case 6:
-        __VifReceiverQueuePacketVersion6(Context,
-                                         Index,
-                                         Mdl,
-                                         Offset,
-                                         Length,
-                                         Flags,
-                                         MaximumSegmentSize,
-                                         TagControlInformation,
-                                         Info,
-                                         Hash,
-                                         More,
-                                         Cookie);
-        break;
-
-    case 7:
-        __VifReceiverQueuePacketVersion7(Context,
-                                         Index,
-                                         Mdl,
-                                         Offset,
-                                         Length,
-                                         Flags,
-                                         MaximumSegmentSize,
-                                         TagControlInformation,
-                                         Info,
-                                         Hash,
-                                         More,
-                                         Cookie);
-        break;
-
     case 8:
         __VifReceiverQueuePacket(Context,
                                  Index,
@@ -1246,8 +1019,6 @@ VifTransmitterReturnPacket(
     )
 {
     switch (Context->Version) {
-    case 6:
-    case 7:
     case 8:
         Context->Callback(Context->Argument,
                           XENVIF_TRANSMITTER_RETURN_PACKET,
-- 
2.17.1



From win-pv-devel-bounces@lists.xenproject.org Tue Jun 14 14:41:01 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Jun 2022 14:41:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.349061.575277 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o17j3-0001wo-9v; Tue, 14 Jun 2022 14:41:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 349061.575277; Tue, 14 Jun 2022 14:41:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o17j3-0001wg-6f; Tue, 14 Jun 2022 14:41:01 +0000
Received: by outflank-mailman (input) for mailman id 349061;
 Tue, 14 Jun 2022 14:40:59 +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 1o17j1-0001ub-UU
 for win-pv-devel@lists.xenproject.org; Tue, 14 Jun 2022 14:40:59 +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 1o17j1-0000km-Rr; Tue, 14 Jun 2022 14:40:59 +0000
Received: from 54-240-197-224.amazon.com ([54.240.197.224]
 helo=CBG-R90WXYV0.cbg12.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 1o17j1-0005cY-Is; Tue, 14 Jun 2022 14:40:59 +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=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	 bh=LCa2q37jYXz5WpJh1oJcGlnEE4OLo+DcI7EH/VTx+dE=; b=dXjQ8dyoc3GTgRYMTVShop9ma
	G53r4J6+vfZxxsv6ELQoKUAQ9QjJbFhy3pW7ZFmQ2A11+XIcibA6lqIEHPm+MyfVifPQSteBTbDMo
	qPvpb+mt9dIa+rOCYPQ7nOW+KIIMJLOATFQuSDNv7OpTx4l2AadgYTczAl7nx3RB0V300=;
From: Paul Durrant <paul@xen.org>
To: win-pv-devel@lists.xenproject.org
Cc: Paul Durrant <pdurrant@amazon.com>
Subject: [PATCH xenvif 3/4] Add version 9 of XENVIF_VIF_INTERFACE
Date: Tue, 14 Jun 2022 15:40:54 +0100
Message-Id: <20220614144055.5285-3-paul@xen.org>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20220614144055.5285-1-paul@xen.org>
References: <20220614144055.5285-1-paul@xen.org>

From: Paul Durrant <pdurrant@amazon.com>

This changes XENVIF_VIF_CALLBACK from a varargs function into function taking
a pointer to a new XENVIF_VIF_CALLBACK_PARAMETERS union which is now used to
pass all the arguments specific to the callback type.
To maintain support for version 8 clients a VifCallbackVersion8() function is
added as a shim to unpack the parameters structure and call the client's
varargs callback function.

Signed-off-by: Paul Durrant <pdurrant@amazon.com>
---
 include/revision.h      |   3 +-
 include/vif_interface.h | 125 +++++++++++++++++-----
 src/xenvif/vif.c        | 228 ++++++++++++++++++++++++++++------------
 3 files changed, 264 insertions(+), 92 deletions(-)

diff --git a/include/revision.h b/include/revision.h
index 9920b4c7314d..64e6e34ae14a 100644
--- a/include/revision.h
+++ b/include/revision.h
@@ -41,6 +41,7 @@
 //                    REVISION   C   V   ST  SU
 #define DEFINE_REVISION_TABLE                       \
     DEFINE_REVISION(0x09000000,  1,  8,  2,  1),    \
-    DEFINE_REVISION(0x09000001,  2,  8,  2,  1)
+    DEFINE_REVISION(0x09000001,  2,  8,  2,  1),    \
+    DEFINE_REVISION(0x09000002,  2,  9,  2,  1)
 
 #endif  // _REVISION_H
diff --git a/include/vif_interface.h b/include/vif_interface.h
index 0e5129452413..c157c5ca798e 100644
--- a/include/vif_interface.h
+++ b/include/vif_interface.h
@@ -388,6 +388,49 @@ typedef enum _XENVIF_VIF_CALLBACK_TYPE {
     XENVIF_MAC_STATE_CHANGE
 } XENVIF_VIF_CALLBACK_TYPE, *PXENVIF_VIF_CALLBACK_TYPE;
 
+/*! \typedef XENVIF_VIF_CALLBACK_PARAMETERS_V9
+    \brief VIF interface version 9 parameters for provider to subscriber callback function
+
+    \b XENVIF_TRANSMITTER_RETURN_PACKET:
+    \param Cookie Cookie supplied to XENVIF_TRANSMITTER_QUEUE_PACKET
+    \param Completion Packet completion information
+
+    \b XENVIF_RECEIVER_QUEUE_PACKET:
+    \param Index The index of the queue on which the packet was received
+    \param Mdl The initial MDL of the packet
+    \param Offset The offset of the packet data in the initial MDL
+    \param Length The total length of the packet
+    \param Flags Packet checksum flags
+    \param MaximumSegmentSize The TCP MSS (used only if OffloadOptions.OffloadIpVersion[4|6]LargePacket is set)
+    \param TagControlInformation The VLAN TCI (used only if OffloadOptions.OffloadTagManipulation is set)
+    \param Info Header information for the packet
+    \param Hash Hash information for the packet
+    \param More A flag to indicate whether more packets will be queued for the same CPU
+    \param Cookie Cookie that should be passed to XENVIF_RECEIVER_RETURN_PACKET method
+
+    \b XENVIF_MAC_STATE_CHANGE:
+    No additional arguments
+*/
+union _XENVIF_VIF_CALLBACK_PARAMETERS_V9 {
+    struct {
+        PVOID                                       Cookie;
+        PXENVIF_TRANSMITTER_PACKET_COMPLETION_INFO  Completion;
+    } TransmitterReturnPacket;
+    struct {
+        ULONG                           Index;
+        PMDL                            Mdl;
+        ULONG                           Offset;
+        ULONG                           Length;
+        XENVIF_PACKET_CHECKSUM_FLAGS    Flags;
+        USHORT                          MaximumSegmentSize;
+        USHORT                          TagControlInformation;
+        PXENVIF_PACKET_INFO             Info;
+        PXENVIF_PACKET_HASH             Hash;
+        BOOLEAN                         More;
+        PVOID                           Cookie;
+    } ReceiverQueuePacket;
+};
+
 /*! \typedef XENVIF_VIF_ACQUIRE
     \brief Acquire a reference to the VIF interface
 
@@ -408,38 +451,34 @@ typedef VOID
     IN  PINTERFACE  Interface
     );
 
+typedef VOID
+(*XENVIF_VIF_CALLBACK_V8)(
+    IN  PVOID                       Argument OPTIONAL,
+    IN  XENVIF_VIF_CALLBACK_TYPE    Type,
+    ...
+    );
+
+typedef union _XENVIF_VIF_CALLBACK_PARAMETERS_V9 XENVIF_VIF_CALLBACK_PARAMETERS, *PXENVIF_VIF_CALLBACK_PARAMETERS;
+
 /*! \typedef XENVIF_VIF_CALLBACK
     \brief Provider to subscriber callback function
 
     \param Argument An optional context argument passed to the callback
     \param Type The callback type
-    \param ... Additional paramaters required by \a Type
-
-    \b XENVIF_TRANSMITTER_RETURN_PACKET:
-    \param Cookie Cookie supplied to XENVIF_TRANSMITTER_QUEUE_PACKET
-    \param Completion Packet completion information
-
-    \b XENVIF_RECEIVER_QUEUE_PACKET:
-    \param Index The index of the queue on which the packet was received
-    \param Mdl The initial MDL of the packet
-    \param Offset The offset of the packet data in the initial MDL
-    \param Length The total length of the packet
-    \param Flags Packet checksum flags
-    \param MaximumSegmentSize The TCP MSS (used only if OffloadOptions.OffloadIpVersion[4|6]LargePacket is set)
-    \param TagControlInformation The VLAN TCI (used only if OffloadOptions.OffloadTagManipulation is set)
-    \param Info Header information for the packet
-    \param Hash Hash information for the packet
-    \param More A flag to indicate whether more packets will be queued for the same CPU
-    \param Cookie Cookie that should be passed to XENVIF_RECEIVER_RETURN_PACKET method
-
-    \b XENVIF_MAC_STATE_CHANGE:
-    No additional arguments
+    \param Parameters The callback parameters
 */
 typedef VOID
 (*XENVIF_VIF_CALLBACK)(
-    IN  PVOID                       Argument OPTIONAL,
-    IN  XENVIF_VIF_CALLBACK_TYPE    Type,
-    ...
+    IN  PVOID                           Argument OPTIONAL,
+    IN  XENVIF_VIF_CALLBACK_TYPE        Type,
+    IN  PXENVIF_VIF_CALLBACK_PARAMETERS Parameters
+    );
+
+typedef NTSTATUS
+(*XENVIF_VIF_ENABLE_V8)(
+    IN  PINTERFACE              Interface,
+    IN  XENVIF_VIF_CALLBACK_V8  Callback,
+    IN  PVOID                   Argument OPTIONAL
     );
 
 /*! \typedef XENVIF_VIF_ENABLE
@@ -818,6 +857,40 @@ DEFINE_GUID(GUID_XENVIF_VIF_INTERFACE,
     \ingroup interfaces
 */
 struct _XENVIF_VIF_INTERFACE_V8 {
+    INTERFACE                                       Interface;
+    XENVIF_VIF_ACQUIRE                              Acquire;
+    XENVIF_VIF_RELEASE                              Release;
+    XENVIF_VIF_ENABLE_V8                            EnableVersion8;
+    XENVIF_VIF_DISABLE                              Disable;
+    XENVIF_VIF_QUERY_STATISTIC                      QueryStatistic;
+    XENVIF_VIF_QUERY_RING_COUNT                     QueryRingCount;
+    XENVIF_VIF_UPDATE_HASH_MAPPING                  UpdateHashMapping;
+    XENVIF_VIF_RECEIVER_RETURN_PACKET               ReceiverReturnPacket;
+    XENVIF_VIF_RECEIVER_SET_OFFLOAD_OPTIONS         ReceiverSetOffloadOptions;
+    XENVIF_VIF_RECEIVER_SET_BACKFILL_SIZE           ReceiverSetBackfillSize;
+    XENVIF_VIF_RECEIVER_QUERY_RING_SIZE             ReceiverQueryRingSize;
+    XENVIF_VIF_RECEIVER_SET_HASH_ALGORITHM          ReceiverSetHashAlgorithm;
+    XENVIF_VIF_RECEIVER_QUERY_HASH_CAPABILITIES     ReceiverQueryHashCapabilities;
+    XENVIF_VIF_RECEIVER_UPDATE_HASH_PARAMETERS      ReceiverUpdateHashParameters;
+    XENVIF_VIF_TRANSMITTER_QUEUE_PACKET             TransmitterQueuePacket;
+    XENVIF_VIF_TRANSMITTER_QUERY_OFFLOAD_OPTIONS    TransmitterQueryOffloadOptions;
+    XENVIF_VIF_TRANSMITTER_QUERY_LARGE_PACKET_SIZE  TransmitterQueryLargePacketSize;
+    XENVIF_VIF_TRANSMITTER_QUERY_RING_SIZE          TransmitterQueryRingSize;
+    XENVIF_VIF_MAC_QUERY_STATE                      MacQueryState;
+    XENVIF_VIF_MAC_QUERY_MAXIMUM_FRAME_SIZE         MacQueryMaximumFrameSize;
+    XENVIF_VIF_MAC_QUERY_PERMANENT_ADDRESS          MacQueryPermanentAddress;
+    XENVIF_VIF_MAC_QUERY_CURRENT_ADDRESS            MacQueryCurrentAddress;
+    XENVIF_VIF_MAC_QUERY_MULTICAST_ADDRESSES        MacQueryMulticastAddresses;
+    XENVIF_VIF_MAC_SET_MULTICAST_ADDRESSES          MacSetMulticastAddresses;
+    XENVIF_VIF_MAC_SET_FILTER_LEVEL                 MacSetFilterLevel;
+    XENVIF_VIF_MAC_QUERY_FILTER_LEVEL               MacQueryFilterLevel;
+};
+
+/*! \struct _XENVIF_VIF_INTERFACE_V9
+    \brief VIF interface version 9
+    \ingroup interfaces
+*/
+struct _XENVIF_VIF_INTERFACE_V9 {
     INTERFACE                                       Interface;
     XENVIF_VIF_ACQUIRE                              Acquire;
     XENVIF_VIF_RELEASE                              Release;
@@ -847,7 +920,7 @@ struct _XENVIF_VIF_INTERFACE_V8 {
     XENVIF_VIF_MAC_QUERY_FILTER_LEVEL               MacQueryFilterLevel;
 };
 
-typedef struct _XENVIF_VIF_INTERFACE_V8 XENVIF_VIF_INTERFACE, *PXENVIF_VIF_INTERFACE;
+typedef struct _XENVIF_VIF_INTERFACE_V9 XENVIF_VIF_INTERFACE, *PXENVIF_VIF_INTERFACE;
 
 /*! \def XENVIF_VIF
     \brief Macro at assist in method invocation
@@ -858,6 +931,6 @@ typedef struct _XENVIF_VIF_INTERFACE_V8 XENVIF_VIF_INTERFACE, *PXENVIF_VIF_INTER
 #endif  // _WINDLL
 
 #define XENVIF_VIF_INTERFACE_VERSION_MIN    8
-#define XENVIF_VIF_INTERFACE_VERSION_MAX    8
+#define XENVIF_VIF_INTERFACE_VERSION_MAX    9
 
 #endif  // _XENVIF_INTERFACE_H
diff --git a/src/xenvif/vif.c b/src/xenvif/vif.c
index 33aceed5bba8..102f24d12888 100644
--- a/src/xenvif/vif.c
+++ b/src/xenvif/vif.c
@@ -53,6 +53,8 @@ struct _XENVIF_VIF_CONTEXT {
     ULONG                       Version;
     XENVIF_VIF_CALLBACK         Callback;
     PVOID                       Argument;
+    XENVIF_VIF_CALLBACK_V8      CallbackVersion8;
+    PVOID                       ArgumentVersion8;
     PXENVIF_THREAD              MacThread;
     KEVENT                      MacEvent;
     XENBUS_SUSPEND_INTERFACE    SuspendInterface;
@@ -104,10 +106,9 @@ VifMac(
 
         if (ThreadIsAlerted(Self))
             break;
-        
+
         if (Context->Enabled)
-            Context->Callback(Context->Argument,
-                              XENVIF_MAC_STATE_CHANGE);
+            Context->Callback(Context->Argument, XENVIF_MAC_STATE_CHANGE, NULL);
 
         KeSetEvent(&Context->MacEvent, IO_NO_INCREMENT, FALSE);
     }
@@ -236,6 +237,93 @@ fail1:
     return status;
 }
 
+static VOID
+VifCallbackVersion8(
+    IN  PVOID                           _Argument OPTIONAL,
+    IN  XENVIF_VIF_CALLBACK_TYPE        Type,
+    IN  PXENVIF_VIF_CALLBACK_PARAMETERS Parameters
+    )
+{
+    PXENVIF_VIF_CONTEXT                 Context = _Argument;
+    XENVIF_VIF_CALLBACK_V8              Callback = Context->CallbackVersion8;
+    PVOID                               Argument = Context->ArgumentVersion8;
+
+    switch (Type) {
+    case XENVIF_TRANSMITTER_RETURN_PACKET: {
+        PVOID                                       Cookie = Parameters->TransmitterReturnPacket.Cookie;
+        PXENVIF_TRANSMITTER_PACKET_COMPLETION_INFO  Completion = Parameters->TransmitterReturnPacket.Completion;
+
+        Callback(Argument,
+                 XENVIF_TRANSMITTER_RETURN_PACKET,
+                 Cookie,
+                 Completion);
+        break;
+    }
+    case XENVIF_RECEIVER_QUEUE_PACKET: {
+        ULONG                           Index = Parameters->ReceiverQueuePacket.Index;
+        PMDL                            Mdl = Parameters->ReceiverQueuePacket.Mdl;
+        ULONG                           Offset = Parameters->ReceiverQueuePacket.Offset;
+        ULONG                           Length=  Parameters->ReceiverQueuePacket.Length;
+        XENVIF_PACKET_CHECKSUM_FLAGS    Flags = Parameters->ReceiverQueuePacket.Flags;
+        USHORT                          MaximumSegmentSize = Parameters->ReceiverQueuePacket.MaximumSegmentSize;
+        USHORT                          TagControlInformation = Parameters->ReceiverQueuePacket.TagControlInformation;
+        PXENVIF_PACKET_INFO             Info = Parameters->ReceiverQueuePacket.Info;
+        PXENVIF_PACKET_HASH             Hash = Parameters->ReceiverQueuePacket.Hash;
+        BOOLEAN                         More = Parameters->ReceiverQueuePacket.More;
+        PVOID                           Cookie = Parameters->ReceiverQueuePacket.Cookie;
+
+        Callback(Argument,
+                 XENVIF_RECEIVER_QUEUE_PACKET,
+                 Index,
+                 Mdl,
+                 Offset,
+                 Length,
+                 Flags,
+                 MaximumSegmentSize,
+                 TagControlInformation,
+                 Info,
+                 Hash,
+                 More,
+                 Cookie);
+        break;
+    }
+    case XENVIF_MAC_STATE_CHANGE:
+        Callback(Argument, XENVIF_MAC_STATE_CHANGE);
+        break;
+
+    default:
+        ASSERT(FALSE);
+        break;
+    }
+}
+
+static NTSTATUS
+VifEnableVersion8(
+    IN  PINTERFACE                  Interface,
+    IN  XENVIF_VIF_CALLBACK_V8      Callback,
+    IN  PVOID                       Argument
+    )
+{
+    PXENVIF_VIF_CONTEXT             Context = Interface->Context;
+    KIRQL                           Irql;
+    NTSTATUS                        status;
+
+    Trace("====>\n");
+
+    AcquireMrswLockExclusive(&Context->Lock, &Irql);
+
+    Context->CallbackVersion8 = Callback;
+    Context->ArgumentVersion8 = Argument;
+
+    ReleaseMrswLockExclusive(&Context->Lock, Irql, FALSE);
+
+    status = VifEnable(Interface, VifCallbackVersion8, Context);
+
+    Trace("<====\n");
+
+    return status;
+}
+
 static VOID
 VifDisable(
     IN  PINTERFACE      Interface
@@ -287,6 +375,9 @@ VifDisable(
     Context->Argument = NULL;
     Context->Callback = NULL;
 
+    Context->ArgumentVersion8 = NULL;
+    Context->CallbackVersion8 = NULL;
+
     ReleaseMrswLockShared(&Context->Lock);
 
 done:
@@ -793,6 +884,36 @@ static struct _XENVIF_VIF_INTERFACE_V8 VifInterfaceVersion8 = {
     { sizeof (struct _XENVIF_VIF_INTERFACE_V8), 8, NULL, NULL, NULL },
     VifAcquire,
     VifRelease,
+    VifEnableVersion8,
+    VifDisable,
+    VifQueryStatistic,
+    VifQueryRingCount,
+    VifUpdateHashMapping,
+    VifReceiverReturnPacket,
+    VifReceiverSetOffloadOptions,
+    VifReceiverSetBackfillSize,
+    VifReceiverQueryRingSize,
+    VifReceiverSetHashAlgorithm,
+    VifReceiverQueryHashCapabilities,
+    VifReceiverUpdateHashParameters,
+    VifTransmitterQueuePacket,
+    VifTransmitterQueryOffloadOptions,
+    VifTransmitterQueryLargePacketSize,
+    VifTransmitterQueryRingSize,
+    VifMacQueryState,
+    VifMacQueryMaximumFrameSize,
+    VifMacQueryPermanentAddress,
+    VifMacQueryCurrentAddress,
+    VifMacQueryMulticastAddresses,
+    VifMacSetMulticastAddresses,
+    VifMacSetFilterLevel,
+    VifMacQueryFilterLevel
+};
+
+static struct _XENVIF_VIF_INTERFACE_V9 VifInterfaceVersion9 = {
+    { sizeof (struct _XENVIF_VIF_INTERFACE_V9), 9, NULL, NULL, NULL },
+    VifAcquire,
+    VifRelease,
     VifEnable,
     VifDisable,
     VifQueryStatistic,
@@ -900,6 +1021,23 @@ VifGetInterface(
         status = STATUS_SUCCESS;
         break;
     }
+    case 9: {
+        struct _XENVIF_VIF_INTERFACE_V9 *VifInterface;
+
+        VifInterface = (struct _XENVIF_VIF_INTERFACE_V9 *)Interface;
+
+        status = STATUS_BUFFER_OVERFLOW;
+        if (Size < sizeof (struct _XENVIF_VIF_INTERFACE_V9))
+            break;
+
+        *VifInterface = VifInterfaceVersion9;
+
+        ASSERT3U(Interface->Version, ==, Version);
+        Interface->Context = Context;
+
+        status = STATUS_SUCCESS;
+        break;
+    }
     default:
         status = STATUS_NOT_SUPPORTED;
         break;
@@ -935,38 +1073,6 @@ VifTeardown(
     Trace("<====\n");
 }
 
-static FORCEINLINE VOID
-__VifReceiverQueuePacket(
-    IN  PXENVIF_VIF_CONTEXT             Context,
-    IN  ULONG                           Index,
-    IN  PMDL                            Mdl,
-    IN  ULONG                           Offset,
-    IN  ULONG                           Length,
-    IN  XENVIF_PACKET_CHECKSUM_FLAGS    Flags,
-    IN  USHORT                          MaximumSegmentSize,
-    IN  USHORT                          TagControlInformation,
-    IN  PXENVIF_PACKET_INFO             Info,
-    IN  PXENVIF_PACKET_HASH             Hash,
-    IN  BOOLEAN                         More,
-    IN  PVOID                           Cookie
-    )
-{
-    Context->Callback(Context->Argument,
-                      XENVIF_RECEIVER_QUEUE_PACKET,
-                      Index,
-                      Mdl,
-                      Offset,
-                      Length,
-                      Flags,
-                      MaximumSegmentSize,
-                      TagControlInformation,
-                      Info,
-                      Hash,
-                      More,
-                      Cookie);
-
-}
-
 VOID
 VifReceiverQueuePacket(
     IN  PXENVIF_VIF_CONTEXT             Context,
@@ -984,29 +1090,25 @@ VifReceiverQueuePacket(
     )
 {
     KIRQL                               Irql;
+    XENVIF_VIF_CALLBACK_PARAMETERS      Parameters;
+
+    RtlZeroMemory(&Parameters, sizeof (XENVIF_VIF_CALLBACK_PARAMETERS));
 
     KeRaiseIrql(DISPATCH_LEVEL, &Irql);
 
-    switch (Context->Version) {
-    case 8:
-        __VifReceiverQueuePacket(Context,
-                                 Index,
-                                 Mdl,
-                                 Offset,
-                                 Length,
-                                 Flags,
-                                 MaximumSegmentSize,
-                                 TagControlInformation,
-                                 Info,
-                                 Hash,
-                                 More,
-                                 Cookie);
-        break;
+    Parameters.ReceiverQueuePacket.Index = Index;
+    Parameters.ReceiverQueuePacket.Mdl = Mdl;
+    Parameters.ReceiverQueuePacket.Offset = Offset;
+    Parameters.ReceiverQueuePacket.Length = Length;
+    Parameters.ReceiverQueuePacket.Flags = Flags;
+    Parameters.ReceiverQueuePacket.MaximumSegmentSize = MaximumSegmentSize;
+    Parameters.ReceiverQueuePacket.TagControlInformation = TagControlInformation;
+    Parameters.ReceiverQueuePacket.Info = Info;
+    Parameters.ReceiverQueuePacket.Hash = Hash;
+    Parameters.ReceiverQueuePacket.More = More;
+    Parameters.ReceiverQueuePacket.Cookie = Cookie;
 
-    default:
-        ASSERT(FALSE);
-        break;
-    }
+    Context->Callback(Context->Argument, XENVIF_RECEIVER_QUEUE_PACKET, &Parameters);
 
     KeLowerIrql(Irql);
 }
@@ -1018,18 +1120,14 @@ VifTransmitterReturnPacket(
     IN  PXENVIF_TRANSMITTER_PACKET_COMPLETION_INFO  Completion
     )
 {
-    switch (Context->Version) {
-    case 8:
-        Context->Callback(Context->Argument,
-                          XENVIF_TRANSMITTER_RETURN_PACKET,
-                          Cookie,
-                          Completion);
-        break;
+    XENVIF_VIF_CALLBACK_PARAMETERS                  Parameters;
 
-    default:
-        ASSERT(FALSE);
-        break;
-    }
+    RtlZeroMemory(&Parameters, sizeof (XENVIF_VIF_CALLBACK_PARAMETERS));
+
+    Parameters.TransmitterReturnPacket.Cookie = Cookie;
+    Parameters.TransmitterReturnPacket.Completion = Completion;
+
+    Context->Callback(Context->Argument, XENVIF_TRANSMITTER_RETURN_PACKET, &Parameters);
 }
 
 PXENVIF_THREAD
-- 
2.17.1



From win-pv-devel-bounces@lists.xenproject.org Tue Jun 14 14:41:02 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Jun 2022 14:41:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.349062.575280 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o17j4-0001z0-Cb; Tue, 14 Jun 2022 14:41:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 349062.575280; Tue, 14 Jun 2022 14:41:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o17j4-0001yt-8z; Tue, 14 Jun 2022 14:41:02 +0000
Received: by outflank-mailman (input) for mailman id 349062;
 Tue, 14 Jun 2022 14:41:00 +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 1o17j2-0001wa-St
 for win-pv-devel@lists.xenproject.org; Tue, 14 Jun 2022 14:41:00 +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 1o17j2-0000kt-RJ; Tue, 14 Jun 2022 14:41:00 +0000
Received: from 54-240-197-224.amazon.com ([54.240.197.224]
 helo=CBG-R90WXYV0.cbg12.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 1o17j2-0005cY-I6; Tue, 14 Jun 2022 14:41:00 +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=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	 bh=Ts1jBKLwO9rxKbfYWxvFUvQsIgsEymicmLTDE2KgyUA=; b=Ih1ciqcwxYKsdusOp9BGSYYhv
	aYh48enE+g0NUS/SUd4CsrZyF1AhaN+rcZFCPb7DlEKp+EbeH61DbHanjw1a6G9155tglj3SiefBe
	kql6rxzSHCcy//T5HZ3voiOACZu7IHpEtdb7eiDEKaje9UnczMmaFT4b74UFXhYUuIb28=;
From: Paul Durrant <paul@xen.org>
To: win-pv-devel@lists.xenproject.org
Cc: Paul Durrant <pdurrant@amazon.com>,
	Martin Harvey <Martin.Harvey@citrix.com>,
	Owen Smith <owen.smith@citrix.com>
Subject: [PATCH xenvif 4/4] Add a Pause flag to the XENVIF_RECEIVER_QUEUE_PACKET callback parameters
Date: Tue, 14 Jun 2022 15:40:55 +0100
Message-Id: <20220614144055.5285-4-paul@xen.org>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20220614144055.5285-1-paul@xen.org>
References: <20220614144055.5285-1-paul@xen.org>

From: Paul Durrant <pdurrant@amazon.com>

The flag is used by the client driver to ask XENVIF to stop queueing packets
for a short period i.e. the current DPC invocation. Another DPC is scheduled
to process the remainder before any more packets are removed from the
descriptor ring (hence back-pressuring the network backend).

This patch involves bumping XENVIF_VIF_INTERFACE up to version 10. Code
is also added to set the Pause flag on behalf of older client drivers if
more than 1024 packets have been queued by a single DPC invocation.

This code is based on original patches [1] and [2] by Martin Harvey at Citrix.

[1] https://lists.xenproject.org/archives/html/win-pv-devel/2022-05/msg00043.html
[2] https://lists.xenproject.org/archives/html/win-pv-devel/2022-05/msg00042.html

Signed-off-by: Paul Durrant <pdurrant@amazon.com>
---
Cc: Martin Harvey <Martin.Harvey@citrix.com>
Cc: Owen Smith <owen.smith@citrix.com>

 include/revision.h      |   9 +-
 include/vif_interface.h |  80 ++++++++++++++++--
 src/xenvif/receiver.c   |  77 ++++++++++++-----
 src/xenvif/vif.c        | 181 ++++++++++++++++++++++++++++++++++++++--
 src/xenvif/vif.h        |   3 +-
 5 files changed, 311 insertions(+), 39 deletions(-)

diff --git a/include/revision.h b/include/revision.h
index 64e6e34ae14a..4085f0423edc 100644
--- a/include/revision.h
+++ b/include/revision.h
@@ -38,10 +38,11 @@
 // ST - XENBUS_STORE_INTERFACE
 // SU - XENBUS_SUSPEND_INTERFACE
 
-//                    REVISION   C   V   ST  SU
+//                    REVISION   C   V    ST  SU
 #define DEFINE_REVISION_TABLE                       \
-    DEFINE_REVISION(0x09000000,  1,  8,  2,  1),    \
-    DEFINE_REVISION(0x09000001,  2,  8,  2,  1),    \
-    DEFINE_REVISION(0x09000002,  2,  9,  2,  1)
+    DEFINE_REVISION(0x09000000,  1,  8,   2,  1),   \
+    DEFINE_REVISION(0x09000001,  2,  8,   2,  1),   \
+    DEFINE_REVISION(0x09000002,  2,  9,   2,  1),   \
+    DEFINE_REVISION(0x09000003,  2,  10,  2,  1)
 
 #endif  // _REVISION_H
diff --git a/include/vif_interface.h b/include/vif_interface.h
index c157c5ca798e..a600d35e8f23 100644
--- a/include/vif_interface.h
+++ b/include/vif_interface.h
@@ -388,7 +388,27 @@ typedef enum _XENVIF_VIF_CALLBACK_TYPE {
     XENVIF_MAC_STATE_CHANGE
 } XENVIF_VIF_CALLBACK_TYPE, *PXENVIF_VIF_CALLBACK_TYPE;
 
-/*! \typedef XENVIF_VIF_CALLBACK_PARAMETERS_V9
+union _XENVIF_VIF_CALLBACK_PARAMETERS_V9 {
+    struct {
+        PVOID                                       Cookie;
+        PXENVIF_TRANSMITTER_PACKET_COMPLETION_INFO  Completion;
+    } TransmitterReturnPacket;
+    struct {
+        ULONG                           Index;
+        PMDL                            Mdl;
+        ULONG                           Offset;
+        ULONG                           Length;
+        XENVIF_PACKET_CHECKSUM_FLAGS    Flags;
+        USHORT                          MaximumSegmentSize;
+        USHORT                          TagControlInformation;
+        PXENVIF_PACKET_INFO             Info;
+        PXENVIF_PACKET_HASH             Hash;
+        BOOLEAN                         More;
+        PVOID                           Cookie;
+    } ReceiverQueuePacket;
+};
+
+/*! \typedef XENVIF_VIF_CALLBACK_PARAMETERS_V10
     \brief VIF interface version 9 parameters for provider to subscriber callback function
 
     \b XENVIF_TRANSMITTER_RETURN_PACKET:
@@ -407,11 +427,12 @@ typedef enum _XENVIF_VIF_CALLBACK_TYPE {
     \param Hash Hash information for the packet
     \param More A flag to indicate whether more packets will be queued for the same CPU
     \param Cookie Cookie that should be passed to XENVIF_RECEIVER_RETURN_PACKET method
+    \param Pause A flag to request that no more packets be queued for a short period of time
 
     \b XENVIF_MAC_STATE_CHANGE:
     No additional arguments
 */
-union _XENVIF_VIF_CALLBACK_PARAMETERS_V9 {
+union _XENVIF_VIF_CALLBACK_PARAMETERS_V10 {
     struct {
         PVOID                                       Cookie;
         PXENVIF_TRANSMITTER_PACKET_COMPLETION_INFO  Completion;
@@ -428,6 +449,7 @@ union _XENVIF_VIF_CALLBACK_PARAMETERS_V9 {
         PXENVIF_PACKET_HASH             Hash;
         BOOLEAN                         More;
         PVOID                           Cookie;
+        BOOLEAN                         Pause;
     } ReceiverQueuePacket;
 };
 
@@ -458,7 +480,14 @@ typedef VOID
     ...
     );
 
-typedef union _XENVIF_VIF_CALLBACK_PARAMETERS_V9 XENVIF_VIF_CALLBACK_PARAMETERS, *PXENVIF_VIF_CALLBACK_PARAMETERS;
+typedef VOID
+(*XENVIF_VIF_CALLBACK_V9)(
+    IN  PVOID                                       Argument OPTIONAL,
+    IN  XENVIF_VIF_CALLBACK_TYPE                    Type,
+    IN  union _XENVIF_VIF_CALLBACK_PARAMETERS_V9   *Parameters
+    );
+
+typedef union _XENVIF_VIF_CALLBACK_PARAMETERS_V10 XENVIF_VIF_CALLBACK_PARAMETERS, *PXENVIF_VIF_CALLBACK_PARAMETERS;
 
 /*! \typedef XENVIF_VIF_CALLBACK
     \brief Provider to subscriber callback function
@@ -481,6 +510,13 @@ typedef NTSTATUS
     IN  PVOID                   Argument OPTIONAL
     );
 
+typedef NTSTATUS
+(*XENVIF_VIF_ENABLE_V9)(
+    IN  PINTERFACE              Interface,
+    IN  XENVIF_VIF_CALLBACK_V9  Callback,
+    IN  PVOID                   Argument OPTIONAL
+    );
+
 /*! \typedef XENVIF_VIF_ENABLE
     \brief Enable the VIF interface
 
@@ -891,6 +927,40 @@ struct _XENVIF_VIF_INTERFACE_V8 {
     \ingroup interfaces
 */
 struct _XENVIF_VIF_INTERFACE_V9 {
+    INTERFACE                                       Interface;
+    XENVIF_VIF_ACQUIRE                              Acquire;
+    XENVIF_VIF_RELEASE                              Release;
+    XENVIF_VIF_ENABLE_V9                            EnableVersion9;
+    XENVIF_VIF_DISABLE                              Disable;
+    XENVIF_VIF_QUERY_STATISTIC                      QueryStatistic;
+    XENVIF_VIF_QUERY_RING_COUNT                     QueryRingCount;
+    XENVIF_VIF_UPDATE_HASH_MAPPING                  UpdateHashMapping;
+    XENVIF_VIF_RECEIVER_RETURN_PACKET               ReceiverReturnPacket;
+    XENVIF_VIF_RECEIVER_SET_OFFLOAD_OPTIONS         ReceiverSetOffloadOptions;
+    XENVIF_VIF_RECEIVER_SET_BACKFILL_SIZE           ReceiverSetBackfillSize;
+    XENVIF_VIF_RECEIVER_QUERY_RING_SIZE             ReceiverQueryRingSize;
+    XENVIF_VIF_RECEIVER_SET_HASH_ALGORITHM          ReceiverSetHashAlgorithm;
+    XENVIF_VIF_RECEIVER_QUERY_HASH_CAPABILITIES     ReceiverQueryHashCapabilities;
+    XENVIF_VIF_RECEIVER_UPDATE_HASH_PARAMETERS      ReceiverUpdateHashParameters;
+    XENVIF_VIF_TRANSMITTER_QUEUE_PACKET             TransmitterQueuePacket;
+    XENVIF_VIF_TRANSMITTER_QUERY_OFFLOAD_OPTIONS    TransmitterQueryOffloadOptions;
+    XENVIF_VIF_TRANSMITTER_QUERY_LARGE_PACKET_SIZE  TransmitterQueryLargePacketSize;
+    XENVIF_VIF_TRANSMITTER_QUERY_RING_SIZE          TransmitterQueryRingSize;
+    XENVIF_VIF_MAC_QUERY_STATE                      MacQueryState;
+    XENVIF_VIF_MAC_QUERY_MAXIMUM_FRAME_SIZE         MacQueryMaximumFrameSize;
+    XENVIF_VIF_MAC_QUERY_PERMANENT_ADDRESS          MacQueryPermanentAddress;
+    XENVIF_VIF_MAC_QUERY_CURRENT_ADDRESS            MacQueryCurrentAddress;
+    XENVIF_VIF_MAC_QUERY_MULTICAST_ADDRESSES        MacQueryMulticastAddresses;
+    XENVIF_VIF_MAC_SET_MULTICAST_ADDRESSES          MacSetMulticastAddresses;
+    XENVIF_VIF_MAC_SET_FILTER_LEVEL                 MacSetFilterLevel;
+    XENVIF_VIF_MAC_QUERY_FILTER_LEVEL               MacQueryFilterLevel;
+};
+
+/*! \struct _XENVIF_VIF_INTERFACE_V10
+    \brief VIF interface version 10
+    \ingroup interfaces
+*/
+struct _XENVIF_VIF_INTERFACE_V10 {
     INTERFACE                                       Interface;
     XENVIF_VIF_ACQUIRE                              Acquire;
     XENVIF_VIF_RELEASE                              Release;
@@ -920,7 +990,7 @@ struct _XENVIF_VIF_INTERFACE_V9 {
     XENVIF_VIF_MAC_QUERY_FILTER_LEVEL               MacQueryFilterLevel;
 };
 
-typedef struct _XENVIF_VIF_INTERFACE_V9 XENVIF_VIF_INTERFACE, *PXENVIF_VIF_INTERFACE;
+typedef struct _XENVIF_VIF_INTERFACE_V10 XENVIF_VIF_INTERFACE, *PXENVIF_VIF_INTERFACE;
 
 /*! \def XENVIF_VIF
     \brief Macro at assist in method invocation
@@ -931,6 +1001,6 @@ typedef struct _XENVIF_VIF_INTERFACE_V9 XENVIF_VIF_INTERFACE, *PXENVIF_VIF_INTER
 #endif  // _WINDLL
 
 #define XENVIF_VIF_INTERFACE_VERSION_MIN    8
-#define XENVIF_VIF_INTERFACE_VERSION_MAX    9
+#define XENVIF_VIF_INTERFACE_VERSION_MAX    10
 
 #endif  // _XENVIF_INTERFACE_H
diff --git a/src/xenvif/receiver.c b/src/xenvif/receiver.c
index d4703b9bd322..21451331d330 100644
--- a/src/xenvif/receiver.c
+++ b/src/xenvif/receiver.c
@@ -109,6 +109,8 @@ typedef struct _XENVIF_RECEIVER_RING {
     PROCESSOR_NUMBER            TargetProcessor;
     LIST_ENTRY                  PacketComplete;
     XENVIF_RECEIVER_HASH        Hash;
+    BOOLEAN                     Paused;
+    BOOLEAN                     Flush;
 } XENVIF_RECEIVER_RING, *PXENVIF_RECEIVER_RING;
 
 typedef struct _XENVIF_RECEIVER_PACKET {
@@ -1338,6 +1340,7 @@ __ReceiverRingSwizzle(
     PXENVIF_VIF_CONTEXT         Context;
     LIST_ENTRY                  List;
     PLIST_ENTRY                 ListEntry;
+    BOOLEAN                     Pause;
 
     Receiver = Ring->Receiver;
     Frontend = Receiver->Frontend;
@@ -1345,36 +1348,42 @@ __ReceiverRingSwizzle(
 
     InitializeListHead(&List);
 
-    ListEntry = InterlockedExchangePointer(&Ring->PacketQueue, NULL);
+    KeMemoryBarrier();
 
-    // Packets are held in the queue in reverse order so that the most
-    // recent is always head of the list. This is necessary to allow
-    // addition to the list to be done atomically.
+    // Only process the PacketQueue if the ring is not paused or it is being flushed
+    if (!Ring->Paused || Ring->Flush) {
+        ListEntry = InterlockedExchangePointer(&Ring->PacketQueue, NULL);
 
-    while (ListEntry != NULL) {
-        PLIST_ENTRY NextEntry;
+        // Packets are held in the queue in reverse order so that the most
+        // recent is always head of the list. This is necessary to allow
+        // addition to the list to be done atomically.
 
-        NextEntry = ListEntry->Blink;
-        ListEntry->Flink = ListEntry->Blink = ListEntry;
+        while (ListEntry != NULL) {
+            PLIST_ENTRY NextEntry;
 
-        InsertHeadList(&List, ListEntry);
+            NextEntry = ListEntry->Blink;
+            ListEntry->Flink = ListEntry->Blink = ListEntry;
 
-        ListEntry = NextEntry;
-    }
+            InsertHeadList(&List, ListEntry);
 
-    while (!IsListEmpty(&List)) {
-        PXENVIF_RECEIVER_PACKET Packet;
+            ListEntry = NextEntry;
+        }
 
-        ListEntry = RemoveHeadList(&List);
-        ASSERT3P(ListEntry, !=, &List);
+        while (!IsListEmpty(&List)) {
+            PXENVIF_RECEIVER_PACKET Packet;
 
-        RtlZeroMemory(ListEntry, sizeof (LIST_ENTRY));
+            ListEntry = RemoveHeadList(&List);
+            ASSERT3P(ListEntry, !=, &List);
 
-        Packet = CONTAINING_RECORD(ListEntry, XENVIF_RECEIVER_PACKET, ListEntry);
-        ReceiverRingProcessPacket(Ring, Packet);
+            RtlZeroMemory(ListEntry, sizeof (LIST_ENTRY));
+
+            Packet = CONTAINING_RECORD(ListEntry, XENVIF_RECEIVER_PACKET, ListEntry);
+            ReceiverRingProcessPacket(Ring, Packet);
+        }
     }
 
-    while (!IsListEmpty(&Ring->PacketComplete)) {
+    Pause = FALSE;
+    while (!IsListEmpty(&Ring->PacketComplete) && !Pause) {
         PXENVIF_RECEIVER_PACKET Packet;
         PXENVIF_PACKET_INFO     Info;
         PUCHAR                  BaseVa;
@@ -1538,7 +1547,27 @@ __ReceiverRingSwizzle(
                                &Packet->Info,
                                &Packet->Hash,
                                !IsListEmpty(&Ring->PacketComplete) ? TRUE : FALSE,
-                               Packet);
+                               Packet,
+                               &Pause);
+
+        // If we are flushing then we can't pause
+        if (Ring->Flush)
+            Pause = FALSE;
+    }
+
+    if (Pause) {
+        Ring->Paused = TRUE;
+
+        if (KeInsertQueueDpc(&Ring->QueueDpc, NULL, NULL))
+            Ring->QueueDpcs++;
+    } else {
+        BOOLEAN Paused = Ring->Paused;
+
+        Ring->Paused = FALSE;
+
+        // PollDpc is cleared before Flush is set
+        if (Paused && !Ring->Flush && KeInsertQueueDpc(&Ring->PollDpc, NULL, NULL))
+            Ring->PollDpcs++;
     }
 }
 
@@ -1990,7 +2019,7 @@ ReceiverRingPoll(
 
     Count = 0;
 
-    if (!Ring->Enabled)
+    if (!Ring->Enabled || Ring->Paused)
         goto done;
 
     for (;;) {
@@ -2965,7 +2994,13 @@ __ReceiverRingTeardown(
 
     RtlZeroMemory(&Ring->TargetProcessor, sizeof (PROCESSOR_NUMBER));
 
+    Ring->Flush = TRUE;
+    KeMemoryBarrier();
+
+    KeInsertQueueDpc(&Ring->QueueDpc, NULL, NULL);
     KeFlushQueuedDpcs();
+    Ring->Flush = FALSE;
+
     RtlZeroMemory(&Ring->QueueDpc, sizeof (KDPC));
 
     ThreadAlert(Ring->WatchdogThread);
diff --git a/src/xenvif/vif.c b/src/xenvif/vif.c
index 102f24d12888..3e02dbc8dcd4 100644
--- a/src/xenvif/vif.c
+++ b/src/xenvif/vif.c
@@ -55,6 +55,9 @@ struct _XENVIF_VIF_CONTEXT {
     PVOID                       Argument;
     XENVIF_VIF_CALLBACK_V8      CallbackVersion8;
     PVOID                       ArgumentVersion8;
+    XENVIF_VIF_CALLBACK_V9      CallbackVersion9;
+    PVOID                       ArgumentVersion9;
+    LONG                        Queued;
     PXENVIF_THREAD              MacThread;
     KEVENT                      MacEvent;
     XENBUS_SUSPEND_INTERFACE    SuspendInterface;
@@ -239,14 +242,14 @@ fail1:
 
 static VOID
 VifCallbackVersion8(
-    IN  PVOID                           _Argument OPTIONAL,
-    IN  XENVIF_VIF_CALLBACK_TYPE        Type,
-    IN  PXENVIF_VIF_CALLBACK_PARAMETERS Parameters
+    IN  PVOID                                       _Argument OPTIONAL,
+    IN  XENVIF_VIF_CALLBACK_TYPE                    Type,
+    IN  union _XENVIF_VIF_CALLBACK_PARAMETERS_V9   *Parameters
     )
 {
-    PXENVIF_VIF_CONTEXT                 Context = _Argument;
-    XENVIF_VIF_CALLBACK_V8              Callback = Context->CallbackVersion8;
-    PVOID                               Argument = Context->ArgumentVersion8;
+    PXENVIF_VIF_CONTEXT                             Context = _Argument;
+    XENVIF_VIF_CALLBACK_V8                          Callback = Context->CallbackVersion8;
+    PVOID                                           Argument = Context->ArgumentVersion8;
 
     switch (Type) {
     case XENVIF_TRANSMITTER_RETURN_PACKET: {
@@ -297,6 +300,113 @@ VifCallbackVersion8(
     }
 }
 
+static VOID
+VifCallbackVersion9(
+    IN  PVOID                                       _Argument OPTIONAL,
+    IN  XENVIF_VIF_CALLBACK_TYPE                    Type,
+    IN  PXENVIF_VIF_CALLBACK_PARAMETERS             Parameters
+    )
+{
+#define XENVIF_RECEIVER_QUEUE_MAX 1024 // Chosen to match IN_NDIS_MAX in XENNET
+
+    PXENVIF_VIF_CONTEXT                             Context = _Argument;
+    XENVIF_VIF_CALLBACK_V9                          Callback = Context->CallbackVersion9;
+    PVOID                                           Argument = Context->ArgumentVersion9;
+    union _XENVIF_VIF_CALLBACK_PARAMETERS_V9        ParametersVersion9;
+
+    switch (Type) {
+    case XENVIF_TRANSMITTER_RETURN_PACKET:
+        ParametersVersion9.TransmitterReturnPacket.Cookie = Parameters->TransmitterReturnPacket.Cookie;
+        ParametersVersion9.TransmitterReturnPacket.Completion = Parameters->TransmitterReturnPacket.Completion;
+        break;
+
+    case XENVIF_RECEIVER_QUEUE_PACKET:
+        ParametersVersion9.ReceiverQueuePacket.Index = Parameters->ReceiverQueuePacket.Index;
+        ParametersVersion9.ReceiverQueuePacket.Mdl = Parameters->ReceiverQueuePacket.Mdl;
+        ParametersVersion9.ReceiverQueuePacket.Offset = Parameters->ReceiverQueuePacket.Offset;
+        ParametersVersion9.ReceiverQueuePacket.Length = Parameters->ReceiverQueuePacket.Length;
+        ParametersVersion9.ReceiverQueuePacket.Flags = Parameters->ReceiverQueuePacket.Flags;
+        ParametersVersion9.ReceiverQueuePacket.MaximumSegmentSize = Parameters->ReceiverQueuePacket.MaximumSegmentSize;
+        ParametersVersion9.ReceiverQueuePacket.TagControlInformation = Parameters->ReceiverQueuePacket.TagControlInformation;
+        ParametersVersion9.ReceiverQueuePacket.Info = Parameters->ReceiverQueuePacket.Info;
+        ParametersVersion9.ReceiverQueuePacket.Hash = Parameters->ReceiverQueuePacket.Hash;
+        ParametersVersion9.ReceiverQueuePacket.More = Parameters->ReceiverQueuePacket.More;
+        ParametersVersion9.ReceiverQueuePacket.Cookie = Parameters->ReceiverQueuePacket.Cookie;
+        break;
+
+    case XENVIF_MAC_STATE_CHANGE:
+        // No parameters to translate
+        break;
+
+    default:
+        ASSERT(FALSE);
+        break;
+    }
+
+    Callback(Argument, Type, &ParametersVersion9);
+
+    switch (Type) {
+    case XENVIF_TRANSMITTER_RETURN_PACKET:
+        break;
+
+    case XENVIF_RECEIVER_QUEUE_PACKET: {
+        LONG Queued;
+
+        Queued = (Parameters->ReceiverQueuePacket.More) ?
+            InterlockedIncrement(&Context->Queued) :
+            InterlockedExchange(&Context->Queued, 0);
+
+        //
+        // Once the limit is hit XENNET will have started indicating 'low resources' to NDIS so we
+        // should pause any further attempts to queue received packets.
+        //
+        if (Queued > XENVIF_RECEIVER_QUEUE_MAX) {
+            Parameters->ReceiverQueuePacket.Pause = TRUE;
+            (VOID) InterlockedExchange(&Context->Queued, 0);
+        } else {
+            Parameters->ReceiverQueuePacket.Pause = FALSE;
+        }
+        break;
+    }
+    case XENVIF_MAC_STATE_CHANGE:
+        // No parameters to translate
+        break;
+
+    default:
+        ASSERT(FALSE);
+        break;
+    }
+
+#undef XENVIF_RECEIVER_QUEUE_MAX
+}
+
+static NTSTATUS
+VifEnableVersion9(
+    IN  PINTERFACE                  Interface,
+    IN  XENVIF_VIF_CALLBACK_V9      Callback,
+    IN  PVOID                       Argument
+    )
+{
+    PXENVIF_VIF_CONTEXT             Context = Interface->Context;
+    KIRQL                           Irql;
+    NTSTATUS                        status;
+
+    Trace("====>\n");
+
+    AcquireMrswLockExclusive(&Context->Lock, &Irql);
+
+    Context->CallbackVersion9 = Callback;
+    Context->ArgumentVersion9 = Argument;
+
+    ReleaseMrswLockExclusive(&Context->Lock, Irql, FALSE);
+
+    status = VifEnable(Interface, VifCallbackVersion9, Context);
+
+    Trace("<====\n");
+
+    return status;
+}
+
 static NTSTATUS
 VifEnableVersion8(
     IN  PINTERFACE                  Interface,
@@ -317,7 +427,7 @@ VifEnableVersion8(
 
     ReleaseMrswLockExclusive(&Context->Lock, Irql, FALSE);
 
-    status = VifEnable(Interface, VifCallbackVersion8, Context);
+    status = VifEnableVersion9(Interface, VifCallbackVersion8, Context);
 
     Trace("<====\n");
 
@@ -378,6 +488,9 @@ VifDisable(
     Context->ArgumentVersion8 = NULL;
     Context->CallbackVersion8 = NULL;
 
+    Context->ArgumentVersion9 = NULL;
+    Context->CallbackVersion9 = NULL;
+
     ReleaseMrswLockShared(&Context->Lock);
 
 done:
@@ -914,6 +1027,36 @@ static struct _XENVIF_VIF_INTERFACE_V9 VifInterfaceVersion9 = {
     { sizeof (struct _XENVIF_VIF_INTERFACE_V9), 9, NULL, NULL, NULL },
     VifAcquire,
     VifRelease,
+    VifEnableVersion9,
+    VifDisable,
+    VifQueryStatistic,
+    VifQueryRingCount,
+    VifUpdateHashMapping,
+    VifReceiverReturnPacket,
+    VifReceiverSetOffloadOptions,
+    VifReceiverSetBackfillSize,
+    VifReceiverQueryRingSize,
+    VifReceiverSetHashAlgorithm,
+    VifReceiverQueryHashCapabilities,
+    VifReceiverUpdateHashParameters,
+    VifTransmitterQueuePacket,
+    VifTransmitterQueryOffloadOptions,
+    VifTransmitterQueryLargePacketSize,
+    VifTransmitterQueryRingSize,
+    VifMacQueryState,
+    VifMacQueryMaximumFrameSize,
+    VifMacQueryPermanentAddress,
+    VifMacQueryCurrentAddress,
+    VifMacQueryMulticastAddresses,
+    VifMacSetMulticastAddresses,
+    VifMacSetFilterLevel,
+    VifMacQueryFilterLevel
+};
+
+static struct _XENVIF_VIF_INTERFACE_V10 VifInterfaceVersion10 = {
+    { sizeof (struct _XENVIF_VIF_INTERFACE_V10), 10, NULL, NULL, NULL },
+    VifAcquire,
+    VifRelease,
     VifEnable,
     VifDisable,
     VifQueryStatistic,
@@ -1038,6 +1181,23 @@ VifGetInterface(
         status = STATUS_SUCCESS;
         break;
     }
+    case 10: {
+        struct _XENVIF_VIF_INTERFACE_V10 *VifInterface;
+
+        VifInterface = (struct _XENVIF_VIF_INTERFACE_V10 *)Interface;
+
+        status = STATUS_BUFFER_OVERFLOW;
+        if (Size < sizeof (struct _XENVIF_VIF_INTERFACE_V10))
+            break;
+
+        *VifInterface = VifInterfaceVersion10;
+
+        ASSERT3U(Interface->Version, ==, Version);
+        Interface->Context = Context;
+
+        status = STATUS_SUCCESS;
+        break;
+    }
     default:
         status = STATUS_NOT_SUPPORTED;
         break;
@@ -1053,6 +1213,8 @@ VifTeardown(
 {
     Trace("====>\n");
 
+    Context->Queued = 0;
+
     Context->Pdo = NULL;
     Context->Version = 0;
 
@@ -1086,7 +1248,8 @@ VifReceiverQueuePacket(
     IN  PXENVIF_PACKET_INFO             Info,
     IN  PXENVIF_PACKET_HASH             Hash,
     IN  BOOLEAN                         More,
-    IN  PVOID                           Cookie
+    IN  PVOID                           Cookie,
+    OUT PBOOLEAN                        Pause
     )
 {
     KIRQL                               Irql;
@@ -1110,6 +1273,8 @@ VifReceiverQueuePacket(
 
     Context->Callback(Context->Argument, XENVIF_RECEIVER_QUEUE_PACKET, &Parameters);
 
+    *Pause = Parameters.ReceiverQueuePacket.Pause;
+
     KeLowerIrql(Irql);
 }
 
diff --git a/src/xenvif/vif.h b/src/xenvif/vif.h
index b83a767751ed..76e9d07259a8 100644
--- a/src/xenvif/vif.h
+++ b/src/xenvif/vif.h
@@ -75,7 +75,8 @@ VifReceiverQueuePacket(
     IN  PXENVIF_PACKET_INFO             Info,
     IN  PXENVIF_PACKET_HASH             Hash,
     IN  BOOLEAN                         More,
-    IN  PVOID                           Cookie
+    IN  PVOID                           Cookie,
+    OUT PBOOLEAN                        Pause
     );
 
 extern VOID
-- 
2.17.1



From win-pv-devel-bounces@lists.xenproject.org Tue Jun 14 14:43:13 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Jun 2022 14:43:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.349087.575285 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o17lA-0002DA-IW; Tue, 14 Jun 2022 14:43:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 349087.575285; Tue, 14 Jun 2022 14:43:12 +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 1o17lA-0002D3-Fi; Tue, 14 Jun 2022 14:43:12 +0000
Received: by outflank-mailman (input) for mailman id 349087;
 Tue, 14 Jun 2022 14:43:10 +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 1o17l8-0002Cr-Ri
 for win-pv-devel@lists.xenproject.org; Tue, 14 Jun 2022 14:43:10 +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 1o17l8-0000mp-JT; Tue, 14 Jun 2022 14:43:10 +0000
Received: from 54-240-197-224.amazon.com ([54.240.197.224]
 helo=CBG-R90WXYV0.cbg12.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 1o17l8-0005fG-AJ; Tue, 14 Jun 2022 14:43:10 +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=Message-Id:Date:Subject:Cc:To:From;
	bh=7IjsJaYrqhLAdPVlM7a/C/ECoJW5FZXmDsGpPfvPW+8=; b=5ZogLGMgmc68dF+zmrzCRwTM59
	GUPuYArTyMrwfUq1Ie6dEE6l+iIClIni4j79iWRVcxGEMptRX9ijvOfDLb8rPRVI2JfIMR2/yb76y
	ASsBzMI1/w60UaSyO6LBZ8ROaaw9z+yt38U2vNXPExmz2UjmTSk2wCJkdL5UPHb+y1ew=;
From: Paul Durrant <paul@xen.org>
To: win-pv-devel@lists.xenproject.org
Cc: Paul Durrant <pdurrant@amazon.com>
Subject: [PATCH xennet 1/2] Update to XENVIF_VIF_INTERFACE version 9
Date: Tue, 14 Jun 2022 15:43:05 +0100
Message-Id: <20220614144306.5371-1-paul@xen.org>
X-Mailer: git-send-email 2.17.1

From: Paul Durrant <pdurrant@amazon.com>

This means we need to re-work the varargs AdapterVifCallback() function into a
new version that deals with the new XENVIF_VIF_CALLBACK_PARAMETERS structure.
Otherwise there is no functional change.

Signed-off-by: Paul Durrant <pdurrant@amazon.com>
---
 include/vif_interface.h | 154 +++++++++++++++++++---------------------
 src/xennet.inf          |   6 +-
 src/xennet/adapter.c    |  78 ++++++--------------
 3 files changed, 97 insertions(+), 141 deletions(-)

diff --git a/include/vif_interface.h b/include/vif_interface.h
index 20de31433297..c157c5ca798e 100644
--- a/include/vif_interface.h
+++ b/include/vif_interface.h
@@ -388,6 +388,49 @@ typedef enum _XENVIF_VIF_CALLBACK_TYPE {
     XENVIF_MAC_STATE_CHANGE
 } XENVIF_VIF_CALLBACK_TYPE, *PXENVIF_VIF_CALLBACK_TYPE;
 
+/*! \typedef XENVIF_VIF_CALLBACK_PARAMETERS_V9
+    \brief VIF interface version 9 parameters for provider to subscriber callback function
+
+    \b XENVIF_TRANSMITTER_RETURN_PACKET:
+    \param Cookie Cookie supplied to XENVIF_TRANSMITTER_QUEUE_PACKET
+    \param Completion Packet completion information
+
+    \b XENVIF_RECEIVER_QUEUE_PACKET:
+    \param Index The index of the queue on which the packet was received
+    \param Mdl The initial MDL of the packet
+    \param Offset The offset of the packet data in the initial MDL
+    \param Length The total length of the packet
+    \param Flags Packet checksum flags
+    \param MaximumSegmentSize The TCP MSS (used only if OffloadOptions.OffloadIpVersion[4|6]LargePacket is set)
+    \param TagControlInformation The VLAN TCI (used only if OffloadOptions.OffloadTagManipulation is set)
+    \param Info Header information for the packet
+    \param Hash Hash information for the packet
+    \param More A flag to indicate whether more packets will be queued for the same CPU
+    \param Cookie Cookie that should be passed to XENVIF_RECEIVER_RETURN_PACKET method
+
+    \b XENVIF_MAC_STATE_CHANGE:
+    No additional arguments
+*/
+union _XENVIF_VIF_CALLBACK_PARAMETERS_V9 {
+    struct {
+        PVOID                                       Cookie;
+        PXENVIF_TRANSMITTER_PACKET_COMPLETION_INFO  Completion;
+    } TransmitterReturnPacket;
+    struct {
+        ULONG                           Index;
+        PMDL                            Mdl;
+        ULONG                           Offset;
+        ULONG                           Length;
+        XENVIF_PACKET_CHECKSUM_FLAGS    Flags;
+        USHORT                          MaximumSegmentSize;
+        USHORT                          TagControlInformation;
+        PXENVIF_PACKET_INFO             Info;
+        PXENVIF_PACKET_HASH             Hash;
+        BOOLEAN                         More;
+        PVOID                           Cookie;
+    } ReceiverQueuePacket;
+};
+
 /*! \typedef XENVIF_VIF_ACQUIRE
     \brief Acquire a reference to the VIF interface
 
@@ -408,38 +451,34 @@ typedef VOID
     IN  PINTERFACE  Interface
     );
 
+typedef VOID
+(*XENVIF_VIF_CALLBACK_V8)(
+    IN  PVOID                       Argument OPTIONAL,
+    IN  XENVIF_VIF_CALLBACK_TYPE    Type,
+    ...
+    );
+
+typedef union _XENVIF_VIF_CALLBACK_PARAMETERS_V9 XENVIF_VIF_CALLBACK_PARAMETERS, *PXENVIF_VIF_CALLBACK_PARAMETERS;
+
 /*! \typedef XENVIF_VIF_CALLBACK
     \brief Provider to subscriber callback function
 
     \param Argument An optional context argument passed to the callback
     \param Type The callback type
-    \param ... Additional paramaters required by \a Type
-
-    \b XENVIF_TRANSMITTER_RETURN_PACKET:
-    \param Cookie Cookie supplied to XENVIF_TRANSMITTER_QUEUE_PACKET
-    \param Completion Packet completion information
-
-    \b XENVIF_RECEIVER_QUEUE_PACKET:
-    \param Index The index of the queue on which the packet was received
-    \param Mdl The initial MDL of the packet
-    \param Offset The offset of the packet data in the initial MDL
-    \param Length The total length of the packet
-    \param Flags Packet checksum flags
-    \param MaximumSegmentSize The TCP MSS (used only if OffloadOptions.OffloadIpVersion[4|6]LargePacket is set)
-    \param TagControlInformation The VLAN TCI (used only if OffloadOptions.OffloadTagManipulation is set)
-    \param Info Header information for the packet
-    \param Hash Hash information for the packet
-    \param More A flag to indicate whether more packets will be queued for the same CPU
-    \param Cookie Cookie that should be passed to XENVIF_RECEIVER_RETURN_PACKET method
-
-    \b XENVIF_MAC_STATE_CHANGE:
-    No additional arguments
+    \param Parameters The callback parameters
 */
 typedef VOID
 (*XENVIF_VIF_CALLBACK)(
-    IN  PVOID                       Argument OPTIONAL,
-    IN  XENVIF_VIF_CALLBACK_TYPE    Type,
-    ...
+    IN  PVOID                           Argument OPTIONAL,
+    IN  XENVIF_VIF_CALLBACK_TYPE        Type,
+    IN  PXENVIF_VIF_CALLBACK_PARAMETERS Parameters
+    );
+
+typedef NTSTATUS
+(*XENVIF_VIF_ENABLE_V8)(
+    IN  PINTERFACE              Interface,
+    IN  XENVIF_VIF_CALLBACK_V8  Callback,
+    IN  PVOID                   Argument OPTIONAL
     );
 
 /*! \typedef XENVIF_VIF_ENABLE
@@ -533,19 +572,6 @@ typedef VOID
     IN  PVOID       Cookie
     );
 
-typedef NTSTATUS
-(*XENVIF_VIF_TRANSMITTER_QUEUE_PACKET_V6)(
-    IN  PINTERFACE                  Interface,
-    IN  PMDL                        Mdl,
-    IN  ULONG                       Offset,
-    IN  ULONG                       Length,
-    IN  XENVIF_VIF_OFFLOAD_OPTIONS  OffloadOptions,
-    IN  USHORT                      MaximumSegmentSize,
-    IN  USHORT                      TagControlInformation,
-    IN  PXENVIF_PACKET_HASH         Hash,
-    IN  PVOID                       Cookie
-    );
-
 /*! \typedef XENVIF_VIF_TRANSMITTER_QUEUE_PACKET
     \brief Queue a packet at the provider's transmit side
 
@@ -826,49 +852,15 @@ typedef NTSTATUS
 DEFINE_GUID(GUID_XENVIF_VIF_INTERFACE, 
 0x76f279cd, 0xca11, 0x418b, 0x92, 0xe8, 0xc5, 0x7f, 0x77, 0xde, 0xe, 0x2e);
 
-/*! \struct _XENVIF_VIF_INTERFACE_V6
-    \brief VIF interface version 6
-    \ingroup interfaces
-*/
-struct _XENVIF_VIF_INTERFACE_V6 {
-    INTERFACE                                       Interface;
-    XENVIF_VIF_ACQUIRE                              Acquire;
-    XENVIF_VIF_RELEASE                              Release;
-    XENVIF_VIF_ENABLE                               Enable;
-    XENVIF_VIF_DISABLE                              Disable;
-    XENVIF_VIF_QUERY_STATISTIC                      QueryStatistic;
-    XENVIF_VIF_QUERY_RING_COUNT                     QueryRingCount;
-    XENVIF_VIF_UPDATE_HASH_MAPPING                  UpdateHashMapping;
-    XENVIF_VIF_RECEIVER_RETURN_PACKET               ReceiverReturnPacket;
-    XENVIF_VIF_RECEIVER_SET_OFFLOAD_OPTIONS         ReceiverSetOffloadOptions;
-    XENVIF_VIF_RECEIVER_SET_BACKFILL_SIZE           ReceiverSetBackfillSize;
-    XENVIF_VIF_RECEIVER_QUERY_RING_SIZE             ReceiverQueryRingSize;
-    XENVIF_VIF_RECEIVER_SET_HASH_ALGORITHM          ReceiverSetHashAlgorithm;
-    XENVIF_VIF_RECEIVER_QUERY_HASH_CAPABILITIES     ReceiverQueryHashCapabilities;
-    XENVIF_VIF_RECEIVER_UPDATE_HASH_PARAMETERS      ReceiverUpdateHashParameters;
-    XENVIF_VIF_TRANSMITTER_QUEUE_PACKET_V6          TransmitterQueuePacket;
-    XENVIF_VIF_TRANSMITTER_QUERY_OFFLOAD_OPTIONS    TransmitterQueryOffloadOptions;
-    XENVIF_VIF_TRANSMITTER_QUERY_LARGE_PACKET_SIZE  TransmitterQueryLargePacketSize;
-    XENVIF_VIF_TRANSMITTER_QUERY_RING_SIZE          TransmitterQueryRingSize;
-    XENVIF_VIF_MAC_QUERY_STATE                      MacQueryState;
-    XENVIF_VIF_MAC_QUERY_MAXIMUM_FRAME_SIZE         MacQueryMaximumFrameSize;
-    XENVIF_VIF_MAC_QUERY_PERMANENT_ADDRESS          MacQueryPermanentAddress;
-    XENVIF_VIF_MAC_QUERY_CURRENT_ADDRESS            MacQueryCurrentAddress;
-    XENVIF_VIF_MAC_QUERY_MULTICAST_ADDRESSES        MacQueryMulticastAddresses;
-    XENVIF_VIF_MAC_SET_MULTICAST_ADDRESSES          MacSetMulticastAddresses;
-    XENVIF_VIF_MAC_SET_FILTER_LEVEL                 MacSetFilterLevel;
-    XENVIF_VIF_MAC_QUERY_FILTER_LEVEL               MacQueryFilterLevel;
-};
-
-/*! \struct _XENVIF_VIF_INTERFACE_V7
-    \brief VIF interface version 7
+/*! \struct _XENVIF_VIF_INTERFACE_V8
+    \brief VIF interface version 8
     \ingroup interfaces
 */
-struct _XENVIF_VIF_INTERFACE_V7 {
+struct _XENVIF_VIF_INTERFACE_V8 {
     INTERFACE                                       Interface;
     XENVIF_VIF_ACQUIRE                              Acquire;
     XENVIF_VIF_RELEASE                              Release;
-    XENVIF_VIF_ENABLE                               Enable;
+    XENVIF_VIF_ENABLE_V8                            EnableVersion8;
     XENVIF_VIF_DISABLE                              Disable;
     XENVIF_VIF_QUERY_STATISTIC                      QueryStatistic;
     XENVIF_VIF_QUERY_RING_COUNT                     QueryRingCount;
@@ -894,11 +886,11 @@ struct _XENVIF_VIF_INTERFACE_V7 {
     XENVIF_VIF_MAC_QUERY_FILTER_LEVEL               MacQueryFilterLevel;
 };
 
-/*! \struct _XENVIF_VIF_INTERFACE_V8
-    \brief VIF interface version 8
+/*! \struct _XENVIF_VIF_INTERFACE_V9
+    \brief VIF interface version 9
     \ingroup interfaces
 */
-struct _XENVIF_VIF_INTERFACE_V8 {
+struct _XENVIF_VIF_INTERFACE_V9 {
     INTERFACE                                       Interface;
     XENVIF_VIF_ACQUIRE                              Acquire;
     XENVIF_VIF_RELEASE                              Release;
@@ -928,7 +920,7 @@ struct _XENVIF_VIF_INTERFACE_V8 {
     XENVIF_VIF_MAC_QUERY_FILTER_LEVEL               MacQueryFilterLevel;
 };
 
-typedef struct _XENVIF_VIF_INTERFACE_V8 XENVIF_VIF_INTERFACE, *PXENVIF_VIF_INTERFACE;
+typedef struct _XENVIF_VIF_INTERFACE_V9 XENVIF_VIF_INTERFACE, *PXENVIF_VIF_INTERFACE;
 
 /*! \def XENVIF_VIF
     \brief Macro at assist in method invocation
@@ -938,7 +930,7 @@ typedef struct _XENVIF_VIF_INTERFACE_V8 XENVIF_VIF_INTERFACE, *PXENVIF_VIF_INTER
 
 #endif  // _WINDLL
 
-#define XENVIF_VIF_INTERFACE_VERSION_MIN    6
-#define XENVIF_VIF_INTERFACE_VERSION_MAX    8
+#define XENVIF_VIF_INTERFACE_VERSION_MIN    8
+#define XENVIF_VIF_INTERFACE_VERSION_MAX    9
 
 #endif  // _XENVIF_INTERFACE_H
diff --git a/src/xennet.inf b/src/xennet.inf
index c44f4af18075..58ea5d79fd3e 100644
--- a/src/xennet.inf
+++ b/src/xennet.inf
@@ -61,9 +61,9 @@ xennet_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll
 ; DisplayName		Section		DeviceID
 ; -----------		-------		--------
 
-%XenNetName%		=XenNet_Inst,	XENVIF\VEN_@VENDOR_PREFIX@@VENDOR_DEVICE_ID@&DEV_NET&REV_09000001
-%XenNetName%		=XenNet_Inst,	XENVIF\VEN_@VENDOR_PREFIX@0001&DEV_NET&REV_09000001
-%XenNetName%		=XenNet_Inst,	XENVIF\VEN_@VENDOR_PREFIX@0002&DEV_NET&REV_09000001
+%XenNetName%		=XenNet_Inst,	XENVIF\VEN_@VENDOR_PREFIX@@VENDOR_DEVICE_ID@&DEV_NET&REV_09000002
+%XenNetName%		=XenNet_Inst,	XENVIF\VEN_@VENDOR_PREFIX@0001&DEV_NET&REV_09000002
+%XenNetName%		=XenNet_Inst,	XENVIF\VEN_@VENDOR_PREFIX@0002&DEV_NET&REV_09000002
 
 [XenNet_Inst] 
 Characteristics=0x84
diff --git a/src/xennet/adapter.c b/src/xennet/adapter.c
index 743cf35cd1dc..50cd3e63e382 100644
--- a/src/xennet/adapter.c
+++ b/src/xennet/adapter.c
@@ -199,75 +199,39 @@ AdapterAllocateComplete (
 
 static VOID
 AdapterVifCallback(
-    IN  PVOID                       Context,
-    IN  XENVIF_VIF_CALLBACK_TYPE    Type,
-    ...
+    IN  PVOID                           Context,
+    IN  XENVIF_VIF_CALLBACK_TYPE        Type,
+    IN  PXENVIF_VIF_CALLBACK_PARAMETERS Parameters
     )
 {
-    PXENNET_ADAPTER     Adapter = Context;
-    va_list             Arguments;
-
-    va_start(Arguments, Type);
+    PXENNET_ADAPTER                     Adapter = Context;
 
     switch (Type) {
-    case XENVIF_TRANSMITTER_RETURN_PACKET: {
-        PVOID                                       Cookie;
-        PXENVIF_TRANSMITTER_PACKET_COMPLETION_INFO  Completion;
-
-        Cookie = va_arg(Arguments, PVOID);
-        Completion = va_arg(Arguments, PXENVIF_TRANSMITTER_PACKET_COMPLETION_INFO);
-
+    case XENVIF_TRANSMITTER_RETURN_PACKET:
         TransmitterReturnPacket(Adapter->Transmitter,
-                                Cookie,
-                                Completion);
+                                Parameters->TransmitterReturnPacket.Cookie,
+                                Parameters->TransmitterReturnPacket.Completion);
         break;
-    }
-    case XENVIF_RECEIVER_QUEUE_PACKET: {
-        ULONG                           Index;
-        PMDL                            Mdl;
-        ULONG                           Offset;
-        ULONG                           Length;
-        XENVIF_PACKET_CHECKSUM_FLAGS    Flags;
-        USHORT                          MaximumSegmentSize;
-        USHORT                          TagControlInformation;
-        PXENVIF_PACKET_INFO             Info;
-        PXENVIF_PACKET_HASH             Hash;
-        BOOLEAN                         More;
-        PVOID                           Cookie;
-
-        Index = va_arg(Arguments, ULONG);
-        Mdl = va_arg(Arguments, PMDL);
-        Offset = va_arg(Arguments, ULONG);
-        Length = va_arg(Arguments, ULONG);
-        Flags = va_arg(Arguments, XENVIF_PACKET_CHECKSUM_FLAGS);
-        MaximumSegmentSize = va_arg(Arguments, USHORT);
-        TagControlInformation = va_arg(Arguments, USHORT);
-        Info = va_arg(Arguments, PXENVIF_PACKET_INFO);
-        Hash = va_arg(Arguments, PXENVIF_PACKET_HASH);
-        More = va_arg(Arguments, BOOLEAN);
-        Cookie = va_arg(Arguments, PVOID);
 
+    case XENVIF_RECEIVER_QUEUE_PACKET:
         ReceiverQueuePacket(Adapter->Receiver,
-                            Index,
-                            Mdl,
-                            Offset,
-                            Length,
-                            Flags,
-                            MaximumSegmentSize,
-                            TagControlInformation,
-                            Info,
-                            Hash,
-                            More,
-                            Cookie);
+                            Parameters->ReceiverQueuePacket.Index,
+                            Parameters->ReceiverQueuePacket.Mdl,
+                            Parameters->ReceiverQueuePacket.Offset,
+                            Parameters->ReceiverQueuePacket.Length,
+                            Parameters->ReceiverQueuePacket.Flags,
+                            Parameters->ReceiverQueuePacket.MaximumSegmentSize,
+                            Parameters->ReceiverQueuePacket.TagControlInformation,
+                            Parameters->ReceiverQueuePacket.Info,
+                            Parameters->ReceiverQueuePacket.Hash,
+                            Parameters->ReceiverQueuePacket.More,
+                            Parameters->ReceiverQueuePacket.Cookie);
         break;
-    }
-    case XENVIF_MAC_STATE_CHANGE: {
+
+    case XENVIF_MAC_STATE_CHANGE:
         AdapterMediaStateChange(Adapter);
         break;
     }
-    }
-
-    va_end(Arguments);
 }
 
 static VOID
-- 
2.17.1



From win-pv-devel-bounces@lists.xenproject.org Tue Jun 14 14:43:13 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Jun 2022 14:43:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.349088.575288 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o17lA-0002DQ-L7; Tue, 14 Jun 2022 14:43:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 349088.575288; Tue, 14 Jun 2022 14:43:12 +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 1o17lA-0002DE-He; Tue, 14 Jun 2022 14:43:12 +0000
Received: by outflank-mailman (input) for mailman id 349088;
 Tue, 14 Jun 2022 14:43:11 +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 1o17l9-0002Cx-Gn
 for win-pv-devel@lists.xenproject.org; Tue, 14 Jun 2022 14:43:11 +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 1o17l9-0000mv-Ez; Tue, 14 Jun 2022 14:43:11 +0000
Received: from 54-240-197-224.amazon.com ([54.240.197.224]
 helo=CBG-R90WXYV0.cbg12.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 1o17l9-0005fG-5v; Tue, 14 Jun 2022 14:43:11 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	 bh=0mrXNTFsZLt2RQsoQu7UH60htyX+KhL3q7MNL7Ak4N8=; b=eO9kL3cReTW8o635Fl34Nc3WB
	Je8YKyxoTJiT6Hyj6sBqeHLxIsqKV+ycIybQI0G5dnN+M20kLKBvSuhHK5C9CfCplRR4SgTnls8j7
	b1lAIO1ABKFBXUpqlmVX+ovRiX4gIKFmNl51/yKIYhyxEJbi6OKbwwnViIXk517lfl++0=;
From: Paul Durrant <paul@xen.org>
To: win-pv-devel@lists.xenproject.org
Cc: Paul Durrant <pdurrant@amazon.com>,
	Martin Harvey <Martin.Harvey@citrix.com>
Subject: [PATCH xennet 2/2] Update to XENVIF_VIF_INTERFACE version 10
Date: Tue, 14 Jun 2022 15:43:06 +0100
Message-Id: <20220614144306.5371-2-paul@xen.org>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20220614144306.5371-1-paul@xen.org>
References: <20220614144306.5371-1-paul@xen.org>

From: Paul Durrant <pdurrant@amazon.com>

This based on an original patch [1] by Martin Harvey at Citrix. The new Pause flag
added to the XENVIF_RECEIVER_QUEUE_PACKET callback parameters is used when 'low
resources' is indicated to NDIS to request that XENVIF stops queueing packets
for a short period of time (i.e. the time taked to re-schedule the DPC).

[1] https://lists.xenproject.org/archives/html/win-pv-devel/2022-05/msg00044.html

Signed-off-by: Paul Durrant <pdurrant@amazon.com>
---
Cc: Martin Harvey <Martin.Harvey@citrix.com>

 include/vif_interface.h | 80 ++++++++++++++++++++++++++++++++++++++---
 src/xennet.inf          |  6 ++--
 src/xennet/adapter.c    |  3 +-
 src/xennet/receiver.c   | 22 +++++++++---
 src/xennet/receiver.h   |  3 +-
 5 files changed, 99 insertions(+), 15 deletions(-)

diff --git a/include/vif_interface.h b/include/vif_interface.h
index c157c5ca798e..a600d35e8f23 100644
--- a/include/vif_interface.h
+++ b/include/vif_interface.h
@@ -388,7 +388,27 @@ typedef enum _XENVIF_VIF_CALLBACK_TYPE {
     XENVIF_MAC_STATE_CHANGE
 } XENVIF_VIF_CALLBACK_TYPE, *PXENVIF_VIF_CALLBACK_TYPE;
 
-/*! \typedef XENVIF_VIF_CALLBACK_PARAMETERS_V9
+union _XENVIF_VIF_CALLBACK_PARAMETERS_V9 {
+    struct {
+        PVOID                                       Cookie;
+        PXENVIF_TRANSMITTER_PACKET_COMPLETION_INFO  Completion;
+    } TransmitterReturnPacket;
+    struct {
+        ULONG                           Index;
+        PMDL                            Mdl;
+        ULONG                           Offset;
+        ULONG                           Length;
+        XENVIF_PACKET_CHECKSUM_FLAGS    Flags;
+        USHORT                          MaximumSegmentSize;
+        USHORT                          TagControlInformation;
+        PXENVIF_PACKET_INFO             Info;
+        PXENVIF_PACKET_HASH             Hash;
+        BOOLEAN                         More;
+        PVOID                           Cookie;
+    } ReceiverQueuePacket;
+};
+
+/*! \typedef XENVIF_VIF_CALLBACK_PARAMETERS_V10
     \brief VIF interface version 9 parameters for provider to subscriber callback function
 
     \b XENVIF_TRANSMITTER_RETURN_PACKET:
@@ -407,11 +427,12 @@ typedef enum _XENVIF_VIF_CALLBACK_TYPE {
     \param Hash Hash information for the packet
     \param More A flag to indicate whether more packets will be queued for the same CPU
     \param Cookie Cookie that should be passed to XENVIF_RECEIVER_RETURN_PACKET method
+    \param Pause A flag to request that no more packets be queued for a short period of time
 
     \b XENVIF_MAC_STATE_CHANGE:
     No additional arguments
 */
-union _XENVIF_VIF_CALLBACK_PARAMETERS_V9 {
+union _XENVIF_VIF_CALLBACK_PARAMETERS_V10 {
     struct {
         PVOID                                       Cookie;
         PXENVIF_TRANSMITTER_PACKET_COMPLETION_INFO  Completion;
@@ -428,6 +449,7 @@ union _XENVIF_VIF_CALLBACK_PARAMETERS_V9 {
         PXENVIF_PACKET_HASH             Hash;
         BOOLEAN                         More;
         PVOID                           Cookie;
+        BOOLEAN                         Pause;
     } ReceiverQueuePacket;
 };
 
@@ -458,7 +480,14 @@ typedef VOID
     ...
     );
 
-typedef union _XENVIF_VIF_CALLBACK_PARAMETERS_V9 XENVIF_VIF_CALLBACK_PARAMETERS, *PXENVIF_VIF_CALLBACK_PARAMETERS;
+typedef VOID
+(*XENVIF_VIF_CALLBACK_V9)(
+    IN  PVOID                                       Argument OPTIONAL,
+    IN  XENVIF_VIF_CALLBACK_TYPE                    Type,
+    IN  union _XENVIF_VIF_CALLBACK_PARAMETERS_V9   *Parameters
+    );
+
+typedef union _XENVIF_VIF_CALLBACK_PARAMETERS_V10 XENVIF_VIF_CALLBACK_PARAMETERS, *PXENVIF_VIF_CALLBACK_PARAMETERS;
 
 /*! \typedef XENVIF_VIF_CALLBACK
     \brief Provider to subscriber callback function
@@ -481,6 +510,13 @@ typedef NTSTATUS
     IN  PVOID                   Argument OPTIONAL
     );
 
+typedef NTSTATUS
+(*XENVIF_VIF_ENABLE_V9)(
+    IN  PINTERFACE              Interface,
+    IN  XENVIF_VIF_CALLBACK_V9  Callback,
+    IN  PVOID                   Argument OPTIONAL
+    );
+
 /*! \typedef XENVIF_VIF_ENABLE
     \brief Enable the VIF interface
 
@@ -891,6 +927,40 @@ struct _XENVIF_VIF_INTERFACE_V8 {
     \ingroup interfaces
 */
 struct _XENVIF_VIF_INTERFACE_V9 {
+    INTERFACE                                       Interface;
+    XENVIF_VIF_ACQUIRE                              Acquire;
+    XENVIF_VIF_RELEASE                              Release;
+    XENVIF_VIF_ENABLE_V9                            EnableVersion9;
+    XENVIF_VIF_DISABLE                              Disable;
+    XENVIF_VIF_QUERY_STATISTIC                      QueryStatistic;
+    XENVIF_VIF_QUERY_RING_COUNT                     QueryRingCount;
+    XENVIF_VIF_UPDATE_HASH_MAPPING                  UpdateHashMapping;
+    XENVIF_VIF_RECEIVER_RETURN_PACKET               ReceiverReturnPacket;
+    XENVIF_VIF_RECEIVER_SET_OFFLOAD_OPTIONS         ReceiverSetOffloadOptions;
+    XENVIF_VIF_RECEIVER_SET_BACKFILL_SIZE           ReceiverSetBackfillSize;
+    XENVIF_VIF_RECEIVER_QUERY_RING_SIZE             ReceiverQueryRingSize;
+    XENVIF_VIF_RECEIVER_SET_HASH_ALGORITHM          ReceiverSetHashAlgorithm;
+    XENVIF_VIF_RECEIVER_QUERY_HASH_CAPABILITIES     ReceiverQueryHashCapabilities;
+    XENVIF_VIF_RECEIVER_UPDATE_HASH_PARAMETERS      ReceiverUpdateHashParameters;
+    XENVIF_VIF_TRANSMITTER_QUEUE_PACKET             TransmitterQueuePacket;
+    XENVIF_VIF_TRANSMITTER_QUERY_OFFLOAD_OPTIONS    TransmitterQueryOffloadOptions;
+    XENVIF_VIF_TRANSMITTER_QUERY_LARGE_PACKET_SIZE  TransmitterQueryLargePacketSize;
+    XENVIF_VIF_TRANSMITTER_QUERY_RING_SIZE          TransmitterQueryRingSize;
+    XENVIF_VIF_MAC_QUERY_STATE                      MacQueryState;
+    XENVIF_VIF_MAC_QUERY_MAXIMUM_FRAME_SIZE         MacQueryMaximumFrameSize;
+    XENVIF_VIF_MAC_QUERY_PERMANENT_ADDRESS          MacQueryPermanentAddress;
+    XENVIF_VIF_MAC_QUERY_CURRENT_ADDRESS            MacQueryCurrentAddress;
+    XENVIF_VIF_MAC_QUERY_MULTICAST_ADDRESSES        MacQueryMulticastAddresses;
+    XENVIF_VIF_MAC_SET_MULTICAST_ADDRESSES          MacSetMulticastAddresses;
+    XENVIF_VIF_MAC_SET_FILTER_LEVEL                 MacSetFilterLevel;
+    XENVIF_VIF_MAC_QUERY_FILTER_LEVEL               MacQueryFilterLevel;
+};
+
+/*! \struct _XENVIF_VIF_INTERFACE_V10
+    \brief VIF interface version 10
+    \ingroup interfaces
+*/
+struct _XENVIF_VIF_INTERFACE_V10 {
     INTERFACE                                       Interface;
     XENVIF_VIF_ACQUIRE                              Acquire;
     XENVIF_VIF_RELEASE                              Release;
@@ -920,7 +990,7 @@ struct _XENVIF_VIF_INTERFACE_V9 {
     XENVIF_VIF_MAC_QUERY_FILTER_LEVEL               MacQueryFilterLevel;
 };
 
-typedef struct _XENVIF_VIF_INTERFACE_V9 XENVIF_VIF_INTERFACE, *PXENVIF_VIF_INTERFACE;
+typedef struct _XENVIF_VIF_INTERFACE_V10 XENVIF_VIF_INTERFACE, *PXENVIF_VIF_INTERFACE;
 
 /*! \def XENVIF_VIF
     \brief Macro at assist in method invocation
@@ -931,6 +1001,6 @@ typedef struct _XENVIF_VIF_INTERFACE_V9 XENVIF_VIF_INTERFACE, *PXENVIF_VIF_INTER
 #endif  // _WINDLL
 
 #define XENVIF_VIF_INTERFACE_VERSION_MIN    8
-#define XENVIF_VIF_INTERFACE_VERSION_MAX    9
+#define XENVIF_VIF_INTERFACE_VERSION_MAX    10
 
 #endif  // _XENVIF_INTERFACE_H
diff --git a/src/xennet.inf b/src/xennet.inf
index 58ea5d79fd3e..43c5573ce3ba 100644
--- a/src/xennet.inf
+++ b/src/xennet.inf
@@ -61,9 +61,9 @@ xennet_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll
 ; DisplayName		Section		DeviceID
 ; -----------		-------		--------
 
-%XenNetName%		=XenNet_Inst,	XENVIF\VEN_@VENDOR_PREFIX@@VENDOR_DEVICE_ID@&DEV_NET&REV_09000002
-%XenNetName%		=XenNet_Inst,	XENVIF\VEN_@VENDOR_PREFIX@0001&DEV_NET&REV_09000002
-%XenNetName%		=XenNet_Inst,	XENVIF\VEN_@VENDOR_PREFIX@0002&DEV_NET&REV_09000002
+%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
 
 [XenNet_Inst] 
 Characteristics=0x84
diff --git a/src/xennet/adapter.c b/src/xennet/adapter.c
index 50cd3e63e382..7a083e91b854 100644
--- a/src/xennet/adapter.c
+++ b/src/xennet/adapter.c
@@ -225,7 +225,8 @@ AdapterVifCallback(
                             Parameters->ReceiverQueuePacket.Info,
                             Parameters->ReceiverQueuePacket.Hash,
                             Parameters->ReceiverQueuePacket.More,
-                            Parameters->ReceiverQueuePacket.Cookie);
+                            Parameters->ReceiverQueuePacket.Cookie,
+                            &Parameters->ReceiverQueuePacket.Pause);
         break;
 
     case XENVIF_MAC_STATE_CHANGE:
diff --git a/src/xennet/receiver.c b/src/xennet/receiver.c
index 65527c51af8f..ae9207cccfb7 100644
--- a/src/xennet/receiver.c
+++ b/src/xennet/receiver.c
@@ -378,7 +378,8 @@ static FORCEINLINE VOID __IndicateReceiveNetBufferLists(
 static VOID
 __ReceiverPushPackets(
     IN  PXENNET_RECEIVER    Receiver,
-    IN  ULONG               Index
+    IN  ULONG               Index,
+    OUT PBOOLEAN            Pause
     )
 {
     ULONG                   Flags;
@@ -412,8 +413,10 @@ __ReceiverPushPackets(
             NDIS_RECEIVE_FLAGS_PERFECT_FILTERED;
 
     ASSERT3S(Indicated - Returned, >=, 0);
-    if (Indicated - Returned > IN_NDIS_MAX)
+    if (Indicated - Returned > IN_NDIS_MAX) {
         Flags |= NDIS_RECEIVE_FLAGS_RESOURCES;
+        *Pause = TRUE;
+    }
 
     __IndicateReceiveNetBufferLists(Receiver,
                                     NetBufferList,
@@ -544,12 +547,14 @@ ReceiverQueuePacket(
     IN  PXENVIF_PACKET_INFO             Info,
     IN  PXENVIF_PACKET_HASH             Hash,
     IN  BOOLEAN                         More,
-    IN  PVOID                           Cookie
+    IN  PVOID                           Cookie,
+    OUT PBOOLEAN                        Pause
     )
 {
     PXENVIF_VIF_INTERFACE               VifInterface;
     PNET_BUFFER_LIST                    NetBufferList;
     PXENNET_RECEIVER_QUEUE              Queue;
+    BOOLEAN                             Push = !More;
 
     VifInterface = AdapterGetVifInterface(Receiver->Adapter);
 
@@ -583,11 +588,18 @@ ReceiverQueuePacket(
     }
     Queue->Count++;
 
+    // If we need to indicate low resources, then push the queued packets to NDIS.
+    if (!Push &&
+        Receiver->Indicated + Queue->Count - Receiver->Returned > IN_NDIS_MAX)
+        Push = TRUE;
+
     KeReleaseSpinLockFromDpcLevel(&Queue->Lock);
 
 done:
-    if (!More)
-        __ReceiverPushPackets(Receiver, Index);
+    *Pause = FALSE;
+
+    if (Push)
+        __ReceiverPushPackets(Receiver, Index, Pause);
 }
 
 PXENVIF_VIF_OFFLOAD_OPTIONS
diff --git a/src/xennet/receiver.h b/src/xennet/receiver.h
index 5fc9e6679f65..5a1e82ea1592 100644
--- a/src/xennet/receiver.h
+++ b/src/xennet/receiver.h
@@ -68,7 +68,8 @@ ReceiverQueuePacket(
     IN  PXENVIF_PACKET_INFO             Info,
     IN  PXENVIF_PACKET_HASH             Hash,
     IN  BOOLEAN                         More,
-    IN  PVOID                           Cookie
+    IN  PVOID                           Cookie,
+    OUT PBOOLEAN                        Pause
     );
 
 extern PXENVIF_VIF_OFFLOAD_OPTIONS
-- 
2.17.1



From win-pv-devel-bounces@lists.xenproject.org Tue Jun 14 14:48:52 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 14 Jun 2022 14:48:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.349114.575295 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o17qe-0002be-3H; Tue, 14 Jun 2022 14:48:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 349114.575295; Tue, 14 Jun 2022 14:48: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 1o17qe-0002bX-0a; Tue, 14 Jun 2022 14:48:52 +0000
Received: by outflank-mailman (input) for mailman id 349114;
 Tue, 14 Jun 2022 14: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=Rl7+=WV=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1o17qc-0002bR-El
 for win-pv-devel@lists.xenproject.org; Tue, 14 Jun 2022 14:48:50 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 192cfc33-ebf1-11ec-a26a-b96bd03d9e80;
 Tue, 14 Jun 2022 16:48:49 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id x17so11620749wrg.6
 for <win-pv-devel@lists.xenproject.org>; Tue, 14 Jun 2022 07:48:48 -0700 (PDT)
Received: from [10.7.237.8] (54-240-197-224.amazon.com. [54.240.197.224])
 by smtp.gmail.com with ESMTPSA id
 m7-20020a5d4a07000000b00213abce60e4sm11552800wrq.111.2022.06.14.07.48.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 14 Jun 2022 07:48:47 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 192cfc33-ebf1-11ec-a26a-b96bd03d9e80
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:reply-to:subject
         :content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=nhgLGpeSOuaHLzUXv3t3P/t+YlZ+uBnH3hB25xASFU4=;
        b=lVlKfVKa/mclrJI21WKelA+jv779DkyPefHSgaEB9ZIQBwmdslFOKii5KYV90jBdWR
         SFJ1mqGf7zzLv9rZ6VVwYlLx/5lq3CdYSl/Fp8rSQK3V9KmOnKafEmOQvFhmqSDxCgF6
         kBfg5dXtjSfGb+/R2Tjev4WFPb9s9iJoUycDzrgPT2qXNBjocYM2jg1M34jq0bz+QKBD
         IT+bKXdFPUfHyZ96VFcUVNoqD6sbafnQpqJTc3nXyRrGqMyVs9LPjp83Bs5hzqOz5kV8
         p0K6utfVs+fnmrhhQfdVt/rrH1qbAAuOdi2dS4XXRup3d+mAokAsl5ykf/0ZQgS07VDO
         oKbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:reply-to
         :subject:content-language:to:cc:references:from:in-reply-to
         :content-transfer-encoding;
        bh=nhgLGpeSOuaHLzUXv3t3P/t+YlZ+uBnH3hB25xASFU4=;
        b=QnbIsfaZg82dl7cuAmBXYUMZaM+uQuuq0qj2+LxmhkOczHJDIFn5Fs212nTbC50PjG
         v65fTwDUqs4DzZKWN4m96o7xY1F9tjPwMEH8vJR0UFA9Q6Sx7Ru6BsAQgQSQ+j2wQ+bt
         OsZmblvYRSF9XY7uquecnVy2VA7Li8zUL//iWHY/h780AraGQrgFuimhXqEZ11PLe2v4
         cPkZTyCTwc1JRjr/ubSTdVdNxDQlkWudZf8EZETopv8jwY/9flvHny1bPwiG53BYG3Ye
         nepKHTyoGYNLgDwV/ynu+ae0HHfsdv+Wgy5bN8dnhR5JpW9KYOCzxiSrjEtfUQjxITRt
         Tgdg==
X-Gm-Message-State: AJIora9JFlMlPokUZ1JTs313NGYEWr35p9o0AhAv1P3W3jYf6a3CJOLG
	o0ms2k7wtjH0/KzO3kDIVYM=
X-Google-Smtp-Source: AGRyM1uUjTnkmeR6Vj/LOCT5i4WQaTP6eF5HCw+fDunNvYCGhf2V8OPOjVW+PkerukHK1GrOwvw+3A==
X-Received: by 2002:a05:6000:1861:b0:216:4019:9ee6 with SMTP id d1-20020a056000186100b0021640199ee6mr5351255wri.172.1655218127976;
        Tue, 14 Jun 2022 07:48:47 -0700 (PDT)
Message-ID: <175bd9a0-fae9-7c7d-cf3b-3204f4cfd859@gmail.com>
Date: Tue, 14 Jun 2022 15:48:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.10.0
Reply-To: paul@xen.org
Subject: Re: Using param structure in VIF interface
Content-Language: en-US
To: Martin Harvey <martin.harvey@citrix.com>, "paul@xen.org" <paul@xen.org>,
 Owen Smith <owen.smith@citrix.com>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
References: <6aabef8e-c70d-fdcf-7f87-2eb4dbf0a860@gmail.com>
 <MW4PR03MB6347E2371CE00E24925D988C9AAA9@MW4PR03MB6347.namprd03.prod.outlook.com>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <MW4PR03MB6347E2371CE00E24925D988C9AAA9@MW4PR03MB6347.namprd03.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 14/06/2022 09:55, Martin Harvey wrote:
> 
> -----Original Message-----
> From: Durrant, Paul <xadimgnik@gmail.com>
> Sent: 13 June 2022 17:34
> 
>> Just to let you know that I am working on this...
> 
> Okay! <Relived!>
> 
>> It's more of a can of worms than I thought... Now that I have split up the patches I realise that, to use a params structure, we need that to be versioned along with the interface.
> 
> All right. I reckoned we weren't going to change it that much, and that we could possibly cover all the changes under the VIF interface version number. I know individual versioning of structures is a thing, but we need not slavlishly apply it to everything.

Versioning needs to be well-structured though, and in this case the 
cascading of the callback variants allows me to put the XENVIF-only 
back-pressure code in the 'right' place i.e. in the compatibility shim.

> 
>> Also when XENNET is using a down-rev version, which could theoretically be behind the latest version in XENVIF, we are going to need a chain of callback functions to translate each version of the params structure to/from the previous version until we get to the one that XENNET actually deals with.
> 
> Yes, that's a possible use case, but hopefully we would know what versions use what. Again, I was hoping that we weren't going to change the callback params 5 or 6 times in quick succession.
> 
>> I have something partially done, but it's going to take another day or so.
> 
> OK, thank you.
> 

Patches posted... 4 in XENVIF (including an unrelated ASSERTion fix and 
retirement patches) and 2 in XENNET for the two interface version bumps 
(so I could check that different interface combos worked correctly).

   Paul


From win-pv-devel-bounces@lists.xenproject.org Wed Jun 22 17:13:30 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 22 Jun 2022 17:13:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.354256.581314 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o43uy-0002vq-Gp; Wed, 22 Jun 2022 17:13:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 354256.581314; Wed, 22 Jun 2022 17:13:28 +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 1o43uy-0002vj-Dq; Wed, 22 Jun 2022 17:13:28 +0000
Received: by outflank-mailman (input) for mailman id 354256;
 Wed, 22 Jun 2022 17:13:26 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul.durrant@xenproject.org>) id 1o43uw-0002va-Dj
 for win-pv-devel@lists.xenproject.org; Wed, 22 Jun 2022 17:13:26 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Date: Wed, 22 Jun 2022 17:13:26 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <14333859.1.1655918010177.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
Subject: XENNET-master - Build #120 - Successful
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_0_13314309.1655918008427"
X-Jenkins-Job: XENNET-master
X-Jenkins-Result: SUCCESS


------=_Part_0_13314309.1655918008427
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #120.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENNET-master/120/console to view the results.
------=_Part_0_13314309.1655918008427--


From win-pv-devel-bounces@lists.xenproject.org Thu Jun 23 01:52:17 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 23 Jun 2022 01:52:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.354404.581486 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o4C12-0006Kh-BB; Thu, 23 Jun 2022 01:52:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 354404.581486; Thu, 23 Jun 2022 01:52:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o4C12-0006KZ-80; Thu, 23 Jun 2022 01:52:16 +0000
Received: by outflank-mailman (input) for mailman id 354404;
 Thu, 23 Jun 2022 01:52:15 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <paul.durrant@xenproject.org>) id 1o4C11-0006KT-Fy
 for win-pv-devel@lists.xenproject.org; Thu, 23 Jun 2022 01:52:15 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
Date: Thu, 23 Jun 2022 01:52:19 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <6171792.3.1655949139365.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
Subject: XENVIF-master - Build #196 - Successful
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_2_12839615.1655949139193"
X-Jenkins-Job: XENVIF-master
X-Jenkins-Result: SUCCESS


------=_Part_2_12839615.1655949139193
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #196.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENVIF-master/196/console to view the results.
------=_Part_2_12839615.1655949139193--


From win-pv-devel-bounces@lists.xenproject.org Thu Jun 30 14:24:19 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Jun 2022 14:24:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.358566.587848 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o6v5d-0002v4-Rg; Thu, 30 Jun 2022 14:24:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 358566.587848; Thu, 30 Jun 2022 14:24:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o6v5d-0002ux-Oq; Thu, 30 Jun 2022 14:24:17 +0000
Received: by outflank-mailman (input) for mailman id 358566;
 Thu, 30 Jun 2022 14:24:16 +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=VHXp=XF=citrix.com=prvs=1730cf448=owen.smith@srs-se1.protection.inumbo.net>)
 id 1o6v5c-0002ur-Dq
 for win-pv-devel@lists.xenproject.org; Thu, 30 Jun 2022 14:24:16 +0000
Received: from esa3.hc3370-68.iphmx.com (esa3.hc3370-68.iphmx.com
 [216.71.145.155]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4ed6e48f-f880-11ec-bd2d-47488cf2e6aa;
 Thu, 30 Jun 2022 16:24:14 +0200 (CEST)
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: 4ed6e48f-f880-11ec-bd2d-47488cf2e6aa
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1656599053;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=aILJOdfxdJkRlLRMymdSTxcoIwxeAmzVBOSAP4o4DeA=;
  b=XWANepU7t+ejg0krx2v5Hpv/9Iwlq1H8Mm4aaz4r5s3NWNw8j5dz5m+l
   bpBsJb9IWb7ElA1B3436Ns4BCt5L40woUUJ7vE2AmPg67pRQrQ/iddIUe
   sKj/9OJCL8H7/Nk0uAdLqSu4P3XgiQP5cCoGo0Rn9UpJ+kpnZJeFlrsHg
   w=;
Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
X-SBRS: 5.1
X-MesageID: 74793351
X-Ironport-Server: esa3.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:xKSkTKNQyR/5kpbvrR0TlsFynXyQoLVcMsEvi/4bfWQNrUorgTAHm
 mUXDGCBMv6DN2Xwf48ga4jg/R8CvcCAmoNjSAto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdleF+lH1dOKJQUBUjclkfJKlYAL/En03FFUMpBsJ00o5wbZn2dYw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z4
 +UTiKyxTx4SP7CUp+A9VTcAITBTBPgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr
 7pCcmlLN03dwbLtqF64YrAEasALK9bmOsUEv3B8zRnSDOo8QICFSKLPjTNd9Ghs2ZEVRquHD
 yYfQT5vYAn/aRAUBkxNGq0dxOipvWChXDIN/Tp5ooJoujOOnWSdyoPFL9vTP8SUAMlYgEucj
 mbH5HjiRAEXMsSFzjiI+W7qgfXA9R4XQ6pLSuf+rKQzxgTOmCpDU3X6SGdXv9GSuhCDa9NZM
 ncV53IRqYg02hSZX/TECkjQTGG/gvIMZzZBO7RktV/Qk/uIv1/x6nssFWAYNoF/3CMibXlzj
 wLSwYu0bdB6mOfNIU9x4It4ut9b1cI9CWYZLREJQgIeizUIiNFi10mfJjqP/UPcszEUJd0T6
 2rTxMTGr+9P5fPnLo3ilbw9vxqip4LSUik+7RjNU2Su42tRPdD4OdHytgiAsa4Qcu51q2VtW
 1BU8/VyEchUVc3d/MBzaL5l8E6VCwatb2SH3A8H82gJ/DWx4X+zFb1tDMVFDB4xaK4sIGaxC
 GeK4F85zMICZxOCMP4oC79d/ux3lMAM4/y+DqCKBjePC7AsHDK6ENZGOx7OgTu0zhd0+Uz9U
 L/CGfuR4b8hIfwP5FKLqy01iNfHGghWKbvveK3G
IronPort-HdrOrdr: A9a23:XWLO6Kowz6WFyknrFgpj9QIaV5oneYIsimQD101hICG8cqSj+f
 xG+85rsSMc6QxhPk3I9urhBEDtex/hHP1OkOws1NWZLWrbUQKTRekIh+bfKlXbakrDH4VmtJ
 uIHZIQNDSJNykZsfrH
X-IronPort-AV: E=Sophos;i="5.92,234,1650945600"; 
   d="scan'208";a="74793351"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
CC: Owen Smith <owen.smith@citrix.com>
Subject: [PATCH] Add Svr2019, Svr2022 and Win11 to Inf2Cat
Date: Thu, 30 Jun 2022 15:24:03 +0100
Message-ID: <20220630142403.1468-1-owen.smith@citrix.com>
X-Mailer: git-send-email 2.32.0.windows.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

Signed-off-by: Owen Smith <owen.smith@citrix.com>
---
 vs2019/package/package.vcxproj | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/vs2019/package/package.vcxproj b/vs2019/package/package.vcxproj
index e10717a..00af1a3 100644
--- a/vs2019/package/package.vcxproj
+++ b/vs2019/package/package.vcxproj
@@ -17,7 +17,7 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <PropertyGroup>
     <EnableInf2cat>true</EnableInf2cat>
-    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='x64'">8_x64;Server8_x64;10_x64;Server10_x64</Inf2CatWindowsVersionList>
+    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='x64'">8_x64;Server8_x64;10_x64;Server10_x64;ServerRS5_X64;ServerFE_X64;10_CO_X64</Inf2CatWindowsVersionList>
     <Inf2CatWindowsVersionList Condition="'$(Platform)'=='Win32'">8_x86;10_x86</Inf2CatWindowsVersionList>
     <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
     <EnableDeployment>False</EnableDeployment>
-- 
2.32.0.windows.1



From win-pv-devel-bounces@lists.xenproject.org Thu Jun 30 15:46:26 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Jun 2022 15:46:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.358583.587862 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o6wN5-0003hW-Sz; Thu, 30 Jun 2022 15:46:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 358583.587862; Thu, 30 Jun 2022 15:46:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o6wN5-0003hP-QM; Thu, 30 Jun 2022 15:46:23 +0000
Received: by outflank-mailman (input) for mailman id 358583;
 Thu, 30 Jun 2022 15:46:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VHXp=XF=citrix.com=prvs=1730cf448=owen.smith@srs-se1.protection.inumbo.net>)
 id 1o6wN4-0003hJ-GX
 for win-pv-devel@lists.xenproject.org; Thu, 30 Jun 2022 15:46:22 +0000
Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com
 [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bf14bb5a-f88b-11ec-bdce-3d151da133c5;
 Thu, 30 Jun 2022 17:46:06 +0200 (CEST)
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: bf14bb5a-f88b-11ec-bdce-3d151da133c5
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1656603980;
  h=from:to:cc:subject:date:message-id:mime-version:
   content-transfer-encoding;
  bh=RLML9t8Wa0WPzlZlwzBZspqtfB6TKCBT0i6M3DScWHQ=;
  b=g7Mbm1T2RTguw12EBszefbA6TCHC5xDWgiXJrhfuitPYMnaWRb1NeF5U
   erGnTzrZmunGqLOBJBg+Hf3FNKrZ4BUEXE3L7p/rsxxFq6Vzvnt/ZOCco
   iu58CzvhO7qfHew/1LV8Y32G6/jpbnuCYc4WoznSrDdjcOwuFrVei8YDJ
   4=;
Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
X-SBRS: 5.1
X-MesageID: 77377873
X-Ironport-Server: esa4.hc3370-68.iphmx.com
X-Remote-IP: 162.221.156.83
X-Policy: $RELAYED
IronPort-Data: A9a23:68DotatYDvp4suqtjfynv+okS+fnVOBfMUV32f8akzHdYApBsoF/q
 tZmKWmGafzZMTD0e9Aka4Tn9k0F6MOEndFlSgVt+C89QX4a+JbJXdiXEBz9bniYRiHhoOOLz
 Cm8hv3odp1coqr0/0/1WlTZhSAgk/nOHNIQMcacUsxLbVYMpBwJ1FQywYbVvqYy2YLjW13W4
 YuoyyHiEATNNwBcYzp8B52r8HuDjNyq0N/PlgVjDRzjlAa2e0g9VPrzF4noR5fLatA88tqBb
 /TC1NmEElbxpH/BPD8HfoHTKSXmSpaKVeSHZ+E/t6KK2nCurQRquko32WZ1he66RFxlkvgoo
 Oihu6BcRi8JIIbyucIscSBHLB5sZLVX+YWXD1aG5Jn7I03uKxMAwt1rBUAye4YZ5vx2ESdF8
 vlwxDIlN07ZwbjsmfTiF7cq1p9LwMrDZevzvlln0jzfS+0jQIzDa67L+cVZzHE7gcUm8fP2O
 JVCNmU/M0+ojxtnFkcKGJ1knrqRwVLbWh8AkQyP/fJ07D2GpOB2+Oe0a4eEEjCQfu1Kn0Ddv
 nyD82nnDxUyMN2E1SHD4n+qnvXIny7wRMQVDrLQyxJxqATNnCpJUkRQDAbl56ni4qKjZz5BA
 2wK0RQPi5kQzVOUccukRwy5mi6qkCdJDrK8DNYGBBGxJrv8uljEWDVdH2IdMbTKp+dtG2V0i
 wbhc8fBQGU27ebLES/1GqK892vaBMQDEYMVicbopyMh6sKrnow8hwmnoj1LQP/s1Y2d9d0dL
 lm3QMkCa1Y715djO12Tpwyvvt5VjsGhovQJzgvWRHm5yQhyeZSoYYelgXCCs6secdzGHgLd5
 Cha8yR70AzpJcHlqcBwaL9VQOHBCwita1UwfmKD77F+rm/wqhZPjKhb4S1kJVcBD/vojQTBO
 ReJ0SsIvcc7FCLzMcdfPtPqY+x3nPeIKDgQfq2NBja4SsMpJFHvEeAHTRP44l0BZ2Bywf9hY
 s7FLp7E4LRzIf0P8Qdajtw1idcDrh3SD0uKLXwn53xLCYajWUM=
IronPort-HdrOrdr: A9a23:pmvnG6D0S3ibPbblHemm55DYdb4zR+YMi2TC1yhKJiC9Ffbo8v
 xG/c5rsiMc5wxxZJhNo7290cq7MBHhHPxOgbX5VI3KNGKNhILBFvAH0WKI+VPd8kPFmtK1rZ
 0QEJRDNA==
X-IronPort-AV: E=Sophos;i="5.92,234,1650945600"; 
   d="scan'208";a="77377873"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
CC: Owen Smith <owen.smith@citrix.com>
Subject: [PATCH] Add Svr2019, Svr2022 and Win11 to Inf2Cat
Date: Thu, 30 Jun 2022 16:45:47 +0100
Message-ID: <20220630154547.908-1-owen.smith@citrix.com>
X-Mailer: git-send-email 2.32.0.windows.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

Signed-off-by: Owen Smith <owen.smith@citrix.com>
---
 vs2019/package/package.vcxproj | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/vs2019/package/package.vcxproj b/vs2019/package/package.vcxproj
index cc39738..8e07a3c 100644
--- a/vs2019/package/package.vcxproj
+++ b/vs2019/package/package.vcxproj
@@ -17,7 +17,7 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <PropertyGroup>
     <EnableInf2cat>true</EnableInf2cat>
-    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='x64'">8_x64;Server8_x64;10_x64;Server10_x64</Inf2CatWindowsVersionList>
+    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='x64'">8_x64;Server8_x64;10_x64;Server10_x64;ServerRS5_X64;ServerFE_X64;10_CO_X64</Inf2CatWindowsVersionList>
     <Inf2CatWindowsVersionList Condition="'$(Platform)'=='Win32'">8_x86;10_x86</Inf2CatWindowsVersionList>
     <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
     <EnableDeployment>False</EnableDeployment>
-- 
2.32.0.windows.1



From win-pv-devel-bounces@lists.xenproject.org Thu Jun 30 16:16:54 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Jun 2022 16:16:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.358594.587867 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o6wqc-0007Wc-32; Thu, 30 Jun 2022 16:16:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 358594.587867; Thu, 30 Jun 2022 16:16:54 +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 1o6wqc-0007WV-0H; Thu, 30 Jun 2022 16:16:54 +0000
Received: by outflank-mailman (input) for mailman id 358594;
 Thu, 30 Jun 2022 16:16:53 +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=VHXp=XF=citrix.com=prvs=1730cf448=owen.smith@srs-se1.protection.inumbo.net>)
 id 1o6wqb-0007WP-90
 for win-pv-devel@lists.xenproject.org; Thu, 30 Jun 2022 16:16:53 +0000
Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com
 [216.71.155.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0a34b9f1-f890-11ec-bd2d-47488cf2e6aa;
 Thu, 30 Jun 2022 18:16:51 +0200 (CEST)
Received: from mail-bn1nam07lp2049.outbound.protection.outlook.com (HELO
 NAM02-BN1-obe.outbound.protection.outlook.com) ([104.47.51.49])
 by ob1.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256;
 30 Jun 2022 12:16:39 -0400
Received: from DS7PR03MB5477.namprd03.prod.outlook.com (2603:10b6:5:2c4::17)
 by SJ0PR03MB6615.namprd03.prod.outlook.com (2603:10b6:a03:388::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.17; Thu, 30 Jun
 2022 16:16:37 +0000
Received: from DS7PR03MB5477.namprd03.prod.outlook.com
 ([fe80::94e4:6a09:bc66:a037]) by DS7PR03MB5477.namprd03.prod.outlook.com
 ([fe80::94e4:6a09:bc66:a037%5]) with mapi id 15.20.5395.014; Thu, 30 Jun 2022
 16:16:37 +0000
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0a34b9f1-f890-11ec-bd2d-47488cf2e6aa
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=citrix.com; s=securemail; t=1656605811;
  h=from:to:subject:date:message-id:references:in-reply-to:
   content-transfer-encoding:mime-version;
  bh=VRUzO1nhbCJRgJA4dFSwMRf+C/2aahcinpvqgEEyHKA=;
  b=YSHoC8EEgphTbbJDP4Z3UZERhupt0tklJpy0KcSlmcLFt6s3/e1/kPRy
   2G+iBlH1DGMitgypYkRRDs4KN7Joq6VF7cyTG3kYCMrueTz145eJ+X6he
   T2qHCA5DXQQeYmArDeuJLFDeDzPHZScM7HtkzPKNJ+W/3pYuIeYAoAwlj
   s=;
X-IronPort-RemoteIP: 104.47.51.49
X-IronPort-MID: 74645811
X-IronPort-Reputation: None
X-IronPort-Listener: OutboundMail
X-IronPort-SenderGroup: RELAY_O365
X-IronPort-MailFlowPolicy: $RELAYED
IronPort-Data: A9a23:rVaBGaPVC+nspiHvrR31lsFynXyQoLVcMsEvi/4bfWQNrUongzFVz
 2UYWGDXO/6JZjT1Lt92O9u+8UwAsMDXzd5lQAto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h
 ynLQoCYdKjYdleF+lH1dOKJQUBUjclkfJKlYAL/En03FFUMpBsJ00o5wbZn2dYw27BVPivW0
 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb
 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Z+
 ukci66AZF8VLLzsxvwaSQh+Ay5sIvgTkFPHCSDXXc276WTjKyGp6dM3SUY8MMsf5/p9BnxI+
 boAMjcRYxufhuWwhrWmVu1rgcdlJ87uVG8dkig4kXeFUrB7GNafEs0m5vcBtNs0rsdREPCYf
 M8YdTpHZxXceRxffFwQDfrSmc/32iejLm0B8Tp5o4Jw0U3Vljc20oLsF9T+WNOrHfhpjHSH8
 zeuE2PRR0ty2Mak4SWE9De0mKrDkD32XKoWFaak7bh6jVuL3GsRBRYKE1yhrpGEZlWWXtteL
 wke/HMopK1qq0izFIGhDlu/vWKOuQMaV5xICeom5QqRy63SpQGEGmwDST0HY9sj3CMreQEXO
 payt4uBLVRSXHe9FRpxKp/8QeuOBBUo
IronPort-HdrOrdr: A9a23:PqoDSKPkHCGKxMBcT3/155DYdb4zR+YMi2TDiHoddfUFSKalfp
 6V98jzjSWE8Ar5K0tQ4uxoX5PwCk80lKQFqbX5WI3PYOCIghrNEGgP1+rfKnjbalTDH41mpO
 1dmspFebrN5DFB5K6UjjVQUexQpuVvm5rY5ts2uk0dKD2CHJsQjTuRZDz6LmRGAC19QbYpHp
 uV4cRK4xC6f24MU8i9Dn4ZG8DeutzijvvdEFI7Li9izDPLoSKj6bb8HRTd9AwZSSlzzbAr9n
 WAuxDl55+kr+qwxnbnpiDuBtVt6ZXcI+l4dYyxY/suW3bRY8GTFcZcsoi5zXEISSeUmRMXeZ
 f30lMd1o9ImgnslymO0GbQMk/boXsTAjbZuCOlqGqmrsrjSD0gDc1dwYpfbxvC8kIl+Mpxya
 RRwguixu1q5D777VHADuLzJmVXv1vxpWBnnf8YjnRZX4dbYLhNrZYH9EcQFJsbBir15I0uDe
 ErVajnlb9rWELfa2qcsnhkwdSqUHh2FhCaQlIassjQ1zRNhnh2w0YR2cRalHYd85A2TYVC+o
 3/Q9JVvaALStVTYbN2Be8HT8fyAmvRQQjUOGbXOljjHLFvAQO+l3c22sRH2AiHQu138HJpou
 W/bLpxjx9CR2v+TcuTwZZM7hfBBG2gQDWF8LAv26RE
X-IronPort-AV: E=Sophos;i="5.92,234,1650945600"; 
   d="scan'208";a="74645811"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=n5bRacnhG4jQEfz8eMOtu2RiH6LO43Gb9kaj5Ku0ZU8McbeiEvUvfLIS5bAiaHifJD+QwqETOdQ2mLEoVTRoHJSFPspZc52nYDCspEWznH/TnysOvuyM3JUiaRUTaATgoxbsQCh4o0jB0/sAtHm4kjS5tG2su0ZuNKatR/NkHSZhaCt3nqeOb0FdXbA+8bAUL/3o1a/Td9B7g2t640VZveUfAA9HXznNy+TIEePBbFHiMgMUCuGvhG0gpzXb3RM67xlcnvoxjrskUbN/NIe2ATJUC9uw2GBt2SMHbwnxfTM6YJR88P6KioXpmsuzPHLwXtVYm1tN0syeh2heXO23HQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AwbH7skUFGmYZZJV1z45+nW5o/+dmvmHYbzabGa19N0=;
 b=ZvSiraLuZ0zAhWlQkgPZDy/CEFb+L/3tAkrsgBLkvjp/l1wT36TqAsMVpm+0MvpmK3KRbHcJDSyMsq8a9bnrWHdje7AG9sm08vBpzmQpGFTYjtPsBEByMjJED5dnbXAPrdgMq/J5y2yHu35zenFg83SJn3PGSQpnuug+cP8OMMP5LdqHNnSNcU3H26mojHExDEDZOefMR8vaq5yj0z86tTj8eUGd4SrM8Bt3jIkG02Qyo9H++0Phhkx1dVyp+GKXt2BTbMfoMR3TQisIgmGJcaAqf8+YqbReD2ZJDRwarVeGMOhBKQwnsHYeMYpB/mj0JM/ppl/MNjPtnymOOQHqGg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AwbH7skUFGmYZZJV1z45+nW5o/+dmvmHYbzabGa19N0=;
 b=Cs35Y4uvItjkiKLquua7t7nso9AnQIgpvgGVkuQcwWBXSKYA5kWyYr7NwX4rGecf5wDxyNT9BCz9hUsvp4hi60k6LU+NScE+0clt9Alba/7aAYCrHMONpHnZCPQNnsOTsRNcNVyeG6CsjiLieh6OKpsL4yM6wSGCu07CtRoXq+E=
From: Owen Smith <owen.smith@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
	<win-pv-devel@lists.xenproject.org>
Subject: RE: [PATCH] Add Svr2019, Svr2022 and Win11 to Inf2Cat
Thread-Topic: [PATCH] Add Svr2019, Svr2022 and Win11 to Inf2Cat
Thread-Index: AQHYjJiCbB3sVgzDPkWQVzTPjHXD9q1oH33A
Date: Thu, 30 Jun 2022 16:16:37 +0000
Message-ID:
 <DS7PR03MB54775A60648F07C61A6D47F8FEBA9@DS7PR03MB5477.namprd03.prod.outlook.com>
References: <20220630154547.908-1-owen.smith@citrix.com>
In-Reply-To: <20220630154547.908-1-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 3422244b-df34-40db-eb51-08da5ab3e887
x-ms-traffictypediagnostic: SJ0PR03MB6615:EE_
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info:
 vG8q2bmmqT6AE6IQ1iuZZWJa3Z5+NEHVQfy1Ni/utku/WAzaEteV0iucpTEG1J2goFdv5rD5DJoIWr+GJNdPsjiC/MZpXg0dq5gD7YLahmG0cWE6REGF3PIN2lUahd+91F7kEj9SbOBdxZHhMmluOa+0sFknRs5GjD1Y/VNZMBEp+PYndDYT/a9BkwlgY+yGeI8ix9sVBsAA2FS3Jwp8QpDrxpAvOhFKFmOmoVSQYbcbmwYkkCf9KC+rede9zBQejTcFwhXTcEqwRvt9+IDwxkGajrBXMZW1lnBT9crCaEw+JKCG28cd4JU9yTFlRcpcZEpRQTRm1I8FPfSloczrACOi3SlljUCViYmM/BiVnUJ65BVCu0pmM6fihZaGWfzSVhZDi3an/zg8hC5DL7MlU87yVe5u43KCxJSKM4h8uwh0smfwyFEQuiOXtaW8+1ONHjrZVi16B6WIfDhFz1HiMqBaH30jRvufBeBFKQlMaGb0ez5XSt3ZDzFPl+le1iEu5O83k2rZP9r5x9IDJO+g1PbfKExNPSNBQaPCiOn0zOFuOUntGUi+1oZj6PU4pC84lm8+sHu0w1rn3v2sMe2yb3ARO0h4XJ1tYXqulKiXRnWfiz5NfcSeC5jrCffIyh7VdyqH5k8oPLPgAzxWWwzcTFNOeGO7FUKC3SBIzSodR/vGZlYVlnH+i1dNkqBKIUhhoCZvwhpEar2YGdeYbYYCPDpo8WTavK5dXAPMyxsAh5n63YmTb0QBo5WB9TzEQ7aWvv14mCQAg3WlE57vl+QGkEhD20ZIsmYPzcKBybfer9o1OXLZ0gqQb5Psl7b6TPxc
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5477.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(346002)(366004)(376002)(39860400002)(396003)(136003)(64756008)(53546011)(44832011)(41300700001)(9686003)(38100700002)(26005)(86362001)(122000001)(83380400001)(71200400001)(76116006)(2906002)(5660300002)(6506007)(33656002)(82960400001)(8676002)(186003)(66946007)(66446008)(66556008)(110136005)(8936002)(7696005)(66476007)(38070700005)(478600001)(55016003)(316002)(52536014);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?m7NrOpPIFkHlQjacmZL+bSnnxnZCRAnevpgW8JLAq/FJXokVnuAAlSES2WOH?=
 =?us-ascii?Q?jjDLjx44/LlElbX527WbvRt5IOHgFZxMqt25va9mHDwK5Cn8FGLYJUYWFi44?=
 =?us-ascii?Q?5Tt4Oiww9+3CQeoigi7Sx8ONG1gf6K+DJPwr6HLfAWihWWPuklidszbIU74U?=
 =?us-ascii?Q?q9TsYAwN3PCuow0TwuClqjOOJleurF8WrPUsdBfIlWXIUl6RVHbxiDJbZeTU?=
 =?us-ascii?Q?QEYy6c2zUIvZ/zdvrjIKhOcQz3xCxP7l/k5t/+ye/HGuDF+Hfk4i+5/mOG7W?=
 =?us-ascii?Q?0FWpf3zGXfDngvXq/56N8aPzpuVDxxYeytGz0/UmlXHvhwsg5DAbDBRoMs1u?=
 =?us-ascii?Q?ttvhJ/QrLOshUuGNalPlsqMS8j0/IadT4y5PX7Pu15CfgpABH4uBRXv4Xec+?=
 =?us-ascii?Q?o9trKvCNusAJSUw92gItl44836RNLolRyNpYZFhFF0RQjTNYT+q/jTYZtZse?=
 =?us-ascii?Q?RVsVJ3eMchxXeskL+w7XzZgGd6olbh9I2t88xbhUf3AGDJPjw4YwloNvi+iG?=
 =?us-ascii?Q?ice2WjRYsTyBKUNwP1C/XAQ3J8JjaJarUrijd3B26+LCXO4Kxcb6AZRzRB25?=
 =?us-ascii?Q?aUPG6/bd41Jz9exFGoh4q8jB9RMC3urQ8nJsroKozBCN3OWoCRy8Nt86ucLt?=
 =?us-ascii?Q?5SYg4+Mq1X+Mvdilx47gn+zVcBA0PUVzX7PMht4i1oRN+a+UZ3xuGR7YKGoA?=
 =?us-ascii?Q?dVrXTYHpU6wWG4zWp6Rbz1e5yPd/ter30jtXeo1qPvwm1ZRdi4ovE2BnyAOn?=
 =?us-ascii?Q?Vx5Yk4uFHTLOrn3GdKXZac82CzZ22c23U4zkGs8ra/2hy+ZZKZ0x8zqOQ5B4?=
 =?us-ascii?Q?ZiHFuxo2/cTKZdoD7S0+uBOohvbzYXgJ0FAFJrmpdtGABCOXqsvG/moUIC27?=
 =?us-ascii?Q?PBgQY3PneTOIi3jC3oRvgj+/mpmPk4DmkR1bXAz+EpEFJc9hP0sghos7EWqB?=
 =?us-ascii?Q?w5TEduI3VzjtN2Wlmx4iHXDSLcmC8bF/YYnejy7/RLI5jedZYSpH93l9cvZo?=
 =?us-ascii?Q?1oUE8l7WRCUNXwpyUwoAR3kJQCBBYnadERp9TjjP5terUonczFRWwGB8WWlM?=
 =?us-ascii?Q?BRHoeB7UaPaI7a9axvqsyNCwISx+62vVAZUS/6hED1tuzKpPYaSKQ4aZ+vXs?=
 =?us-ascii?Q?VZxtDivTNpn9AUAQknGmpEnV+IRZXFakZrPpByF+xsIzMyy/oaBqwI12Yzvp?=
 =?us-ascii?Q?vkaCNG7yVATp7e67yzI1oU7+ymJpc9IG06ctRJb4YGdHIIBHMM7tSqMCm4V1?=
 =?us-ascii?Q?qpIeGs1AxNMcYJVyElBHOcelDlFrWNwnEK7UC0OPnPkNh/H/kZp9KS/EOZgh?=
 =?us-ascii?Q?l5qwE1J6sVmkZhDQRtUwzicNeVIUJ4OzTstdeI0L01y6hT1QX0ajd8Ty5ik5?=
 =?us-ascii?Q?iAz+MOPSSFycmTh46AyfWcAcx69ncYZtKnImjyL2v7rGnuV5nL++efg9jNkQ?=
 =?us-ascii?Q?wZ8bij62Wsyoe2YPhNcmbvEoN241qlWjKzX0R/CWUG8Ayi+dDWP5hvaxek6t?=
 =?us-ascii?Q?yDsoIcJO1qL/YY2PtQSPtiwe4ulJR+2ICSqrJf/aC2+grw+YRJmIlZ1E30cw?=
 =?us-ascii?Q?fOzV3x+IuiJhdAJTN6xe8HF1DYaIDU1dwy7B9GlT?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5477.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3422244b-df34-40db-eb51-08da5ab3e887
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Jun 2022 16:16:37.2901
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Pe3x7aXzWWQ7se6TLazDa7riwmAsfE3cdvY1+2mz76yMDLqOHiTiAuWqgN7EwnM1QMQivmt2nvnmvnu9do3l8A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6615

Non-obvious as to which driver I posted this for... (see also previous emai=
l patch, which was from xenbus)

All drivers should have this patch applied, in order to tag CAT files with =
the correct OS metadata. Note: this doesn't prevent WHQL for Svr19/Svr22/Wi=
n11, as it appears the 10_x64 and Server10_x64 tags are general enough to c=
over ServerRS5_x64 (Svr2019), ServerFE_x64 (Svr22) and 10_CO_x64 (Win11)

Owen

-----Original Message-----
From: Owen Smith <owen.smith@citrix.com>=20
Sent: 30 June 2022 16:46
To: win-pv-devel@lists.xenproject.org
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [PATCH] Add Svr2019, Svr2022 and Win11 to Inf2Cat

Signed-off-by: Owen Smith <owen.smith@citrix.com>
---
 vs2019/package/package.vcxproj | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/vs2019/package/package.vcxproj b/vs2019/package/package.vcxpro=
j index cc39738..8e07a3c 100644
--- a/vs2019/package/package.vcxproj
+++ b/vs2019/package/package.vcxproj
@@ -17,7 +17,7 @@
   <Import Project=3D"$(VCTargetsPath)\Microsoft.Cpp.props" />
   <PropertyGroup>
     <EnableInf2cat>true</EnableInf2cat>
-    <Inf2CatWindowsVersionList Condition=3D"'$(Platform)'=3D=3D'x64'">8_x6=
4;Server8_x64;10_x64;Server10_x64</Inf2CatWindowsVersionList>
+    <Inf2CatWindowsVersionList=20
+ Condition=3D"'$(Platform)'=3D=3D'x64'">8_x64;Server8_x64;10_x64;Server10_=
x64
+ ;ServerRS5_X64;ServerFE_X64;10_CO_X64</Inf2CatWindowsVersionList>
     <Inf2CatWindowsVersionList Condition=3D"'$(Platform)'=3D=3D'Win32'">8_=
x86;10_x86</Inf2CatWindowsVersionList>
     <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
     <EnableDeployment>False</EnableDeployment>
--
2.32.0.windows.1



From win-pv-devel-bounces@lists.xenproject.org Thu Jun 30 17:01:12 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Jun 2022 17:01:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.358630.587915 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o6xXS-0006qe-IJ; Thu, 30 Jun 2022 17:01:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 358630.587915; Thu, 30 Jun 2022 17:01:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o6xXS-0006qX-FI; Thu, 30 Jun 2022 17:01:10 +0000
Received: by outflank-mailman (input) for mailman id 358630;
 Thu, 30 Jun 2022 17:01:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=efY/=XF=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1o6xXR-0006qQ-8F
 for win-pv-devel@lists.xenproject.org; Thu, 30 Jun 2022 17:01:09 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3c3552b3-f896-11ec-bdce-3d151da133c5;
 Thu, 30 Jun 2022 19:01:08 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id s1so28214388wra.9
 for <win-pv-devel@lists.xenproject.org>; Thu, 30 Jun 2022 10:01:08 -0700 (PDT)
Received: from [10.7.237.7] (54-240-197-231.amazon.com. [54.240.197.231])
 by smtp.gmail.com with ESMTPSA id
 u6-20020a5d5146000000b0020fcc655e4asm20285011wrt.5.2022.06.30.10.01.06
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 30 Jun 2022 10:01:06 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3c3552b3-f896-11ec-bdce-3d151da133c5
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:reply-to:subject
         :content-language:to:references:from:in-reply-to
         :content-transfer-encoding;
        bh=aZnOnYRy4v+SANGhdlBSpiHVJ/TxdTYmM3SUm/o0FTI=;
        b=kAf9OasyH59fIrIWjAzpNUdAVZ1UvYTfu7LA+sCNH3OzFJk9KMXSaOzp4zYlWOqPr6
         4I5Tv0eXvGRbGoJakZVwDN49zdM5svO/E4xLKGPHjRtWUNmSNyOf7oQOjsF6POEiFiHE
         FfheDNBiUPElgFtTU+pV/ZEUdm8RIysaaVF8eZ7uY9zKhTvV+w7SKuNf926UQyNAIfmO
         HyDrkeU9e03ezvkIWWHisdtKOdJJ68MlA+HZMQnSEZqsyl6RP0bbjt4GGdzRzVGb7LDO
         wmoNrH4G4WgwHl9+UNcFYTrvIgZrswZ8Z7P2UGasp0HjFiJxPmw1DnRUNJOZKADnwY5p
         Y7Ow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:reply-to
         :subject:content-language:to:references:from:in-reply-to
         :content-transfer-encoding;
        bh=aZnOnYRy4v+SANGhdlBSpiHVJ/TxdTYmM3SUm/o0FTI=;
        b=mWyJaP4QLv4tT8fvNg5oC950QAk4nL7poSmp3w0Sc+hDho7iznSHuGLKSAHNIfNQW2
         CAQxfAtKD5zl9rM1XfOHrKMOy1cXRSBuMb8tFCWCkBOhT152danfyJNpSZOIimE33g8j
         RUfxeS27OJMZOOAPEy8IumejwOx5jDiwMTQDr6H3a8nwO3+7h1Z45Fsex3ktPlsbB65e
         MDc7vzZDZ+DDAh2w6F/YLXz2xsG2c/VBHBloV02YTu8/RjDhw3nRlwLsY8ms1Nl4ixe3
         iMmDaN5St/SxidSmI5SU5S0c2pUDy4tzs6LZ52zVP6+cfgtE8Lby1lUMpF0prZW05kss
         j2VA==
X-Gm-Message-State: AJIora8MeTxtlDoilhGvt+Ob70Pz8UbGAZvIlqSeOCxTYwyxOKciR/pq
	aEkG4HmCi4v6Y1DxpR+IZ4EOihj+TD0ZYA==
X-Google-Smtp-Source: AGRyM1uRDNGSIaYYlD8+vGAVHgbMQPvmNxDWAniNj6OC6oRFaDOdcm3VXLIfbBgTAvZU613Sp9Jpzg==
X-Received: by 2002:a05:6000:1142:b0:21b:844e:27cb with SMTP id d2-20020a056000114200b0021b844e27cbmr9416536wrx.306.1656608467765;
        Thu, 30 Jun 2022 10:01:07 -0700 (PDT)
Message-ID: <9dcde89a-2276-0c2c-8e79-80c1f188fa17@gmail.com>
Date: Thu, 30 Jun 2022 18:01:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.10.0
Reply-To: paul@xen.org
Subject: Re: [PATCH] Add Svr2019, Svr2022 and Win11 to Inf2Cat
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20220630154547.908-1-owen.smith@citrix.com>
 <DS7PR03MB54775A60648F07C61A6D47F8FEBA9@DS7PR03MB5477.namprd03.prod.outlook.com>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <DS7PR03MB54775A60648F07C61A6D47F8FEBA9@DS7PR03MB5477.namprd03.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 30/06/2022 17:16, Owen Smith wrote:
> Non-obvious as to which driver I posted this for... (see also previous email patch, which was from xenbus)
> 
> All drivers should have this patch applied, in order to tag CAT files with the correct OS metadata. Note: this doesn't prevent WHQL for Svr19/Svr22/Win11, as it appears the 10_x64 and Server10_x64 tags are general enough to cover ServerRS5_x64 (Svr2019), ServerFE_x64 (Svr22) and 10_CO_x64 (Win11)
> 

Ok, thanks for the clarification.

> Owen
> 
> -----Original Message-----
> From: Owen Smith <owen.smith@citrix.com>
> Sent: 30 June 2022 16:46
> To: win-pv-devel@lists.xenproject.org
> Cc: Owen Smith <owen.smith@citrix.com>
> Subject: [PATCH] Add Svr2019, Svr2022 and Win11 to Inf2Cat
> 
> Signed-off-by: Owen Smith <owen.smith@citrix.com>
> ---
>   vs2019/package/package.vcxproj | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/vs2019/package/package.vcxproj b/vs2019/package/package.vcxproj index cc39738..8e07a3c 100644
> --- a/vs2019/package/package.vcxproj
> +++ b/vs2019/package/package.vcxproj
> @@ -17,7 +17,7 @@
>     <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
>     <PropertyGroup>
>       <EnableInf2cat>true</EnableInf2cat>
> -    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='x64'">8_x64;Server8_x64;10_x64;Server10_x64</Inf2CatWindowsVersionList>
> +    <Inf2CatWindowsVersionList
> + Condition="'$(Platform)'=='x64'">8_x64;Server8_x64;10_x64;Server10_x64
> + ;ServerRS5_X64;ServerFE_X64;10_CO_X64</Inf2CatWindowsVersionList>
>       <Inf2CatWindowsVersionList Condition="'$(Platform)'=='Win32'">8_x86;10_x86</Inf2CatWindowsVersionList>
>       <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
>       <EnableDeployment>False</EnableDeployment>
> --
> 2.32.0.windows.1
> 
> 



From win-pv-devel-bounces@lists.xenproject.org Thu Jun 30 17:01:53 2022
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 30 Jun 2022 17:01:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.358636.587919 (Exim 4.92)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1o6xY8-0006wW-LQ; Thu, 30 Jun 2022 17:01:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 358636.587919; Thu, 30 Jun 2022 17:01: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 1o6xY8-0006wN-IO; Thu, 30 Jun 2022 17:01:52 +0000
Received: by outflank-mailman (input) for mailman id 358636;
 Thu, 30 Jun 2022 17:01: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=efY/=XF=gmail.com=xadimgnik@srs-se1.protection.inumbo.net>)
 id 1o6xY6-0006qQ-RC
 for win-pv-devel@lists.xenproject.org; Thu, 30 Jun 2022 17:01:50 +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 55320d87-f896-11ec-bdce-3d151da133c5;
 Thu, 30 Jun 2022 19:01:50 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id j7so1985669wmp.2
 for <win-pv-devel@lists.xenproject.org>; Thu, 30 Jun 2022 10:01:50 -0700 (PDT)
Received: from [10.7.237.7] (54-240-197-231.amazon.com. [54.240.197.231])
 by smtp.gmail.com with ESMTPSA id
 m123-20020a1ca381000000b003942a244f47sm3536474wme.32.2022.06.30.10.01.49
 for <win-pv-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 30 Jun 2022 10:01:49 -0700 (PDT)
X-BeenThere: win-pv-devel@lists.xenproject.org
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 55320d87-f896-11ec-bdce-3d151da133c5
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20210112;
        h=message-id:date:mime-version:user-agent:reply-to:subject
         :content-language:to:references:from:in-reply-to
         :content-transfer-encoding;
        bh=bOTuzJBScEo0gkkAbp8oLgZy+YCvdYwlpgt516pPwdE=;
        b=NrZTnfkUtY0KQ8QGbV7g8e8jWxuPcZjH9ZIsEIbt1OIc6TjfqXiOeNnuvpXbn08Gr3
         ZcOzaaRdrVC5g7z3Re4+iTDSPUYsxifVMifCr9sF7vnw7jaj8XtgGOe0FU8X/hM4qPsJ
         ozv17gT7DO9SiA87UiTUrARvMBrF7H1aRa3kqiIeYuJhSKd6ssF1+RWuigHtFGwzBbzX
         NdCUYa4y3RCTbCd2nJmEvQlC0/Iu8nwcvVWaaA57vMx9rM9WX2KT2B8j9CyevqZyzb+J
         74rRJkWcYuRlugRlxRfvhsO7Ec2DY6yCZRqsizWuVt2Z5KalPlUZysDqoTlAL0RxbXPA
         Tb0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:message-id:date:mime-version:user-agent:reply-to
         :subject:content-language:to:references:from:in-reply-to
         :content-transfer-encoding;
        bh=bOTuzJBScEo0gkkAbp8oLgZy+YCvdYwlpgt516pPwdE=;
        b=O1wqRNwWeKNbmGWjWbMmHqHbk3QYuNw99bFk+IVGmvQxl0ZQonnHGA5VG/tQtbzqYT
         Pdlg45t+K3/mMBFLpB5iqwRoa9PXFDYtOHSIjeNggty5gQcl3EY2EbfDQkfBGzazuuiU
         qlxwttfwxzMiRODKKTjUpWyKbuIO3sv15FAS+mPoD43vswGx+auH+c8xbS0+VqUkajT/
         aDBoApNh4DmXPJa1NhYCLVU4Hg7bVo7xtqjzTHB/KRmpxw6bI8fVN74oJtOfyIOJEysM
         yltO2diGpmkSW1OdE8IQKBtombXbJ0hR36YdC3ufvPx8TVq/yYJrLXG2kd25c1PWWcs1
         si8A==
X-Gm-Message-State: AJIora8l3EgYoujrxz6Bo6Qm8C/+ORK2JE8qQsSnbdvqjokYCZspcLvK
	vWA2YasGkDAFCyeuam+pJk78jRDuTU63jw==
X-Google-Smtp-Source: AGRyM1uAXxbgP3/9S3obNHapx4E1OEZcXNHeYR/dWuo+h6mRozeayqhl+2/gOVcHbG5n4tJiv3W44A==
X-Received: by 2002:a05:600c:4e92:b0:3a0:4f34:8fd6 with SMTP id f18-20020a05600c4e9200b003a04f348fd6mr12943405wmq.63.1656608509671;
        Thu, 30 Jun 2022 10:01:49 -0700 (PDT)
Message-ID: <16891c46-c2a0-e5b6-06ae-75fae42f725f@gmail.com>
Date: Thu, 30 Jun 2022 18:01:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Thunderbird/91.10.0
Reply-To: paul@xen.org
Subject: Re: [PATCH] Add Svr2019, Svr2022 and Win11 to Inf2Cat
Content-Language: en-US
To: win-pv-devel@lists.xenproject.org
References: <20220630154547.908-1-owen.smith@citrix.com>
From: "Durrant, Paul" <xadimgnik@gmail.com>
In-Reply-To: <20220630154547.908-1-owen.smith@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 30/06/2022 16:45, Owen Smith wrote:
> Signed-off-by: Owen Smith <owen.smith@citrix.com>

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

I'll apply to all drivers.

> ---
>   vs2019/package/package.vcxproj | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/vs2019/package/package.vcxproj b/vs2019/package/package.vcxproj
> index cc39738..8e07a3c 100644
> --- a/vs2019/package/package.vcxproj
> +++ b/vs2019/package/package.vcxproj
> @@ -17,7 +17,7 @@
>     <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
>     <PropertyGroup>
>       <EnableInf2cat>true</EnableInf2cat>
> -    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='x64'">8_x64;Server8_x64;10_x64;Server10_x64</Inf2CatWindowsVersionList>
> +    <Inf2CatWindowsVersionList Condition="'$(Platform)'=='x64'">8_x64;Server8_x64;10_x64;Server10_x64;ServerRS5_X64;ServerFE_X64;10_CO_X64</Inf2CatWindowsVersionList>
>       <Inf2CatWindowsVersionList Condition="'$(Platform)'=='Win32'">8_x86;10_x86</Inf2CatWindowsVersionList>
>       <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
>       <EnableDeployment>False</EnableDeployment>



