public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Chris Mason <chris.mason@oracle.com>
To: linux-btrfs@vger.kernel.org
Subject: btrfs-unstable tree updated to 2.6.29-rc3
Date: Thu, 29 Jan 2009 11:54:20 -0500	[thread overview]
Message-ID: <1233248060.13087.15.camel@think.oraclecorp.com> (raw)

Hello everyone,

I've pushed out a largish batch of fixes and improvements, and updated
the unstable tree to 2.6.29-rc3 (a merge conflict on fs/super.c meant I
had to update it).

The big change in this push is new locking btree locking code.  mutexes
are no longer used to lock metadata, instead I've switched it to a
spinlock.

But, there are still a number of places we need to have metadata locked
that can sleep, so I've added a flag to the metadata buffers and a wait
queue.  When the code needs to sleep with a lock held, there are calls
to drop the spin lock and force others to wait on the wait queue instead
of spinning.

Overall, its faster than the old code because the most common places
where we don't sleep (btree searching) get covered by the spin lock.
More importantly, it makes the places we do sleep explicit and easy to
trace.  This way we can go through and get rid of them one by one in an
orderly (and testable) fashion.


Other changes:

* Jim Owen's selinux work.  Thanks Jim, this was included so the fedora
guys could run with btrfs

* Turn off leak debugging and get rid of the per-FS hash lock.  Both of
these reduce system time used in every workload.

* Sort references in btrfs_inc_ref before diving into the extent
allocation tree to update them.  This makes it much more likely we'll do
efficient IO and find things in cache as we go.

* readdir fix on 32 bit machines.  glibc was having problems in some
cases with an offset from btrfs that was too large.

* Fix IO stalls on multi-device filesystems.  I think I really got this
one this time, the async threading code was missing a wakeup call.

The unstable tree hasn't been updated yet, I want to keep it compiling
against 2.6.28 at the very least.  So, I'm making that merging tree
today with the 2.6.28 backports.

-chris



             reply	other threads:[~2009-01-29 16:54 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-29 16:54 Chris Mason [this message]
2009-02-02 18:13 ` btrfs-unstable tree updated to 2.6.29-rc3 Diego Calleja
2009-02-03  0:14   ` Chris Mason

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1233248060.13087.15.camel@think.oraclecorp.com \
    --to=chris.mason@oracle.com \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox