From: Kashyap Chamarthy <kchamart@redhat.com>
To: Eric Auger <eric.auger@redhat.com>
Cc: "Cornelia Huck" <cohuck@redhat.com>,
"Daniel P. Berrangé" <berrange@redhat.com>,
eric.auger.pro@gmail.com, qemu-devel@nongnu.org,
qemu-arm@nongnu.org, kvmarm@lists.linux.dev,
peter.maydell@linaro.org, richard.henderson@linaro.org,
alex.bennee@linaro.org, maz@kernel.org, oliver.upton@linux.dev,
sebott@redhat.com, shameerali.kolothum.thodi@huawei.com,
armbru@redhat.com, abologna@redhat.com, jdenemar@redhat.com,
shahuang@redhat.com, mark.rutland@arm.com, philmd@linaro.org,
pbonzini@redhat.com
Subject: Re: [PATCH RFCv2 00/20] kvm/arm: Introduce a customizable aarch64 KVM host model
Date: Thu, 19 Dec 2024 12:35:16 +0100 [thread overview]
Message-ID: <Z2QE9AqZnpGM5sWD@gezellig> (raw)
In-Reply-To: <1fea79e4-7a31-4592-8495-7b18cd82d02b@redhat.com>
On Thu, Dec 12, 2024 at 11:04:30AM +0100, Eric Auger wrote:
Hi Eric,
> On 12/12/24 10:36, Cornelia Huck wrote:
> > On Thu, Dec 12 2024, Daniel P. Berrangé <berrange@redhat.com> wrote:
[...]
> >> Consider you mgmt app wants to set a CPU model that's common across
> >> heterogeneous hardware. They don't neccessarily want/need to be
> >> able to live migrate between heterogeneous CPUs, but for simplicity
> >> of configuration desire to set a single named CPU across all guests,
> >> irrespective of what host hey are launched on. The ARM spec baseline
> >> named models would give you that config simplicity.
> > If we use architecture extensions (i.e. Armv8.x/9.x) as baseline, I'm
> > seeing some drawbacks:
> > - a lot of work before we can address some specific use cases
> > - old models can get new optional features
> > - a specific cpu might have a huge set of optional features on top of
> > the baseline model
> >
> > Using a reference core such as Neoverse-V2 probably makes more sense
> > (easier to get started, less feature diff?) It would still make a good
> > starting point for a simple config.
> >
> Actually from a dev point of view I am not sure it changes much to have
> either ARM spec rev baseline or CPU ref core named model.
>
> One remark is that if you look at
> https://developer.arm.com/documentation/109697/2024_09?lang=en
> you will see there are quite a lot of spec revisions and quite a few of
> them are actually meaningful in the light of currently avaiable and
> relevant HW we want to address. What I would like to avoid is to be
> obliged to look at all of them in a generic manner while we just want to
> address few cpu ref models.
>
> Also starting from the ARM spec rev baseline the end-user may need to
> add more feature opt-ins to be close to a specific cpu model. So I
> foresee extra complexity for the end-user.
(Assuming I'm parsing your last para right; correct me if not.)
Isn't a user wanting to add extra CPU flags (on top of a baseline) a
"normal behaviour" and not "extra complexity"? Besides coming close to
a specific CPU model, there's the additional important use-case of CPU
flags that provide security mitigation.
Consider this:
Say, there's a serious security issue in a released ARM CPU. As part of
the fix, two new CPU flags need to be exposed to the guest OS, call them
"secflag1" and "secflag2". Here, the user is configuring a baseline
model + two extra CPU flags, not to get close to some other CPU model
but to mitigate itself against a serious security flaw.
An example that comes to mind is the infamous "speculative store bypass"
(SSB) vulnerability and how QEMU addressed it[1][2] in x86. I'm sure,
as you know, it also affects ARM[3].
[1] https://lists.gnu.org/archive/html/qemu-devel/2018-05/msg04796.html
— i386: define the 'ssbd' CPUID feature bit (CVE-2018-3639)
[2] https://lists.gnu.org/archive/html/qemu-devel/2018-05/msg04797.html
— i386: Define the Virt SSBD MSR and handling of it (CVE-2018-3639)
[3] https://developer.arm.com/documentation/ddi0601/2024-06/AArch64-Registers/SSBS--Speculative-Store-Bypass-Safe
--
/kashyap
next prev parent reply other threads:[~2024-12-19 11:35 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-06 11:21 [PATCH RFCv2 00/20] kvm/arm: Introduce a customizable aarch64 KVM host model Cornelia Huck
2024-12-06 11:21 ` [PATCH RFCv2 01/20] kvm: kvm_get_writable_id_regs Cornelia Huck
2024-12-12 13:59 ` Richard Henderson
2024-12-12 14:12 ` Eric Auger
2024-12-13 15:43 ` Cornelia Huck
2024-12-06 11:21 ` [PATCH RFCv2 02/20] arm/cpu: Add sysreg definitions in cpu-sysregs.h Cornelia Huck
2024-12-12 14:37 ` Richard Henderson
2024-12-12 17:46 ` Eric Auger
2024-12-12 18:12 ` Richard Henderson
2024-12-13 16:16 ` Cornelia Huck
2024-12-06 11:21 ` [PATCH RFCv2 03/20] arm/cpu: Store aa64isar0 into the idregs arrays Cornelia Huck
2024-12-06 11:21 ` [PATCH RFCv2 04/20] arm/cpu: Store aa64isar1/2 into the idregs array Cornelia Huck
2024-12-06 11:21 ` [PATCH RFCv2 05/20] arm/cpu: Store aa64drf0/1 " Cornelia Huck
2024-12-06 11:21 ` [PATCH RFCv2 06/20] arm/cpu: Store aa64mmfr0-3 " Cornelia Huck
2024-12-06 11:22 ` [PATCH RFCv2 07/20] arm/cpu: Store aa64drf0/1 " Cornelia Huck
2024-12-06 11:22 ` [PATCH RFCv2 08/20] arm/cpu: Store aa64smfr0 " Cornelia Huck
2024-12-06 11:22 ` [PATCH RFCv2 09/20] arm/cpu: Store id_isar0-7 " Cornelia Huck
2024-12-06 11:22 ` [PATCH RFCv2 10/20] arm/cpu: Store id_mfr0/1 " Cornelia Huck
2024-12-06 11:22 ` [PATCH RFCv2 11/20] arm/cpu: Store id_dfr0/1 " Cornelia Huck
2024-12-06 11:22 ` [PATCH RFCv2 12/20] arm/cpu: Store id_mmfr0-5 " Cornelia Huck
2024-12-06 11:22 ` [PATCH RFCv2 13/20] arm/cpu: Add infra to handle generated ID register definitions Cornelia Huck
2024-12-06 11:22 ` [PATCH RFCv2 14/20] arm/cpu: Add sysreg generation scripts Cornelia Huck
2024-12-06 11:22 ` [PATCH RFCv2 15/20] arm/cpu: Add generated files Cornelia Huck
2024-12-06 11:22 ` [PATCH RFCv2 16/20] arm/kvm: Allow reading all the writable ID registers Cornelia Huck
2024-12-06 11:22 ` [PATCH RFCv2 17/20] arm/kvm: write back modified ID regs to KVM Cornelia Huck
2024-12-06 11:22 ` [PATCH RFCv2 18/20] arm/cpu: more customization for the kvm host cpu model Cornelia Huck
2024-12-06 11:22 ` [PATCH RFCv2 19/20] arm-qmp-cmds: introspection for ID register props Cornelia Huck
2024-12-06 11:22 ` [PATCH RFCv2 20/20] arm/cpu-features: document ID reg properties Cornelia Huck
2024-12-12 7:41 ` [PATCH RFCv2 00/20] kvm/arm: Introduce a customizable aarch64 KVM host model Eric Auger
2024-12-12 8:12 ` Eric Auger
2024-12-12 8:42 ` Eric Auger
2024-12-12 13:09 ` Shameerali Kolothum Thodi
2024-12-12 13:29 ` Eric Auger
2024-12-12 9:10 ` Daniel P. Berrangé
2024-12-12 9:36 ` Cornelia Huck
2024-12-12 10:04 ` Eric Auger
2024-12-12 14:46 ` Cornelia Huck
2024-12-19 11:35 ` Kashyap Chamarthy [this message]
2024-12-19 12:26 ` Marc Zyngier
2024-12-19 12:38 ` Daniel P. Berrangé
2024-12-19 13:01 ` Marc Zyngier
2024-12-19 15:07 ` Kashyap Chamarthy
2024-12-19 15:41 ` Marc Zyngier
2024-12-19 17:51 ` Daniel P. Berrangé
2024-12-20 16:04 ` Cornelia Huck
2024-12-21 13:02 ` Marc Zyngier
2024-12-20 11:52 ` Kashyap Chamarthy
2024-12-20 16:17 ` Cornelia Huck
2024-12-21 14:45 ` Marc Zyngier
2024-12-16 16:42 ` Cornelia Huck
2024-12-16 16:58 ` Cornelia Huck
2024-12-12 13:13 ` Sebastian Ott
2024-12-12 14:46 ` Cornelia Huck
2024-12-17 15:21 ` Marc Zyngier
2024-12-17 18:05 ` Eric Auger
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=Z2QE9AqZnpGM5sWD@gezellig \
--to=kchamart@redhat.com \
--cc=abologna@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=cohuck@redhat.com \
--cc=eric.auger.pro@gmail.com \
--cc=eric.auger@redhat.com \
--cc=jdenemar@redhat.com \
--cc=kvmarm@lists.linux.dev \
--cc=mark.rutland@arm.com \
--cc=maz@kernel.org \
--cc=oliver.upton@linux.dev \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=sebott@redhat.com \
--cc=shahuang@redhat.com \
--cc=shameerali.kolothum.thodi@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox