<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://xfs.org/index.php?action=history&amp;feed=atom&amp;title=XFS_status_update_for_2010</id>
	<title>XFS status update for 2010 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://xfs.org/index.php?action=history&amp;feed=atom&amp;title=XFS_status_update_for_2010"/>
	<link rel="alternate" type="text/html" href="https://xfs.org/index.php?title=XFS_status_update_for_2010&amp;action=history"/>
	<updated>2026-04-21T08:46:54Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://xfs.org/index.php?title=XFS_status_update_for_2010&amp;diff=2438&amp;oldid=prev</id>
		<title>Pibroch: New page: == XFS status update for December 2010 ==  The release process of the Linux 2.6.37 kernel with it&#039;s large XFS updates was in it&#039;s final days in December, which explains why we only saw a s...</title>
		<link rel="alternate" type="text/html" href="https://xfs.org/index.php?title=XFS_status_update_for_2010&amp;diff=2438&amp;oldid=prev"/>
		<updated>2012-03-19T06:13:02Z</updated>

		<summary type="html">&lt;p&gt;New page: == XFS status update for December 2010 ==  The release process of the Linux 2.6.37 kernel with it&amp;#039;s large XFS updates was in it&amp;#039;s final days in December, which explains why we only saw a s...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== XFS status update for December 2010 ==&lt;br /&gt;
&lt;br /&gt;
The release process of the Linux 2.6.37 kernel with it&amp;#039;s large XFS updates&lt;br /&gt;
was in it&amp;#039;s final days in December, which explains why we only saw a single&lt;br /&gt;
one-liner regression fix for XFS in Linus&amp;#039; tree.  The XFS development tree&lt;br /&gt;
finally saw some updates when the writeback updates and some small cleanups&lt;br /&gt;
to the allocator and log recovery code were merged, but the large metadata&lt;br /&gt;
scalability updates that have been posted to the list multiple times are&lt;br /&gt;
still missing.  In addition to this on-going work the list also saw patches&lt;br /&gt;
that fix smaller issues, which are also still waiting to be merged.&lt;br /&gt;
&lt;br /&gt;
On the userspace side xfsprogs and xfsdump development has been quit, with&lt;br /&gt;
no commits to either repository in December, although a large series of&lt;br /&gt;
updates to the metadump command has been reposted near the end of the month.&lt;br /&gt;
The xfstests repository saw a new regression test for a btrfs problem,&lt;br /&gt;
and various updates to existing tests.&lt;br /&gt;
&lt;br /&gt;
== XFS status update for November 2010 ==&lt;br /&gt;
&lt;br /&gt;
From looking at the kernel git commits November looked like a pretty&lt;br /&gt;
slow month with just two hand full fixes going into the release candidates&lt;br /&gt;
for Linux 2.6.37, and none at all going into the development tree.&lt;br /&gt;
But in this case git statistics didn&amp;#039;t tell the whole story - there&lt;br /&gt;
was a lot of activity on patches for the next merge window on the list.&lt;br /&gt;
The focus in November was still at metadata scalability, with various&lt;br /&gt;
patchsets that improves parallel creates and unlinks again, and also&lt;br /&gt;
improves 8-way dbench throughput by 30%.  In addition to that there&lt;br /&gt;
were patches to improve preallocation for NFS servers, to simplify&lt;br /&gt;
the writeback code, and to remove the XFS-internal percpu counters&lt;br /&gt;
for free space for the generic kernel percpu counters, which just needed&lt;br /&gt;
a small improvement.&lt;br /&gt;
&lt;br /&gt;
On the user space side we saw the release of xfsprogs 3.1.4, which&lt;br /&gt;
contains various accumulated bug fixes and Debian packaging updates.&lt;br /&gt;
The xfsdump tree saw a large update to speed up restore by using&lt;br /&gt;
mmap for an internal database and remove the limitation of ~ 214&lt;br /&gt;
million directory entries per dump file.  The xfstests test suite&lt;br /&gt;
saw three new testcases and various fixes, including support for the&lt;br /&gt;
hfsplus filesystem.&lt;br /&gt;
&lt;br /&gt;
== XFS status update for October 2010 ==&lt;br /&gt;
&lt;br /&gt;
Near the end of the month we finally saw the release of Linux 2.6.36.&lt;br /&gt;
Just a single fix made it into mainline in this month, showing that the&lt;br /&gt;
stabilization period before has worked very well.&lt;br /&gt;
&lt;br /&gt;
Linux 2.6.36 has been another impressive release for XFS, seeing&lt;br /&gt;
various performance improvements in the new delayed logging code,&lt;br /&gt;
for direct I/O and the sync system call, a few bug fixes, and lots&lt;br /&gt;
of cleanups, resulting in a net removal of over 2000 lines of code:&lt;br /&gt;
&lt;br /&gt;
        89 files changed, 1998 insertions(+), 4279 deletions(-)&lt;br /&gt;
