All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8 v6] btrfs direct-io using iomap
@ 2019-12-13 19:57 Goldwyn Rodrigues
  2019-12-13 19:57 ` [PATCH 1/8] fs: Export generic_file_buffered_read() Goldwyn Rodrigues
                   ` (8 more replies)
  0 siblings, 9 replies; 27+ messages in thread
From: Goldwyn Rodrigues @ 2019-12-13 19:57 UTC (permalink / raw)
  To: linux-btrfs
  Cc: hch, darrick.wong, fdmanana, nborisov, dsterba, jthumshirn,
	linux-fsdevel

This is an effort to use iomap for direct I/O in btrfs. This would
change the call from __blockdev_direct_io() to iomap_dio_rw().

The main objective is to lose the buffer head and use bio defined by
iomap code, and hopefully to use more of generic-FS codebase.

These patches are based and tested on v5.5-rc1. I have tested it against
xfstests/btrfs.

The tree is available at
https://github.com/goldwynr/linux/tree/btrfs-iomap-dio

Changes since v1
- Incorporated back the efficiency change for inode locking
- Review comments about coding style and git comments
- Merge related patches into one
- Direct read to go through btrfs_direct_IO()
- Removal of no longer used function dio_end_io()

Changes since v2
- aligning iomap offset/length to the position/length of I/O
- Removed btrfs_dio_data
- Removed BTRFS_INODE_READDIO_NEED_LOCK
- Re-incorporating write efficiency changes caused lockdep_assert() in
  iomap to be triggered, remove that code.

Changes since v3
- Fixed freeze on generic/095. Use iomap_end() to account for
  failed/incomplete dio instead of btrfs_dio_data

Changes since v4
- moved lockdep_assert_held() to functions calling iomap_dio_rw()
  This may be called immidiately after calling inode lock and
  may feel not required, but it seems important.
- Removed comments which are no longer required
- Changed commit comments to make them more appropriate

Changes since v5
- restore inode_dio_wait() in truncate
- Removed lockdep_assert_held() near callers

--
Goldwyn



^ permalink raw reply	[flat|nested] 27+ messages in thread
* [PATCH 0/8 v5] btrfs direct-io using iomap
@ 2019-12-12  0:30 Goldwyn Rodrigues
  2019-12-12  0:30 ` [PATCH 2/8] iomap: add a filesystem hook for direct I/O bio submission Goldwyn Rodrigues
  0 siblings, 1 reply; 27+ messages in thread
From: Goldwyn Rodrigues @ 2019-12-12  0:30 UTC (permalink / raw)
  To: linux-btrfs
  Cc: linux-fsdevel, hch, darrick.wong, fdmanana, dsterba, jthumshirn,
	nborisov

This is an effort to use iomap for direct I/O in btrfs. This would
change the call from __blockdev_direct_io() to iomap_dio_rw().

The main objective is to lose the buffer head and use bio defined by
iomap code, and hopefully to use more of generic-FS codebase.

These patches are based and tested on v5.5-rc1. I have tested it against
xfstests/btrfs.

The tree is available at
https://github.com/goldwynr/linux/tree/btrfs-iomap-dio


Changes since v1
- Incorporated back the efficiency change for inode locking
- Review comments about coding style and git comments
- Merge related patches into one
- Direct read to go through btrfs_direct_IO()
- Removal of no longer used function dio_end_io()

Changes since v2
- aligning iomap offset/length to the position/length of I/O
- Removed btrfs_dio_data
- Removed BTRFS_INODE_READDIO_NEED_LOCK
- Re-incorporating write efficiency changes caused lockdep_assert() in
  iomap to be triggered, remove that code.

Changes since v3
- Fixed freeze on generic/095. Use iomap_end() to account for
  failed/incomplete dio instead of btrfs_dio_data

Changes since v4
- moved lockdep_assert_held() to functions calling iomap_dio_rw()
  This may be called immidiately after calling inode lock and
  may feel not required, but it seems important.
- Removed comments which are no longer required
- Changed commit comments to make them more appropriate

--
Goldwyn

 fs/btrfs/btrfs_inode.h |   18 ---
 fs/btrfs/ctree.h       |    1
 fs/btrfs/extent_io.c   |   37 ++----
 fs/btrfs/extent_io.h   |    2
 fs/btrfs/file.c        |   21 +++
 fs/btrfs/inode.c       |  288 ++++++++++++++++++-------------------------------
 fs/direct-io.c         |   19 ---
 fs/gfs2/file.c         |    4
 fs/iomap/direct-io.c   |   16 +-
 fs/xfs/xfs_file.c      |    9 +
 include/linux/fs.h     |    4
 include/linux/iomap.h  |    2
 mm/filemap.c           |   13 +-
 13 files changed, 176 insertions(+), 258 deletions(-)


^ permalink raw reply	[flat|nested] 27+ messages in thread
* [PATCH 0/8 v4] btrfs direct-io using iomap
@ 2019-12-10 23:01 Goldwyn Rodrigues
  2019-12-10 23:01 ` [PATCH 2/8] iomap: add a filesystem hook for direct I/O bio submission Goldwyn Rodrigues
  0 siblings, 1 reply; 27+ messages in thread
