1. 15 11月, 2012 3 次提交
    • D
      Doug Goldstein gained commit capability · bf60b6b3
      Daniel Veillard 提交于
      bf60b6b3
    • E
      build: rerun bootstrap if AUTHORS is missing · 71d12562
      Eric Blake 提交于
      Ever since commit 7b21981c started generating AUTHORS, we now have
      the situation that if you flip between two branches in the same
      git repository that cross that commit boundary, then 'make' will
      fail due to automake complaining about AUTHORS not existing.  The
      simplest solution is to realize that if AUTHORS does not exist,
      then we flipped branches so we will need to rerun bootstrap
      anyways; and rerunning bootstrap ensures AUTHORS will exist in time.
      
      * cfg.mk (_update_required): Also depend on AUTHORS.
      71d12562
    • L
      util: fix index when building lock owners array · bc4b4330
      Laine Stump 提交于
      The "restart" function for locks allocates a new array according to
      and pre-sets its length, then reads the owner pids from a JSON
      document in a loop. Rather than adding each owner at a different
      index, though, it repeatedly overwrites the last element of the array
      with all the owners.
      bc4b4330
  2. 14 11月, 2012 3 次提交
  3. 13 11月, 2012 5 次提交
    • P
      tests: Remove temporary directories in qemumonitorjsontest · e5aab47a
      Peter Krempa 提交于
      qemumonitorjsontest creates a temporary directory to hold the socket
      that is simulating the monitor socket. The directory containing the
      socket wasn't disposed properly at the end of the test leaving garbage
      in the temporary folder.
      e5aab47a
    • P
      tests: Fix qemumonitorjsontest deadlock when the machine is under load · e25a32f3
      Peter Krempa 提交于
      When doing the qemumonitorjsontest on a machine under heavy load the
      test tends to deadlock from time to time. This patch adds the hack to
      break the event loop that is used in virsh.
      e25a32f3
    • P
      nodeinfotest: Add test data from a AMD bulldozer machine. · 7a791677
      Peter Krempa 提交于
      The AMD Bulldozer architecture uses so called "Clustered integer core
      modules" that count both as threads and cores. This patch expects the
      cpu to be detected using the new fallback condition otherwise twice the
      number of processors would be detected.
      7a791677
    • P
      nodeinfotest: Add test data for 2 processor host with broken NUMA · 86748976
      Peter Krempa 提交于
      This test data was gathered on an AMD MagnyCours machine that reports it
      has only one NUMA node although the hardware is consisting of 4. As
      duplicate core id's are ignored the reported topology was bogous. This
      should be fixed by the previous patch.
      
      Reported and data provided by George-Cristian Bîrzan.
      86748976
    • P
      nodeinfo: Add check and workaround to guarantee valid cpu topologies · 9576afd1
      Peter Krempa 提交于
      Lately there were a few reports of the output of the virsh nodeinfo
      command being inaccurate. This patch tries to avoid that by checking if
      the topology actually makes sense. If it doesn't we then report a
      synthetic topology that indicates to the user that the host capabilities
      should be checked for the actual topology.
      9576afd1
  4. 12 11月, 2012 2 次提交
    • M
      AbortJob: Fix documentation · fd723164
      Michal Privoznik 提交于
      This API was never synchronous and probably doesn't even need to be.
      fd723164
    • M
      qemu: Allow migration to be cancelled at prepare phase · ab5e7d49
      Michal Privoznik 提交于
      Currently, if user calls virDomainAbortJob we just issue
      'migrate_cancel' and hope for the best. However, if user calls
      the API in wrong phase when migration hasn't been started yet
      (perform phase) the cancel request is just ignored. With this
      patch, the request is remembered and as soon as perform phase
      starts, migration is cancelled.
      ab5e7d49
  5. 10 11月, 2012 1 次提交
    • V
      capabilities: defaultConsoleTargetType can depend on architecture · b1c88c14
      Viktor Mihajlovski 提交于
      For S390, the default console target type cannot be of type 'serial'.
      It is necessary to at least interpret the 'arch' attribute
      value of the os/type element to produce the correct default type.
      
      Therefore we need to extend the signature of defaultConsoleTargetType
      to account for architecture. As a consequence all the drivers
      supporting this capability function must be updated.
      
      Despite the amount of changed files, the only change in behavior is
      that for S390 the default console target type will be 'virtio'.
      
      N.B.: A more future-proof approach could be to to use hypervisor
      specific capabilities to determine the best possible console type.
      For instance one could add an opaque private data pointer to the
      virCaps structure (in case of QEMU to hold capsCache) which could
      then be passed to the defaultConsoleTargetType callback to determine
      the console target type.
      Seems to be however a bit overengineered for the use case...
      Signed-off-by: NViktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
      b1c88c14
  6. 09 11月, 2012 2 次提交
    • P
      qemu: Fix domain ID numbering race condition · 02cf57c0
      Peter Krempa 提交于
      When the libvirt daemon is restarted it tries to reconnect to running
      qemu domains. Since commit d38897a5 the
      re-connection code runs in separate threads. In the original
      implementation the maximum of domain ID's (that is used as an
      initializer for numbering guests created next) while libvirt was
      reconnecting to the guest.
      
      With the threaded implementation this opens a possibility for race
      conditions with the thread that is autostarting guests. When there's a
      guest running with id 1 and the daemon is restarted. The autostart code
      is reached first and spawns the first guest that should be autostarted
      as id 1. This results into the following unwanted situation:
      
       # virsh list
         Id    Name                           State
        ----------------------------------------------------
         1     guest1                         running
         1     guest2                         running
      
      This patch extracts the detection code before the re-connection threads
      are started so that the maximum id of the guests being reconnected to is
      known.
      
      The only semantic change created by this is if the guest with greatest ID
      quits before we are able to reconnect it's ID is used anyway as the
      greatest one as without this patch the greatest ID of a process we could
      successfuly reconnect to would be used.
      02cf57c0
    • P
      storage: fix broken backing chain · e0c469e5
      Philipp Hahn 提交于
      82507838 refactored the code to keep both the raw and canonicalized form
      of the backingStore, which breaks badly when the storage pool contains a
      storage volume, which is missing its backing store file:
       # ./daemon/libvirtd -l
       2012-11-07 12:43:33.279+0000: 22175: info : libvirt version: 1.0.0
       2012-11-07 12:43:33.279+0000: 22175: error : absolutePathFromBaseFile:542 : Can't canonicalize path '/var/lib/libvirt/images/base.qcow2': No such file or directory
       2012-11-07 12:43:33.280+0000: 22175: error : storageDriverAutostart:115 : Failed to autostart storage pool 'default': Can't canonicalize path '/var/lib/libvirt/images/base.qcow2': No such file or directory
      
      This is because virStorageFileGetMetadataFromBuf() aborts with -1 if the
      filename of the backingStore can not be canonicalized:
       #0  absolutePathFromBaseFile () at util/storage_file.c:541
       #1  virStorageFileGetMetadataFromBuf () at util/storage_file.c:728
       #2  virStorageFileGetMetadataFromFD () at util/storage_file.c:932
       #3  virStorageBackendProbeTarget () at storage/storage_backend_fs.c:94
       #4  virStorageBackendFileSystemRefresh () at storage/storage_backend_fs.c:849
       #5  storagePoolStart () at storage/storage_driver.c:700
       #6  virStoragePoolCreate () at libvirt.c:12471
       ...
      
      Treat files which miss their backing file as standalone files.
      Signed-off-by: NPhilipp Hahn <hahn@univention.de>
      e0c469e5
  7. 08 11月, 2012 5 次提交
    • P
      qemu: Fix function header formating of 2 functions · e124f498
      Peter Krempa 提交于
      Headers of qemuDomainSnapshotLoad and qemuDomainNetsRestart were
      improperly formatted.
      e124f498
    • P
      snapshot: qemu: Add support for external inactive snapshots · 9b5a514b
      Peter Krempa 提交于
      This patch adds support for external disk snapshots of inactive domains.
      The snapshot is created by calling using qemu-img by calling:
      
       qemu-img create -f format_of_snapshot -o
       backing_file=/path/to/src,backing_fmt=format_of_backing_image
       /path/to/snapshot
      
      in case the backing image format is known or probing is allowed and
      otherwise:
      
       qemu-img create -f format_of_snapshot -o  backing_file=/path/to/src
       /path/to/snapshot
      
      on each of the disks selected for snapshotting. This patch also modifies
      the snapshot preparing function to support creating external snapshots
      and to sanitize arguments. For now the user isn't able to mix external
      and internal snapshots but this restriction might be lifted in the
      future.
      9b5a514b
    • G
      Fix "virsh create" example · d49adae2
      Guido Günther 提交于
      We require a file and don't accept standard input:
      
      http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=692322
      d49adae2
    • E
      virsh: add snapshot-create-as memspec support · 2cd4d8e5
      Eric Blake 提交于
      External checkpoints could be created with snapshot-create, but
      without libvirt supplying a default name for the memory file,
      it is essential to add a new argument to snapshot-create-as to
      allow the user to choose the memory file name.  This adds the
      option --memspec [file=]name[,snapshot=type], where type can
      be none, internal, or external.  For an example,
      
      virsh snapshot-create-as $dom --memspec /path/to/file
      
      is the shortest possible command line for creating an external
      checkpoint, named after the current timestamp.
      
      * tools/virsh-snapshot.c (vshParseSnapshotMemspec): New function.
      (cmdSnapshotCreateAs): Use it.
      * tests/virsh-optparse (test_url): Test it.
      * tools/virsh.pod (snapshot-create-as): Document it.
      2cd4d8e5
    • E
      virsh: make ,, escape parsing common · 9d91a18e
      Eric Blake 提交于
      So far, none of the existing callers of vshStringToArray expected
      the user to ever pass a literal comma; meanwhile, snapshot parsing
      had rolled its own array parser.  Moving the comma escaping into
      the common function won't affect any existing callers, and will make
      this function reusable for adding memory handling to snapshot parsing.
      
      As a bonus, the testsuite was already testing snapshot parsing, so
      the fact that the test still passes means that we are now giving
      testsuite exposure to vshStringToArray.
      
      * tools/virsh-snapshot.c (vshParseSnapshotDiskspec): Move ,,
      parsing...
      * tools/virsh.c (vshStringToArray): ...into common function.
      Also, vshStrdup can't fail.
      9d91a18e
  8. 07 11月, 2012 2 次提交
    • M
      qemu: Emit event if 'cont' fails · a08fc66d
      Michal Privoznik 提交于
      Some operations, APIs needs domain to be paused prior operation can be
      performed, e.g. (managed-) save of a domain. The processors should be
      restored in the end. However, if 'cont' fails for some reason, we log a
      message but this is not sufficient as an event should be emitted as
      well. Mgmt application can then decide what to do.
      a08fc66d
    • M
      Introduce new VIR_DOMAIN_EVENT_SUSPENDED_API_ERROR event · adb29a88
      Michal Privoznik 提交于
      This is supposed to be thrown every time we need to pause domain
      because of API execution (e.g. qemuDomainSaveInternal) but fails
      to restore it back after. In this case, domain remains paused,
      however, none of existing reasons can fit this scenario.
      adb29a88
  9. 06 11月, 2012 9 次提交
  10. 05 11月, 2012 3 次提交
  11. 04 11月, 2012 1 次提交
    • P
      snapshot: qemu: Add support for external checkpoints · f569b87f
      Peter Krempa 提交于
      This patch adds support to take external system checkpoints.
      
      The functionality is layered on top of the previous disk-only snapshot
      code. When the checkpoint is requested the domain memory is saved to the
      memory image file using migration to file. (The user may specify to
      take the memory image while the guest is live with the
      VIR_DOMAIN_SNAPSHOT_CREATE_LIVE flag.)
      
      The memory save image shares format with the image created by
      virDomainSave() API.
      f569b87f
  12. 03 11月, 2012 4 次提交
    • P
      snapshot: qemu: Rename qemuDomainSnapshotCreateActive · b5fd4044
      Peter Krempa 提交于
      Before now, libvirt supported only internal snapshots for active guests.
      This patch renames this function to qemuDomainSnapshotCreateActiveInternal
      to prepare the grounds for external active snapshots.
      b5fd4044
    • P
      snapshot: qemu: Add async job type for snapshots · 2a59a3d5
      Peter Krempa 提交于
      The new external system checkpoints will require an async job while the
      snapshot is taken. This patch adds QEMU_ASYNC_JOB_SNAPSHOT to track this
      job type.
      2a59a3d5
    • P
      snapshot: Add flag to enable creating checkpoints in live state · 5f75bd4b
      Peter Krempa 提交于
      The default behavior while creating external checkpoints is to pause the
      guest while the memory state is captured. We want the users to sacrifice
      space saving for creating the memory save image while the guest is live
      to minimize downtime.
      
      This patch adds a flag that causes the guest not to be paused before
      taking the snapshot.
       *include/libvirt/libvirt.h.in:
          - add new paused reason: VIR_DOMAIN_PAUSED_SNAPSHOT
          - add new flag for taking snapshot: VIR_DOMAIN_SNAPSHOT_CREATE_LIVE
       *tools/virsh-domain-monitor.c:
          - add string representation for VIR_DOMAIN_PAUSED_SNAPSHOT
       *tools/virsh-snapshot.c:
          - add support for VIR_DOMAIN_SNAPSHOT_CREATE_LIVE
       *tools/virsh.pod:
          - add docs for --live option added to use
          VIR_DOMAIN_SNAPSHOT_CREATE_LIVE flag
      5f75bd4b
    • P
      qemu: Split out domain memory saving code to allow reuse · 2771f8b7
      Peter Krempa 提交于
      The code that saves domain memory by migration to file can be reused
      while doing external checkpoints of a machine. This patch extracts the
      common code and places it in a separate function.
      2771f8b7