policy_test.go 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391
  1. /*
  2. Copyright 2017 The Kubernetes Authors.
  3. Licensed under the Apache License, Version 2.0 (the "License");
  4. you may not use this file except in compliance with the License.
  5. You may obtain a copy of the License at
  6. http://www.apache.org/licenses/LICENSE-2.0
  7. Unless required by applicable law or agreed to in writing, software
  8. distributed under the License is distributed on an "AS IS" BASIS,
  9. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. See the License for the specific language governing permissions and
  11. limitations under the License.
  12. */
  13. package cpumanager
  14. import (
  15. "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/topology"
  16. )
  17. var (
  18. topoSingleSocketHT = &topology.CPUTopology{
  19. NumCPUs: 8,
  20. NumSockets: 1,
  21. NumCores: 4,
  22. CPUDetails: map[int]topology.CPUInfo{
  23. 0: {CoreID: 0, SocketID: 0},
  24. 1: {CoreID: 1, SocketID: 0},
  25. 2: {CoreID: 2, SocketID: 0},
  26. 3: {CoreID: 3, SocketID: 0},
  27. 4: {CoreID: 0, SocketID: 0},
  28. 5: {CoreID: 1, SocketID: 0},
  29. 6: {CoreID: 2, SocketID: 0},
  30. 7: {CoreID: 3, SocketID: 0},
  31. },
  32. }
  33. topoDualSocketHT = &topology.CPUTopology{
  34. NumCPUs: 12,
  35. NumSockets: 2,
  36. NumCores: 6,
  37. CPUDetails: map[int]topology.CPUInfo{
  38. 0: {CoreID: 0, SocketID: 0},
  39. 1: {CoreID: 1, SocketID: 1},
  40. 2: {CoreID: 2, SocketID: 0},
  41. 3: {CoreID: 3, SocketID: 1},
  42. 4: {CoreID: 4, SocketID: 0},
  43. 5: {CoreID: 5, SocketID: 1},
  44. 6: {CoreID: 0, SocketID: 0},
  45. 7: {CoreID: 1, SocketID: 1},
  46. 8: {CoreID: 2, SocketID: 0},
  47. 9: {CoreID: 3, SocketID: 1},
  48. 10: {CoreID: 4, SocketID: 0},
  49. 11: {CoreID: 5, SocketID: 1},
  50. },
  51. }
  52. topoDualSocketNoHT = &topology.CPUTopology{
  53. NumCPUs: 8,
  54. NumSockets: 2,
  55. NumCores: 8,
  56. CPUDetails: map[int]topology.CPUInfo{
  57. 0: {CoreID: 0, SocketID: 0},
  58. 1: {CoreID: 1, SocketID: 0},
  59. 2: {CoreID: 2, SocketID: 0},
  60. 3: {CoreID: 3, SocketID: 0},
  61. 4: {CoreID: 4, SocketID: 1},
  62. 5: {CoreID: 5, SocketID: 1},
  63. 6: {CoreID: 6, SocketID: 1},
  64. 7: {CoreID: 7, SocketID: 1},
  65. },
  66. }
  67. /*
  68. Topology from https://www.open-mpi.org/projects/hwloc/lstopo/images/KNL.SNC4.H50.v1.11.png.
  69. Socket0:
  70. 0-2,9-10,13-14,21-22,25-26,33-34,38-39,46-47,50,57-58,71-72,79-80,87-88,95-96,103-104,109-110,117-118,
  71. 131-132,139-140,147-148,155-156,163-164,169-170,177-178,191-192,199-200,207-208,215-216,223-224,229-230,
  72. 237-238,251-252,259-260,267-268,275-276,283-284
  73. Socket1:
  74. 3-4,11-12,15-16,23-24,27-28,35-36,40-41,48-49,51-52,59-60,65-66,73-74,81-82,89-90,97-98,111-112,119-120,125-126,
  75. 133-134,141-142,149-150,157-158,171-172,179-180,185-186,193-194,201-202,209-210,217-218,231-232,239-240,245-246,
  76. 253-254,261-262,269-270,277-278
  77. Socket2:
  78. 5-6,17-18,29-30,42-43,53-54,61-62,67-68,75-76,83-84,91-92,99-100,105-106,113-114,121-122,127-128,135-136,
  79. 143-144,151-152,159-160,165-166,173-174,181-182,187-188,195-196,203-204,211-212,219-220,225-226,233-234,241-242,
  80. 247-248,255-256,263-264,271-272,279-280,285-286
  81. Socket3:
  82. 7-8,19-20,31-32,37,44-45,55-56,63-64,69-70,77-78,85-86,93-94,101-102,107-108,115-116,123-124,129-130,137-138,
  83. 145-146,153-154,161-162,167-168,175-176,183-184,189-190,197-198,205-206,213-214,221-222,227-228,235-236,243-244,
  84. 249-250,257-258,265-266,273-274,281-282,287
  85. */
  86. topoQuadSocketFourWayHT = &topology.CPUTopology{
  87. NumCPUs: 288,
  88. NumSockets: 4,
  89. NumCores: 72,
  90. CPUDetails: map[int]topology.CPUInfo{
  91. 0: {CoreID: 0, SocketID: 0},
  92. 169: {CoreID: 0, SocketID: 0},
  93. 109: {CoreID: 0, SocketID: 0},
  94. 229: {CoreID: 0, SocketID: 0},
  95. 50: {CoreID: 1, SocketID: 0},
  96. 170: {CoreID: 1, SocketID: 0},
  97. 110: {CoreID: 1, SocketID: 0},
  98. 230: {CoreID: 1, SocketID: 0},
  99. 1: {CoreID: 64, SocketID: 0},
  100. 25: {CoreID: 64, SocketID: 0},
  101. 13: {CoreID: 64, SocketID: 0},
  102. 38: {CoreID: 64, SocketID: 0},
  103. 2: {CoreID: 65, SocketID: 0},
  104. 26: {CoreID: 65, SocketID: 0},
  105. 14: {CoreID: 65, SocketID: 0},
  106. 39: {CoreID: 65, SocketID: 0},
  107. 9: {CoreID: 72, SocketID: 0},
  108. 33: {CoreID: 72, SocketID: 0},
  109. 21: {CoreID: 72, SocketID: 0},
  110. 46: {CoreID: 72, SocketID: 0},
  111. 10: {CoreID: 73, SocketID: 0},
  112. 34: {CoreID: 73, SocketID: 0},
  113. 22: {CoreID: 73, SocketID: 0},
  114. 47: {CoreID: 73, SocketID: 0},
  115. 57: {CoreID: 8, SocketID: 0},
  116. 177: {CoreID: 8, SocketID: 0},
  117. 117: {CoreID: 8, SocketID: 0},
  118. 237: {CoreID: 8, SocketID: 0},
  119. 58: {CoreID: 9, SocketID: 0},
  120. 178: {CoreID: 9, SocketID: 0},
  121. 118: {CoreID: 9, SocketID: 0},
  122. 238: {CoreID: 9, SocketID: 0},
  123. 71: {CoreID: 24, SocketID: 0},
  124. 191: {CoreID: 24, SocketID: 0},
  125. 131: {CoreID: 24, SocketID: 0},
  126. 251: {CoreID: 24, SocketID: 0},
  127. 72: {CoreID: 25, SocketID: 0},
  128. 192: {CoreID: 25, SocketID: 0},
  129. 132: {CoreID: 25, SocketID: 0},
  130. 252: {CoreID: 25, SocketID: 0},
  131. 79: {CoreID: 32, SocketID: 0},
  132. 199: {CoreID: 32, SocketID: 0},
  133. 139: {CoreID: 32, SocketID: 0},
  134. 259: {CoreID: 32, SocketID: 0},
  135. 80: {CoreID: 33, SocketID: 0},
  136. 200: {CoreID: 33, SocketID: 0},
  137. 140: {CoreID: 33, SocketID: 0},
  138. 260: {CoreID: 33, SocketID: 0},
  139. 87: {CoreID: 40, SocketID: 0},
  140. 207: {CoreID: 40, SocketID: 0},
  141. 147: {CoreID: 40, SocketID: 0},
  142. 267: {CoreID: 40, SocketID: 0},
  143. 88: {CoreID: 41, SocketID: 0},
  144. 208: {CoreID: 41, SocketID: 0},
  145. 148: {CoreID: 41, SocketID: 0},
  146. 268: {CoreID: 41, SocketID: 0},
  147. 95: {CoreID: 48, SocketID: 0},
  148. 215: {CoreID: 48, SocketID: 0},
  149. 155: {CoreID: 48, SocketID: 0},
  150. 275: {CoreID: 48, SocketID: 0},
  151. 96: {CoreID: 49, SocketID: 0},
  152. 216: {CoreID: 49, SocketID: 0},
  153. 156: {CoreID: 49, SocketID: 0},
  154. 276: {CoreID: 49, SocketID: 0},
  155. 103: {CoreID: 56, SocketID: 0},
  156. 223: {CoreID: 56, SocketID: 0},
  157. 163: {CoreID: 56, SocketID: 0},
  158. 283: {CoreID: 56, SocketID: 0},
  159. 104: {CoreID: 57, SocketID: 0},
  160. 224: {CoreID: 57, SocketID: 0},
  161. 164: {CoreID: 57, SocketID: 0},
  162. 284: {CoreID: 57, SocketID: 0},
  163. 3: {CoreID: 66, SocketID: 1},
  164. 27: {CoreID: 66, SocketID: 1},
  165. 15: {CoreID: 66, SocketID: 1},
  166. 40: {CoreID: 66, SocketID: 1},
  167. 4: {CoreID: 67, SocketID: 1},
  168. 28: {CoreID: 67, SocketID: 1},
  169. 16: {CoreID: 67, SocketID: 1},
  170. 41: {CoreID: 67, SocketID: 1},
  171. 11: {CoreID: 74, SocketID: 1},
  172. 35: {CoreID: 74, SocketID: 1},
  173. 23: {CoreID: 74, SocketID: 1},
  174. 48: {CoreID: 74, SocketID: 1},
  175. 12: {CoreID: 75, SocketID: 1},
  176. 36: {CoreID: 75, SocketID: 1},
  177. 24: {CoreID: 75, SocketID: 1},
  178. 49: {CoreID: 75, SocketID: 1},
  179. 51: {CoreID: 2, SocketID: 1},
  180. 171: {CoreID: 2, SocketID: 1},
  181. 111: {CoreID: 2, SocketID: 1},
  182. 231: {CoreID: 2, SocketID: 1},
  183. 52: {CoreID: 3, SocketID: 1},
  184. 172: {CoreID: 3, SocketID: 1},
  185. 112: {CoreID: 3, SocketID: 1},
  186. 232: {CoreID: 3, SocketID: 1},
  187. 59: {CoreID: 10, SocketID: 1},
  188. 179: {CoreID: 10, SocketID: 1},
  189. 119: {CoreID: 10, SocketID: 1},
  190. 239: {CoreID: 10, SocketID: 1},
  191. 60: {CoreID: 11, SocketID: 1},
  192. 180: {CoreID: 11, SocketID: 1},
  193. 120: {CoreID: 11, SocketID: 1},
  194. 240: {CoreID: 11, SocketID: 1},
  195. 65: {CoreID: 18, SocketID: 1},
  196. 185: {CoreID: 18, SocketID: 1},
  197. 125: {CoreID: 18, SocketID: 1},
  198. 245: {CoreID: 18, SocketID: 1},
  199. 66: {CoreID: 19, SocketID: 1},
  200. 186: {CoreID: 19, SocketID: 1},
  201. 126: {CoreID: 19, SocketID: 1},
  202. 246: {CoreID: 19, SocketID: 1},
  203. 73: {CoreID: 26, SocketID: 1},
  204. 193: {CoreID: 26, SocketID: 1},
  205. 133: {CoreID: 26, SocketID: 1},
  206. 253: {CoreID: 26, SocketID: 1},
  207. 74: {CoreID: 27, SocketID: 1},
  208. 194: {CoreID: 27, SocketID: 1},
  209. 134: {CoreID: 27, SocketID: 1},
  210. 254: {CoreID: 27, SocketID: 1},
  211. 81: {CoreID: 34, SocketID: 1},
  212. 201: {CoreID: 34, SocketID: 1},
  213. 141: {CoreID: 34, SocketID: 1},
  214. 261: {CoreID: 34, SocketID: 1},
  215. 82: {CoreID: 35, SocketID: 1},
  216. 202: {CoreID: 35, SocketID: 1},
  217. 142: {CoreID: 35, SocketID: 1},
  218. 262: {CoreID: 35, SocketID: 1},
  219. 89: {CoreID: 42, SocketID: 1},
  220. 209: {CoreID: 42, SocketID: 1},
  221. 149: {CoreID: 42, SocketID: 1},
  222. 269: {CoreID: 42, SocketID: 1},
  223. 90: {CoreID: 43, SocketID: 1},
  224. 210: {CoreID: 43, SocketID: 1},
  225. 150: {CoreID: 43, SocketID: 1},
  226. 270: {CoreID: 43, SocketID: 1},
  227. 97: {CoreID: 50, SocketID: 1},
  228. 217: {CoreID: 50, SocketID: 1},
  229. 157: {CoreID: 50, SocketID: 1},
  230. 277: {CoreID: 50, SocketID: 1},
  231. 98: {CoreID: 51, SocketID: 1},
  232. 218: {CoreID: 51, SocketID: 1},
  233. 158: {CoreID: 51, SocketID: 1},
  234. 278: {CoreID: 51, SocketID: 1},
  235. 5: {CoreID: 68, SocketID: 2},
  236. 29: {CoreID: 68, SocketID: 2},
  237. 17: {CoreID: 68, SocketID: 2},
  238. 42: {CoreID: 68, SocketID: 2},
  239. 6: {CoreID: 69, SocketID: 2},
  240. 30: {CoreID: 69, SocketID: 2},
  241. 18: {CoreID: 69, SocketID: 2},
  242. 43: {CoreID: 69, SocketID: 2},
  243. 53: {CoreID: 4, SocketID: 2},
  244. 173: {CoreID: 4, SocketID: 2},
  245. 113: {CoreID: 4, SocketID: 2},
  246. 233: {CoreID: 4, SocketID: 2},
  247. 54: {CoreID: 5, SocketID: 2},
  248. 174: {CoreID: 5, SocketID: 2},
  249. 114: {CoreID: 5, SocketID: 2},
  250. 234: {CoreID: 5, SocketID: 2},
  251. 61: {CoreID: 12, SocketID: 2},
  252. 181: {CoreID: 12, SocketID: 2},
  253. 121: {CoreID: 12, SocketID: 2},
  254. 241: {CoreID: 12, SocketID: 2},
  255. 62: {CoreID: 13, SocketID: 2},
  256. 182: {CoreID: 13, SocketID: 2},
  257. 122: {CoreID: 13, SocketID: 2},
  258. 242: {CoreID: 13, SocketID: 2},
  259. 67: {CoreID: 20, SocketID: 2},
  260. 187: {CoreID: 20, SocketID: 2},
  261. 127: {CoreID: 20, SocketID: 2},
  262. 247: {CoreID: 20, SocketID: 2},
  263. 68: {CoreID: 21, SocketID: 2},
  264. 188: {CoreID: 21, SocketID: 2},
  265. 128: {CoreID: 21, SocketID: 2},
  266. 248: {CoreID: 21, SocketID: 2},
  267. 75: {CoreID: 28, SocketID: 2},
  268. 195: {CoreID: 28, SocketID: 2},
  269. 135: {CoreID: 28, SocketID: 2},
  270. 255: {CoreID: 28, SocketID: 2},
  271. 76: {CoreID: 29, SocketID: 2},
  272. 196: {CoreID: 29, SocketID: 2},
  273. 136: {CoreID: 29, SocketID: 2},
  274. 256: {CoreID: 29, SocketID: 2},
  275. 83: {CoreID: 36, SocketID: 2},
  276. 203: {CoreID: 36, SocketID: 2},
  277. 143: {CoreID: 36, SocketID: 2},
  278. 263: {CoreID: 36, SocketID: 2},
  279. 84: {CoreID: 37, SocketID: 2},
  280. 204: {CoreID: 37, SocketID: 2},
  281. 144: {CoreID: 37, SocketID: 2},
  282. 264: {CoreID: 37, SocketID: 2},
  283. 91: {CoreID: 44, SocketID: 2},
  284. 211: {CoreID: 44, SocketID: 2},
  285. 151: {CoreID: 44, SocketID: 2},
  286. 271: {CoreID: 44, SocketID: 2},
  287. 92: {CoreID: 45, SocketID: 2},
  288. 212: {CoreID: 45, SocketID: 2},
  289. 152: {CoreID: 45, SocketID: 2},
  290. 272: {CoreID: 45, SocketID: 2},
  291. 99: {CoreID: 52, SocketID: 2},
  292. 219: {CoreID: 52, SocketID: 2},
  293. 159: {CoreID: 52, SocketID: 2},
  294. 279: {CoreID: 52, SocketID: 2},
  295. 100: {CoreID: 53, SocketID: 2},
  296. 220: {CoreID: 53, SocketID: 2},
  297. 160: {CoreID: 53, SocketID: 2},
  298. 280: {CoreID: 53, SocketID: 2},
  299. 105: {CoreID: 60, SocketID: 2},
  300. 225: {CoreID: 60, SocketID: 2},
  301. 165: {CoreID: 60, SocketID: 2},
  302. 285: {CoreID: 60, SocketID: 2},
  303. 106: {CoreID: 61, SocketID: 2},
  304. 226: {CoreID: 61, SocketID: 2},
  305. 166: {CoreID: 61, SocketID: 2},
  306. 286: {CoreID: 61, SocketID: 2},
  307. 7: {CoreID: 70, SocketID: 3},
  308. 31: {CoreID: 70, SocketID: 3},
  309. 19: {CoreID: 70, SocketID: 3},
  310. 44: {CoreID: 70, SocketID: 3},
  311. 8: {CoreID: 71, SocketID: 3},
  312. 32: {CoreID: 71, SocketID: 3},
  313. 20: {CoreID: 71, SocketID: 3},
  314. 45: {CoreID: 71, SocketID: 3},
  315. 37: {CoreID: 63, SocketID: 3},
  316. 168: {CoreID: 63, SocketID: 3},
  317. 108: {CoreID: 63, SocketID: 3},
  318. 228: {CoreID: 63, SocketID: 3},
  319. 107: {CoreID: 62, SocketID: 3},
  320. 227: {CoreID: 62, SocketID: 3},
  321. 167: {CoreID: 62, SocketID: 3},
  322. 287: {CoreID: 62, SocketID: 3},
  323. 55: {CoreID: 6, SocketID: 3},
  324. 175: {CoreID: 6, SocketID: 3},
  325. 115: {CoreID: 6, SocketID: 3},
  326. 235: {CoreID: 6, SocketID: 3},
  327. 56: {CoreID: 7, SocketID: 3},
  328. 176: {CoreID: 7, SocketID: 3},
  329. 116: {CoreID: 7, SocketID: 3},
  330. 236: {CoreID: 7, SocketID: 3},
  331. 63: {CoreID: 14, SocketID: 3},
  332. 183: {CoreID: 14, SocketID: 3},
  333. 123: {CoreID: 14, SocketID: 3},
  334. 243: {CoreID: 14, SocketID: 3},
  335. 64: {CoreID: 15, SocketID: 3},
  336. 184: {CoreID: 15, SocketID: 3},
  337. 124: {CoreID: 15, SocketID: 3},
  338. 244: {CoreID: 15, SocketID: 3},
  339. 69: {CoreID: 22, SocketID: 3},
  340. 189: {CoreID: 22, SocketID: 3},
  341. 129: {CoreID: 22, SocketID: 3},
  342. 249: {CoreID: 22, SocketID: 3},
  343. 70: {CoreID: 23, SocketID: 3},
  344. 190: {CoreID: 23, SocketID: 3},
  345. 130: {CoreID: 23, SocketID: 3},
  346. 250: {CoreID: 23, SocketID: 3},
  347. 77: {CoreID: 30, SocketID: 3},
  348. 197: {CoreID: 30, SocketID: 3},
  349. 137: {CoreID: 30, SocketID: 3},
  350. 257: {CoreID: 30, SocketID: 3},
  351. 78: {CoreID: 31, SocketID: 3},
  352. 198: {CoreID: 31, SocketID: 3},
  353. 138: {CoreID: 31, SocketID: 3},
  354. 258: {CoreID: 31, SocketID: 3},
  355. 85: {CoreID: 38, SocketID: 3},
  356. 205: {CoreID: 38, SocketID: 3},
  357. 145: {CoreID: 38, SocketID: 3},
  358. 265: {CoreID: 38, SocketID: 3},
  359. 86: {CoreID: 39, SocketID: 3},
  360. 206: {CoreID: 39, SocketID: 3},
  361. 146: {CoreID: 39, SocketID: 3},
  362. 266: {CoreID: 39, SocketID: 3},
  363. 93: {CoreID: 46, SocketID: 3},
  364. 213: {CoreID: 46, SocketID: 3},
  365. 153: {CoreID: 46, SocketID: 3},
  366. 273: {CoreID: 46, SocketID: 3},
  367. 94: {CoreID: 47, SocketID: 3},
  368. 214: {CoreID: 47, SocketID: 3},
  369. 154: {CoreID: 47, SocketID: 3},
  370. 274: {CoreID: 47, SocketID: 3},
  371. 101: {CoreID: 54, SocketID: 3},
  372. 221: {CoreID: 54, SocketID: 3},
  373. 161: {CoreID: 54, SocketID: 3},
  374. 281: {CoreID: 54, SocketID: 3},
  375. 102: {CoreID: 55, SocketID: 3},
  376. 222: {CoreID: 55, SocketID: 3},
  377. 162: {CoreID: 55, SocketID: 3},
  378. 282: {CoreID: 55, SocketID: 3},
  379. },
  380. }
  381. )