From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ipmail03.adl2.internode.on.net ([150.101.137.141]:54467 "EHLO ipmail03.adl2.internode.on.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751020AbdKMAs6 (ORCPT ); Sun, 12 Nov 2017 19:48:58 -0500 Date: Mon, 13 Nov 2017 11:48:55 +1100 From: Dave Chinner To: "Fu, Rodney" Cc: Matthew Wilcox , "hch@lst.de" , "viro@zeniv.linux.org.uk" , "linux-fsdevel@vger.kernel.org" Subject: Re: Provision for filesystem specific open flags Message-ID: <20171113004855.GV4094@dastard> References: <20171110172344.GA15288@lst.de> <20171110192902.GA10339@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Fri, Nov 10, 2017 at 09:04:31PM +0000, Fu, Rodney wrote: > > No. If you want new flags bits, make a public proposal. Maybe some other > > filesystem would also benefit from them. > > Ah, I see what you mean now, thanks. > > I would like to propose O_CONCURRENT_WRITE as a new open flag. It is > currently used in the Panasas filesystem (panfs) and defined with value: > > #define O_CONCURRENT_WRITE 020000000000 > > This flag has been provided by panfs to HPC users via the mpich package for > well over a decade. See: > > https://github.com/pmodels/mpich/blob/master/src/mpi/romio/adio/ad_panfs/ad_panfs_open6.c#L344 > > O_CONCURRENT_WRITE indicates to the filesystem that the application doing the > open is participating in a coordinated distributed manner with other such > applications, possibly running on different hosts. This allows the panfs > filesystem to delegate some of the cache coherency responsibilities to the > application, improving performance. O_DIRECT already delegates responsibility for cache coherency to userspace applications and it allows for concurrent writes to a single file. Why do we need a new flag for this? > The reason this flag is used on open as opposed to having a post-open ioctl or > fcntl SETFL is to allow panfs to catch and reject opens by applications that > attempt to access files that have already been opened by applications that have > set O_CONCURRENT_WRITE. Sounds kinda like how we already use O_EXCL on block devices. Perhaps something like: #define O_CONCURRENT_WRITE (O_DIRECT | O_EXCL) To tell open to reject mixed mode access to the file on open? -Dave. -- Dave Chinner david@fromorbit.com