&lt;br /&gt;
The merge window for Linux 2.6.37 opened just a few days after the&lt;br /&gt;
release of Linux 2.6.36 and already contains another large XFS update&lt;br /&gt;
at the end of October.  Highlights of the XFS tree merged into 2.6.37-rc1&lt;br /&gt;
are another large set of metadata scalability patches, support for 32-bit&lt;br /&gt;
wide project IDs, and support for the new XFS_IOC_ZERO_RANGE ioctl,&lt;br /&gt;
which allows to punch a whole and convert it to an unwritten extent&lt;br /&gt;
in a single atomic operation.&lt;br /&gt;
&lt;br /&gt;
The metadata scalability changes improve 8-way fs_mark of 50 million files&lt;br /&gt;
by over 15% and removal of those files by over 100%, with further&lt;br /&gt;
improvements expected by the next round of XFS metadata scalability&lt;br /&gt;
and VFS scalability improvements targeted at Linux 2.6.38.&lt;br /&gt;
&lt;br /&gt;
On the user space side October was a rather quit month for xfsprogs, which&lt;br /&gt;
only saw the addition of 32-bit project ID handling, and a fix for&lt;br /&gt;
parsing the mount table in fsr when used together with disk encryption&lt;br /&gt;
tools.  A few patches for xfsdump were posted on the list, but none&lt;br /&gt;
was applied, leaving the majority of the user space activity to&lt;br /&gt;
xfstests, which saw very active development.  Various patches went&lt;br /&gt;
into xfstests to improve portability to filesystems with a limited&lt;br /&gt;
feature set, and to move more filters to generic code.  In addition&lt;br /&gt;
various cleanups to test cases in test programs were applied.&lt;br /&gt;
&lt;br /&gt;
== XFS status update for September 2010 ==&lt;br /&gt;
&lt;br /&gt;
Mainline activity has been rather low in September while with only&lt;br /&gt;
two more fixes going into the 2.6.36 release candidates after the&lt;br /&gt;
large merge activity in August.  Development for the next merge&lt;br /&gt;
window has been more active.  The largest item was the inclusion&lt;br /&gt;
of the metadata scalability patch series, which provides very large&lt;br /&gt;
speedups for parallel metadata operations.  In addition a new&lt;br /&gt;
ioctl to punch holes and convert the whole to an unwritten extent&lt;br /&gt;
was added and a small number of cleanups also made it into the tree.&lt;br /&gt;
&lt;br /&gt;
Patches to add support for 32bit wide project ID identifiers and&lt;br /&gt;
using group and project quotas concurrently were posted to the list&lt;br /&gt;
and discussed but not yet included.&lt;br /&gt;
&lt;br /&gt;
Userspace development has been rather quiet again, with a single fix&lt;br /&gt;
committed to xfsprogs and xfsdump each.  The xfstests test suite grew&lt;br /&gt;
a new test case and received a few additional fixes.  Last but not least&lt;br /&gt;
the [http://xfs.org/docs/xfsdocs-xml-dev/XFS_User_Guide//tmp/en-US/html/index.html XFS Users Guide]&lt;br /&gt;
was updated with various factual corrections and spelling fixes.&lt;br /&gt;
&lt;br /&gt;
== XFS status update for August 2010 ==&lt;br /&gt;
&lt;br /&gt;
At the first of August we finally saw the release of Linux 2.6.35,&lt;br /&gt;
which includes a large XFS update.  The most prominent feature in&lt;br /&gt;
Linux 2.6.35 is the new delayed logging code which provides massive&lt;br /&gt;
speedups for metadata-intensive workloads, but there has been&lt;br /&gt;
a large amount of other fixes and cleanups, leading to the following&lt;br /&gt;
diffstat:&lt;br /&gt;
&lt;br /&gt;
         67 files changed, 4426 insertions(+), 3835 deletions(-)&lt;br /&gt;
&lt;br /&gt;
Given the early release of Linux 2.6.35 the merge window for the&lt;br /&gt;
next release fully fell into the month of August.  The XFS updates&lt;br /&gt;
for Linux 2.6.36 include various additional performance improvements&lt;br /&gt;
in the delayed logging code, for direct I/O writes and for avoiding&lt;br /&gt;
synchronous transactions, as well as various fixed and large amount&lt;br /&gt;
of cleanups, including the removal of the remaining dead DMAPI&lt;br /&gt;
code.&lt;br /&gt;
&lt;br /&gt;
On the userspace side we saw the 3.1.3 release of xfsprogs, which includes&lt;br /&gt;
various smaller fixes, support for the new XFS_IOC_ZERO_RANGE ioctl and&lt;br /&gt;
Debian packaging updates.  The xfstests package saw one new test case&lt;br /&gt;
and a couple of smaller patches, and xfsdump has not seen any updates at&lt;br /&gt;
all.&lt;br /&gt;
&lt;br /&gt;
The XMLified versions of the XFS users guide, training labs and filesystem&lt;br /&gt;
structure documentation are now available as on the fly generated html on&lt;br /&gt;
the xfs.org website and can be found at [[XFS_Papers_and_Documentation|Papers &amp;amp; Documentation]].&lt;br /&gt;
&lt;br /&gt;
== XFS status update for July 2010 ==&lt;br /&gt;
&lt;br /&gt;
July saw three more release candidates for the Linux 2.6.35 kernel, which&lt;br /&gt;
included a relatively large number of XFS updates.  There were two security&lt;br /&gt;
fixes, a small one to prevent swapext to operate on write-only file&lt;br /&gt;
descriptors, and a much larger one to properly validate inode numbers&lt;br /&gt;
coming from NFS clients or userspace applications using the bulkstat or&lt;br /&gt;
the open-by-handle interfaces.  In addition to that another relatively&lt;br /&gt;
large patch fixes the way inodes get reclaimed in the background, and&lt;br /&gt;
avoids inode caches growing out of bounds.&lt;br /&gt;
&lt;br /&gt;
In the meantime the code for the Linux 2.6.36 got the last touches before&lt;br /&gt;
the expected opening of the merge window, by merging a few more last&lt;br /&gt;
minute fixes and cleanups.  The most notable one is a patch series&lt;br /&gt;
that fixes in-memory corruption when concurrently accessing unwritten&lt;br /&gt;
extents using the in-kernel AIO code.&lt;br /&gt;
&lt;br /&gt;
The userspace side was still quite slow, but some a bit more activity&lt;br /&gt;
than June.  In xfsprogs the xfs_db code grew two bug fixes, as did&lt;br /&gt;
the xfs_io script.  The xfstests package saw one new test cases and&lt;br /&gt;
various fixes to existing code.  Last but not least a few patches&lt;br /&gt;
affecting the build system for all userspace tools were committed.&lt;br /&gt;
&lt;br /&gt;
== XFS status update for June 2010 ==&lt;br /&gt;
&lt;br /&gt;
The month of June saw a few important bug fixes for the Linux 2.6.35&lt;br /&gt;
release candidates.  That includes ensuring that files used for the&lt;br /&gt;
swapext ioctl are writable to the user, and doing proper validation&lt;br /&gt;
of inodes coming from untrusted sources, such as NFS exporting and&lt;br /&gt;
the open by handle system calls.  The main work however has been&lt;br /&gt;
focused on development for the Linux 2.6.36 merge window, including&lt;br /&gt;
merging various patches that have been out on the mainline list&lt;br /&gt;
for a long time.  Highlights include further performance improvements&lt;br /&gt;
for sync heavy metadata workloads, stack space reduction in the&lt;br /&gt;
writeback path and improvements of the XFS tracing infrastructure.&lt;br /&gt;
Also after some discussion the remaining hooks for DMAPI are going&lt;br /&gt;
to be dropped in mainline.   As a replacement a tree containing&lt;br /&gt;
full DMAPI support with a slightly cleaner XFS interaction will be&lt;br /&gt;
hosted by SGI.&lt;br /&gt;
&lt;br /&gt;
On the userspace side June was a rather slow month, with no updates&lt;br /&gt;
to xfsprogs and xfsdump at all, and just one new test case and a cleanup&lt;br /&gt;
applied to xfstests.&lt;br /&gt;
&lt;br /&gt;
== XFS status update for May 2010 ==&lt;br /&gt;
&lt;br /&gt;
In May 2010 we saw the long awaited release of Linux 2.6.34, which includes&lt;br /&gt;
a large XFS update.  The most important features appearing in 2.6.34 was the&lt;br /&gt;
new inode and quota flushing code, which leads to much better I/O patterns&lt;br /&gt;
for metadata-intensive workloads.  Additionally support for synchronous NFS&lt;br /&gt;
exports has been improved to give much better performance, and performance&lt;br /&gt;
for the fsync, fdatasync and sync system calls has been improved slightly.&lt;br /&gt;
A bug when resizing extremely busy filesystems has been fixed, which required&lt;br /&gt;
extensive modification to the data structure used for looking up the&lt;br /&gt;
per-allocation group data.  Last but not least there was a steady flow of&lt;br /&gt;
minor bug fixes and cleanups, leading to the following diffstat from&lt;br /&gt;
2.6.33 to 2.6.34:&lt;br /&gt;
&lt;br /&gt;
  86 files changed, 3209 insertions(+), 3178 deletions(-)&lt;br /&gt;
&lt;br /&gt;
Meanwhile active development aimed at 2.6.35 merge progressed.  The&lt;br /&gt;
major feature for this window is the merge of the delayed logging code,&lt;br /&gt;
which adds a new logging mode that dramatically reduces the bandwidth&lt;br /&gt;
required for log I/O.  See the &lt;br /&gt;
[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/filesystems/xfs-delayed-logging-design.txt;h=96d0df28bed323d5596fc051b0ffb96ed8e3c8df;hb=HEAD documentation] for details.  Testers&lt;br /&gt;
for this new code are welcome.&lt;br /&gt;
&lt;br /&gt;
In userland xfsprogs saw the long awaited 3.1.2 release, which can be&lt;br /&gt;
considered a bug fix release for xfs_repair, xfs_fsr and mkfs.xfs.  After&lt;br /&gt;
the release a few more fixes were merged into the development tree.&lt;br /&gt;
The xfstests package saw various new tests, including many tests to&lt;br /&gt;
exercise the quota code, and a few fixes to existing tests.&lt;br /&gt;
&lt;br /&gt;
== XFS status update for April 2010 ==&lt;br /&gt;
&lt;br /&gt;
In April 2.6.34 still was in the release candidate phase, with&lt;br /&gt;
a hand full of XFS fixes making it into mainline.  Development for&lt;br /&gt;
the 2.6.35 merge window went ahead full steam at the same time.&lt;br /&gt;
&lt;br /&gt;
While a fair amount of patches hit the development tree these were&lt;br /&gt;
largely cleanups, with the real development activity happening on&lt;br /&gt;
the mailing list.  There was another round of patches and following&lt;br /&gt;
discussion on the scalable busy extent tracking and delayed logging&lt;br /&gt;
features mentioned last month.  They are expected to be merged in&lt;br /&gt;
May and queue up for the Linux 2.6.35 window.  Last but not least&lt;br /&gt;
April saw a large number of XFS fixes backported to the 2.6.32 and&lt;br /&gt;
2.6.33 -stable series.&lt;br /&gt;
&lt;br /&gt;
In user land xfsprogs has seen few but important updates, preparing&lt;br /&gt;
for a new release next month.  The xfs_repair tool saw a fix to&lt;br /&gt;
correctly enable the lazy superblock counters on an existing&lt;br /&gt;
filesystem, and xfs_fsr saw updates to better deal with dynamic&lt;br /&gt;
attribute forks.  Last but not a least a port to Debian GNU/kFreeBSD&lt;br /&gt;
got merged. The xfstests test suite saw two new test cases and various&lt;br /&gt;
smaller fixes.&lt;br /&gt;
&lt;br /&gt;
== XFS status update for March 2010 ==&lt;br /&gt;
&lt;br /&gt;
The merge window for Linux 2.6.34 closed in the first week of March,&lt;br /&gt;
with the important XFS features already landing in February.  Not&lt;br /&gt;
surprisingly the XFS merge activity in March has been rather slow,&lt;br /&gt;
with only about a dozen bug fixes patches making it towards Linus&amp;#039;&lt;br /&gt;
tree in that time.&lt;br /&gt;
&lt;br /&gt;
On the other hand active development for the 2.6.35 merge window has&lt;br /&gt;
been very active.  Most importantly there was a lot of work on the&lt;br /&gt;
transaction and log subsystems.  Starting with a large patchset to&lt;br /&gt;
clean up and refactor the transaction subsystem and introducing more&lt;br /&gt;
flexible I/O containers in the low-level logging code work is&lt;br /&gt;
progressing to a new, more efficient logging implementation.  While&lt;br /&gt;
this preparatory work has already been merged in the development tree,&lt;br /&gt;
the actual delayed logging implementation still needs more work after&lt;br /&gt;
the initial public posting.  The delayed logging implementation which&lt;br /&gt;
is very briefly modeled after the journaling mode in the ext3/4&lt;br /&gt;
and reiserfs filesystems allows to accumulated multiple asynchronous&lt;br /&gt;
transactions in memory instead of possibly writing them out&lt;br /&gt;
many times.  Using the new delayed logging mechanism I/O bandwidth&lt;br /&gt;
used for the log decreases by orders of magnitude and performance&lt;br /&gt;
on metadata intensive workloads increases massively.&lt;br /&gt;
&lt;br /&gt;
In addition to that a new version of the discard (aka TRIM) support&lt;br /&gt;
has been posted, this time entirely contained in kernel space&lt;br /&gt;
and without the need of a userspace utility to drive it.  Last but&lt;br /&gt;
not least the usual steady stream of cleanups and bug fixes has not&lt;br /&gt;
ceased this month either.&lt;br /&gt;
&lt;br /&gt;
Besides the usual flow of fixes and new test cases in the xfstests&lt;br /&gt;
test suite development on the userspace side has been rather slow.&lt;br /&gt;
Xfsprogs has only seen a single fix for SMP locking in xfs_repair&lt;br /&gt;
and support for building on Debian GNU/kFreeBSD, and xfsdump&lt;br /&gt;
has seen no commit at all.&lt;br /&gt;
&lt;br /&gt;
== XFS status update for February 2010 ==&lt;br /&gt;
&lt;br /&gt;
February saw the release of the Linux 2.6.33 kernel, which includes&lt;br /&gt;
a large XFS update.  The biggest user-visible change in Linux 2.6.33&lt;br /&gt;
is that XFS now support the generic Linux trace event infrastructure,&lt;br /&gt;
which allows tracing lots of XFS behavior with a normal production&lt;br /&gt;
built kernel.  Except for this Linux 2.6.33 has been mostly a bug-fix&lt;br /&gt;
release, fixing various user reported bugs in previous releases.&lt;br /&gt;
The total diffstat for XFS in Linux 2.6.33 looks like:&lt;br /&gt;
&lt;br /&gt;
  84 files changed, 3023 insertions(+), 3550 deletions(-)&lt;br /&gt;
&lt;br /&gt;
In addition to that the merge window for Linux 2.6.34 opened and the&lt;br /&gt;
first merge of the XFS tree made it into Linus tree.  Unlike Linux&lt;br /&gt;
2.6.33 this merge window includes major feature work.  The most&lt;br /&gt;
important change for users is a new algorithm for inode and quota&lt;br /&gt;
writeback that leads to better I/O locality and improved metadata&lt;br /&gt;
performance.  The second big change is a rewrite of the per-allocation&lt;br /&gt;
group data lookup which fixes a long-standing problem in the code&lt;br /&gt;
to grow a life filesystem and will also ease future filesystem&lt;br /&gt;
shrinking support.  Not merged through the XFS tree, but of great&lt;br /&gt;
importance for embedded users is a new API that allows XFS to properly&lt;br /&gt;
flush cache lines on it&amp;#039;s log and large directory buffers, making&lt;br /&gt;
XFS work properly on architectures with virtually indexed caches,&lt;br /&gt;
such as parisc and various arm and mips variants.  Last but not&lt;br /&gt;
least there is an above average amount of cleanups that went into&lt;br /&gt;
Linus tree in this cycle.&lt;br /&gt;
&lt;br /&gt;
There have been more patches on the mailing list that haven&amp;#039;t made&lt;br /&gt;
it to Linus tree yet, including an optimized implementation of&lt;br /&gt;
fdatasync(2) and massive speedups for metadata workloads on&lt;br /&gt;
NFS exported XFS filesystems.&lt;br /&gt;
&lt;br /&gt;
On the userspace side February has been a relatively quiet month.&lt;br /&gt;
Lead by xfstests only a moderate amount of fixes made it into&lt;br /&gt;
the respective trees.&lt;br /&gt;
&lt;br /&gt;
== XFS status update for January 2010 ==&lt;br /&gt;
&lt;br /&gt;
January saw additional release candidates of the Linux 2.6.33 kernel,&lt;br /&gt;
including a couple of bug fixes for XFS.  In the meantime the XFS tree&lt;br /&gt;
has been growing a large number of patches destined for the Linux 2.6.34&lt;br /&gt;
merge window: a large rework of the handling of per-AG data, support for&lt;br /&gt;
the quota netlink interface, and better power saving behavior of the&lt;br /&gt;
XFS kernel threads, and of course various cleanups.&lt;br /&gt;
&lt;br /&gt;
A large patch series to replace the current asynchronous inode writeback&lt;br /&gt;
with a new scheme that uses the delayed write buffers was posted to&lt;br /&gt;
the list.  The new scheme, which allows archive better I/O locality by&lt;br /&gt;
dispatching meta-data I/O from a single place has been discussed&lt;br /&gt;
extensively and is expected to be merged in February.&lt;br /&gt;
&lt;br /&gt;
On the userspace side January saw the 3.1.0 and 3.1.1 releases of xfsprogs,&lt;br /&gt;
as well as the 3.0.4 release of xfsdump.  The biggest changes in xfsprogs&lt;br /&gt;
3.1.0 were optimizations in xfs_repair that lead to a much lower memory&lt;br /&gt;
usage, and optional use of the blkid library for filesystem detection&lt;br /&gt;
and retrieving storage topology information.  The 3.1.1 release contained&lt;br /&gt;
various important bug fixes for these changes and a various improvements to&lt;br /&gt;
the build system.  The major feature of xfsdump 3.0.4 were fixes for&lt;br /&gt;
time stamp handling on 64-bit systems.&lt;br /&gt;
&lt;br /&gt;
The xfstests package also lots of activity including various new testcases&lt;br /&gt;
and an improved build system.&lt;/div&gt;</summary>
		<author><name>Pibroch</name></author>
	</entry>
</feed>