[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <151943298533.29249.14597996053028346159.stgit@dwillia2-desk3.amr.corp.intel.com>
Date: Fri, 23 Feb 2018 16:43:05 -0800
From: Dan Williams <dan.j.williams@...el.com>
To: linux-nvdimm@...ts.01.org
Cc: Jane Chu <jane.chu@...cle.com>,
Haozhong Zhang <haozhong.zhang@...el.com>,
Michal Hocko <mhocko@...e.com>, Jan Kara <jack@...e.cz>,
kvm@...r.kernel.org, "Darrick J. Wong" <darrick.wong@...cle.com>,
linux-kernel@...r.kernel.org, stable@...r.kernel.org,
linux-xfs@...r.kernel.org, linux-mm@...ck.org,
Alex Williamson <alex.williamson@...hat.com>,
Gerd Rausch <gerd.rausch@...cle.com>,
Alexander Viro <viro@...iv.linux.org.uk>,
linux-fsdevel@...r.kernel.org,
kbuild test robot <fengguang.wu@...el.com>,
Christoph Hellwig <hch@....de>
Subject: [PATCH v3 0/6] vfio,
dax: prevent long term filesystem-dax pins and other fixes
Changes since v2 [1]:
* Fix yet more compile breakage in the FS_DAX=n and DEV_DAX=y case.
(0day robot)
[1]: https://lists.01.org/pipermail/linux-nvdimm/2018-February/014046.html
---
The vfio interface, like RDMA, wants to setup long term (indefinite)
pins of the pages backing an address range so that a guest or userspace
driver can perform DMA to the with physical address. Given that this
pinning may lead to filesystem operations deadlocking in the
filesystem-dax case, the pinning request needs to be rejected.
The longer term fix for vfio, RDMA, and any other long term pin user, is
to provide a 'pin with lease' mechanism. Similar to the leases that are
hold for pNFS RDMA layouts, this userspace lease gives the kernel a way
to notify userspace that the block layout of the file is changing and
the kernel is revoking access to pinned pages.
---
Dan Williams (6):
dax: fix vma_is_fsdax() helper
dax: fix dax_mapping() definition in the FS_DAX=n + DEV_DAX=y case
xfs, dax: introduce IS_FSDAX()
dax: fix S_DAX definition
dax: short circuit vma_is_fsdax() in the CONFIG_FS_DAX=n case
vfio: disable filesystem-dax page pinning
drivers/vfio/vfio_iommu_type1.c | 18 +++++++++++++++---
fs/xfs/xfs_file.c | 14 +++++++-------
fs/xfs/xfs_ioctl.c | 4 ++--
fs/xfs/xfs_iomap.c | 6 +++---
fs/xfs/xfs_reflink.c | 2 +-
include/linux/dax.h | 9 ++++++---
include/linux/fs.h | 8 ++++++--
7 files changed, 40 insertions(+), 21 deletions(-)
Powered by blists - more mailing lists