All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Jordan Crouse <jcrouse@codeaurora.org>
Cc: Zach Pfeffer <zach.pfeffer@linaro.org>,
	linux-arm-kernel@lists.infradead.org,
	Daniel Walker <dwalker@codeaurora.org>,
	Daniel Stone <daniels@collabora.com>,
	linux-mm@kvack.org, Mel Gorman <mel@csn.ul.ie>,
	linux-kernel@vger.kernel.org,
	Michal Nazarewicz <mina86@mina86.com>,
	linaro-mm-sig@lists.linaro.org,
	Jesse Barker <jesse.barker@linaro.org>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	Ankita Garg <ankita@in.ibm.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	linux-media@vger.kernel.org
Subject: Re: [Linaro-mm-sig] [PATCH 08/10] mm: cma: Contiguous  Memory	Allocator added
Date: Wed, 15 Jun 2011 13:27:32 +0200	[thread overview]
Message-ID: <201106151327.32226.arnd@arndb.de> (raw)
In-Reply-To: <4DF7CC22.6050602@codeaurora.org>

On Tuesday 14 June 2011, Jordan Crouse wrote:
> 
> On 06/14/2011 02:42 PM, Arnd Bergmann wrote:
> > On Tuesday 14 June 2011 20:58:25 Zach Pfeffer wrote:
> >> I've seen this split bank allocation in Qualcomm and TI SoCs, with
> >> Samsung, that makes 3 major SoC vendors (I would be surprised if
> >> Nvidia didn't also need to do this) - so I think some configurable
> >> method to control allocations is necessarily. The chips can't do
> >> decode without it (and by can't do I mean 1080P and higher decode is
> >> not functionally useful). Far from special, this would appear to be
> >> the default.
> >
> > Thanks for the insight, that's a much better argument than 'something
> > may need it'. Are those all chips without an IOMMU or do we also
> > need to solve the IOMMU case with split bank allocation?
> 
> Yes. The IOMMU case with split bank allocation is key, especially for shared
> buffers. Consider the case where video is using a certain bank for performance
> purposes and that frame is shared with the GPU.

Could we use the non-uniform memory access (NUMA) code for this? That code
does more than what we've been talking about, and we're currently thinking
only of a degenerate case (one CPU node with multiple memory nodes), but my
feeling is that we can still build on top of it.

The NUMA code can describe relations between different areas of memory
and how they interact with devices and processes, so you can attach a
device to a specific node and have all allocations done from there.
You can also set policy in user space, e.g. to have a video decoder
process running on the bank that is not used by the GPU.

In the DMA mapping API, that would mean we add another dma_attr to
dma_alloc_* that lets you pass a node identifier.

	Arnd

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de>
To: Jordan Crouse <jcrouse@codeaurora.org>
Cc: Zach Pfeffer <zach.pfeffer@linaro.org>,
	linux-arm-kernel@lists.infradead.org,
	Daniel Walker <dwalker@codeaurora.org>,
	Daniel Stone <daniels@collabora.com>,
	linux-mm@kvack.org, Mel Gorman <mel@csn.ul.ie>,
	linux-kernel@vger.kernel.org,
	Michal Nazarewicz <mina86@mina86.com>,
	linaro-mm-sig@lists.linaro.org,
	Jesse Barker <jesse.barker@linaro.org>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	Ankita Garg <ankita@in.ibm.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	linux-media@vger.kernel.org
Subject: Re: [Linaro-mm-sig] [PATCH 08/10] mm: cma: Contiguous Memory	Allocator added
Date: Wed, 15 Jun 2011 13:27:32 +0200	[thread overview]
Message-ID: <201106151327.32226.arnd@arndb.de> (raw)
In-Reply-To: <4DF7CC22.6050602@codeaurora.org>

On Tuesday 14 June 2011, Jordan Crouse wrote:
> 
> On 06/14/2011 02:42 PM, Arnd Bergmann wrote:
> > On Tuesday 14 June 2011 20:58:25 Zach Pfeffer wrote:
> >> I've seen this split bank allocation in Qualcomm and TI SoCs, with
> >> Samsung, that makes 3 major SoC vendors (I would be surprised if
> >> Nvidia didn't also need to do this) - so I think some configurable
> >> method to control allocations is necessarily. The chips can't do
> >> decode without it (and by can't do I mean 1080P and higher decode is
> >> not functionally useful). Far from special, this would appear to be
> >> the default.
> >
> > Thanks for the insight, that's a much better argument than 'something
> > may need it'. Are those all chips without an IOMMU or do we also
> > need to solve the IOMMU case with split bank allocation?
> 
> Yes. The IOMMU case with split bank allocation is key, especially for shared
> buffers. Consider the case where video is using a certain bank for performance
> purposes and that frame is shared with the GPU.

Could we use the non-uniform memory access (NUMA) code for this? That code
does more than what we've been talking about, and we're currently thinking
only of a degenerate case (one CPU node with multiple memory nodes), but my
feeling is that we can still build on top of it.

The NUMA code can describe relations between different areas of memory
and how they interact with devices and processes, so you can attach a
device to a specific node and have all allocations done from there.
You can also set policy in user space, e.g. to have a video decoder
process running on the bank that is not used by the GPU.

In the DMA mapping API, that would mean we add another dma_attr to
dma_alloc_* that lets you pass a node identifier.

	Arnd

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de>
To: Jordan Crouse <jcrouse@codeaurora.org>
Cc: Zach Pfeffer <zach.pfeffer@linaro.org>,
	linux-arm-kernel@lists.infradead.org,
	Daniel Walker <dwalker@codeaurora.org>,
	Daniel Stone <daniels@collabora.com>,
	linux-mm@kvack.org, Mel Gorman <mel@csn.ul.ie>,
	linux-kernel@vger.kernel.org,
	Michal Nazarewicz <mina86@mina86.com>,
	linaro-mm-sig@lists.linaro.org,
	Jesse Barker <jesse.barker@linaro.org>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	Ankita Garg <ankita@in.ibm.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	linux-media@vger.kernel.org
Subject: Re: [Linaro-mm-sig] [PATCH 08/10] mm: cma: Contiguous Memory	Allocator added
Date: Wed, 15 Jun 2011 13:27:32 +0200	[thread overview]
Message-ID: <201106151327.32226.arnd@arndb.de> (raw)
In-Reply-To: <4DF7CC22.6050602@codeaurora.org>

On Tuesday 14 June 2011, Jordan Crouse wrote:
> 
> On 06/14/2011 02:42 PM, Arnd Bergmann wrote:
> > On Tuesday 14 June 2011 20:58:25 Zach Pfeffer wrote:
> >> I've seen this split bank allocation in Qualcomm and TI SoCs, with
> >> Samsung, that makes 3 major SoC vendors (I would be surprised if
> >> Nvidia didn't also need to do this) - so I think some configurable
> >> method to control allocations is necessarily. The chips can't do
> >> decode without it (and by can't do I mean 1080P and higher decode is
> >> not functionally useful). Far from special, this would appear to be
> >> the default.
> >
> > Thanks for the insight, that's a much better argument than 'something
> > may need it'. Are those all chips without an IOMMU or do we also
> > need to solve the IOMMU case with split bank allocation?
> 
> Yes. The IOMMU case with split bank allocation is key, especially for shared
> buffers. Consider the case where video is using a certain bank for performance
> purposes and that frame is shared with the GPU.

Could we use the non-uniform memory access (NUMA) code for this? That code
does more than what we've been talking about, and we're currently thinking
only of a degenerate case (one CPU node with multiple memory nodes), but my
feeling is that we can still build on top of it.

The NUMA code can describe relations between different areas of memory
and how they interact with devices and processes, so you can attach a
device to a specific node and have all allocations done from there.
You can also set policy in user space, e.g. to have a video decoder
process running on the bank that is not used by the GPU.

In the DMA mapping API, that would mean we add another dma_attr to
dma_alloc_* that lets you pass a node identifier.

	Arnd

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

WARNING: multiple messages have this Message-ID (diff)
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [Linaro-mm-sig] [PATCH 08/10] mm: cma: Contiguous Memory	Allocator added
Date: Wed, 15 Jun 2011 13:27:32 +0200	[thread overview]
Message-ID: <201106151327.32226.arnd@arndb.de> (raw)
In-Reply-To: <4DF7CC22.6050602@codeaurora.org>

On Tuesday 14 June 2011, Jordan Crouse wrote:
> 
> On 06/14/2011 02:42 PM, Arnd Bergmann wrote:
> > On Tuesday 14 June 2011 20:58:25 Zach Pfeffer wrote:
> >> I've seen this split bank allocation in Qualcomm and TI SoCs, with
> >> Samsung, that makes 3 major SoC vendors (I would be surprised if
> >> Nvidia didn't also need to do this) - so I think some configurable
> >> method to control allocations is necessarily. The chips can't do
> >> decode without it (and by can't do I mean 1080P and higher decode is
> >> not functionally useful). Far from special, this would appear to be
> >> the default.
> >
> > Thanks for the insight, that's a much better argument than 'something
> > may need it'. Are those all chips without an IOMMU or do we also
> > need to solve the IOMMU case with split bank allocation?
> 
> Yes. The IOMMU case with split bank allocation is key, especially for shared
> buffers. Consider the case where video is using a certain bank for performance
> purposes and that frame is shared with the GPU.

Could we use the non-uniform memory access (NUMA) code for this? That code
does more than what we've been talking about, and we're currently thinking
only of a degenerate case (one CPU node with multiple memory nodes), but my
feeling is that we can still build on top of it.

The NUMA code can describe relations between different areas of memory
and how they interact with devices and processes, so you can attach a
device to a specific node and have all allocations done from there.
You can also set policy in user space, e.g. to have a video decoder
process running on the bank that is not used by the GPU.

In the DMA mapping API, that would mean we add another dma_attr to
dma_alloc_* that lets you pass a node identifier.

	Arnd

  reply	other threads:[~2011-06-15 11:28 UTC|newest]

Thread overview: 178+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-10  9:54 [PATCHv10 0/10] Contiguous Memory Allocator Marek Szyprowski
2011-06-10  9:54 ` Marek Szyprowski
2011-06-10  9:54 ` Marek Szyprowski
2011-06-10  9:54 ` [PATCH 01/10] lib: bitmap: Added alignment offset for bitmap_find_next_zero_area() Marek Szyprowski
2011-06-10  9:54   ` Marek Szyprowski
2011-06-10  9:54   ` Marek Szyprowski
2011-06-10  9:54 ` [PATCH 02/10] lib: genalloc: Generic allocator improvements Marek Szyprowski
2011-06-10  9:54   ` Marek Szyprowski
2011-06-10  9:54   ` Marek Szyprowski
2011-06-10 11:24   ` Alan Cox
2011-06-10 11:24     ` Alan Cox
2011-06-10 11:24     ` Alan Cox
2011-06-10 12:22     ` Marek Szyprowski
2011-06-10 12:22       ` Marek Szyprowski
2011-06-10 12:22       ` Marek Szyprowski
2011-06-10 12:52       ` Alan Cox
2011-06-10 12:52         ` Alan Cox
2011-06-10 12:52         ` Alan Cox
2011-06-10 17:16         ` Michal Nazarewicz
2011-06-10 17:16           ` Michal Nazarewicz
2011-06-10 17:16           ` Michal Nazarewicz
2011-06-14 15:49         ` [Linaro-mm-sig] " Jordan Crouse
2011-06-14 15:49           ` Jordan Crouse
2011-06-14 15:49           ` Jordan Crouse
2011-06-10  9:54 ` [PATCH 03/10] mm: move some functions from memory_hotplug.c to page_isolation.c Marek Szyprowski
2011-06-10  9:54   ` Marek Szyprowski
2011-06-10  9:54   ` Marek Szyprowski
2011-06-10  9:54 ` [PATCH 04/10] mm: alloc_contig_freed_pages() added Marek Szyprowski
2011-06-10  9:54   ` Marek Szyprowski
2011-06-10  9:54   ` Marek Szyprowski
2011-06-10  9:54 ` [PATCH 05/10] mm: alloc_contig_range() added Marek Szyprowski
2011-06-10  9:54   ` Marek Szyprowski
2011-06-10  9:54   ` Marek Szyprowski
2011-06-10  9:54 ` [PATCH 06/10] mm: MIGRATE_CMA migration type added Marek Szyprowski
2011-06-10  9:54   ` Marek Szyprowski
2011-06-10  9:54   ` Marek Szyprowski
2011-06-10  9:54 ` [PATCH 07/10] mm: MIGRATE_CMA isolation functions added Marek Szyprowski
2011-06-10  9:54   ` Marek Szyprowski
2011-06-10  9:54   ` Marek Szyprowski
2011-06-10  9:54 ` [PATCH 08/10] mm: cma: Contiguous Memory Allocator added Marek Szyprowski
2011-06-10  9:54   ` Marek Szyprowski
2011-06-10  9:54   ` Marek Szyprowski
2011-06-10 16:21   ` Arnd Bergmann
2011-06-10 16:21     ` Arnd Bergmann
2011-06-10 16:21     ` Arnd Bergmann
2011-06-13  9:05     ` Marek Szyprowski
2011-06-13  9:05       ` Marek Szyprowski
2011-06-13  9:05       ` Marek Szyprowski
2011-06-14 13:49       ` Arnd Bergmann
2011-06-14 13:49         ` Arnd Bergmann
2011-06-14 13:49         ` Arnd Bergmann
2011-06-14 13:55         ` Michal Nazarewicz
2011-06-14 13:55           ` Michal Nazarewicz
2011-06-14 13:55           ` Michal Nazarewicz
2011-06-14 16:03           ` Arnd Bergmann
2011-06-14 16:03             ` Arnd Bergmann
2011-06-14 16:03             ` Arnd Bergmann
2011-06-14 16:58             ` Michal Nazarewicz
2011-06-14 16:58               ` Michal Nazarewicz
2011-06-14 16:58               ` Michal Nazarewicz
2011-06-14 18:30               ` Arnd Bergmann
2011-06-14 18:30                 ` Arnd Bergmann
2011-06-14 18:30                 ` Arnd Bergmann
2011-06-14 18:40                 ` Michal Nazarewicz
2011-06-14 18:40                   ` Michal Nazarewicz
2011-06-14 18:40                   ` Michal Nazarewicz
2011-06-15  7:11                 ` Marek Szyprowski
2011-06-15  7:11                   ` Marek Szyprowski
2011-06-15  7:11                   ` Marek Szyprowski
2011-06-15  7:37                   ` Arnd Bergmann
2011-06-15  7:37                     ` Arnd Bergmann
2011-06-15  7:37                     ` Arnd Bergmann
2011-06-15  8:14                     ` Marek Szyprowski
2011-06-15  8:14                       ` Marek Szyprowski
2011-06-15  8:14                       ` Marek Szyprowski
2011-06-16  0:48                     ` [Linaro-mm-sig] " Philip Balister
2011-06-16  0:48                       ` Philip Balister
2011-06-16  0:48                       ` Philip Balister
2011-06-16  7:03                       ` Arnd Bergmann
2011-06-16  7:03                         ` Arnd Bergmann
2011-06-16  7:03                         ` Arnd Bergmann
2011-06-16  7:03                         ` Arnd Bergmann
2011-06-22  7:03                     ` Hans Verkuil
2011-06-22  7:03                       ` Hans Verkuil
2011-06-22  7:03                       ` Hans Verkuil
2011-06-22  7:32                       ` Michal Nazarewicz
2011-06-22  7:32                         ` Michal Nazarewicz
2011-06-22  7:32                         ` Michal Nazarewicz
2011-06-22 12:42                       ` Arnd Bergmann
2011-06-22 12:42                         ` Arnd Bergmann
2011-06-22 12:42                         ` Arnd Bergmann
2011-06-22 13:15                         ` Marek Szyprowski
2011-06-22 13:15                           ` Marek Szyprowski
2011-06-22 13:15                           ` Marek Szyprowski
2011-06-22 13:39                           ` Arnd Bergmann
2011-06-22 13:39                             ` Arnd Bergmann
2011-06-22 13:39                             ` Arnd Bergmann
2011-06-22 13:39                             ` Arnd Bergmann
2011-06-22 16:04                             ` Michal Nazarewicz
2011-06-22 16:04                               ` Michal Nazarewicz
2011-06-22 16:04                               ` Michal Nazarewicz
2011-06-22 15:54                           ` Michal Nazarewicz
2011-06-22 15:54                             ` Michal Nazarewicz
2011-06-22 15:54                             ` Michal Nazarewicz
2011-06-15 11:53                 ` Daniel Vetter
2011-06-15 11:53                   ` Daniel Vetter
2011-06-15 11:53                   ` Daniel Vetter
2011-06-15 13:12                   ` Thomas Hellstrom
2011-06-15 13:12                     ` Thomas Hellstrom
2011-06-15 13:12                     ` Thomas Hellstrom
2011-06-17 16:08                   ` Arnd Bergmann
2011-06-17 16:08                     ` Arnd Bergmann
2011-06-17 16:08                     ` Arnd Bergmann
2011-06-14 17:01             ` Daniel Stone
2011-06-14 17:01               ` Daniel Stone
2011-06-14 17:01               ` Daniel Stone
2011-06-14 18:58               ` Zach Pfeffer
2011-06-14 18:58                 ` Zach Pfeffer
2011-06-14 18:58                 ` Zach Pfeffer
2011-06-14 20:42                 ` Arnd Bergmann
2011-06-14 20:42                   ` Arnd Bergmann
2011-06-14 20:42                   ` Arnd Bergmann
2011-06-14 21:01                   ` Jordan Crouse
2011-06-14 21:01                     ` Jordan Crouse
2011-06-14 21:01                     ` Jordan Crouse
2011-06-15 11:27                     ` Arnd Bergmann [this message]
2011-06-15 11:27                       ` Arnd Bergmann
2011-06-15 11:27                       ` Arnd Bergmann
2011-06-15 11:27                       ` Arnd Bergmann
2011-06-15  6:29                   ` Subash Patel
2011-06-15  8:36                   ` Marek Szyprowski
2011-06-15  8:36                     ` Marek Szyprowski
2011-06-15  8:36                     ` Marek Szyprowski
2011-06-15 21:39                     ` Larry Bassel
2011-06-15 21:39                       ` Larry Bassel
2011-06-15 21:39                       ` Larry Bassel
2011-06-15 22:06                       ` Arnd Bergmann
2011-06-15 22:06                         ` Arnd Bergmann
2011-06-15 22:06                         ` Arnd Bergmann
2011-06-16 17:01                         ` Larry Bassel
2011-06-16 17:01                           ` Larry Bassel
2011-06-16 17:01                           ` Larry Bassel
2011-06-17 12:45                           ` Arnd Bergmann
2011-06-17 12:45                             ` Arnd Bergmann
2011-06-17 12:45                             ` Arnd Bergmann
2011-07-04  5:25                         ` Ankita Garg
2011-07-04  5:25                           ` Ankita Garg
2011-07-04  5:25                           ` Ankita Garg
2011-07-04 14:45                           ` Arnd Bergmann
2011-07-04 14:45                             ` Arnd Bergmann
2011-07-04 14:45                             ` Arnd Bergmann
2011-06-16  3:20                       ` Zach Pfeffer
2011-06-16  3:20                         ` Zach Pfeffer
2011-06-16  3:20                         ` Zach Pfeffer
2011-06-15  9:26                   ` Michal Nazarewicz
2011-06-15  9:26                     ` Michal Nazarewicz
2011-06-15  9:26                     ` Michal Nazarewicz
2011-06-15 11:20                     ` Arnd Bergmann
2011-06-15 11:20                       ` Arnd Bergmann
2011-06-15 11:20                       ` Arnd Bergmann
2011-06-15 11:30                       ` Michal Nazarewicz
2011-06-15 11:30                         ` Michal Nazarewicz
2011-06-15 11:30                         ` Michal Nazarewicz
2011-06-15  6:01             ` Subash Patel
2011-06-15  6:01               ` Subash Patel
2011-06-15  6:01               ` Subash Patel
2011-06-15  8:02         ` Marek Szyprowski
2011-06-15  8:02           ` Marek Szyprowski
2011-06-15  8:02           ` Marek Szyprowski
2011-06-15 11:14           ` Arnd Bergmann
2011-06-15 11:14             ` Arnd Bergmann
2011-06-15 11:14             ` Arnd Bergmann
2011-06-10  9:54 ` [PATCH 09/10] ARM: integrate CMA with dma-mapping subsystem Marek Szyprowski
2011-06-10  9:54   ` Marek Szyprowski
2011-06-10  9:54   ` Marek Szyprowski
2011-06-10  9:54 ` [PATCH 10/10] ARM: S5PV210: add CMA support for FIMC devices on Aquila board Marek Szyprowski
2011-06-10  9:54   ` Marek Szyprowski
2011-06-10  9:54   ` Marek Szyprowski

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=201106151327.32226.arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=akpm@linux-foundation.org \
    --cc=ankita@in.ibm.com \
    --cc=daniels@collabora.com \
    --cc=dwalker@codeaurora.org \
    --cc=jcrouse@codeaurora.org \
    --cc=jesse.barker@linaro.org \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=kyungmin.park@samsung.com \
    --cc=linaro-mm-sig@lists.linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mel@csn.ul.ie \
    --cc=mina86@mina86.com \
    --cc=zach.pfeffer@linaro.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.