[CentOS] write barrier support in CentOS 6

Thu Apr 3 03:25:49 UTC 2014
Tom Robinson <tom.robinson at motec.com.au>

On 02/04/14 20:17, Alexandru Chiscan wrote:
> 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>]
>
>

Thanks Alexandru,

I did look at the changelog but, for my untrained eye, I saw no specific reference to LVM there (and
indeed still don't in your list above). Are you saying that because dm is patched, LVM is now
implementing barriers correctly?

Kind regards,
Tom

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 263 bytes
Desc: OpenPGP digital signature
URL: <http://lists.centos.org/pipermail/centos/attachments/20140403/efda25c7/attachment-0004.sig>