Re: [PATCH v6 3/3] qe_common: add qe_muram_ functions to manage muram

From: Scott Wood
Date: Tue Aug 25 2015 - 21:53:14 EST


On Tue, 2015-08-25 at 20:49 -0500, Zhao Qiang-B45475 wrote:
> > -----Original Message-----
> > From: Wood Scott-B07421
> > Sent: Wednesday, August 26, 2015 12:23 AM
> > To: Zhao Qiang-B45475
> > Cc: Laura Abbott; linux-kernel@xxxxxxxxxxxxxxx; linuxppc-
> > dev@xxxxxxxxxxxxxxxx; lauraa@xxxxxxxxxxxxxx; Xie Xiaobo-R63061;
> > benh@xxxxxxxxxxxxxxxxxxx; Li Yang-Leo-R58472; paulus@xxxxxxxxx
> > Subject: Re: [PATCH v6 3/3] qe_common: add qe_muram_ functions to manage
> > muram
> >
> > On Tue, 2015-08-25 at 02:19 -0500, Zhao Qiang-B45475 wrote:
> > > On 08/25/2015 12:15 PM, Laura Abbott wrote
> > > > -----Original Message-----
> > > > From: Laura Abbott [mailto:labbott@xxxxxxxxxx]
> > > > Sent: Tuesday, August 25, 2015 12:15 PM
> > > > To: Zhao Qiang-B45475; Wood Scott-B07421
> > > > Cc: linux-kernel@xxxxxxxxxxxxxxx; linuxppc-dev@xxxxxxxxxxxxxxxx;
> > > > lauraa@xxxxxxxxxxxxxx; Xie Xiaobo-R63061; benh@xxxxxxxxxxxxxxxxxxx;
> > > > Li Yang-Leo-R58472; paulus@xxxxxxxxx
> > > > Subject: Re: [PATCH v6 3/3] qe_common: add qe_muram_ functions to
> > > > manage muram
> > > >
> > > > On 08/24/2015 08:03 PM, Zhao Qiang wrote:
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: Laura Abbott [mailto:labbott@xxxxxxxxxx]
> > > > > > Sent: Tuesday, August 25, 2015 7:32 AM
> > > > > > To: Zhao Qiang-B45475; Wood Scott-B07421
> > > > > > Cc: linux-kernel@xxxxxxxxxxxxxxx; linuxppc-dev@xxxxxxxxxxxxxxxx;
> > > > > > lauraa@xxxxxxxxxxxxxx; Xie Xiaobo-R63061;
> > > > > > benh@xxxxxxxxxxxxxxxxxxx; Li Yang-Leo-R58472; paulus@xxxxxxxxx
> > > > > > Subject: Re: [PATCH v6 3/3] qe_common: add qe_muram_ functions
> > > > > > to manage muram
> > > > > >
> > > > > > There doesn't seem to be a check for allocation failure from the
> > > > > > gen_alloc.
> > > > >
> > > > > gen_pool_alloc will return 0 if there is error, but if the address
> > > > > returned is just 0x0, it can't distinguish it is address or error.
> > > > >
> > > >
> > > > Yes, that's a bad limitation of gen_pool. Maybe one day that will
> > > > get fixed.
> > > > In a previous out of tree driver, I worked around this by offsetting
> > > > the gen_pool_add by a constant so any return value was non-zero and
> > > > out of memory was zero and then subtracting the constant off of the
> > return value.
> > > > Not sure if that's better or worse than just fixing gen_alloc.
> > > >
> > >
> > > The workaround works for non alignment allocation, but for alignment
> > > allocation, It need to align bytes to addr 0, offsetting the
> > > gen_pool_add maybe make wrong alignment
> >
> > It would work if the offset you add is a multiple of the size of muram.
>
> The QE apps ask different bytes alignment for different use due to hardware
> restriction.
> Why donât we deal with it in gen_pool_alloc func instead of a workaround?
> It is more reasonable.
>

Sure, fixing gen_pool_alloc would be better if you're willing to do it, and
are careful not to break existing users. I was just pointing out that the
workaround isn't totally incompatible with alignment.

-Scott

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/