XFS With Linux 5.19 Brings “Lots Of New Code”

The XFS-system updates for the Linux 5.19 merge window are on the heavy side with this pull being described as “a big update with lots of new code” abound for this summer 2022 kernel release.

The two shiny new features for XFS in Linux 5.19 are support for Large Extent Counts and Logged Attribute Replay. Both of these features may not sound too exciting for end-users but are to be used for “building more complex future features” moving forward.

Dave Chinner went on to explain this new XFS material for Linux 5.19:

For upcoming functionality, we need to be able to store hundreds of millions of xattrs per inode. The Large Extent Count feature removes the limits that prevent this scale of xattr storage, and while we were modifying the on disk extent count format we also increased the number of data extents we support per inode from 2^32 to 2^47.

We also need to be able to modify xattrs as part of larger atomic transactions rather than as standalone transactions. The Logged Attribute Replay feature introduces the infrastructure that allows us to use intents to record the attribute modifications in the journal before we start them, hence allowing other atomic transactions to log attribute modification intents and then defer the actual modification to later. If we then crash, log recovery then guarantees that the attribute is replayed in the context of the atomic transaction that logged the intent.

A significant chunk of the commits in this merge are for the base attribute replay functionality along with fixes, improvements and cleanups related to this new functionality. Allison deserves a big round of thanks for her ongoing work to get this functionality into XFS.

There are also many other smaller changes and improvements, so overall this is one of the bigger XFS merge requests in some time.

Besides XFS being able to scale beyond four billion data extents and billions of xattrs per inode, there is also improvements to the real-time extent accounting, the rmap btree searches has been improved to reduce overhead by up to 30% and in turn xfs_scrub runtime is lessened by about 15%, and a variety of other improvements. See this Git merge for more details.


Leave a Comment

Your email address will not be published.