qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Avi Kivity <avi@redhat.com>
Cc: libvir-list@redhat.com, Jiri Denemark <jdenemar@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	Gleb Natapov <gleb@redhat.com>,
	qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [libvirt] Modern CPU models cannot be used with libvirt
Date: Sun, 25 Mar 2012 10:26:57 -0500	[thread overview]
Message-ID: <4F6F3941.6040800@codemonkey.ws> (raw)
In-Reply-To: <4F6F36C7.8010206@redhat.com>

On 03/25/2012 10:16 AM, Avi Kivity wrote:
> On 03/25/2012 04:59 PM, Anthony Liguori wrote:
>> On 03/25/2012 09:46 AM, Avi Kivity wrote:
>>> On 03/25/2012 04:36 PM, Anthony Liguori wrote:
>>>>> Apart from the command line length, it confuses configuration with
>>>>> definition.
>>>>
>>>>
>>>> There is no distinction with what we have today.  Our configuration
>>>> file basically corresponds to command line options and as there is no
>>>> distinction in command line options, there's no distinction in the
>>>> configuration format.
>>>
>>> We don't have command line options for defining, only configuring.
>>
>> That's an oversight.  There should be a -cpudef option.  It's a
>> QemuOptsList.
>>
>>> Again, defining = #define
>>
>> I think -global fits your definition of #define...
>
> Yes (apart from the corner case of modifying a default-instantiated device).
>
>>>> B) A management tool has complete control over cpu definitions without
>>>> modifying the underlying filesystem.  -nodefconfig will prevent it
>>>> from loading and the management tool can explicitly load the QEMU
>>>> definition (via -readconfig, potentially using a /dev/fd/N path) or it
>>>> can define it's own cpu definitions.
>>>
>>> Why does -nodefconfig affect anything?
>>
>>
>> Because -nodefconfig means "don't load *any* default configuration
>> files".
>
> Put the emphasis around *configuration*.

So how about:

1) Load ['@SYSCONFDIR@/qemu/qemu.cfg', '@SYSCONFDIR@/qemu/target-@ARCH@.cfg',
          '@DATADIR@/system.cfg', '@DATADIR@/system-@ARCH@.cfg']

2) system-@ARCH@.cfg will contain:

[system]
readconfig=@DATADIR@/target-@ARCH@-cpus.cfg
readconfig=@DATADIR@/target-@ARCH@-machine.cfg

3) -nodefconfig will not load any configuration files from DATADIR or 
SYSCONFDIR.  -no-user-config will not load any configuration files from SYSCONFDIR.

> "#define westmere blah" is not configuration, otherwise the meaning of
> configuration will drift over time.
>
> -cpu blah is, of course.

It's the same mechanism, but the above would create two classes of default 
configuration files and then it becomes a question of how they're used.

>>> The file defines westmere as an alias for a grab bag of options.
>>> Whether it's loaded or not is immaterial, unless someone uses one of the
>>> names within.
>>
>> But you would agree, a management tool should be able to control
>> whether class factories get loaded, right?
>
> No, why?  But perhaps I don't entirely get what you mean by "class
> factories".
>
> Aren't they just implementations of
>
>     virtual Device *new_instance(...) = 0?
>
> if so, why not load them?

No, a class factory creates a new type of class.  -cpudef will ultimately call 
type_register() to create a new QOM visible type.  From a management tools 
perspective, the type is no different than a built-in type.

>>> Otherwise, the meaning of -nodefconfig changes as more stuff is moved
>>> out of .c and into .cfg.
>>
>> What's the problem with this?
>
> The command line becomes unstable if you use -nodefconfig.

-no-user-config solves this but I fully expect libvirt would continue to use 
-nodefconfig.

