powerpc/numa: NUMA topology support for PowerNV
This patch adds support for numa topology on powernv platforms running OPAL formware. It checks for the type of platform at run time and sets the affinity form correctly so that NUMA topology can be discovered correctly. Signed-off-by: Dipankar Sarma <dipankar@in.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
Родитель
c40dd2f766
Коммит
1c8ee73395
|
@ -315,7 +315,10 @@ static int __init find_min_common_depth(void)
|
|||
struct device_node *root;
|
||||
const char *vec5;
|
||||
|
||||
root = of_find_node_by_path("/rtas");
|
||||
if (firmware_has_feature(FW_FEATURE_OPAL))
|
||||
root = of_find_node_by_path("/ibm,opal");
|
||||
else
|
||||
root = of_find_node_by_path("/rtas");
|
||||
if (!root)
|
||||
root = of_find_node_by_path("/");
|
||||
|
||||
|
@ -344,12 +347,19 @@ static int __init find_min_common_depth(void)
|
|||
|
||||
#define VEC5_AFFINITY_BYTE 5
|
||||
#define VEC5_AFFINITY 0x80
|
||||
chosen = of_find_node_by_path("/chosen");
|
||||
if (chosen) {
|
||||
vec5 = of_get_property(chosen, "ibm,architecture-vec-5", NULL);
|
||||
if (vec5 && (vec5[VEC5_AFFINITY_BYTE] & VEC5_AFFINITY)) {
|
||||
dbg("Using form 1 affinity\n");
|
||||
form1_affinity = 1;
|
||||
|
||||
if (firmware_has_feature(FW_FEATURE_OPAL))
|
||||
form1_affinity = 1;
|
||||
else {
|
||||
chosen = of_find_node_by_path("/chosen");
|
||||
if (chosen) {
|
||||
vec5 = of_get_property(chosen,
|
||||
"ibm,architecture-vec-5", NULL);
|
||||
if (vec5 && (vec5[VEC5_AFFINITY_BYTE] &
|
||||
VEC5_AFFINITY)) {
|
||||
dbg("Using form 1 affinity\n");
|
||||
form1_affinity = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче