Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Gleb Natapov
On Thu, Mar 22, 2012 at 03:01:17PM -0500, Anthony Liguori wrote:
 On 03/22/2012 12:14 PM, Eduardo Habkost wrote:
 On Thu, Mar 22, 2012 at 11:37:39AM -0500, Anthony Liguori wrote:
 On 03/22/2012 04:32 AM, Gleb Natapov wrote:
 On Tue, Mar 13, 2012 at 11:53:19AM -0300, Eduardo Habkost wrote:
 So, this problem is solved if the defaults are easily found on
 /usr/share.
 
 What problem is solved and why are we mixing machine configuration files
 and cpu configuration files? They are different and should be treated
 differently. -nodefconfig exists only because there is not machine
 configuration files currently. With machine configuration files
 libvirt does not need -nodefconfig because it can create its own machine
 file and make QEMU use it. So specifying machine file on QEMU's command
 line implies -nodefconfig. The option itself loses its meaning and can be
 dropped.
 
 No, -nodefconfig means no default config.
 
 As with many projects, we can have *some* configuration required.
 
 The default configure should have a:
 
 [system]
 readconfig=@SYSCONFDIR@/cpu-models-x86_64.cfg
 
 Not @SYSCONFDIR@, but @DATADIR@. CPU models belong to /usr/share because
 they aren't meant to be changed by the user (I think I already explained
 why: because we have to be able to deploy fixes to them).
 
 
 Stanza by default.  If libvirt wants to reuse this, they can use
 -readconfig if they use -nodefconfig.
 
 You are just repeating how you believe it should work based on the
 premise that cpudefs are configuration. We're discussing/questioning
 this exact premise, here, and I would really appreciate to hear why the
 model Gleb is proposing is not valid.
 
 More precisely, this part:
 
 cpu-models-x86.conf is not a configuration file. It is hardware
 description file. QEMU should not lose capability just because you run
 it with -nodefconfig. -nodefconfig means that QEMU does not create
 machine for you, but all parts needed to create a machine that would have
 been created without -nodefconfig are still present. Not been able to
 create Nehalem CPU after specifying -nodefconfig is the same as not been
 able to create virtio-net i.e the bug.
 
 And the related points Gleb mentioned further in this thread.
 
 Because the next patch series that would follow would be a
 -cpu-defs-path that would be a one-off hack with a global variable
 and a -no-cpu-defs.
 
And it will be rejected since cpu models are not part of configuration,
but QEMU internals stored in outside file. We have -L switch to tell
qemu where such things should be loaded from and that's it.

 So let's avoid that and start by having a positive configuration
 mechanism that the user can use to change the path and exclude it.
 My suggestion eliminate the need for two future command line
 options.
 
If cpu models are not part of configuration they should not be affected
by configuration mechanism. You are just avoiding addressing the real
question that if asked above.

--
Gleb.

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Gleb Natapov
On Thu, Mar 22, 2012 at 12:50:18PM -0300, Eduardo Habkost wrote:
 On Thu, Mar 22, 2012 at 04:30:55PM +0200, Gleb Natapov wrote:
  On Thu, Mar 22, 2012 at 10:31:21AM -0300, Eduardo Habkost wrote:
   On Thu, Mar 22, 2012 at 11:32:44AM +0200, Gleb Natapov wrote:
What does this mean? Will -nodefconfig disable loading of bios.bin,
option roms, keymaps?
   
   Correcting myself: loading of _config_ files on /usr/share. ROM images
   are opaque data to be presented to the guest somehow, just like a disk
   image or kernel binary. But maybe keymaps will become configuration
   someday, I really don't know.
   
  Where do you draw the line between opaque data and configuration. CPU
  models are also something that is present to a guest somehow.
 
 Just the fact that it's in a structured key=value format that Qemu
 itself will interpret before exposing something to the guest. Yes, it's
 a bit arbitrary. If we could make everything configuration data, we
 would (or that's what I think Anthony is pushing for--I hope he will
 reply and clarify that).
 
It is not a bit arbitrary it is completely arbitrary.

  Are you
  consider ROMs to be opaque data because they are binary and CPU models
  to be config just because it is ascii file?
 
 Not just ascii file, but structured (and relatively small)
 [section]key=value data. If BIOSes were not opaque binary code and could
 be converted to a small set of config sections and key=values just like
 cpudefs, one could argue that BIOSes could become configuration data,
 too.
 
There is no argument I can make about it since there is no logic to
refute to begin with :) Well may be except that when cpu model file will
support configuring all couid leafs for each cpu model it will not
be so small :)
 
 
  What if we pre-process CPU
  models into binary for QEMU to read will it magically stop being
  configuration?
 
 Doing the reverse (transforming simple [section]key=value data to a
 binary format) would just be silly and wouldn't gain us anything. The
 point here is that we (Qemu) seem to be moving towards a design where
 most things are structured configuration data that fits on a
 [section]key=value model, and Qemu just interprets that structured data
 to build a virtual machine.
Nothing silly about it. You can move data parsing outside of QEMU and
just mmap cpu definitions in QEMU.

 
 (That's why I said that perhaps keymaps could become configuration
 someday. Because maybe they can be converted to a key=value model
 relatively easily)
 
Such whole sale approach is harmful since it starts to affect design
decisions. So now if it seams logical to move something outside the code
one can decide against it just because it will become configuration
due to that design.

 
  Doing this would make it impossible to deploy fixes to users if we 
  evern
  find out that the default configuration file had a serious bug. 
  What if
  a bug in our default configuration file has a serious security
  implication?
 
 The answer to this is: if the broken templates/defaults are on
 /usr/share, it would be easy to deploy the fix.
 
 So, the compromise solution is:
 
 - We can move some configuration data (especially defaults/templates)
   to /usr/share (machine-types and CPU models could go there). This
   way we can easily deploy fixes to the defaults, if necessary.
 - To reuse Qemu models, or machine-types, and not define everything 
 from
   scratch, libvirt will have to use something like:
   -nodefconfig -readconfig /usr/share/qemu/cpu-models-x86.conf
 
cpu-models-x86.conf is not a configuration file. It is hardware
description file. QEMU should not lose capability just because you run
it with -nodefconfig. -nodefconfig means that QEMU does not create
machine for you, but all parts needed to create a machine that would 
have
been created without -nodefconfig are still present. Not been able to
create Nehalem CPU after specifying -nodefconfig is the same as not been
able to create virtio-net i.e the bug.
   
   
   The current design direction Qemu seems to be following is different
   from that: hardware description is also considered configuration just
   like actual machine configuration. Anthony, please correct me if I am
   wrong.
  That's a bug. Why trying to rationalize it now instead of fixing it.
 
 It's just a bug for you because you disagree with the current design.
 You can call it rationalization, yes; I am just accepting Anthony's
 proposal because it's equally good (to me) as what you are proposing.
 
 
  It
  was fixed in RHEL by the same person who introduced it in upstream in
  the first place. He just forgot to send the fix upstream. Does bug that
  is present for a long time is promoted to a feature?
 
 John didn't forget it, he knew that upstream could go in a different
 direction. The RHEL6 patch description has this:
 
 Note this is intended as an 

Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Anthony Liguori