>>>>
>>>> In my target-$(ARCH).cfg, I have:
>>>>
>>>> [machine]
>>>> enable-kvm = "on"
>>>>
>>>> Which means I don't have to use -enable-kvm anymore.  But if you look
>>>> at a tool like libguestfs, start up time is the most important thing
>>>> so avoiding unnecessary I/O and processing is critical.
>>>
>>> So this is definitely configuration (applies to the current instance) as
>>> opposed to target-x86_64.cfg, which doesn't.
>>
>>
>> I'm not sure which part you're responding to..
>
> I was saying that target-x86_64.cfg appears to be definitions, not
> configuration, and was asking about qemu.cfg (which is configuration).
>
>>> As far as I can tell, the only difference is that -nodefconfig -cpu
>>> westmere will error out instead of working.  But if you don't supply
>>> -cpu westmere, the configuration is identical.
>>
>> What configuration?
>>
>> Let me ask, what do you think the semantics of -nodefconfig should
>> be?  I'm not sure I understand what you're advocating for.
>>
>
> -nodefconfig = create an empty machine, don't assume anything (=don't
> read qemu.cfg) let me build it out of all those lego bricks.  Those can
> be defined in code or in definition files in /usr/share, I don't care.
>
> Maybe that's -nodevices -vga none.  But in this case I don't see the
> point in -nodefconfig.  Not loading target_x86-64.cfg doesn't buy the
> user anything, since it wouldn't affect the guest in any way.

-nodefconfig doesn't mean what you think it means.  -nodefconfig doesn't say 
anything about the user visible machine.

-nodefconfig tells QEMU not to read any configuration files at start up.  This 
has an undefined affect on the user visible machine that depends on the specific 
version of QEMU.

Regards,

Anthony Liguori

  reply	other threads:[~2012-03-25 15:27 UTC|newest]

