All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matt Porter <mporter-l0cyMroinI0@public.gmane.org>
To: Philipp Zabel <p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
Cc: Dong Aisheng
	<dong.aisheng-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	Greg Kroah-Hartman
	<gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>,
	devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Rob Herring <rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org>,
	Paul Gortmaker
	<paul.gortmaker-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>,
	Richard Zhao
	<richard.zhao-KZfg59tc24xl57MIdRCFDg@public.gmane.org>,
	kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org,
	Huang Shijie <shijie8-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Subject: Re: [PATCH v5 4/4] misc: sram: add support for configurable allocation order
Date: Fri, 16 Nov 2012 09:09:12 -0500	[thread overview]
Message-ID: <20121116140912.GB20006@beef> (raw)
In-Reply-To: <1352985095.2399.184.camel-/rZezPiN1rtR6QfukMTsflXZhhPuCNm+@public.gmane.org>

On Thu, Nov 15, 2012 at 02:11:35PM +0100, Philipp Zabel wrote:
> Am Mittwoch, den 14.11.2012, 19:15 +0000 schrieb Grant Likely:
> > On Thu, 18 Oct 2012 16:27:33 +0200, Philipp Zabel <p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> wrote:
> > > From: Matt Porter <mporter-l0cyMroinI0@public.gmane.org>
> > > 
> > > Adds support for setting the genalloc pool's minimum allocation
> > > order via DT or platform data. The allocation order is optional
> > > for both the DT property and platform data case. If it is not
> > > present then the order defaults to PAGE_SHIFT to preserve the
> > > current behavior.
> > > 
> > > Signed-off-by: Matt Porter <mporter-l0cyMroinI0@public.gmane.org>
> > > Signed-off-by: Philipp Zabel <p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
> > > ---
> > >  Documentation/devicetree/bindings/misc/sram.txt |   12 ++++++++++-
> > >  drivers/misc/sram.c                             |   14 ++++++++++++-
> > >  include/linux/platform_data/sram.h              |   25 +++++++++++++++++++++++
> > >  3 files changed, 49 insertions(+), 2 deletions(-)
> > >  create mode 100644 include/linux/platform_data/sram.h
> > > 
> > > diff --git a/Documentation/devicetree/bindings/misc/sram.txt b/Documentation/devicetree/bindings/misc/sram.txt
> > > index b64136c..b1705ec 100644
> > > --- a/Documentation/devicetree/bindings/misc/sram.txt
> > > +++ b/Documentation/devicetree/bindings/misc/sram.txt
> > > @@ -8,10 +8,20 @@ Required properties:
> > >  
> > >  - reg : SRAM iomem address range
> > >  
> > > -Example:
> > > +Optional properties:
> > > +
> > > +- alloc-order : Minimum allocation order for the SRAM pool
> > 
> > Looks okay, but I think the property name is confusing. I for one had
> > no idea what 'order' would be and why it was important. I had to read
> > the code to figure it out.
> > 
> > It does raise the question though of what is this binding actually
> > for? Does it reflect a limitation of the SRAM? or of the hardware using
> > the SRAM? Or is it an optimization? How do you expect to use it?
> 
> If I am not mistaken, it is about the expected use case. A driver
> allocating many small buffers would quickly fill small SRAMs if the
> allocations were of PAGE_SIZE granularity.
> 
> I wonder if a common allocation size (say, 512 bytes instead of
> PAGE_SIZE) can be found that every prospective user could be reasonably
> happy with?

Unfortunately, no, 512 bytes doesn't work either. Although it'll meet
the needs of converting davinci to this driver, I have a driver under
development (the 6502 remoteproc) which needs finer grained allocation
of SRAM yet. I suspect people will object if the default is 32 bytes as
that bloats the genalloc bitmap for all users...however that's a size
that would work for me. Another possibility is to not do the
gen_pool_create() at probe time but rather provide an interface for client
drivers where the pool is created with the appropriate client-specific
parameters. This may be a bit messy though when the point of the pool is
to share it amongst several client drivers.