On 03/25/2012 04:49 AM, Gleb Natapov wrote:

On Thu, Mar 22, 2012 at 03:01:17PM -0500, Anthony Liguori wrote:

So let's avoid that and start by having a positive configuration
mechanism that the user can use to change the path and exclude it.
My suggestion eliminate the need for two future command line
options.


If cpu models are not part of configuration they should not be affected
by configuration mechanism. You are just avoiding addressing the real
question that if asked above.


I think you're just refusing to listen.

The stated direction of QEMU, for literally years now, is that we want to arrive 
at the following:


QEMU is composed of a series of objects who's relationships can be fully 
described by an external configuration file.  Much of the current baked in 
concepts (like machines) would then become configuration files.


qemu -M pc

Would effectively be short hand for -readconfig /usr/share/qemu/machines/pc.cfg

There are some valid points that were raised in this thread, namely that the 
user needs to have a file that acts as strictly config (stored in /etc).  I'm 
totally happy moving the CPU configuration to /usr/share in order to address this.


I think the thread has reduced to: should /usr/share configuration files be read 
by default or just treated as additional configuration files.  It seems pretty 
obvious to me that they should be treated as normal configuration files.  This 
gives you the user the ability to have fine grain control over which files are 
used including the ability to change the location for each file.


Maybe RHEL only wants to expose supported CPUs and supported machines, wouldn't 
it be better to not have to patch QEMU to do that?


Wouldn't it be even better if you could drop in a separate CPU configuration 
file with the supported CPU types and then change the default /etc config to use 
that instead?


Regards,

Anthony Liguori

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Avi Kivity
On 03/25/2012 02:55 PM, Anthony Liguori wrote:
 If cpu models are not part of configuration they should not be affected
 by configuration mechanism. You are just avoiding addressing the real
 question that if asked above.


 I think you're just refusing to listen.

 The stated direction of QEMU, for literally years now, is that we want
 to arrive at the following:

 QEMU is composed of a series of objects who's relationships can be
 fully described by an external configuration file.  Much of the
 current baked in concepts (like machines) would then become
 configuration files.

 qemu -M pc

 Would effectively be short hand for -readconfig
 /usr/share/qemu/machines/pc.cfg

In that case

 qemu -cpu westmere

is shorthand for -readconfig /usr/share/qemu/cpus/westmere.cfg.

 I think the thread has reduced to: should /usr/share configuration
 files be read by default or just treated as additional configuration
 files.

If they're read as soon as they're referenced, what's the difference?

-- 
error compiling committee.c: too many arguments to function

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Anthony Liguori

On 03/25/2012 08:08 AM, Avi Kivity wrote:

On 03/25/2012 02:55 PM, Anthony Liguori wrote:

If cpu models are not part of configuration they should not be affected
by configuration mechanism. You are just avoiding addressing the real
question that if asked above.



I think you're just refusing to listen.

The stated direction of QEMU, for literally years now, is that we want
to arrive at the following:

QEMU is composed of a series of objects who's relationships can be
fully described by an external configuration file.  Much of the
current baked in concepts (like machines) would then become
configuration files.

qemu -M pc

Would effectively be short hand for -readconfig
/usr/share/qemu/machines/pc.cfg


In that case

  qemu -cpu westmere

is shorthand for -readconfig /usr/share/qemu/cpus/westmere.cfg.


This is not a bad suggestion, although it would make -cpu ? a bit awkward.  Do 
you see an advantage to this over having /usr/share/qemu/target-x86_64-cpus.cfg 
that's read early on?



I think the thread has reduced to: should /usr/share configuration
files be read by default or just treated as additional configuration
files.


If they're read as soon as they're referenced, what's the difference?


I suspect libvirt would not be happy with reading configuration files on 
demand..

Regards,

Anthony Liguori


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Avi Kivity
On 03/25/2012 03:12 PM, Anthony Liguori wrote:
 qemu -M pc

 Would effectively be short hand for -readconfig
 /usr/share/qemu/machines/pc.cfg

 In that case

   qemu -cpu westmere

 is shorthand for -readconfig /usr/share/qemu/cpus/westmere.cfg.


 This is not a bad suggestion, although it would make -cpu ? a bit
 awkward.  Do you see an advantage to this over having
 /usr/share/qemu/target-x86_64-cpus.cfg that's read early on?

Nope.  As long as qemu -nodefconfig -cpu westmere works, I'm happy.

The reasoning is, loading target-x86_64-cpus.cfg does not alter the
current instance's configuration, so reading it doesn't violate
-nodefconfig.

 files be read by default or just treated as additional configuration
 files.

 If they're read as soon as they're referenced, what's the difference?
 I think the thread has reduced to: should /usr/share configuration

 I suspect libvirt would not be happy with reading configuration files
 on demand..

Why not?

-- 
error compiling committee.c: too many arguments to function

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Avi Kivity
On 03/11/2012 04:12 PM, Anthony Liguori wrote:
 Let me elaborate about the later. Suppose host CPU has kill_guest
 feature and at the time a guest was installed it was not implemented by
 kvm. Since it was not implemented by kvm it was not present in vcpu
 during installation and the guest didn't install workaround kill_guest
 module. Now unsuspecting user upgrades the kernel and tries to restart
 the guest and fails. He writes angry letter to qemu-devel and is
 asked to
 reinstall his guest and move along.


 -cpu best wouldn't solve this.  You need a read/write configuration
 file where QEMU probes the available CPU and records it to be used for
 the lifetime of the VM.

This doesn't work with live migration, and makes templating harder.  The
only persistent storage we can count on are disk images.

The current approach is simple.  The management tool determines the
configuration, qemu applies it.  Unidirectional information flow.  This
also lends itself to the management tool scanning a cluster and
determining a GCD.

 This discussion isn't about whether QEMU should have a Westmere
 processor definition.  In fact, I think I already applied that patch.

 It's a discussion about how we handle this up and down the stack.

 The question is who should define and manage CPU compatibility.  Right
 now QEMU does to a certain degree, libvirt discards this and does it's
 own thing, and VDSM/ovirt-engine assume that we're providing something
 and has built a UI around it.

 What I'm proposing we consider: have VDSM manage CPU definitions in
 order to provide a specific user experience in ovirt-engine.

 We would continue to have Westmere/etc in QEMU exposed as part of the
 user configuration.  But I don't think it makes a lot of sense to have
 to modify QEMU any time a new CPU comes out.

We have to.  New features often come with new MSRs which need to be live
migrated, and of course the cpu flags as well.  We may push all these to
qemu data files, but this is still qemu.  We can't let a management tool
decide that cpu feature X is safe to use on qemu version Y.


-- 
error compiling committee.c: too many arguments to function

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Anthony Liguori

On 03/25/2012 08:14 AM, Avi Kivity wrote:

