linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chandra Seetharaman <sekharan@us.ibm.com>
To: linux-btrfs@vger.kernel.org, chandra_pdx@yahoo.com
Cc: Chandra Seetharaman <sekharan@us.ibm.com>
Subject: [PATCH 0/7] Patches to support subpagesize blocksize
Date: Wed, 11 Dec 2013 17:38:35 -0600	[thread overview]
Message-ID: <1386805122-23972-1-git-send-email-sekharan@us.ibm.com> (raw)

In btrfs, blocksize, the basic IO size of the filesystem, has been
more than PAGE_SIZE.

But, some 64 bit architures, like PPC64 and ARM64 have the default
PAGE_SIZE as 64K, which means the filesystems handled in these
architectures are with a blocksize of 64K.

This works fine as long as you create and use the filesystems within
these systems.

In other words, one cannot create a filesystem in some other architecture
and use that filesystem in PPC64 or ARM64, and vice versa.,

Another restriction is that we cannot use ext? filesystems in these
architectures as btrfs filesystems, since ext? filesystems have a blocksize
of 4K.

Sometime last year, Wade Cline posted a patch(http://lwn.net/Articles/529682/).
I started testing it, and found many locking/race issues. So, I changed the
logic and created an extent_buffer_head that holds an array of extent buffers that
belong to a page.

There are few wrinkles in this patchset, like some xfstests are failing, which
could be due to me doing something incorrectly w.r.t how the blocksize and
PAGE_SIZE are used in these patched.

Would like to get some feedback, review comments.

Thanks,

Chandra

---

Chandra Seetharaman (7):
  btrfs: subpagesize-blocksize: Define extent_buffer_head
  btrfs: subpagesize-blocksize: Use a global alignment for size
  btrfs: subpagesize-blocksize: Handle small extent maps properly
  btrfs: subpagesize-blocksize: Handle iosize properly in submit_extent_page()
  btrfs: subpagesize-blocksize: handle checksum calculations properly
  btrfs: subpagesize-blocksize: Handle relocation clusters appropriately
  btrfs: subpagesize-blocksize: Allow mounting filesystems where sectorsize != PAGE_SIZE

 fs/btrfs/backref.c           |   6 +-
 fs/btrfs/btrfs_inode.h       |   7 +
 fs/btrfs/compression.c       |   3 +-
 fs/btrfs/ctree.c             |   2 +-
 fs/btrfs/ctree.h             |   6 +-
 fs/btrfs/disk-io.c           | 115 ++++++-----
 fs/btrfs/extent-tree.c       |  18 +-
 fs/btrfs/extent_io.c         | 449 ++++++++++++++++++++++++++-----------------
 fs/btrfs/extent_io.h         |  55 ++++--
 fs/btrfs/file-item.c         |  45 ++++-
 fs/btrfs/file.c              |  15 +-
 fs/btrfs/inode.c             |  75 +++++---
 fs/btrfs/ioctl.c             |   6 +-
 fs/btrfs/ordered-data.c      |   2 +-
 fs/btrfs/relocation.c        |   6 +-
 fs/btrfs/tree-log.c          |   2 +-
 fs/btrfs/volumes.c           |   2 +-
 include/trace/events/btrfs.h |   2 +-
 18 files changed, 515 insertions(+), 301 deletions(-)

-- 
1.7.12.4


             reply	other threads:[~2013-12-11 23:40 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-11 23:38 Chandra Seetharaman [this message]
2013-12-11 23:38 ` [PATCH 1/7] btrfs: subpagesize-blocksize: Define extent_buffer_head Chandra Seetharaman
2013-12-16 12:32   ` saeed bishara
2013-12-16 16:17     ` Chandra Seetharaman
2013-12-17 15:35       ` David Sterba
2013-12-11 23:38 ` [PATCH 2/7] btrfs: subpagesize-blocksize: Use a global alignment for size Chandra Seetharaman
2013-12-16 12:33   ` saeed bishara
2013-12-16 14:48     ` David Sterba
2013-12-16 16:18       ` Chandra Seetharaman
2013-12-11 23:38 ` [PATCH 3/7] btrfs: subpagesize-blocksize: Handle small extent maps properly Chandra Seetharaman
2013-12-11 23:38 ` [PATCH 4/7] btrfs: subpagesize-blocksize: Handle iosize properly in submit_extent_page() Chandra Seetharaman
2013-12-11 23:38 ` [PATCH 5/7] btrfs: subpagesize-blocksize: handle checksum calculations properly Chandra Seetharaman
2013-12-11 23:38 ` [PATCH 6/7] btrfs: subpagesize-blocksize: Handle relocation clusters appropriately Chandra Seetharaman
2013-12-11 23:38 ` [PATCH 7/7] btrfs: subpagesize-blocksize: Allow mounting filesystems where sectorsize != PAGE_SIZE Chandra Seetharaman
2013-12-13  1:07   ` David Sterba
2013-12-16 12:50     ` saeed bishara
2013-12-12 20:40 ` [PATCH 0/7] Patches to support subpagesize blocksize Josef Bacik
2013-12-13  1:17 ` David Sterba
2013-12-13 15:17   ` Chandra Seetharaman
2013-12-13 15:58     ` David Sterba
2013-12-13 18:39 ` Josef Bacik
2013-12-13 22:09   ` Chandra Seetharaman
2014-01-08 20:06   ` Chandra Seetharaman

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=1386805122-23972-1-git-send-email-sekharan@us.ibm.com \
    --to=sekharan@us.ibm.com \
    --cc=chandra_pdx@yahoo.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;
as well as URLs for NNTP newsgroup(s).