Jim Gauld 995e7e530d kubelet: sort isolcpus allocation when SMT enabled
The existing device manager code returns CPUs as devices in unsorted
order. This numerically sorts isolcpus allocations when SMT/HT is
enabled on the host. This logs SMT pairs, singletons, and algorithm
order details to make the algorithm understandable.

Example log for a 3 cpu isolcpus request:

2022-02-11T16:27:50.345 controller-0 kubelet[1531574]: info I0211
16:27:50.345529 1531574 manager.go:741] order_devices_by_sibling:
needed=3, smtpairs=[4 5 6 7 10 11], singletons=[8 12],
order=[8 4 5 6 7 10 11 12]

The specific host with SMT enabled has this topology:
LOGICAL CPU TOPOLOGY:
   cpu_id : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
socket_id : 0 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0
  core_id : 0 0 1 1 2 2 3 3 4 4  5  5  6  6  7  7
thread_id : 0 1 0 1 0 1 0 1 0 1  0  1  0  1  0  1

Before cpu allocation, host has Isolated_free: 4-8,10-12.
New pod gets the following isolcpus cpuset: 4-5,8.

Test Plan: (On AIO-SX, SMT enabled)

PASS: Verify cpu sort order for even needed and no singletons
PASS: Verify cpu sort order for odd  needed and no singletons
PASS: Verify cpu sort order for even needed and singletons
PASS: Verify cpu sort order for odd  needed and singletons

Story: 2008760
Task: 44190

Signed-off-by: Jim Gauld <james.gauld@windriver.com>
Change-Id: I1d743f80925b35ecee7936c12b0f4328f83b7eb2
2022-02-11 12:21:20 -05:00
2022-02-02 18:54:59 +00:00
2022-01-28 14:00:21 +02:00
2021-10-29 17:23:16 -04:00
2019-01-08 11:42:04 -05:00
2019-04-19 19:52:31 +00:00
2021-09-09 19:05:36 +03:00
2018-05-31 07:36:35 -07:00

integ

StarlingX Integration

Description
StarlingX Integration and packaging
Readme 52 MiB
Languages
Shell 33.1%
JavaScript 24.1%
Perl 14.3%
Python 10.3%
Makefile 6.6%
Other 11.5%