fio results are allmost same when i run the fio with ioengine=psync with or without dax option

25 views
Skip to first unread message

muneendra kumar

unread,
Dec 3, 2018, 8:23:21 AM12/3/18
to pm...@googlegroups.com
Hi,
I am running fio test on an emulted pmem device.
Attached is my fio configuration.
When i run the fio test with the below mount options i din't see any major differences with both the mount opions
a)  mount -t ext4 -o dax  /dev/pmem0 /mnt/mem
b)  mount -t ext4   /dev/pmem0 /mnt/mem

I din't see any major difference in latency or in Bandwith.
Pmem performance can be seen only in  mmap case ?

Attached the o/p of my fio results.

Let me know if there is any issue with my fio configuration.

Regards,
Muneendra.



fio configuration.txt
mounted without dax option.txt
mounted with dax option.txt

Andy Rudoff

unread,
Dec 3, 2018, 10:41:33 AM12/3/18
to pmem
Hi Muneendra,

If I'm understanding the fio config file you included, you are using the psync engine with Direct I/O enabled.  That means fio will open the file with O_DIRECT, telling the system to avoid the system page cache when possible.  It will then do I/O using syscalls like preadv() and pwritev().  When you run without the dax mount option, I would expect the file system to call into the pmem driver, and the pmem driver will do memcpy to/from the media directly to/from the fio buffers (no system page cache used).  When you run with the dax mount option, the file system is free to access the media directly, but the result is the same: doing memcpy to/from the media directly to/from the fio buffers (still no system page cache used). The result is that the code paths are almost identical and I would expect the performance to be very close.

Where dax really makes a difference in performance is in different cases.  One case is when small accesses are used, like when a data structure is memory-mapped and updated in-place using load & store instructions, using cache flushes to make things persistent.  Without DAX, each access to storage is in blocks, so the small updates get "rounded up" to larger I/Os.  Another case where where dax outperforms storage is when I/O over PCIe is avoided, so instead of submitting an I/O to a device, sleeping, waking up on an interrupt, etc.  the dax access just accesses persistence in-place.

Since fio is all about doing block-sized access, you're basically using persistent memory to emulate a block device and getting similar results that you can get with O_DIRECT.

Hope that helps,

-andy

muneendra kumar

unread,
Dec 3, 2018, 11:05:31 AM12/3/18
to Andy Rudoff, pmem
Thanks Andy for the clarification.It helped me to understand more about Pmem.
Regards,
Muneendra.

--
You received this message because you are subscribed to the Google Groups "pmem" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pmem+uns...@googlegroups.com.
To post to this group, send email to pm...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pmem/30eeb22b-c6b5-4adc-8add-83962ca489e7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages