All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 1/2] omap3: iovmm: Work around sg_alloc_table size limitation in IOMMU
Date: Wed, 1 Jun 2011 15:50:50 +0200	[thread overview]
Message-ID: <201106011550.50873.laurent.pinchart@ideasonboard.com> (raw)
In-Reply-To: <20110601134338.GB6700@n2100.arm.linux.org.uk>

Hi Russell,

On Wednesday 01 June 2011 15:43:38 Russell King - ARM Linux wrote:
> On Wed, Jun 01, 2011 at 03:30:11PM +0200, Laurent Pinchart wrote:
> > sg_alloc_table can only allocate multi-page scatter-gather list tables
> > if the architecture supports scatter-gather lists chaining. ARM doesn't
> > fit in that category.
> 
> Let's fix this properly, as I've said countless times and so far no one
> has bothered to sort this out:
> 
> 8<----
> From: Russell King <rmk+kernel@arm.linux.org.uk>
> Subject: ARM: Allow SoCs to enable scatterlist chaining
> 
> Allow SoCs to enable the scatterlist chaining support, which allows
> scatterlist tables to be broken up into smaller allocations.
> 
> As support for this feature depends on the implementation details of
> the users of the scatterlists, we can't enable this globally without
> auditing all the users, which is a very big task.  Instead, let SoCs
> progressively switch over to using this.
> 
> SoC drivers using scatterlists and SoC DMA implementations need
> auditing before this option can be enabled for the SoC.

In the specific iovmm case, the driver uses the sglist API to build a list of 
page-size sg entries, and then process it in software. Is that considered as 
an abuse of the sglist API, or valid usage ?

Anyway, sglist chaining is not needed by iovmm. As iovmm just walks the sglist 
manually, it's easier to allocate it in one go rather than using sglist 
chaining. This of course doesn't make your patch unneeded or wrong.

> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
> ---
>  arch/arm/Kconfig                   |    3 +++
>  arch/arm/include/asm/scatterlist.h |    4 ++++
>  2 files changed, 7 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 9adc278..cc0dcbf 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -37,6 +37,9 @@ config ARM
>  	  Europe.  There is an ARM Linux project with a web page at
>  	  <http://www.arm.linux.org.uk/>.
> 
> +config ARM_HAS_SG_CHAIN
> +	bool
> +
>  config HAVE_PWM
>  	bool
> 
> diff --git a/arch/arm/include/asm/scatterlist.h
> b/arch/arm/include/asm/scatterlist.h index 2f87870..cefdb8f 100644
> --- a/arch/arm/include/asm/scatterlist.h
> +++ b/arch/arm/include/asm/scatterlist.h
> @@ -1,6 +1,10 @@
>  #ifndef _ASMARM_SCATTERLIST_H
>  #define _ASMARM_SCATTERLIST_H
> 
> +#ifdef CONFIG_ARM_HAS_SG_CHAIN
> +#define ARCH_HAS_SG_CHAIN
> +#endif
> +
>  #include <asm/memory.h>
>  #include <asm/types.h>
>  #include <asm-generic/scatterlist.h>

-- 
Regards,

Laurent Pinchart

WARNING: multiple messages have this Message-ID (diff)
From: laurent.pinchart@ideasonboard.com (Laurent Pinchart)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 1/2] omap3: iovmm: Work around sg_alloc_table size limitation in IOMMU
Date: Wed, 1 Jun 2011 15:50:50 +0200	[thread overview]
Message-ID: <201106011550.50873.laurent.pinchart@ideasonboard.com> (raw)
In-Reply-To: <20110601134338.GB6700@n2100.arm.linux.org.uk>

Hi Russell,

On Wednesday 01 June 2011 15:43:38 Russell King - ARM Linux wrote:
> On Wed, Jun 01, 2011 at 03:30:11PM +0200, Laurent Pinchart wrote:
> > sg_alloc_table can only allocate multi-page scatter-gather list tables
> > if the architecture supports scatter-gather lists chaining. ARM doesn't
> > fit in that category.
> 
> Let's fix this properly, as I've said countless times and so far no one
> has bothered to sort this out:
> 
> 8<----
> From: Russell King <rmk+kernel@arm.linux.org.uk>
> Subject: ARM: Allow SoCs to enable scatterlist chaining
> 
> Allow SoCs to enable the scatterlist chaining support, which allows
> scatterlist tables to be broken up into smaller allocations.
> 
> As support for this feature depends on the implementation details of
> the users of the scatterlists, we can't enable this globally without
> auditing all the users, which is a very big task.  Instead, let SoCs
> progressively switch over to using this.
> 
> SoC drivers using scatterlists and SoC DMA implementations need
> auditing before this option can be enabled for the SoC.

