All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCHSET #upstream] block, fs: replace HARDBARRIER with FLUSH/FUA, take#2
@ 2010-09-03 10:29 ` Tejun Heo
  0 siblings, 0 replies; 159+ messages in thread
From: Tejun Heo @ 2010-09-03 10:29 UTC (permalink / raw)
  To: jaxboe, linux-kernel, linux-fsdevel, linux-scsi, linux-ide, linux-raid

Hello,

This patchset is combination of the following two patchsets.

 [1] block, fs: replace HARDBARRIER with FLUSH/FUA
 [2] block, dm: finish REQ_FLUSH/FUA conversion, take#2

Changes from the previous postings are

* Rebased on top of v2.6.36-rc3.

* 0010-block-implement-REQ_FLUSH-FUA-based-interface-for-FL.patch
  description updated to include why special -EOPNOTSUPP handling is
  no longer necessary as suggested by Mike Snitzer.

* 0025-dm-relax-ordering-of-bio-based-flush-implementation.patch
  description updated to include why flush_error and special error
  handling logic are no longer necessary as suggested by Mike
  Snitzer.

* 0013-block-initialize-flush-request-with-WRITE_FLUSH-inst.patch and
  0014-block-kick-queue-after-sequencing-REQ_FLUSH-FUA.patch added.
  These fixes aren't strictly required by the current users but remove
  fishy corner cases.

* 0015-block-make-sure-FSEQ_DATA-request-has-the-same-rq_di.patch
  added.  This is needed to make requested based dm work.

* 0026-dm-fix-locking-context-in-queue_io.patch added.  This fixes
  locking context problem introduced by
  0025-dm-relax-ordering-of-bio-based-flush-implementation.patch.

* Tested/Reviewed-by's added and patches reordered such that block
  layer conversion comes first followed by block driver conversions,
  filesystem conversions and then finally removal of deprecate stuff.

I think the patchset is mostly ready now although I would love to have
acked/reviewd-by's on bio-based dm conversion patches.  Jens,
Christoph, how do you guys wanna steer these patches?  I think it
would be best to go through the block tree but splitting parts and
doing cross tree pull/merges should be doable too.

This patchset contains the following patches

  0001-ide-remove-unnecessary-blk_queue_flushing-test-in-do.patch
  0002-block-loop-queue-ordered-mode-should-be-DRAIN_FLUSH.patch
  0003-block-kill-QUEUE_ORDERED_BY_TAG.patch
  0004-block-deprecate-barrier-and-replace-blk_queue_ordere.patch
  0005-block-remove-spurious-uses-of-REQ_HARDBARRIER.patch
  0006-block-misc-cleanups-in-barrier-code.patch
  0007-block-drop-barrier-ordering-by-queue-draining.patch
  0008-block-rename-blk-barrier.c-to-blk-flush.c.patch
  0009-block-rename-barrier-ordered-to-flush.patch
  0010-block-implement-REQ_FLUSH-FUA-based-interface-for-FL.patch
  0011-block-filter-flush-bio-s-in-__generic_make_request.patch
  0012-block-simplify-queue_next_fseq.patch
  0013-block-initialize-flush-request-with-WRITE_FLUSH-inst.patch
  0014-block-kick-queue-after-sequencing-REQ_FLUSH-FUA.patch
  0015-block-make-sure-FSEQ_DATA-request-has-the-same-rq_di.patch
  0016-block-update-documentation-for-REQ_FLUSH-REQ_FUA.patch
  0017-block-use-REQ_FLUSH-in-blkdev_issue_flush.patch
  0018-block-loop-implement-REQ_FLUSH-FUA-support.patch
  0019-virtio_blk-drop-REQ_HARDBARRIER-support.patch
  0020-lguest-replace-VIRTIO_F_BARRIER-support-with-VIRTIO_.patch
  0021-md-implment-REQ_FLUSH-FUA-support.patch
  0022-block-make-__blk_rq_prep_clone-copy-most-command-fla.patch
  0023-dm-implement-REQ_FLUSH-FUA-support-for-bio-based-dm.patch
  0024-dm-implement-REQ_FLUSH-FUA-support-for-request-based.patch
  0025-dm-relax-ordering-of-bio-based-flush-implementation.patch
  0026-dm-fix-locking-context-in-queue_io.patch
  0027-block-pass-gfp_mask-and-flags-to-sb_issue_discard.patch
  0028-xfs-replace-barriers-with-explicit-flush-FUA-usage.patch
  0029-btrfs-replace-barriers-with-explicit-flush-FUA-usage.patch
  0030-gfs2-replace-barriers-with-explicit-flush-FUA-usage.patch
  0031-reiserfs-replace-barriers-with-explicit-flush-FUA-us.patch
  0032-nilfs2-replace-barriers-with-explicit-flush-FUA-usag.patch
  0033-jbd-replace-barriers-with-explicit-flush-FUA-usage.patch
  0034-jbd2-Modify-ASYNC_COMMIT-code-to-not-rely-on-queue-d.patch
  0035-jbd2-replace-barriers-with-explicit-flush-FUA-usage.patch
  0036-ext4-do-not-send-discards-as-barriers.patch
  0037-fat-do-not-send-discards-as-barriers.patch
  0038-swap-do-not-send-discards-as-barriers.patch
  0039-block-remove-the-WRITE_BARRIER-flag.patch
  0040-block-remove-the-BLKDEV_IFL_BARRIER-flag.patch
  0041-block-remove-the-BH_Eopnotsupp-flag.patch

and is on top of v2.6.26-rc3 (2bfc96a127bc1cc94d26bfaa40159966064f9c8c)
and available in the following git tree

  git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git flush-fua

and contains the following changes.  (hey, 1000 less lines!)

 Documentation/block/00-INDEX                    |    4 
 Documentation/block/barrier.txt                 |  261 ---------------
 Documentation/block/writeback_cache_control.txt |   86 +++++
 Documentation/lguest/lguest.c                   |   29 -
 block/Makefile                                  |    2 
 block/blk-barrier.c                             |  350 ---------------------
 block/blk-core.c                                |   72 ++--
 block/blk-flush.c                               |  265 +++++++++++++++
 block/blk-lib.c                                 |   18 -
 block/blk-settings.c                            |   20 +
 block/blk.h                                     |    8 
 block/elevator.c                                |   79 ----
 drivers/block/brd.c                             |    1 
 drivers/block/loop.c                            |   20 -
 drivers/block/osdblk.c                          |    5 
 drivers/block/pktcdvd.c                         |    1 
 drivers/block/ps3disk.c                         |    2 
 drivers/block/virtio_blk.c                      |   37 --
 drivers/block/xen-blkfront.c                    |   47 --
 drivers/ide/ide-disk.c                          |   13 
 drivers/ide/ide-io.c                            |   13 
 drivers/md/dm-crypt.c                           |    2 
 drivers/md/dm-io.c                              |   20 -
 drivers/md/dm-log.c                             |    2 
 drivers/md/dm-raid1.c                           |    8 
 drivers/md/dm-region-hash.c                     |   16 
 drivers/md/dm-snap-persistent.c                 |    2 
 drivers/md/dm-snap.c                            |    6 
 drivers/md/dm-stripe.c                          |    2 
 drivers/md/dm.c                                 |  400 +++++-------------------
 drivers/md/linear.c                             |    4 
 drivers/md/md.c                                 |  117 +------
 drivers/md/md.h                                 |   23 -
 drivers/md/multipath.c                          |    4 
 drivers/md/raid0.c                              |    4 
 drivers/md/raid1.c                              |  176 +++-------
 drivers/md/raid1.h                              |    2 
 drivers/md/raid10.c                             |    7 
 drivers/md/raid5.c                              |   43 +-
 drivers/md/raid5.h                              |    1 
 drivers/mmc/card/queue.c                        |    1 
 drivers/s390/block/dasd.c                       |    1 
 drivers/scsi/aic7xxx_old.c                      |   21 -
 drivers/scsi/libsas/sas_scsi_host.c             |   13 
 drivers/scsi/sd.c                               |   18 -
 fs/btrfs/disk-io.c                              |   19 -
 fs/btrfs/extent-tree.c                          |    2 
 fs/btrfs/volumes.c                              |    4 
 fs/btrfs/volumes.h                              |    1 
 fs/buffer.c                                     |    7 
 fs/ext4/mballoc.c                               |    3 
 fs/fat/fatent.c                                 |    4 
 fs/fat/misc.c                                   |    5 
 fs/gfs2/log.c                                   |   19 -
 fs/gfs2/rgrp.c                                  |    5 
 fs/jbd/commit.c                                 |   30 -
 fs/jbd2/commit.c                                |   72 +---
 fs/nilfs2/super.c                               |   10 
 fs/nilfs2/the_nilfs.c                           |    7 
 fs/reiserfs/journal.c                           |  106 +-----
 fs/xfs/linux-2.6/xfs_buf.c                      |   16 
 fs/xfs/linux-2.6/xfs_buf.h                      |   11 
 fs/xfs/linux-2.6/xfs_trace.h                    |    1 
 fs/xfs/xfs_log.c                                |   13 
 include/linux/blk_types.h                       |    5 
 include/linux/blkdev.h                          |   85 -----
 include/linux/buffer_head.h                     |    2 
 include/linux/fs.h                              |   28 -
 include/scsi/scsi_tcq.h                         |    6 
 mm/swapfile.c                                   |    9 
 70 files changed, 819 insertions(+), 1877 deletions(-)

Thanks.

--
tejun

[1] http://thread.gmane.org/gmane.linux.kernel.device-mapper.devel/12363
[2] http://thread.gmane.org/gmane.linux.kernel/1029396

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

end of thread, other threads:[~2010-09-18 20:42 UTC | newest]

Thread overview: 159+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-09-03 10:29 [PATCHSET #upstream] block, fs: replace HARDBARRIER with FLUSH/FUA, take#2 Tejun Heo
2010-09-03 10:29 ` Tejun Heo
2010-09-03 10:29 ` Tejun Heo
2010-09-03 10:29 ` [PATCH 01/41] ide: remove unnecessary blk_queue_flushing() test in do_ide_request() Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` Tejun Heo
2010-09-03 10:29 ` [PATCH 02/41] block/loop: queue ordered mode should be DRAIN_FLUSH Tejun Heo
2010-09-03 10:29 ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-12  8:38   ` Tao Ma
2010-09-12 11:41     ` Tejun Heo
2010-09-12 11:55       ` Tao Ma
2010-09-03 10:29 ` [PATCH 03/41] block: kill QUEUE_ORDERED_BY_TAG Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` Tejun Heo
2010-09-03 10:29 ` [PATCH 04/41] block: deprecate barrier and replace blk_queue_ordered() with blk_queue_flush() Tejun Heo
2010-09-03 10:29 ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 05/41] block: remove spurious uses of REQ_HARDBARRIER Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 06/41] block: misc cleanups in barrier code Tejun Heo
2010-09-03 10:29 ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 07/41] block: drop barrier ordering by queue draining Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 08/41] block: rename blk-barrier.c to blk-flush.c Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 09/41] block: rename barrier/ordered to flush Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` Tejun Heo
2010-09-03 10:29 ` [PATCH 10/41] block: implement REQ_FLUSH/FUA based interface for FLUSH/FUA requests Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 11/41] block: filter flush bio's in __generic_make_request() Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 12/41] block: simplify queue_next_fseq Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 13/41] block: initialize flush request with WRITE_FLUSH instead of REQ_FLUSH Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 14/41] block: kick queue after sequencing REQ_FLUSH/FUA Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 15/41] block: make sure FSEQ_DATA request has the same rq_disk as the original Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 16/41] block: update documentation for REQ_FLUSH / REQ_FUA Tejun Heo
2010-09-03 10:29 ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 17/41] block: use REQ_FLUSH in blkdev_issue_flush() Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 18/41] block/loop: implement REQ_FLUSH/FUA support Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 19/41] virtio_blk: drop REQ_HARDBARRIER support Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 20/41] lguest: replace VIRTIO_F_BARRIER support with VIRTIO_F_FLUSH support Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 21/41] md: implment REQ_FLUSH/FUA support Tejun Heo
2010-09-03 10:29 ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 22/41] block: make __blk_rq_prep_clone() copy most command flags Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 23/41] dm: implement REQ_FLUSH/FUA support for bio-based dm Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 12:36   ` Mike Snitzer
2010-09-06 11:14   ` [dm-devel] " Milan Broz
2010-09-07 21:17     ` Mike Snitzer
2010-09-07 22:15       ` Mike Snitzer
2010-09-07 23:49         ` [PATCH 42/41] dm: convey that all flushes are processed as empty Mike Snitzer
2010-09-08  0:00           ` Christoph Hellwig
2010-09-08  2:04             ` [PATCH 42/41 v2] " Mike Snitzer
2010-09-08 16:09               ` Tejun Heo
2010-09-08 16:09               ` Tejun Heo
2010-09-10 18:25   ` [PATCH 23/41] dm: implement REQ_FLUSH/FUA support for bio-based dm Mikulas Patocka
2010-09-10 18:46     ` Mike Snitzer
2010-09-10 19:05       ` Mikulas Patocka
2010-09-10 19:24         ` Mike Snitzer
2010-09-10 20:06           ` Mikulas Patocka
2010-09-10 23:36             ` Tejun Heo
2010-09-11  1:46               ` Mike Snitzer
     [not found]                 ` <Pine.LNX.4.64.1009110500070.27949@hs20-bc2-1.build.redhat.com>
     [not found]                   ` <20100911132102.GA29631@redhat.com>
     [not found]                     ` <Pine.LNX.4.64.1009111251470.22177@hs20-bc2-1.build.redhat.com>
     [not found]                       ` <20100911201758.GB31324@redhat.com>
