1. 25 5月, 2010 12 次提交
    • D
      Fix handling of disk backing stores with cgroups · e596dbb3
      Daniel P. Berrange 提交于
      The cgroups ACL code was only allowing the primary disk image.
      It is possible to chain images together, so we need to search
      for backing stores and add them to the ACL too. Since the ACL
      only handles block devices, we ignore the EINVAL we get from
      plain files. In addition it was missing code to teardown the
      cgroup when hot-unplugging a disk
      
      * src/qemu/qemu_driver.c: Allow backing stores in cgroup ACLs
        and add missing teardown code in unplug path
      e596dbb3
    • C
      Fix up basic migration. · 93500040
      Chris Lalancette 提交于
      Basic live migration was broken by the commit that added
      non-shared block support in two ways:
      
      1)  It added a virCheckFlags() to doNativeMigrate().  Besides
      the fact that typical usage of virCheckFlags() is in driver
      entry points, and doNativeMigrate() is not an entry point,
      it was missing important flags like VIR_MIGRATE_LIVE.  Move
      the virCheckFlags to the top-level qemuDomainMigratePrepare2
      and friends.
      
      2)  It also added a memory leak in qemuMonitorTextMigrate()
      by not freeing the memory used by virBufferContentAndReset().
      This is fixed by storing the pointer in a temporary variable
      and freeing it at the end.
      
      With this patch in place, normal live migration works again.
      
      v3: Instead of the churn for virCheckFlagsUI and UL, instead
      always promote flags to an unsigned long and always use %lx
      for the fprintf.
      v2: Add back flags check, which required adding virCheckFlagsUI
      and virCheckFlagsUL
      Signed-off-by: NChris Lalancette <clalance@redhat.com>
      93500040
    • C
      qemu: Allow using regular audio backends with VNC · fb3ebd03
      Cole Robinson 提交于
      Currently all host audio backends are disabled if a VM is using VNC, in
      favor of the QEMU VNC audio extension. Unfortunately no released VNC
      client supports this extension, so users have no way of getting audio
      to work if using VNC.
      
      Add a new config option in qemu.conf which allows changing libvirt's
      behavior, but keep the default intact.
      
      v2: Fix doc typos, change name to vnc_allow_host_audio
      fb3ebd03
    • C
      storage: mpath: Fix incorrect VIR_ERROR use · c82d106e
      Cole Robinson 提交于
      c82d106e
    • C
      Allow nwfilter functions to be compiled with C++ · 60d05f73
      Chris Lalancette 提交于
      Unfortunately the NWFilter functions were outside of the
      "extern C { ... }" declaration in include/libvirt/libvirt.h.in,
      which means that they couldn't be properly used with C++.  Move
      them inside of the braces, which should fix the problem.
      Signed-off-by: NChris Lalancette <clalance@redhat.com>
      60d05f73
    • S
      nwfilter: documentation · f36eb693
      Stefan Berger 提交于
      This patch adds documentation of the nwfilter subsystem of libvirt to
      the existing (web) docs.
      f36eb693
    • E
      maint: update AUTHORS with recent contributors · 7488107f
      Eric Blake 提交于
      git shortlog $(git log -1 --format=%H AUTHORS).. | grep -v "^ "
      
      then add missing entries to AUTHORS.
      
      * AUTHORS: Update.
      7488107f
    • A
    • A
      qemu: avoid corrupting guest info struct on host device PCI hot add · ddfd4dba
      Alex Williamson 提交于
      The device path doesn't make use of guestAddr, so the memcpy corrupts
      the guest info struct.
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      ddfd4dba
    • D
      Query block allocation extent from QEMU monitor · ebb0c19c
      Daniel P. Berrange 提交于
      The virDomainGetBlockInfo API allows query physical block
      extent and allocated block extent. These are normally the
      same value unless storing a special format like qcow2
      inside a block device. In this scenario we can query QEMU
      to get the actual allocated extent.
      
      Since last time:
      
       - Return fatal error in text monitor
       - Only invoke monitor command for block devices
       - Fix error handling JSON code
      
      * src/qemu/qemu_driver.c: Fill in block aloction extent when VM
        is running
      * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h,
        src/qemu/qemu_monitor_json.c, src/qemu/qemu_monitor_json.h,
        src/qemu/qemu_monitor_text.c, src/qemu/qemu_monitor_text.h: Add
        API to query the highest block extent via info blockstats
      ebb0c19c
    • J
      lxcSetSchedulerParameters: reverse order of tests; diagnose a failure · dd1058fa
      Jim Meyering 提交于
      * src/lxc/lxc_driver.c (lxcSetSchedulerParameters): Ensure that
      "->field" is "cpu_shares" before possibly giving a diagnostic about
      a type for a "cpu_shares" value.
      Also, virCgroupSetCpuShares could fail without evoking a diagnostic.
      Add one.
      dd1058fa
    • C
      fff6be0c
  2. 24 5月, 2010 3 次提交
    • C
      storage: Combine some duplicate code · e40a285b
      Cole Robinson 提交于
      Volume detection in the scsi backend was duplicating code already
      present in storage_backend.c. Let's drop the duplicate code.
      
      Also, change the shared function name to be less generic, and remove
      some error squashing in the other call site.
      e40a285b
    • C
      storage: mpath: Clean up some error handling · 5086f85c
      Cole Robinson 提交于
      We were squashing error messages in a few cases. Recode to follow common
      ret = -1 convention.
      
      v2: Handle more error squashing issues further up in MakeNewVol and
          CreateVols. Use ret = -1 convention in MakeVols.
      5086f85c
    • J
      Remove dead code after refactoring qemudDomainStart · bfa6b73e
      Jiri Denemark 提交于
      The event is already generated and sent by qemudDomainObjStart, no need
      to do anything about here.
      bfa6b73e
  3. 23 5月, 2010 2 次提交
    • J
      libvirtd: start each diagnostic with "argv0: " · d5fda6d6
      Jim Meyering 提交于
      Some diagnostics had a hard-coded "libvirtd: " prefix, some used
      "error: " and some used "argv[0]: ".  Always use "argv[0]: ".
      * daemon/libvirtd.c (argv0): New global.
      (main): Set it.
      (version, usage): Remove argv0 parameter.  Use global; update callers.
      (daemonForkIntoBackground): Use argv0:, not error:.
      (qemudWritePidFile): Start each diagnostic with argv0:.
      Suggested by Eric Blake.
      d5fda6d6
    • J
      libvirtd: mark strings for translation, including --help output · 0c316338
      Jim Meyering 提交于
      * daemon/libvirtd.c (daemonForkIntoBackground, main): Mark strings
      for translation.
      (usage): Rework --help so that it is translatable, replacing
      each embedded, configuration-dependent, macro with an `%s'.
      
      libvirtd: don't ignore virInitialize failure
      * daemon/libvirtd.c (main): Diagnose virInitialize failure
      and exit nonzero.
      0c316338
  4. 22 5月, 2010 8 次提交
    • E
      build: fix cppi warnings · 0e1f4633
      Eric Blake 提交于
      * src/util/bitmap.h (includes): Placate cppi.
      0e1f4633
    • E
      build: force init scripts to rebuild on changed --prefix · 482e08a9
      Eric Blake 提交于
      Otherwise, './configure --prefix=/foo && make &&
       ./configure --prefix=/bar && make' leaves the wrong files
      in libvirtd.init (/foo instead of /bar).
      
      * daemon/Makefile.am (libvirtd.init): Add dependency on
      config.status.  Reported by Cole Robinson.
      482e08a9
    • M
      build: Distribute the whole tests/qemuhelpdata directory · 9c563e76
      Matthias Bolte 提交于
      Instead of distributing the individual files.
      
      Now it's less error prone and consistent with the rest of
      the data directories in the tests directory.
      9c563e76
    • C
      .gitignore: Add libvirt-guests.init · afa3f0af
      Cole Robinson 提交于
      afa3f0af
    • J
      Fix race in finding available vnc port · ba196952
      Jim Fehlig 提交于
      The qemu driver contains a subtle race in the logic to find next
      available vnc port.  Currently it iterates through all available ports
      and returns the first for which bind(2) succeeds.  However it is possible
      that a previously issued port has not yet been bound by qemu, resulting
      in the same port used for a subsequent domain.
      
      This patch addresses the race by using a simple bitmap to "reserve" the
      ports allocated by libvirt.
      
      V2:
        - Put port bitmap in struct qemud_driver
        - Initialize bitmap in qemudStartup
      
      V3:
        - Check for failure of virBitmapGetBit
        - Additional check for port != -1 before calling virbitmapClearBit
      
      V4:
        - Check for failure of virBitmap{Set,Clear}Bit
      ba196952
    • J
      Add defines for QEMU_VNC_PORT_{MIN,MAX} and use them · c020f620
      Jim Fehlig 提交于
      c020f620
    • J
      Add simple bitmap operations to utils · 2f32d7af
      Jim Fehlig 提交于
      V2:
        - Move bitmap impl to src/util/bitmap.[ch]
        - Use CHAR_BIT instead of explicit '8'
        - Use size_t instead of unsigned int
        - Fix calculation of bitmap size in virBitmapAlloc
        - Ensure bit is within range of map in the set, clear, and get
          operations
        - Use bool in virBitmapGetBit
        - Add virBitmapFree to free-like funcs in cfg.mk
      
      V3:
        - Check for overflow in virBitmapAlloc
        - Fix copy and paste bug in virBitmapAlloc
        - Use size_t in prototypes
        - Add ATTRIBUTE_NONNULL in prototypes where appropriate
          and remove NULL check from impl
      
      V4:
        - Add ATTRIBUTE_RETURN_CHECK in prototypes where appropriate.
      2f32d7af
    • C
      daemon: Export SDL audio environment variables · 377bc412
      Cole Robinson 提交于
      /etc/sysconfig/libvirtd has a few environment variables for configuring
      libvirt SDL audio. The libvirtd process doesn't see these, however, because
      they are never exported. Let's export the variables after sourcing the
      sysconfig script.
      
      There is another problem here that the commented out values in the
      sysconfig script are not neccessarily the actual defaults, we are qemus
      mercy here. Not sure how to solve that.
      377bc412
  5. 21 5月, 2010 15 次提交