> > Assuming it is appropriate to put into the device tree, I'd suggest a
> > different name. Instead of 'order', how about 'sram-alloc-align' (in
> > address bits) or 'sram-alloc-min-size' (in bytes).
> 
> A size in bytes would be the most obvious to me, although that allows to
> enter values that are not a power of two.

I think the implication is that this isn't even a h/w characteristic of
SRAM and, as such, does not belong in a DT binding (for that reason I
don't mind seeing that it's been dropped in v6). It's unfortunate since
it's otherwise a very clean solution. I sure wish I had a "Software
Tree" I could pass in too. ;)

-Matt

WARNING: multiple messages have this Message-ID (diff)
From: Matt Porter <mporter@ti.com>
To: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Grant Likely <grant.likely@secretlab.ca>,
	linux-kernel@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Rob Herring <rob.herring@calxeda.com>,
	Paul Gortmaker <paul.gortmaker@windriver.com>,
	Shawn Guo <shawn.guo@linaro.org>,
	Richard Zhao <richard.zhao@freescale.com>,
	Huang Shijie <shijie8@gmail.com>,
	Dong Aisheng <dong.aisheng@linaro.org>,
	kernel@pengutronix.de, devicetree-discuss@lists.ozlabs.org
Subject: Re: [PATCH v5 4/4] misc: sram: add support for configurable allocation order
Date: Fri, 16 Nov 2012 09:09:12 -0500	[thread overview]
Message-ID: <20121116140912.GB20006@beef> (raw)
In-Reply-To: <1352985095.2399.184.camel@pizza.hi.pengutronix.de>

On Thu, Nov 15, 2012 at 02:11:35PM +0100, Philipp Zabel wrote:
> Am Mittwoch, den 14.11.2012, 19:15 +0000 schrieb Grant Likely:
> > On Thu, 18 Oct 2012 16:27:33 +0200, Philipp Zabel <p.zabel@pengutronix.de> wrote:
> > > From: Matt Porter <mporter@ti.com>
> > > 
> > > Adds support for setting the genalloc pool's minimum allocation
> > > order via DT or platform data. The allocation order is optional
> > > for both the DT property and platform data case. If it is not
> > > present then the order defaults to PAGE_SHIFT to preserve the
> > > current behavior.
> > > 
> > > Signed-off-by: Matt Porter <mporter@ti.com>
> > > Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
> > > ---
> > >  Documentation/devicetree/bindings/misc/sram.txt |   12 ++++++++++-
> > >  drivers/misc/sram.c                             |   14 ++++++++++++-
> > >  include/linux/platform_data/sram.h              |   25 +++++++++++++++++++++++
> > >  3 files changed, 49 insertions(+), 2 deletions(-)
> > >  create mode 100644 include/linux/platform_data/sram.h
> > > 
> > > diff --git a/Documentation/devicetree/bindings/misc/sram.txt b/Documentation/devicetree/bindings/misc/sram.txt
> > > index b64136c..b1705ec 100644
> > > --- a/Documentation/devicetree/bindings/misc/sram.txt
> > > +++ b/Documentation/devicetree/bindings/misc/sram.txt
> > > @@ -8,10 +8,20 @@ Required properties:
> > >  
> > >  - reg : SRAM iomem address range
> > >  
> > > -Example:
> > > +Optional properties:
> > > +
> > > +- alloc-order : Minimum allocation order for the SRAM pool
> > 
> > Looks okay, but I think the property name is confusing. I for one had
> > no idea what 'order' would be and why it was important. I had to read
> > the code to figure it out.
> > 
> > It does raise the question though of what is this binding actually
> > for? Does it reflect a limitation of the SRAM? or of the hardware using
> > the SRAM? Or is it an optimization? How do you expect to use it?
> 
> If I am not mistaken, it is about the expected use case. A driver
> allocating many small buffers would quickly fill small SRAMs if the
> allocations were of PAGE_SIZE granularity.
> 
> I wonder if a common allocation size (say, 512 bytes instead of
> PAGE_SIZE) can be found that every prospective user could be reasonably
> happy with?