From: Goldwyn Rodrigues @ 2019-12-10 23:01 UTC (permalink / raw)
  To: linux-btrfs
  Cc: hch, darrick.wong, fdmanana, nborisov, dsterba, jthumshirn,
	linux-fsdevel

This is an effort to use iomap for direct I/O in btrfs. This would
change the call from __blockdev_direct_io() to iomap_dio_rw().

The main objective is to lose the buffer head and use bio defined by
iomap code, and hopefully to use more of generic-FS codebase.

These patches are based and tested on v5.5-rc1. I have tested it against
xfstests/btrfs.

The tree is available at
https://github.com/goldwynr/linux/tree/btrfs-iomap-dio


Changes since v1
- Incorporated back the efficiency change for inode locking
- Review comments about coding style and git comments
- Merge related patches into one
- Direct read to go through btrfs_direct_IO()
- Removal of no longer used function dio_end_io()

Changes since v2
- aligning iomap offset/length to the position/length of I/O
- Removed btrfs_dio_data
- Removed BTRFS_INODE_READDIO_NEED_LOCK
- Re-incorporating write efficiency changes caused lockdep_assert() in
  iomap to be triggered, remove that code.

Changes since v3
- Fixed freeze on generic/095. Use iomap_end() to account for
  failed/incomplete dio instead of btrfs_dio_data

--
Goldwyn

 fs/btrfs/btrfs_inode.h |   18 ---
 fs/btrfs/ctree.h       |    1
 fs/btrfs/extent_io.c   |   37 ++----
 fs/btrfs/extent_io.h   |    2
 fs/btrfs/file.c        |   21 +++
 fs/btrfs/inode.c       |  282 ++++++++++++++++++-------------------------------
 fs/direct-io.c         |   19 ---
 fs/iomap/direct-io.c   |   16 +-
 include/linux/fs.h     |    4
 include/linux/iomap.h  |    2
 mm/filemap.c           |   13 +-
 11 files changed, 162 insertions(+), 253 deletions(-)



