Linux No-Copy Bvec patches are back in the new year as another I / O optimization

LINUX STORAGE -

The Linux kernel has seen incredible innovations and optimizations in the I / O area recently, since IO_ during several performance improvements. One of the recent performance improvements, looking at promising activity and results, is the behavior of bvec no-copy.

As explained by developer Pavel Begunkov, who has been leading the support work for bvec no-copy, “Currently, when the iomap and the direct IO of the block get an iterator based on bvec, the bvec will be copied, with all other accounts that consume a lot of CPU time and cause additional allocation for larger bvecs. The patchset allows you to reuse the past bvec iter.

This work to avoid copying bvecs during direct I / O can provide measurable increases in performance while reducing memory usage. Pavel noted that in tests with a 4K block size, a test system went from 1208k to 1222k IOPS with these patches. For a 64K block size, it increased from 699K IOPS to 982K IOPS.

With the latest patches there are more numbers for those interested. The work is currently in its second revision after the original “request for comments” patches. It is quite possible that we see this copyless bvec support landing in a new short-term kernel cycle as yet another improvement in Linux I / O performance.

.Source