On 11.03.2024 13:40, Vaishali Thakkar wrote:
> While sev and sev_es bits are not yet enabled in xen,
> including their status in the VMCB dump could be
> informational.Therefore, print it via svmdebug.
Yet there are more bits there. I'm okay with leaving off printing of
them here, but it wants clarifying why some are printed and some are
not.
> --- a/xen/arch/x86/hvm/svm/svmdebug.c
> +++ b/xen/arch/x86/hvm/svm/svmdebug.c
> @@ -51,8 +51,11 @@ void svm_vmcb_dump(const char *from, const struct
> vmcb_struct *vmcb)
> vmcb->exitcode, vmcb->exit_int_info.raw);
> printk("exitinfo1 = %#"PRIx64" exitinfo2 = %#"PRIx64"\n",
> vmcb->exitinfo1, vmcb->exitinfo2);
> - printk("np_ctrl = %#"PRIx64" asid = %#x\n",
> - vmcb_get_np_ctrl(vmcb), vmcb_get_asid(vmcb));
> + printk("asid = %#x np_ctrl = %#"PRIx64" - %s%s%s\n",
> + vmcb_get_asid(vmcb), vmcb_get_np_ctrl(vmcb),
> + vmcb_get_np(vmcb) ? "NP" : "",
> + vmcb_get_sev(vmcb) ? "SEV" : "",
> + vmcb_get_sev_es(vmcb) ? "SEV_ES" : "");
Each of these three string literals needs a leading blank as separator.
In exchange the one in the format string immediately after '-' then
will want dropping. That'll still lead to slightly odd output if none
of the bits is set; imo it would be slightly less odd if you used
printk("asid = %#x np_ctrl = %#"PRIx64":%s%s%s\n",
instead.
Jan