On Thu, Mar 21, 2024 at 12:18:47AM +0000, "Edgecombe, Rick P" <rick.p.edgecombe@xxxxxxxxx> wrote: > On Mon, 2024-02-26 at 00:25 -0800, isaku.yamahata@xxxxxxxxx wrote: > > From: Isaku Yamahata <isaku.yamahata@xxxxxxxxx> > > > > Because TDX support introduces private mapping, add a new member in > > union > > kvm_mmu_page_role with access functions to check the member. > > I guess we should have a role bit for private like in this patch, but > just barely. AFAICT we have a gfn and struct kvm in every place where > it is checked (assuming my proposal in patch 56 holds water). So we > could have > bool is_private = !(gfn & kvm_gfn_shared_mask(kvm)); Yes, we can use such combination. or !!sp->private_spt or something. Originally we didn't use role.is_private and passed around private parameter. > But there are extra bits available in the role, so we can skip the > extra step. Can you think of any more reasons? I want to try to write a > log for this one. It's very short. There are several places to compare role and shared<->private. For example, kvm_tdp_mmu_alloc_root(). role.is_private simplifies such comparison. -- Isaku Yamahata <isaku.yamahata@xxxxxxxxx>