All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
To: Christophe Leroy <christophe.leroy@c-s.fr>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Michael Ellerman <mpe@ellerman.id.au>
Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 04/11] powerpc/mm: move slice_mask_for_size() into mmu.h
Date: Fri, 26 Apr 2019 12:06:55 +0530	[thread overview]
Message-ID: <87zhod9ss8.fsf@linux.ibm.com> (raw)
In-Reply-To: <f406fa36f3bf7bd8ec5bcf8e3d00f40270050c6a.1556202029.git.christophe.leroy@c-s.fr>

Christophe Leroy <christophe.leroy@c-s.fr> writes:

> Move slice_mask_for_size() into subarch mmu.h
>
> At the same time, replace BUG() by VM_BUG_ON() as those BUG() are not
> there to catch runtime errors but to catch errors during development
> cycle only.
>
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>

> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
> ---
>  arch/powerpc/include/asm/book3s/64/mmu.h     | 17 +++++++++++
>  arch/powerpc/include/asm/nohash/32/mmu-8xx.h | 42 +++++++++++++++++++---------
>  arch/powerpc/mm/slice.c                      | 34 ----------------------
>  3 files changed, 46 insertions(+), 47 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/book3s/64/mmu.h b/arch/powerpc/include/asm/book3s/64/mmu.h
> index 230a9dec7677..ad00355f874f 100644
> --- a/arch/powerpc/include/asm/book3s/64/mmu.h
> +++ b/arch/powerpc/include/asm/book3s/64/mmu.h
> @@ -203,6 +203,23 @@ static inline struct slice_mask *mm_ctx_slice_mask_16g(mm_context_t *ctx)
>  }
>  #endif
>  
> +static inline struct slice_mask *slice_mask_for_size(mm_context_t *ctx, int psize)
> +{
> +#ifdef CONFIG_PPC_64K_PAGES
> +	if (psize == MMU_PAGE_64K)
> +		return mm_ctx_slice_mask_64k(&ctx);
> +#endif
> +#ifdef CONFIG_HUGETLB_PAGE
> +	if (psize == MMU_PAGE_16M)
> +		return mm_ctx_slice_mask_16m(&ctx);
> +	if (psize == MMU_PAGE_16G)
> +		return mm_ctx_slice_mask_16g(&ctx);
> +#endif
> +	VM_BUG_ON(psize != MMU_PAGE_4K);
> +
> +	return mm_ctx_slice_mask_4k(&ctx);
> +}
> +
>  #ifdef CONFIG_PPC_SUBPAGE_PROT
>  static inline struct subpage_prot_table *mm_ctx_subpage_prot(mm_context_t *ctx)
>  {
> diff --git a/arch/powerpc/include/asm/nohash/32/mmu-8xx.h b/arch/powerpc/include/asm/nohash/32/mmu-8xx.h
> index c503e2f05e61..a0f6844a1498 100644
> --- a/arch/powerpc/include/asm/nohash/32/mmu-8xx.h
> +++ b/arch/powerpc/include/asm/nohash/32/mmu-8xx.h
> @@ -184,7 +184,23 @@
>  #define LOW_SLICE_ARRAY_SZ	SLICE_ARRAY_SIZE
>  #endif
>  
> +#if defined(CONFIG_PPC_4K_PAGES)
> +#define mmu_virtual_psize	MMU_PAGE_4K
> +#elif defined(CONFIG_PPC_16K_PAGES)
> +#define mmu_virtual_psize	MMU_PAGE_16K
> +#define PTE_FRAG_NR		4
> +#define PTE_FRAG_SIZE_SHIFT	12
> +#define PTE_FRAG_SIZE		(1UL << 12)
> +#else
> +#error "Unsupported PAGE_SIZE"
> +#endif
> +
> +#define mmu_linear_psize	MMU_PAGE_8M
> +
>  #ifndef __ASSEMBLY__
> +
> +#include <linux/mmdebug.h>
> +
>  struct slice_mask {
>  	u64 low_slices;
>  	DECLARE_BITMAP(high_slices, 0);
> @@ -255,6 +271,19 @@ static inline struct slice_mask *mm_ctx_slice_mask_8m(mm_context_t *ctx)
>  	return &ctx->mask_8m;
>  }
>  #endif
> +
> +static inline struct slice_mask *slice_mask_for_size(mm_context_t *ctx, int psize)
> +{
> +#ifdef CONFIG_HUGETLB_PAGE
> +	if (psize == MMU_PAGE_512K)
> +		return &ctx->mask_512k;
> +	if (psize == MMU_PAGE_8M)
> +		return &ctx->mask_8m;
> +#endif
> +	VM_BUG_ON(psize != mmu_virtual_psize);
> +
> +	return &ctx->mask_base_psize;
> +}
>  #endif /* CONFIG_PPC_MM_SLICE */
>  
>  #define PHYS_IMMR_BASE (mfspr(SPRN_IMMR) & 0xfff80000)
> @@ -306,17 +335,4 @@ extern s32 patch__itlbmiss_perf, patch__dtlbmiss_perf;
>  
>  #endif /* !__ASSEMBLY__ */
>  
> -#if defined(CONFIG_PPC_4K_PAGES)
> -#define mmu_virtual_psize	MMU_PAGE_4K
> -#elif defined(CONFIG_PPC_16K_PAGES)
> -#define mmu_virtual_psize	MMU_PAGE_16K
> -#define PTE_FRAG_NR		4
> -#define PTE_FRAG_SIZE_SHIFT	12
> -#define PTE_FRAG_SIZE		(1UL << 12)
> -#else
> -#error "Unsupported PAGE_SIZE"
> -#endif
> -
> -#define mmu_linear_psize	MMU_PAGE_8M
> -
>  #endif /* _ASM_POWERPC_MMU_8XX_H_ */
> diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c
> index 8eb7e8b09c75..31de91b65a64 100644
> --- a/arch/powerpc/mm/slice.c
> +++ b/arch/powerpc/mm/slice.c
> @@ -150,40 +150,6 @@ static void slice_mask_for_free(struct mm_struct *mm, struct slice_mask *ret,
>  			__set_bit(i, ret->high_slices);
>  }
>  
> -#ifdef CONFIG_PPC_BOOK3S_64
> -static struct slice_mask *slice_mask_for_size(mm_context_t *ctx, int psize)
> -{
> -#ifdef CONFIG_PPC_64K_PAGES
> -	if (psize == MMU_PAGE_64K)
> -		return mm_ctx_slice_mask_64k(&ctx);
> -#endif
> -	if (psize == MMU_PAGE_4K)
> -		return mm_ctx_slice_mask_4k(&ctx);
> -#ifdef CONFIG_HUGETLB_PAGE
> -	if (psize == MMU_PAGE_16M)
> -		return mm_ctx_slice_mask_16m(&ctx);
> -	if (psize == MMU_PAGE_16G)
> -		return mm_ctx_slice_mask_16g(&ctx);
> -#endif
> -	BUG();
> -}
> -#elif defined(CONFIG_PPC_8xx)
> -static struct slice_mask *slice_mask_for_size(mm_context_t *ctx, int psize)
> -{
> -	if (psize == mmu_virtual_psize)
> -		return &ctx->mask_base_psize;
> -#ifdef CONFIG_HUGETLB_PAGE
> -	if (psize == MMU_PAGE_512K)
> -		return &ctx->mask_512k;
> -	if (psize == MMU_PAGE_8M)
> -		return &ctx->mask_8m;
> -#endif
> -	BUG();
> -}
> -#else
> -#error "Must define the slice masks for page sizes supported by the platform"
> -#endif
> -
>  static bool slice_check_range_fits(struct mm_struct *mm,
>  			   const struct slice_mask *available,
>  			   unsigned long start, unsigned long len)
> -- 
> 2.13.3


  reply	other threads:[~2019-04-26  6:45 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-25 14:29 [PATCH v2 00/11] Reduce ifdef mess in slice.c Christophe Leroy
2019-04-25 14:29 ` Christophe Leroy
2019-04-25 14:29 ` [PATCH v2 01/11] powerpc/mm: fix erroneous duplicate slb_addr_limit init Christophe Leroy
2019-04-25 14:29   ` Christophe Leroy
2019-04-26  6:32   ` Aneesh Kumar K.V
2019-05-03  6:59   ` Michael Ellerman
2019-04-25 14:29 ` [PATCH v2 02/11] powerpc/mm: no slice for nohash/64 Christophe Leroy
2019-04-25 14:29   ` Christophe Leroy
2019-04-26  6:33   ` Aneesh Kumar K.V
2019-04-25 14:29 ` [PATCH v2 03/11] powerpc/mm: hand a context_t over to slice_mask_for_size() instead of mm_struct Christophe Leroy
2019-04-25 14:29   ` Christophe Leroy
2019-04-26  6:34   ` Aneesh Kumar K.V
2019-04-25 14:29 ` [PATCH v2 04/11] powerpc/mm: move slice_mask_for_size() into mmu.h Christophe Leroy
2019-04-25 14:29   ` Christophe Leroy
2019-04-26  6:36   ` Aneesh Kumar K.V [this message]
2019-04-25 14:29 ` [PATCH v2 05/11] powerpc/mm: get rid of mm_ctx_slice_mask_xxx() Christophe Leroy
2019-04-25 14:29   ` Christophe Leroy
2019-04-26  6:37   ` Aneesh Kumar K.V
2019-04-25 14:29 ` [PATCH v2 06/11] powerpc/mm: remove unnecessary #ifdef CONFIG_PPC64 Christophe Leroy
2019-04-25 14:29   ` Christophe Leroy
2019-04-25 14:29 ` [PATCH v2 07/11] powerpc/mm: remove a couple of #ifdef CONFIG_PPC_64K_PAGES in mm/slice.c Christophe Leroy
2019-04-25 14:29   ` Christophe Leroy
2019-04-26  6:40   ` Aneesh Kumar K.V
2019-04-25 14:29 ` [PATCH v2 08/11] powerpc/8xx: get rid of #ifdef CONFIG_HUGETLB_PAGE for slices Christophe Leroy
2019-04-25 14:29   ` Christophe Leroy
2019-04-25 14:29 ` [PATCH v2 09/11] powerpc/mm: define get_slice_psize() all the time Christophe Leroy
2019-04-25 14:29   ` Christophe Leroy
2019-04-26  6:42   ` Aneesh Kumar K.V
2019-04-25 14:29 ` [PATCH v2 10/11] powerpc/mm: define subarch SLB_ADDR_LIMIT_DEFAULT Christophe Leroy
2019-04-25 14:29   ` Christophe Leroy
2019-04-26  6:43   ` Aneesh Kumar K.V
2019-04-25 14:29 ` [PATCH v2 11/11] powerpc/mm: drop slice DEBUG Christophe Leroy
2019-04-25 14:29   ` Christophe Leroy
2019-04-26  6:44   ` Aneesh Kumar K.V
2019-04-26  6:49     ` Christophe Leroy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87zhod9ss8.fsf@linux.ibm.com \
    --to=aneesh.kumar@linux.ibm.com \
    --cc=benh@kernel.crashing.org \
    --cc=christophe.leroy@c-s.fr \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mpe@ellerman.id.au \
    --cc=paulus@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.