Re: [RFC PATCH V3 2/4] KVM: X86: Introduce role.glevel for level expanded pagetable

From: Paolo Bonzini
Date: Wed Apr 13 2022 - 04:39:32 EST


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).

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?

* If we go with yours, I would call the field "passthrough_levels".

Paolo