On 2018-12-03 at 11:25:20 -0800, Alexander Duyck wrote: > I have loosely based this patch series off of the following patch series > from Zhang Yi: > https://lore.kernel.org/lkml/cover.1536342881.git.yi.z.zhang@xxxxxxxxxxxxxxx > > The original set had attempted to address the fact that DAX pages were > treated like MMIO pages which had resulted in reduced performance. It > attempted to address this by ignoring the PageReserved flag if the page > was either a DEV_DAX or FS_DAX page. > > I am proposing this as an alternative to that set. The main reason for this > is because I believe there are a few issues that were overlooked with that > original set. Specifically KVM seems to have two different uses for the > PageReserved flag. One being whether or not we can pin the memory, the other > being if we should be marking the pages as dirty or accessed. I believe > only the pinning really applies so I have split the uses of > kvm_is_reserved_pfn and updated the function uses to determine support for > page pinning to include a check of the pgmap to see if it supports pinning. kvm is not the only one users of the dax page. A similar user of PageReserved to look at is: drivers/vfio/vfio_iommu_type1.c:is_invalid_reserved_pfn( vfio is also want to know the page is capable for pinning. I throught that you have removed the reserved flag on the dax page in https://patchwork.kernel.org/patch/10707267/ is something I missing here? > > --- > > Alexander Duyck (3): > kvm: Split use cases for kvm_is_reserved_pfn to kvm_is_refcounted_pfn > mm: Add support for exposing if dev_pagemap supports refcount pinning > kvm: Add additional check to determine if a page is refcounted > > > arch/x86/kvm/mmu.c | 6 +++--- > drivers/nvdimm/pfn_devs.c | 2 ++ > include/linux/kvm_host.h | 2 +- > include/linux/memremap.h | 5 ++++- > include/linux/mm.h | 11 +++++++++++ > virt/kvm/kvm_main.c | 34 +++++++++++++++++++++++++--------- > 6 files changed, 46 insertions(+), 14 deletions(-) > > --