Skip to content

Bump DiskSpd to v2.2.0 and fix metrics parser for new CPU table format#714

Merged
brdeyo merged 2 commits into
microsoft:mainfrom
rudraptpsingh:user/rudrasingh/diskspd-version-bump-clean
May 26, 2026
Merged

Bump DiskSpd to v2.2.0 and fix metrics parser for new CPU table format#714
brdeyo merged 2 commits into
microsoft:mainfrom
rudraptpsingh:user/rudrasingh/diskspd-version-bump-clean

Conversation

@rudraptpsingh
Copy link
Copy Markdown
Contributor

  • Promote BlobName to Parameters.PackageBlobName (default: diskspd.2.2.0.zip)
  • Allows runtime override without profile edit
  • diskspd.2.2.0.zip uploaded packages

@rudraptpsingh rudraptpsingh changed the title Bump DiskSpd package version to 2.2.0 (Gen11 version audit) Bump DiskSpd package version to 2.2.0 May 22, 2026
Copy link
Copy Markdown
Contributor

@brdeyo brdeyo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We cannot do this as it is in conflict with an important aspect of VC ensuring users cannot make changes to our out-of-box profiles that have the potential to cause breaks or to deviate the core purpose of the profile.

Core workload packages are rarely something we allow users to override in parameters. I would not like to change this profile this way in open source. Some options you may consider are to use a custom profile for your specific purpose or to simply set the package version to 2.2.0 in the DependencyPackageInstallation. It is best it is "set in stone".

@rudraptpsingh rudraptpsingh force-pushed the user/rudrasingh/diskspd-version-bump-clean branch from 7590b9d to 760233d Compare May 26, 2026 07:14
Rudra Pratap SIngh and others added 2 commits May 26, 2026 12:46
- Set BlobName to diskspd.2.2.0.zip directly in DependencyPackageInstallation
- diskspd.2.2.0.zip uploaded to virtualclientinternal/packages

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
DiskSpd v2.2.0 changed the CPU section header from:
  Group | CPU | Usage | User | Kernel | Idle
to:
  Socket | Node | Group | Core | CPU | Usage | User | Kernel | Idle

The existing Preprocess() logic searched for 'Group' and prefixed
a 'CPU' section title, but the extra 'Socket | Node' prefix caused
Sectionize() to key the section as 'Socket | Node | CPU' instead of
'CPU', resulting in a KeyNotFoundException at parse time.

Fix: detect the v2.2.0 extended header and normalise it to the legacy
Group | CPU format before sectionizing, stripping the Socket/Node/Core
columns from each data row via regex.

Also adds a unit test and example output file based on real v2.2.0
output captured from a Gen11 DiskSpd run (SCHIELC41ABD017).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@rudraptpsingh rudraptpsingh force-pushed the user/rudrasingh/diskspd-version-bump-clean branch from 760233d to 288d86e Compare May 26, 2026 07:17
@rudraptpsingh rudraptpsingh changed the title Bump DiskSpd package version to 2.2.0 Bump DiskSpd to v2.2.0 and fix metrics parser for new CPU table format May 26, 2026
@rudraptpsingh
Copy link
Copy Markdown
Contributor Author

We cannot do this as it is in conflict with an important aspect of VC ensuring users cannot make changes to our out-of-box profiles that have the potential to cause breaks or to deviate the core purpose of the profile.

Core workload packages are rarely something we allow users to override in parameters. I would not like to change this profile this way in open source. Some options you may consider are to use a custom profile for your specific purpose or to simply set the package version to 2.2.0 in the DependencyPackageInstallation. It is best it is "set in stone".

Updated to update the package version only in profile. Also fixes DiskSpdMetricsParser to handle the v2.2.0 CPU table format change — DiskSpd v2.2.0 added Socket | Node | Core columns to the CPU section header, which caused the parser's Preprocess() to key the section as "Socket | Node | CPU" instead of "CPU", resulting in a KeyNotFoundException at parse time. The fix detects the extended header and normalizes it to the legacy Group | CPU format before sectionizing. Includes a new unit test and example output file based on a real v2.2.0 run on a 160-core Windows host. All existing DiskSpd parser tests pass.

@brdeyo brdeyo merged commit a765e46 into microsoft:main May 26, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants