From: David Hildenbrand <david@redhat.com>
To: Jiri Denemark <jdenemar@redhat.com>,
qemu-devel@nongnu.org, David Hildenbrand <dhildenb@redhat.com>,
David Gibson <dgibson@redhat.com>
Subject: Re: Default CPU models on s390x and ppc64
Date: Thu, 17 Oct 2019 17:18:57 +0200 [thread overview]
Message-ID: <82ea23ea-be23-c374-3f10-65d8f6e79432@redhat.com> (raw)
In-Reply-To: <20191017151606.GA1880840@orkuz.int.mamuti.net>
On 17.10.19 17:16, Jiri Denemark wrote:
> Hi David and David,
>
> I'm working on libvirt's support [1] for query-machines'
> default-cpu-type, which is supposed to return the type of the default
> CPU model that QEMU uses for each machine type. Rather than hard coding
> the default in libvirt (which we currently do on x86), we ask QEMU for
> the default CPU model and use it unless a user asks for a specific CPU
> model explicitly.
>
> We use query-cpu-definitions for translating the default CPU type to the
> actual CPU model we need to pass to -cpu by looking up the CPU model
> with matching typename.
>
> However, all this seems to work only with TCG on both s390x and ppc64.
> The issues I met with KVM on each architecture are described below.
>
> On ppc64 the default CPU type reported by query-machines is
> power*-powerpc64-cpu, while IIUC QEMU would effectively use -cpu host by
> default. In fact -cpu power8 is mostly just a fancy alias to -cpu host
> on a Power8 machine. But QEMU even rewrites typename of the current host
> CPU model to host-powerpc64-cpu. Which means on a Power8 host the power8
> CPU model would have typename=host-powerpc64-cpu while the default CPU
> type would still use power8*-powerpc64-cpu. Thus we may just fail to
> find any CPU model corresponding to the default CPU model.
>
> And to make it even worse, the default CPU model changes with machine
> type. E.g., pseries-3.1 uses power8_v2.0-powerpc64-cpu while pseries-4.2
> uses power9_v2.0-powerpc64-cpu. However, starting QEMU with pseries-4.2
> machine type and the reported default -cpu power9 fails on any
> non-Power9 host. That said QEMU just lies about the default CPU model.
>
> So for all combinations of (pseries-3.1, pseries-4.2) machine types and
> (Power8, Power9) hosts, one will get the following mixed results:
>
> - pseries-3.1 on Power8: no default CPU model will be detected, QEMU
> starts fine with it's own default
> - pseries-4.2 on Power9: same as above
> - pseries-3.1 on Power9: -cpu power8 (not sure if this works, though)
> - pseries-4.2 on Power8: -cpu power9, QEMU doesn't start
>
>
> This situation on s390x is not so complicated, but not really better.
> The default CPU is said to be "qemu" for all machine types, which works
> fine for TCG domains, but it doesn't work on KVM because QEMU complains
> that some features requested in the CPU model are not available. In
> other words the "qemu" CPU model is not runnable on KVM. This a bit
> similar to what happens on x86_64, but QEMU just ignores missing
> features and starts happily there.
The default model under KVM is "host", under TCG it's "qemu". We should
not use "qemu" under KVM, although it might work on some setups ...
Where/how is this default model detected?
>
>
> So what do you suggest we should do? Currently I just restricted all the
> default CPU model staff to TCG on both s390x and ppc64. So either we can
> be happy with the current state or we need to come up with a solution
> that would allow us to enable this even for KVM.
>
> Thanks,
> Jirka
>
> [1] https://www.redhat.com/archives/libvir-list/2019-October/msg00872.html
>
--
Thanks,
David / dhildenb
next prev parent reply other threads:[~2019-10-17 16:09 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-17 15:16 Default CPU models on s390x and ppc64 Jiri Denemark
2019-10-17 15:18 ` David Hildenbrand [this message]
2019-10-17 15:31 ` David Hildenbrand
2019-10-17 15:35 ` David Hildenbrand
2019-10-18 13:58 ` Jiri Denemark
2019-10-18 14:27 ` David Hildenbrand
2019-10-17 16:13 ` Peter Maydell
2019-10-17 16:18 ` David Hildenbrand
2019-10-18 14:02 ` Jiri Denemark
2019-10-18 14:14 ` Peter Maydell
2019-10-18 14:44 ` Christian Borntraeger
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=82ea23ea-be23-c374-3f10-65d8f6e79432@redhat.com \
--to=david@redhat.com \
--cc=dgibson@redhat.com \
--cc=dhildenb@redhat.com \
--cc=jdenemar@redhat.com \
--cc=qemu-devel@nongnu.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).