Lines Matching refs:associativity

174 static int __associativity_to_nid(const __be32 *associativity,
186 nid = of_read_number(&associativity[index], 1);
197 static int associativity_to_nid(const __be32 *associativity)
199 int array_sz = of_read_number(associativity, 1);
201 /* Skip the first element in the associativity array */
202 return __associativity_to_nid((associativity + 1), array_sz);
250 return of_get_property(dev, "ibm,associativity", NULL);
289 /* Walk the device tree upwards, looking for an associativity id */
308 static void __initialize_form1_numa_distance(const __be32 *associativity,
316 nid = __associativity_to_nid(associativity, max_array_sz);
325 if (WARN(index >= max_array_sz, "Broken ibm,associativity property"))
328 entry = &associativity[index];
334 static void initialize_form1_numa_distance(const __be32 *associativity)
338 array_sz = of_read_number(associativity, 1);
339 /* Skip the first element in the associativity array */
340 __initialize_form1_numa_distance(associativity + 1, array_sz);
353 const __be32 *associativity;
355 associativity = of_get_associativity(node);
356 if (!associativity)
359 initialize_form1_numa_distance(associativity);
471 * an index into the ibm,associativity nodes.
482 "ibm,associativity-reference-points",
486 dbg("NUMA: ibm,associativity-reference-points not found.\n");
494 "short ibm,associativity-reference-points\n");
555 * Retrieve and validate the list of associativity arrays for drconf
556 * memory from the ibm,associativity-lookup-arrays property of the
559 * The layout of the ibm,associativity-lookup-arrays property is a number N
560 * indicating the number of associativity arrays, followed by a number M
561 * indicating the size of each associativity array, followed by a list
562 * of N associativity arrays.
574 prop = of_get_property(memory, "ibm,associativity-lookup-arrays", &len);
611 const __be32 *associativity;
614 associativity = &aa.arrays[index];
615 nid = __associativity_to_nid(associativity, aa.array_sz);
618 * lookup array associativity entries have
621 __initialize_form1_numa_distance(associativity, aa.array_sz);
647 const __be32 *associativity;
650 associativity = &aa.arrays[index];
651 nid = __associativity_to_nid(associativity, aa.array_sz);
658 static int __vphn_get_associativity(long lcpu, __be32 *associativity)
663 * On a shared lpar, device tree will not have node associativity.
666 * request an explicit associativity irrespective of whether the
677 rc = hcall_vphn(hwid, VPHN_FLAG_VCPU, associativity);
687 __be32 associativity[VPHN_ASSOC_BUFSIZE] = {0};
690 if (!__vphn_get_associativity(lcpu, associativity))
691 return associativity_to_nid(associativity);
698 static int __vphn_get_associativity(long lcpu, __be32 *associativity)
763 * where virtual node associativity change causes subsequent threads
911 const __be32 *associativity;
929 dbg("NUMA associativity depth for CPU/Memory: %d\n", primary_domain_index);
962 associativity = of_get_associativity(cpu);
963 if (associativity) {
964 nid = associativity_to_nid(associativity);
965 initialize_form1_numa_distance(associativity);
1001 * have associativity properties. If none, then
1004 associativity = of_get_associativity(memory);
1005 if (associativity) {
1006 nid = associativity_to_nid(associativity);
1007 initialize_form1_numa_distance(associativity);
1138 * ibm,current-associativity-domains is a fairly recent property. If
1139 * it doesn't exist, then fallback on ibm,max-associativity-domains.
1148 "ibm,current-associativity-domains",
1151 domains = of_get_property(rtas, "ibm,max-associativity-domains",
1406 * Retrieve the new associativity information for a virtual processor's
1410 __be32 *associativity)
1415 VPHN_FLAG_VCPU, associativity);
1444 __be32 associativity[VPHN_ASSOC_BUFSIZE] = {0};
1447 /* Use associativity from first thread for all siblings */
1448 if (vphn_get_associativity(cpu, associativity))
1451 new_nid = associativity_to_nid(associativity);
1483 __be32 associativity[VPHN_ASSOC_BUFSIZE] = {0};
1495 if (vphn_get_associativity(cpu, associativity))
1498 index = of_read_number(associativity, 1);
1500 return of_read_number(&associativity[index - 1], 1);