1. 30 11月, 2011 24 次提交
    • D
      Add internal APIs for dealing with time · 3ec12898
      Daniel P. Berrange 提交于
      The logging APIs need to be able to generate formatted timestamps
      using only async signal safe functions. This rules out using
      gmtime/localtime/malloc/gettimeday(!) and much more.
      
      Introduce a new internal API which is async signal safe.
      
        virTimeMillisNowRaw replacement for gettimeofday. Uses clock_gettime
                            where available, otherwise falls back to the unsafe
                            gettimeofday
      
        virTimeFieldsNowRaw  replacements for gmtime(), convert a timestamp
        virTimeFieldsThenRaw into a broken out set of fields. No localtime()
                             replacement is provided, because converting to
                             local time is not practical with only async signal
                             safe APIs.
      
        virTimeStringNowRaw  replacements for strftime() which print a timestamp
        virTimeStringThenRaw into a string, using a pre-determined format, with
                             a fixed size buffer (VIR_TIME_STRING_BUFLEN)
      
      For each of these there is also a version without the Raw postfix
      which raises a full libvirt error. These versions are not async
      signal safe
      
      * src/Makefile.am, src/util/virtime.c, src/util/virtime.h: New files
      * src/libvirt_private.syms: New APis
      * configure.ac: Check for clock_gettime in -lrt
      * tests/virtimetest.c, tests/Makefile.am: Test new APIs
      3ec12898
    • D
      Remove obsolete virGetPMCapabilities sym from private symbols file · 380110cf
      Daniel P. Berrange 提交于
      Fix the build on Mingw32 by removing the now obsolete
      virGetPMCapabilities symbol from the private exports file
      
      * src/libvirt_private.syms: Remove virGetPMCapabilities
      380110cf
    • D
      Don't mark suspend as active until we know it is running · a82ed6a0
      Daniel P. Berrange 提交于
      If suspend failed for some reason (e.g. too short duration) then
      subsequent attempts to trigger suspend were rejected because we
      had already marked a suspend as being in progress
      
      * src/util/virnodesuspend.c: Don't mark suspend as active
        until we've successfully triggered it
      a82ed6a0
    • D
      Add suspend info to Xen, LXC and UML hypervisor capabilities · 9ae0b834
      Daniel P. Berrange 提交于
      * src/lxc/lxc_conf.c, src/uml/uml_conf.c,
        src/xen/xen_hypervisor.c: Initialize suspend capabilities
      * tests/xencapsdata/*xml: Add empty powermgmt capabilities
      9ae0b834
    • D
      Remove pointless strdup in node suspend code · 8c60bc16
      Daniel P. Berrange 提交于
      The command name for the suspend action does not need to be
      strdup'd. The constant string can be used directly. This
      also means the code can be trivially rearranged to make the
      switch clearer
      
      * src/util/virnodesuspend.c: Remove strdup of cmdString
      8c60bc16
    • D
      Do lazy init of host PM features · 2fc056c1
      Daniel P. Berrange 提交于
      To avoid probing the host power management features on any
      call to virInitialize, only initialize the mutex in
      virNodeSuspendInit. Do lazy load of the supported PM target
      mask when it is actually needed
      
      * src/util/virnodesuspend.c: Lazy init of supported features
      2fc056c1
    • D
      Remove powerMgmt_valid field from capabilities struct · f1f28611
      Daniel P. Berrange 提交于
      If we ensure that virNodeSuspendGetTargetMask always resets
      *bitmask to zero upon failure, there is no need for the
      powerMgmt_valid field.
      
      * src/util/virnodesuspend.c: Ensure *bitmask is zero upon
        failure
      * src/conf/capabilities.c, src/conf/capabilities.h: Remove
        powerMgmt_valid field
      * src/qemu/qemu_capabilities.c: Remove powerMgmt_valid
      f1f28611
    • D
      Add export of node suspend capabilities APIs · f5272027
      Daniel P. Berrange 提交于
      * src/libvirt_private.syms: Export virNodeSuspendSupportsTarget
        and virNodeSuspendGetTargetMask
      f5272027
    • D
      Move suspend capabilities APIs out of util.h into virnodesuspend.c · c92653f4
      Daniel P. Berrange 提交于
      The node suspend capabilities APIs should not have been put into
      util.[ch]. Instead move them into virnodesuspend.[ch]
      
      * src/util/util.c, src/util/util.h: Remove suspend capabilities APIs
      * src/util/virnodesuspend.c, src/util/virnodesuspend.h: Add
        suspend capabilities APIs
      * src/qemu/qemu_capabilities.c: Include virnodesuspend.h
      c92653f4
    • D
      Rename suspend capabilities APIs · 53c2aad8
      Daniel P. Berrange 提交于
      Rename virGetPMCapabilities to virNodeSuspendGetTargetMask and
      virDiscoverHostPMFeature to virNodeSuspendSupportsTarget.
      
      * src/util/util.c, src/util/util.h: Rename APIs
      * src/qemu/qemu_capabilities.c, src/util/virnodesuspend.c: Adjust
        for new names
      53c2aad8
    • D
      Sanitize virDiscoverHostPMFeature to return a boolean · 33386276
      Daniel P. Berrange 提交于
      Since virDiscoverHostPMFeature is just checking one feature,
      there is no reason for it to return a bitmask. Change it to
      return a boolean
      
      * src/util/util.c, src/util/util.h: Make virDiscoverHostPMFeature
        return a boolean
      33386276
    • D
      Move the virHostPMCapability enum helpers into capabilities.c · 6ea25cd9
      Daniel P. Berrange 提交于
      The virHostPMCapability enum helper was declared in util.h
      but implemented in capabilities.c, which is in a completely
      separate library at link time. Move the declaration into the
      capabilities.c file and rename it to match normal conventions
      
      * src/util/util.h: Remove virHostPMCapability enum decl
      * src/conf/capabilities.c: Add virCapsHostPMTarget enum
      6ea25cd9
    • D
      Fix capabilities XML to use generic terms for suspend targets · ae5e5528
      Daniel P. Berrange 提交于
      The capabilities XML uses the x86 specific terms 'S3', 'S4'
      and 'Hybrid-Syspend'. Switch it to use the same terminology
      as the API constants and virsh options, eg 'suspend_mem'
      'suspend_disk' and 'suspend_hybrid'
      
      * docs/formatcaps.html.in, docs/schemas/capability.rng,
        src/conf/capabilities.c: Rename suspend constants
      ae5e5528
    • D
      Remove internal only virHostPMCapability enum · 6fb5400f
      Daniel P. Berrange 提交于
      The internal virHostPMCapability enum just duplicates the
      public virNodeSuspendTarget enum, but with different names.
      
      * src/util/util.c: Use VIR_NODE_SUSPEND_TARGET constants
      * src/util/util.h: Remove virHostPMCapability enum
      * src/conf/capabilities.c: Use VIR_NODE_SUSPEND_TARGET_LAST
      6fb5400f
    • D
      Fix values of PM target type constants · 866b0a70
      Daniel P. Berrange 提交于
      The VIR_NODE_SUSPEND_TARGET constants are not flags, so they
      should just be assigned straightforward incrementing values.
      
      * include/libvirt/libvirt.h.in: Change VIR_NODE_SUSPEND_TARGET
        values
      * src/util/virnodesuspend.c: Fix suspend target checks
      866b0a70
    • A
      util: avoid null deref on qcowXGetBackingStore · a001a5e2
      Alex Jia 提交于
      Detected by Coverity. the only case is caller passes a NULL to 'format' variable,
      then taking 'if (format)' false branch, the function qcow2GetBackingStoreFormat
      will directly dereferences the NULL 'format' pointer variable.
      Signed-off-by: NAlex Jia <ajia@redhat.com>
      a001a5e2
    • A
      virsh: correct return value error · d082e1b9
      Alex Jia 提交于
      Fix cmdDomblklist to return 'true' on success instead of '0'
      
      https://bugzilla.redhat.com/show_bug.cgi?id=758590Signed-off-by: NAlex Jia <ajia@redhat.com>
      d082e1b9
    • L
      Add new API virDomain{Set, Get}BlockIoTune · 1f8a339d
      Lei Li 提交于
      This patch add new pulic API virDomainSetBlockIoTune and
      virDomainGetBlockIoTune.
      Signed-off-by: NLei Li <lilei@linux.vnet.ibm.com>
      Signed-off-by: NZhi Yong Wu <wuzhy@linux.vnet.ibm.com>
      Signed-off-by: NEric Blake <eblake@redhat.com>
      1f8a339d
    • H
      blkiotune: add qemu support for blkiotune.device_weight · 93ab5859
      Hu Tao 提交于
      Implement setting/getting per-device blkio weights in qemu,
      using the cgroups blkio.weight_device tunable.
      93ab5859
    • H
      blkiotune: add interface for blkiotune.device_weight · 6ac81c8e
      Hu Tao 提交于
      This adds per-device weights to <blkiotune>.  Note that the
      cgroups implementation only supports weights per block device,
      and not per-file within the device; hence this option must be
      global to the domain definition rather than tied to individual
      <devices>/<disk> entries:
      
      <domain ...>
        <blkiotune>
          <device>
            <path>/path/to/block</path>
            <weight>1000</weight>
          </device>
        </blkiotune>
      ..
      
      This patch also adds a parameter --device-weights to virsh command
      blkiotune for setting/getting blkiotune.weight_device for any
      hypervisor that supports it.  All <device> entries under
      <blkiotune> are concatenated into a single string attribute under
      virDomain{Get,Set}BlkioParameters, named "device_weight".
      Signed-off-by: NHu Tao <hutao@cn.fujitsu.com>
      Signed-off-by: NEric Blake <eblake@redhat.com>
      6ac81c8e
    • E
      qemu: fix blkiotune --live --config · 659ded58
      Eric Blake 提交于
      Without this,  'virsh blkiotune --live --config --weight=n'
      only affected live.
      
      * src/qemu/qemu_driver.c (qemuDomainSetBlkioParameters): Allow
      setting both configurations at once.
      659ded58
    • E
      qemu, lxc: drop redundant checks · 51727c1d
      Eric Blake 提交于
      After the previous patch, there are now some redundant checks.
      
      * src/qemu/qemu_driver.c (qemudDomainGetVcpuPinInfo)
      (qemuGetSchedulerParametersFlags): Drop checks now guaranteed by
      libvirt.c.
      * src/lxc/lxc_driver.c (lxcGetSchedulerParametersFlags):
      Likewise.
      51727c1d
    • E
      API: prevent query of --live and --config at once · 4199f3de
      Eric Blake 提交于
      Drivers were inconsistent when presented both --live and --config
      at once.  For example, within qemu, getting memory parameters
      favored live, getting blkio tuning favored config, and getting
      scheduler parameters errored out.  Also, some, but not all,
      attempts to mix flags on query were filtered at the virsh level.
      We shouldn't have to duplicate efforts in every client app, nor
      in every driver.  So, it is simpler to just enforce that the two
      flags cannot both be used at once on query operations, which has
      precedent in libvirt.c, and which matches the documentation of
      virDomainModificationImpact.
      
      * src/libvirt.c (virDomainGetMemoryParameters)
      (virDomainGetBlkioParameters)
      (virDomainGetSchedulerParametersFlags, virDomainGetVcpuPinInfo):
      Borrow sanity checking from virDomainGetVcpusFlags.
      4199f3de
    • E
      build: fix typo in last patch · 80eaa565
      Eric Blake 提交于
      * src/remote_protocol-structs: Use correct RPC name.
      80eaa565
  2. 29 11月, 2011 16 次提交