microsoft/diskspd

Random Access Flag Not Reflected Correctly in XML Output

0x7FFFFFFFFFFFFFFF opened this issue · 2 comments

Description

When running DiskSpd with the -r option for random access, the generated XML output incorrectly shows <RandomAccess>false</RandomAccess>. This suggests that the random access flag is not being reported correctly in the XML output.

To Reproduce:

Here are the steps to reproduce the behavior:

Run DiskSpd with the -r option: diskspd.exe -c1024M -w10 -t14 -d30 -o2 -r -b4K -C1 -Z1G -W1 -Rxml -L -Sh "C:\diskspd.bin" > result.xml
Open the generated XML output file result.xml.
Notice that the RandomAccess field is set to false: <RandomAccess>false</RandomAccess>

Expected behavior:

Since I ran DiskSpd with the -r option for random access, I expected to see <RandomAccess>true</RandomAccess> in the XML output.

Environment:

<Tool>
    <Version>2.1.0-dev</Version>
    <VersionDate>2021/7/1</VersionDate>
</Tool>

Random access in terms of DISKSPD's IO offset pattern is on the <Random> element, not <RandomAccess>.

The <RandomAccess> element refers to / controls whether the target file is opened with FILE_FLAG_RANDOM_ACCESS or not (see CreateFile). On the command line this comes from the -f[rst] option; the adjacent sequential/temporary flags are also spec'd here.

These flags only affected OS cached operation. RANDOM_ACCESS controls whether the kernel cache manager will attempt to do readahead into the cache based on an observed sequential/strided access pattern. Saying RANDOM_ACCESS turns that off. SEQUENTIAL is the opposite - it says it will be sequential, so it more aggressively does do readahead. Again, specific to cached operation.

If you use -Rpxml (print the XML profile; no run) it should be pretty easy/quick to verify the effect on the XML.

Thanks for the clarification.