On 03/25/2012 03:12 PM, Anthony Liguori wrote:

qemu -M pc

Would effectively be short hand for -readconfig
/usr/share/qemu/machines/pc.cfg


In that case

   qemu -cpu westmere

is shorthand for -readconfig /usr/share/qemu/cpus/westmere.cfg.



This is not a bad suggestion, although it would make -cpu ? a bit
awkward.  Do you see an advantage to this over having
/usr/share/qemu/target-x86_64-cpus.cfg that's read early on?


Nope.  As long as qemu -nodefconfig -cpu westmere works, I'm happy.


Why?  What's wrong with:

qemu -nodefconfig -readconfig /usr/share/qemu/cpus/target-x86_64-cpus.cfg \
 -cpu westmere

And if that's not okay, would:

qemu -nodefconfig -nocpudefconfig -cpu Westmere

Not working be a problem?


The reasoning is, loading target-x86_64-cpus.cfg does not alter the
current instance's configuration, so reading it doesn't violate
-nodefconfig.


I think we have a different view of what -nodefconfig does.

We have a couple options today:

-nodefconfig

Don't read the default configuration files.  By default, we read 
/etc/qemu/qemu.cfg and /etc/qemu/target-$(ARCH).cfg


-nodefaults

Don't create default devices.

-vga none

Don't create the default VGA device (not covered by -nodefaults).

With these two options, the semantics you get an absolutely minimalistic 
instance of QEMU.  Tools like libguestfs really want to create the simplest 
guest and do the least amount of processing so the guest runs as fast as possible.


It does suck a lot that this isn't a single option.  I would much prefer 
-nodefaults to be implied by -nodefconfig.  Likewise, I would prefer that 
-nodefaults implied -vga none.



files be read by default or just treated as additional configuration
files.


If they're read as soon as they're referenced, what's the difference?

I think the thread has reduced to: should /usr/share configuration

I suspect libvirt would not be happy with reading configuration files
on demand..


Why not?


It implies a bunch of SELinux labeling to make sVirt work.  libvirt tries very 
hard to avoid having QEMU read *any* files at all when it starts up.


Regards,

Anthony Liguori


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Anthony Liguori

On 03/25/2012 08:21 AM, Avi Kivity wrote:

On 03/11/2012 04:12 PM, Anthony Liguori wrote:

This discussion isn't about whether QEMU should have a Westmere
processor definition.  In fact, I think I already applied that patch.

It's a discussion about how we handle this up and down the stack.

The question is who should define and manage CPU compatibility.  Right
now QEMU does to a certain degree, libvirt discards this and does it's
own thing, and VDSM/ovirt-engine assume that we're providing something
and has built a UI around it.

What I'm proposing we consider: have VDSM manage CPU definitions in
order to provide a specific user experience in ovirt-engine.

We would continue to have Westmere/etc in QEMU exposed as part of the
user configuration.  But I don't think it makes a lot of sense to have
to modify QEMU any time a new CPU comes out.


We have to.  New features often come with new MSRs which need to be live
migrated, and of course the cpu flags as well.  We may push all these to
qemu data files, but this is still qemu.  We can't let a management tool
decide that cpu feature X is safe to use on qemu version Y.


I think QEMU should own CPU definitions.  I think a management tool should have 
the choice of whether they are used though because they are a policy IMHO.


It's okay for QEMU to implement some degree of policy as long as a management 
tool can override it with a different policy.


Regards,

Anthony Liguori





--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Avi Kivity
On 03/25/2012 03:22 PM, Anthony Liguori wrote:
 In that case

qemu -cpu westmere

 is shorthand for -readconfig /usr/share/qemu/cpus/westmere.cfg.


 This is not a bad suggestion, although it would make -cpu ? a bit
 awkward.  Do you see an advantage to this over having
 /usr/share/qemu/target-x86_64-cpus.cfg that's read early on?

 Nope.  As long as qemu -nodefconfig -cpu westmere works, I'm happy.


 Why?  What's wrong with:

 qemu -nodefconfig -readconfig
 /usr/share/qemu/cpus/target-x86_64-cpus.cfg \
  -cpu westmere

 And if that's not okay, would:

 qemu -nodefconfig -nocpudefconfig -cpu Westmere

 Not working be a problem?

Apart from the command line length, it confuses configuration with
definition.

target-x86_64-cpus.cfg does not configure qemu for anything, it's merely
the equivalent of

  #define westmere (x86_def_t) { ... }
  #define nehalem (x86_def_t) { ... }
  #define bulldozer (x86_def_t) { ... } // for PC

so it should be read at each invocation.  On the other hand, pc.cfg and
westmere.cfg (as used previously) are shorthand for

   machine = (QEMUMachine) { ... };
   cpu = (x86_def_t) { ... };

so they should only be read if requested explicitly (or indirectly).


 The reasoning is, loading target-x86_64-cpus.cfg does not alter the
 current instance's configuration, so reading it doesn't violate
 -nodefconfig.

 I think we have a different view of what -nodefconfig does.

 We have a couple options today:

 -nodefconfig

 Don't read the default configuration files.  By default, we read
 /etc/qemu/qemu.cfg and /etc/qemu/target-$(ARCH).cfg


The latter seems meaningless to avoid reading.  It's just a set of
#defines, what do you get by not reading it?

 -nodefaults

 Don't create default devices.

 -vga none

 Don't create the default VGA device (not covered by -nodefaults).

 With these two options, the semantics you get an absolutely
 minimalistic instance of QEMU.  Tools like libguestfs really want to
 create the simplest guest and do the least amount of processing so the
 guest runs as fast as possible.

 It does suck a lot that this isn't a single option.  I would much
 prefer -nodefaults to be implied by -nodefconfig.  Likewise, I would
 prefer that -nodefaults implied -vga none.

I don't have a qemu.cfg so can't comment on it, but in what way does
reading target-x86_64.cfg affect the current instance (that is, why is
-nodefconfig needed over -nodefaults -vga look-at-the-previous-option?)


 files be read by default or just treated as additional configuration
 files.

 If they're read as soon as they're referenced, what's the difference?
 I think the thread has reduced to: should /usr/share configuration

 I suspect libvirt would not be happy with reading configuration files
 on demand..

 Why not?

 It implies a bunch of SELinux labeling to make sVirt work.  libvirt
 tries very hard to avoid having QEMU read *any* files at all when it
 starts up.

The /usr/share/qemu files should be statically labelled to allow qemu to
read them, so we can push more code into data files.

-- 
error compiling committee.c: too many arguments to function

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH] Add qemu support for ppc64 on FC16 or above for rpm packaging

2012-03-25 Thread Li Zhang

On 03/23/2012 12:29 PM, Li Zhang wrote:

On Fedora16 or above, qemu is supported now. So it is added
in rpm packaging.

Signed-off-by: Li Zhangzhlci...@linux.vnet.ibm.com
---
  libvirt.spec.in |4 ++--
  1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libvirt.spec.in b/libvirt.spec.in