Thread overview: 108+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-15 14:54 [Qemu-devel] Modern CPU models cannot be used with libvirt Jiri Denemark
2011-12-15 14:58 ` Anthony Liguori
2011-12-15 15:30   ` Jiri Denemark
2011-12-18 10:07     ` Dor Laor
2011-12-15 15:42 ` [Qemu-devel] [libvirt] " Daniel P. Berrange
2011-12-18  9:58   ` Gleb Natapov
2012-03-09 20:56     ` Eduardo Habkost
2012-03-09 21:04       ` Daniel P. Berrange
2012-03-09 21:15         ` Anthony Liguori
2012-03-10  4:37           ` Eduardo Habkost
2012-03-11 11:45           ` Gleb Natapov
2012-03-10 12:42         ` Daniel P. Berrange
2012-03-10 15:58           ` Eduardo Habkost
2012-03-10 18:24             ` Anthony Liguori
2012-03-10 18:37               ` Andreas Färber
2012-03-10 22:39               ` Doug Goldstein
2012-03-11  0:55               ` Andrew Cathrow
2012-03-11 13:27               ` Gleb Natapov
2012-03-11 14:12                 ` Anthony Liguori
2012-03-11 14:56                   ` Gleb Natapov
2012-03-11 15:33                     ` Anthony Liguori
2012-03-11 16:16                       ` Gleb Natapov
2012-03-12 14:48                         ` Anthony Liguori
2012-03-12 15:16                           ` Eduardo Habkost
2012-03-12 15:49                         ` Andreas Färber
2012-03-12 16:50                           ` Eduardo Habkost
2012-03-12 17:41                             ` Andreas Färber
2012-03-12 17:47                               ` Peter Maydell
2012-03-12 17:53                                 ` Andreas Färber
2012-03-12 17:55                                   ` Gleb Natapov
2012-03-12 17:59                                   ` Alexander Graf
2012-03-12 17:52                               ` Gleb Natapov
2012-03-12 18:30                               ` Eduardo Habkost
2012-03-12 18:42                                 ` Anthony Liguori
2012-03-12 18:53                       ` Itamar Heim
2012-03-12 19:01                         ` Anthony Liguori
2012-03-12 19:12                           ` Itamar Heim
2012-03-12 19:50                             ` Anthony Liguori
2012-03-12 20:00                               ` Itamar Heim
2012-03-12 20:19                               ` Ayal Baron
2012-03-13  8:32                                 ` Itamar Heim
2012-03-14  0:11                                   ` Ayal Baron
2012-03-12 12:52                   ` Eduardo Habkost
2012-03-12 13:04                     ` Daniel P. Berrange
2012-03-12 13:15                       ` Gleb Natapov
2012-03-12 13:32                         ` Eduardo Habkost
2012-03-12 13:34                           ` Gleb Natapov
2012-03-12 13:50                         ` Daniel P. Berrange
2012-03-12 13:53                           ` Gleb Natapov
2012-03-12 13:55                             ` Daniel P. Berrange
2012-03-12 14:01                               ` Gleb Natapov
2012-03-25 13:21                   ` Avi Kivity
2012-03-25 13:26                     ` Anthony Liguori
2012-03-25 16:06                       ` Avi Kivity
2012-03-11 12:41             ` Gleb Natapov
2012-03-11 14:16               ` Anthony Liguori
2012-03-11 15:12                 ` Gleb Natapov
2012-03-11 15:41                   ` Anthony Liguori
2012-03-11 16:27                     ` Gleb Natapov
2012-03-12 13:08                     ` Eduardo Habkost
2012-03-13 14:53                       ` Eduardo Habkost
2012-03-22  9:32                         ` Gleb Natapov
2012-03-22 13:31                           ` Eduardo Habkost
2012-03-22 14:30                             ` Gleb Natapov
2012-03-22 15:50                               ` Eduardo Habkost
2012-03-25 10:19                                 ` Gleb Natapov
2012-03-25 13:09                                   ` Anthony Liguori
2012-03-25 14:46                                     ` Gleb Natapov
2012-03-25 15:06                                       ` Anthony Liguori
2012-03-25 16:34                                         ` Gleb Natapov
2012-03-26 16:00                                   ` Eduardo Habkost
2012-03-22 16:37                           ` Anthony Liguori
2012-03-22 17:14                             ` Eduardo Habkost
2012-03-22 20:01                               ` Anthony Liguori
2012-03-25  9:49                                 ` Gleb Natapov
2012-03-25 12:55                                   ` Anthony Liguori
2012-03-25 13:08                                     ` Avi Kivity
2012-03-25 13:12                                       ` Anthony Liguori
2012-03-25 13:14                                         ` Avi Kivity
2012-03-25 13:22                                           ` Anthony Liguori
2012-03-25 13:34                                             ` Avi Kivity
2012-03-25 14:36                                               ` Anthony Liguori
2012-03-25 14:46                                                 ` Avi Kivity
2012-03-25 14:59                                                   ` Anthony Liguori
2012-03-25 15:16                                                     ` Avi Kivity
2012-03-25 15:26                                                       ` Anthony Liguori [this message]
2012-03-25 15:40                                                         ` Avi Kivity
2012-03-25 18:11                                                           ` Anthony Liguori
2012-03-26  9:08                                                             ` Avi Kivity
2012-03-26  9:53                                                               ` Gleb Natapov
2012-03-26 19:03                                                               ` Anthony Liguori
2012-03-28  9:55                                                                 ` Avi Kivity
2012-03-26 16:34                                                             ` Eduardo Habkost
2012-03-26 11:24                                                         ` Jiri Denemark
2012-03-26 11:59                                                           ` Avi Kivity
2012-03-26 12:03                                                             ` Gleb Natapov
2012-03-26 16:14                                                               ` Eduardo Habkost
2012-03-26 19:04                                                                 ` Anthony Liguori
2012-03-25 14:58                                           ` Gleb Natapov
2012-03-25 15:07                                             ` Anthony Liguori
2012-03-25 15:18                                               ` Avi Kivity
2012-03-25 15:30                                                 ` Anthony Liguori
2012-03-25 15:45                                                   ` Avi Kivity
2012-03-25 18:01                                                     ` Anthony Liguori
2012-03-25 18:09                                                       ` Avi Kivity
2012-03-26 19:00                                                         ` Anthony Liguori
2012-03-28  9:59                                                           ` Avi Kivity
2012-03-20 18:59       ` Eduardo Habkost

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=4F6F3941.6040800@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=avi@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=gleb@redhat.com \
    --cc=jdenemar@redhat.com \
    --cc=libvir-list@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).