On Sun, Mar 11, 2012 at 10:41:32AM -0500, Anthony Liguori wrote:
On 03/11/2012 10:12 AM, Gleb Natapov wrote:
>On Sun, Mar 11, 2012 at 09:16:49AM -0500, Anthony Liguori wrote:
>>>If libvirt assumes anything about what kvm actually supports it is
>>>working only by sheer luck.
>>
>>Well the simple answer for libvirt is don't use -nodefconfig and
>>then it can reuse the CPU definitions (including any that the user
>>adds).
>CPU models should be usable even with -nodefconfig. CPU model is more
>like device. By -cpu Nehalem I am saying I want Nehalem device in my
>machine.
Let's say we moved CPU definitions to /usr/share/qemu/cpu-models.xml.
Obviously, we'd want a command line option to be able to change that
location so we'd introduce -cpu-models PATH.
But we want all of our command line options to be settable by the
global configuration file so we would have a cpu-model=PATH to the
configuration file.
But why hard code a path when we can just set the default path in
the configuration file so let's avoid hard coding and just put
cpu-models=/usr/share/qemu/cpu-models.xml in the default
configuration file.
We have two places where we define cpu models: hardcoded in
target-i386/cpuid.c and in target-x86_64.conf. We moved them out to conf
file because this way it is easier to add, update, examine compare CPU
models. But they still should be treated as essential part of qemu. Given
this I do not see the step above as a logical one. CPU models are not
part of machine config. "-cpu Nehalem,-sse,level=3,model=5" is part of
machine config.
What if we introduce a way to write devices in LUA. Should -nodefconfig
drop devices implemented as LUA scripts too?
But now when libvirt uses -nodefconfig, those models go away.
-nodefconfig means start QEMU in the most minimal state possible.
You get what you pay for if you use it.
We'll have the same problem with machine configuration files. At
some point in time, -nodefconfig will make machine models disappear.
--
Gleb.