lkml.org 
[lkml]   [2018]   [Feb]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v2 0/5] vfio, dax: prevent long term filesystem-dax pins and other fixes
    On 02/22/18 23:17 -0800, Dan Williams wrote:
    > Changes since v1 [1]:
    >
    > * Fix the detection of device-dax file instances in vma_is_fsdax().
    > (Haozhong, Gerd)
    >
    > * Fix 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 (5):
    > dax: fix vma_is_fsdax() helper
    > dax: fix dax_mapping() definition in the FS_DAX=n + DEV_DAX=y case
    > 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 +++++++++++++++---
    > include/linux/dax.h | 9 ++++++---
    > include/linux/fs.h | 6 ++++--
    > 3 files changed, 25 insertions(+), 8 deletions(-)

    Tested on QEMU with fs-dax and device-dax as vNVDIMM backends
    respectively with vfio passthrough. The fs-dax case fails QEMU as
    expected, and the device-dax case works normally now.

    Tested-by: Haozhong Zhang <haozhong.zhang@intel.com>

    \
     
     \ /
      Last update: 2018-02-23 09:56    [W:2.457 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site