HomeFreeBSD

Improve write performance by using dmu_read_by_dnode()

Description

Improve write performance by using dmu_read_by_dnode()

In zfs_log_write(), we can use dmu_read_by_dnode() rather than
dmu_read() thus avoiding unnecessary dnode_hold() calls.

We get a 2-5% performance gain for large sequential_writes tests, >=128K
writes to files with recordsize=8K.

Testing done on Ubuntu 18.04 with 4.15 kernel, 8vCPUs and SSD storage on
VMware ESX.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tony Nguyen <tony.nguyen@delphix.com>
Closes #9156

Details

Provenance
Tony Nguyen <tony.nguyen@delphix.com>Authored on Aug 15 2019, 11:36 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Aug 15 2019, 11:36 PM
Parents
rG0e37a0f4f3bc: Assert that a dnode's bonuslen never exceeds its recorded size
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rGc8bbf7c00b3e: Improve write performance by using dmu_read_by_dnode() (authored by Tony Nguyen <tony.nguyen@delphix.com>).Aug 15 2019, 11:36 PM