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