index 072fd8e..568a84f 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -139,8 +139,8 @@
  %define with_xen 0
  %endif

-# Fedora doesn't have any QEMU on ppc64 - only ppc
-%if 0%{?fedora}
+# Fedora doesn't have any QEMU on ppc64 until FC16 - only ppc
+%if 0%{?fedora}  16
  %ifarch ppc64
  %define with_qemu 0
  %endif


Any comment is appreciated. :)

Thanks :)
Li

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH] Add qemu support for ppc64 on FC16 or above for rpm packaging

2012-03-25 Thread Laine Stump
On 03/25/2012 10:10 AM, Li Zhang wrote:
 On 03/23/2012 12:29 PM, Li Zhang wrote:
 On Fedora16 or above, qemu is supported now. So it is added
 in rpm packaging.

 Signed-off-by: Li Zhangzhlci...@linux.vnet.ibm.com
 ---
   libvirt.spec.in |4 ++--
   1 files changed, 2 insertions(+), 2 deletions(-)

 diff --git a/libvirt.spec.in b/libvirt.spec.in
 index 072fd8e..568a84f 100644
 --- a/libvirt.spec.in
 +++ b/libvirt.spec.in
 @@ -139,8 +139,8 @@
   %define with_xen 0
   %endif

 -# Fedora doesn't have any QEMU on ppc64 - only ppc
 -%if 0%{?fedora}
 +# Fedora doesn't have any QEMU on ppc64 until FC16 - only ppc
 +%if 0%{?fedora}  16
   %ifarch ppc64
   %define with_qemu 0
   %endif

 Any comment is appreciated. :)

I made a small change and pushed your patch on Friday. I guess you must
have missed the email:

  https://www.redhat.com/archives/libvir-list/2012-March/msg01034.html


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Anthony Liguori

On 03/25/2012 08:34 AM, Avi Kivity wrote:

On 03/25/2012 03:22 PM, Anthony Liguori wrote:

In that case

qemu -cpu westmere

is shorthand for -readconfig /usr/share/qemu/cpus/westmere.cfg.



This is not a bad suggestion, although it would make -cpu ? a bit
awkward.  Do you see an advantage to this over having
/usr/share/qemu/target-x86_64-cpus.cfg that's read early on?


Nope.  As long as qemu -nodefconfig -cpu westmere works, I'm happy.



Why?  What's wrong with:

qemu -nodefconfig -readconfig
/usr/share/qemu/cpus/target-x86_64-cpus.cfg \
  -cpu westmere

And if that's not okay, would:

qemu -nodefconfig -nocpudefconfig -cpu Westmere

Not working be a problem?


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.



target-x86_64-cpus.cfg does not configure qemu for anything, it's merely
the equivalent of

   #define westmere (x86_def_t) { ... }
   #define nehalem (x86_def_t) { ... }
   #define bulldozer (x86_def_t) { ... } // for PC

so it should be read at each invocation.  On the other hand, pc.cfg and
westmere.cfg (as used previously) are shorthand for

machine = (QEMUMachine) { ... };
cpu = (x86_def_t) { ... };

so they should only be read if requested explicitly (or indirectly).


This doesn't make a lot of sense to me.  Here's what I'm proposing:

1) QEMU would have a target-x86_64-cpu.cfg.in that is installed by default in 
/etc/qemu.  It would contain:


[system]
# Load default CPU definitions
readconfig = @DATADIR@/target-x86_64-cpus.cfg

2) target-x86_64-cpus.cfg would be installed to @DATADIR@ and would contain:

[cpudef]
  name = Westmere
  ...

This has the following properties:

A) QEMU has no builtin notion of CPU definitions.  It just has a cpu factory. 
 -cpudef will create a new class called Westmere that can then be enumerated 
through qom-type-list and created via qom-create.


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.


C) This model maps to any other type of class factory.  Machines will eventually 
be expressed as a class factory.  When we implement this, we would change the 
default target-x86_64-cpu.cfg to:


[system]
# Load default CPU definitions
readconfig = @DATADIR@/target-x86_64-cpus.cfg
# Load default machines
readconfig = @DATADIR@/target-x86_64-machines.cfg

A machine definition would look like:

[machinedef]
 name = pc-0.15
 virtio-blk.class_code = 32
 ...

Loading a file based on -cpu doesn't generalize well unless we try to load a 
definition for any possible QOM type to find the class factory for it.  I don't 
think this is a good idea.



The reasoning is, loading target-x86_64-cpus.cfg does not alter the
current instance's configuration, so reading it doesn't violate
-nodefconfig.


I think we have a different view of what -nodefconfig does.

We have a couple options today:

-nodefconfig

Don't read the default configuration files.  By default, we read
/etc/qemu/qemu.cfg and /etc/qemu/target-$(ARCH).cfg



The latter seems meaningless to avoid reading.  It's just a set of
#defines, what do you get by not reading it?


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.



-nodefaults

Don't create default devices.

-vga none

Don't create the default VGA device (not covered by -nodefaults).

With these two options, the semantics you get an absolutely
minimalistic instance of QEMU.  Tools like libguestfs really want to
create the simplest guest and do the least amount of processing so the
guest runs as fast as possible.

It does suck a lot that this isn't a single option.  I would much
prefer -nodefaults to be implied by -nodefconfig.  Likewise, I would
prefer that -nodefaults implied -vga none.


I don't have a qemu.cfg so can't comment on it, but in what way does
reading target-x86_64.cfg affect the current instance (that is, why is
-nodefconfig needed over -nodefaults -vga look-at-the-previous-option?)


It depends on what the user configures it to do.

Regards,

Anthony Liguori

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH] Add qemu support for ppc64 on FC16 or above for rpm packaging

2012-03-25 Thread Li Zhang

On 03/25/2012 10:24 PM, Laine Stump wrote:

On 03/25/2012 10:10 AM, Li Zhang wrote:

On 03/23/2012 12:29 PM, Li Zhang wrote:

On Fedora16 or above, qemu is supported now. So it is added
in rpm packaging.

Signed-off-by: Li Zhangzhlci...@linux.vnet.ibm.com
---
   libvirt.spec.in |4 ++--
   1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libvirt.spec.in b/libvirt.spec.in
index 072fd8e..568a84f 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -139,8 +139,8 @@
   %define with_xen 0
   %endif

-# Fedora doesn't have any QEMU on ppc64 - only ppc
-%if 0%{?fedora}
+# Fedora doesn't have any QEMU on ppc64 until FC16 - only ppc
+%if 0%{?fedora}   16
   %ifarch ppc64
   %define with_qemu 0
   %endif


Any comment is appreciated. :)


I made a small change and pushed your patch on Friday. I guess you must
have missed the email:

   https://www.redhat.com/archives/libvir-list/2012-March/msg01034.html




Got it. Thanks very much.
I really missed the email. :)

Thanks
Li

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Avi Kivity
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.

