1. 09 11月, 2010 4 次提交
    • D
      Implement QEMU/KVM QXL video card support in QEMU driver · 635f9ca1
      Daniel P. Berrange 提交于
      This supports the '-vga qxl' parameter in upstream QEMU/KVM
      which has SPICE support added. This isn't particularly useful
      until you get the next patch for -spice support. Also note that
      while the libvirt XML supports multiple video devices, this
      patch only supports a single one. A later patch can add support
      for 2nd, 3rd, etc PCI devices for QXL
      
      * src/qemu/qemu_conf.h: Flag for QXL support
      * src/qemu/qemu_conf.c: Probe for '-vga qxl' support and implement it
      * tests/qemuxml2argvtest.c, tests/qemuxml2xmltest.c,
        tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.args,
        tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.xml: Test
        case for generating spice args with RHEL6 kvm
      635f9ca1
    • D
      Add a <graphics> type for SPICE protocol · c909091b
      Daniel P. Berrange 提交于
      This adds an element
      
       <graphics type='spice' port='5903' tlsPort='5904' autoport='yes' listen='127.0.0.1'/>
      
      This is the bare minimum that should be exposed in the guest
      config for SPICE. Other parameters are better handled as per
      host level configuration tunables
      
      * docs/schemas/domain.rng: Define the SPICE <graphics> schema
      * src/domain_conf.h, src/domain_conf.c: Add parsing and formatting
        for SPICE graphics config
      * src/qemu_conf.c: Complain about unsupported graphics types
      c909091b
    • D
      Add a QXL graphics card type to domain XML schema · 3cf5b6f7
      Daniel P. Berrange 提交于
      * src/qemu_conf.c: Add dummy entry in enumeration
      * docs/schemas/domain.rng: Add 'qxl' as a type for the <video> tag
      * src/domain_conf.c, src/domain_conf.h: Add QXL to video type
        enumerations
      3cf5b6f7
    • J
      qemu: Fix non-literal format string · 0011e917
      Jiri Denemark 提交于
      0011e917
  2. 08 11月, 2010 1 次提交
    • D
      Add sysinfo/smbios support to the QEmu driver · 54c0237c
      Daniel Veillard 提交于
      The patch is based on the possiblity in the QEmu command line to
      add -smbios options allowing to override the default values picked
      by QEmu. We need to detect this first from QEmu help output.
      If the domain is defined with smbios to be inherited from host
      then we pass the values coming from the Host own SMBIOS, but
      if the domain is defined with smbios to come from sysinfo, we
      use the ones coming from the domain definition.
      
      * src/qemu/qemu_conf.h: add the QEMUD_CMD_FLAG_SMBIOS_TYPE enum
        value
      * src/qemu/qemu_conf.c: scan the help output for the smbios support,
        and if available add support based on the domain definitions,
        and host data
      * tests/qemuhelptest.c: add the new enum in the outputs
      54c0237c
  3. 30 10月, 2010 1 次提交
    • K
      add compression support for "virsh dump" · 95a17abd
      KAMEZAWA Hiroyuki 提交于
      Add dump_image_format[] to qemu.conf and support compressed dump
      at virsh dump. coredump compression is important for saving disk space
      in an environment where multiple guests run.
      
      In general, "disk space for dump" is specially allocated and will be
      a dead space in the system. It's used only at emergency. So, it's better
      to have both of save_image_format and dump_image_format. "save" is done
      in scheduled manner with enough calculated disk space for it.
      
      This code reuses some of save_image_format[] and supports the same format.
      
      Changelog:
       - modified libvirtd_qemu.aug
       - modified test_libvirtd_qemu.aug
       - fixed error handling of qemudSaveCompressionTypeFromString()
      95a17abd
  4. 27 10月, 2010 1 次提交
  5. 26 10月, 2010 1 次提交
    • J
      qemu: Fix detection of drive readonly option · 69b75521
      Jiri Denemark 提交于
      So far, readonly=on option is used when qemu supports -device. However,
      there are qemu versions which support readonly option with -drive
      although they don't have support for -device.
      69b75521
  6. 22 10月, 2010 1 次提交
    • D
      Expand virSocketFormat to be more flexible · 497adba2
      Daniel P. Berrange 提交于
      The getnameinfo() function is more flexible than inet_ntop()
      avoiding the need to if/else the code based on socket family.
      Also make it support UNIX socket addrs and allow inclusion
      of a port (service) address. Finally do proper error reporting
      via normal APIs.
      
      * src/conf/domain_conf.c, src/nwfilter/nwfilter_ebiptables_driver.c,
        src/qemu/qemu_conf.c: Fix error handling with virSocketFormat
      * src/util/network.c: Rewrite virSocketFormat to use getnameinfo
        and cope with UNIX socket addrs.
      497adba2
  7. 21 10月, 2010 1 次提交
    • D
      Enable JSON and netdev features in QEMU >= 0.13 · aa1e3f67
      Daniel P. Berrange 提交于
      The QEMU 0.13 release is finally out and from testing in RHEL-6
      we know that its JSON and netdev features are now good enough
      for us to use by default.
      
      * src/qemu/qemu_conf.c: Enable JSON + netdev for QEMU >= 0.13
      aa1e3f67
  8. 20 10月, 2010 3 次提交
    • J
      Add process= support for 'qemu-kvm -name' · c08c7b01
      John Morrissey 提交于
      This sets the process name to the same value as the Windows title,
      but since the name is limited to 16 chars only this is kept as a
      configuration option and turned off by default
      * src/qemu/qemu.conf src/qemu/qemu_conf.[ch]: hceck for support in the
        QEmu help output, add the option in qemu conf file and augment
        qemudBuildCommandLine to add it if switched on
      * src/qemu/libvirtd_qemu.aug src/qemu/test_libvirtd_qemu.aug: augment
        the augeas lenses accordingly
      * tests/qemuhelptest.c: cope with the extra flag being detected now
      c08c7b01
    • E
      vcpu: improve vcpu support in qemu command line · d67c189e
      Eric Blake 提交于
      * src/qemu/qemu_conf.c (qemuParseCommandLineSmp): Distinguish
      between vcpus and maxvcpus, for new enough qemu.
      * tests/qemuargv2xmltest.c (mymain): Add new test.
      * tests/qemuxml2argvtest.c (mymain): Likewise.
      * tests/qemuxml2xmltest.c (mymain): Likewise.
      * tests/qemuxml2argvdata/qemuxml2argv-smp.args: New file.
      d67c189e
    • E
      vcpu: support maxvcpu in domain_conf · 4617eedf
      Eric Blake 提交于
      Although this patch adds a distinction between maximum vcpus and
      current vcpus in the XML, the values should be identical for all
      drivers at this point.  Only in subsequent per-driver patches will
      a distinction be made.
      
      In general, virDomainGetInfo should prefer the current vcpus.
      
      * src/conf/domain_conf.h (_virDomainDef): Adjust vcpus to unsigned
      short, to match virDomainGetInfo limit.  Add maxvcpus member.
      * src/conf/domain_conf.c (virDomainDefParseXML)
      (virDomainDefFormat): parse and print out vcpu details.
      * src/xen/xend_internal.c (xenDaemonParseSxpr)
      (xenDaemonFormatSxpr): Manage both vcpu numbers, and require them
      to be equal for now.
      * src/xen/xm_internal.c (xenXMDomainConfigParse)
      (xenXMDomainConfigFormat): Likewise.
      * src/phyp/phyp_driver.c (phypDomainDumpXML): Likewise.
      * src/openvz/openvz_conf.c (openvzLoadDomains): Likewise.
      * src/openvz/openvz_driver.c (openvzDomainDefineXML)
      (openvzDomainCreateXML, openvzDomainSetVcpusInternal): Likewise.
      * src/vbox/vbox_tmpl.c (vboxDomainDumpXML, vboxDomainDefineXML):
      Likewise.
      * src/xenapi/xenapi_driver.c (xenapiDomainDumpXML): Likewise.
      * src/xenapi/xenapi_utils.c (createVMRecordFromXml): Likewise.
      * src/esx/esx_vmx.c (esxVMX_ParseConfig, esxVMX_FormatConfig):
      Likewise.
      * src/qemu/qemu_conf.c (qemuBuildSmpArgStr)
      (qemuParseCommandLineSmp, qemuParseCommandLine): Likewise.
      * src/qemu/qemu_driver.c (qemudDomainHotplugVcpus): Likewise.
      * src/opennebula/one_conf.c (xmlOneTemplate): Likewise.
      4617eedf
  9. 14 10月, 2010 1 次提交
    • H
      new attribute accessmode to filesystem element · 75a6a9a8
      Harsh Prateek Bora 提交于
      This introduces new attribute to filesystem element
      to support customizable access mode for mount type.
      Valid accessmode are: passthrough, mapped and squash.
      
      Usage:
              <filesystem type='mount' accessmode='passthrough'>
                <source dir='/export/to/guest'/>
                <target dir='mount_tag'/>
              </filesystem>
      
      passthrough is the default model if not specified, that's
      also the current behaviour.
      75a6a9a8
  10. 13 10月, 2010 4 次提交
    • D
      Enable support for nested SVM · f98a6cd6
      Daniel P. Berrange 提交于
      This enables support for nested SVM using the regular CPU
      model/features block. If the CPU model or features include
      'svm', then the '-enable-nesting' flag will be added to the
      QEMU command line. Latest out of tree patches for nested
      'vmx', no longer require the '-enable-nesting' flag. They
      instead just look at the cpu features. Several of the models
      already include svm support, but QEMU was just masking out
      the svm bit silently. So this will enable SVM on such
      models
      
      * src/qemu/qemu_conf.h: flag for -enable-nesting
      * src/qemu/qemu_conf.c: Use -enable-nesting if VMX or SVM are in
        the CPUID
      * src/cpu/cpu.h, src/cpu/cpu.c: API to check for a named feature
      * src/cpu/cpu_x86.c: x86 impl of feature check
      * src/libvirt_private.syms: Add cpuHasFeature
      * src/qemuhelptest.c: Add nesting flag where required
      f98a6cd6
    • D
      Implement support for virtio plan9fs filesystem passthrough in QEMU · a5c646a7
      Daniel P. Berrange 提交于
      Make use of the existing <filesystem> element to support plan9fs
      filesystem passthrough in the QEMU driver
      
          <filesystem type='mount'>
            <source dir='/export/to/guest'/>
            <target dir='/import/from/host'/>
          </filesystem>
      
      NB, the target is not actually a directory, it is merely a arbitrary
      string tag that is exported to the guest as a hint for where to mount
      it.
      a5c646a7
    • N
      Adding memtunables to qemuSetupCgroup · 261ad74e
      Nikunj A. Dadhania 提交于
      QEmu startup will pick up the memory tunables specified in the domain
      configuration file
      261ad74e
    • N
      XML parsing for memory tunables · d390fce4
      Nikunj A. Dadhania 提交于
      Adding parsing code for memory tunables in the domain xml file
      also change the internal define structures used for domain memory
      informations
      Adds a new specific test
      d390fce4
  11. 12 10月, 2010 1 次提交
  12. 10 9月, 2010 1 次提交
    • D
      Fix off-by-1 in QEMU boot arg array handling · 48ab2099
      Daniel P. Berrange 提交于
      A QEMU guest can have upto VIR_DOMAIN_BOOT_LAST boot entries
      defined. When building the QEMU arg, each entry takes a
      single byte. This means the array must be declared to be
      VIR_DOMAIN_BOOT_LAST+1 bytes in length to allow for the
      trailing null
      
      * src/qemu/qemu_conf.c: Fix off-by-1 boot arg array size
      48ab2099
  13. 23 8月, 2010 1 次提交
    • D
      Add support for -enable-kqemu flag · 6e44ec7a
      Daniel P. Berrange 提交于
      Previously QEMU enabled KQEMU by default and had -no-kqemu.
      0.11.x switched to requiring -enable-kqemu. 0.12.x dropped
      kqemu entirely. This patch adds support for -enable-kqemu
      so 0.11.x works. It replaces a huge set of if() with a
      switch() to make the code a bit more readable.
      
      * src/qemu/qemu_conf.c, src/qemu/qemu_conf.h: Support
        -enable-kqemu
      6e44ec7a
  14. 20 8月, 2010 2 次提交
  15. 11 8月, 2010 1 次提交
    • D
      allow memballoon type of none to desactivate it · 79c27a62
      Daniel Veillard 提交于
        The balloon device is automatically added to qemu guests if supported,
      but it may be useful to desactivate it. The simplest to not change the
      existing behaviour is to allow
        <memballoon type="none"/>
      as an extra option to desactivate it (it is automatically added if the
      memballoon construct is missing for the domain).
      The following simple patch just adds the extra option and does not
      change the default behaviour but avoid creating a balloon device if
      type="none" is used.
      
      * docs/schemas/domain.rng: add the extra type attribute value
      * src/conf/domain_conf.c src/conf/domain_conf.h: add the extra enum
        value
      * src/qemu/qemu_conf.c: if enum is NONE, don't activate the device,
        i.e. don't pass the args to qemu/kvm
      79c27a62
  16. 06 8月, 2010 2 次提交
  17. 05 8月, 2010 1 次提交
    • D
      Do not use boot=on on IDE device · 634ea3fa
      Daniel Veillard 提交于
      the followup on the boot=on problem, basically it's not needed to
      specify it when booting out of IDE devices when using KVM
      * src/qemu/qemu_conf.c: do not use boot=on for IDE devices
      * tests/qemuxml2argvdata/qemuxml2argv*.args: this changes the output
        for 5 of the tests
      634ea3fa
  18. 04 8月, 2010 1 次提交
    • J
      qemu: Fix PCI address allocation · bf0bf4e7
      Jiri Denemark 提交于
      Patch version revamped by Eric Blake <eblake@redhat.com> of Jiri
      Denemark <jdenemar@redhat.com> original patch
      
      When attaching a PCI device which doesn't explicitly set its PCI
      address, libvirt allocates the address automatically. The problem is
      that when checking which PCI address is unused, we only check for those
      with slot number higher than the highest slot number ever used.
      
      Thus attaching/detaching such device several times in a row (31 is the
      theoretical limit, less then 30 tries are enough in practise) makes any
      further device attachment fail. Furthermore, attaching a device with
      predefined PCI address to 0:0:31 immediately forbids attachment of any
      PCI device without explicit address.
      
      This patch changes the logic so that we always check all PCI addresses
      before we say there is no PCI address available.
      
      Modifications from v1: revert back to remembering the last slot
      reserved, but allow wraparound to not be limited by the end.
      In this way, slots are still assigned in the same order as
      before the patch, rather than filling in the gaps closest to
      0 and risking making windows guests mad.
      
      * src/qemu/qemu_conf.c: fix pci reservation code to do a round-robbin
        check of all available PCI splot availability before failing.
      bf0bf4e7
  19. 30 7月, 2010 2 次提交
    • D
      Do not activate boot=on on devices when not using KVM · e7da8722
      Daniel Veillard 提交于
        Basically the 'boot=on' boot selection device is something present in
      KVM but not in upstream QEmu, as a result if we boot a QEmu domain
      without KVM acceleration we must disable boot=on ... even if the front
      end kvm binary expose that capability in the help page.
      
      * src/qemu/qemu_conf.c: in qemudBuildCommandLine if -no-kvm
        is passed, then deactivate QEMUD_CMD_FLAG_DRIVE_BOOT
      e7da8722
    • C
      Fix a memory leak in the qemudBuildCommandLine. · 4313e1b9
      Chris Lalancette 提交于
      ADD_ARG_LIT should only be used for literal arguments,
      since it duplicates the memory.  Since virBufferContentAndReset
      is already allocating memory, we should only use ADD_ARG.
      Signed-off-by: NChris Lalancette <clalance@redhat.com>
      4313e1b9
  20. 29 7月, 2010 4 次提交
  21. 28 7月, 2010 3 次提交
    • D
      Invert logic for checking for QEMU disk cache options · 9749d94f
      Daniel P. Berrange 提交于
      QEMU has had two different syntax for disk cache options
      
       Old: on|off
       New: writeback|writethrough|none
      
      QEMU recently added another 'unsafe' option which broke the
      libvirt check. We can avoid this & future breakage, if we
      do a negative check for the old syntax, instead of a positive
      check for the new syntax
      
      * src/qemu/qemu_conf.c: Invert cache option check
      9749d94f
    • C
      qemu: Allow setting boot menu on/off · 4f24ca01
      Cole Robinson 提交于
      Add a new element to the <os> block:
      
        <bootmenu enable="yes|no"/>
      
      Which maps to -boot,menu=on|off on the QEMU command line.
      
      I decided to use an explicit 'enable' attribute rather than just make the
      bootmenu element boolean. This allows us to treat lack of a bootmenu element
      as 'use hypervisor default'.
      4f24ca01
    • C
      qemu: Error on unsupported graphics config · 6fe9025e
      Cole Robinson 提交于
      Throw an explicit error if multiple graphics devices are specified, or
      an unsupported type is specified (rdp).
      6fe9025e
  22. 24 7月, 2010 2 次提交
    • C
      Handle arbitrary qemu command-lines in qemuParseCommandLine. · ae027de3
      Chris Lalancette 提交于
      Now that we have the ability to specify arbitrary qemu
      command-line parameters in the XML, use it to handle unknown
      command-line parameters when doing a native-to-xml conversion.
      
      Changes since v1:
       - Rename num_extra to num_args
       - Fix up a memory leak on an error path
      
      Changes since v2:
       - Add a VIR_WARN when adding the argument via qemu:arg
      
      Changes since v3:
       - None
      Signed-off-by: NChris Lalancette <clalance@redhat.com>
      ae027de3
    • C
      Qemu arbitrary command-line arguments. · 869939a5
      Chris Lalancette 提交于
      Implement the qemu hooks for XML namespace data.  This
      allows us to specify a qemu XML namespace, and then
      specify:
      
      <qemu:commandline>
       <qemu:arg value='arg'/>
       <qemu:env name='name' value='value'/>
      </qemu:commandline>
      
      In the domain XML.
      
      Changes since v1:
       - Change the <qemu:arg>arg</qemu:arg> XML to <qemu:arg value='arg'/> XML
       - Fix up some memory leaks in qemuDomainDefNamespaceParse
       - Rename num_extra and extra to num_args and args, respectively
       - Fixed up some error messages
       - Make sure to escape user-provided data in qemuDomainDefNamespaceFormatXML
      
      Changes since v2:
       - Add checking to ensure environment variable names are valid
       - Invert the logic in qemuDomainDefNamespaceFormatXML to return early
      
      Changes since v3:
       - Change strspn() to c_isalpha() check of first letter of environment variable
      Signed-off-by: NChris Lalancette <clalance@redhat.com>
      869939a5
  23. 23 7月, 2010 1 次提交
    • D
      Set a stable & high MAC addr for guest TAP devices on host · 6ea90b84
      Daniel P. Berrange 提交于
      A Linux software bridge will assume the MAC address of the enslaved
      interface with the numerically lowest MAC addr. When the bridge
      changes MAC address there is a period of network blackout, so a
      change should be avoided. The kernel gives TAP devices a completely
      random MAC address. Occassionally the random TAP device MAC is lower
      than that of the physical interface (eth0, eth1etc) that is enslaved,
      causing the bridge to change its MAC.
      
      This change sets an explicit MAC address for all TAP devices created
      using the configured MAC from the XML, but with the high byte set
      to 0xFE. This should ensure TAP device MACs are higher than any
      physical interface MAC.
      
      * src/qemu/qemu_conf.c, src/uml/uml_conf.c: Pass in a MAC addr
        for the TAP device with high byte set to 0xFE
      * src/util/bridge.c, src/util/bridge.h: Set a MAC when creating
        the TAP device to override random MAC
      6ea90b84