1. 20 6月, 2011 16 次提交
    • T
      vcpupin: add vcpupin resetting feature to qemu driver · 7ea9778c
      Taku Izumi 提交于
      Pinning to all physical cpus means resetting, hence it is preferable to
      delete vcpupin setting of XML.
      
      This patch changes qemu driver to delete vcpupin setting by invoking
      virDomainVcpupinDel API when pinning the specified virtual cpu to
      all host physical cpus.
      Signed-off-by: NTaku Izumi <izumi.taku@jp.fujitsu.com>
      7ea9778c
    • T
      vcpupin: add virDomainVcpupinDel function · 3711c0b0
      Taku Izumi 提交于
      This patch add the private API (virDomainVcpupinDel).
      This API can delete the vcpupin setting of a specified virtual cpu.
      Signed-off-by: NTaku Izumi <izumi.taku@jp.fujitsu.com>
      3711c0b0
    • T
      vcpupin: add reset option to virsh vcpupin command · c4a8ca71
      Taku Izumi 提交于
      When resetting vcpupin setting, we have to specify all host physical
      cpus as a cpulist parameter of virsh vcpupin command. It's a little
      tedious.
      
      This patch changes to allow to receive the special keyword 'r' as a cpulist
      parameter of virsh vcpupin command when resetting vcpupin setting.
      
      If you set the following:
      
       # virsh vcpupin VM 0 r
      
      the vcpu0 will be pinned to all physical cpus.
      Signed-off-by: NTaku Izumi <izumi.taku@jp.fujitsu.com>
      c4a8ca71
    • T
      vcpupin: improve vcpupin definition of virsh vcpupin · 2903534a
      Taku Izumi 提交于
      When using vcpupin command, we have to speficy comma-separated list as cpulist,
      but this is tedious in case the number of phsycal cpus is large.
      This patch improves this by introducing special markup "-" and "^" which are
      similar to XML schema of "cpuset" attribute.
      
      The example:
      
       # virsh vcpupin Guest 0 0-15,^8
      
       is identical to
      
       # virsh vcpupin Guest 0 0,1,2,3,4,5,6,7,9,10,11,12,13,14,15
      
      NOTE: The expression is sequentially evaluated, so "0-15,^8" is not identical
      to "^8,0-15".
      Signed-off-by: NTaku Izumi <izumi.taku@jp.fujitsu.com>
      2903534a
    • M
      Fix preprocessor indentation in nodeinfo.c · d967a8bf
      Matthias Bolte 提交于
      d967a8bf
    • M
      Move XenAPI driver to correct spec file section · 7e3205cd
      Matthias Bolte 提交于
      The XenAPI driver works like the ESX and PHyp driver by using its
      own HTTPS based remote protocol.
      7e3205cd
    • O
      numatune: Add tests for numatune XML · b369114d
      Osier Yang 提交于
      Only add tests for qemuxmlargvtest.c, as there is no qemu command line
      for numatune XML, just want to make sure the XML could be validated
      well.
      b369114d
    • O
      numatune: Support NUMA memory tuning in qemu driver · a6f5c9b6
      Osier Yang 提交于
      Implemented as setting NUMA policy between fork and exec as a hook,
      using libnuma. Only support memory tuning on domain process currently.
      
      For the nodemask out of range, will report soft warning instead of
      hard error in libvirt layer. (Kernel will be silent as long as one
      of set bit in the nodemask is valid on the host. E.g. For a host
      has two NUMA nodes, kernel will be silent for nodemask "01010101").
      So, soft warning is the only thing libvirt can do, as one might want
      to specify the numa policy prior to a node that doesn't exist yet,
      however, it may come as hotplug soon.
      a6f5c9b6
    • O
      numatune: Support persistent XML for numatune · d7edaf5d
      Osier Yang 提交于
      * src/conf/domain_conf.h: Introduce one new struct for representing
      NUMA tuning related stuffs.
      
      * src/conf/domain_conf.c: Parse and format numatune XML.
      d7edaf5d
    • O
      numatune: Add doc for new numatune XML · e6ea48c3
      Osier Yang 提交于
      e6ea48c3
    • O
      numatune: Define XML schema · e68b9ab0
      Osier Yang 提交于
      Example XML:
      
      <numatune>
        <memory mode="strict" nodeset="0-10,^4"/>
      </numatune>
      
      Please enter the commit message for your changes. Lines starting
      e68b9ab0
    • H
      Update qemuDomainSetBlkioParameters to use flags · 8485e5a2
      Hu Tao 提交于
      8485e5a2
    • H
      update qemuDomainGetBlkioParameters to use flags · 100c39ca
      Hu Tao 提交于
      100c39ca
    • H
      Add new parameters for blkiotune · 1bb414af
      Hu Tao 提交于
      Add --config, --live and --current for command blkiotune
      1bb414af
    • W
      build: fix building error when building without libvirtd · 34e3ec90
      Wen Congyang 提交于
      When building libvirt without libvirtd, we will receive the following error
      message:
      
      make[3]: Entering directory `/home/wency/rpmbuild/BUILD/libvirt-0.9.2/tools'
        CC     virsh-virsh.o
        CC     virsh-console.o
        GEN    virt-xml-validate
        GEN    virt-pki-validate
        CCLD   virsh
      ./src/.libs/libvirt.so: undefined reference to `numa_available'
      ./src/.libs/libvirt.so: undefined reference to `numa_max_node'
      collect2: ld returned 1 exit status
      
      The reason is that: we check numactl only when building qemu driver, and qemu
      driver will not be built when bulding without libvirtd. So with_numactl's
      value is check and we will not link libnuma.so.
      
      In the other function, we call numa_available() and numa_max_node() only
      when HAVE_NUMACTL is 1. We should do the same check in the function nodeGetMemoryStats().
      34e3ec90
    • J
      apparmor: implement AppArmorSetFDLabel() · b9757fea
      Jamie Strandboge 提交于
      During a savevm operation, libvirt will now use fd migration if qemu
      supports it. When the AppArmor driver is enabled, AppArmorSetFDLabel()
      is used but since this function simply returns '0', the dynamic AppArmor
      profile is not updated and AppArmor blocks access to the save file. This
      patch implements AppArmorSetFDLabel() to get the pathname of the file by
      resolving the fd symlink in /proc, and then gives that pathname to
      reload_profile(), which fixes 'virsh save' when AppArmor is enabled.
      
      Reference: https://launchpad.net/bugs/795800
      b9757fea
  2. 17 6月, 2011 7 次提交
  3. 16 6月, 2011 4 次提交
    • M
      Fix documentation of virStreamRecv · be757a3f
      Matthias Bolte 提交于
      virStreamRecv is for reading.
      
      Also add some missing punctuation to virStreamSend's documentation.
      be757a3f
    • E
      sendkey: use consistent API convention · 1d575629
      Eric Blake 提交于
      Even though rpc uses 'unsigned int' for the _len parameter that
      passes the length of item<length>, the public libvirt APIs all
      use 'int' and filter out lengths < 0, except for virDomainSendKey.
      
      * include/libvirt/libvirt.h.in (virDomainSendKey): All other APIs
      use int for array length.
      * src/libvirt.c (virDomainSendKey): Adjust.
      * src/driver.h (virDrvDomainSendKey): Likewise.
      * daemon/remote_generator.pl: Likewise.
      1d575629
    • E
      build: export correct function names · b33cd5e3
      Eric Blake 提交于
      Detected by autobuild.sh, when targetting mingw.
      Introduced in commit 98bfdff1.
      
      * src/libvirt_private.syms: Fix typos.
      b33cd5e3
    • E
      build: avoid compiler warning on non-Linux · a1df7054
      Eric Blake 提交于
      Detected by autobuild.sh when cross-building for mingw.
      Introduced in commits ce76e853 and af35cece.
      
      * src/nodeinfo.c (nodeGetCPUStats, nodeGetMemoryStats): Mark
      parameters as potentially unused.
      a1df7054
  4. 15 6月, 2011 13 次提交
    • M
      remote generator: Handle struct returning functions better (part 2) · 9fbfcd3b
      Matthias Bolte 提交于
      Commit 64000eab is part 1, that only covered the daemon side by
      accident. Part 2 covers the client side too.
      9fbfcd3b
    • M
      Fix apibuild.py warnings about missing comment headers · 6c88f119
      Matthias Bolte 提交于
      Also improve wording of some comments.
      6c88f119
    • M
      remote generator: Handle struct returning functions better · 64000eab
      Matthias Bolte 提交于
      The position of the struct parameter in the function signature
      differs. Instead of hardcoding the handling for this add an annotation
      to the .x file to define the position.
      64000eab
    • D
      support for Xen HVM Viridian (Hyper-V) enlightenment interface · c4bd6d96
      Daniel Gollub 提交于
      Introduce libvirt support for Xen HVM Viridian (Hyper-V) enlightenment
      interface guest feature.
      
       src/conf/domain_conf.c     |    3 ++-
       src/conf/domain_conf.h     |    1 +
       src/xen/xen_hypervisor.c   |   11 +++++++++++
       src/xenapi/xenapi_driver.c |    2 ++
       src/xenapi/xenapi_utils.c  |    2 ++
       src/xenxs/xen_sxpr.c       |    4 ++++
       src/xenxs/xen_xm.c         |   12 +++++++++++-
       7 files changed, 33 insertions(+), 2 deletions(-)
      c4bd6d96
    • E
      virsh: reduce complexity in argv iteration · a2ff807a
      Eric Blake 提交于
      This reduces things from O(n^2) to O(n).
      
      * tools/virsh.c (vshCommandOptArgv): Change signature.
      (cmdEcho): Update caller.
      Based on a patch by Lai Jiangshan.
      a2ff807a
    • D
      Add support for network filter code in LXC driver · b86524e8
      Daniel P. Berrange 提交于
      The LXC driver networking uses veth device pairs. These can
      be easily hooked into the network filtering code.
      
      * src/lxc/lxc_driver.c: Add calls to setup/teardown nwfilter
      b86524e8
    • D
      Fix allocation of veth's to not skip an index · b4728dd4
      Daniel P. Berrange 提交于
      The algorithm for autoassigning vethXXX devices, was always
      skipping over the starting dev index when finding a free
      name for the guest device. This should only be done if the host
      device was autoallocated.
      
      * src/lxc/veth.c: Don't skip over veth indexes
      b4728dd4
    • J
      qemu: Translate boot config into bootindex if possible · c3068d4d
      Jiri Denemark 提交于
      Prefer bootindex=N option for -device over the old way -boot ORDER
      possibly accompanied with boot=on option for -drive. This gives us full
      control over which device will actually be used for booting guest OS.
      Moreover, if qemu doesn't support boot=on, this is the only way to boot
      of certain disks in some configurations (such as virtio disks when used
      together IDE disks) without transforming domain XML to use per device
      boot elements.
      c3068d4d
    • A
      Asynchronous event for BlockPull completion · 12cd77a0
      Adam Litke 提交于
      When an operation started by virDomainBlockPullAll completes (either with
      success or with failure), raise an event to indicate the final status.  This
      allows an API user to avoid polling on virDomainBlockPullInfo if they would
      prefer to use the event mechanism.
      
      * daemon/remote.c: Dispatch events to client
      * include/libvirt/libvirt.h.in: Define event ID and callback signature
      * src/conf/domain_event.c, src/conf/domain_event.h,
        src/libvirt_private.syms: Extend API to handle the new event
      * src/qemu/qemu_driver.c: Connect to the QEMU monitor event
        for block_stream completion and emit a libvirt block pull event
      * src/remote/remote_driver.c: Receive and dispatch events to application
      * src/remote/remote_protocol.x: Wire protocol definition for the event
      * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h,
        src/qemu/qemu_monitor_json.c: Watch for BLOCK_STREAM_COMPLETED event
        from QEMU monitor
      Signed-off-by: NAdam Litke <agl@us.ibm.com>
      12cd77a0
    • A
      Enable virDomainBlockPull in the python API. · d74b86f5
      Adam Litke 提交于
      virDomainBlockPullAll and virDomainBlockPullAbort are handled automatically.
      virDomainBlockPull and virDomainBlockPullInfo require manual overrides since
      they return a custom type.
      
      * python/generator.py: reenable bindings for this entry point
      * python/libvirt-override-api.xml python/libvirt-override.c:
        manual overrides
      Signed-off-by: NAdam Litke <agl@us.ibm.com>
      Acked-by: NDaniel P. Berrange <berrange@redhat.com>
      d74b86f5
    • A
      Enable the virDomainBlockPull API in virsh · 3e2493ce
      Adam Litke 提交于
      Define two new virsh commands:
       * blockpull: Perform block pull operations (incremental plus start
                    and stop continuous streams)
       * blockpullinfo: Retrieve progress info for continuous block pull
      
      Share print_job_progress() with the migration code.
      
      * tools/virsh.c: implement the new commands
      Signed-off-by: NAdam Litke <agl@us.ibm.com>
      3e2493ce
    • A
      Implement virDomainBlockPull for the qemu driver · 784ee08d
      Adam Litke 提交于
      The virDomainBlockPull* family of commands are enabled by the
      'block_stream' and 'info block_stream' qemu monitor commands.
      
      * src/qemu/qemu_driver.c src/qemu/qemu_monitor_text.[ch]: implement disk
        streaming by using the stream and info stream text monitor commands
      * src/qemu/qemu_monitor_json.[ch]: implement commands using the qmp monitor
      Signed-off-by: NAdam Litke <agl@us.ibm.com>
      Acked-by: NDaniel P. Berrange <berrange@redhat.com>
      784ee08d
    • A
      Add virDomainBlockPull support to the remote driver · d1693bb1
      Adam Litke 提交于
      The generator can handle DomainBlockPullAll and DomainBlockPullAbort.
      DomainBlockPull and DomainBlockPullInfo must be written by hand.
      
      * src/remote/remote_protocol.x: provide defines for the new entry points
      * src/remote/remote_driver.c daemon/remote.c: implement the client and
        server side
      * src/remote_protocol-structs: structure definitions for protocol verification
      Signed-off-by: NAdam Litke <agl@us.ibm.com>
      d1693bb1