|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: win-pv-devel Digest, Vol 140, Issue 14
On 9/17/26 5:45 PM, win-pv-devel-request@xxxxxxxxxxxxxxxxxxxx wrote: > Send win-pv-devel mailing list submissions to > win-pv-devel@xxxxxxxxxxxxxxxxxxxx > > To subscribe or unsubscribe via the World Wide Web, visit > https://lists.xenproject.org/mailman/listinfo/win-pv-devel > or, via email, send a message with subject or body 'help' to > win-pv-devel-request@xxxxxxxxxxxxxxxxxxxx > > You can reach the person managing the list at > win-pv-devel-owner@xxxxxxxxxxxxxxxxxxxx > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of win-pv-devel digest..." > > > Today's Topics: > > 1. [PATCH 0/2] xennet: improve RX NBL batching and fix TX > doorbell coalescing (david ambu) > 2. [PATCH 1/2] xennet: improve NBL batching receive path (david ambu) > 3. [PATCH 2/2] xennet: fix TX doorbell coalescing ? More flag > dropped at NBL boundaries (david ambu) > 4. [PATCH] xenvif: fix TX doorbell coalescing - More overridden > for non-RSS traffic (david ambu) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Thu, 17 Sep 2026 16:41:28 +0100 > From: david ambu<david.preetham@xxxxxxxxxx> > To:win-pv-devel@xxxxxxxxxxxxxxxxxxxx > Cc: david ambu<david.preetham@xxxxxxxxxx> > Subject: [PATCH 0/2] xennet: improve RX NBL batching and fix TX > doorbell coalescing > Message-ID:<20260917154131.2040-1-david.preetham@xxxxxxxxxx> > Content-Type: text/plain; charset=UTF-8 > > This series addresses two independent throughput issues in xennet. > > Patch 1 ? NBL batching on the receive path: > > The receive path previously called NdisMIndicateReceiveNetBufferLists > once per NBL (batch size of 1), causing excessive NDIS stack overhead > on high-throughput workloads. This patch raises NblBatchMax to 32 > (configurable up to 64), groups consecutive NBLs with the same > EtherType into a single indicate call with > NDIS_RECEIVE_FLAGS_SINGLE_ETHER_TYPE, and fixes __ReceiverPushPackets > to move KeMemoryBarrier before the Returned/Indicated reads and return > early when the queue is empty. Hello, Patch 1 looks fine for me. Just a remark: moving KeMemoryBarrier before Returned read seems to break the ordering as Returned needs to be read before Indicated. Or maybe there is no need for an ordering here? > Patch 2 ? TX doorbell coalescing across NBL boundaries: > > __TransmitterSendNetBufferList computed the More flag as > (NET_BUFFER_NEXT_NB(NetBuffer) != NULL), which evaluates to FALSE for > the last NB of every NBL even when the outer loop still has additional > NBLs to submit. This caused a premature doorbell ring between > back-to-back NBLs. Fixed by passing MoreNbls from the outer loop. > > Note: a companion fix in xenvif is also required ? > TransmitterQueuePacket unconditionally reset More = FALSE for > non-RSS traffic, overriding the value passed in from xennet. > > Performance (iperf2, 60 s, 3 runs, Windows PV guest): > > Single-stream TCP: 4,606 -> 6,056 Mbps (+31.5%) > 8-stream TCP: 14,663 -> 18,679 Mbps (+27.4%) > 8-stream UDP: 1,117 -> 1,230 Mbps (+10.1%) > Single-stream UDP: 327 -> 329 Mbps (no change, expected) Batching packets can also potentially add latency costs. A latency benchmark should also be done. > david ambu (2): > xennet: improve NBL batching receive path > xennet: fix TX doorbell coalescing ? More flag dropped at NBL > boundaries > > src/xennet.inf | 6 +++ > src/xennet/adapter.c | 13 +++++ > src/xennet/adapter.h | 8 +++ > src/xennet/receiver.c | 108 +++++++++++++++++++++++++++++---------- > src/xennet/transmitter.c | 9 ++-- > 5 files changed, 114 insertions(+), 30 deletions(-) PS: For now I can only respond to the digest, sorry. This should be fixed in future mails. -- Césaire Mounah | Vates Windows Guest Tools Engineer XCP-ng & Xen Orchestra - Vates solutions web: https://vates.tech -- Césaire Mounah | Vates Windows Guest Tools Engineer XCP-ng & Xen Orchestra - Vates solutions web: https://vates.tech
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |