qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] target-i386: add a list of enforceable CPU mode


From: Peter Lieven
Subject: Re: [Qemu-devel] [PATCH] target-i386: add a list of enforceable CPU models to the help output
Date: Wed, 26 Aug 2015 21:19:27 +0200


> Am 26.08.2015 um 21:00 schrieb Eduardo Habkost <address@hidden>:
> 
>> On Wed, Aug 26, 2015 at 08:46:42PM +0200, Peter Lieven wrote:
>>> Am 26.08.2015 um 20:38 schrieb Eduardo Habkost:
>>>> On Mon, Aug 24, 2015 at 09:36:23PM +0200, Peter Lieven wrote:
>>>>> Am 24.08.2015 um 17:46 schrieb Eric Blake:
>>>>>> On 08/24/2015 03:17 AM, Peter Lieven wrote:
>>>>>> this patch adds a probe that lists all enforceable and migrateable
>>>>>> CPU models to the -cpu help output. The idea is to know a priory
>>>>>> which CPU modules can be exposed to the user without loosing any
>>>>>> feature flags.
>>>>>> 
>>>>>> Signed-off-by: Peter Lieven <address@hidden>
>>>>>> ---
>>>>>> target-i386/cpu.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
>>>>>> 1 file changed, 49 insertions(+)
>>>>> Is this same sort of listing available through QMP? Parsing '-cpu help'
>>>>> output is undesirable from libvirt point of view.
>>>>> 
>>>> A good point. But is there a QMP command to list available CPU types?
>>>> In this case it should be easy to extend.
>>> Yes, that's query-cpu-definitions. See past discussion at:
>>> http://thread.gmane.org/gmane.comp.emulators.qemu/332554
>>> 
>>> Some of the assumptions at that thread changed. See:
>>> http://thread.gmane.org/gmane.comp.emulators.qemu/342582/focus=346651
>>> That means runnability should depend only on the accelerator type, and
>>> not on the machine-type anymore.
>> 
>> Thanks for the pointer. But is it possible to query cpu definitions without
>> a running Qemu? Like passing a QMP command on the commandline and
>> receive the answer on stdout?
> 
> Well, it's impossible to check if a CPU model is runnable without running 
> QEMU.
> :)
> 
> I don't think you can send a QMP command through command-line arguments, but
> you can easily start a QMP monitor on stdin/stdio.
> 
> Example:
>  $ (echo '{ "execute": "qmp_capabilities" }';echo 
> '{"execute":"query-cpu-definitions"}';echo '{"execute":"quit"}';) | 
> ./x86_64-softmmu/qemu-system-x86_64 -nodefaults -S -qmp stdio -machine none 
> -nographic
>  {"QMP": {"version": {"qemu": {"micro": 50, "minor": 4, "major": 2}, 
> "package": ""}, "capabilities": []}}
>  {"return": {}}
>  {"return": [{"name": "Opteron_G5"}, {"name": "Opteron_G4"}, {"name": 
> "Opteron_G3"}, {"name": "Opteron_G2"}, {"name": "Opteron_G1"}, {"name": 
> "Broadwell"}, {"name": "Broadwell-noTSX"}, {"name": "Haswell"}, {"name": 
> "Haswell-noTSX"}, {"name": "IvyBridge"}, {"name": "SandyBridge"}, {"name": 
> "Westmere"}, {"name": "Nehalem"}, {"name": "Penryn"}, {"name": "Conroe"}, 
> {"name": "n270"}, {"name": "athlon"}, {"name": "pentium3"}, {"name": 
> "pentium2"}, {"name": "pentium"}, {"name": "486"}, {"name": "coreduo"}, 
> {"name": "kvm32"}, {"name": "qemu32"}, {"name": "kvm64"}, {"name": 
> "core2duo"}, {"name": "phenom"}, {"name": "qemu64"}]}
>  {"return": {}}
>  {"timestamp": {"seconds": 1440615228, "microseconds": 854114}, "event": 
> "SHUTDOWN"}
>  $ 
> 


ok, now I have a list of cpu models.
what I could do now  is fire up a qemu process for each model with enforce and 
look at the exit code to see if it is enforcable on my host.

for me this would work as well.

or add a qmp command that lists all enforcable models.

Thanks for your help.
Peter


> 
>> 
>>> 
>>>> But, I wonder how to issue a QMP command before the vserver is actually
>>>> running? Is there a common way to do it?
>>> What's a vserver?
>>> 
>> 
>> A Virtual Server.
> 
> You mean the virtual machine? Yes, it is possible to run QMP commands before
> the machine is running (you just need to use -S). You can also use "-machine
> none" if you don't want any machine-specific initialization code to run at 
> all.
> 
> -- 
> Eduardo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]