Re: [PATCH v11 05/12] KVM: arm64: Bump up the default KVM sanitised debug version to v8p8

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 04 Oct 2023 18:08:33 +0100,
Oliver Upton <oliver.upton@xxxxxxxxx> wrote:
> 
> On Wed, Oct 04, 2023 at 09:57:44AM +0100, Marc Zyngier wrote:
> > On Wed, 04 Oct 2023 00:04:01 +0100,
> > Oliver Upton <oliver.upton@xxxxxxxxx> wrote:
> > > 
> > > Since ID_AA64DFR0_EL1 and ID_DFR0_EL1 are now writable from userspace,
> > > it is safe to bump up the default KVM sanitised debug version to v8p8.
> > > 
> > > Signed-off-by: Jing Zhang <jingzhangos@xxxxxxxxxx>
> > > Signed-off-by: Oliver Upton <oliver.upton@xxxxxxxxx>
> > 
> > The SoB sequence looks odd. Either you're the author, and Jing's SoB
> > shouldn't be there without a Co-DB tag, or you've lost Jing's
> > attribution (which sometimes happens when rebasing and squashing
> > patches together).
> 
> This is an artifact of me applying Jing's version of the series and
> hacking on top of it.
> 
> > > ---
> > >  arch/arm64/kvm/sys_regs.c | 11 +++++++----
> > >  1 file changed, 7 insertions(+), 4 deletions(-)
> > > 
> > > diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
> > > index 8fbfe61fe7bc..b342c96e08f4 100644
> > > --- a/arch/arm64/kvm/sys_regs.c
> > > +++ b/arch/arm64/kvm/sys_regs.c
> > > @@ -1496,8 +1496,7 @@ static u64 read_sanitised_id_aa64dfr0_el1(struct kvm_vcpu *vcpu,
> > >  {
> > >  	u64 val = read_sanitised_ftr_reg(SYS_ID_AA64DFR0_EL1);
> > >  
> > > -	/* Limit debug to ARMv8.0 */
> > > -	val = ID_REG_LIMIT_FIELD_ENUM(val, ID_AA64DFR0_EL1, DebugVer, IMP);
> > > +	val = ID_REG_LIMIT_FIELD_ENUM(val, ID_AA64DFR0_EL1, DebugVer, V8P8);
> > >  
> > >  	/*
> > >  	 * Only initialize the PMU version if the vCPU was configured with one.
> > > @@ -1557,6 +1556,8 @@ static u64 read_sanitised_id_dfr0_el1(struct kvm_vcpu *vcpu,
> > >  	if (kvm_vcpu_has_pmu(vcpu))
> > >  		val |= SYS_FIELD_PREP(ID_DFR0_EL1, PerfMon, perfmon);
> > >  
> > > +	val = ID_REG_LIMIT_FIELD_ENUM(val, ID_DFR0_EL1, CopDbg, Debugv8p8);
> > > +
> > 
> > For consistency, you should also repaint DBGDIDR, which has a
> > hardcoded '6' (ARMv8) as the supported debug version.
> 
> Ah, good point. I'll extract the value from the ID register much like we
> do for other fields in DBGDIDR:
> 
> commit b92565ca433f611ea0901a6098d72f91be84cdb0
> Author: Oliver Upton <oliver.upton@xxxxxxxxx>
> Date:   Wed Oct 4 17:03:17 2023 +0000
> 
>     KVM: arm64: Advertise selected DebugVer in DBGDIDR.Version
>     
>     Much like we do for other fields, extract the Debug architecture version
>     from the ID register to populate the corresponding field in DBGDIDR.
>     Rewrite the existing sysreg field extractors to use SYS_FIELD_GET() for
>     consistency.
>     
>     Suggested-by: Marc Zyngier <maz@xxxxxxxxxx>
>     Signed-off-by: Oliver Upton <oliver.upton@xxxxxxxxx>

Reviewed-by: Marc Zyngier <maz@xxxxxxxxxx>

	M.

-- 
Without deviation from the norm, progress is not possible.



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux