[PATCH 05/10] powerpc/mm/slice: implement a slice mask cache

Nicholas Piggin npiggin at gmail.com
Wed Mar 7 01:01:42 AEDT 2018


On Tue, 6 Mar 2018 14:49:57 +0100
Christophe LEROY <christophe.leroy at c-s.fr> wrote:

> Le 06/03/2018 à 14:25, Nicholas Piggin a écrit :

> > @@ -201,6 +206,15 @@ typedef struct {
> >   	unsigned char low_slices_psize[SLICE_ARRAY_SIZE];
> >   	unsigned char high_slices_psize[0];
> >   	unsigned long slb_addr_limit;
> > +# ifdef CONFIG_PPC_16K_PAGES
> > +	struct slice_mask mask_16k;
> > +# else
> > +	struct slice_mask mask_4k;
> > +# endif  
> 
> Could we just call it mask_base or something like that regardless of the 
> standard page size ?

[...]

> > +#elif defined(CONFIG_PPC_8xx)
> > +static struct slice_mask *slice_mask_for_size(struct mm_struct *mm, int psize)
> > +{
> > +#ifdef CONFIG_PPC_16K_PAGES
> > +	if (psize == MMU_PAGE_16K)
> > +		return &mm->context.mask_16k;
> > +#else
> > +	if (psize == MMU_PAGE_4K)
> > +		return &mm->context.mask_4k;
> > +#endif  
> 
> What about the following instead:
> +	if (psize == mmu_virtual_size)
> +		return &mm->context.mask_base;

Sure if you prefer. It should generate the same code right?

Thanks,
Nick


More information about the Linuxppc-dev mailing list