1. 17 2月, 2016 11 次提交
  2. 16 2月, 2016 8 次提交
    • A
      tests: Add more GIC test cases · 998a936c
      Andrea Bolognani 提交于
      Test all kinds of scenarios, including guests asking for GIC but
      failing to specify a version, guests specifying an invalid version
      and guests trying to use GIC with non-virt or even non-ARM machines.
      998a936c
    • A
      tests: Reorganize and simplify GIC test cases · 161a3418
      Andrea Bolognani 提交于
      Unify the naming to prepare for new test cases that will be added
      later on.
      
      Convert a couple of output XML files for the qemuxml2xml test to
      symlinks while at it, since they were identical to the corresponding
      input XML files anyways.
      
      Moreover, since we're only interested in testing GIC support here,
      simplify XML files by getting rid of the unrelevant bits.
      161a3418
    • A
      qemu: Always enable GIC on ARM virt machines · bd236950
      Andrea Bolognani 提交于
      GIC is always available to ARM virt machines, and the domain XML should
      reflect this fact.
      bd236950
    • A
      qemu: Default to GIC v2 · 5b2c2a10
      Andrea Bolognani 提交于
      When a domain is configured to use GIC but no version has been
      specified by the user, default to GIC v2.
      5b2c2a10
    • A
      conf: Use virGICVersion enumeration in virDomainDef · 768b7ed2
      Andrea Bolognani 提交于
      Instead of allowing any random positive number, restrict the possible
      values to the ones that are part of the virGICVersion enumeration.
      768b7ed2
    • A
      schema: List allowed GIC versions · 2a7b11ea
      Andrea Bolognani 提交于
      This change allows to use "host" as a GIC version in the domain XML.
      
      Since we'll need to update the virGICVersion enumeration to support
      new GIC versions anyway, it makes sense to be a bit more strict in
      the schema as well and reject values that are not in the enumeration.
      2a7b11ea
    • A
      gic: Introduce virGICVersion enumeration · e76bef7f
      Andrea Bolognani 提交于
      We currently blindly accept any numeric value as a GIC version, even
      though only GIC v2 and GIC v3 actually exist; on the other hand, we
      reject "host", which is a perfectly legitimate value for QEMU guests.
      
      This new enumeration contains all GIC versions libvirt is aware of.
      e76bef7f
    • L
      qemu: fix hot unplug of PCI devices with VFIO · 8fbdff16
      Ludovic Beliveau 提交于
      Currently, on hot unplug of PCI devices with VFIO driver for QEMU, libvirt is
      trying to restore the host devices to it's previous value (basically a chown
      on the previous user/group).
      
      However for devices with VFIO driver, when the device is unbinded it is
      removed from the /dev/vfio file system causing the restore label to fail.
      
      The fix is to not restore the label for those PCI devices since they are going
      to be teared down anyway.
      Signed-off-by: NLudovic Beliveau <ludovic.beliveau@windriver.com>
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      8fbdff16
  3. 15 2月, 2016 6 次提交
    • J
      Spell VMware with a lowercase w · d6165440
      Ján Tomko 提交于
      Replace all occurrences of VMWare outside the news.
      d6165440
    • P
      vsh: Replace vshPrint macro with function · 27fa42b2
      Peter Krempa 提交于
      The macro would eat the first parameter. In some cases the format string
      for vshPrint was eaten. In other cases the calls referenced variables
      which did not exist in the given context. Avoid errors by doing compile
      time checking.
      27fa42b2
    • P
      vsh: Simplify bailing out on OOM conditions · 018010f0
      Peter Krempa 提交于
      When we hit OOM it doesn't really make sense to format the error message
      by attempting to allocate it. Introduce a simple helper that prints a
      static message and terminates the execution.
      018010f0
    • L
      util: clean up and expand 802.1QbX negotiation logging · 9cb8b0e5
      Laine Stump 提交于
      The existing log messages for this have several problems; there are
      two lines of log when one will suffice, they duplicate the function
      name in log message (when it's already included by VIR_DEBUG), they're
      missing some useful bits, they get logged even when the call is a NOP.
      
      This patch cleans up the problems with those existing logs, and also
      adds a new VIR_INFO-level log down at the function that is actually
      creating and sending the netlink message that logs *everything* going
      into the netlink message (which turns out to be much more useful in
      practice for me; I didn't want to eliminate the logs at the existing
      location though, in case they are useful in some scenario I'm
      unfamiliar with; anyway those logs are remaining at debug level, so it
      shouldn't be a bother to anyone).
      9cb8b0e5
    • L
      network: consolidated info log for all network allocate/free operations · eb72bd63
      Laine Stump 提交于
      There are three functions that deal with allocating and freeing
      devices from a networks netdev/pci device pool:
      network(Allocate|Notify|Release)ActualDevice(). These functions also
      maintain a counter of the number of domains currently using a network
      (regardless of whether or not that network uses a device pool). Each
      of these functions had multiple log messages (output using VIR_DEBUG)
      that were in slightly different formats and gave varying amounts of
      information.
      
      This patch creates a single function to log the pertinent information
      in a consistent manner for all three of these functions. Along with
      assuring that all the functions produce a consistent form of output
      (and making it simpler to change), it adds the MAC address of the
      domain interface involved in the operation, making it possible to
      verify which interface of which domain the operation is being done for
      (assuming that all MAC addresses are unique, of course).
      
      All of these messages are raised from DEBUG to INFO, since they don't
      happen that often (once per interface per domain/libvirtd start or
      domain stop), and can be very informative and helpful - eliminating
      the need to log debug level messages makes it much easier to sort
      these out.
      eb72bd63
    • L
      network: consolidate connection count updates for device pool · 3ea8b8b8
      Laine Stump 提交于
      networkReleaseActualDevice() and networkNotifyActualDevice() both were
      updating the individual devices' connections count in two separate
      places (unlike networkAllocateActualDevice() which does it in a single
      unified place after success:). The code is correct, but prone to
      confusion / later breakage. All of these updates are anyway located at
      the end of if/else clauses that are (with the exception of a single
      VIR_DEBUG() in each case) immediately followed by the success: label
      anyway, so this patch replaces the duplicated ++/-- instructions with
      a single ++/-- inside a qualifying "if (dev)" down below success:.
      (NB: if dev != NULL, by definition we are using a device (either pci
      or netdev, doesn't matter for these purposes) from the network's pool)
      
      The VIR_DEBUG args (which will be replaced in a followup patch anyway)
      were all adjusted to account for the connection count being out of
      date at the time.
      3ea8b8b8
  4. 13 2月, 2016 3 次提交
  5. 12 2月, 2016 12 次提交
    • A
      domsuspend: Fix warning on mingw build · 9a457be1
      Andrea Bolognani 提交于
      Commit d82170d7 introduced a workaround for domtop: in that example
      program, we define a symbol called ERROR for our own use, but since
      a symbol with the same name is already defined in one of mingw's
      header files, we get a warning when using that compiler.
      
      domsuspend defines the same problematic symbol, so the workaround
      has been copied over.
      9a457be1
    • M
      storageVolCreateXMLFrom: Check if backend knows how to createVol · 611a278f
      Michal Privoznik 提交于
      It is highly unlikely that a backend will know how to create a
      volume from a different volume (buildVolFrom) and not know how to
      create an empty volume (createVol). But:
      1) we call the function without any prior check so if that's the
      case we would SIGSEGV immediatelly
      2) it's better to be safe than sorry.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      611a278f
    • M
      storageVolCreateXML: Swap order of two operations · 78490acc
      Michal Privoznik 提交于
      Firstly, we realloc internal list to hold new item (=volume that
      will be potentially created) and then we check whether we
      actually know how to create it. If we don't we consume more
      memory than we really need for no good reason.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      78490acc
    • M
      virsh: Teach vol-create-as to --print-xml · 64e66d8e
      Michal Privoznik 提交于
      We have the same argument to many other commands that produce an
      XML based on what user typed. But unfortunately vol-create-as
      was missing it. Maybe nobody had needed it yet. Well, I did
      just now.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      64e66d8e
    • M
      cmdVolCreateAs: Rework to follow usual func pattern · bb0b8e5d
      Michal Privoznik 提交于
      The way we usually write functions is that we start the work and
      if something goes bad we goto cleanup and roll back there. Or
      just free resources that are no longer needed. Do the same here.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      bb0b8e5d
    • M
      virportallocatortest: Run on linux only · 26946f67
      Michal Privoznik 提交于
      After the rework of mocking of our tests there's the
      virportallocator test failing to link on mingw. Well, it's the
      mocking library actually:
      
      ../gnulib/lib/.libs/libgnu.a(bind.o): In function `rpl_bind':
      /home/jenkins/libvirt-mingw/build32/gnulib/lib/../../../gnulib/lib/bind.c:33: multiple definition of `rpl_bind'
      .libs/virportallocatormock_la-virportallocatormock.o:/home/jenkins/libvirt-mingw/build32/tests/../../tests/virportallocatormock.c:79: first defined here
      
      I've no idea why this matters to mingw and does not to others.
      Nevertheless, if we make the test linux only the problem goes
      away.
      
      Apparently, our test for RTLD_NEXT is not sufficient because
      mingw32 defines it. Lets put aside for a while fact that it has
      the same value as RTLD_DEFAULT which by description has different
      meaning, shall we?
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      26946f67
    • M
      vz: fix race condition when adding domain to domains list · 9c14a9ab
      Mikhail Feoktistov 提交于
      Race condition:
      User calls defineXML to create new instance.
      The main thread from vzDomainDefineXMLFlags() creates new instance by prlsdkCreateVm.
      Then this thread calls prlsdkAddDomain to add new domain to domains list.
      The second thread receives notification from hypervisor that new VM was created.
      It calls prlsdkHandleVmAddedEvent() and also tries to add new domain to domains list.
      These two threads call virDomainObjListFindByUUID() from prlsdkAddDomain() and don't find new domain.
      So they add two domains with the same uuid to domains list.
      
      This fix splits logic of prlsdkAddDomain() into two functions.
      1. vzNewDomain() creates new empty domain in domains list with the specific uuid.
      2. prlsdkLoadDomain() add data from VM to domain object.
      
      New algorithm for creating an instance:
      In vzDomainDefineXMLFlags() we add new domain to domain list by calling vzNewDomain()
      and only after that we call CreateVm() to create VM.
      It means that we "reserve" domain object with the specific uuid.
      After creation of new VM we add info from this VM
      to reserved domain object by calling prlsdkLoadDomain().
      
      Before this patch prlsdkLoadDomain() worked in 2 different cases:
      1. It creates and initializes new domain. Then updates it from sdk handle.
      2. It updates existed domain from sdk handle.
      In this patch we remove code which creates new domain from LoadDomain()
      and move it to vzNewDomain().
      Now prlsdkLoadDomain() only updates domain from skd handle.
      
      In notification handler prlsdkHandleVmAddedEvent() we check
      the existence of a domain and if it doesn't exist we add new domain by calling
      vzNewDomain() and load info from sdk handle via prlsdkLoadDomain().
      9c14a9ab
    • M
      vz: fix notification subscription · d5f0cf99
      Mikhail Feoktistov 提交于
      Bug cause:
      Update the domain that is subscribed to hypervisor notification.
      LoadDomain() rewrites notifications fields in vzDomObj structure and makes domain as "unsubscribed".
      Fix:
      Initialize notification fields in vzDomObj only if we create a new domain.
      And do not reinitialize these fields if we update domain (by calling LoadDomain with olddom argument)
      d5f0cf99
    • M
      vz: remove unused struct field · a7b2257e
      Mikhail Feoktistov 提交于
      In commit 7039bb3c we have removed code that saves uuid to vzDomObj.uuid
      So this field is no longer needed.
      a7b2257e
    • M
      vz: make output arguments in prlsdkGetDomainIds as optional · 2286986a
      Mikhail Feoktistov 提交于
      prlsdkGetDomainIds() returns name and uuid for specified instance.
      Now output arguments can be NULL.
      It allows to get only necessary info(name or uuid).
      2286986a
    • M
      Change maintainers list · 39e22674
      Maxim Nestratov 提交于
      Add Maxim Nestratov to the commiters list.
      Move Dmitry Guryanov to the previous maintainers list.
      39e22674
    • A
      tests: Rename virmockdbus -> virdbusmock for consistency · 92ec2e5e
      Andrea Bolognani 提交于
      All mock libraries were called vir*mock except for this one; now
      the naming is consistent across the board.
      92ec2e5e