1. 21 6月, 2013 14 次提交
    • J
      conf: add features to volume target XML · 31d42506
      Ján Tomko 提交于
      Add <features> and <compat> elements to volume target XML.
      
      <compat> is a string which for qcow2 represents the QEMU version
      it should be compatible with. Valid values are 0.10 and 1.1.
      1.1 is implicit if the <features> element is present, otherwise
      qemu-img default is used. 0.10 can be specified to explicitly
      create older images after the qemu-img default changes.
      
      <features> contains optional features, so far
      <lazy_refcounts/> is available, which enables caching of reference
      counters, improving performance for snapshots.
      31d42506
    • J
      util: add support for qcow2v3 image detection · a1ee8e18
      Ján Tomko 提交于
      Detect qcow2 images with version 3 in the image header as
      VIR_STORAGE_FILE_QCOW2.
      
      These images have a feature bitfield, with just one feature supported
      so far: lazy_refcounts.
      
      The header length changed too, moving the location of the backing
      format name.
      a1ee8e18
    • J
      qemu: add hv_vapic and hv_spinlocks support · 19f75d5e
      Ján Tomko 提交于
      XML:
      <features>
        <hyperv>
          <vapic state='on'/>
          <spinlocks state='on' retries='4096'/>
        </hyperv>
      </features>
      
      results in the following QEMU command line:
      qemu -cpu <cpu_model>,hv_vapic,hv_spinlocks=0x1000
      
      https://bugzilla.redhat.com/show_bug.cgi?id=784836
      19f75d5e
    • J
      conf: add vapic and spinlocks to hyperv features · 800b51d7
      Ján Tomko 提交于
      Add new CPU features for HyperV:
      vapic for virtual APIC support
      spinlocks for setting spinlock support
      
      <features>
        <hyperv>
          <vapic state='on'/>
          <spinlocks state='on' retries='4096'/>
        </hyperv>
      </features>
      
      https://bugzilla.redhat.com/show_bug.cgi?id=784836
      800b51d7
    • R
      ce240067
    • R
      BSD: implement virNetDevBridgeCreate() and virNetDevBridgeDelete() · b9c6b073
      Roman Bogorodskiy 提交于
      Implementation uses SIOCIFCREATE2 and SIOCIFDESTROY ioctls.
      Also, drop static virNetDevSetupControl() as we have
      public one avialable now.
      b9c6b073
    • O
      conf: Requires either uuid or usage of secret · 9b8ee6d0
      Osier Yang 提交于
      As the RNG schema for disk auth secret implies, it requires either
      "uuid" or "usage":
      
        <define name='diskAuthSecret'>
          <element name='secret'>
            <attribute name='type'>
              <choice>
                <value>ceph</value>
                <value>iscsi</value>
              </choice>
            </attribute>
            <choice>
              <attribute name='uuid'>
                <ref name="UUID"/>
              </attribute>
              <attribute name='usage'>
                <ref name='genericName'/>
              </attribute>
            </choice>
          </element>
        </define>
      9b8ee6d0
    • J
      qemu: Make probing for commands declarative · adb7b0b5
      Jiri Denemark 提交于
      adb7b0b5
    • J
      qemu: Make probing for events declarative · 61a28414
      Jiri Denemark 提交于
      61a28414
    • J
      build: Fix build with -Werror · 24d0e67a
      Jim Fehlig 提交于
      Commit 752596b5 broke the build with -Werror
      
      qemu/qemu_hotplug.c: In function 'qemuDomainChangeGraphics':
      qemu/qemu_hotplug.c:1980:39: error: declaration of 'listen' shadows a
        global declaration [-Werror=shadow]
      
      Fix with s/listen/newlisten/
      24d0e67a
    • L
      network: increase max number of routes · 2bdf548f
      Laine Stump 提交于
      This fixes the problem reported in:
      
         https://bugzilla.redhat.com/show_bug.cgi?id=972690
      
      When checking for a collision of a new libvirt network's subnet with
      any existing routes, we read all of /proc/net/route into memory, then
      parse all the entries. The function that we use to read this file
      requires a "maximum length" parameter, which had previously been set
      to 64*1024. As each line in /proc/net/route is 128 bytes, this would
      allow for a maximum of 512 entries in the routing table.
      
      This patch increases that number to 128 * 100000, which allows for
      100,000 routing table entries. This means that it's possible that 12MB
      would be allocated, but that would only happen if there really were
      100,000 route table entries on the system, it's only held for a very
      short time.
      
      Since there is no method of specifying and unlimited max (and that
      would create a potential denial of service anyway) hopefully this
      limit is large enough to accomodate everyone.
      2bdf548f
    • M
    • M
      qemuDomainChangeGraphics: Check listen address change by listen type · 752596b5
      Michal Privoznik 提交于
      Currently, we have a bug when updating a graphics device. A graphics device can
      have a listen address set. This address is either defined by user (in which case
      it's type is VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS) or it can be inherited
      from a network (in which case it's type is
      VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NETWORK). However, in both cases we have a
      listen address to process (e.g. during migration, as I've tried to fix in
      7f15ebc7).
      Later, when a user tries to update the graphics device (e.g. set a password),
      we check if listen addresses match the original as qemu doesn't know how to
      change listen address yet. Hence, users are required to not change the listen
      address. The implementation then just dumps listen addresses and compare them.
      Previously, while dumping the listen addresses, NULL was returned for NETWORK.
      After my patch, this is no longer true, and we get a listen address for olddev
      even if it is a type of NETWORK. So we have a real string on one side, the NULL
      from user's XML on the other side and hence we think user wants to change the
      listen address and we refuse it.
      
      Therefore, we must take the type of listen address into account as well.
      752596b5
    • M
      libxl: initialize device structures · c3358d14
      Marek Marczykowski-Górecki 提交于
      Do not leave uninitialized variables, not all parameters are set in
      libxlMake*.
      Signed-off-by: NMarek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
      c3358d14
  2. 20 6月, 2013 3 次提交
    • M
      libxl: populate xenstore memory entries at startup, handle dom0_mem · 7ed47d16
      Marek Marczykowski-Górecki 提交于
      libxl uses some xenstore entries for hints in memory management
      (especially when starting new domain). This includes dom0 memory limit
      and Xen free memory margin, based on current system state. Entries are
      created at first function usage, so force such call at daemon startup,
      which most likely will be before any domain startup.
      Also prevent automatic memory management if dom0_mem= option passed to
      xen hypervisor - it is known to be incompatible with autoballoon.
      Signed-off-by: NMarek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
      7ed47d16
    • J
      lxc: Resolve issue with GetScheduler APIs for non running domain · 38ada092
      John Ferlan 提交于
      As a consequence of the cgroup layout changes from commit 'cfed9ad4', the
      lxcDomainGetSchedulerParameters[Flags]()' and lxcGetSchedulerType() APIs
      failed to return data for a non running domain.  This can be seen through
      a 'virsh schedinfo <domain>' command which returns:
      
      Scheduler      : Unknown
      error: Requested operation is not valid: cgroup CPU controller is not mounted
      
      Prior to that change a non running domain would return:
      
      Scheduler      : posix
      cpu_shares     : 0
      vcpu_period    : 0
      vcpu_quota     : 0
      emulator_period: 0
      emulator_quota : 0
      
      This patch will restore the capability to return configuration only data
      for a non running domain regardless of whether cgroups are available.
      38ada092
    • J
      qemu: Resolve issue with GetScheduler APIs for non running domain · b2375453
      John Ferlan 提交于
      As a consequence of the cgroup layout changes from commit '632f78ca', the
      qemuDomainGetSchedulerParameters[Flags]()' and qemuGetSchedulerType() APIs
      failed to return data for a non running domain.  This can be seen through
      a 'virsh schedinfo <domain>' command which returns:
      
      Scheduler      : Unknown
      error: Requested operation is not valid: cgroup CPU controller is not mounted
      
      Prior to that change a non running domain would return:
      
      Scheduler      : posix
      cpu_shares     : 0
      vcpu_period    : 0
      vcpu_quota     : 0
      emulator_period: 0
      emulator_quota : 0
      
      This patch will restore the capability to return configuration only data
      for a non running domain regardless of whether cgroups are available.
      b2375453
  3. 19 6月, 2013 3 次提交
  4. 18 6月, 2013 13 次提交
    • P
      migration: Don't propagate VIR_MIGRATE_ABORT_ON_ERROR · 5379bb0f
      Peter Krempa 提交于
      This flag is meant for errors happening on the source of the migration
      and isn't used on the destination. To allow better migration
      compatibility, don't propagate it to the destination.
      5379bb0f
    • P
      migration: Make erroring out on I/O error controllable by flag · cf6d56ac
      Peter Krempa 提交于
      Paolo Bonzini pointed out that it's actually possible to migrate a qemu
      instance that was paused due to I/O error and it will be able to work on
      the destination if the storage is accessible.
      
      This patch introduces flag VIR_MIGRATE_ABORT_ON_ERROR that cancels the
      migration in case an I/O error happens while it's being performed and
      allows migration without this flag. This flag can be possibly used for
      other error reasons that may be introduced in the future.
      cf6d56ac
    • J
      ddf8ad82
    • M
      qemu_migration: Move waiting for SPICE migration · 9da7b11b
      Michal Privoznik 提交于
      Currently, we wait for SPICE to migrate in the very same loop where we
      wait for qemu to migrate. This has a disadvantage of slowing seamless
      migration down. One one hand, we should not kill the domain until all
      SPICE data has been migrated.  On the other hand, there is no need to
      wait in the very same loop and hence slowing down 'cont' on the
      destination. For instance, if users are watching a movie, they can
      experience the movie to be stopped for a couple of seconds, as
      processors are not running nor on src nor on dst as libvirt waits for
      SPICE to migrate. We should move the waiting phase to migration CONFIRM
      phase.
      9da7b11b
    • C
      spec: Enable KVM support on ARM · ce672cde
      Cole Robinson 提交于
      F20/rawhide has support for this.
      
      From: Peter Robinson <pbrobinson@gmail.com>
      ce672cde
    • O
      virsh: Support SCSI_GENERIC cap flag for nodedev-list · 9046b80d
      Osier Yang 提交于
      Document for nodedev-list is also updated.
      9046b80d
    • O
      4a7b3e58
    • O
      nodedev_hal: Enumerate scsi generic device · dd451f3a
      Osier Yang 提交于
      The xml outputed by HAL backend for scsi generic device:
      
      <device>
        <name>pci_8086_2922_scsi_host_scsi_device_lun0_scsi_generic</name>
        <path>/sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/scsi_generic/sg0</path>
        <parent>pci_8086_2922_scsi_host_scsi_device_lun0</parent>
        <capability type='scsi_generic'>
          <char>/dev/sg0</char>
        </capability>
      </device>
      dd451f3a
    • O
      nodedev_udev: Enumerate scsi generic device · 92fd4c09
      Osier Yang 提交于
      Since scsi generic device doesn't have DEVTYPE property set, the
      only way to know if it's a  scsi generic device or not is to read
      the "SUBSYSTEM" property.
      
      The XML of the scsi generic device will be like:
      
      <device>
        <name>scsi_generic_sg0</name>
        <path>/sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/scsi_generic/sg0</path>
        <parent>scsi_0_0_0_0</parent>
        <capability type='scsi_generic'>
          <char>/dev/sg0</char>
        </capability>
      </device>
      92fd4c09
    • G
      qemu: set QEMU_CAPS_DEVICE_VIDEO_PRIMARY cap flag in QMP detection · 0ad9025e
      Guannan Ren 提交于
      When qemu >= 1.20, it is safe to use -device for primary video
      device as described in 4c993d8a.
      So, we are missing the cap flag in QMP capabilities detection, this
      flag can be initialized safely in virQEMUCapsInitQMPBasic.
      0ad9025e
    • O
      nodedev_udev: changes missed by commit 1aa0ba3c · bf5fbf8f
      Osier Yang 提交于
      bf5fbf8f
    • O
      nodedev_udev: Refactor udevGetDeviceType · 1aa0ba3c
      Osier Yang 提交于
      Checking if the "devtype" is NULL along with each "if" statements
      is bad. It wastes the performance, and also not good for reading.
      And also when the "devtype" is NULL, the logic is also not clear.
      
      This reorgnizes the logic of with "if...else" and a bunch of "else if".
      
      Other changes:
         * Change the function style.
         * Remove the useless debug statement.
         * Get rid of the goto
         * New helper udevDeviceHasProperty to simplify the logic for checking
           if a property is existing for the device.
         * Add comment to clarify "PCI devices don't set the DEVTYPE property"
         * s/sysfs path/sysfs name/, as udev_device_get_sysname returns the
           name instead of the full path. E.g. "sg0"
         * Refactor the comment for setting VIR_NODE_DEV_CAP_NET cap type
           a bit.
      1aa0ba3c
    • O
      nodedev: Expose sysfs path of device · c4a4603d
      Osier Yang 提交于
      The name format is constructed by libvirt, it's not that clear to
      get what the device's sysfs path should be. This exposes the device's
      sysfs path by a new tag <path>.
      
      Since the sysfspath is filled during enumerating the devices by
      either udev or HAL. It's an output-only tag.
      c4a4603d
  5. 17 6月, 2013 1 次提交
  6. 14 6月, 2013 6 次提交