On Fri, Feb 15, 2019 at 11:23 PM Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > > On 15/02/19 16:05, Tianyu Lan wrote: > > Yes, you are right. Thanks to point out and will fix. The last_level > > flag is to avoid adding middle page node(e.g, PGD, PMD) > > into flush list. The address range will be duplicated if adding both > > leaf, node and middle node into flush list. > > Hmm, that's not easy to track. One kvm_mmu_page could include both leaf > and non-leaf page (for example a huge page for 0 to 2 MB and a page > table for 2 MB to 4 MB). > > Is this really needed? First, your benchmarks so far have been done > with sp->last_level always set to true. Second, you would only > encounter this optimization in kvm_mmu_commit_zap_page when zapping a 1 > GB region (which then would be invalidated twice, at both the PMD and > PGD level) or bigger. > > Paolo Hi Paolo: Sorry for later response and I tried to figure out a bug lead by defining wrong max flush count. I just sent out V3. I still put the last_level flag patch in the end of patchset. Detail please see the change log. Just like you said this was an optimization and wasn't 100% required. If you still have some concerns, you can ignore it and other patches in this patchset should be good. Thanks. -- Best regards Tianyu Lan