1. 23 9月, 2011 1 次提交
    • O
      Add unsafe cache mode support for disk driver · f887334d
      Oskari Saarenmaa 提交于
      QEMU 0.13 introduced cache=unsafe for -drive, this patch exposes
      it in the libvirt layer.
      
        * Introduced a new QEMU capability flag ($prefix_CACHE_UNSAFE),
          as even if $prefix_CACHE_V2 is set, we can't know if unsafe
          is supported.
      
        * Improved the reliability of qemu cache type detection.
      f887334d
  2. 22 9月, 2011 1 次提交
  3. 21 9月, 2011 1 次提交
    • J
      qemu: Fix shutdown regression with buggy qemu · f84aedad
      Jiri Denemark 提交于
      The commit that prevents disk corruption on domain shutdown
      (96fc4784) causes regression with QEMU
      0.14.* and 0.15.* because of a regression bug in QEMU that was fixed
      only recently in QEMU git. The affected versions of QEMU do not quit on
      SIGTERM if started with -no-shutdown, which we use to implement fake
      reboot. Since -no-shutdown tells QEMU not to quit automatically on guest
      shutdown, domains started using the affected QEMU cannot be shutdown
      properly and stay in a paused state.
      
      This patch disables fake reboot feature on such QEMU by not using
      -no-shutdown, which makes shutdown work as expected. However,
      virDomainReboot will not work in this case and it will report "Requested
      operation is not valid: Reboot is not supported with this QEMU binary".
      f84aedad
  4. 02 9月, 2011 2 次提交
  5. 09 7月, 2011 1 次提交
  6. 22 6月, 2011 1 次提交
    • M
      qemu: domain I/O asynchronous handling · 017abcbb
      Michal Privoznik 提交于
      For virtio disks and interfaces, qemu allows users to enable or disable
      ioeventfd feature. This means, qemu can execute domain code, while
      another thread waits for I/O event. Basically, in some cases it is win,
      in some loss. This feature is available via 'ioeventfd' attribute in disk
      and interface <driver> element. It accepts 'on' and 'off'. Leaving this
      attribute out defaults to hypervisor decision.
      017abcbb
  7. 13 6月, 2011 1 次提交
  8. 24 5月, 2011 1 次提交
  9. 01 5月, 2011 1 次提交
    • M
      tests: Lower stack usage below 4096 bytes · 9ba4eb3c
      Matthias Bolte 提交于
      Make virtTestLoadFile allocate the buffer to read the file into.
      
      Fix logic error in virtTestLoadFile, stop reading on the first empty line.
      
      Use virFileReadLimFD in virtTestCaptureProgramOutput to avoid manual
      buffer handling.
      9ba4eb3c
  10. 30 4月, 2011 1 次提交
    • E
      tests: simplify common setup · 20986e58
      Eric Blake 提交于
      A few of the tests were missing basic sanity checks, while most
      of them were doing copy-and-paste initialization (in fact, some
      of them pasted the argc > 1 check more than once!).  It's much
      nicer to do things in one common place, and minimizes the size of
      the next patch that fixes getcwd usage.
      
      * tests/testutils.h (EXIT_AM_HARDFAIL): New define.
      (progname, abs_srcdir): Define for all tests.
      (VIRT_TEST_MAIN): Change callback signature.
      * tests/testutils.c (virtTestMain): Do more common init.
      * tests/commandtest.c (mymain): Simplify.
      * tests/cputest.c (mymain): Likewise.
      * tests/esxutilstest.c (mymain): Likewise.
      * tests/eventtest.c (mymain): Likewise.
      * tests/hashtest.c (mymain): Likewise.
      * tests/networkxml2xmltest.c (mymain): Likewise.
      * tests/nodedevxml2xmltest.c (myname): Likewise.
      * tests/nodeinfotest.c (mymain): Likewise.
      * tests/nwfilterxml2xmltest.c (mymain): Likewise.
      * tests/qemuargv2xmltest.c (mymain): Likewise.
      * tests/qemuhelptest.c (mymain): Likewise.
      * tests/qemuxml2argvtest.c (mymain): Likewise.
      * tests/qemuxml2xmltest.c (mymain): Likewise.
      * tests/qparamtest.c (mymain): Likewise.
      * tests/sexpr2xmltest.c (mymain): Likewise.
      * tests/sockettest.c (mymain): Likewise.
      * tests/statstest.c (mymain): Likewise.
      * tests/storagepoolxml2xmltest.c (mymain): Likewise.
      * tests/storagevolxml2xmltest.c (mymain): Likewise.
      * tests/virbuftest.c (mymain): Likewise.
      * tests/virshtest.c (mymain): Likewise.
      * tests/vmx2xmltest.c (mymain): Likewise.
      * tests/xencapstest.c (mymain): Likewise.
      * tests/xmconfigtest.c (mymain): Likewise.
      * tests/xml2sexprtest.c (mymain): Likewise.
      * tests/xml2vmxtest.c (mymain): Likewise.
      20986e58
  11. 06 3月, 2011 1 次提交
    • O
      qemu: Support vram for video of qxl type · 82dfc6f3
      Osier Yang 提交于
      For qemu names the primary vga as "qxl-vga":
      
        1) if vram is specified for 2nd qxl device:
      
          -vga qxl -global qxl-vga.vram_size=$SIZE \
          -device qxl,id=video1,vram_size=$SIZE,...
      
        2) if vram is not specified for 2nd qxl device, (use the default
           set by global):
      
          -vga qxl -global qxl-vga.vram_size=$SIZE \
          -device qxl,id=video1,...
      
      For qemu names all qxl devices as "qxl":
      
        1) if vram is specified for 2nd qxl device:
      
          -vga qxl -global qxl.vram_size=$SIZE \
          -device qxl,id=video1,vram_size=$SIZE ...
      
        2) if vram is not specified for 2nd qxl device:
      
          -vga qxl -global qxl-vga.vram_size=$SIZE \
          -device qxl,id=video1,...
      
      "-global" is the only way to define vram_size for the primary qxl
      device, regardless of how qemu names it, (It's not good a good
      way, as original idea of "-global" is to set a global default for
      a driver property, but to specify vram for first qxl device, we
      have to use it).
      
      For other qxl devices, as they are represented by "-device", could
      specify it directly and seperately for each, and it overrides the
      default set by "-global" if specified.
      
      v1 - v2:
        * modify "virDomainVideoDefaultRAM" so that it returns 16M as the
          default vram_size for qxl device.
      
        * vram_size * 1024 (qemu accepts bytes for vram_size).
      
        * apply default vram_size for qxl device for which vram_size is
          not specified.
      
        * modify "graphics-spice" tests (more sensiable vram_size)
      
        * Add an argument of virDomainDefPtr type for qemuBuildVideoDevStr,
          to use virDomainVideoDefaultRAM in qemuBuildVideoDevStr).
      
      v2 - v3:
        * Modify default video memory size for qxl device from 16M to 24M
      
        * Update codes to be consistent with changes on qemu_capabilities.*
      82dfc6f3
  12. 24 2月, 2011 3 次提交
  13. 18 2月, 2011 1 次提交
    • L
      Add txmode attribute to interface XML for virtio backend · e9bd5c0e
      Laine Stump 提交于
      This is in response to:
      
         https://bugzilla.redhat.com/show_bug.cgi?id=629662
      
      Explanation
      
      qemu's virtio-net-pci driver allows setting the algorithm used for tx
      packets to either "bh" or "timer". This is done by adding ",tx=bh" or
      ",tx=timer" to the "-device virtio-net-pci" commandline option.
      
      'bh' stands for 'bottom half'; when this is set, packet tx is all done
      in an iothread in the bottom half of the driver. (In libvirt, this
      option is called the more descriptive "iothread".)
      
      'timer' means that tx work is done in qemu, and if there is more tx
      data than can be sent at the present time, a timer is set before qemu
      moves on to do other things; when the timer fires, another attempt is
      made to send more data. (libvirt retains the name "timer" for this
      option.)
      
      The resulting difference, according to the qemu developer who added
      the option is:
      
          bh makes tx more asynchronous and reduces latency, but potentially
          causes more processor bandwidth contention since the cpu doing the
          tx isn't necessarily the cpu where the guest generated the
          packets.
      
      Solution
      
      This patch provides a libvirt domain xml knob to change the option on
      the qemu commandline, by adding a new attribute "txmode" to the
      <driver> element that can be placed inside any <interface> element in
      a domain definition. It's use would be something like this:
      
          <interface ...>
            ...
            <model type='virtio'/>
            <driver txmode='iothread'/>
            ...
          </interface>
      
      I chose to put this setting as an attribute to <driver> rather than as
      a sub-element to <tune> because it is specific to the virtio-net
      driver, not something that is generally usable by all network drivers.
      (note that this is the same placement as the "driver name=..."
      attribute used to choose kernel vs. userland backend for the
      virtio-net driver.)
      
      Actually adding the tx=xxx option to the qemu commandline is only done
      if the version of qemu being used advertises it in the output of
      
          qemu -device virtio-net-pci,?
      
      If a particular txmode is requested in the XML, and the option isn't
      listed in that help output, an UNSUPPORTED_CONFIG error is logged, and
      the domain fails to start.
      e9bd5c0e
  14. 05 2月, 2011 1 次提交
    • E
      spicevmc: support older -device spicevmc of qemu 0.13.0 · 5a3ec56b
      Eric Blake 提交于
      qemu 0.13.0 (at least as built for Fedora 14, and also backported to
      RHEL 6.0 qemu) supported an older syntax for a spicevmc channel; it's
      not as flexible (it has an implicit name and hides the chardev
      aspect), but now that we support spicevmc, we might as well target
      both variants.
      
      * src/qemu/qemu_capabilities.h (QEMUD_CMD_FLAG_DEVICE_SPICEVMC):
      New flag.
      * src/qemu/qemu_capabilities.c (qemuCapsParseDeviceStr): Set it
      correctly.
      * src/qemu/qemu_command.h (qemuBuildVirtioSerialPortDevStr): Drop
      declaration.
      * src/qemu/qemu_command.c (qemuBuildVirtioSerialPortDevStr): Alter
      signature, check flag.
      (qemuBuildCommandLine): Adjust caller and check flag.
      * tests/qemuhelptest.c (mymain): Update test.
      * tests/qemuxml2argvtest.c (mymain): New test.
      * tests/qemuxml2argvdata/qemuxml2argv-channel-spicevmc-old.xml:
      New file.
      * tests/qemuxml2argvdata/qemuxml2argv-channel-spicevmc-old.args:
      Likewise.
      5a3ec56b
  15. 04 2月, 2011 1 次提交
    • E
      smartcard: check for qemu capability · 7a2f29e4
      Eric Blake 提交于
      Qemu smartcard/spicevmc support exists on branches (such as
      http://cgit.freedesktop.org/~alon/qemu/commit/?h=usb_ccid.v15&id=024a37b)
      but is not yet upstream.  The added -help output matches a scratch build
      that will be close to the RHEL 6.1 qemu-kvm.
      
      * src/qemu/qemu_capabilities.h (QEMUD_CMD_FLAG_CCID_EMULATED)
      (QEMUD_CMD_FLAG_CCID_PASSTHRU, QEMUD_CMD_FLAG_CHARDEV_SPICEVMC):
      New flags.
      * src/qemu/qemu_capabilities.c (qemuCapsComputeCmdFlags)
      (qemuCapsParseDeviceStr): Check for smartcard capabilities.
      (qemuCapsExtractVersionInfo): Tweak comment.
      * tests/qemuhelptest.c (mymain): New test.
      * tests/qemuhelpdata/qemu-kvm-0.12.1.2-rhel61: New file.
      * tests/qemuhelpdata/qemu-kvm-0.12.1.2-rhel61-device: Likewise.
      7a2f29e4
  16. 29 1月, 2011 1 次提交
  17. 14 1月, 2011 1 次提交
    • E
      qemu: improve device flag parsing · f892f5a5
      Eric Blake 提交于
      * src/qemu/qemu_capabilities.h (qemuCapsParseDeviceStr): New
      prototype.
      * src/qemu/qemu_capabilities.c (qemuCapsParsePCIDeviceStrs)
      Rename and split...
      (qemuCapsExtractDeviceStr, qemuCapsParseDeviceStr): ...to make it
      easier to add and test device-specific checks.
      (qemuCapsExtractVersionInfo): Update caller.
      * tests/qemuhelptest.c (testHelpStrParsing): Also test parsing of
      device-related flags.
      (mymain): Update expected flags.
      * tests/qemuhelpdata/qemu-0.12.1-device: New file.
      * tests/qemuhelpdata/qemu-kvm-0.12.1.2-rhel60-device: New file.
      * tests/qemuhelpdata/qemu-kvm-0.12.3-device: New file.
      * tests/qemuhelpdata/qemu-kvm-0.13.0-device: New file.
      f892f5a5
  18. 24 12月, 2010 1 次提交
    • E
      qemu: add -incoming fd:n capability checking · abff0290
      Eric Blake 提交于
      * src/qemu/qemu_capabilities.h (QEMUD_CMD_FLAG_MIGRATE_QEMU_FD):
      New enum value.
      * src/qemu/qemu_capabilities.c (qemuCapsComputeCmdFlags): Populate
      flags according to qemu version.
      * tests/qemuhelptest.c (mymain): Adjust test.
      abff0290
  19. 18 12月, 2010 1 次提交
  20. 14 12月, 2010 2 次提交
    • E
      tests: test Fedora 14 qemu-kvm -help parsing · e414dab4
      Eric Blake 提交于
      * tests/qemuhelpdata/qemu-kvm-0.13.0: New file.
      * tests/qemuhelptest.c (mymain): New test from Fedora 14 qemu-kvm,
      which covers some options (like -fstype passthrough) not tested elsewhere.
      e414dab4
    • E
      tests: test RHEL 6.0 qemu-kvm -help parsing · d5a710ee
      Eric Blake 提交于
      * tests/qemuhelpdata/qemu-kvm-0.12.1.2-rhel60: New file.
      * tests/qemuhelptest.c (mymain): New test from RHEL 6.0 qemu-kvm,
      which covers some options (like -vga=qxl) not tested elsewhere.
      * .x-sc_prohibit_empty_lines_at_EOF: Exempt qemu help output.
      d5a710ee
  21. 08 12月, 2010 1 次提交
  22. 09 11月, 2010 1 次提交
    • D
      Misc test case fixes for SPICE · ff2bb29c
      Daniel P. Berrange 提交于
      * docs/schemas/domain.rng: Fix merge error which left SPICE channel
        elements under VNC schema.
      * tests/qemuhelptest.c: Add SPICE flag to kvm-83 test
      * tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.xml: Add
        <memballoon> element
      ff2bb29c
  23. 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
  24. 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
  25. 20 10月, 2010 1 次提交
    • 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
  26. 13 10月, 2010 1 次提交
    • 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
  27. 28 7月, 2010 1 次提交
    • 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
  28. 18 5月, 2010 1 次提交
    • E
      qemu_conf: fix flag value · f30ccb24
      Eric Blake 提交于
      (gdb) p/x QEMUD_CMD_FLAG_VNET_HOST
      $7 = 0xffffffff80000000
      
      Oops - that meant we were incorrectly setting QEMU_CMD_FLAG_RTC_TD_HACK
      for qemu-kvm-0.12.3 (and probably botching a few other settings as well).
      
      Fixes Red Hat BZ#592070
      
      * src/qemu/qemu_conf.h (QEMUD_CMD_FLAG_VNET_HOST): Avoid sign
      extension.
      * tests/qemuhelpdata/qemu-kvm-0.12.3: New file.
      * tests/qemuhelptest.c (mymain): Add another case.
      f30ccb24
  29. 30 3月, 2010 1 次提交
  30. 10 3月, 2010 1 次提交
  31. 02 3月, 2010 1 次提交
    • D
      Support variable clock offset mode in QEMU · 200c83b2
      Daniel P. Berrange 提交于
      This allows QEMU guests to be started with an arbitrary clock
      offset
      
      The test case can't actually be enabled, since QEMU argv expects
      an absolute timestring, and this will obviously change every
      time the test runs :-( Hopefully QEMU will allow a relative
      time offset in the future.
      
      * src/qemu/qemu_conf.c, src/qemu/qemu_conf.h: Use the -rtc arg
        if available to support variable clock offset mode
      * tests/qemuhelptest.c: Add QEMUD_CMD_FLAG_RTC for qemu 0.12.1
      * qemuxml2argvdata/qemuxml2argv-clock-variable.args,
        qemuxml2argvdata/qemuxml2argv-clock-variable.xml,
        qemuxml2argvtest.c: Test case, except we can't actually enable
        it yet.
      200c83b2
  32. 26 2月, 2010 1 次提交
  33. 10 2月, 2010 1 次提交
    • D
      Convert qemu command line flags to 64-bit int · 910b019f
      Daniel P. Berrange 提交于
      The QEMU flags are commonly stored as a signed or unsigned int,
      allowing only 31 flags. This limit is rather close, so to aid
      future patches, change it to a 64-bit int
      
      * src/qemu/qemu_conf.c, src/qemu/qemu_conf.h, src/qemu/qemu_driver.c,
        tests/qemuargv2xmltest.c, tests/qemuhelptest.c, tests/qemuxml2argvtest.c:
        Use 'unsigned long long' for QEMU flags
      910b019f
  34. 19 1月, 2010 1 次提交
    • J
      Implement CPU topology support for QEMU driver · 5d462bd0
      Jiri Denemark 提交于
      QEMU's command line equivalent for the following domain XML fragment
          <vcpus>2</vcpus>
          <cpu ...>
              ...
              <topology sockets='1' cores='2', threads='1'/>
          </cpu>
      
      is
      
          -smp 2,sockets=1,cores=2,threads=1
      
      This syntax was introduced in QEMU-0.12.
      
      Version 2 changes:
      - -smp argument build split into a separate function
      - always add ",sockets=S,cores=C,threads=T" to -smp if qemu supports it
      - use qemuParseCommandLineKeywords for command line parsing
      
      Version 3 changes:
      - ADD_ARG_LIT => ADD_ARG and line reordering in qemudBuildCommandLine
      - rebased
      Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      5d462bd0
  35. 18 1月, 2010 2 次提交
    • D
      Add support for explicit -sdl flag to QEMU · 4f6c9990
      Daniel P. Berrange 提交于
      Not all QEMU builds default to SDL graphics for their display.
      Newer QEMU now has an explicit -sdl flag, which we can use to
      explicitly request SDL intead of relying on the default. This
      protects libvirt against unexpected changes in graphics default
      
      * src/qemu/qemu_conf.c, src/qemu/qemu_conf.h: Probe for -sdl
        flag and use it if it is found
      * tests/qemuhelptest.c: Add SDL flag to tests
      4f6c9990
    • D
      Probe for -device and use -nodefaults · 1ed1bf3a
      Daniel P. Berrange 提交于
      Probe for the new -device flag and if available set the -nodefaults
      flag, instead of using -net none, -serial none or -parallel none.
      Other device types will be converted to use -device in later patches.
      The -nodefaults flag will help avoid unwelcome surprises from future
      QEMU releases
      
      * src/qemu/qemu_conf.c: Probe for -device. Add -nodefaults flag.
        Remove -net none, -serial none or -parallel none
      * src/qemu/qemu_conf.h: Define QEMU_CMD_FLAG_DEVICE
      * tests/qemuhelpdata/qemu-0.12.1: New data file for 0.12.1 QEMU
      * tests/qemuhelptest.c: Test feature extraction from 0.12.1 QEMU
      1ed1bf3a