Re: [PATCH 2/2] kvm: Use huge pages for DAX-backed files

From: Pankaj Gupta
Date: Wed Nov 14 2018 - 04:09:50 EST



> > As this patch is dependent on PageReserved patch(which is in progress),
> > just
> > wondering if we are able to test the code path for hugepage with DAX.
>
> For testing, I used the following patch. It's not 100%, since it
> intercepts at kvm_is_reserved_pfn(), and not PageReserved() directly.
> The only difference is with kvm_set_pfn_dirty() I think.
>

Yes, this should be ok.

Thanks,
Pankaj

> I also have a nasty module that would dump the EPT's and the host page
> table's mappings so I could confirm that the huge pages are being mapped
> correctly.
>
> -----------------------
> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
> index 2679e476b6c3..1b394a0752a0 100644
> --- a/virt/kvm/kvm_main.c
> +++ b/virt/kvm/kvm_main.c
> @@ -148,6 +148,10 @@ __weak int kvm_arch_mmu_notifier_invalidate_range(struct
> kvm *kvm,
>
> bool kvm_is_reserved_pfn(kvm_pfn_t pfn)
> {
> + // XXX hack
> + if (is_zone_device_page(pfn_to_page(pfn)))
> + return false;
> +
> if (pfn_valid(pfn))
> return PageReserved(pfn_to_page(pfn));
>
> -----------------------
>
> Thanks,
>
> Barret
>
>