[PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to lib/

Zhao Qiang qiang.zhao at freescale.com
Thu Jul 9 16:05:47 AEST 2015


On Wed, 2015-07-09 at 11:51 -0500, Wood Scott wrote:

> -----Original Message-----
> From: Wood Scott-B07421
> Sent: Thursday, July 09, 2015 11:51 AM
> To: Zhao Qiang-B45475
> Cc: linuxppc-dev at lists.ozlabs.org; Xie Xiaobo-R63061
> Subject: Re: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to
> lib/
> 
> On Wed, 2015-07-08 at 22:18 -0500, Zhao Qiang-B45475 wrote:
> > > -----Original Message-----
> > > From: Wood Scott-B07421
> > > Sent: Thursday, July 09, 2015 2:59 AM
> > > To: Zhao Qiang-B45475
> > > Cc: linuxppc-dev at lists.ozlabs.org; Xie Xiaobo-R63061
> > > Subject: Re: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/
> > > to lib/
> > >
> > > On Wed, 2015-07-08 at 02:25 -0500, Zhao Qiang-B45475 wrote:
> > > > So I will add two func for my use, do you think it is ok?
> > > > I need to align the address of allocated muram.
> > > > And I will set algo = gen_pool_first_fit_align.
> > > >
> > > > +unsigned long gen_pool_alloc_align(struct gen_pool *pool, size_t
> size,
> > > > +               unsigned long align)
> > >
> > > Again, please explain why you need this for CPM/QE.  I don't see
> > > rh_alloc_align() currently being used by either.
> > >
> > > Also, please stop top-posting.
> >
> >
> > unsigned long rh_alloc(struct _rh_info *info, int size, const char
> > *owner) {
> >         return rh_alloc_align(info, size, info->alignment, owner); }
> > EXPORT_SYMBOL_GPL(rh_alloc);
> 
> That doesn't involve a different alignment for each allocation.  It uses
> the same alignment for all of them, and the alignment that cpm_common.c
> provides to rh_init() is 1 byte.
> 
> ...but sigh, cpm_muram_alloc() is changing cpm_muram_info.alignment
> behind the rheap code's back.  Despite the existence of rh_alloc_align().
> 
> So yes, add aligned allocation functionality to genalloc, but don't
> duplicate
> gen_pool_alloc() to do so.  Instead, rename gen_pool_alloc() to
> gen_pool_alloc_align() with an alignment parameter (also modifying the
> algo function to take an alignment arg, which
> gen_pool_first_fit_order_align() would ignore), and provide a

Here, I don’t understand how to handle the algo In your mind. 
Can you explain more detailly?

> gen_pool_alloc() wrapper that specifies 1 as the required alignment.
> Also be sure to CC lkml on the patchset since you're touching core code
> that doesn't have its own maintainer or list.
> 
> -Scott



More information about the Linuxppc-dev mailing list