Again, defining = #define
Configuring = modifying current instance


 target-x86_64-cpus.cfg does not configure qemu for anything, it's merely
 the equivalent of

#define westmere (x86_def_t) { ... }
#define nehalem (x86_def_t) { ... }
#define bulldozer (x86_def_t) { ... } // for PC

 so it should be read at each invocation.  On the other hand, pc.cfg and
 westmere.cfg (as used previously) are shorthand for

 machine = (QEMUMachine) { ... };
 cpu = (x86_def_t) { ... };

 so they should only be read if requested explicitly (or indirectly).

 This doesn't make a lot of sense to me.  Here's what I'm proposing:

 1) QEMU would have a target-x86_64-cpu.cfg.in that is installed by
 default in /etc/qemu.  It would contain:

 [system]
 # Load default CPU definitions
 readconfig = @DATADIR@/target-x86_64-cpus.cfg

 2) target-x86_64-cpus.cfg would be installed to @DATADIR@ and would
 contain:

 [cpudef]
   name = Westmere
   ...

 This has the following properties:

 A) QEMU has no builtin notion of CPU definitions.  It just has a cpu
 factory.  -cpudef will create a new class called Westmere that can
 then be enumerated through qom-type-list and created via qom-create.

 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?

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.


 C) This model maps to any other type of class factory.  Machines will
 eventually be expressed as a class factory.  When we implement this,
 we would change the default target-x86_64-cpu.cfg to:

 [system]
 # Load default CPU definitions
 readconfig = @DATADIR@/target-x86_64-cpus.cfg
 # Load default machines
 readconfig = @DATADIR@/target-x86_64-machines.cfg

 A machine definition would look like:

 [machinedef]
  name = pc-0.15
  virtio-blk.class_code = 32
  ...

 Loading a file based on -cpu doesn't generalize well unless we try to
 load a definition for any possible QOM type to find the class factory
 for it.  I don't think this is a good idea.

Why not load all class factories?  Just don't instantiate any objects.

Otherwise, the meaning of -nodefconfig changes as more stuff is moved
out of .c and into .cfg.


 The reasoning is, loading target-x86_64-cpus.cfg does not alter the
 current instance's configuration, so reading it doesn't violate
 -nodefconfig.

 I think we have a different view of what -nodefconfig does.

 We have a couple options today:

 -nodefconfig

 Don't read the default configuration files.  By default, we read
 /etc/qemu/qemu.cfg and /etc/qemu/target-$(ARCH).cfg


 The latter seems meaningless to avoid reading.  It's just a set of
 #defines, what do you get by not reading it?

 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.


 -nodefaults

 Don't create default devices.

 -vga none

 Don't create the default VGA device (not covered by -nodefaults).

 With these two options, the semantics you get an absolutely
 minimalistic instance of QEMU.  Tools like libguestfs really want to
 create the simplest guest and do the least amount of processing so the
 guest runs as fast as possible.

 It does suck a lot that this isn't a single option.  I would much
 prefer -nodefaults to be implied by -nodefconfig.  Likewise, I would
 prefer that -nodefaults implied -vga none.

 I don't have a qemu.cfg so can't comment on it, but in what way does
 reading target-x86_64.cfg affect the current instance (that is, why is
 -nodefconfig needed over -nodefaults -vga look-at-the-previous-option?)

 It depends on what the user configures it to do.

How?

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.

-- 
error compiling committee.c: too many arguments to function

--
libvir-list mailing list
libvir-list@redhat.com

Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Gleb Natapov
On Sun, Mar 25, 2012 at 03:14:56PM +0200, Avi Kivity wrote:
 On 03/25/2012 03:12 PM, Anthony Liguori wrote:
  qemu -M pc
 
  Would effectively be short hand for -readconfig
  /usr/share/qemu/machines/pc.cfg
 
  In that case
 
qemu -cpu westmere
 
  is shorthand for -readconfig /usr/share/qemu/cpus/westmere.cfg.
 
 
  This is not a bad suggestion, although it would make -cpu ? a bit
  awkward.  Do you see an advantage to this over having
  /usr/share/qemu/target-x86_64-cpus.cfg that's read early on?
 
 Nope.  As long as qemu -nodefconfig -cpu westmere works, I'm happy.
 
As log as qemu -nodefconfig -cpu westmere -M pc1.1 can use different
westmere definition than -M pc1.0 (by amending it according to qom
properties in pc1.1 machine description or by reading
/usr/share/qemu/cpus/westmere-pc1.1.cfg instead) I'm happy too.

 The reasoning is, loading target-x86_64-cpus.cfg does not alter the
 current instance's configuration, so reading it doesn't violate
 -nodefconfig.
 
  files be read by default or just treated as additional configuration
  files.
 
  If they're read as soon as they're referenced, what's the difference?
  I think the thread has reduced to: should /usr/share configuration
 
  I suspect libvirt would not be happy with reading configuration files
  on demand..
 
 Why not?
 
 -- 
 error compiling committee.c: too many arguments to function

--
Gleb.

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Anthony Liguori

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...


Configuring = modifying current instance




target-x86_64-cpus.cfg does not configure qemu for anything, it's merely
the equivalent of

#define westmere (x86_def_t) { ... }
#define nehalem (x86_def_t) { ... }
#define bulldozer (x86_def_t) { ... } // for PC

so it should be read at each invocation.  On the other hand, pc.cfg and
westmere.cfg (as used previously) are shorthand for

 machine = (QEMUMachine) { ... };
 cpu = (x86_def_t) { ... };

so they should only be read if requested explicitly (or indirectly).


This doesn't make a lot of sense to me.  Here's what I'm proposing:

1) QEMU would have a target-x86_64-cpu.cfg.in that is installed by
default in /etc/qemu.  It would contain:

[system]
# Load default CPU definitions
readconfig = @DATADIR@/target-x86_64-cpus.cfg

2) target-x86_64-cpus.cfg would be installed to @DATADIR@ and would
contain:

[cpudef]
   name = Westmere
   ...

This has the following properties:

A) QEMU has no builtin notion of CPU definitions.  It just has a cpu
factory.  -cpudef will create a new class called Westmere that can
then be enumerated through qom-type-list and created via qom-create.

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.


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?  So what's the mechanism to do this?



C) This model maps to any other type of class factory.  Machines will
eventually be expressed as a class factory.  When we implement this,
we would change the default target-x86_64-cpu.cfg to:

[system]
# Load default CPU definitions
readconfig = @DATADIR@/target-x86_64-cpus.cfg
# Load default machines
readconfig = @DATADIR@/target-x86_64-machines.cfg

A machine definition would look like:

[machinedef]
  name = pc-0.15
  virtio-blk.class_code = 32
  ...

Loading a file based on -cpu doesn't generalize well unless we try to
load a definition for any possible QOM type to find the class factory
for it.  I don't think this is a good idea.


Why not load all class factories?  Just don't instantiate any objects.


Unless we have two different config syntaxes, I think it will lead to a lot of 
confusion.  Having some parts of a config file be parsed and others not is 
fairly strange.