In the specific iovmm case, the driver uses the sglist API to build a list of 
page-size sg entries, and then process it in software. Is that considered as 
an abuse of the sglist API, or valid usage ?

Anyway, sglist chaining is not needed by iovmm. As iovmm just walks the sglist 
manually, it's easier to allocate it in one go rather than using sglist 
chaining. This of course doesn't make your patch unneeded or wrong.

> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
> ---
>  arch/arm/Kconfig                   |    3 +++
>  arch/arm/include/asm/scatterlist.h |    4 ++++
>  2 files changed, 7 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 9adc278..cc0dcbf 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -37,6 +37,9 @@ config ARM
>  	  Europe.  There is an ARM Linux project with a web page at
>  	  <http://www.arm.linux.org.uk/>.
> 
> +config ARM_HAS_SG_CHAIN
> +	bool
> +
>  config HAVE_PWM
>  	bool
> 
> diff --git a/arch/arm/include/asm/scatterlist.h
> b/arch/arm/include/asm/scatterlist.h index 2f87870..cefdb8f 100644
> --- a/arch/arm/include/asm/scatterlist.h
> +++ b/arch/arm/include/asm/scatterlist.h
> @@ -1,6 +1,10 @@
>  #ifndef _ASMARM_SCATTERLIST_H
>  #define _ASMARM_SCATTERLIST_H
> 
> +#ifdef CONFIG_ARM_HAS_SG_CHAIN
> +#define ARCH_HAS_SG_CHAIN
> +#endif
> +
>  #include <asm/memory.h>
>  #include <asm/types.h>
>  #include <asm-generic/scatterlist.h>

-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2011-06-01 13:50 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-30 12:47 [PATCH 0/2] OMAP3 IOMMU fixes Laurent Pinchart
2011-05-30 12:47 ` [PATCH 1/2] omap3: iovmm: Work around sg_alloc_table size limitation in IOMMU Laurent Pinchart
2011-05-31 13:22   ` Tony Lindgren
2011-06-01 12:25     ` [PATCH v2 " Laurent Pinchart
2011-06-01 13:11       ` Tony Lindgren
2011-06-01 12:25     ` [PATCH v2 2/2] omap3: iovmm: Support non page-aligned buffers in iommu_vmap Laurent Pinchart
2011-06-01 12:50       ` Tony Lindgren
2011-06-01 13:09         ` Laurent Pinchart
2011-06-01 13:10           ` Tony Lindgren
2011-06-01 13:17             ` Tony Lindgren
2011-06-01 13:30               ` [PATCH v3 1/2] omap3: iovmm: Work around sg_alloc_table size limitation in IOMMU Laurent Pinchart
2011-06-01 13:30                 ` Laurent Pinchart
2011-06-01 13:43                 ` Russell King - ARM Linux
2011-06-01 13:43                   ` Russell King - ARM Linux
2011-06-01 13:50                   ` Laurent Pinchart [this message]
2011-06-01 13:50                     ` Laurent Pinchart
2011-06-01 14:03                     ` Russell King - ARM Linux
2011-06-01 14:03                       ` Russell King - ARM Linux
2011-06-03  0:12                       ` Laurent Pinchart
2011-06-03  0:12                         ` Laurent Pinchart
2011-06-03  6:32                         ` Russell King - ARM Linux
2011-06-03  6:32                           ` Russell King - ARM Linux
2011-06-06 16:23                           ` Laurent Pinchart
2011-06-06 16:23                             ` Laurent Pinchart
2011-06-06 16:44                             ` Russell King - ARM Linux
2011-06-06 16:44                               ` Russell King - ARM Linux
2011-06-06 16:54                               ` Laurent Pinchart
2011-06-06 16:54                                 ` Laurent Pinchart
2011-06-06 18:00                                 ` Russell King - ARM Linux
2011-06-06 18:00                                   ` Russell King - ARM Linux
2011-06-08 10:33                                   ` Laurent Pinchart
2011-06-08 10:33                                     ` Laurent Pinchart
2011-06-03  9:39                         ` Felipe Contreras
2011-06-03  9:39                           ` Felipe Contreras
2011-06-01 13:30               ` [PATCH v3 2/2] omap3: iovmm: Support non page-aligned buffers in iommu_vmap Laurent Pinchart
2011-06-01 13:30                 ` Laurent Pinchart
2011-05-30 12:47 ` [PATCH " Laurent Pinchart
2011-05-30 13:16 ` [PATCH 0/2] OMAP3 IOMMU fixes Hiroshi DOYU
2011-06-08 10:48 ` Laurent Pinchart
2011-06-13 13:40   ` Tony Lindgren
2011-06-13 16:41     ` Laurent Pinchart
2011-06-13 19:34       ` Ohad Ben-Cohen

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=201106011550.50873.laurent.pinchart@ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    /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.