Bump DiskSpd to v2.2.0 and fix metrics parser for new CPU table format#714
Conversation
rudraptpsingh
commented
May 22, 2026
- Promote BlobName to Parameters.PackageBlobName (default: diskspd.2.2.0.zip)
- Allows runtime override without profile edit
- diskspd.2.2.0.zip uploaded packages
There was a problem hiding this comment.
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".
7590b9d to
760233d
Compare
- 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>
760233d to
288d86e
Compare
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. |