Otherwise, the meaning of -nodefconfig changes as more stuff is moved
out of .c and into .cfg.


What's the problem with this?


The reasoning is, loading target-x86_64-cpus.cfg does not alter the
current instance's configuration, so reading it doesn't violate
-nodefconfig.


I think we have a different view of what -nodefconfig does.

We have a couple options today:

-nodefconfig

Don't read the default configuration files.  By default, we read
/etc/qemu/qemu.cfg and /etc/qemu/target-$(ARCH).cfg



The latter seems meaningless to avoid reading.  It's just a set of
#defines, what do you get by not reading it?


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..




-nodefaults

Don't create default devices.

-vga none

Don't create the default VGA device (not covered by -nodefaults).

With these two options, the semantics you get an absolutely
minimalistic instance of QEMU.  Tools like libguestfs really want to
create the simplest guest and do the least amount of processing so the
guest runs as fast as possible.

It does suck a lot that this isn't a single option.  I would much
prefer -nodefaults to be implied by -nodefconfig.  Likewise, I would
prefer that -nodefaults implied -vga 

Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Anthony Liguori

On 03/25/2012 09:58 AM, Gleb Natapov wrote:

On Sun, Mar 25, 2012 at 03:14:56PM +0200, Avi Kivity wrote:

On 03/25/2012 03:12 PM, Anthony Liguori wrote:

qemu -M pc

Would effectively be short hand for -readconfig
/usr/share/qemu/machines/pc.cfg


In that case

   qemu -cpu westmere

is shorthand for -readconfig /usr/share/qemu/cpus/westmere.cfg.



This is not a bad suggestion, although it would make -cpu ? a bit
awkward.  Do you see an advantage to this over having
/usr/share/qemu/target-x86_64-cpus.cfg that's read early on?


Nope.  As long as qemu -nodefconfig -cpu westmere works, I'm happy.


As log as qemu -nodefconfig -cpu westmere -M pc1.1


-nodefconfig is going to eventually mean that -cpu westmere and -M pc-1.1 will 
not work.


This is where QEMU is going.  There is no reason that a normal user should ever 
use -nodefconfig.


Regards,

Anthony Liguori

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Avi Kivity
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*.

#define westmere blah is not configuration, otherwise the meaning of
configuration will drift over time.

-cpu blah is, of course.


 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?

 So what's the mechanism to do this?

 C) This model maps to any other type of class factory.  Machines will
 eventually be expressed as a class factory.  When we implement this,
 we would change the default target-x86_64-cpu.cfg to:

 [system]
 # Load default CPU definitions
 readconfig = @DATADIR@/target-x86_64-cpus.cfg
 # Load default machines
 readconfig = @DATADIR@/target-x86_64-machines.cfg

 A machine definition would look like:

 [machinedef]
   name = pc-0.15
   virtio-blk.class_code = 32
   ...

 Loading a file based on -cpu doesn't generalize well unless we try to
 load a definition for any possible QOM type to find the class factory
 for it.  I don't think this is a good idea.

 Why not load all class factories?  Just don't instantiate any objects.

 Unless we have two different config syntaxes, I think it will lead to
 a lot of confusion.  Having some parts of a config file be parsed and
 others not is fairly strange.

Parse all of them (and make sure all are class factories).

The only real configuration item is that without -nodefconfig, we create
a -M pc-1.1 system.  Everything else derives from that.


 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.


 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.

-- 
error compiling committee.c: too many arguments to function

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Avi Kivity
On 03/25/2012 05:07 PM, Anthony Liguori wrote:
 As log as qemu -nodefconfig -cpu westmere -M pc1.1


 -nodefconfig is going to eventually mean that -cpu westmere and -M
 pc-1.1 will not work.

 This is where QEMU is going.  There is no reason that a normal user
 should ever use -nodefconfig.

I don't think anyone or anything can use it, since it's meaning is not
well defined.  not read any configuration files where parts of qemu
are continually moved out to configuration files means its a moving target.

Suppose we define the southbridge via a configuration file.  Does that
mean we don't load it any more?

-- 
error compiling committee.c: too many arguments to function

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Anthony Liguori

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-@a...@-cpus.cfg
readconfig=@DATADIR@/target-@a...@-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

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Anthony Liguori

On 03/25/2012 10:18 AM, Avi Kivity wrote:

On 03/25/2012 05:07 PM, Anthony Liguori wrote:

As log as qemu -nodefconfig -cpu westmere -M pc1.1



-nodefconfig is going to eventually mean that -cpu westmere and -M
pc-1.1 will not work.

This is where QEMU is going.  There is no reason that a normal user
should ever use -nodefconfig.


I don't think anyone or anything can use it, since it's meaning is not
well defined.  not read any configuration files where parts of qemu
are continually moved out to configuration files means its a moving target.


I think you assume that all QEMU users care about forward and backwards 
compatibility on the command line about all else.


That's really not true.  The libvirt folks have stated repeatedly that command 
line backwards compatibility is not critical to them.  They are happy to require 
that a new version of QEMU requires a new version of libvirt.


I'm not saying that backwards compat isn't important--it is.  But there are 
users who are happy to live on the bleeding edge.



Suppose we define the southbridge via a configuration file.  Does that
mean we don't load it any more?


Yes.  If I want the leanest and meanest version of QEMU that will start in the 
smallest number of milliseconds, then being able to tell QEMU not to load 
configuration files and create a very specific machine is a Good Thing.  Why 
exclude users from being able to do this?


Regards,

Anthony Liguori





--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Avi Kivity
On 03/25/2012 05:26 PM, Anthony Liguori wrote:
 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-@a...@-cpus.cfg
 readconfig=@DATADIR@/target-@a...@-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.

What, more options?

I don't think -nodefconfig (as defined) is usable, since there is no way
for the user to tell what it means short of reading those files.

-no-user-config is usable, I think it needs also to mean that qemu
without -M/-cpu/-m options will error out? since the default machine/cpu
types are default configuration.


 #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.

Confused.


 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.

Exactly.  The types are no different, so there's no reason to
discriminate against types that happen to live in qemu-provided data
files vs. qemu code.  They aren't instantiated, so we lose nothing by
creating the factories (just so long as the factories aren't
mass-producing objects).


 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.


I don't see how libvirt can use -nodefconfig with the fluid meaning you
attach to it, or what it gains from it.


 -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.

Then it's broken.  How can anyone use something that has an undefined
effect?

If I see something like -nodefconfig, I assume it will create a bare
bones guest that will not depend on any qemu defaults and will be stable
across releases.  I don't think anyone will understand -nodefconfig to
be something version dependent without reading the qemu management tool
author's guide.

