On 11/5/24 15:02, Adam Horshack wrote:
Nice writeup Vincent. It's been a while since I've looked at the NVMe spec so perhaps I'm asking the wrong question but why is fio managing a data buffer for its handling of the Write Zero command? I would've assumed there's no data payload associated with that NVMe command, thus nothing that should even be subject to internal buffer scrambling inside fio. Regards, Adam ________________________________________ From: Vincent Fu <vincentfu@xxxxxxxxx> Sent: Tuesday, November 5, 2024 2:41 PM To: fio@xxxxxxxxxxxxxxx Cc: gost.dev@xxxxxxxxxxx Subject: blog post on fio write zeroes performance I am pleased to share a blog post about fio write zeroes performance: https://github.com/vincentkfu/fio-blog/wiki/How-could-write-zeroes-performance-be-worse-at-higher-queue-depths Read about the unexpected performance issue we encountered. Feedback is welcome. Vincent
When we added write zeroes support for the io_uring_cmd ioengine it was not on our mind that the default behavior for fio is to scramble buffers. Basically these patches just changed the opcode from a regular write to write zeroes.
You do have a good point that perhaps fio should be smart enough to avoid touching the buffers when doing write zeroes.
Thanks for the feedback! Vincent