1. 25 1月, 2013 7 次提交
  2. 24 1月, 2013 22 次提交
    • D
      Make python objects inherit from 'object' base class · 2349d51f
      Daniel P. Berrange 提交于
      As of python >= 2.2, it is recommended that all objects inherit
      from the 'object' base class. We already require python >= 2.3
      for libvirt for thread macro support, so we should follow this
      best practice.
      
      See also
      
        http://stackoverflow.com/questions/4015417/python-class-inherits-objectSigned-off-by: NDaniel P. Berrange <berrange@redhat.com>
      2349d51f
    • D
      Fix leak of securityDriverNames · d200363e
      Daniel P. Berrange 提交于
      When shutting down, the QEMU driver forgot to free the
      securityDriverNames string list
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      d200363e
    • D
      Avoid use of free'd memory in auto destroy callback · 4e4c6620
      Daniel P. Berrange 提交于
      The autodestroy callback code has the following function
      called from a hash iterator
      
        qemuDriverCloseCallbackRun(void *payload,
                                   const void *name,
                                   void *opaque)
        {
          ...
          char *uuidstr = name
          ...
      
          dom = closeDef->cb(data->driver, dom, data->conn);
          if (dom)
              virObjectUnlock(dom);
      
          virHashRemoveEntry(data->driver->closeCallbacks, uuidstr);
        }
      
      The closeDef->cb function may well cause the current callback
      to be removed, if it shuts down 'dom'. As such the use of
      'uuidstr' in virHashRemoveEntry is accessing free'd memory.
      We must make a copy of the uuid str before invoking the
      callback to be safe.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      4e4c6620
    • D
      Ensure nodeinfo struct is initialized to zero · 83b4137d
      Daniel P. Berrange 提交于
      When linuxNodeInfoCPUPopulate() method triggered use of an
      uninitialize value, since it did not initialize the 'sockets'
      field in the virNodeInfoPtr struct:
      
      ==30020== Conditional jump or move depends on uninitialised value(s)
      ==30020==    at 0x5125DBD: linuxNodeInfoCPUPopulate (nodeinfo.c:513)
      ==30020==    by 0x51261A0: nodeGetInfo (nodeinfo.c:884)
      ==30020==    by 0x149B9B10: qemuCapsInit (qemu_capabilities.c:846)
      ==30020==    by 0x14A11B25: qemuCreateCapabilities (qemu_driver.c:424)
      ==30020==    by 0x14A12426: qemuStartup (qemu_driver.c:874)
      ==30020==    by 0x512A7AF: virStateInitialize (libvirt.c:822)
      ==30020==    by 0x40DE04: daemonRunStateInit (libvirtd.c:877)
      ==30020==    by 0x50ADCE5: virThreadHelper (virthreadpthread.c:161)
      ==30020==    by 0x328CA07D14: start_thread (pthread_create.c:308)
      ==30020==    by 0x328C6F246C: clone (clone.S:114)
      (happened twice)
      
              if (socks > nodeinfo->sockets)    <--- here
                  nodeinfo->sockets = socks;
      
      Rather than doing this for each field, just make the caller memset
      the entire struct to zero.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      83b4137d
    • J
      selinux: Properly indent preprocessor directives · 3b35369c
      Jiri Denemark 提交于
      3b35369c
    • J
      apparmor: Avoid freeing uninitialized pointer · d4b7309a
      Jiri Denemark 提交于
      d4b7309a
    • P
      xen: Actually fix the uninitialized variable · 4db3fd74
      Peter Krempa 提交于
      0eedb1d9 fixed the wrong variable
      4db3fd74
    • P
      xen: Initialize variable before using · 0eedb1d9
      Peter Krempa 提交于
      Commit 87b4c10c added code that may call
      the virCapabilitiesClearHostNUMACellCPUTopology function with
      uninitialized second argument. Although the value wouldn't be used some
      compilers whine about that.
      0eedb1d9
    • R
      selinux: Only create the selabel_handle once. · 6159710c
      Richard W.M. Jones 提交于
      According to Eric Paris this is slightly more efficient because it
      only loads the regular expressions in libselinux once.
      6159710c
    • J
      08cb0433
    • J
      util: Need to add virCommandFree() · 96e8565d
      John Ferlan 提交于
      96e8565d
    • J
      storage: Need to add virCommandFree() · 5e556b60
      John Ferlan 提交于
      5e556b60
    • J
      security: Need to add virCommandFree() · a2b36ec5
      John Ferlan 提交于
      a2b36ec5
    • J
      parallels: Resolve some resource leaks · 50dc7015
      John Ferlan 提交于
      Be sure to VIR_FREE(accel) and moved virDomainVideoDefFree() within no_memory
      label to be consistent
      
      Resolve resource leak in parallelsApplyIfaceParams() when the 'oldnet' is
      allocated locally. Also virCommandFree(cmd) as necessary.
      50dc7015
    • P
      test: Add support for thread and core information for the test driver · e3818b2a
      Peter Krempa 提交于
      This patch adds demo processor topology information for the test driver.
      e3818b2a
    • P
      capabilities: Add additional data to the NUMA topology info · 79a003f9
      Peter Krempa 提交于
      This patch adds data gathering to the NUMA gathering files and adds
      support for outputting the data. The test driver and xend driver need to
      be adapted to fill sensible data to the structure in a future patch.
      79a003f9
    • P
      capabilities: Switch CPU data in NUMA topology to a struct · 87b4c10c
      Peter Krempa 提交于
      This will allow storing additional topology data in the NUMA topology
      definition.
      
      This patch changes the storage type and fixes fallout of the change
      across the drivers using it.
      
      This patch also changes semantics of adding new NUMA cell information.
      Until now the data were re-allocated and copied to the topology
      definition. This patch changes the addition function to steal the
      pointer to a pre-allocated structure to simplify the code.
      87b4c10c
    • P
    • P
      schemas: Add schemas for more CPU topology information in the caps XML · 828820e2
      Peter Krempa 提交于
      This patch adds RNG schemas for adding more information in the topology
      output of the NUMA section in the capabilities XML.
      
      The added elements are designed to provide more information about the
      placement and topology of the processors in the system to management
      applications.
      
      A demonstration of supported XML added by this patch:
      <capabilities>
        <host>
          <topology>
            <cells num='3'>
              <cell id='0'>
                <cpus num='4'> <!-- this is node with Hyperthreading -->
                  <cpu id='0' socket_id='0' core_id='0' siblings='0-1'/>
                  <cpu id='1' socket_id='0' core_id='0' siblings='0-1'/>
                  <cpu id='2' socket_id='0' core_id='1' siblings='2-3'/>
                  <cpu id='3' socket_id='0' core_id='1' siblings='2-3'/>
                </cpus>
              </cell>
              <cell id='1'>
                <cpus num='4'> <!-- this is node with modules (Bulldozer) -->
                  <cpu id='4' socket_id='0' core_id='2' siblings='4-5'/>
                  <cpu id='5' socket_id='0' core_id='3' siblings='4-5'/>
                  <cpu id='6' socket_id='0' core_id='4' siblings='6-7'/>
                  <cpu id='7' socket_id='0' core_id='5' siblings='6-7'/>
                </cpus>
               </cell>
              <cell id='2'>
                <cpus num='4'> <!-- this is a normal multi-core node -->
                  <cpu id='8' socket_id='1' core_id='0' siblings='8'/>
                  <cpu id='9' socket_id='1' core_id='1' siblings='9'/>
                  <cpu id='10' socket_id='1' core_id='2' siblings='10'/>
                  <cpu id='11' socket_id='1' core_id='3' siblings='11'/>
                </cpus>
               </cell>
            </cells>
          </topology>
        </host>
      </capabilities>
      
      The socket_id field represents identification of the physical socket the
      CPU is plugged in. This ID may not be identical to the physical socket
      ID reported by the kernel.
      
      The core_id identifies a core within a socket. Also this field may not
      accurately represent physical ID's.
      
      The core_id is guaranteed to be unique within a cell and a socket. There
      may be duplicates between sockets. Only cores sharing core_id within one
      cell and one socket can be considered as threads. Cores sharing core_id
      within sparate cells are distinct cores.
      
      The siblings field is a list of CPU id's the cpu id's the CPU is sibling
      with - thus a thread. The list is in the cpuset format.
      828820e2
    • P
      14940b5e
    • V
      S390: Enhance memballoon handling for virtio-s390 · 053e813a
      Viktor Mihajlovski 提交于
      The way in that memory balloon suppression was handled for S390
      is flawed for a number or reasons.
      1. Just preventing the default balloon to be created in the case
         of VIR_ARCH_S390[X] is not sufficient. An explicit memballoon
         element in the guest definition will still be honored, resulting
         both in a -balloon option and the allocation of a PCI bus address,
         neither being supported.
      2. Prohibiting balloon for S390 altogether at a domain_conf level
         is no good solution either as there's work in progress on the QEMU
         side to implement a virtio-balloon device, although in
         conjunction with a new machine type. Suppressing the balloon
         should therefore be done at the QEMU driver level depending
         on the present capabilities.
      
      Therefore we remove the conditional suppression of the default
      balloon in domain_conf.c.
      Further, we are claiming the memballoon device for virtio-s390
      during device address assignment to prevent it from being considered
      as a PCI device.
      Finally, we suppress the generation of the balloon command line option
      if this is a virtio-s390 machine.
      Signed-off-by: NViktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
      Signed-off-by: NEric Blake <eblake@redhat.com>
      053e813a
    • V
      qemu: Re-add driver unlock to qemuDomainSendKey · 7b3a9f75
      Viktor Mihajlovski 提交于
      Should have been done in commit 56fd5134 already, but was missed
      due to oversight: qemuDomainSendKey didn't release the driver lock
      in its cleanup section. This fixes an issue introduced by commit
      8c5d2bad.
      Signed-off-by: NViktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
      7b3a9f75
  3. 23 1月, 2013 11 次提交