Re: [PATCH 2/2] KVM: arm/arm64: Print the EC hex value with its exact width

From: Marc Zyngier
Date: Wed Sep 11 2019 - 11:35:37 EST


On Wed, 11 Sep 2019 10:19:05 +0100,
Zenghui Yu <yuzenghui@xxxxxxxxxx> wrote:
>
> Hi Marc,
>
> On 2019/9/11 16:31, Marc Zyngier wrote:
> > On Wed, 11 Sep 2019 03:33:36 +0100,
> > Zenghui Yu <yuzenghui@xxxxxxxxxx> wrote:
> >>
> >> EC is the bits [31:26] of ESR_ELx on arm64 (HSR on arm). Print the
> >> hex value with its exact width (8).
> >>
> >> Signed-off-by: Zenghui Yu <yuzenghui@xxxxxxxxxx>
> >> ---
> >> virt/kvm/arm/trace.h | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/virt/kvm/arm/trace.h b/virt/kvm/arm/trace.h
> >> index 204d210d01c2..022b0a060034 100644
> >> --- a/virt/kvm/arm/trace.h
> >> +++ b/virt/kvm/arm/trace.h
> >> @@ -42,7 +42,7 @@ TRACE_EVENT(kvm_exit,
> >> __entry->vcpu_pc = vcpu_pc;
> >> ),
> >> - TP_printk("%s: HSR_EC: 0x%04x (%s), PC: 0x%08lx",
> >> + TP_printk("%s: HSR_EC: 0x%02x (%s), PC: 0x%08lx",
> >> __print_symbolic(__entry->ret, kvm_arm_exception_type),
> >> __entry->esr_ec,
> >> __print_symbolic(__entry->esr_ec, kvm_arm_exception_class),
> >
> > Although you're right that 8 bits ought to be enough, this is a change
> > to the output of the tracepoint, which userspace could (does?) parse.
>
> Well-written userspace tools should only parse the low 8 bits (if they
> do parse). But even if the high bits are parsed, they're always 0.
> So I don't think this change will have a bad impact on userspace.

The problem is that we don't only cater for well written SW. We also
support the broken stuff, unfortunately.

Thanks,

M.

--
Jazz is not dead, it just smells funny.