From: Ira Weiny <ira.weiny@intel.com> To: "Darrick J. Wong" <darrick.wong@oracle.com> Cc: linux-kernel@vger.kernel.org, Alexander Viro <viro@zeniv.linux.org.uk>, Dan Williams <dan.j.williams@intel.com>, Dave Chinner <david@fromorbit.com>, Christoph Hellwig <hch@lst.de>, "Theodore Y. Ts'o" <tytso@mit.edu>, Jan Kara <jack@suse.cz>, linux-ext4@vger.kernel.org, linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: Re: [RFC PATCH V2 08/12] fs/xfs: Add lock/unlock mode to xfs Date: Wed, 15 Jan 2020 15:52:37 -0800 Message-ID: <20200115235237.GA24522@iweiny-DESK2.sc.intel.com> (raw) In-Reply-To: <20200113221957.GN8247@magnolia> On Mon, Jan 13, 2020 at 02:19:57PM -0800, Darrick J. Wong wrote: > On Fri, Jan 10, 2020 at 11:29:38AM -0800, ira.weiny@intel.com wrote: > > From: Ira Weiny <ira.weiny@intel.com> > > [snip] > > > > diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c > > index 401da197f012..e8fd95b75e5b 100644 > > --- a/fs/xfs/xfs_inode.c > > +++ b/fs/xfs/xfs_inode.c > > @@ -142,12 +142,12 @@ xfs_ilock_attr_map_shared( > > * > > * Basic locking order: > > * > > - * i_rwsem -> i_mmap_lock -> page_lock -> i_ilock > > + * i_rwsem -> i_dax_sem -> i_mmap_lock -> page_lock -> i_ilock > > Mmmmmm, more locks. Can we skip the extra lock if CONFIG_FSDAX=n or if > the filesystem devices don't support DAX at all? I've looked into this a bit more and I think skipping on CONFIG_FSDAX=n is ok but doing so on individual devices is not going to be possible because we don't have that information at the vfs layer. I'll continue to think about how to mitigate this more while I add CONFIG_FSDAX checks before rolling out a new patch set. > > Also, I don't think we're actually following the i_rwsem -> i_daxsem > order in fallocate, and possibly elsewhere too? > > Does the vfs have to take the i_dax_sem to do remapping things like > reflink? (Pretend that reflink and dax are compatible for the moment) > I spoke with Dan today about this and we believe the answer is going to be yes. However, not until the code is added to support DAX in reflink. Because currently this is only required for places which use "IS_DAX()" to see the state of the inode. Currently the vfs layer does not have any IS_DAX() checks in the reflink path. But when they are added they will be required to take this sem. Ira
next prev parent reply index Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-01-10 19:29 [RFC PATCH V2 00/12] Enable per-file/directory DAX operations V2 ira.weiny 2020-01-10 19:29 ` [RFC PATCH V2 01/12] fs/stat: Define DAX statx attribute ira.weiny 2020-01-15 11:37 ` Jan Kara 2020-01-15 17:38 ` Darrick J. Wong 2020-01-15 19:45 ` Ira Weiny 2020-01-15 20:10 ` Dan Williams 2020-01-15 22:38 ` Ira Weiny 2020-01-16 5:39 ` Darrick J. Wong 2020-01-16 6:05 ` Dan Williams 2020-01-16 6:18 ` Darrick J. Wong 2020-01-16 6:25 ` Dan Williams 2020-01-18 9:11 ` Dave Chinner 2020-01-16 17:55 ` Ira Weiny 2020-01-16 18:04 ` Darrick J. Wong 2020-01-16 18:52 ` Ira Weiny 2020-01-16 22:19 ` Darrick J. Wong 2020-01-17 11:58 ` Jan Kara 2020-01-10 19:29 ` [RFC PATCH V2 02/12] fs/xfs: Isolate the physical DAX flag from effective ira.weiny 2020-01-10 19:29 ` [RFC PATCH V2 03/12] fs/xfs: Separate functionality of xfs_inode_supports_dax() ira.weiny 2020-01-10 19:29 ` [RFC PATCH V2 04/12] fs/xfs: Clean up DAX support check ira.weiny 2020-01-10 19:29 ` [RFC PATCH V2 05/12] fs: remove unneeded IS_DAX() check ira.weiny 2020-01-16 9:38 ` Jan Kara 2020-01-16 18:47 ` Ira Weiny 2020-01-10 19:29 ` [RFC PATCH V2 06/12] fs/xfs: Check if the inode supports DAX under lock ira.weiny 2020-01-10 19:29 ` [RFC PATCH V2 07/12] fs: Add locking for a dynamic inode 'mode' ira.weiny 2020-01-13 22:12 ` Darrick J. Wong 2020-01-14 0:20 ` Ira Weiny 2020-01-14 1:03 ` Darrick J. Wong 2020-01-15 19:08 ` Ira Weiny 2020-01-16 5:40 ` Darrick J. Wong 2020-01-16 18:54 ` Ira Weiny 2020-01-10 19:29 ` [RFC PATCH V2 08/12] fs/xfs: Add lock/unlock mode to xfs ira.weiny 2020-01-13 22:19 ` Darrick J. Wong 2020-01-14 0:35 ` Ira Weiny 2020-01-15 0:57 ` Ira Weiny 2020-01-15 23:52 ` Ira Weiny [this message] 2020-01-16 9:24 ` Jan Kara 2020-01-16 19:12 ` Ira Weiny 2020-01-10 19:29 ` [RFC PATCH V2 09/12] fs: Prevent mode change if file is mmap'ed ira.weiny 2020-01-13 22:22 ` Darrick J. Wong 2020-01-14 0:46 ` Ira Weiny 2020-01-14 1:30 ` Darrick J. Wong 2020-01-14 17:53 ` Ira Weiny 2020-01-15 11:34 ` Jan Kara 2020-01-15 18:24 ` Ira Weiny 2020-01-15 10:21 ` David Laight 2020-01-15 17:53 ` Ira Weiny 2020-01-10 19:29 ` [RFC PATCH V2 10/12] fs/xfs: Fix truncate up ira.weiny 2020-01-13 22:27 ` Darrick J. Wong 2020-01-14 0:40 ` Ira Weiny 2020-01-14 1:14 ` Darrick J. Wong 2020-01-14 19:00 ` Ira Weiny 2020-01-14 19:39 ` Ira Weiny 2020-01-10 19:29 ` [RFC PATCH V2 11/12] fs/xfs: Clean up locking in dax invalidate ira.weiny 2020-01-10 19:29 ` [RFC PATCH V2 12/12] fs/xfs: Allow toggle of effective DAX flag ira.weiny
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200115235237.GA24522@iweiny-DESK2.sc.intel.com \ --to=ira.weiny@intel.com \ --cc=dan.j.williams@intel.com \ --cc=darrick.wong@oracle.com \ --cc=david@fromorbit.com \ --cc=hch@lst.de \ --cc=jack@suse.cz \ --cc=linux-ext4@vger.kernel.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-xfs@vger.kernel.org \ --cc=tytso@mit.edu \ --cc=viro@zeniv.linux.org.uk \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Linux-XFS Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-xfs/0 linux-xfs/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-xfs linux-xfs/ https://lore.kernel.org/linux-xfs \ linux-xfs@vger.kernel.org public-inbox-index linux-xfs Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-xfs AGPL code for this site: git clone https://public-inbox.org/public-inbox.git