Improved Performance & Resource Usage For XFS Checksumming With Linux 7.4

Improved Performance & Resource Usage For XFS Checksumming With Linux 7.4

Among the many VFS pull requests merged as the initial material for the in-development Linux 7.4, the VFS IOmap pull introduced lazy bounce buffering for checksummed reads. This improvement is benefiting checksumming on XFS with improved performance and lower resource usage. Christian Brauner described the current issues and improved solution for the IOmap code now merged for Linux 7.4: "The bulk is lazy bounce buffering for checksummed reads. XFS bounce buffers every direct read on a device that requires stable pages for checksumming so that userspace modifying the buffer while the read is in flight can't corrupt the data and fail the checksum. That burns DRAM bandwidth and CPU for copies that are almost never needed and, since the bounce buffer was a bio_vec, produced smaller and unaligned I/Os with 4k pages, i.e. 1 MB minus 4k. Now the read goes to the user buffer first and only a checksum failure allocates a bounce buffer and reads again. Integrity verification moves out of iomap into the filesystem so it can handle errors its own way," XFS to now was unconditionally using bounce buffers when using checksums. That DRAM bandwidth and CPU cycle hog is now no more. On the patch series I didn't see any numbers for quantifying the resulting impact. The improvement was merged via this pull request into Linux 7.4.

Original Source

Read the full article at Phoronix →

KhanList aggregates and links to publicly available news content. We do not host full articles from third-party sources. Always verify important information with original sources.