[CentOS] write barrier support in CentOS 6

Wed Apr 2 09:17:45 UTC 2014
Alexandru Chiscan <lec at chiscan.dnsalias.org>

On 04/02/2014 01:00 AM, Tom Robinson wrote:
> On 01/04/14 17:49, Alexandru Chiscan wrote:
>> On 04/01/2014 06:27 AM, Keith Keller wrote:
>>> On 2014-04-01, Tom Robinson <tom.robinson at motec.com.au> wrote:
>>>> Now, I understand that Red Hat (and therefore CentOS) backport many upstr=
>>>> eam features into the stock
>>>> kernel so how can I be sure that kernel 2.6.32-431.11.2.el6 has write bar=
>>>> rier support?
>> Take a look here:
>> https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/writebarrieronoff.html
>>
>> Regards,
>> Lec
> Thanks Lec, I did read this already. It does address filesystems but not LVM. Are write barriers
> enabled for LVM? Write barriers need to be implemented through the entire stack for them to work. If
> you have ext4 on LVM on MD not having them on LVM would break the chain.  N'est-ce pas?

from the kernel changelog 
(https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/changelog) 
the barrier support for filesystems, lvm (dm) and md is active from 2.6.32-82-el6

-[fs]jbd2: replace barriers with explicit flush and FUA usage  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/fs-jbd2-replace-barriers-with-explicit-flush-and-FUA-usage.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[fs]jbd2: Modify ASYNC_COMMIT code to not rely on queue draining on barrier  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/fs-jbd2-Modify-ASYNC_COMMIT-code-to-not-rely-on-queue-draining-on-barrier.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[fs]jbd: replace barriers with explicit flush and FUA usage  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/fs-jbd-replace-barriers-with-explicit-flush-and-FUA-usage.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[fs]gfs2: replace barriers with explicit flush and FUA usage  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/fs-gfs2-replace-barriers-with-explicit-flush-and-FUA-usage.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[fs]btrfs: replace barriers with explicit flush and FUA usage  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/fs-btrfs-replace-barriers-with-explicit-flush-and-FUA-usage.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[fs]xfs: replace barriers with explicit flush and FUA usage  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/fs-xfs-replace-barriers-with-explicit-flush-and-FUA-usage.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[block]pass gfp_mask and flags to sb_issue_discard  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/block-pass-gfp_mask-and-flags-to-sb_issue_discard.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[block]disallow FS recursion from sb_issue_discard allocation  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/block-disallow-FS-recursion-from-sb_issue_discard-allocation.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[dm]convey that all flushes are processed as empty  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/dm-convey-that-all-flushes-are-processed-as-empty.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[dm]fix locking context in queue_io()  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/dm-fix-locking-context-in-queue_io.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[dm]relax ordering of bio-based flush implementation  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/dm-relax-ordering-of-bio-based-flush-implementation.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[dm]implement REQ_FLUSH/FUA support for request-based dm  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/dm-implement-REQ_FLUSH-FUA-support-for-request-based-dm.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[dm]implement REQ_FLUSH/FUA support for bio-based dm  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/dm-implement-REQ_FLUSH-FUA-support-for-bio-based-dm.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[block]make __blk_rq_prep_clone() copy most command flags  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/block-make-__blk_rq_prep_clone-copy-most-command-flags.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[md]implment REQ_FLUSH/FUA support  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/md-implment-REQ_FLUSH-FUA-support.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[virt]virtio_blk: drop REQ_HARDBARRIER support  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/virt-virtio_blk-drop-REQ_HARDBARRIER-support.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[block]loop: implement REQ_FLUSH/FUA support  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/block-loop-implement-REQ_FLUSH-FUA-support.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[block]use REQ_FLUSH in blkdev_issue_flush()  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/block-use-REQ_FLUSH-in-blkdev_issue_flush.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[block]update documentation for REQ_FLUSH / REQ_FUA  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/block-update-documentation-for-REQ_FLUSH-REQ_FUA.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[block]make sure FSEQ_DATA request has the same rq_disk as the original  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/block-make-sure-FSEQ_DATA-request-has-the-same-rq_disk-as-the-original.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[block]kick queue after sequencing REQ_FLUSH/FUA  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/block-kick-queue-after-sequencing-REQ_FLUSH-FUA.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[block]initialize flush request with WRITE_FLUSH instead of REQ_FLUSH  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/block-initialize-flush-request-with-WRITE_FLUSH-instead-of-REQ_FLUSH.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[block]simplify queue_next_fseq  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/block-simplify-queue_next_fseq.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[block]filter flush bio's in __generic_make_request()  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/block-filter-flush-bio-s-in-__generic_make_request.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[block]preserve RHEL6.0 struct request_queue kABI  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/block-preserve-RHEL6-0-struct-request_queue-kABI.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]
-[block]implement REQ_FLUSH/FUA based interface for FLUSH/FUA requests  <https://access.redhat.com/knowledge/sources/source_rpms/kernel-2.6.32-431.11.2.el6/patches/block-implement-REQ_FLUSH-FUA-based-interface-for-FLUSH-FUA-requests.patch>  (Mike Snitzer) [635199  <https://bugzilla.redhat.com/show_bug.cgi?id=635199>]


-- 
Lec