1. 30 9月, 2011 1 次提交
    • M
      qemu: Check for outstanding async job too · a111b9e2
      Michal Privoznik 提交于
      Currently, qemuDomainGetXMLDesc and qemudDomainGetInfo check for
      outstanding synchronous job before (eventual) monitor entering.
      However, there can be already async job set, e.g. migration.
      a111b9e2
  2. 29 9月, 2011 14 次提交
  3. 28 9月, 2011 16 次提交
    • E
      snapshot: implement getparent in qemu · 4ee8092d
      Eric Blake 提交于
      First hypervisor implementation of the new API.
      Allows 'virsh snapshot-list --tree' to be more efficient.
      
      * src/qemu/qemu_driver.c (qemuDomainSnapshotGetParent): New
      function.
      4ee8092d
    • E
      snapshot: add virsh snapshot-list --tree · 1cf0e3db
      Eric Blake 提交于
      Reuse the tree listing of nodedev-list, coupled with the new helper
      function to efficiently grab snapshot parent names, to produce
      tree output for a snapshot hierarchy.  For example:
      
      $ virsh snapshot-list dom --tree
      root1
       |
        +- sibling1
        +- sibling2
        |   |
        |   +- grandchild
        |
        +- sibling3
      
      root2
       |
        +- child
      
      * tools/virsh.c (cmdSnapshotList): Add --tree.
      * tools/virsh.pod (snapshot-list): Document it.
      1cf0e3db
    • E
      snapshot: refactor virsh snapshot parent computation · d1be48f9
      Eric Blake 提交于
      Make parent computation reusable, using virDomainSnapshotGetParent
      when possible.
      
      * tools/virsh.c (vshGetSnapshotParent): New helper.
      (cmdSnapshotParent): Use it.
      d1be48f9
    • E
      snapshot: remote protocol for getparent · 3ca4296f
      Eric Blake 提交于
      Mostly straight-forward, although this is the first API that
      returns a new snapshot based on a snapshot rather than a domain.
      
      * src/remote/remote_protocol.x
      (REMOTE_PROC_DOMAIN_SNAPSHOT_GET_PARENT): New rpc.
      (remote_domain_snapshot_get_parent_args)
      (remote_domain_snapshot_get_parent_ret): New structs.
      * src/rpc/gendispatch.pl: Adjust generator.
      * src/remote/remote_driver.c (remote_driver): Use it.
      * src/remote_protocol-structs: Update.
      3ca4296f
    • E
      snapshot: new virDomainSnapshotGetParent API · a2f706de
      Eric Blake 提交于
      Although a client can already obtain a snapshot's parent by
      dumping and parsing the xml, then doing a snapshot lookup by
      name, it is more efficient to get the parent in one step, which
      in turn will make operations that must traverse a snapshot
      hierarchy easier to perform.
      
      * include/libvirt/libvirt.h.in (virDomainSnapshotGetParent):
      Declare.
      * src/libvirt.c (virDomainSnapshotGetParent): New function.
      * src/libvirt_public.syms: Export it.
      * src/driver.h (virDrvDomainSnapshotGetParent): New callback.
      a2f706de
    • E
      docs: document node device XML · b1746239
      Eric Blake 提交于
      Coupled with the recent virsh nodedev-* doc patch, this should now
      give a better picture of libvirt node device handling.
      
      * docs/formatnode.html.in: Fill in page.
      b1746239
    • E
      docs: document virsh nodedev-* commands · beeab559
      Eric Blake 提交于
      This section of the man page was completely missing; I stumbled on
      it when I had no clue that I had to use nodedev-reattach after
      I was done playing with <hostdev> device passthrough to one of my
      guests.
      
      * tools/virsh.pod (NODEDEV COMMANDS): New section.
      (attach-device, detach-device): Add cross-references.
      beeab559
    • L
      security: properly chown/label bidirectional and unidirectional fifos · 46e8dc71
      Laine Stump 提交于
      This patch fixes the regression with using named pipes for qemu serial
      devices noted in:
      
        https://bugzilla.redhat.com/show_bug.cgi?id=740478
      
      The problem was that, while new code in libvirt looks for a single
      bidirectional fifo of the name given in the config, then relabels that
      and continues without looking for / relabelling the two unidirectional
      fifos named ${name}.in and ${name}.out, qemu looks in the opposite
      order. So if the user had naively created all three fifos, libvirt
      would relabel the bidirectional fifo to allow qemu access, but qemu
      would attempt to use the two unidirectional fifos and fail (because it
      didn't have proper permissions/rights).
      
      This patch changes the order that libvirt looks for the fifos to match
      what qemu does - first it looks for the dual fifos, then it looks for
      the single bidirectional fifo. If it finds the dual unidirectional
      fifos first, it labels/chowns them and ignores any possible
      bidirectional fifo.
      
      (Note commit d37c6a3a (which first appeared in libvirt-0.9.2) added
      the code that checked for a bidirectional fifo. Prior to that commit,
      bidirectional fifos for serial devices didn't work because libvirt
      always required the ${name}.(in|out) fifos to exist, and qemu would
      always prefer those.
      46e8dc71
    • J
      qemu: Preserve fakeReboot flag in domain status · bd83b2a3
      Jiri Denemark 提交于
      Thus, when libvirtd is restarted, it will know if a domain is supposed
      to be killed or reset when it shuts down.
      bd83b2a3
    • J
      qemu: Finish domain shutdown on reconnect · cc0e4e8d
      Jiri Denemark 提交于
      If a domain started with -no-shutdown shuts down while libvirtd is not
      running, it will be seen as paused when libvirtd reconnects to it. Use
      the paused reason to detect if a domain was stopped because of shutdown
      and finish the process just as if a SHUTDOWN event is delivered from
      qemu.
      cc0e4e8d
    • J
      qemu: Check domain status details when reconnecting monitor · c20b7c98
      Jiri Denemark 提交于
      Current qemu is able to give us detailed domain status (not just if it
      is running or not) which we can translate into a status reason.
      c20b7c98
    • J
      qemu: Always remove domain object if MigratePrepare fails · 1cb031a2
      Jiri Denemark 提交于
      If migration failed in Prepare phase after virDomainAssignDef and before
      a job was started, the domain object was not properly removed.
      1cb031a2
    • J
      fix AppArmor driver for pipe character devices · 03d89991
      Jamie Strandboge 提交于
      The AppArmor security driver adds only the path specified in the domain
      XML for character devices of type 'pipe'. It should be using <path>.in
      and <path>.out. We do this by creating a new vah_add_file_chardev() and
      use it for char devices instead of vah_add_file(). Also adjust
      valid_path() to accept S_FIFO (since qemu chardevs of type 'pipe' use
      fifos). This is https://launchpad.net/bugs/832507
      03d89991
    • P
      virsh: Allow using complete <capabilities> elements with cpu-baseline · b0889eae
      Peter Krempa 提交于
      This patch cleans the cpu baseline function using new libvirt helper
      functions and fixes XPath expression that selects <cpu> elements from
      the source file, that can contain concatenated <capabilities> XMLs,
      domain XMLs and bare <cpu> elements. The fixed XPath expression ensures
      not to select NUMA <cpu id=... elements.
      
      This patch also removes vshRealloc function, that remained unused after
      cleaning up cpu-baseline.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=731645
      b0889eae
    • P
      virsh: Allow using domain and capabilities XMLs with cpu-compare · 882e768e
      Peter Krempa 提交于
      This patch adds extraction of the <cpu> element from capabilities and
      domain definition XML documents to improve user experience.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=731151
      882e768e
    • E
      snapshot: fix man page typos · 63b2edc8
      Eric Blake 提交于
      pod2man from perl-5.8.8 (RHEL 5) errors out on ill-formed POD:
      
      *** ERROR: unterminated I<...> at line 1114 in file virsh.pod
      *** ERROR: unterminated I<...> at line 1851 in file virsh.pod
      
      Newer pod2man appears to be more tolerant (which is a shame,
      because it meant that this error is harder to detect).
      
      * tools/virsh.pod (undefine, snapshot-current): Add missing >.
      63b2edc8
  4. 27 9月, 2011 9 次提交
    • L
      qemu: add ability to set PCI device "rombar" on or off · dc79852a
      Laine Stump 提交于
      This patch was made in response to:
      
        https://bugzilla.redhat.com/show_bug.cgi?id=738095
      
      In short, qemu's default for the rombar setting (which makes the
      firmware ROM of a PCI device visible/not on the guest) was previously
      0 (not visible), but they recently changed the default to 1
      (visible). Unfortunately, there are some PCI devices that fail in the
      guest when rombar is 1, so the setting must be exposed in libvirt to
      prevent a regression in behavior (it will still require explicitly
      setting <rom bar='off'/> in the guest XML).
      
      rombar is forced on/off by adding:
      
        <rom bar='on|off'/>
      
      inside a <hostdev> element that defines a PCI device. It is currently
      ignored for all other types of devices.
      
      At the moment there is no clean method to determine whether or not the
      rombar option is supported by QEMU - this patch uses the advice of a
      QEMU developer to assume support for qemu-0.12+. There is currently a
      patch in the works to put this information in the output of "qemu-kvm
      -device pci-assign,?", but of course if we switch to keying off that,
      we would lose support for setting rombar on all the versions of qemu
      between 0.12 and whatever version gets that patch.
      dc79852a
    • E
      spec: F15 still uses cgconfig, RHEL lacks hyperv · ba6cbb18
      Eric Blake 提交于
      Commit ecd8725c dropped attempts to probe the cgconfig service on
      new enough Fedora where systemd took over that aspect of the system,
      but mistakenly used F14 instead of F15 as the cutoff point.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=741358
      
      Also, RHEL does not include HyperV support yet.
      
      * libvirt.spec.in (with_cgconfig): Check cgconfig service in F15.
      (%{?rhel}): Provide default for with_hyperv.
      ba6cbb18
    • J
      qemu: Relax -no-shutdown check to [0.14.0, 0.15.50) · 75e31492
      Jiri Denemark 提交于
      SIGTERM handling for -no-shutdown is already fixed in qemu git and
      libvirt can safely use it. The downside is that 0.15.50 version of qemu
      can be any qemu compiled from git, even that without the fix for
      SIGTERM. However, I think this patch is worth it since excluding 0.15.50
      from the check makes testing current qemu with libvirt much easier and
      someone running qemu from git should be able to rebuild fixed qemu from
      git if they hit the problem with a hang on shutdown.
      75e31492
    • J
      virsh: Better document --copy-storage migrate options · 2c1a3dd8
      Jiri Denemark 提交于
      Both --copy-storage-{all,inc} options require disk images to be present
      on destination host.
      2c1a3dd8
    • J
      virsh: Enhance documentation of commands starting jobs · d82ce384
      Jiri Denemark 提交于
      Some virsh commands start a (long-running) job that can be monitored
      using domjobinfo and aborted with domjobabort. Let's be explicit about
      this in virsh man page.
      d82ce384
    • M
      virLockManagerNopInit: Rename flags to unused_flags · 62cb8ad7
      Michal Privoznik 提交于
      As these might be not used and make syntax-check complains about checking
      them via virCheckFlags.
      62cb8ad7
    • P
      daemon: Don't remove pidfiles in init scripts · 831977df
      Peter Krempa 提交于
      Init scripts removed pid file of the daemon. Removing pid files may be
      harmful as new api for crash-safe pidfiles is used (introduced by
      c8a3a265).
      831977df
    • M
      debug: Annotate some variables as unused · 45ad3d69
      Michal Privoznik 提交于
      as they are not used with debugging turned off.
      45ad3d69
    • O
      storage: Do not break the whole vol lookup process in the middle · 05e2fc51
      Osier Yang 提交于
      * src/storage/storage_driver.c: As virStorageVolLookupByPath lookups
      all the pool objs of the drivers, breaking when failing on getting
      the stable path of the pool will just breaks the whole lookup process,
      it can cause the API fails even if the vol exists indeed. It won't get
      any benefit. This patch is to fix it.
      05e2fc51