[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [XEN v2 02/12] xen/Arm: GICv3: Move the macros to compute the affnity level to arm64/arm32


  • To: Ayan Kumar Halder <ayankuma@xxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Michal Orzel <michal.orzel@xxxxxxx>
  • Date: Mon, 31 Oct 2022 18:53:39 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3lI9apOohtOYRNkGrKmwMe+hAxa4ro9RQPnCUNlVOww=; b=fldVU1/8O0hh0+wo3mfCRS1yhmNdi0D1N92tm4JJ0gc0kh7hl8UjH5GUmoghW3k+gO+oa3Gok7SM65DW4ECXgyynXgRGDP4yBQNUxC+Cpv6BA3sF4gvHLf2EtDwhsVzq07nEUJfUbzGpLNaDNVxzvwxqjR3xkDoRhtWPXwC/99q54YF34FVyJkNZ03aqG81+IED+vX0ysPZGhhdbGqpLVFb4nMJBLssSGZn60+et+Hs3nIWMO8KHdNl//pHMHqtZP/iuomiL9UM4IOLkvQRC8x7U5Klv6iEUJ9Z+HX+Muf0yqeNK2V59jrD0R0aEnv602uj3K9LXuOVgHGJ4ZXeU4Q==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=b5W4YF8XpmelV2FPGxf3JsP/DZFwUamDOJsLcy6mwjZh3UxUc/JchJwVMb72V6SZRMpi6JeDs67wqYsinriGvkDQsC3dyp+eJ9Mb9r6ctOsD+myeP29qe3HLqJkgfnyXUCynCnHlDadlLAlQr/z3Dnm6sa9qLon/DfFYxtJbGvgIJJtk3CFam9zqiPeZWjlssiBsysgwWE7i0mDIvOAXlBXhGF35J4yc6fsOBKt3gyu0P1Okqd9Kmnfgh2pBOpzeA3uNw0gKYI2lnrmm2/MtyAf4Y4CT8GmkVQvrSuyDP3B+/MX8v91Sf1MbTo/LeewRPtCPg7wLCLMevq19ywZYvw==
  • Cc: <sstabellini@xxxxxxxxxx>, <stefanos@xxxxxxxxxx>, <julien@xxxxxxx>, <Volodymyr_Babchuk@xxxxxxxx>, <bertrand.marquis@xxxxxxx>, <burzalodowa@xxxxxxxxx>
  • Delivery-date: Mon, 31 Oct 2022 17:53:55 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Hi Ayan,

On 31/10/2022 16:13, Ayan Kumar Halder wrote:
> 
> 
> Refer https://elixir.bootlin.com/linux/v6.1-rc1/source/arch/arm64/ \
You should not split the link as it is becoming unusable in that form.

> include/asm/cputype.h#L14 , for the macros specific for arm64.
> 
> Refer https://elixir.bootlin.com/linux/v6.1-rc1/source/arch/arm/include/ \
Same here.

> asm/cputype.h#L54  , for the macros specific for arm32.
> 
> MPIDR_LEVEL_SHIFT() differs between 64 and 32 bit.
> For 64 bit :-
> 
>  aff_lev3          aff_lev2 aff_lev1 aff_lev0
> |________|________|________|________|________|
> 40       32       24       16       8        0
> 
> For 32 bit :-
> 
>  aff_lev3 aff_lev2 aff_lev1 aff_lev0
> |________|________|________|________|
> 32       24       16       8        0
> 

Where did you get this info from?
FWICS by looking at ARM ARM DDI 0487I.a D17-6118,
"Aff3 is not supported in AArch32 state."


> Signed-off-by: Ayan Kumar Halder <ayankuma@xxxxxxx>
> ---
> 
> Changes from :-
> v1 - 1. Rearranged the macro defines so that the common code (between arm32
> and arm64) is placed in "arm/include/asm/processor.h".
> 
>  xen/arch/arm/include/asm/arm32/processor.h | 5 +++++
>  xen/arch/arm/include/asm/arm64/processor.h | 8 ++++++++
>  xen/arch/arm/include/asm/processor.h       | 6 ------
>  3 files changed, 13 insertions(+), 6 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/arm32/processor.h 
> b/xen/arch/arm/include/asm/arm32/processor.h
> index 4e679f3273..82aa7f8d9d 100644
> --- a/xen/arch/arm/include/asm/arm32/processor.h
> +++ b/xen/arch/arm/include/asm/arm32/processor.h
> @@ -56,6 +56,11 @@ struct cpu_user_regs
>      uint32_t pad1; /* Doubleword-align the user half of the frame */
>  };
> 
> +/*
> + * Macros to extract affinity level. Picked from kernel
> + */
No need for a multiline comment here and everywhere else.

> +#define MPIDR_LEVEL_SHIFT(level) (MPIDR_LEVEL_BITS * (level))
> +
>  #endif
> 
>  #endif /* __ASM_ARM_ARM32_PROCESSOR_H */
> diff --git a/xen/arch/arm/include/asm/arm64/processor.h 
> b/xen/arch/arm/include/asm/arm64/processor.h
> index c749f80ad9..295483a9dd 100644
> --- a/xen/arch/arm/include/asm/arm64/processor.h
> +++ b/xen/arch/arm/include/asm/arm64/processor.h
> @@ -84,6 +84,14 @@ struct cpu_user_regs
>      uint64_t sp_el1, elr_el1;
>  };
> 
> +/*
> + * Macros to extract affinity level. picked from kernel
> + */
> +#define MPIDR_LEVEL_BITS_SHIFT  3
> +
> +#define MPIDR_LEVEL_SHIFT(level) \
> +         (((1 << (level)) >> 1) << MPIDR_LEVEL_BITS_SHIFT)
> +
You should move these macros below __DECL_REG as they do not require having it 
defined.

>  #undef __DECL_REG
> 
>  #endif /* __ASSEMBLY__ */
> diff --git a/xen/arch/arm/include/asm/processor.h 
> b/xen/arch/arm/include/asm/processor.h
> index 1dd81d7d52..ecfb62bbbe 100644
> --- a/xen/arch/arm/include/asm/processor.h
> +++ b/xen/arch/arm/include/asm/processor.h
> @@ -122,13 +122,7 @@
>  /*
>   * Macros to extract affinity level. picked from kernel
>   */
> -
> -#define MPIDR_LEVEL_BITS_SHIFT  3
>  #define MPIDR_LEVEL_MASK        ((1 << MPIDR_LEVEL_BITS) - 1)
> -
> -#define MPIDR_LEVEL_SHIFT(level) \
> -         (((1 << (level)) >> 1) << MPIDR_LEVEL_BITS_SHIFT)
> -
>  #define MPIDR_AFFINITY_LEVEL(mpidr, level) \
>           (((mpidr) >> MPIDR_LEVEL_SHIFT(level)) & MPIDR_LEVEL_MASK)
> 
> --
> 2.17.1
> 
> 

~Michal



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.