1. 27 4月, 2017 1 次提交
  2. 07 4月, 2017 1 次提交
  3. 27 3月, 2017 2 次提交
  4. 14 12月, 2016 1 次提交
    • V
      util: Allow to query the presence of host CPU bitmaps · 1be35910
      Viktor Mihajlovski 提交于
      The functions to retrieve online and present host CPU information
      are only supported on Linux for the time being.
      
      This leads to runtime errors if these function are used on other
      platforms. To avoid that, code in higher levels using the functions
      must replicate the conditional compilation in higher level which
      is error prone (and is plainly spoken ugly).
      
      Adding a function virHostCPUHasBitmap that can be used to check
      for host CPU bitmap support.
      
      NB: There are other functions including the host CPU count that
      are lacking support on all platforms, but they are too essential
      in order to be bypassed.
      Signed-off-by: NViktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
      1be35910
  5. 24 11月, 2016 1 次提交
  6. 16 9月, 2016 1 次提交
  7. 15 9月, 2016 1 次提交
  8. 06 9月, 2016 1 次提交
  9. 11 7月, 2016 2 次提交
  10. 01 7月, 2016 1 次提交
  11. 25 6月, 2016 1 次提交
  12. 24 6月, 2016 4 次提交
  13. 20 6月, 2016 1 次提交
  14. 15 6月, 2016 1 次提交
    • M
      virHostCPUGetInfo: Fix build on non-Unix like systems · 8ce58b00
      Michal Privoznik 提交于
      This function is plenty of ifdefs providing implementations for
      Linux, *BSD and OS-X. However, if we are being build for any
      other architecture, all that's left behind by preprocessor is
      just a error reporting call and return of -1. In that case,
      passed arguments are unused:
      
      ../../src/util/virhostcpu.c: In function 'virHostCPUGetInfo':
      ../../src/util/virhostcpu.c:966:33: error: unused parameter 'cpus' [-Werror=unused-parameter]
                         unsigned int *cpus,
                                       ^~~~
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      8ce58b00
  15. 12 6月, 2016 1 次提交
    • R
      hostcpu: fix build on FreeBSD · 2af05415
      Roman Bogorodskiy 提交于
       * Fix misspelt function name:
          s/virHostCPUGetStatsFreebsd/virHostCPUGetStatsFreeBSD/
       * Mark the first argument to virHostCPUGetInfo with ATTRIBUTE_UNUSED
         as it's not actually used on non-Linux
      2af05415
  16. 10 6月, 2016 7 次提交
  17. 25 12月, 2015 1 次提交
  18. 03 8月, 2015 2 次提交
    • A
      nodeinfo: Fix build failure when KVM headers are not available · 88c4c32a
      Andrea Bolognani 提交于
      Compiler error:
      
        ../../src/nodeinfo.c: In function 'nodeGetThreadsPerSubcore':
        ../../src/nodeinfo.c:2393: error: label 'out' defined but not used [-Wunused-label]
        ../../src/nodeinfo.c:2352: error: unused parameter 'arch' [-Wunused-parameter]
      88c4c32a
    • S
      nodeinfo: Fix output on PPC64 KVM hosts · 014208c4
      Shivaprasad G Bhat 提交于
      The nodeinfo is reporting incorrect number of cpus and incorrect host
      topology on PPC64 KVM hosts. The KVM hypervisor on PPC64 needs only
      the primary thread in a core to be online, and the secondaries offlined.
      While scheduling a guest in, the kvm scheduler wakes up the secondaries to
      run in guest context.
      
      The host scheduling of the guests happen at the core level(as only primary
      thread is online). The kvm scheduler exploits as many threads of the core
      as needed by guest. Further, starting POWER8, the processor allows splitting
      a physical core into multiple subcores with 2 or 4 threads each. Again, only
      the primary thread in a subcore is online in the host. The KVM-PPC
      scheduler allows guests to exploit all the offline threads in the subcore,
      by bringing them online when needed.
      (Kernel patches on split-core http://www.spinics.net/lists/kvm-ppc/msg09121.html)
      
      Recently with dynamic micro-threading changes in ppc-kvm, makes sure
      to utilize all the offline cpus across guests, and across guests with
      different cpu topologies.
      (https://www.mail-archive.com/kvm@vger.kernel.org/msg115978.html)
      
      Since the offline cpus are brought online in the guest context, it is safe
      to count them as online. Nodeinfo today discounts these offline cpus from
      cpu count/topology calclulation, and the nodeinfo output is not of any help
      and the host appears overcommited when it is actually not.
      
      The patch carefully counts those offline threads whose primary threads are
      online. The host topology displayed by the nodeinfo is also fixed when the
      host is in valid kvm state.
      Signed-off-by: NShivaprasad G Bhat <sbhat@linux.vnet.ibm.com>
      Signed-off-by: NAndrea Bolognani <abologna@redhat.com>
      014208c4
  19. 23 7月, 2015 1 次提交
  20. 22 7月, 2015 9 次提交
    • A
      nodeinfo: Calculate present and online CPUs only once · 6395ec1c
      Andrea Bolognani 提交于
      Move the calls to the respective functions from virNodeParseNode(),
      which is executed once for every NUMA node, to
      linuxNodeInfoCPUPopulate(), which is executed just once per host.
      6395ec1c
    • A
      nodeinfo: Use a bitmap to keep track of node CPUs · 05be6062
      Andrea Bolognani 提交于
      Keep track of what CPUs belong to the current node while walking
      through the sysfs node entry, so we don't need to do it a second
      time immediately afterwards.
      
      This also allows us to loop through all CPUs that are part of a
      node in guaranteed ascending order, which is something that is
      required for some upcoming changes.
      05be6062
    • A
      nodeinfo: Use nodeGetOnlineCPUBitmap() when parsing node · b909e9fb
      Andrea Bolognani 提交于
      No need to look up the online status of each CPU separately when we
      can get all the information in one go.
      b909e9fb
    • A
      nodeinfo: Phase out cpu_set_t usage · b7b50647
      Andrea Bolognani 提交于
      Swap out all instances of cpu_set_t and replace them with virBitmap,
      which some of the code was already using anyway.
      
      The changes are pretty mechanical, with one notable exception: an
      assumption has been added on the max value we can run into while
      reading either socket_it or core_id.
      
      While this specific assumption was not in place before, we were
      using cpu_set_t improperly by not making sure not to set any bit
      past CPU_SETSIZE or explicitly allocating bigger bitmaps; in fact
      the default size of a cpu_set_t, 1024, is way too low to run our
      testsuite, which includes core_id values in the 2000s.
      b7b50647
    • A
      nodeinfo: Rename nodeGetCPUBitmap() to nodeGetOnlineCPUBitmap() · c1df42d7
      Andrea Bolognani 提交于
      The new name makes it clear that the returned bitmap contains the
      information about which CPUs are online, not eg. which CPUs are
      present.
      
      No behavioral change.
      c1df42d7
    • A
      nodeinfo: Remove out parameter from nodeGetCPUBitmap() · ccd0ea7e
      Andrea Bolognani 提交于
      Not all users of this API will need the size of the returned
      bitmap; those who do can simply call virBitmapSize() themselves.
      ccd0ea7e
    • A
      nodeinfo: Add old kernel compatibility to nodeGetPresentCPUBitmap() · 37f73e4a
      Andrea Bolognani 提交于
      If the cpu/present file is not available, we assume that the kernel
      is too old to support non-consecutive CPU ids and return a bitmap
      with all the bits set to represent this fact. This assumption is
      already exploited in nodeGetCPUCount().
      
      This means users of this API can expect the information to always
      be available unless an error has occurred, and no longer need to
      treat the NULL return value as a special case.
      
      The error message has been updated as well.
      37f73e4a
    • A
      nodeinfo: Rename linuxParseCPUmax() to linuxParseCPUCount() · a2e2add1
      Andrea Bolognani 提交于
      The original name was confusing because the function returns the number
      of CPUs, not the maximum CPU id. The comment above the function has
      been updated to reflect this.
      
      No behavioral changes.
      a2e2add1
    • A
      nodeinfo: Introduce linuxGetCPUOnlinePath() · 6fecc401
      Andrea Bolognani 提交于
      6fecc401