1. 15 12月, 2016 2 次提交
    • J
      libxl: reverse defaults on HVM net device attach · de8607d7
      Joao Martins 提交于
      libvirt libxl picks its own default with respect to the default NIC
      to use. libxlMakeNic is the one responsible for this and on boot it
      picks LIBXL_NIC_TYPE_VIF_IOEMU for HVM domains such that it accomodates
      both PV and emulated one. The good behaving guest at boot will then
      select the pv and unplug the emulated device.
      
      Now, on HVM when attaching an interface it will pick the same default
      that is LIBXL_NIC_TYPE_VIF_IOEMU which as a result will fail the attach
      (see xen commit 32e9d0f ("libxl: nic type defaults to vif in hotplug for
      hvm guest"). Xen doesn't yet support the hotplug of emulated devices,
      but we don't want to rule out that case either, which might get support
      in the future. Hence we simply reverse the defaults when we are
      attaching the interface which allows libvirt to prefer the PV nic first
      without adding "model='netfront'" following the same pattern as above
      commit. Also to avoid ruling out the emulated one we set to
      LIBXL_NIC_TYPE_IOEMU when setting a model type that is not 'netfront'.
      Signed-off-by: NJoao Martins <joao.m.martins@oracle.com>
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      de8607d7
    • C
      libxl: add QED disk format support · 340bb6b7
      Cédric Bosdonnat 提交于
      If libxl has QED disk format support, then pass the feature
      over to the user.
      340bb6b7
  2. 22 10月, 2016 1 次提交
  3. 28 9月, 2016 1 次提交
    • J
      libxl: channels support · 719b663f
      Joao Martins 提交于
      And allow libxl to handle channel element which creates a Xen
      console visible to the guest as a low-bandwitdh communication
      channel. If type is PTY we also fetch the tty after boot using
      libxl_channel_getinfo to fetch the tty path. On socket case,
      we autogenerate a path if not specified in the XML. Path autogenerated
      is slightly different from qemu driver: qemu stores also on
      "channels/target" but it creates then a directory per domain with
      each channel target name. libxl doesn't appear to have a clear
      definition of private files associated with each domain, so for
      simplicity we do it slightly different. On qemu each autogenerated
      channel goes like:
      
      channels/target/<domain-name>/<target name>
      
      Whereas for libxl:
      
      channels/target/<domain-name>-<target name>
      
      Should note that if path is not specified it won't persist,
      existing only on live XML, unless user had initially specified it.
      Since support for libxl channels only came on Xen >= 4.5 we therefore
      need to conditionally compile it with LIBXL_HAVE_DEVICE_CHANNEL.
      
      After this patch and having a qemu guest agent:
       $ cat domain.xml | grep -a1 channel | head -n 5 | tail -n 4
       <channel type='unix'>
         <source mode='bind' path='/tmp/channel'/>
         <target type='xen' name='org.qemu.guest_agent.0'/>
       </channel>
      
       $ virsh create domain.xml
       $ echo '{"execute":"guest-network-get-interfaces"}' | socat
       stdio,ignoreeof  unix-connect:/tmp/channel
      
       {"execute":"guest-network-get-interfaces"}
       {"return": [{"name": "lo", "ip-addresses": [{"ip-address-type": "ipv4",
       "ip-address": "127.0.0.1", "prefix": 8}, {"ip-address-type": "ipv6",
       "ip-address": "::1", "prefix": 128}], "hardware-address":
       "00:00:00:00:00:00"}, {"name": "eth0", "ip-addresses":
       [{"ip-address-type": "ipv4", "ip-address": "10.100.0.6", "prefix": 24},
       {"ip-address-type": "ipv6", "ip-address": "fe80::216:3eff:fe40:88eb",
       "prefix": 64}], "hardware-address": "00:16:3e:40:88:eb"}, {"name":
       "sit0"}]}
      Signed-off-by: NJoao Martins <joao.m.martins@oracle.com>
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      719b663f
  4. 24 9月, 2016 1 次提交
  5. 03 9月, 2016 1 次提交
  6. 02 9月, 2016 1 次提交
  7. 04 8月, 2016 1 次提交
    • J
      libxl: allow libxl to calculate shadow mem requirements · c0960aab
      Jim Fehlig 提交于
      Long, long ago before libxl_get_required_shadow_memory() was
      made publicly available, its code was copied to the libxl driver
      for calculating shadow memory requirements of HVM domains.
      
      Long ago, libxl_get_required_shadow_memory() was exported in
      libxl_utils.h and included in xen-devel packages everywhere.
      
      Remove the copied code, which has become stale, and let libxl
      provode a proper shadow memory value.
      c0960aab
  8. 02 8月, 2016 1 次提交
  9. 27 7月, 2016 1 次提交
  10. 12 7月, 2016 1 次提交
  11. 27 6月, 2016 1 次提交
  12. 24 6月, 2016 1 次提交
    • J
      secret: Move virStorageSecretType and rename · 1eca5f65
      John Ferlan 提交于
      Move the enum into a new src/util/virsecret.h, rename it to be
      virSecretLookupType. Add a src/util/virsecret.h in order to perform
      a couple of simple operations on the secret XML and virSecretLookupTypeDef
      for clearing and copying.
      
      This includes quite a bit of collateral damage, but the goal is to remove
      the "virStorage*" and replace with the virSecretLookupType so that it's
      easier to to add new lookups that aren't necessarily storage pool related.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      1eca5f65
  13. 15 6月, 2016 1 次提交
  14. 14 6月, 2016 3 次提交
  15. 25 5月, 2016 1 次提交
  16. 20 5月, 2016 1 次提交
  17. 16 5月, 2016 2 次提交
    • J
      secret: Alter virSecretGetSecretString · abd2272c
      John Ferlan 提交于
      Rather than returning a "char *" indicating perhaps some sized set of
      characters that is NUL terminated, alter the function to return 0 or -1
      for success/failure and add two parameters to handle returning the
      buffer and it's size.
      
      The function no longer encodes the returned secret, rather it returns
      the unencoded secret forcing callers to make the necessary adjustments.
      
      Alter the callers to handle the adjusted model.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      abd2272c
    • P
      secret: util: Refactor virSecretGetSecretString · 1d632c39
      Peter Krempa 提交于
      Call the internal driver callbacks rather than the public APIs to avoid
      calling unnecessarily the error dispatching code and don't overwrite
      the error messages provided by the APIs. They are good enough to
      describe which secret is missing either by UUID or the usage (basically
      name).
      1d632c39
  18. 14 5月, 2016 1 次提交
    • J
      libxl: don't attempt to probe a non-existent emulator · 400e716d
      Jim Fehlig 提交于
      When probing the <emulator> with '-help' to determine if
      it is the old qemu, errors are reported if the emulator
      doesn't exist
      
      libvirt:  error : internal error: Child process
      (/usr/lib/xen/bin/qemu-dm -help) unexpected exit status 127:
      libvirt:  error : cannot execute binary /usr/lib/xen/bin/qemu-dm:
      No such file or directory
      
      Avoid the probe if the specified emulator doesn't exist,
      squelching the error. There is no behavior change since
      libxlDomainGetEmulatorType() would return
      LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN if the probe failed
      via virCommandRun().
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      400e716d
  19. 06 5月, 2016 1 次提交
  20. 13 4月, 2016 2 次提交
  21. 07 4月, 2016 1 次提交
    • J
      secret: Introduce virSecretGetSecretString · 2844de6f
      John Ferlan 提交于
      Commit id 'fb2bd208' essentially copied the qemuGetSecretString
      creating an libxlGetSecretString.  Rather than have multiple copies
      of the same code, create src/secret/secret_util.{c,h} files and
      place the common function in there.
      
      Modify the the build in order to build the module as a library
      which is then pulled in by both the qemu and libxl drivers for
      usage from both qemu_command.c and libxl_conf.c
      2844de6f
  22. 21 3月, 2016 2 次提交
  23. 11 3月, 2016 1 次提交
  24. 26 2月, 2016 1 次提交
    • J
      libxl: unref objects in error paths · e4f1be7e
      Jim Fehlig 提交于
      libxlMakeNic opens a virConnect object and takes a reference on a
      virNetwork object, but doesn't drop the references on all error
      paths. Rework the function to follow the standard libvirt pattern
      of using a local 'ret' variable to hold the function return value,
      performing all cleanup and returning 'ret' at a 'cleanup' label.
      e4f1be7e
  25. 24 2月, 2016 2 次提交
  26. 23 2月, 2016 1 次提交
    • J
      libxl: add support for rbd qdisk · fb2bd208
      Jim Fehlig 提交于
      xl/libxl already supports qemu's network-based block backends
      such as nbd and rbd. libvirt has supported configuring such
      <disk>s for long time too. This patch adds support for rbd
      disks in the libxl driver by generating a rbd device URL from
      the virDomainDiskDef object. The URL is passed to libxl via the
      pdev_path field of libxl_device_disk struct. libxl then passes
      the URL to qemu for cosumption by the rbd backend.
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      fb2bd208
  27. 10 2月, 2016 1 次提交
    • J
      libxl: keepalive messages support · 5194eb95
      Joao Martins 提交于
      This patch introduces keep alive messages support for P2P migration
      and it adds two new configuration entries namely 'keepalive_interval'
      'keepalive_count' to control it. Behavior of these entries is the
      same as qemu driver thus the description is copied from there
      with just a few simplifications.
      Signed-off-by: NJoao Martins <joao.m.martins@oracle.com>
      5194eb95
  28. 04 2月, 2016 1 次提交
  29. 09 1月, 2016 1 次提交
    • J
      libxl: support vif outgoing bandwidth QoS · f988ecfb
      Jim Fehlig 提交于
      The libxl_device_nic structure supports specifying an outgoing rate
      limit based on a time interval and bytes allowed per interval. In xl
      config a rate limit is specified as "<RATE>/s@<INTERVAL>". INTERVAL
      is optional and defaults to 50ms.
      
      libvirt expresses outgoing limits by average (required), peak, burst,
      and floor attributes in units of KB/s. This patch supports the outgoing
      bandwidth limit by converting the average KB/s to bytes per interval
      based on the same default interval (50ms) used by xl.
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      f988ecfb
  30. 09 12月, 2015 2 次提交
  31. 08 10月, 2015 1 次提交
    • J
      libxl: Resolve Coverity FORWARD_NULL · f84c6dd2
      John Ferlan 提交于
      Since the strtok_r call in libxlCapsInitGuests expects a non NULL first
      parameter when the third parameter is NULL, we need to check that
      the returned 'capabilities' from a libxl_get_version_info call is
      not NULL and error out if so since the code expects it.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      f84c6dd2
  32. 16 9月, 2015 1 次提交