Unfortunately, no, 512 bytes doesn't work either. Although it'll meet
the needs of converting davinci to this driver, I have a driver under
development (the 6502 remoteproc) which needs finer grained allocation
of SRAM yet. I suspect people will object if the default is 32 bytes as
that bloats the genalloc bitmap for all users...however that's a size
that would work for me. Another possibility is to not do the
gen_pool_create() at probe time but rather provide an interface for client
drivers where the pool is created with the appropriate client-specific
parameters. This may be a bit messy though when the point of the pool is
to share it amongst several client drivers.

> > Assuming it is appropriate to put into the device tree, I'd suggest a
> > different name. Instead of 'order', how about 'sram-alloc-align' (in
> > address bits) or 'sram-alloc-min-size' (in bytes).
> 
> A size in bytes would be the most obvious to me, although that allows to
> enter values that are not a power of two.

I think the implication is that this isn't even a h/w characteristic of
SRAM and, as such, does not belong in a DT binding (for that reason I
don't mind seeing that it's been dropped in v6). It's unfortunate since
it's otherwise a very clean solution. I sure wish I had a "Software
Tree" I could pass in too. ;)

-Matt

  parent reply	other threads:[~2012-11-16 14:09 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-18 14:27 [PATCH v5 0/4] Add generic driver for on-chip SRAM Philipp Zabel
2012-10-18 14:27 ` [PATCH v5 1/4] genalloc: add a global pool list, allow to find pools by phys address Philipp Zabel
2012-10-25 18:56   ` Greg Kroah-Hartman
     [not found]   ` <1350570453-24546-2-git-send-email-p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2012-10-26 19:46     ` Paul Gortmaker
2012-10-26 19:46       ` Paul Gortmaker
2012-11-15 13:25       ` Philipp Zabel
     [not found]         ` <1352985943.2399.198.camel-/rZezPiN1rtR6QfukMTsflXZhhPuCNm+@public.gmane.org>
2012-11-16  1:50           ` Paul Gortmaker
2012-10-18 14:27 ` [PATCH v5 2/4] misc: Generic on-chip SRAM allocation driver Philipp Zabel
2012-10-26 16:07   ` Paul Gortmaker
2012-10-29 12:20     ` Philipp Zabel
     [not found]       ` <1351513256.5872.103.camel-/rZezPiN1rtR6QfukMTsflXZhhPuCNm+@public.gmane.org>
2012-11-06 18:43         ` Paul Gortmaker
2012-11-06 18:43           ` Paul Gortmaker
2012-10-18 14:27 ` [PATCH v5 3/4] misc: sram: Add optional clock Philipp Zabel
2012-10-26 15:18   ` Paul Gortmaker
2012-10-29 12:20     ` Philipp Zabel
2012-10-26 16:17   ` Paul Gortmaker
2012-10-29 12:20     ` Philipp Zabel
     [not found]       ` <1351513257.5872.104.camel-/rZezPiN1rtR6QfukMTsflXZhhPuCNm+@public.gmane.org>
2012-11-06 18:28         ` Paul Gortmaker
2012-11-06 18:28           ` Paul Gortmaker
2012-10-18 14:27 ` [PATCH v5 4/4] misc: sram: add support for configurable allocation order Philipp Zabel
2012-11-14 19:15   ` Grant Likely
2012-11-14 19:15     ` Grant Likely
2012-11-15 13:11     ` Philipp Zabel
2012-11-15 16:52       ` Grant Likely
     [not found]       ` <1352985095.2399.184.camel-/rZezPiN1rtR6QfukMTsflXZhhPuCNm+@public.gmane.org>
2012-11-16 14:09         ` Matt Porter [this message]
2012-11-16 14:09           ` Matt Porter
2012-11-16 14:11           ` Grant Likely
2012-11-16 15:58           ` Philipp Zabel

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=20121116140912.GB20006@beef \
    --to=mporter-l0cymroini0@public.gmane.org \
    --cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
    --cc=dong.aisheng-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
    --cc=kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
    --cc=paul.gortmaker-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org \
    --cc=richard.zhao-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
    --cc=rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org \
    --cc=shijie8-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.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.