1. 16 3月, 2013 1 次提交
  2. 14 3月, 2013 2 次提交
    • P
      virtio-rng: Add rate limiting options for virtio-RNG · 32bd699f
      Peter Krempa 提交于
      Qemu's implementation of virtio RNG supports rate limiting of the
      entropy used. This patch exposes the option to tune this functionality.
      
      This patch is based on qemu commit 904d6f588063fb5ad2b61998acdf1e73fb4
      
      The rate limiting is exported in the XML as:
      <devices>
        ...
        <rng model='virtio'>
          <rate bytes='123' period='1234'/>
          <backend model='random'/>
        </rng>
        ...
      32bd699f
    • V
      S390: Documentation for CCW address type · 41ce2c9e
      Viktor Mihajlovski 提交于
      The native bus for s390 I/O is called CCW (channel command word).
      As QEMU has added basic support for the CCW bus, i.e. the
      ability to assign CCW devnos (bus addresses) to devices.
      Domains with the new machine type s390-ccw-virtio can use the
      CCW bus. Currently QEMU will only allow to define virtio
      devices on the CCW bus.
      Here we add the new machine type and the new device address to the
      schema definition and add a new paragraph to the domain XML
      documentation.
      Signed-off-by: NViktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
      41ce2c9e
  3. 05 3月, 2013 1 次提交
    • E
      rng: restrict passthrough names to known-good files · 4932ef45
      Eric Blake 提交于
      There is some controversy[1] on the qemu list on whether qemu should
      have ever allowed arbitrary file name passthrough, or whether it
      should be restricted to JUST /dev/random and /dev/hwrng.  It is
      always easier to add support for additional filenames than it is
      to remove support for something once released, so this patch
      restricts libvirt 1.0.3 (where the virtio-random backend was first
      supported) to just the two uncontroversial names, letting us defer
      to a later date any decision on whether supporting arbitrary files
      makes sense. Additionally, since qemu 1.4 does NOT support
      /dev/fdset/nnn fd passthrough for the backend, limiting to just
      two known names means that we don't get tempted to try fd
      passthrough where it won't work.
      
      [1]https://lists.gnu.org/archive/html/qemu-devel/2013-03/threads.html#00023
      
      * src/conf/domain_conf.c (virDomainRNGDefParseXML): Only allow
      /dev/random and /dev/hwrng.
      * docs/schemas/domaincommon.rng: Flag invalid files.
      * docs/formatdomain.html.in (elementsRng): Document this.
      * tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-random.args:
      Update test to match.
      * tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-random.xml:
      Likewise.
      4932ef45
  4. 27 2月, 2013 2 次提交
  5. 25 2月, 2013 1 次提交
    • P
      doc: schema: Add basic documentation for the virtual RNG device support · fa16c80f
      Peter Krempa 提交于
      This patch documents XML elements used for (basic) support of virtual
      RNG devices.
      
      In the devices section in the domain XML users may specify:
      
      For the default 'random' backend:
        <devices>
          <rng model='virtio'>
            <backend model='random'>/dev/urandom</backend>
          </rng>
        </devices>
      
      For the slightly more advanced EGD backend:
        <devices>
          <rng model='virtio'>
            <backend model='egd' type='udp'>
              <!-- this is a definition of a character device -->
              <source mode='bind' service='1234'/>
              <source mode='connect' host='1.2.3.4' service='1234'/>
              <!-- or other valid character device configuration -->
            </backend>
          </rng>
        </devices>
      
      For the planned random daemon/pool:
        <devices>
          <rng model='virtio'>
            <backend model='pool' pool='poolname'>class</backend>
          </rng>
        </devices>
      
      to enable the RNG device for guests.
      fa16c80f
  6. 21 2月, 2013 1 次提交
  7. 12 2月, 2013 1 次提交
    • V
      S390: Documentation for CCW address type · 24aa7f8d
      Viktor Mihajlovski 提交于
      The native bus for s390 I/O is called CCW (channel command word).
      As QEMU has added basic support for the CCW bus, i.e. the
      ability to assign CCW devnos (bus addresses) to devices.
      Domains with the new machine type s390-ccw-virtio can use the
      CCW bus. Currently QEMU will only allow to define virtio
      devices on the CCW bus.
      Here we add the new machine type and the new device address to the
      schema definition and add a new paragraph to the domain XML
      documentation.
      Signed-off-by: NViktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
      24aa7f8d
  8. 30 1月, 2013 1 次提交
    • M
      docs: aesthetical cleanups · 901f4b6b
      Martin Kletzander 提交于
      Adding dots inside "exempli gratia" where missing.  While on that, I
      took the liberty of changing it where found with simple grep.
      901f4b6b
  9. 23 1月, 2013 1 次提交
    • A
      qemu: Support ram bar size for qxl devices · 55bfd020
      Alon Levy 提交于
      Adds a "ram" attribute globally to the video.model element, that changes
      the resulting qemu command line only if video.type == "qxl".
      
      <video>
        <model type='qxl' ram='65536' vram='65536' heads='1'/>
      </video>
      
      That attribute gets a default value of 64*1024. The schema is unchanged
      for other video element types.
      
      The resulting qemu command line change is the addition of
      
      -global qxl-vga.ram_size=<ram>*1024
      
      or
      
      -global qxl.ram_size=<ram>*1024
      
      For the main and secondary qxl devices respectively.
      
      The default for the qxl ram bar is 64*1024 kilobytes (the same as the
      default qxl vram bar size).
      55bfd020
  10. 11 1月, 2013 1 次提交
  11. 10 1月, 2013 2 次提交
    • G
      network: fix typos and docs · 29d37818
      Guannan Ren 提交于
      29d37818
    • G
      qemu: add usb-serial support · e3a04455
      Guannan Ren 提交于
      Add an optional 'type' attribute to <target> element of serial port
      device. There are two choices for its value, 'isa-serial' and
      'usb-serial'. For backward compatibility, when attribute 'type' is
      missing the 'isa-serial' will be chosen as before.
      
      Libvirt XML sample
      
          <serial type='pty'>
            <target type='usb-serial' port='0'/>
            <address type='usb' bus='0' port='1'/>
          </serial>
      
      qemu commandline:
      
      qemu ${other_vm_args}              \
          -chardev pty,id=charserial0    \
          -device usb-serial,chardev=charserial0,id=serial0,bus=usb.0,port=1
      e3a04455
  12. 08 1月, 2013 1 次提交
  13. 07 1月, 2013 1 次提交
    • O
      docs: Add docs and rng schema for new XML tag sgio · b9c57e7b
      Osier Yang 提交于
      This introduces new XML tag "sgio" for disk, its valid values
      are "filtered" and "unfiltered", setting it as "filtered" will
      set the disk's unpriv_sgio to 0, and "unfiltered" to set it
      as 1, which allows the unprivileged SG_IO commands.
      b9c57e7b
  14. 18 12月, 2012 2 次提交
    • J
      docs: Fix documentation for readonly element · 4ed80c76
      Jiri Denemark 提交于
      4ed80c76
    • D
      Add support for <hostdev mode="capabilities"> · aae0fc2a
      Daniel P. Berrange 提交于
      The <hostdev> device type has long had a redundant "mode"
      attribute, which has always been "subsys". This finally
      introduces a new mode "capabilities", which will be used
      by the LXC driver for device assignment. Since container
      based virtualization uses a single kernel, the idea of
      assigning physical PCI devices doesn't make sense. It is
      still reasonable to assign USB devices, but for assigning
      arbitrary nodes in /dev, the new 'capabilities' mode is
      to be used.
      
      The first capability support is 'storage', which is for
      assignment of block devices. Functionally this is really
      pretty similar to the <disk> support. The only difference
      is the device node name is identical in both host and
      container namespaces.
      
          <hostdev mode='capabilities' type='storage'>
            <source>
              <block>/dev/sdf1</block>
            </source>
          </hostdev>
      
      The second capability support is 'misc', which is for
      assignment of character devices. There is no existing
      parallel to this. Again the device node is the same
      inside & outside the container.
      
          <hostdev mode='capabilities' type='misc'>
            <source>
              <char>/dev/input/event3</char>
            </source>
          </hostdev>
      
      The reason for keeping the char & storage devices
      separate in the domain XML, is to mirror the split
      in the node device XML. NB the node device XML does
      not yet report character devices, but that's another
      new patch to come
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      aae0fc2a
  15. 17 12月, 2012 1 次提交
    • G
      conf: add optional attribte primary to video <model> element · 09938bb3
      Guannan Ren 提交于
      If there are multiple video devices
      primary = 'yes' marks this video device as the primary one.
      The rest are secondary video devices. No more than one could be
      mark as primary. If none of them has primary attribute, the first
      one will be the primary by default like what it was.
      The reason of this changing is that for qemu, only one primary video
      device is permitted which can be of any type. For secondary video
      devices, only qxl is allowd. Primary attribute removes the restriction
      that the first have to be the primary one.
      
      We always put the primary video device into the first position of
      video device structure array after parsing.
      09938bb3
  16. 14 12月, 2012 1 次提交
  17. 12 12月, 2012 1 次提交
    • M
      bandwidth: add new 'floor' attribute · ec6474b2
      Michal Privoznik 提交于
      This is however supported only on domain interfaces with
      type='network'. Moreover, target network needs to have at least
      inbound QoS set. This is required by hierarchical traffic shaping.
      
      From now on, the required attribute for <inbound/> is either 'average'
      (old) or 'floor' (new). This new attribute can be used just for
      interfaces type of network (<interface type='network'/>) currently.
      ec6474b2
  18. 07 12月, 2012 1 次提交
  19. 27 11月, 2012 1 次提交
    • H
      Add Gluster protocol as supported network disk backend · a2d2b80f
      Harsh Prateek Bora 提交于
      This patch introduces the RNG schema and updates necessary data strucutures
      to allow various hypervisors to make use of Gluster protocol as one of the
      supported network disk backend. Next patch will add support to make use of
      this feature in Qemu since it now supports Gluster protocol as one of the
      network based storage backend.
      
      Two new optional attributes for <host> element are introduced - 'transport'
      and 'socket'. Valid transport values are tcp, unix or rdma. If none specified,
      tcp is assumed. If transport is unix, socket specifies path to unix socket.
      
      This patch allows users to specify disks on gluster backends like this:
      
          <disk type='network' device='disk'>
            <driver name='qemu' type='raw'/>
            <source protocol='gluster' name='Volume1/image'>
              <host name='example.org' port='6000' transport='tcp'/>
            </source>
            <target dev='vda' bus='virtio'/>
          </disk>
      
          <disk type='network' device='disk'>
            <driver name='qemu' type='raw'/>
            <source protocol='gluster' name='Volume2/image'>
              <host transport='unix' socket='/path/to/sock'/>
            </source>
            <target dev='vdb' bus='virtio'/>
          </disk>
      Signed-off-by: NHarsh Prateek Bora <harsh@linux.vnet.ibm.com>
      a2d2b80f
  20. 22 11月, 2012 2 次提交
  21. 26 10月, 2012 1 次提交
  22. 18 10月, 2012 1 次提交
    • P
      conf: Add support for HyperV Enlightenment features · cc922fdd
      Peter Krempa 提交于
      Hypervisors are starting to support HyperV Enlightenment features that
      improve behavior of guests running Microsoft Windows operating systems.
      
      This patch adds support for the "relaxed" feature that improves timer
      behavior and also establishes a framework to add these features in
      future.
      cc922fdd
  23. 16 10月, 2012 1 次提交
  24. 15 10月, 2012 1 次提交
    • O
      doc: Sort out the relationship between <vcpu>, <vcpupin>, and <emulatorpin> · f108944a
      Osier Yang 提交于
      These 3 elements conflicts with each other in either the doc
      or the underlying codes.
      
      Current problems:
      
      Problem 1:
      
      The doc shouldn't simply say "These settings are superseded
      by CPU tuning. " for element <vcpu>. As except the tuning, <vcpu>
      allows to specify the current, maxmum vcpu number. Apart from that,
      <vcpu> also allows to specify the placement as "auto", which binds
      the domain process to the advisory nodeset from numad.
      
      Problem 2:
      
      Doc for <vcpu> says its "cpuset" specify the physical CPUs
      that the vcpus can be pinned. But it's not the truth, as
      actually it only pin domain process to the specified physical
      CPUs. So either it's a document bug, or code bug.
      
      Problem 3:
      
      Doc for <vcpupin> says it supersed "cpuset" of <vcpu>, it's
      not quite correct, as each <vcpupin> specify the pinning policy
      only for one vcpu. How about the ones which doesn't have
      <vcpupin> specified? it says the vcpu will be pinned to all
      available physical CPUs, but what's the meaning of attribute
      "cpuset" of <vcpu> then?
      
      Problem 4:
      
      Doc for <emulatorpin> says it pin the emulator threads (domain
      process in other context, perhaps another follow up patch to
      cleanup the inconsistency is needed) to the physical CPUs
      specified its attribute "cpuset". Which conflicts with
      <vcpu>'s "cpuset". And actually in the underlying codes,
      it set the affinity for domain process twice if both
      "cpuset" for <vcpu> and <emulatorpin> are specified,
      and <emulatorpin>'s pinning will override <vcpu>'s.
      
      Problem 5:
      
      When "placement" of <vcpu> is "auto" (I.e. uses numad to
      get the advisory nodeset to which the domain process is
      pinned to), it will also be overridden by <emulatorpin>,
      
      This patch is trying to sort out the conflicts or bugs by:
      
      1) Don't say <vcpu> is superseded by <cputune>
      
      2) Keep the semanteme for "cpuset" of <vcpu> (I.e. Still says it
         specify the physical CPUs the virtual CPUs). But modifying it
         to mention it also set the pinning policy for domain process,
         and the CPU placement of domain process specified by "cpuset"
         of <vcpu> will be ingored if <emulatorpin> specified, and
         similary, the CPU placement of vcpu thread will be ignored
         if it has <vcpupin> specified, for vcpu which doesn't have
         <vcpupin> specified, it inherits "cpuset" of <vcpu>.
      
      3) Don't say <vcpu> is supersed by <vcpupin>. If neither <vcpupin>
         nor "cpuset" of <vcpu> is specified, the vcpu will be pinned
         to all available pCPUs.
      
      4) If neither <emulatorpin> nor "cpuset" of <vcpu> is specified,
         the domain process (emulator threads in the context) will be
         pinned to all available pCPUs.
      
      5) If "placement" of <vcpu> is "auto", <emulatorpin> is not allowed.
      
      6) hotplugged vcpus will also inherit "cpuset" of <vcpu>
      
      Codes changes according to above document changes:
      
      1) Inherit def->cpumask for each vcpu which doesn't have <vcpupin>
         specified, during parsing.
      
      2) ping the vcpu which doesn't have <vcpupin> specified to def->cpumask
         either by cgroup for sched_setaffinity(2), which is actually done
         by 1).
      
      3) Error out if "placement" == "auto", and <emulatorpin> is specified.
         Otherwise, <emulatorpin> is honored, and "cpuset" of <cpuset> is
         ignored.
      
      4) Setup cgroup for each hotplugged vcpu, and setup the pinning policy
         by either cgroup or sched_setaffinity(2).
      
      5) Remove cgroup and <vcpupin> for each hot unplugged vcpu.
      
      Patches are following (6 in total except this patch)
      f108944a
  25. 12 10月, 2012 1 次提交
  26. 11 10月, 2012 4 次提交
  27. 03 10月, 2012 1 次提交
  28. 21 9月, 2012 2 次提交
  29. 20 9月, 2012 2 次提交
    • M
      Add support for limiting guest coredump · 78f3666f
      Martin Kletzander 提交于
      Sometimes when guest machine crashes, coredump can get huge due to the
      guest memory. This can be limited using madvise(2) system call and is
      being used in QEMU hypervisor. This patch adds an option for configuring
      that in the domain XML and related documentation.
      78f3666f
    • M
      Add support for reboot-timeout · c33a922f
      Martin Kletzander 提交于
      Whenever the guest machine fails to boot, new parameter (reboot-timeout)
      controls whether it should reboot and after how many ms it should do so.
      
      Docs included.
      c33a922f
  30. 18 9月, 2012 1 次提交