2010-09-13 18:55                         ` Mikulas Patocka
2010-09-13 20:54                           ` Mike Snitzer
2010-09-18 17:58                 ` Bill Davidsen
2010-09-18 20:42                   ` [dm-devel] " Mike Snitzer
2010-09-11 12:19               ` Ric Wheeler
2010-09-13 19:01               ` Mikulas Patocka
2010-09-03 10:29 ` Tejun Heo
2010-09-03 10:29 ` [PATCH 24/41] dm: implement REQ_FLUSH/FUA support for request-based dm Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-08  1:46   ` Kiyoshi Ueda
2010-09-03 10:29 ` [PATCH 25/41] dm: relax ordering of bio-based flush implementation Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 26/41] dm: fix locking context in queue_io() Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 27/41] block: pass gfp_mask and flags to sb_issue_discard Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 28/41] xfs: replace barriers with explicit flush / FUA usage Tejun Heo
2010-09-03 10:29 ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 29/41] btrfs: " Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` Tejun Heo
2010-09-03 10:29 ` [PATCH 30/41] gfs2: " Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 31/41] reiserfs: " Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` Tejun Heo
2010-09-03 10:29 ` [PATCH 32/41] nilfs2: " Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 33/41] jbd: " Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 34/41] jbd2: Modify ASYNC_COMMIT code to not rely on queue draining on barrier Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 35/41] jbd2: replace barriers with explicit flush / FUA usage Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 36/41] ext4: do not send discards as barriers Tejun Heo
2010-09-03 10:29 ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 37/41] fat: " Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 38/41] swap: " Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` Tejun Heo
2010-09-03 10:29 ` [PATCH 39/41] block: remove the WRITE_BARRIER flag Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 40/41] block: remove the BLKDEV_IFL_BARRIER flag Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29 ` [PATCH 41/41] block: remove the BH_Eopnotsupp flag Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 10:29   ` Tejun Heo
2010-09-03 18:53 ` [PATCHSET #upstream] block, fs: replace HARDBARRIER with FLUSH/FUA, take#2 Jens Axboe
2010-09-03 18:53   ` Jens Axboe
2010-09-08 16:12 ` Tejun Heo
2010-09-08 16:12   ` Tejun Heo
2010-09-10 10:19   ` Jens Axboe
2010-09-10 10:19     ` Jens Axboe
2010-09-08 16:12 ` Tejun Heo

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.