[RFC PATCH 3/8] powerpc/pseries: Rename TYPE1_AFFINITY to FORM1_AFFINITY
David Gibson
david at gibson.dropbear.id.au
Tue Jun 15 13:04:10 AEST 2021
On Mon, Jun 14, 2021 at 10:09:58PM +0530, Aneesh Kumar K.V wrote:
> Also make related code cleanup that will allow adding FORM2_AFFINITY in
> later patches. No functional change in this patch.
>
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar at linux.ibm.com>
Reviewed-by: David Gibson <david at gibson.dropbear.id.au>
> ---
> arch/powerpc/include/asm/firmware.h | 4 +--
> arch/powerpc/include/asm/prom.h | 2 +-
> arch/powerpc/kernel/prom_init.c | 2 +-
> arch/powerpc/mm/numa.c | 35 ++++++++++++++---------
> arch/powerpc/platforms/pseries/firmware.c | 2 +-
> 5 files changed, 26 insertions(+), 19 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/firmware.h b/arch/powerpc/include/asm/firmware.h
> index 7604673787d6..60b631161360 100644
> --- a/arch/powerpc/include/asm/firmware.h
> +++ b/arch/powerpc/include/asm/firmware.h
> @@ -44,7 +44,7 @@
> #define FW_FEATURE_OPAL ASM_CONST(0x0000000010000000)
> #define FW_FEATURE_SET_MODE ASM_CONST(0x0000000040000000)
> #define FW_FEATURE_BEST_ENERGY ASM_CONST(0x0000000080000000)
> -#define FW_FEATURE_TYPE1_AFFINITY ASM_CONST(0x0000000100000000)
> +#define FW_FEATURE_FORM1_AFFINITY ASM_CONST(0x0000000100000000)
> #define FW_FEATURE_PRRN ASM_CONST(0x0000000200000000)
> #define FW_FEATURE_DRMEM_V2 ASM_CONST(0x0000000400000000)
> #define FW_FEATURE_DRC_INFO ASM_CONST(0x0000000800000000)
> @@ -69,7 +69,7 @@ enum {
> FW_FEATURE_SPLPAR | FW_FEATURE_LPAR |
> FW_FEATURE_CMO | FW_FEATURE_VPHN | FW_FEATURE_XCMO |
> FW_FEATURE_SET_MODE | FW_FEATURE_BEST_ENERGY |
> - FW_FEATURE_TYPE1_AFFINITY | FW_FEATURE_PRRN |
> + FW_FEATURE_FORM1_AFFINITY | FW_FEATURE_PRRN |
> FW_FEATURE_HPT_RESIZE | FW_FEATURE_DRMEM_V2 |
> FW_FEATURE_DRC_INFO | FW_FEATURE_BLOCK_REMOVE |
> FW_FEATURE_PAPR_SCM | FW_FEATURE_ULTRAVISOR |
> diff --git a/arch/powerpc/include/asm/prom.h b/arch/powerpc/include/asm/prom.h
> index 324a13351749..df9fec9d232c 100644
> --- a/arch/powerpc/include/asm/prom.h
> +++ b/arch/powerpc/include/asm/prom.h
> @@ -147,7 +147,7 @@ extern int of_read_drc_info_cell(struct property **prop,
> #define OV5_MSI 0x0201 /* PCIe/MSI support */
> #define OV5_CMO 0x0480 /* Cooperative Memory Overcommitment */
> #define OV5_XCMO 0x0440 /* Page Coalescing */
> -#define OV5_TYPE1_AFFINITY 0x0580 /* Type 1 NUMA affinity */
> +#define OV5_FORM1_AFFINITY 0x0580 /* FORM1 NUMA affinity */
> #define OV5_PRRN 0x0540 /* Platform Resource Reassignment */
> #define OV5_HP_EVT 0x0604 /* Hot Plug Event support */
> #define OV5_RESIZE_HPT 0x0601 /* Hash Page Table resizing */
> diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
> index 41ed7e33d897..64b9593038a7 100644
> --- a/arch/powerpc/kernel/prom_init.c
> +++ b/arch/powerpc/kernel/prom_init.c
> @@ -1070,7 +1070,7 @@ static const struct ibm_arch_vec ibm_architecture_vec_template __initconst = {
> #else
> 0,
> #endif
> - .associativity = OV5_FEAT(OV5_TYPE1_AFFINITY) | OV5_FEAT(OV5_PRRN),
> + .associativity = OV5_FEAT(OV5_FORM1_AFFINITY) | OV5_FEAT(OV5_PRRN),
> .bin_opts = OV5_FEAT(OV5_RESIZE_HPT) | OV5_FEAT(OV5_HP_EVT),
> .micro_checkpoint = 0,
> .reserved0 = 0,
> diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
> index 5941da201fa3..192067991f8a 100644
> --- a/arch/powerpc/mm/numa.c
> +++ b/arch/powerpc/mm/numa.c
> @@ -53,7 +53,10 @@ EXPORT_SYMBOL(node_data);
>
> static int primary_domain_index;
> static int n_mem_addr_cells, n_mem_size_cells;
> -static int form1_affinity;
> +
> +#define FORM0_AFFINITY 0
> +#define FORM1_AFFINITY 1
> +static int affinity_form;
>
> #define MAX_DISTANCE_REF_POINTS 4
> static int max_domain_index;
> @@ -190,7 +193,7 @@ int __node_distance(int a, int b)
> int i;
> int distance = LOCAL_DISTANCE;
>
> - if (!form1_affinity)
> + if (affinity_form == FORM0_AFFINITY)
> return ((a == b) ? LOCAL_DISTANCE : REMOTE_DISTANCE);
>
> for (i = 0; i < max_domain_index; i++) {
> @@ -210,7 +213,7 @@ static void initialize_distance_lookup_table(int nid,
> {
> int i;
>
> - if (!form1_affinity)
> + if (affinity_form != FORM1_AFFINITY)
> return;
>
> for (i = 0; i < max_domain_index; i++) {
> @@ -289,6 +292,17 @@ static int __init find_primary_domain_index(void)
> int index;
> struct device_node *root;
>
> + /*
> + * Check for which form of affinity.
> + */
> + if (firmware_has_feature(FW_FEATURE_OPAL)) {
> + affinity_form = FORM1_AFFINITY;
> + } else if (firmware_has_feature(FW_FEATURE_FORM1_AFFINITY)) {
> + dbg("Using form 1 affinity\n");
> + affinity_form = FORM1_AFFINITY;
> + } else
> + affinity_form = FORM0_AFFINITY;
> +
> if (firmware_has_feature(FW_FEATURE_OPAL))
> root = of_find_node_by_path("/ibm,opal");
> else
> @@ -318,23 +332,16 @@ static int __init find_primary_domain_index(void)
> }
>
> max_domain_index /= sizeof(int);
> -
> - if (firmware_has_feature(FW_FEATURE_OPAL) ||
> - firmware_has_feature(FW_FEATURE_TYPE1_AFFINITY)) {
> - dbg("Using form 1 affinity\n");
> - form1_affinity = 1;
> - }
> -
> - if (form1_affinity) {
> - index = of_read_number(distance_ref_points, 1);
> - } else {
> + if (affinity_form == FORM0_AFFINITY) {
> if (max_domain_index < 2) {
> printk(KERN_WARNING "NUMA: "
> - "short ibm,associativity-reference-points\n");
> + "short ibm,associativity-reference-points\n");
> goto err;
> }
>
> index = of_read_number(&distance_ref_points[1], 1);
> + } else {
> + index = of_read_number(distance_ref_points, 1);
> }
>
> /*
> diff --git a/arch/powerpc/platforms/pseries/firmware.c b/arch/powerpc/platforms/pseries/firmware.c
> index 4c7b7f5a2ebc..5d4c2bc20bba 100644
> --- a/arch/powerpc/platforms/pseries/firmware.c
> +++ b/arch/powerpc/platforms/pseries/firmware.c
> @@ -119,7 +119,7 @@ struct vec5_fw_feature {
>
> static __initdata struct vec5_fw_feature
> vec5_fw_features_table[] = {
> - {FW_FEATURE_TYPE1_AFFINITY, OV5_TYPE1_AFFINITY},
> + {FW_FEATURE_FORM1_AFFINITY, OV5_FORM1_AFFINITY},
> {FW_FEATURE_PRRN, OV5_PRRN},
> {FW_FEATURE_DRMEM_V2, OV5_DRMEM_V2},
> {FW_FEATURE_DRC_INFO, OV5_DRC_INFO},
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20210615/663181e4/attachment-0001.sig>
More information about the Linuxppc-dev
mailing list