xfs
[Top] [All Lists]

Re: [PATCH v2 03/11] pmem: enable REQ_FUA/REQ_FLUSH handling

To: Dan Williams <dan.j.williams@xxxxxxxxx>
Subject: Re: [PATCH v2 03/11] pmem: enable REQ_FUA/REQ_FLUSH handling
From: Andreas Dilger <adilger@xxxxxxxxx>
Date: Fri, 13 Nov 2015 17:43:28 -0700
Cc: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>, "linux-kernel@xxxxxxxxxxxxxxx" <linux-kernel@xxxxxxxxxxxxxxx>, "H. Peter Anvin" <hpa@xxxxxxxxx>, "J. Bruce Fields" <bfields@xxxxxxxxxxxx>, Theodore Ts'o <tytso@xxxxxxx>, Alexander Viro <viro@xxxxxxxxxxxxxxxxxx>, Dave Chinner <david@xxxxxxxxxxxxx>, Ingo Molnar <mingo@xxxxxxxxxx>, Jan Kara <jack@xxxxxxxx>, Jeff Layton <jlayton@xxxxxxxxxxxxxxx>, Matthew Wilcox <willy@xxxxxxxxxxxxxxx>, Thomas Gleixner <tglx@xxxxxxxxxxxxx>, linux-ext4 <linux-ext4@xxxxxxxxxxxxxxx>, linux-fsdevel <linux-fsdevel@xxxxxxxxxxxxxxx>, Linux MM <linux-mm@xxxxxxxxx>, "linux-nvdimm@xxxxxxxxxxxx" <linux-nvdimm@xxxxxxxxxxxx>, X86 ML <x86@xxxxxxxxxx>, XFS Developers <xfs@xxxxxxxxxxx>, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>, Matthew Wilcox <matthew.r.wilcox@xxxxxxxxx>, Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dilger_ca.20150623.gappssmtp.com; s=20150623; h=subject:mime-version:content-type:from:in-reply-to:date:cc :message-id:references:to; bh=4Bd2fcbtzmuCSDtBoxz0OYGSMbhBMaSdK9ZMD8COeDs=; b=FRtcPR0XF7cuA4iOY1vat9ULQlqU5MTzG+Fj3JzRMSdDQJwGUn1g69o1F8XQc2xFH7 pMURBGhyLkx7I0z0aDjNI9B5yPHStdC+9xWePHiHxnuvrhZqQ4ZaxK9qfbAT5Nzn1RNg UKFhMwzdOlnrRVOcunyGTpyVtCxWCb+It0HKQYaYKsiVkle+VznmmitiEvqn2lswlW+W vDinfQohq8Ndghmxb+BGgy7Be+vOcavhaA+N7hVQJk1YKjgkY56HPmLdjnHRd4T36qz6 PYXQ9LvYHDq8UDbCvXHhT+RnHjvCxF7WaTQ9PpsdxX9GL2puAajOjaLEZbclTA6gExV/ A1yQ==
In-reply-to: <CAPcyv4j4arHE+iAALn1WPDzSb_QSCDy8udtXU1FV=kYSZDfv8A@xxxxxxxxxxxxxx>
References: <1447459610-14259-1-git-send-email-ross.zwisler@xxxxxxxxxxxxxxx> <1447459610-14259-4-git-send-email-ross.zwisler@xxxxxxxxxxxxxxx> <CAPcyv4j4arHE+iAALn1WPDzSb_QSCDy8udtXU1FV=kYSZDfv8A@xxxxxxxxxxxxxx>
On Nov 13, 2015, at 5:20 PM, Dan Williams <dan.j.williams@xxxxxxxxx> wrote:
> 
> On Fri, Nov 13, 2015 at 4:06 PM, Ross Zwisler
> <ross.zwisler@xxxxxxxxxxxxxxx> wrote:
>> Currently the PMEM driver doesn't accept REQ_FLUSH or REQ_FUA bios.  These
>> are sent down via blkdev_issue_flush() in response to a fsync() or msync()
>> and are used by filesystems to order their metadata, among other things.
>> 
>> When we get an msync() or fsync() it is the responsibility of the DAX code
>> to flush all dirty pages to media.  The PMEM driver then just has issue a
>> wmb_pmem() in response to the REQ_FLUSH to ensure that before we return all
>> the flushed data has been durably stored on the media.
>> 
>> Signed-off-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
> 
> Hmm, I'm not seeing why we need this patch.  If the actual flushing of
> the cache is done by the core why does the driver need support
> REQ_FLUSH?  Especially since it's just a couple instructions.  REQ_FUA
> only makes sense if individual writes can bypass the "drive" cache,
> but no I/O submitted to the driver proper is ever cached we always
> flush it through to media.

If the upper level filesystem gets an error when submitting a flush
request, then it assumes the underlying hardware is broken and cannot
be as aggressive in IO submission, but instead has to wait for in-flight
IO to complete.  Since FUA/FLUSH is basically a no-op for pmem devices,
it doesn't make sense _not_ to support this functionality.

Cheers, Andreas





Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

<Prev in Thread] Current Thread [Next in Thread>