x86/viridian: Clarify some viridian logging strings

It's sadically misleading to show an error without letters and expect
the dmesg reader to understand it's in hex. The patch adds a 0x prefix
to all hex numbers that don't already have it.

On the one instance in which a boolean is printed as an integer, print
it as a decimal integer instead so it's 0/1 in the common case and not
misleading if it's ever not just that due to a bug.

While at it, rename VIRIDIAN CRASH to VIRIDIAN GUEST_CRASH. Every member
of a support team that looks at the message systematically believes
"viridian" crashed, which is absolutely not what goes on. It's the guest
asking the hypervisor for a sudden shutdown because it crashed, and
stating why.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Reviewed-by: Paul Durrant <paul@xen.org>
master commit: ba709d514a
master date: 2024-07-30 11:51:23 +0200
This commit is contained in:
Alejandro Vallejo authored and Jan Beulich committed 2024-11-25 12:11:15 +01:00
1 parent b6aa39f210
commit 916274cd6d
2 files changed
+6 -5

No files matched your search

+1 -1
View File
@@ -172,7 +172,7 @@ int viridian_synic_wrmsr(struct vcpu *v, uint32_t idx, uint64_t val)
vector = new.vector;
vv->vector_to_sintx[vector] = sintx;
printk(XENLOG_G_INFO "%pv: VIRIDIAN SINT%u: vector: %x\n", v, sintx,
printk(XENLOG_G_INFO "%pv: VIRIDIAN SINT%u: vector: %#x\n", v, sintx,
vector);
*vs = new;
+5 -4
View File
@@ -253,7 +253,7 @@ static void dump_guest_os_id(const struct domain *d)
goi = &d->arch.hvm.viridian->guest_os_id;
printk(XENLOG_G_INFO
"d%d: VIRIDIAN GUEST_OS_ID: vendor: %x os: %x major: %x minor: %x sp: %x build: %x\n",
"d%d: VIRIDIAN GUEST_OS_ID: vendor: %#x os: %#x major: %#x minor: %#x sp: %#x build: %#x\n",
d->domain_id, goi->vendor, goi->os, goi->major, goi->minor,
goi->service_pack, goi->build_number);
}
@@ -264,7 +264,7 @@ static void dump_hypercall(const struct domain *d)
hg = &d->arch.hvm.viridian->hypercall_gpa;
printk(XENLOG_G_INFO "d%d: VIRIDIAN HYPERCALL: enabled: %x pfn: %lx\n",
printk(XENLOG_G_INFO "d%d: VIRIDIAN HYPERCALL: enabled: %u pfn: %#lx\n",
d->domain_id,
hg->enabled, (unsigned long)hg->pfn);
}
@@ -372,7 +372,8 @@ int guest_wrmsr_viridian(struct vcpu *v, uint32_t idx, uint64_t val)
d->shutdown_code = SHUTDOWN_crash;
spin_unlock(&d->shutdown_lock);
gprintk(XENLOG_WARNING, "VIRIDIAN CRASH: %lx %lx %lx %lx %lx\n",
gprintk(XENLOG_WARNING,
"VIRIDIAN GUEST_CRASH: %#lx %#lx %#lx %#lx %#lx\n",
vv->crash_param[0], vv->crash_param[1], vv->crash_param[2],
vv->crash_param[3], vv->crash_param[4]);
break;
@@ -1056,7 +1057,7 @@ void viridian_dump_guest_page(const struct vcpu *v, const char *name,
if ( !vp->msr.enabled )
return;
printk(XENLOG_G_INFO "%pv: VIRIDIAN %s: pfn: %lx\n",
printk(XENLOG_G_INFO "%pv: VIRIDIAN %s: pfn: %#lx\n",
v, name, (unsigned long)vp->msr.pfn);
}
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.