Conflicting parameters on qemu call

Jan Walzer jwalzer at redhat.com
Fri Aug 21 13:42:23 UTC 2020


On 21. Aug 2020, at 13:55, Daniel P. Berrangé <berrange at redhat.com> wrote:
> On Fri, Aug 21, 2020 at 01:38:23PM +0200, Jan Walzer wrote:
>> On 21. Aug 2020, at 11:20, Daniel P. Berrangé <berrange at redhat.com> wrote:
>>> On Fri, Aug 21, 2020 at 11:19:14AM +0200, Jan Walzer wrote:
>>>> Hi Daniel,
>>>>> On 21. Aug 2020, at 11:07, Daniel P. Berrangé <berrange at redhat.com> wrote:
>>>>> On Fri, Aug 21, 2020 at 11:00:27AM +0200, Jan Walzer wrote:
>>>>>> On 21. Aug 2020, at 10:38, Daniel P. Berrangé <berrange at 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?
>>>>> 
>>>>> […]
>>>>> <qemu:commandline>
>>>>>  <qemu:arg value='-accel'/>
>>>>>  <qemu:arg value='tcg,thread=multi'/>
>>>>> </qemu:commandline>
>>>> 
>>>> As I wrote: This is what I’m already doing
>>>> The Problem is that this conflicts with, libvirt already using the parameter: “-machine ..,accel=tcg”
>>>> And I can’t get libvirt, to stop passing this parameter.
>>> 
>>> It shouldn't matter.  QEMU should aggregate the settings from the
>>> multiple args, with latter args overriding earlier args if there is
>>> any duplication..
>> 
>> 
>> That was what I thought to, but:
>> 
>> # qemu-system-x86_64  -machine q35,accel=tcg -accel tcg,thread=multi --smp 8 -m 8
>> Unable to init server: Could not connect: Connection refused
>> qemu-system-x86_64: The -accel and "-machine accel=" options are incompatible
>> 
>> # qemu-system-x86_64 --version
>> QEMU emulator version 5.0.0 (Debian 1:5.0-14)
>> Copyright (c) 2003-2020 Fabrice Bellard and the QEMU Project developers
>> 
>> I’m already discussing that on qemu list:
>> https://lists.nongnu.org/archive/html/qemu-ppc/2020-08/msg00338.html <https://lists.nongnu.org/archive/html/qemu-ppc/2020-08/msg00338.html><https://lists.nongnu.org/archive/html/qemu-ppc/2020-08/msg00338.html <https://lists.nongnu.org/archive/html/qemu-ppc/2020-08/msg00338.html>>
>> 
>> But I’d like to track that issue in multiple directions.
> 
> Ok, this is an intentionally backwards incompatible change in QEMU 5.0.0.
> So you're out of luck until libvirt changes to using "-accel" too.

So that’s why I’m writing here on the libvirt lists - I assume this means looking for a bug report or creating one.

… and for me: probably creating a really dirty workaround, by writing a wrapper, that’s called instead of the binary which adjusts the command line parameters ;(

Thanks for your help,
Greetings, Jan


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20200821/9763d216/attachment-0001.htm>


More information about the libvir-list mailing list