1. 04 9月, 2013 11 次提交
    • J
      libxl: Use atomic ops for driver->nactive · 6cd43d36
      Jim Fehlig 提交于
      6cd43d36
    • J
      libxl: Introduce libxlDriverConfig object · d9f19c30
      Jim Fehlig 提交于
      The libxlDriverPrivate struct contains an variety of data with
      varying access needs. Similar to the QEMU and LXC drivers,
      move all the static config data into a dedicated libxlDriverConfig
      object. The only locking requirement is to hold the driver lock
      while obtaining an instance of libxlDriverConfig. Once a reference
      is held on the config object, it can be used completely lockless
      since it is immutable.
      d9f19c30
    • J
      libxl: User per-domain ctx in libxlDomainGetInfo · 41475876
      Jim Fehlig 提交于
      libxlDomainGetInfo() uses the driver-wide libxl ctx when
      it would be more appropriate to use the per-domain ctx
      associated with the domain.  Switch to using the per-domain
      libxl ctx.
      41475876
    • J
      libxl: libxl: Use per-domain ctx in libxlMakeDomCreateInfo · e1f67c90
      Jim Fehlig 提交于
      libxlMakeDomCreateInfo() uses the driver-wide libxl ctx when
      it would be more appropriate to use the per-domain ctx
      associated with the domain.  Switch to using the per-domain
      libxl ctx.
      e1f67c90
    • J
      libxl: Add libxl_version_info to libxlDriverPrivate · cb0d49af
      Jim Fehlig 提交于
      libxl version info is static data as far as the libxl driver
      is concerned, so retrieve this info when the driver is initialized
      and stash it in the libxlDriverPrivate object.  Subsequently use
      the stashed info instead of repeatedly calling libxl_get_version_info().
      cb0d49af
    • J
      libxl: Earlier detection of not running on Xen · 2f8d0f90
      Jim Fehlig 提交于
      Detect early on in libxl driver initialization if the driver
      should be loaded at all, avoiding needless initialization steps
      that only have to be undone later.  While at it, move the
      detection to a helper function to improve readability.
      
      After detecting that the driver should be loaded, subsequent
      failures such as initializing the log stream, allocating libxl
      ctx, etc. should be treated as failure to initialize the driver.
      2f8d0f90
    • J
      libxl: Introduce libxl_domain.[ch] · 12315cd7
      Jim Fehlig 提交于
      Create libxl_domain.[ch] and move all functions operating on
      libxlDomainObjPrivate to these files.  This will be useful for
      future patches that e.g. add job support for libxlDomainObjPrivate.
      12315cd7
    • J
      libxl: Move detection of autoballoon to libxl_conf · c9d5432d
      Jim Fehlig 提交于
      Detecting whether or not to autoballoon is configuration related,
      so move the code to libxl_conf.
      c9d5432d
    • E
      build: fix typo that broke 'make dist' · 11e80ddf
      Eric Blake 提交于
      Bug introduced in commit 5c6ff422; 'make dist' fails:
      
      make[3]: Entering directory `/home/eblake/libvirt-tmp/build3/examples/python'
      make[3]: *** No rule to make target `topoology.py', needed by `distdir'.  Stop.
      make[3]: Leaving directory `/home/eblake/libvirt-tmp/build3/examples/python'
      
      * examples/python/Makefile.am (EXTRA_DIST): Spell topology right.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      11e80ddf
    • J
      esx_driver: Resolve Coverity RESOURCE_LEAK on error paths · ae83e02f
      John Ferlan 提交于
      New Coverity release found a couple of error paths where memory would be
      leaked in an error/goto path before being properly handled.
      ae83e02f
    • J
      esx_vi: Resolve Coverity RESOURCE_LEAK in error path · 7f953b19
      John Ferlan 提交于
      New coverity installation determined that the muliple if condition for
      "*Alloc" and "*AppendToList" could fail during AppendToList thus leaking
      memory.
      7f953b19
  2. 03 9月, 2013 21 次提交
    • M
      test_virtlockd.aug.in: Use the correct file · 4471ecf6
      Michal Privoznik 提交于
      The test should refer to Virtlockd.lns, which is the name of
      the module + lens in virtlockd.aug.
      4471ecf6
    • P
      examples: Add script to parse topology from capabilities output · 5c6ff422
      Peter Krempa 提交于
      Add a demo script originally written by Amador Pahim to parse topology
      of the host from data provided in the capabilities XML.
      5c6ff422
    • P
      virsh-console: Avoid using signal() in multithreaded application · 3e29c77a
      Peter Krempa 提交于
      Man page for signal states:
      
       "The effects of signal() in a multithreaded process are unspecified."
      
      Switch signal() to sigaction in virsh console code.
      3e29c77a
    • P
      virsh: Rename vshMakeStdinRaw to vshTTYMakeRaw and move it to virsh.c · 02eaf182
      Peter Krempa 提交于
      Move the function to virsh.c to the rest of the TTY managing functions
      and change the code so that it mirrors the rest.
      02eaf182
    • P
    • M
      qemu: Handle huge number of queues correctly · 1dc5dea7
      Michal Privoznik 提交于
      Currently, kernel supports up to 8 queues for a multiqueue tap device.
      However, if user tries to enter a huge number (e.g. one million) the tap
      allocation fails, as expected. But what is not expected is the log full
      of warnings:
      
          warning : virFileClose:83 : Tried to close invalid fd 0
      
      The problem is, upon error we iterate over an array of FDs (handlers to
      queues) and VIR_FORCE_CLOSE() over each item. However, the array is
      pre-filled with zeros. Hence, we repeatedly close stdin. Ouch.
      But there's more. The queues allocation is done in virNetDevTapCreate()
      which cleans up the FDs in case of error. Then, its caller, the
      virNetDevTapCreateInBridgePort() iterates over the FD array and tries to
      close them too. And so does qemuNetworkIfaceConnect() and
      qemuBuildInterfaceCommandLine().
      1dc5dea7
    • J
    • P
      virsh-domain: Avoid killing ssh transport tunnels when cancelling job · b46c4787
      Peter Krempa 提交于
      The vshWatchJob function registers a SIGINT handler that is used to
      abort the active job and does not terminate virsh. Unfortunately, this
      breaks when using the ssh transport as SIGINT is sent to the foreground
      process group including the ssh transport processes which terminate.
      This breaks the connection and migration is left in a insane state.
      
      With this patch the terminal is modified to ignore key binding that
      sends SIGINT and does the handling manually.
      
      Resoves: https://bugzilla.redhat.com/show_bug.cgi?id=983348
      b46c4787
    • P
      virsh: Remember terminal state when starting and add helpers · ebef6893
      Peter Krempa 提交于
      This patch adds instrumentation to allow modification of config of the
      terminal in virsh and successful reset of the state afterwards.
      
      The added helpers allow to disable receiving of SIGINT when pressing the
      key sequence (Ctrl+C usualy). This normally sends SIGINT to the
      foreground process group which kills ssh processes used for transport of
      the data.
      ebef6893
    • D
      VMX: Add cdrom-raw dev type from VMWare Fusion · f8456e5a
      Doug Goldstein 提交于
      According to VMWare's documentation 'cdrom-raw' is an acceptable value
      for deviceType for a CD-ROM drive. The documentation states that the VMX
      configuration for a CD-ROM deviceType is as follows:
      
      ide|scsi(n):(n).deviceType = "cdrom-raw|atapi-cdrom|cdrom-image"
      
      From the documentation it appears the following is true:
      - cdrom-image = Provides the ISO to the VM
      - atapi-cdrom = Provides a NEC emulated ATAPI CD-ROM on top of the host
        CD-ROM
      - cdrom-raw = Passthru for a host CD-ROM drive. Allows CD-R burning from
        within the guest.
      
      A CD-ROM prior to this patch would always provide an 'atapi-cdrom' is
      modeled as:
        <disk type='block' device='cdrom'>
          <source dev='/dev/scd0'/>
          <target dev='hda' bus='ide'/>
          <address type='drive' controller='0' bus='0' target='0' unit='0'/>
        </disk>
      
      This patch allows the 'device' attribute to be set to 'lun' for a raw
      acccess CD-ROM such as:
        <disk type='block' device='lun'>
          <source dev='/dev/scd0'/>
          <target dev='hda' bus='ide'/>
          <address type='drive' controller='0' bus='0' target='0' unit='0'/>
        </disk>
      f8456e5a
    • D
      VMX: Some serial ports are not actually connected · dba04e7f
      Doug Goldstein 提交于
      Sometimes a serial port might not be actually wired to a device when the
      user does not have the VM powered on and we should not consider this a
      fatal error.
      dba04e7f
    • C
      qemu: Support virtio-mmio transport for virtio on ARM · 4fa17221
      Cole Robinson 提交于
      Starting with qemu 1.6, the qemu-system-arm vexpress-a9 model has a
      hardcoded virtio-mmio transport which enables attaching all virtio
      devices.
      
      On the command line, we have to use virtio-XXX-device rather than
      virtio-XXX-pci, thankfully s390 already set the precedent here so
      it's fairly straight forward.
      
      At the XML level, this adds a new device address type virtio-mmio.
      The controller and addressing don't have any subelements at the
      moment because we they aren't needed for this usecase, but could
      be added later if needed.
      
      Add a test case for an ARM guest with one of every virtio device
      enabled.
      4fa17221
    • C
      qemu: Fix networking for ARM guests · 54a77c6d
      Cole Robinson 提交于
      Similar to the chardev bit, ARM boards depend on the old style '-net nic'
      for actually instantiating net devices. But we can't block out
      -netdev altogether since it's needed for upcoming virtio support.
      
      And add tests for working ARM XML with console, disk, and networking.
      54a77c6d
    • C
      domain_conf: Add disk bus=sd, wire it up for qemu · 3730353f
      Cole Robinson 提交于
      This corresponds to '-sd' and '-drive if=sd' on the qemu command line.
      Needed for many ARM boards which don't provide any other way to
      pass in storage.
      3730353f
    • C
      qemu: Don't try to allocate PCI addresses for ARM · 68e5e93e
      Cole Robinson 提交于
      68e5e93e
    • C
      qemu: Fix specifying char devs for ARM · 3a2beaee
      Cole Robinson 提交于
      QEMU ARM boards don't give us any way to explicitly wire in
      a -chardev, so use the old style -serial options.
      
      Unfortunately this isn't as simple as just turning off the CHARDEV flag
      for qemu-system-arm, as upcoming virtio support _will_ use device/chardev.
      3a2beaee
    • C
      qemu: Don't add default memballoon device on ARM · 7c961764
      Cole Robinson 提交于
      And add test cases for a basic working ARM guest.
      7c961764
    • C
      domain_conf: Add default memballoon in PostParse callbacks · d40cde31
      Cole Robinson 提交于
      This should be a no-op change for now.
      d40cde31
    • C
      qemu: Set QEMU_AUDIO_DRV=none with -nographic · a216e648
      Cole Robinson 提交于
      On my machine, a guest fails to boot if it has a sound card, but not
      graphical device/display is configured, because pulseaudio fails to
      initialize since it can't access $HOME.
      
      A workaround is removing the audio device, however on ARM boards there
      isn't any option to do that, so -nographic always fails.
      
      Set QEMU_AUDIO_DRV=none if no <graphics> are configured. Unfortunately
      this has massive test suite fallout.
      
      Add a qemu.conf parameter nographics_allow_host_audio, that if enabled
      will pass through QEMU_AUDIO_DRV from sysconfig (similar to
      vnc_allow_host_audio)
      a216e648
    • G
      Pass AM_LDFLAGS to driver modules too · f1f0e53b
      Guido Günther 提交于
      This gives us a RO got, otherwise Debian's lintian complains:
      
      W: libvirt-bin: hardening-no-relro usr/lib/libvirt/connection-driver/libvirt_driver_qemu.so
      W: libvirt-bin: hardening-no-relro usr/lib/libvirt/connection-driver/libvirt_driver_storage.so
      W: libvirt-bin: hardening-no-relro usr/lib/libvirt/connection-driver/libvirt_driver_uml.so
      W: libvirt-bin: hardening-no-relro usr/lib/libvirt/connection-driver/libvirt_driver_vbox.so
      W: libvirt-bin: hardening-no-relro usr/lib/libvirt/connection-driver/libvirt_driver_xen.so
      W: libvirt-bin: hardening-no-relro usr/lib/libvirt/connection-driver/libvirt_driver_nwfilter.so
      W: libvirt-bin: hardening-no-relro usr/lib/libvirt/connection-driver/libvirt_driver_storage.so
      W: libvirt-bin: hardening-no-relro usr/lib/libvirt/connection-driver/libvirt_driver_uml.so
      W: libvirt-sanlock: hardening-no-relro usr/lib/libvirt/lock-driver/sanlock.so
      f1f0e53b
    • G
      Fix AM_LDFLAGS typo · fe502de3
      Guido Günther 提交于
      fe502de3
  3. 02 9月, 2013 5 次提交
  4. 01 9月, 2013 1 次提交
  5. 31 8月, 2013 2 次提交
    • E
      build: fix virtlockd file distribution · 902d62f0
      Eric Blake 提交于
      Since virtlockd is only built when libvirtd is built, we should
      not install its auxiliary files unconditionally.  This solves
      two failures.  1. 'make distcheck' complains:
      
      rm -f Makefile
      ERROR: files left in build directory after distclean:
      ./src/virtlockd.8
      
      2. './autobuild.sh' complains:
      
      Checking for unpackaged file(s): /usr/lib/rpm/check-files
      /home/eblake/rpmbuild/BUILDROOT/mingw-libvirt-1.1.1-1.fc19.eblake1377879911.x86_64
      error: Installed (but unpackaged) file(s) found:
         /usr/i686-w64-mingw32/sys-root/mingw/etc/libvirt/virtlockd.conf
      
      /usr/i686-w64-mingw32/sys-root/mingw/share/augeas/lenses/tests/test_virtlockd.aug
         /usr/i686-w64-mingw32/sys-root/mingw/share/augeas/lenses/virtlockd.aug
         /usr/i686-w64-mingw32/sys-root/mingw/share/man/man8/virtlockd.8
         /usr/x86_64-w64-mingw32/sys-root/mingw/etc/libvirt/virtlockd.conf
      
      /usr/x86_64-w64-mingw32/sys-root/mingw/share/augeas/lenses/tests/test_virtlockd.aug
         /usr/x86_64-w64-mingw32/sys-root/mingw/share/augeas/lenses/virtlockd.aug
         /usr/x86_64-w64-mingw32/sys-root/mingw/share/man/man8/virtlockd.8
      
      * src/Makefile.am (CLEANFILES): Add virtlockd.8.
      (man8_MANS, conf_DATA, augeas_DATA, augeastest_DATA): Only install
      virtlockd files when daemon is built.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      902d62f0
    • E
      build: shipped files must not depend on BUILT_SOURCES · cd3fa762
      Eric Blake 提交于
      'make distcheck' was failing with:
      make[3]: Entering directory `/home/eblake/libvirt-tmp2/libvirt-1.1.1/_build/docs'
      perl ../../docs/genaclperms.pl ../../src/access/viraccessperm.h > ../../docs/aclperms.htmlinc
      /bin/sh: ../../docs/aclperms.htmlinc: Permission denied
      
      when simulating the case of a user doing a VPATH build from a
      read-only source tree.  The culprit?  BUILT_SOURCES are _always_
      built, and so must NOT be built into srcdir and need not be part
      of the tarball.  On the other hand, shipped files must never
      depend on files in the builddir.  While it would be possible to
      fix the problem by generating aclperms.htmlinc into builddir,
      we then have the problem that we ship acl.html - we'd have to
      rejigger a lot of things to not ship pre-built html.  So this
      patch goes the other direction - we don't need BUILT_SOURCES,
      but instead ensure that we have proper dependencies so that
      all files in srcdir are up-to-date at the time the tarball is
      created.  And because we ship html files in the tarball, that
      implies we don't expect users to be able to rebuild them, so
      we must not clean any files that would trigger a rebuild except
      under the maintainer rules.
      
      * docs/Makefile.am (BUILT_SOURCES): Delete.
      (CLEANFILES): Downgrade aclperms.htmlinc cleanup...
      (maintainer-clean-local): ...and move hvsupport.html.in...
      (MAINTAINERCLEANFILES): ...to a maintainer action.
      (hvsupport.html.in): Write into srcdir.
      (hvsupport.html): Ensure files are built in order.
      (aclperms.htmlinc): Honor silent make.
      (EXTRA_DIST): Ship aclperms.htmlinc.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      cd3fa762