1. 23 3月, 2012 25 次提交
  2. 22 3月, 2012 9 次提交
    • G
      python: add virDomainGetCPUStats python binding API · a772f4ee
      Guannan Ren 提交于
          dom.getCPUStats(True, 0)
            [{'cpu_time': 24699446159L, 'system_time': 10870000000L, 'user_time': 950000000L}]
          dom.getCPUStats(False, 0)
            [{'cpu_time': 8535292289L}, {'cpu_time': 1005395355L}, {'cpu_time': 9351766377L}, {'cpu_time': 5813545649L}]
      
          *generator.py Add a new naming rule
          *libvirt-override-api.xml The API function description
          *libvirt-override.c Implement it.
      a772f4ee
    • A
      python: Avoid memory leaks on libvirt_virNodeGetCPUStats · 558ebc25
      Alex Jia 提交于
      Detected by valgrind. Leaks are introduced in commit 49556023.
      
      * python/libvirt-override.c (libvirt_virNodeGetCPUStats): fix memory leaks
      and improve codes return value.
      
      For details, please see the following link:
      RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=770943Signed-off-by: NAlex Jia <ajia@redhat.com>
      558ebc25
    • E
      build: drop a painfully long gnulib test · 25fb4c65
      Eric Blake 提交于
      On machines with massive amounts of CPUs, the gnulib 'test-lock'
      could take minutes, or even appear to deadlock, because of poor
      scaling of timing interactions between multiple cores.
      
      See https://bugzilla.redhat.com/show_bug.cgi?id=797284.
      For precedence, note that iwhd has done the same:
      https://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00311.html
      
      We can re-enable things if gnulib ever analyzes and improves the
      situation.
      
      * bootstrap.conf (gnulib_tool_option_extras): Avoid lock-tests.
      25fb4c65
    • J
      qemu: Avoid dangling migration-out job when client dies · 1fdc53c3
      Jiri Denemark 提交于
      When a client which started non-p2p migration dies in a bad time, the
      source libvirtd never clears the migration job and almost nothing can be
      done with the domain without restarting the daemon. This patch makes use
      of connection close callbacks and ensures that migration job is properly
      discarded when the client disconnects.
      1fdc53c3
    • J
      527d867a
    • J
      qemu: Add connection close callbacks · 79127360
      Jiri Denemark 提交于
      Add support for registering arbitrary callback to be called for a domain
      when a connection gets closed.
      79127360
    • J
      qemu: Avoid dangling migration-in job on shutoff domains · 4f061ea6
      Jiri Denemark 提交于
      Destination daemon should not rely on the client or source daemon
      (depending on the type of migration) to call Finish when migration
      fails, because the client may crash before it can do so. The domain
      prepared for incoming migration is set to be destroyed (and migration
      job cleaned up) when connection with the client closes but this is not
      enough. If the associated qemu process crashes after Prepare step and
      the domain is cleaned up before the connection gets closed, autodestroy
      is not called for the domain and migration jobs remains set. In case the
      domain is defined on destination host (i.e., it is not completely
      removed once destroyed) we keep the job set for ever. To fix this, we
      register a cleanup callback which is responsible to clean migration-in
      job when a domain dies anywhere between Prepare and Finish steps. Note
      that we can't blindly clean any job when spotting EOF on monitor since
      normally an API is running at that time.
      4f061ea6
    • J
      qemu: Add support for domain cleanup callbacks · bf9f0a97
      Jiri Denemark 提交于
      Add support for registering cleanup callbacks to be run when a domain
      transitions to shutoff state.
      bf9f0a97
    • J
      qemu: Use unlimited speed when migrating to file · 9f71368d
      Jiri Denemark 提交于
      This reverts commit 61f2b6ba and most of
      commit d8916dc8, which effectively
      brings back commit ef1065cf written by
      Jim Fehlig:
      
      The qemu migration speed default is 32MiB/s as defined in migration.c
      
      /* Migration speed throttling */
      static int64_t max_throttle = (32 << 20);
      
      There's no need to throttle migration when targeting a file, so set
      migration speed to unlimited prior to migration, and restore to libvirt
      default value after migration.
      
      Default units is MB for migrate_set_speed monitor command, so
      (INT64_MAX / (1024 * 1024)) is used for unlimited migration speed.
      
      This was reverted because migration to file could not be canceled and
      even monitored since qemu was not processing any monitor commands until
      the migration finished. This is now different as we make sure the
      file descriptor we pass to qemu is able to properly report EAGAIN.
      Recent qemu changes might have helped as well.
      
      I tested managedsave with this patch in and indeed, it is 10x faster
      while I can still monitor its progress.
      9f71368d
  3. 21 3月, 2012 2 次提交
    • A
      python: Avoid memory leaks on libvirt_virNodeGetMemoryStats · 53b45aa4
      Alex Jia 提交于
      Detected by valgrind. Leaks are introduced in commit 17c77955.
      
      * python/libvirt-override.c (libvirt_virNodeGetMemoryStats): fix memory leaks
      and improve codes return value.
      
      For details, please see the following link:
      RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=770944Signed-off-by: NAlex Jia <ajia@redhat.com>
      53b45aa4
    • E
      python: always include config.h first · 2791b8ab
      Eric Blake 提交于
      On RHEL 5.7, I got this compilation failure:
      
      In file included from /usr/include/python2.4/pyport.h:98,
                       from /usr/include/python2.4/Python.h:55,
                       from libvirt.c:3:
      ../gnulib/lib/time.h:468: error: expected ';', ',' or ')' before '__timer'
      
      Turns out that our '#define restrict __restrict' from config.h wasn't
      being picked up.  Gnulib _requires_ that all .c files include <config.h>
      first, otherwise the gnulib header overrides tend to misbehave.
      
      Problem introduced by patch c700613b.
      
      * python/generator.py (buildStubs): Include <config.h> first.
      2791b8ab
  4. 20 3月, 2012 4 次提交
    • M
      Minor docs fix · e22789de
      Martin Kletzander 提交于
      End tag for "host" element was missing in example configuration
      e22789de
    • L
      conf: forbid use of multicast mac addresses · 00072373
      Laine Stump 提交于
      A few times libvirt users manually setting mac addresses have
      complained of a networking failure that ends up being due to a multicast
      mac address being used for a guest interface. This patch prevents that
      by logging an error and failing if a multicast mac address is
      encountered in each of the three following cases:
      
      1) domain xml <interface> mac address.
      2) network xml bridge mac address.
      3) network xml dhcp/host mac address.
      
      There are several other places where a mac address can be input that
      aren't controlled in this manner because failure to do so has no
      consequences (e.g., if the address will be used to search through
      existing interfaces for a match).
      
      The RNG has been updated to add multiMacAddr and uniMacAddr along with
      the existing macAddr, and macAddr was switched to uniMacAddr where
      appropriate.
      00072373
    • L
      conf: return immediately on error in dhcp host element · 43d635ca
      Laine Stump 提交于
      If an error was encountered parsing a dhcp host entry mac address or
      name, parsing would continue and log a less descriptive error that
      might make it more difficult to notice the true nature of the problem.
      
      This patch returns immediately on logging the first error.
      43d635ca
    • L
      util: fail attempts to use same mac address for guest and tap · 5d571045
      Laine Stump 提交于
      This patch is in response to:
      
        https://bugzilla.redhat.com/show_bug.cgi?id=798467
      
      If a guest's tap device is created using the same MAC address the
      guest uses for its own network card (which connects to the tap
      device), the Linux kernel will log the following message and traffic
      will not pass:
      
       kernel: vnet9: received packet with own address as source address
      
      This patch disallows MAC addresses with a first byte of 0xFE, but only in
      the case that the MAC address is used for a guest interface that's
      connected by way of a standard tap device. (In other words, the
      validation is done at runtime at the same place the MAC address is
      modified for the tap device, rather than when mac address is parsed,
      the idea being that it is then we know for sure the address will be
      problematic.)
      5d571045