Hi Lists, I currently have the issue of wanting to use emu-system-x86_64 on a ppc64le platform. It is imperative to pass the "-accel tcg,thread=multi” parameter to qemu when starting an instance, as without that, it will only use one thread and hence of limited/no use. The problem is, that libvirt itself, passes “-machine q35,accel=tcg” to qemu, which is a different parameter, that conflicts with the other one. Can we discuss, if I either have overlooked something, or is there a workaround, or is this a bug? I’m running: # uname -a Linux tiger-v4 5.7.0-1-powerpc64le #1 SMP Debian 5.7.6-1 (2020-06-24) ppc64le GNU/Linux # apt-cache policy libvirt-daemon libvirt-daemon: Installed: 6.5.0-1 Candidate: 6.5.0-1 Version table: *** 6.5.0-1 500 500 http://deb.debian.org/debian testing/main ppc64el Packages # apt-cache policy qemu-system-x86 qemu-system-x86: Installed: 1:5.0-14 Candidate: 1:5.0-14 Version table: *** 1:5.0-14 500 500 http://deb.debian.org/debian testing/main ppc64el Packages Do you need any more information? Feel free to only continue on the list that matters. Greetings, Jan
On Thu, Aug 20, 2020 at 08:11:30PM +0200, Jan Walzer wrote:> Hi Lists, > > I currently have the issue of wanting to use emu-system-x86_64 on a ppc64le platform. > > It is imperative to pass the "-accel tcg,thread=multi” parameter to qemu > when starting an instance, as without that, it will only use one thread > and hence of limited/no use. > > The problem is, that libvirt itself, passes “-machine q35,accel=tcg” to > qemu, which is a different parameter, that conflicts with the other one. > > Can we discuss, if I either have overlooked something, or is there a workaround, or is this a bug?What you're trying todo is intentionally not available. The memory ordering constraints needed for running x86_64 guests on ppc64 hosts cannot be satisfied, so multi-threaded TCG is not available. For any guest/host combination where multi-thread TCG is safe to use, QEMU will enable it automatically, so nothing is required in libvirt. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
On 21. Aug 2020, at 10:38, Daniel P. Berrangé <berrange@redhat.com> wrote:> On Thu, Aug 20, 2020 at 08:11:30PM +0200, Jan Walzer wrote: >> Hi Lists, >> >> I currently have the issue of wanting to use emu-system-x86_64 on a ppc64le platform. >> >> It is imperative to pass the "-accel tcg,thread=multi” parameter to qemu >> when starting an instance, as without that, it will only use one thread >> and hence of limited/no use. >> >> The problem is, that libvirt itself, passes “-machine q35,accel=tcg” to >> qemu, which is a different parameter, that conflicts with the other one. >> >> Can we discuss, if I either have overlooked something, or is there a workaround, or is this a bug? > > What you're trying todo is intentionally not available. > > The memory ordering constraints needed for running x86_64 guests on ppc64 > hosts cannot be satisfied, so multi-threaded TCG is not available. > > For any guest/host combination where multi-thread TCG is safe to use, QEMU > will enable it automatically, so nothing is required in libvirt.Hi Daniel, Thanks for the answer. I’ve read (and understand) the warnings and their implications. So there’s not even an “I know what I’m Doing”-Switch? I have verified my use case with the manual calling of qemu with the mentioned parameters and my test suite for that use case works fine. Hence I’d like to go with libvirt for that scenario. Greetings, Jan