From: Marc Zyngier <maz@kernel.org>
To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>
Cc: Cornelia Huck <cohuck@redhat.com>,
"kvmarm@lists.linux.dev" <kvmarm@lists.linux.dev>,
"oliver.upton@linux.dev" <oliver.upton@linux.dev>,
"catalin.marinas@arm.com" <catalin.marinas@arm.com>,
"will@kernel.org" <will@kernel.org>,
"mark.rutland@arm.com" <mark.rutland@arm.com>,
"eric.auger@redhat.com" <eric.auger@redhat.com>,
yuzenghui <yuzenghui@huawei.com>,
"Wangzhou (B)" <wangzhou1@hisilicon.com>,
jiangkunkun <jiangkunkun@huawei.com>,
Jonathan Cameron <jonathan.cameron@huawei.com>,
Anthony Jebson <anthony.jebson@huawei.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
Linuxarm <linuxarm@huawei.com>
Subject: Re: [PATCH v3 3/3] arm64: paravirt: Enable errata based on implementation CPUs
Date: Mon, 09 Dec 2024 15:45:43 +0000 [thread overview]
Message-ID: <861pyguafs.wl-maz@kernel.org> (raw)
In-Reply-To: <d92ea2dcc3b04ebb8bc5ba71bff448bc@huawei.com>
On Mon, 09 Dec 2024 13:49:07 +0000,
Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com> wrote:
>
>
>
> > -----Original Message-----
> > From: Cornelia Huck <cohuck@redhat.com>
> > Sent: Monday, December 9, 2024 12:49 PM
> > To: Shameerali Kolothum Thodi
> > <shameerali.kolothum.thodi@huawei.com>; kvmarm@lists.linux.dev;
> > maz@kernel.org; oliver.upton@linux.dev
> > Cc: catalin.marinas@arm.com; will@kernel.org; mark.rutland@arm.com;
> > eric.auger@redhat.com; yuzenghui <yuzenghui@huawei.com>; Wangzhou
> > (B) <wangzhou1@hisilicon.com>; jiangkunkun <jiangkunkun@huawei.com>;
> > Jonathan Cameron <jonathan.cameron@huawei.com>; Anthony Jebson
> > <anthony.jebson@huawei.com>; linux-arm-kernel@lists.infradead.org;
> > Linuxarm <linuxarm@huawei.com>
> > Subject: Re: [PATCH v3 3/3] arm64: paravirt: Enable errata based on
> > implementation CPUs
> >
> > On Mon, Dec 09 2024, Shameer Kolothum
> > <shameerali.kolothum.thodi@huawei.com> wrote:
> >
> > > Retrieve any migration target implementation CPUs using the hypercall
> > > and enable associated errata.
> > >
> > > Signed-off-by: Shameer Kolothum
> > <shameerali.kolothum.thodi@huawei.com>
> > > ---
> > > Note:
> > >
> > > One thing I am not sure here is how to handle the hypercall error.
> > > Do we need to fail the Guest boot or just carry on without any
> > > target implementation CPU support? At the moment it just carries on.
> > >
> > > Thanks,
> > > Shameer
> > > ---
> > > arch/arm64/include/asm/cputype.h | 25 +++++++++++++++++++++++--
> > > arch/arm64/include/asm/paravirt.h | 3 +++
> > > arch/arm64/kernel/cpu_errata.c | 20 +++++++++++++++++---
> > > arch/arm64/kernel/cpufeature.c | 2 ++
> > > arch/arm64/kernel/image-vars.h | 2 ++
> > > arch/arm64/kernel/paravirt.c | 31
> > +++++++++++++++++++++++++++++++
> > > 6 files changed, 78 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/arch/arm64/include/asm/cputype.h
> > b/arch/arm64/include/asm/cputype.h
> > > index dcf0e1ce892d..9e466f3ae9c6 100644
> > > --- a/arch/arm64/include/asm/cputype.h
> > > +++ b/arch/arm64/include/asm/cputype.h
> > > @@ -265,6 +265,16 @@ struct midr_range {
> > > #define MIDR_REV(m, v, r) MIDR_RANGE(m, v, r, v, r)
> > > #define MIDR_ALL_VERSIONS(m) MIDR_RANGE(m, 0, 0, 0xf, 0xf)
> > >
> > > +#define MAX_TARGET_IMPL_CPUS 64
> > > +
> > > +struct target_impl_cpu {
> > > + u32 midr;
> > > + u32 revidr;
> > > +};
> >
> > Doesn't this need to be u64 for both (even if the upper bits for
> > MIDR_EL1 are reserved?)
>
> Yes, both are u64 as per specification with upper bits reserved. And the
> external hypercall interface has uint64.
>
> But in kernel, AFAICS, at present all the _midr_range_() functions expect u32.
> So not sure we gain much now by changing to u64.
For MIDR_EL1, I don't think that's a problem as long as we make sure
this is a kernel-private representation, and that it doesn't leak to
userspace or the PV interface.
For REVIDR_EL1, it *is* a problem, as the whole register is IMPDEF,
and an implementation could legitimately use the top bits.
So at this stage, it probably makes sense to keep both as 64bit
values.
Thanks,
M.
--
Without deviation from the norm, progress is not possible.
next prev parent reply other threads:[~2024-12-09 15:45 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-09 11:53 [PATCH v3 0/3] KVM: arm64: Errata management for VM Live migration Shameer Kolothum
2024-12-09 11:53 ` [PATCH v3 1/3] arm64: Modify _midr_range() functions to read MIDR/REVIDR internally Shameer Kolothum
2024-12-13 16:31 ` Sebastian Ott
2024-12-09 11:53 ` [PATCH v3 2/3] KVM: arm64: Introduce hypercall support for retrieving target implementations Shameer Kolothum
2024-12-13 16:31 ` Sebastian Ott
2024-12-09 11:53 ` [PATCH v3 3/3] arm64: paravirt: Enable errata based on implementation CPUs Shameer Kolothum
2024-12-09 12:49 ` Cornelia Huck
2024-12-09 13:49 ` Shameerali Kolothum Thodi
2024-12-09 15:45 ` Marc Zyngier [this message]
2024-12-13 16:45 ` Sebastian Ott
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=861pyguafs.wl-maz@kernel.org \
--to=maz@kernel.org \
--cc=anthony.jebson@huawei.com \
--cc=catalin.marinas@arm.com \
--cc=cohuck@redhat.com \
--cc=eric.auger@redhat.com \
--cc=jiangkunkun@huawei.com \
--cc=jonathan.cameron@huawei.com \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linuxarm@huawei.com \
--cc=mark.rutland@arm.com \
--cc=oliver.upton@linux.dev \
--cc=shameerali.kolothum.thodi@huawei.com \
--cc=wangzhou1@hisilicon.com \
--cc=will@kernel.org \
--cc=yuzenghui@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.