KVM: SVM: Define sev_features and VMPL field in the VMSA
The hypervisor uses the sev_features field (offset 3B0h) in the Save State Area to control the SEV-SNP guest features such as SNPActive, vTOM, ReflectVC etc. An SEV-SNP guest can read the sev_features field through the SEV_STATUS MSR. While at it, update dump_vmcb() to log the VMPL level. See APM2 Table 15-34 and B-4 for more details. Signed-off-by: Brijesh Singh <brijesh.singh@amd.com> Signed-off-by: Borislav Petkov <bp@suse.de> Reviewed-by: Venu Busireddy <venu.busireddy@oracle.com> Link: https://lore.kernel.org/r/20220307213356.2797205-2-brijesh.singh@amd.com
This commit is contained in:
parent
3123109284
commit
046f773be1
|
@ -282,7 +282,8 @@ struct vmcb_save_area {
|
|||
struct vmcb_seg ldtr;
|
||||
struct vmcb_seg idtr;
|
||||
struct vmcb_seg tr;
|
||||
u8 reserved_1[43];
|
||||
u8 reserved_1[42];
|
||||
u8 vmpl;
|
||||
u8 cpl;
|
||||
u8 reserved_2[4];
|
||||
u64 efer;
|
||||
|
@ -347,7 +348,8 @@ struct vmcb_save_area {
|
|||
u64 sw_exit_info_1;
|
||||
u64 sw_exit_info_2;
|
||||
u64 sw_scratch;
|
||||
u8 reserved_11[56];
|
||||
u64 sev_features;
|
||||
u8 reserved_11[48];
|
||||
u64 xcr0;
|
||||
u8 valid_bitmap[16];
|
||||
u64 x87_state_gpa;
|
||||
|
|
|
@ -3117,8 +3117,8 @@ static void dump_vmcb(struct kvm_vcpu *vcpu)
|
|||
"tr:",
|
||||
save01->tr.selector, save01->tr.attrib,
|
||||
save01->tr.limit, save01->tr.base);
|
||||
pr_err("cpl: %d efer: %016llx\n",
|
||||
save->cpl, save->efer);
|
||||
pr_err("vmpl: %d cpl: %d efer: %016llx\n",
|
||||
save->vmpl, save->cpl, save->efer);
|
||||
pr_err("%-15s %016llx %-13s %016llx\n",
|
||||
"cr0:", save->cr0, "cr2:", save->cr2);
|
||||
pr_err("%-15s %016llx %-13s %016llx\n",
|
||||
|
|
Loading…
Reference in New Issue