From: Cornelia Huck <cohuck@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>,
Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-arm@nongnu.org, qemu-devel@nongnu.org, kvm@vger.kernel.org,
"Eric Auger" <eauger@redhat.com>,
"Juan Quintela" <quintela@redhat.com>,
"Gavin Shan" <gshan@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Andrea Bolognani" <abologna@redhat.com>
Subject: Re: [PATCH v7 0/1] arm: enable MTE for QEMU + kvm
Date: Mon, 22 May 2023 14:04:28 +0200 [thread overview]
Message-ID: <87v8gkzi5v.fsf@redhat.com> (raw)
In-Reply-To: <20230428095533.21747-1-cohuck@redhat.com>
On Fri, Apr 28 2023, Cornelia Huck <cohuck@redhat.com> wrote:
> Another open problem is mte vs mte3: tcg emulates mte3, kvm gives the guest
> whatever the host supports. Without migration support, this is not too much
> of a problem yet, but for compatibility handling, we'll need a way to keep
> QEMU from handing out mte3 for guests that might be migrated to a mte3-less
> host. We could tack this unto the mte property (specifying the version or
> max supported), or we could handle this via cpu properties if we go with
> handling compatibility via cpu models (sorting this out for kvm is probably
> going to be interesting in general.) In any case, I think we'll need a way
> to inform kvm of it.
Before I start to figure out the initialization breakage, I think it
might be worth pointing to this open issue again. As Andrea mentioned in
https://listman.redhat.com/archives/libvir-list/2023-May/239926.html,
libvirt wants to provide a stable guest ABI, not only in the context of
migration compatibility (which we can handwave away via the migration
blocker.)
The part I'm mostly missing right now is how to tell KVM to not present
mte3 to a guest while running on a mte3 capable host (i.e. the KVM
interface for that; it's more a case of "we don't have it right now",
though.) I'd expect it to be on the cpu level, rather than on the vm
level, but it's not there yet; we also probably want something that's
not fighting whatever tcg (or other accels) end up doing.
I see several options here:
- Continue to ignore mte3 and its implications for now. The big risk is
that someone might end up implementing support for MTE in libvirt again,
with the same stable guest ABI issues as for this version.
- Add a "version" qualifier to the mte machine prop (probably with
semantics similar to the gic stuff), with the default working with tcg
as it does right now (i.e. defaulting to mte3). KVM would only support
"no mte" or "same as host" (with no stable guest ABI guarantees) for
now. I'm not sure how hairy this might get if we end up with a per-cpu
configuration of mte (and other features) with kvm.
- Add cpu properties for mte and mte3. I think we've been there before
:) It would likely match any KVM infrastructure well, but we gain
interactions with the machine property. Also, there's a lot in the
whole CPU model area that need proper figuring out first... if we go
that route, we won't be able to add MTE support with KVM anytime soon,
I fear.
The second option might be the most promising, except for potential
future headaches; but a lot depends on where we want to be going with
cpu models for KVM in general.
next prev parent reply other threads:[~2023-05-22 12:04 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-28 9:55 [PATCH v7 0/1] arm: enable MTE for QEMU + kvm Cornelia Huck
2023-04-28 9:55 ` [PATCH v7 1/1] arm/kvm: add support for MTE Cornelia Huck
2023-04-28 17:50 ` Juan Quintela
2023-05-01 9:37 ` Richard Henderson
2023-05-02 9:03 ` Cornelia Huck
2023-05-02 10:17 ` Juan Quintela
2023-05-02 10:58 ` Richard Henderson
2023-05-04 15:01 ` Cornelia Huck
2023-05-05 15:14 ` Richard Henderson
2023-05-16 13:48 ` Peter Maydell
2023-05-16 20:31 ` Richard Henderson
2023-05-18 10:09 ` [PATCH v7 0/1] arm: enable MTE for QEMU + kvm Peter Maydell
2023-05-22 12:04 ` Cornelia Huck [this message]
2023-05-29 10:15 ` Andrea Bolognani
2023-05-29 10:27 ` Peter Maydell
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=87v8gkzi5v.fsf@redhat.com \
--to=cohuck@redhat.com \
--cc=abologna@redhat.com \
--cc=eauger@redhat.com \
--cc=gshan@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=richard.henderson@linaro.org \
/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;
as well as URLs for NNTP newsgroup(s).