linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chris Mason <chris.mason@oracle.com>
To: linux-btrfs <linux-btrfs@vger.kernel.org>,
	"Linus Torvalds" <torvalds@linux-foundation.org>,
	"Linux-kernel" <linux-kernel@vger.kernel.org>
Subject: [GIT PULL] Btrfs updates
Date: Wed, 27 Jul 2011 18:46:53 -0400	[thread overview]
Message-ID: <1311805265-sup-502@shiny> (raw)

Hi everyone,

The for-linus branch of the btrfs-unstable repo is reading for pulling:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable.git for-linus

This started off as a larger pull, but I had to pull out a number of
cleanups from Fujitsu, Novell and a few others (sorry guys) while
hunting a crash during stress.sh.  It looks like it is unrelated to
those commits, but I had to pull out a bunch of them until I can be sure
I understand the bug.

I'll have another pull request with the fully tested cleanups on Monday.
Depending on how Linus does rc1, they might end up as the start of my
3.2 branch.

This pull has the commits that I've been able to run through extensive
testing.  The biggest change here is switching the btrfs tree locks to a
reader/writer lock.  This has been one of our biggest bottlenecks for
some time, and it was consistently at the top of profiles on large
machines.

The new locks do away with all the adaptive spinning inside of btrfs and
rely on the spinning/blocking hints in the code to decide when it must
block.

The reader/writer locks break the code I had in place to use kmap on
metadata buffers, so all of our metadata is now in lowmem.  I did test
this on a 32 bit VM, but x86-32 users will want to poke gently.

I also adapted Tejun's lockdep fixes for the btrfs locks, and so far I
haven't seen any lockdep warnings.

Josef has a series of enospc fixes and tweaks here as well.  His bigger
patch to start reworking the enospc reservations seems to be causing the
corruptions during stress.sh, so it will wait for 3.2.

Josef Bacik (11) commits (+320/-322):
    Btrfs: use the normal checksumming infrastructure for free space cache (+59/-110)
    Btrfs: do transaction space reservation before joining the transaction (+17/-42)
    Btrfs: fix how we merge extent states and deal with cached states (+11/-12)
    Btrfs: try to only do one btrfs_search_slot in do_setxattr (+42/-33)
    Btrfs: use find_or_create_page instead of grab_cache_page (+9/-7)
    Btrfs: serialize flushers in reserve_metadata_bytes (+51/-21)
    Btrfs: fix deadlock when throttling transactions (+9/-2)
    Btrfs: fix enospc problems with delalloc (+86/-60)
    Btrfs: use a worker thread to do caching (+27/-29)
    Btrfs: don't flush delalloc arbitrarily (+0/-3)
    Btrfs: tag pages for writeback in sync (+9/-3)

Chris Mason (7) commits (+642/-699):
    Btrfs: make sure reserve_metadata_bytes doesn't leak out strange errors (+6/-1)
    Btrfs: use the commit_root for reading free_space_inode crcs (+28/-19)
    Btrfs: reduce extent_state lock contention for metadata (+41/-14)
    Btrfs: switch the btrfs tree locks to reader/writer (+431/-218)
    Btrfs: remove lockdep magic from btrfs_next_leaf (+5/-31)
    Btrfs: stop using highmem for extent_buffers (+52/-378)
    Btrfs: make a lockdep class for each root (+79/-38)

Miao Xie (1) commits (+21/-7):
    Btrfs: fix BUG_ON() caused by ENOSPC when relocating space

