On Thu, Feb 18, 2021, Paolo Bonzini wrote: > On 13/02/21 01:50, Sean Christopherson wrote: > > > > pfn = spte_to_pfn(iter.old_spte); > > if (kvm_is_reserved_pfn(pfn) || > > - (!PageTransCompoundMap(pfn_to_page(pfn)) && > > - !kvm_is_zone_device_pfn(pfn))) > > + iter.level >= kvm_mmu_max_mapping_level(kvm, slot, iter.gfn, > > + pfn, PG_LEVEL_NUM)) > > continue; > > > This changes the test to PageCompound. Is it worth moving the change to > patch 1?
Yes? I originally did that in a separate patch, then changed my mind. If PageTransCompoundMap() also detects HugeTLB pages, then it is the "better" option as it checks that the page is actually mapped huge. I dropped the change because PageTransCompound() is just a wrapper around PageCompound(), and so I assumed PageTransCompoundMap() would detect HugeTLB pages, too. I'm not so sure about that after rereading the code, yet again.