-- 
error compiling committee.c: too many arguments to function

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Avi Kivity
On 03/25/2012 05:30 PM, Anthony Liguori wrote:
 On 03/25/2012 10:18 AM, Avi Kivity wrote:
 On 03/25/2012 05:07 PM, Anthony Liguori wrote:
 As log as qemu -nodefconfig -cpu westmere -M pc1.1


 -nodefconfig is going to eventually mean that -cpu westmere and -M
 pc-1.1 will not work.

 This is where QEMU is going.  There is no reason that a normal user
 should ever use -nodefconfig.

 I don't think anyone or anything can use it, since it's meaning is not
 well defined.  not read any configuration files where parts of qemu
 are continually moved out to configuration files means its a moving
 target.

 I think you assume that all QEMU users care about forward and
 backwards compatibility on the command line about all else.

 That's really not true.  The libvirt folks have stated repeatedly that
 command line backwards compatibility is not critical to them.  They
 are happy to require that a new version of QEMU requires a new version
 of libvirt.

I don't think this came out of happiness, but despair.  Seriously,
keeping compatibility is one of the things we work hardest to achieve,
and we can't manage it for our command line?


 I'm not saying that backwards compat isn't important--it is.  But
 there are users who are happy to live on the bleeding edge.

That's fine, but I don't see how -nodefconfig helps them.  All it does
is take away the building blocks (definitions) that they can use when
setting up their configuration.


 Suppose we define the southbridge via a configuration file.  Does that
 mean we don't load it any more?

 Yes.  If I want the leanest and meanest version of QEMU that will
 start in the smallest number of milliseconds, then being able to tell
 QEMU not to load configuration files and create a very specific
 machine is a Good Thing.  Why exclude users from being able to do this?

So is this the point?  Reducing startup time?

I can't say I see the reason to invest so much effort in shaving a
millisecond or less from this, but if we did want to, the way would be
lazy loading of the configuration where items are parsed as they are
referenced.

-- 
error compiling committee.c: too many arguments to function

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Avi Kivity
On 03/25/2012 03:26 PM, Anthony Liguori wrote:
 We would continue to have Westmere/etc in QEMU exposed as part of the
 user configuration.  But I don't think it makes a lot of sense to have
 to modify QEMU any time a new CPU comes out.

 We have to.  New features often come with new MSRs which need to be live
 migrated, and of course the cpu flags as well.  We may push all these to
 qemu data files, but this is still qemu.  We can't let a management tool
 decide that cpu feature X is safe to use on qemu version Y.


 I think QEMU should own CPU definitions.  

Agree.

 I think a management tool should have the choice of whether they are
 used though because they are a policy IMHO.

 It's okay for QEMU to implement some degree of policy as long as a
 management tool can override it with a different policy.

Sure.

We can have something like

  # default machine's westmere
  qemu -cpu westmere

  # pc-1.0's westmere
  qemu -M pc-1.0 -cpu westmere

  # pc-1.0's westmere, without nx-less
  qemu -M pc-1.0 -cpu westmere,-nx

  # specify everything in painful detail
  qemu -cpu
vendor=Foo,family=17,model=19,stepping=3,maxleaf=12,+fpu,+vme,leaf10eax=0x1234567,+etc


-- 
error compiling committee.c: too many arguments to function

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Anthony Liguori

On 03/25/2012 10:45 AM, Avi Kivity wrote:

On 03/25/2012 05:30 PM, Anthony Liguori wrote:

On 03/25/2012 10:18 AM, Avi Kivity wrote:

On 03/25/2012 05:07 PM, Anthony Liguori wrote:

As log as qemu -nodefconfig -cpu westmere -M pc1.1



-nodefconfig is going to eventually mean that -cpu westmere and -M
pc-1.1 will not work.

This is where QEMU is going.  There is no reason that a normal user
should ever use -nodefconfig.


I don't think anyone or anything can use it, since it's meaning is not
well defined.  not read any configuration files where parts of qemu
are continually moved out to configuration files means its a moving
target.


I think you assume that all QEMU users care about forward and
backwards compatibility on the command line about all else.

That's really not true.  The libvirt folks have stated repeatedly that
command line backwards compatibility is not critical to them.  They
are happy to require that a new version of QEMU requires a new version
of libvirt.


I don't think this came out of happiness, but despair.  Seriously,
keeping compatibility is one of the things we work hardest to achieve,
and we can't manage it for our command line?


I hate to burst your bubble, but we struggle and rarely maintain the level of 
compatibility you're seeking to have.


I agree with you that we need to do a better job maintaining compatibility which 
is why I'm trying to clearly separate the things that we will never break from 
the things that will change over time.


-nodefconfig is a moving target.  If you want stability, don't use it.  If you 
just want to prevent the user's /etc/qemu stuff from being loaded, use 
-no-user-config.




I'm not saying that backwards compat isn't important--it is.  But
there are users who are happy to live on the bleeding edge.


That's fine, but I don't see how -nodefconfig helps them.  All it does
is take away the building blocks (definitions) that they can use when
setting up their configuration.


Yes, this is a feature.


Suppose we define the southbridge via a configuration file.  Does that
mean we don't load it any more?


Yes.  If I want the leanest and meanest version of QEMU that will
start in the smallest number of milliseconds, then being able to tell
QEMU not to load configuration files and create a very specific
machine is a Good Thing.  Why exclude users from being able to do this?


So is this the point?  Reducing startup time?


Yes, that's one reason.  But maybe a user wants to have a whole different set of 
machine types and doesn't care to have the ones we provide.  Why prevent a user 
from doing this?


Maybe they have a management tool that attempts to totally hide QEMU from the 
end user and exposes a different set of machine types.  It's certainly more 
convenient for something like the Android emulator to only have to deal with 
QEMU knowing about the 4 types of machines that it specifically supports.


Regards,

Anthony Liguori

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Anthony Liguori

On 03/25/2012 10:40 AM, Avi Kivity wrote:

On 03/25/2012 05:26 PM, Anthony Liguori wrote:

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-@a...@-cpus.cfg
readconfig=@DATADIR@/target-@a...@-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.


What, more options?


Okay, we can just drop -no-user-config and then if a management tool wants to do 
the equivalent, they can do -nodefconfig + '-readconfig 
@DATADIR@/system-@ARCH@.cfg'.  I'm equally happy with that :-)



I don't think -nodefconfig (as defined) is usable, since there is no way
for the user to tell what it means short of reading those files.


*if the user doesn't know specifics about this QEMU version.

You make the assumption that all users are going to throw arbitrary options at 
arbitrary QEMU versions.  That's certainly an important use-case but it's not 
the only one.



-no-user-config is usable, I think it needs also to mean that qemu
without -M/-cpu/-m options will error out?


You're confusing -nodefaults (or something stronger than -nodefaults) with 
-no-user-config.


Yes, the distinctions are confusing.  It's not all fixable tomorrow.  If we take 
my config refactoring series, we can get 90% of the way there soon but Paolo has 
a more thorough refactoring..



#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.


Confused.


We don't have a formal concept of -read-definition-config and 
-read-configuration-config


There's no easy or obvious way to create such a concept either nor do I think 
the distinction is meaningful to users.



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.