^ permalink raw reply	[flat|nested] 27+ messages in thread
* [PATCH 0/8 v3] btrfs direct-io using iomap
@ 2019-12-05 15:56 Goldwyn Rodrigues
  2019-12-05 15:56 ` [PATCH 2/8] iomap: add a filesystem hook for direct I/O bio submission Goldwyn Rodrigues
  0 siblings, 1 reply; 27+ messages in thread
From: Goldwyn Rodrigues @ 2019-12-05 15:56 UTC (permalink / raw)
  To: linux-btrfs
  Cc: linux-fsdevel, hch, darrick.wong, fdmanana, nborisov, dsterba,
	jthumshirn

This is an effort to use iomap for direct I/O in btrfs. This would
change the call from __blockdev_direct_io() to iomap_dio_rw().

The main objective is to lose the buffer head and use bio defined by
iomap code, and hopefully to use more of generic-FS codebase.

These patches are based on xfs/iomap-for-next, though I tested it
against the patches on xfs/iomap-for-next on top of v5.4.1 (there are no
changes to existing patches). The tree is available at
https://github.com/goldwynr/linux/tree/btrfs-iomap-dio

I have tested it against xfstests/btrfs.

Changes since v1
- Incorporated back the efficiency change for inode locking
- Review comments about coding style and git comments
- Merge related patches into one
- Direct read to go through btrfs_direct_IO()
- Removal of no longer used function dio_end_io()

Changes since v2
- aligning iomap offset/length to the position/length of I/O
- Removed btrfs_dio_data
- Removed BTRFS_INODE_READDIO_NEED_LOCK
- Re-incorporating write efficiency changes caused lockdep_assert() in
  iomap to be triggered, remove that code.

 fs/btrfs/btrfs_inode.h |   18 ---
 fs/btrfs/ctree.h       |    1 
 fs/btrfs/extent_io.c   |   37 ++----
 fs/btrfs/extent_io.h   |    2 
 fs/btrfs/file.c        |   21 +++
 fs/btrfs/inode.c       |  267 ++++++++++++++++---------------------------------
 fs/direct-io.c         |   19 ---
 fs/iomap/direct-io.c   |   16 +-
 include/linux/fs.h     |    3 
 include/linux/iomap.h  |    2 
 mm/filemap.c           |   13 +-
 11 files changed, 149 insertions(+), 250 deletions(-)

-- 
Goldwyn


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

end of thread, other threads:[~2020-01-07 17:23 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-13 19:57 [PATCH 0/8 v6] btrfs direct-io using iomap Goldwyn Rodrigues
2019-12-13 19:57 ` [PATCH 1/8] fs: Export generic_file_buffered_read() Goldwyn Rodrigues
2019-12-13 19:57 ` [PATCH 2/8] iomap: add a filesystem hook for direct I/O bio submission Goldwyn Rodrigues
2019-12-14  0:31   ` Darrick J. Wong
2019-12-18  2:02   ` Darrick J. Wong
2019-12-13 19:57 ` [PATCH 3/8] iomap: Move lockdep_assert_held() to iomap_dio_rw() calls Goldwyn Rodrigues
2019-12-14  0:32   ` Darrick J. Wong
2019-12-18  2:04   ` Darrick J. Wong
2019-12-21 13:41   ` Christoph Hellwig
2019-12-21 13:42     ` Christoph Hellwig
2019-12-21 18:02     ` Darrick J. Wong
2019-12-13 19:57 ` [PATCH 4/8] btrfs: Switch to iomap_dio_rw() for dio Goldwyn Rodrigues
2019-12-21 14:42   ` Christoph Hellwig
2020-01-02 18:01     ` Goldwyn Rodrigues
2020-01-07 17:23       ` Christoph Hellwig
2020-01-07 11:59     ` Goldwyn Rodrigues
2020-01-07 17:21       ` Christoph Hellwig
2019-12-13 19:57 ` [PATCH 5/8] fs: Remove dio_end_io() Goldwyn Rodrigues
2019-12-13 19:57 ` [PATCH 6/8] btrfs: Wait for extent bits to release page Goldwyn Rodrigues
2019-12-13 19:57 ` [PATCH 7/8] btrfs: Use ->iomap_end() instead of btrfs_dio_data Goldwyn Rodrigues
2019-12-13 19:57 ` [PATCH 8/8] btrfs: remove BTRFS_INODE_READDIO_NEED_LOCK Goldwyn Rodrigues
2019-12-16  0:01 ` [PATCH 0/8 v6] btrfs direct-io using iomap Nikolay Borisov
2019-12-16 12:41   ` Goldwyn Rodrigues
  -- strict thread matches above, loose matches on Subject: below --
2019-12-12  0:30 [PATCH 0/8 v5] " Goldwyn Rodrigues
2019-12-12  0:30 ` [PATCH 2/8] iomap: add a filesystem hook for direct I/O bio submission Goldwyn Rodrigues
2019-12-12  9:47   ` Christoph Hellwig
2019-12-10 23:01 [PATCH 0/8 v4] btrfs direct-io using iomap Goldwyn Rodrigues
2019-12-10 23:01 ` [PATCH 2/8] iomap: add a filesystem hook for direct I/O bio submission Goldwyn Rodrigues
2019-12-05 15:56 [PATCH 0/8 v3] btrfs direct-io using iomap Goldwyn Rodrigues
2019-12-05 15:56 ` [PATCH 2/8] iomap: add a filesystem hook for direct I/O bio submission Goldwyn Rodrigues

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.