fact_gathering improve linux thread counts (#82261)

don't use `//` aka `floor()` as some architectures show counts of 1.9 threads per CPU and market as 2 per CPU, `round()` will be closer to that.
pull/82316/head
Brian Coca 6 months ago committed by GitHub
parent fd2d0ecfb7
commit e80507af32
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,2 @@
bugfixes:
- fact gathering on linux now handles thread count by using rounding vs dropping decimals, it should give slightly more accurate numbers.

@ -257,7 +257,7 @@ class LinuxHardware(Hardware):
if collected_facts.get('ansible_architecture') == 's390x':
# getting sockets would require 5.7+ with CONFIG_SCHED_TOPOLOGY
cpu_facts['processor_count'] = 1
cpu_facts['processor_cores'] = zp // zmt
cpu_facts['processor_cores'] = round(zp / zmt)
cpu_facts['processor_threads_per_core'] = zmt
cpu_facts['processor_vcpus'] = zp
cpu_facts['processor_nproc'] = zp
@ -282,9 +282,9 @@ class LinuxHardware(Hardware):
core_values = list(cores.values())
if core_values:
cpu_facts['processor_threads_per_core'] = core_values[0] // cpu_facts['processor_cores']
cpu_facts['processor_threads_per_core'] = round(core_values[0] / cpu_facts['processor_cores'])
else:
cpu_facts['processor_threads_per_core'] = 1 // cpu_facts['processor_cores']
cpu_facts['processor_threads_per_core'] = round(1 / cpu_facts['processor_cores'])
cpu_facts['processor_vcpus'] = (cpu_facts['processor_threads_per_core'] *
cpu_facts['processor_count'] * cpu_facts['processor_cores'])

Loading…
Cancel
Save