From patchwork Thu Sep 15 23:07:48 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dave Chinner X-Patchwork-Id: 9334883 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 7DD53601C2 for ; Thu, 15 Sep 2016 23:08:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5F1C329BB9 for ; Thu, 15 Sep 2016 23:08:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 520B729C6E; Thu, 15 Sep 2016 23:08:10 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from oss.sgi.com (oss.sgi.com [192.48.182.195]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 9220B29C65 for ; Thu, 15 Sep 2016 23:08:09 +0000 (UTC) Received: from oss.sgi.com (localhost [IPv6:::1]) by oss.sgi.com (Postfix) with ESMTP id 833557CA1; Thu, 15 Sep 2016 18:08:08 -0500 (CDT) X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id C1B097CA0 for ; Thu, 15 Sep 2016 18:08:06 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 798A0304059 for ; Thu, 15 Sep 2016 16:08:03 -0700 (PDT) X-ASG-Debug-ID: 1473980876-0bf815415b22bfc0001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id kpGuZ6DoE69gMLPy for ; Thu, 15 Sep 2016 16:07:57 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Effective-Source-IP: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2CwCwBtKdtXEAI1LHldHAEBBAEBCgEBgzoBAQEBAR6BU4ZzhkCVcwEBAQEBAQaMfYYdgg+CA4YYAgIBAQKBYTkUAQIBAQEBAQEBBgEBAQEBAQEBN0CEYQEBAQMBOhwjBQsIAxgJJQ8FJQMHAxcTiEIHwjUBCwEkHoVLhReKHAWUFYVTj0+Pb0iMFoN7HoUvKjSHAQEBAQ Received: from ppp121-44-53-2.lns20.syd4.internode.on.net (HELO dastard) ([121.44.53.2]) by ipmail05.adl6.internode.on.net with ESMTP; 16 Sep 2016 08:37:49 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1bkfky-0002Dv-64; Fri, 16 Sep 2016 09:07:48 +1000 Date: Fri, 16 Sep 2016 09:07:48 +1000 From: Dave Chinner To: Dan Williams Subject: Re: [PATCH v2 2/3] mm, dax: add VM_DAX flag for DAX VMAs Message-ID: <20160915230748.GS30497@dastard> X-ASG-Orig-Subj: Re: [PATCH v2 2/3] mm, dax: add VM_DAX flag for DAX VMAs References: <147392246509.9873.17750323049785100997.stgit@dwillia2-desk3.amr.corp.intel.com> <147392247875.9873.4205533916442000884.stgit@dwillia2-desk3.amr.corp.intel.com> <20160915082615.GA9772@lst.de> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1473980877 X-Barracuda-URL: https://192.48.157.11:443/cgi-mod/mark.cgi X-Barracuda-Scan-Msg-Size: 2426 X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.32935 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header Cc: "linux-nvdimm@lists.01.org" , "linux-kernel@vger.kernel.org" , Nicholas Piggin , XFS Developers , Linux MM , linux-fsdevel , Christoph Hellwig X-BeenThere: xfs@oss.sgi.com X-Mailman-Version: 2.1.14 Precedence: list List-Id: XFS Filesystem from SGI List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: xfs-bounces@oss.sgi.com Sender: xfs-bounces@oss.sgi.com X-Virus-Scanned: ClamAV using ClamSMTP On Thu, Sep 15, 2016 at 10:01:03AM -0700, Dan Williams wrote: > On Thu, Sep 15, 2016 at 1:26 AM, Christoph Hellwig wrote: > > On Wed, Sep 14, 2016 at 11:54:38PM -0700, Dan Williams wrote: > >> The DAX property, page cache bypass, of a VMA is only detectable via the > >> vma_is_dax() helper to check the S_DAX inode flag. However, this is > >> only available internal to the kernel and is a property that userspace > >> applications would like to interrogate. > > > > They have absolutely no business knowing such an implementation detail. > > Hasn't that train already left the station with FS_XFLAG_DAX? No, that's an admin flag, not a runtime hint for applications. Just because that flag is set on an inode, it does not mean that DAX is actually in use - it will be ignored if the backing dev is not dax capable. > The other problem with hiding the DAX property is that it turns out to > not be a transparent acceleration feature. See xfs/086 xfs/088 > xfs/089 xfs/091 which fail with DAX and, as far as I understand, it is > due to the fact that DAX disallows delayed allocation behavior. Which is not a bug, nor is it something that app developers should be surprised by. i.e. Subtle differences in error reporting behaviour occur in filesystems /all the time/. Run the test on a non-dax filesystem with an extent size hint. It fails /exactly the same way as DAX/. Run it with direct IO - fails the same way as DAX. Run it with synchronous writes - it fails the same way as DAX. IOWs, if an app can't handle the way DAX reports errors, then they are /broken/. Delayed allocation requires checking the return value of fsync() or close() to capture the allocation error - many more apps get that wrong than the ones that expect the immediate errors from write()... Anyway: to domeonstrate that the nothign is actually broken, and you might sometimes need to fix tests and send patches to fstests@vger.kernel.org, this makes xfs/086 pass for me on DAX: Cheers, Dave. --- a/tests/xfs/086 +++ b/tests/xfs/086 @@ -96,7 +96,8 @@ _scratch_mount echo "+ modify files" for x in `seq 1 64`; do - $XFS_IO_PROG -f -c "pwrite -S 0x62 0 ${blksz}" "${TESTFILE}.${x}" >> $seqres.full + $XFS_IO_PROG -f -c "pwrite -S 0x62 0 ${blksz}" "${TESTFILE}.${x}" \ + >> $seqres.full 2>&1 done umount "${SCRATCH_MNT}"