On 07/10/2024 3:03 pm, Roger Pau Monne wrote:
> Some error paths in the MSR state loading logic don't contain error messages,
> which makes debugging them quite hard without adding extra patches to print 
> the
> information.
>
> Add two new log messages to the MSR state load path that print information
> about the entry that failed to load.
>
> No functional change intended.
>
> Signed-off-by: Roger Pau Monné <roger....@citrix.com>
> ---
>  xen/arch/x86/hvm/hvm.c | 9 +++++++++

Can we fix the PV side at the same time too?

>  1 file changed, 9 insertions(+)
>
> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> index 69a25571db8d..c71087f636c4 100644
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -1598,10 +1598,19 @@ static int cf_check hvm_load_cpu_msrs(struct domain 
> *d, hvm_domain_context_t *h)
>              rc = guest_wrmsr(v, ctxt->msr[i].index, ctxt->msr[i].val);
>  
>              if ( rc != X86EMUL_OKAY )
> +            {
> +                printk(XENLOG_G_ERR
> +                       "HVM%d.%d load MSR %#x with value %#lx failed: %d\n",
> +                       d->domain_id, vcpuid, ctxt->msr[i].index,
> +                       ctxt->msr[i].val, rc);

Just %pv please.  I don't want to propagate the (occasionally ambiguous)
HVM%d form.

Also, rc may not be great to render.  It's an X86EMUL_*, not an errno.

And saying that, we have a discontinuity between PV and HVM.  PV
translates !OKAY into -EINVAL, whereas HVM translates into -ENXIO.  /sigh

~Andrew

Reply via email to