Total: (19)

 fs/btrfs/btrfs_inode.h      |   16 ++-
 fs/btrfs/ctree.c            |  457 +++++++++++++++++++------------------------
 fs/btrfs/ctree.h            |   14 +-
 fs/btrfs/delayed-inode.c    |    2 +-
 fs/btrfs/dir-item.c         |    9 +-
 fs/btrfs/disk-io.c          |  116 ++++++++----
 fs/btrfs/disk-io.h          |   10 +-
 fs/btrfs/extent-tree.c      |  285 +++++++++++++++-------------
 fs/btrfs/extent_io.c        |  168 ++++++++--------
 fs/btrfs/extent_io.h        |   35 ++--
 fs/btrfs/file-item.c        |   41 +---
 fs/btrfs/file.c             |   11 +-
 fs/btrfs/free-space-cache.c |  173 ++++++-----------
 fs/btrfs/inode.c            |   90 ++++------
 fs/btrfs/ioctl.c            |    8 +-
 fs/btrfs/locking.c          |  280 ++++++++++++++-------------
 fs/btrfs/locking.h          |   36 ++++-
 fs/btrfs/relocation.c       |    3 +-
 fs/btrfs/struct-funcs.c     |  100 +++-------
 fs/btrfs/transaction.c      |   47 +++--
 fs/btrfs/tree-log.c         |    6 +-
 fs/btrfs/volumes.c          |    2 +-
 fs/btrfs/xattr.c            |   66 ++++---
 23 files changed, 965 insertions(+), 1010 deletions(-)

             reply	other threads:[~2011-07-27 22:46 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-27 22:46 Chris Mason [this message]
  -- strict thread matches above, loose matches on Subject: below --
2013-05-18 14:30 [GIT PULL] Btrfs updates Chris Mason
2013-03-29 17:47 Chris Mason
2013-03-09  0:38 Chris Mason
2013-02-16  1:55 Chris Mason
2012-12-17 21:44 Chris Mason
2012-12-19 18:09 ` Roy Sigurd Karlsbakk
2012-12-19 19:07   ` Hugo Mills
2012-12-17 21:28 Chris Mason
2012-08-29 16:01 Chris Mason
2012-07-05 19:55 Chris Mason
2012-06-21 15:47 Chris Mason
2012-06-15 18:09 Chris Mason
2012-06-15 23:57 ` Linus Torvalds
2012-06-16  0:21   ` Chris Mason
2012-06-01 13:18 Chris Mason
2012-04-13 13:38 Chris Mason
2012-04-16  1:19 ` Tsutomu Itoh
2012-03-10  2:01 Chris Mason
2012-02-24 16:41 Chris Mason
2011-12-01 15:39 Chris Mason
2011-12-05  8:10 ` Miao Xie
2011-12-05 13:14   ` Chris Mason
2011-12-05 14:08     ` David Sterba
2011-12-06  3:25     ` Miao Xie
2011-08-18 18:04 Chris Mason
2011-08-18 21:51 ` Sage Weil
2011-08-20 14:01   ` Chris Mason
2011-06-27 18:15 Chris Mason
2011-06-20  1:12 Chris Mason
2011-06-12 11:57 Chris Mason
2011-06-12 18:08 ` Linus Torvalds
2011-06-13  1:02 ` Andi Kleen
2011-06-13  1:52   ` Chris Mason
2011-06-13  2:05   ` Li Zefan
2011-06-04 14:37 Chris Mason
2011-05-27 19:55 Chris Mason
2011-05-27 21:44 ` Chester
2011-05-15 14:47 Chris Mason
2011-05-15 15:41 ` kehon
2011-04-26 14:24 Chris Mason
2011-04-18 14:26 Chris Mason
2011-02-15  3:49 Chris Mason
2011-02-07 20:12 Chris Mason
2011-02-08 20:05 ` Helmut Hullen
2011-01-17 21:13 Chris Mason
2011-01-18 10:14 ` Felix Blanke
2011-01-18 15:22   ` C Anthony Risinger
2011-01-18 17:56     ` Mitch Harder
2011-01-18 18:51       ` C Anthony Risinger
2011-01-19  9:15     ` Spelic
2011-01-22 23:41       ` Clemens Eisserer
2011-01-22 23:53         ` cwillu
2011-01-18 18:55   ` Goffredo Baroncelli
2011-03-09 22:01 ` Diego Calleja
2010-12-14  1:54 Chris Mason
2010-05-27 15:15 Chris Mason
2010-05-27 17:18 ` Linus Torvalds
2010-05-27 17:32   ` Chris Mason
2010-05-27 17:47     ` Linus Torvalds
2010-06-02  2:59 ` Miao Xie
2010-09-12 12:38 ` Felipe Contreras
2010-04-05 19:36 Chris Mason
2010-04-06 15:40 ` Chris Mason
2010-03-15 19:18 Chris Mason
2010-03-16 21:01 ` Chris Mason
2010-03-18 16:59   ` Chris Mason
2009-10-15  0:06 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=1311805265-sup-502@shiny \
    --to=chris.mason@oracle.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.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;
as well as URLs for NNTP newsgroup(s).