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

Re: [RFC PATCH 3/6] Report max unmap LBA and block descriptor counts


  • To: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>, "win-pv-devel@xxxxxxxxxxxxxxxxxxxx" <win-pv-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Owen Smith <owen.smith@xxxxxxxxxx>
  • Date: Wed, 4 Mar 2026 08:26:31 +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=JO28SsyFstTIPoPYngvcvrcUQTJ34dvNC+2lmd5od6k=; b=QRgaAgKFpLzIaQCYqxN/sqoNyRDTTas0JwQmZMf9956uSOBNv7GWmPDMMBWeTFpIHKu0v9R7P0daaIlwbt5oQRsvBG3pWxqezTh/poU6rppQp0ZLAwARP9jXsmEvn2fIxtLfEyduugd/axctOH1sLfSAAb7YQtTfstw2dyk9FJQH7ONLQeqGeSofPZyJJ6lD3OTeg4TdjNescgFZHqyHCFXQXDMNXrJ6UrklaceVdCwo2wEFg1v7VwB0mjIJ2wZ+BHJnedrquPH9IBFJNj1YGrWcgCMSzjIaTCLZJ8m+tkie2c+Xzr2WXFqM4ufnxkTNp2OY2pIUGmm3DZA3scz/Qg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YVK/WoVkXs9FrMn3o6hMgV97lhlethRwblVguPmInFXsauol5CSEWiouL2DZs25Kols9Mjx0f75kD6Gpla0AtOoThCYQ/xNKDukq6dt950BEgKu5FlTLVr8gTwmRZVLsUCdrtRUMAs82Qcsx1xozDdCNsAvQ7JXLumLtuk0T2Fy+nl4XztnXcm6TYgtxgQc/EMWfgf9pNqw/zWPYPTHi5ShO64dMwU8TyqJpV5Sqzth7hX+pLbbHdMi/KQByuXu9DXHOpGTdkUvg96hcSeED2MBGyr01NsBC5KKnqqJUFiqhWoQeQkOldeT76E/CqW9mfgVS+LDRkn4T6rTPgyrbBg==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Delivery-date: Wed, 04 Mar 2026 08:26:35 +0000
  • List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>
  • Msip_labels:
  • Thread-index: AQHcpw8JqAEFg/mTlEqTktOHqlr91bWeExJn
  • Thread-topic: [RFC PATCH 3/6] Report max unmap LBA and block descriptor counts

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

________________________________________
From: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>
Sent: 26 February 2026 10:59 AM
To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx
Cc: Tu Dinh; Owen Smith
Subject: [RFC PATCH 3/6] Report max unmap LBA and block descriptor counts

These values are needed in the Block Limits VPD page in order to show
that unmap is supported.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>
---
 src/xenvbd/target.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/xenvbd/target.c b/src/xenvbd/target.c
index 1c6944f..5109281 100644
--- a/src/xenvbd/target.c
+++ b/src/xenvbd/target.c
@@ -829,6 +829,16 @@ TargetInquiryB0(
     Data->PageCode = VPD_BLOCK_LIMITS;
     Data->PageLength[1] = 0x3C; // as per spec

+    *(PULONG)Data->MaximumUnmapLBACount = _byteswap_ulong(ULONG_MAX);
+    /*
+     * Each discarded extent requires its own BLKIF_OP_DISCARD request. We 
don't
+     * want to consume the entire ring at once, but the optimal value might not
+     * be 1 either.
+     * Since the ring can hold anywhere from 32 requests (with 1 ring page) to
+     * 512 requests (using XENVBD_MAX_RING_PAGE_ORDER), use 8 as a conservative
+     * default.
+     */
+    *(PULONG)Data->MaximumUnmapBlockDescriptorCount = _byteswap_ulong(8);
     *(PULONG)Data->OptimalUnmapGranularity = 
_byteswap_ulong(Features->DiscardGranularity);
     *(PULONG)Data->UnmapGranularityAlignment = 
_byteswap_ulong(Features->DiscardAlignment);
     // alignment is only valid if a granularity has been set
--
2.51.2.windows.1



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