On 2018-12-03 at 11:25:20 -0800, Alexander Duyck wrote:
I have loosely based this patch series off of the following patch
from Zhang Yi:
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.
not the only one users of the dax page.
A similar user of PageReserved to look at is:
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
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(-)