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

[RFC PATCH 0/6] Remove XenDisk



XenDisk currently performs 3 tasks on behalf of XenVbd:
1. Report StorageDeviceTrimProperty;
2. Intercept and implement IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES;
3. Report sector sizes via StorageAccessAlignmentProperty.

The 2 previous tasks are already handled by Classpnp, although discards
sent to XenVbd were effectively broken without XenDisk.

The 3rd task works without XenDisk, as pre-boot injecting of physical-
sector-size on Server 2025 via XenStore provides the expected outcome.

This series attempts to fix XenVbd to not require XenDisk to operate:
* Report the 0xB2 VPD page and the LBPU bit, used by Classpnp to detect
  unmap support;
* Provide the appropriate unmap information reporting in VPD Block
  Limits whereas it was missing previously, since this information is
  required if LBPU is enabled;
* For correctness's sake, add a check for Service Action in the Read
  Capacity 16 handler, as its opcode is shared with several other
  service actions.

Before starting the fixes, add a few refactoring to use Storport
declarations instead of inline VPD page codes.

These patches are meant to be applied on top of the "Refactor Features
and DiskInfo" patch. They have been lightly tested so far.

Tu Dinh (6):
  Stop inlining the VPD page list in TargetInquiry00
  Stop inlining VPD page codes
  Report max unmap LBA and block descriptor counts
  Report VPD 0xB2 Logical Block Provisioning
  Check Service Action when handling Read Capacity 16
  Remove XenDisk

 include/xencdb.h                    |    8 +
 msbuild.ps1                         |    2 +-
 src/xendisk/assert.h                |  220 ---
 src/xendisk/debug.h                 |   95 --
 src/xendisk/driver.c                |  283 ----
 src/xendisk/driver.h                |   76 -
 src/xendisk/fdo.c                   | 1618 ----------------------
 src/xendisk/fdo.h                   |   84 --
 src/xendisk/mutex.h                 |  114 --
 src/xendisk/pdo.c                   | 2000 ---------------------------
 src/xendisk/pdo.h                   |   77 --
 src/xendisk/registry.c              | 1564 ---------------------
 src/xendisk/registry.h              |  211 ---
 src/xendisk/thread.c                |  226 ---
 src/xendisk/thread.h                |   75 -
 src/xendisk/types.h                 |   54 -
 src/xendisk/xendisk.rc              |   57 -
 src/xenvbd.inf                      |  118 +-
 src/xenvbd/target.c                 |  142 +-
 vs2019/package/package.vcxproj      |    3 -
 vs2019/xendisk/xendisk.vcxproj      |   83 --
 vs2019/xendisk/xendisk.vcxproj.user |    8 -
 vs2019/xenvbd.sln                   |   14 -
 vs2022/package/package.vcxproj      |    3 -
 vs2022/xendisk/xendisk.vcxproj      |   76 -
 vs2022/xendisk/xendisk.vcxproj.user |    8 -
 vs2022/xenvbd.sln                   |   10 -
 27 files changed, 174 insertions(+), 7055 deletions(-)
 delete mode 100644 src/xendisk/assert.h
 delete mode 100644 src/xendisk/debug.h
 delete mode 100644 src/xendisk/driver.c
 delete mode 100644 src/xendisk/driver.h
 delete mode 100644 src/xendisk/fdo.c
 delete mode 100644 src/xendisk/fdo.h
 delete mode 100644 src/xendisk/mutex.h
 delete mode 100644 src/xendisk/pdo.c
 delete mode 100644 src/xendisk/pdo.h
 delete mode 100644 src/xendisk/registry.c
 delete mode 100644 src/xendisk/registry.h
 delete mode 100644 src/xendisk/thread.c
 delete mode 100644 src/xendisk/thread.h
 delete mode 100644 src/xendisk/types.h
 delete mode 100644 src/xendisk/xendisk.rc
 delete mode 100644 vs2019/xendisk/xendisk.vcxproj
 delete mode 100644 vs2019/xendisk/xendisk.vcxproj.user
 delete mode 100644 vs2022/xendisk/xendisk.vcxproj
 delete mode 100644 vs2022/xendisk/xendisk.vcxproj.user

-- 
2.51.2.windows.1



--
 | Vates

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