All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6 EARLY RFC] Btrfs: Get rid of whole page I/O.
@ 2014-03-12 14:20 Chandan Rajendra
  2014-03-12 14:20 ` [PATCH 1/6] Btrfs: subpagesize-blocksize: Get rid of whole page reads Chandan Rajendra
                   ` (6 more replies)
  0 siblings, 7 replies; 14+ messages in thread
From: Chandan Rajendra @ 2014-03-12 14:20 UTC (permalink / raw)
  To: linux-btrfs; +Cc: Chandan Rajendra, aneesh.kumar

This patchset describes a possible solution to solve whole page I/O issue
present in Btrfs. Currently whole page I/O is being performed because
bio_vec->[bv_len, bv_offset] can be modified by the Block I/O layer and hence
cannot be used by Btrfs's endio functions to operate on the original file
offset range that the bio was intended for. 

This patch is a precursor to get subpagesize-blocksize Btrfs feature to work
correctly as it would be required to do non-whole page I/O.

The patchset makes use of patches posted earlier by Chandra Seetharaman
(http://article.gmane.org/gmane.comp.file-systems.btrfs/30737). I believe that
getting non whole page I/O to work properly is the first issue to tackle
before working on the review comments posted for Chandra's patches. Please
correct me if my assumption is incorrect.

The patchset has been tested with only a handful of trivial I/O tests i.e. I/O
on different kinds of files (e.g. files with holes, etc). The tests were run
on 2k and 4k blocksized instances of Btrfs code (on x86_64) that has initial
support for mounting a 2k blocksized Btrfs filesystem. The corresponding git
trees can be found at
https://github.com/chandanr/btrfs-progs/tree/subpagesize-blocksize and
https://github.com/chandanr/linux/tree/btrfs/subpagesize-blocksize

The modified code is limited in feature i.e. the following are its known
limitations,
1. xfstests suite has not been executed.
2. Direct I/O has not been tested. 
3. Compression does not work with 2k blocksize filesystem instance.
4. fallocate does not work with 2k blocksize.
5. Data checksum does not work for 2k blocksize. Hence filesystem should be
   mounted by passing the nodatasum option.
6. Performance implications are unknown.

Chandan Rajendra (4):
  Btrfs: subpagesize-blocksize: Get rid of whole page reads.
  Btrfs: subpagesize-blocksize: Get rid of whole page writes.
  Btrfs: subpagesize-blocksize: Work with extents aligned to blocksize.
  Btrfs: subpagesize-blocksize: Hardcode MAX_EXTENT_BUFFERS_PER_PAGE to 2.

Chandra Seetharaman (2):
  Btrfs: subpagesize-blocksize: Define extent_buffer_head
  Btrfs: subpagesize-blocksize: Allow mounting filesystems where sectorsize != PAGE_SIZE

 fs/btrfs/backref.c           |   2 +-
 fs/btrfs/ctree.c             |   2 +-
 fs/btrfs/ctree.h             |   6 +-
 fs/btrfs/disk-io.c           | 117 ++++----
 fs/btrfs/extent-tree.c       |   6 +-
 fs/btrfs/extent_io.c         | 623 ++++++++++++++++++++++++++++---------------
 fs/btrfs/extent_io.h         |  60 ++++-
 fs/btrfs/file.c              |  13 +-
 fs/btrfs/volumes.c           |   2 +-
 fs/btrfs/volumes.h           |   3 +
 include/trace/events/btrfs.h |   2 +-
 11 files changed, 554 insertions(+), 282 deletions(-)

-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2014-04-03 17:01 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-03-12 14:20 [PATCH 0/6 EARLY RFC] Btrfs: Get rid of whole page I/O Chandan Rajendra
2014-03-12 14:20 ` [PATCH 1/6] Btrfs: subpagesize-blocksize: Get rid of whole page reads Chandan Rajendra
2014-03-19  7:37   ` Liu Bo
2014-03-19 15:50     ` chandan Rajendra
2014-03-12 14:20 ` [PATCH 2/6] Btrfs: subpagesize-blocksize: Get rid of whole page writes Chandan Rajendra
2014-03-12 14:20 ` [PATCH 3/6] Btrfs: subpagesize-blocksize: Work with extents aligned to blocksize Chandan Rajendra
2014-03-12 14:20 ` [PATCH 4/6] Btrfs: subpagesize-blocksize: Define extent_buffer_head Chandan Rajendra
2014-03-12 14:20 ` [PATCH 5/6] Btrfs: subpagesize-blocksize: Hardcode MAX_EXTENT_BUFFERS_PER_PAGE to 2 Chandan Rajendra
2014-03-12 14:20 ` [PATCH 6/6] Btrfs: subpagesize-blocksize: Allow mounting filesystems where sectorsize != PAGE_SIZE Chandan Rajendra
2014-03-17 14:55 ` [PATCH 0/6 EARLY RFC] Btrfs: Get rid of whole page I/O David Sterba
2014-03-18  7:18   ` chandan
2014-03-19 18:41     ` David Sterba
2014-03-20  3:20       ` Aneesh Kumar K.V
2014-04-03 17:01         ` David Sterba

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.