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

Re: [XENVIF PATCH RESEND] Faster checksum for x64 with carry flag renaming


  • To: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>, "win-pv-devel@xxxxxxxxxxxxxxxxxxxx" <win-pv-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Owen Smith <owen.smith@xxxxxxxxxx>
  • Date: Fri, 31 Oct 2025 10:22:12 +0000
  • Accept-language: en-GB, en-US
  • 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
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=bYA99CUm7mIL2e3eEGhrgBENU84fmVPIDASf2OHCekE=; b=H2xutKX0MGHGg5DkyiUChn1V9NyxO5b9SUeaENBsmoQ9QupLP9Bwk/TLihYyA2ny2kbqwFpG6fOG8CO5P+b+Y/4lJeds9gKyFXjC6whraemAxrG7D76GOFi7buIDb4wnT2V5i1SajvgKd1iKdj9rzxpptzYl+ZIhTwv1RSSQmcf/3SLSIXpVuldGcDvjxmJrtKS4+3n3eDVRH86vG/unpf16wTznTqE9sBVmNTqwIkzIVbkOMRNdL0z+5at1liXil/dP1gYIjcNB1YaeXfQW7JMCvqIrFj5TrdPmQiu6GFF1lcnRfiK2IpjfIPJTXWqZO/vVS2JZEz9vACVrkYbtGQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xAJBlBgohQ9vO34OzuozyIszwUTCEis+dXwNVvdSvVoX+CpmRQGjkUQfzHkMgM5bZUor3MEiIs+SQ6Lgr4lsEPQay4GRPrLR88Lrccp+PTcznyxIosmsI6vlJd868XFKwQHSjR4kCPnd+iWmWJ+XGFm6tYtS3VKnnXvSPBcwOGv/YkWlCfCXLq1x3nKAZsAQMPSnM2IaQ/hnxhvfWFG640AbfzZrKT7PBuNwXMDaLQoyVMbO3xczeJ9kFGMeBuzQwnBQkD7707KQLmXohfVIbHKTRIkEHIc0xM96CGe2IJek46L/z4UxuTmabd8Sm6q1W46BCuhgF1FExgDaKCCSAA==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Frediano Ziglio <frediano.ziglio@xxxxxxxxxx>
  • Delivery-date: Fri, 31 Oct 2025 10:22:22 +0000
  • List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>
  • Msip_labels:
  • Thread-index: AQHcR08qSJqdEEYwWUSQFuJkXOHg/bTcEbuD
  • Thread-topic: [XENVIF PATCH RESEND] Faster checksum for x64 with carry flag renaming

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

________________________________________
From: win-pv-devel <win-pv-devel-bounces@xxxxxxxxxxxxxxxxxxxx> on behalf of Tu 
Dinh <ngoc-tu.dinh@xxxxxxxxxx>
Sent: 27 October 2025 2:36 PM
To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx
Cc: Tu Dinh; Frediano Ziglio
Subject: [XENVIF PATCH RESEND] Faster checksum for x64 with carry flag renaming

Modern CPUs are capable of renaming CF independently of other arithmetic
flags. We can better exploit ILP by maintaining two carry chains in the
hot checksum loop. This gives a ~20% speed boost for packets larger than
64 bytes (as tested on Zen 3).

Suggested-by: Frediano Ziglio <frediano.ziglio@xxxxxxxxxx>
Signed-off-by: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>
---
 src/xenvif/amd64/checksum_amd64.asm | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/xenvif/amd64/checksum_amd64.asm 
b/src/xenvif/amd64/checksum_amd64.asm
index 8fbc241..37bbb7e 100644
--- a/src/xenvif/amd64/checksum_amd64.asm
+++ b/src/xenvif/amd64/checksum_amd64.asm
@@ -26,10 +26,12 @@ l64:
     adc rax, [rdx + 8]
     adc rax, [rdx + 16]
     adc rax, [rdx + 24]
-    adc rax, [rdx + 32]
-    adc rax, [rdx + 40]
-    adc rax, [rdx + 48]
-    adc rax, [rdx + 56]
+    adc rax, 0
+    mov r9, [rdx + 32]
+    add r9, [rdx + 40]
+    adc r9, [rdx + 48]
+    adc r9, [rdx + 56]
+    adc rax, r9
     adc rax, 0

     sub r8, 64
--
2.51.0.windows.2



--
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®.