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

From: Dan Williams
Date: Tue Jan 07 2020 - 20:39:41 EST


On Tue, Jan 7, 2020 at 5:20 PM Sean Christopherson
<sean.j.christopherson@xxxxxxxxx> wrote:
>
> On Tue, Jan 07, 2020 at 02:19:06PM -0500, Barret Rhoden wrote:
> > On 1/7/20 2:05 PM, Sean Christopherson wrote:
> > >Hopefully you haven't put too much effort into the rework, because I want
> > >to commandeer the proposed changes and use them as the basis for a more
> > >aggressive overhaul of KVM's hugepage handling. Ironically, there's a bug
> > >in KVM's THP handling that I _think_ can be avoided by using the DAX
> > >approach of walking the host PTEs.
> > >
> > >I'm in the process of testing, hopefully I'll get a series sent out later
> > >today. If not, I should at least be able to provide an update.
> >
> > Nice timing. I was just about to get back to this, so I haven't put any
> > time in yet. =)
> >
> > Please CC me, and I'll try your patches out on my end.
>
> Will do. Barring last minute hiccups, the code is ready, just need to
> finish off a few changelogs. Should get it out early tomorrow.
>
> One question that may help avoid some churn: are huge DAX pages not
> tracked as compound pages? The comment from your/this patch is pretty
> unequivocal, but I wanted to double check that they will really return
> false for PageCompound(), as opposed to only returning false for
> PageTransCompoundMap().

PageCompound() returns false.

>
> /*
> * DAX pages do not use compound pages. ...
> */
>

None of the head / tail page infrastructure is set up for dax pages.
They are just independent 'struct page' objects that are
opportunistically mapped by different pte sizes in the dax core.