Messages in this thread | | | Date | Wed, 13 Apr 2022 14:42:30 +0000 | From | Sean Christopherson <> | Subject | Re: [RFC PATCH V3 2/4] KVM: X86: Introduce role.glevel for level expanded pagetable |
| |
On Wed, Apr 13, 2022, Paolo Bonzini wrote: > On 4/12/22 23:31, Sean Christopherson wrote: > > > + unsigned glevel:4; > > We don't need 4 bits for this. Crossing our fingers that we never had to shadow > > a 2-level guest with a 6-level host, we can do: > > > > unsigned passthrough_delta:2; > > > > Where the field is ignored if direct=1, '0' for non-passthrough, and 1-3 to handle > > shadow_root_level - guest_root_level. Basically the same idea as Paolo's smushing > > of direct+passthrough into mapping_level, just dressed up differently. > > Basically, your passthrough_delta is level - glevel in Jiangshan's patches. > You'll need 3 bits anyway when we remove direct later (that would be > passthrough_delta == level).
Are we planning on removing direct?
> Regarding the naming: > > * If we keep Jiangshan's logic, I don't like the glevel name very much, any > of mapping_level, target_level or direct_level would be clearer?
I don't love any of these names, especially glevel, because the field doesn't strictly track the guest/mapping/target/direct level. That could obviously be remedied by making it valid at all times, but then the role would truly need 3 bits (on top of direct) to track 5-level guest paging.
> * If we go with yours, I would call the field "passthrough_levels".
Hmm, it's not a raw level though.
| |