Exactly.  The types are no different, so there's no reason to
discriminate against types that happen to live in qemu-provided data
files vs. qemu code.  They aren't instantiated, so we lose nothing by
creating the factories (just so long as the factories aren't
mass-producing objects).


At some point, I'd like to have type modules that are shared objects.  I'd like 
QEMU to start with almost no builtin types and allow the user to configure which 
modules get loaded.


In the long term, I'd like QEMU to be a small, robust core with the vast 
majority of code relegated to modules with the user ultimately in control of 
module loading.


Yes, I'd want some module autoloading system but there should always be a way to 
launch QEMU without loading any modules and then load a very specific set of 
modules (as defined by the user).


You can imagine this being useful for something like Common Criteria 
certifications.


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.



I don't see how libvirt can use -nodefconfig with the fluid meaning you
attach to it, or what it gains from it.



-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.


Then it's broken.  How can anyone use something that has an undefined
effect?


It's obviously defined for a given release, just not defined long term.


If I see something like 

Re: [libvirt] [Qemu-devel] Modern CPU models cannot be used with libvirt

2012-03-25 Thread Avi Kivity
On 03/25/2012 08:01 PM, Anthony Liguori wrote:
 I don't think this came out of happiness, but despair.  Seriously,
 keeping compatibility is one of the things we work hardest to achieve,
 and we can't manage it for our command line?


 I hate to burst your bubble, but we struggle and rarely maintain the
 level of compatibility you're seeking to have.

 I agree with you that we need to do a better job maintaining
 compatibility which is why I'm trying to clearly separate the things
 that we will never break from the things that will change over time.

 -nodefconfig is a moving target.  If you want stability, don't use
 it.  If you just want to prevent the user's /etc/qemu stuff from being
 loaded, use -no-user-config.

Fine, but let's clearly document it as such.

Note just saying it doesn't load any configuration files isn't
sufficient.  We have to say that it kills Westmere and some of its
friends, but preserves others like qemu64.  Otherwise it's impossible to
use it except by trial and error.



 I'm not saying that backwards compat isn't important--it is.  But
 there are users who are happy to live on the bleeding edge.

 That's fine, but I don't see how -nodefconfig helps them.  All it does
 is take away the building blocks (definitions) that they can use when
 setting up their configuration.

 Yes, this is a feature.

I don't see how, but okay.


 Suppose we define the southbridge via a configuration file.  Does that
 mean we don't load it any more?

 Yes.  If I want the leanest and meanest version of QEMU that will
 start in the smallest number of milliseconds, then being able to tell
 QEMU not to load configuration files and create a very specific
 machine is a Good Thing.  Why exclude users from being able to do this?

 So is this the point?  Reducing startup time?

 Yes, that's one reason.  But maybe a user wants to have a whole
 different set of machine types and doesn't care to have the ones we
 provide.  Why prevent a user from doing this?

How are we preventing a user from doing it?  In what way is -nodefconfig
helping it?

 Maybe they have a management tool that attempts to totally hide QEMU
 from the end user and exposes a different set of machine types.  It's
 certainly more convenient for something like the Android emulator to
 only have to deal with QEMU knowing about the 4 types of machines that
 it specifically supports.

If it supports four types, it should always pass one of them to qemu. 
The only thing -nodefconfig adds is breakage when qemu moves something
that one of those four machines relies on to a config file.

-- 
error compiling committee.c: too many arguments to function

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] Start of freeze for libvirt-0.9.11 and availability of rc1

2012-03-25 Thread Daniel Veillard
  As scheduled, we are entering the freeze for 0.9.11.
I think most API additions are now commited to git upstream (please
raise your voice quickly if you see something missing !)

I have made a release candidate 1 tarball (and associated rpms) at
   ftp://libvirt.org/libvirt/libvirt-0.9.11-rc1.tar.gz
and the git tree is tagged.

I think I will make an release candidate 2 tarball on Wednesday, and
I'm hoping for a final release on Friday, or maybe Monday if there are
issues found.

 Please give it a try ! Stability and portability feedback are really
welcome as we didn't had a release in Feb and the risk of having
something messed up is slightly higher than usual !

  thanks in advance,

Daniel


-- 
Daniel Veillard  | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
dan...@veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH v2 2/2] Added syntax-check rule for return with parentheses

2012-03-25 Thread Osier Yang

On 2012年03月23日 15:34, Martin Kletzander wrote:

After cleanup introduced with previous commit, there is a need for
syntax-check rule taking care of return(). Regexp used in 'prohibit'
parameter is taken from the cleanup commit and modified so it fits
'grep -E' format. Semicolon at the end is needed, otherwise the regexp
could match return with cast.

Exception is created for python source files because we don't have any
documentation restricting the use of return that matches this case.
---
  cfg.mk |8 
  1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/cfg.mk b/cfg.mk
index 24e6a69..eae629b 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -469,6 +469,12 @@ sc_prohibit_xmlURI:
halt='use virURI(Parse|Format), not xml(ParseURI|SaveUri)'  \
  $(_sc_search_regexp)

+# we don't want old old-style return with parentheses around argument
+sc_prohibit_return_as_function:
+   @prohibit='\return *\(([^()]*(\([^()]*\)[^()]*)*)\) *;'\
+   halt='avoid extra () with return statements'\
+ $(_sc_search_regexp)
+
  # ATTRIBUTE_UNUSED should only be applied in implementations, not
  # header declarations
  sc_avoid_attribute_unused_in_header:
@@ -791,6 +797,8 @@ exclude_file_name_regexp--sc_prohibit_xmlGetProp = 
^src/util/xml\.c$$

  exclude_file_name_regexp--sc_prohibit_xmlURI = ^src/util/viruri\.c$$

+exclude_file_name_regexp--sc_prohibit_return_as_function = ^\.py$$
+
  exclude_file_name_regexp--sc_require_config_h = ^examples/

  exclude_file_name_regexp--sc_require_config_h_first = ^examples/
--
1.7.3.4


Looks good from my point of view, ACK. But we might need to
push these later after 0.9.11.

Regards,
Osier

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

[libvirt] Createion of external snapshot qcow2

2012-03-25 Thread Pankaj Rawat
Hi all,

 

I have a query regarding the external snapshot in qcow2 also known as
backing file.

 

In qemu I created a external snapshot and then create its xml in order
to boot it from VIRSH. But that is complex process.

 

I want to know whether there is any command in LIBVIRT which can create
external snapshot(Backing file) and also we can boot from it?

 

 




DISCLAIMER:

---

The contents of this e-mail and any attachment(s) are confidential and
intended

for the named recipient(s) only. 

It shall not attach any liability on the originator or NECHCL or its

affiliates. Any views or opinions presented in 

this email are solely those of the author and may not necessarily reflect the

opinions of NECHCL or its affiliates. 

Any form of reproduction, dissemination, copying, disclosure, modification,

distribution and / or publication of 

this message without the prior written consent of the author of this e-mail is

strictly prohibited. If you have 

received this email in error please delete it and notify the sender

immediately. .

-
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list