On Fri, 2024-05-24 at 01:20 -0700, Isaku Yamahata wrote: > > > > I don't see why these (zap_private_spte and remove_private_spte) can't be a > > single op. Was it to prepare for huge pages support or something? In the > > base > > series they are both only called once. > > That is for large page support. The step to merge or split large page is > 1. zap_private_spte() > 2. tlb shoot down > 3. merge/split_private_spte() I think we can simplify it for now. Otherwise we can't justify it without getting into the huge page support. Looking at how to create some more explainable code here, I'm also wondering about the tdx_track() call in tdx_sept_remove_private_spte(). I didn't realize it will send IPIs to each vcpu for *each* page getting zapped. Another one in the "to optimize later" bucket I guess. And I guess it won't happen very often.