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

Re: [PATCH 2/2] xennet: fix TX doorbell coalescing — More flag dropped at NBL boundaries


  • To: david ambu <david.preetham@xxxxxxxxxx>, win-pv-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>
  • Date: Mon, 21 Sep 2026 15:17:50 +0200
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=vates.tech header.i="@vates.tech" header.h="From:Subject:Date:Message-ID:To:MIME-Version:Content-Type:In-Reply-To:References:Feedback-ID"
  • Delivery-date: Mon, 21 Sep 2026 13:17:57 +0000
  • Feedback-id: default:8631fc262581453bbf619ec5b2062170:Sweego
  • List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>

On 17/09/2026 17:43, david ambu wrote:
>    __TransmitterSendNetBufferList computed the More flag as
>    (NET_BUFFER_NEXT_NB(NetBuffer) != NULL), which only looks at remaining
>    NET_BUFFERs within the current NBL. This evaluates to FALSE for the last
>    NB of every NBL, even when the outer loop in TransmitterSendNetBufferLists
>    still has additional NBLs to submit in the same batch.
> 
> Assisted-by: ClaudeCode:claude-opus-4.8
> Signed-off-by: david ambu <david.preetham@xxxxxxxxxx>

Please don't use the Unicode '—' in the commit message.

> ---
>   src/xennet/transmitter.c | 9 ++++++---
>   1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/src/xennet/transmitter.c b/src/xennet/transmitter.c
> index 4bb82bc..e17d89f 100644
> --- a/src/xennet/transmitter.c
> +++ b/src/xennet/transmitter.c
> @@ -288,7 +288,8 @@ __TransmitterHash(
>   static VOID
>   __TransmitterSendNetBufferList(
>       IN  PXENNET_TRANSMITTER     Transmitter,
> -    IN  PNET_BUFFER_LIST        NetBufferList
> +    IN  PNET_BUFFER_LIST        NetBufferList,
> +    IN  BOOLEAN                 MoreNbls
>       )
>   {
>       PNET_BUFFER_LIST_RESERVED   ListReserved;
> @@ -338,7 +339,7 @@ __TransmitterSendNetBufferList(
>                                   MaximumSegmentSize,
>                                   TagControlInformation,
>                                   &Hash,
> -                                (NetBufferListNext != NULL) ? TRUE : FALSE,
> +                                (NetBufferListNext != NULL || MoreNbls) ? 
> TRUE : FALSE,
>                                   Cookie);
>           }
>           else
> @@ -384,7 +385,9 @@ TransmitterSendNetBufferLists(
>           ListNext = NET_BUFFER_LIST_NEXT_NBL(NetBufferList);
>           NET_BUFFER_LIST_NEXT_NBL(NetBufferList) = NULL;
>   
> -        __TransmitterSendNetBufferList(Transmitter, NetBufferList);
> +        __TransmitterSendNetBufferList(Transmitter,
> +                                       NetBufferList,
> +                                       (ListNext != NULL) ? TRUE : FALSE);
>   
>           NetBufferList = ListNext;
>       }



--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech

 


Rackspace

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