From: t.fujak@samsung.com (Tomasz Fujak)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv8 00/12] Contiguous Memory Allocator
Date: Thu, 23 Dec 2010 16:35:30 +0100 [thread overview]
Message-ID: <4D136C42.6090601@samsung.com> (raw)
In-Reply-To: <20101223142053.GN3636@n2100.arm.linux.org.uk>
On 2010-12-23 15:20, Russell King - ARM Linux wrote:
> On Thu, Dec 23, 2010 at 03:08:21PM +0100, Tomasz Fujak wrote:
>> On 2010-12-23 14:51, Russell King - ARM Linux wrote:
>>> On Thu, Dec 23, 2010 at 02:41:26PM +0100, Michal Nazarewicz wrote:
>>>> Russell King - ARM Linux <linux@arm.linux.org.uk> writes:
>>>>> Has anyone addressed my issue with it that this is wide-open for
>>>>> abuse by allocating large chunks of memory, and then remapping
>>>>> them in some way with different attributes, thereby violating the
>>>>> ARM architecture specification?
>>>>>
>>>>> In other words, do we _actually_ have a use for this which doesn't
>>>>> involve doing something like allocating 32MB of memory from it,
>>>>> remapping it so that it's DMA coherent, and then performing DMA
>>>>> on the resulting buffer?
>>>> Huge pages.
>>>>
>>>> Also, don't treat it as coherent memory and just flush/clear/invalidate
>>>> cache before and after each DMA transaction. I never understood what's
>>>> wrong with that approach.
>>> If you've ever used an ARM system with a VIVT cache, you'll know what's
>>> wrong with this approach.
>>>
>>> ARM systems with VIVT caches have extremely poor task switching
>>> performance because they flush the entire data cache at every task switch
>>> - to the extent that it makes system performance drop dramatically when
>>> they become loaded.
>>>
>>> Doing that for every DMA operation will kill the advantage we've gained
>>> from having VIPT caches and ASIDs stone dead.
>> This statement effectively means: don't map dma-able memory to the CPU
>> unless it's uncached. Have I missed anything?
> I'll give you another solution to the problem - lobby ARM Ltd to have
> this restriction lifted from the architecture specification, which
> will probably result in the speculative prefetching also having to be
> removed.
>
Isn't disabling Speculative Accesses forwarding to the AXI bus the
solution to our woes?
At least on the A8, which happens to be paired with non-IOMMU capable
IPs on our SoCs.
On A9 the bit is gone (or has it moved?), but we have IOMMU here so the
CMA isn't needed.
http://infocenter.arm.com/
Cortex-A8 Technical Reference Manual Revision: r3p2
3.2.26. c1, Auxiliary Control Register
CP15, c1, c0, bit 4: Enables speculative accesses on AXI
> That would be my preferred solution if I had the power to do so, but
> I have to live with what ARM Ltd (and their partners such as yourselves)
> decide should end up in the architecture specification.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
WARNING: multiple messages have this Message-ID (diff)
From: Tomasz Fujak <t.fujak@samsung.com>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: Michal Nazarewicz <mina86@mina86.com>,
Kyungmin Park <kmpark@infradead.org>,
linux-arm-kernel@lists.infradead.org,
Daniel Walker <dwalker@codeaurora.org>,
Johan MOSSBERG <johan.xx.mossberg@stericsson.com>,
Mel Gorman <mel@csn.ul.ie>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
Ankita Garg <ankita@in.ibm.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-media@vger.kernel.org,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
Marek Szyprowski <m.szyprowski@samsung.com>
Subject: Re: [PATCHv8 00/12] Contiguous Memory Allocator
Date: Thu, 23 Dec 2010 16:35:30 +0100 [thread overview]
Message-ID: <4D136C42.6090601@samsung.com> (raw)
In-Reply-To: <20101223142053.GN3636@n2100.arm.linux.org.uk>
On 2010-12-23 15:20, Russell King - ARM Linux wrote:
> On Thu, Dec 23, 2010 at 03:08:21PM +0100, Tomasz Fujak wrote:
>> On 2010-12-23 14:51, Russell King - ARM Linux wrote:
>>> On Thu, Dec 23, 2010 at 02:41:26PM +0100, Michal Nazarewicz wrote:
>>>> Russell King - ARM Linux <linux@arm.linux.org.uk> writes:
>>>>> Has anyone addressed my issue with it that this is wide-open for
>>>>> abuse by allocating large chunks of memory, and then remapping
>>>>> them in some way with different attributes, thereby violating the
>>>>> ARM architecture specification?
>>>>>
>>>>> In other words, do we _actually_ have a use for this which doesn't
>>>>> involve doing something like allocating 32MB of memory from it,
>>>>> remapping it so that it's DMA coherent, and then performing DMA
>>>>> on the resulting buffer?
>>>> Huge pages.
>>>>
>>>> Also, don't treat it as coherent memory and just flush/clear/invalidate
>>>> cache before and after each DMA transaction. I never understood what's
>>>> wrong with that approach.
>>> If you've ever used an ARM system with a VIVT cache, you'll know what's
>>> wrong with this approach.
>>>
>>> ARM systems with VIVT caches have extremely poor task switching
>>> performance because they flush the entire data cache at every task switch
>>> - to the extent that it makes system performance drop dramatically when
>>> they become loaded.
>>>
>>> Doing that for every DMA operation will kill the advantage we've gained
>>> from having VIPT caches and ASIDs stone dead.
>> This statement effectively means: don't map dma-able memory to the CPU
>> unless it's uncached. Have I missed anything?
> I'll give you another solution to the problem - lobby ARM Ltd to have
> this restriction lifted from the architecture specification, which
> will probably result in the speculative prefetching also having to be
> removed.
>
Isn't disabling Speculative Accesses forwarding to the AXI bus the
solution to our woes?
At least on the A8, which happens to be paired with non-IOMMU capable
IPs on our SoCs.
On A9 the bit is gone (or has it moved?), but we have IOMMU here so the
CMA isn't needed.
http://infocenter.arm.com/
Cortex-A8 Technical Reference Manual Revision: r3p2
3.2.26. c1, Auxiliary Control Register
CP15, c1, c0, bit 4: Enables speculative accesses on AXI
> That would be my preferred solution if I had the power to do so, but
> I have to live with what ARM Ltd (and their partners such as yourselves)
> decide should end up in the architecture specification.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
WARNING: multiple messages have this Message-ID (diff)
From: Tomasz Fujak <t.fujak@samsung.com>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: Michal Nazarewicz <mina86@mina86.com>,
Kyungmin Park <kmpark@infradead.org>,
linux-arm-kernel@lists.infradead.org,
Daniel Walker <dwalker@codeaurora.org>,
Johan MOSSBERG <johan.xx.mossberg@stericsson.com>,
Mel Gorman <mel@csn.ul.ie>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
Ankita Garg <ankita@in.ibm.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-media@vger.kernel.org,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
Marek Szyprowski <m.szyprowski@samsung.com>
Subject: Re: [PATCHv8 00/12] Contiguous Memory Allocator
Date: Thu, 23 Dec 2010 16:35:30 +0100 [thread overview]
Message-ID: <4D136C42.6090601@samsung.com> (raw)
In-Reply-To: <20101223142053.GN3636@n2100.arm.linux.org.uk>
On 2010-12-23 15:20, Russell King - ARM Linux wrote:
> On Thu, Dec 23, 2010 at 03:08:21PM +0100, Tomasz Fujak wrote:
>> On 2010-12-23 14:51, Russell King - ARM Linux wrote:
>>> On Thu, Dec 23, 2010 at 02:41:26PM +0100, Michal Nazarewicz wrote:
>>>> Russell King - ARM Linux <linux@arm.linux.org.uk> writes:
>>>>> Has anyone addressed my issue with it that this is wide-open for
>>>>> abuse by allocating large chunks of memory, and then remapping
>>>>> them in some way with different attributes, thereby violating the
>>>>> ARM architecture specification?
>>>>>
>>>>> In other words, do we _actually_ have a use for this which doesn't
>>>>> involve doing something like allocating 32MB of memory from it,
>>>>> remapping it so that it's DMA coherent, and then performing DMA
>>>>> on the resulting buffer?
>>>> Huge pages.
>>>>
>>>> Also, don't treat it as coherent memory and just flush/clear/invalidate
>>>> cache before and after each DMA transaction. I never understood what's
>>>> wrong with that approach.
>>> If you've ever used an ARM system with a VIVT cache, you'll know what's
>>> wrong with this approach.
>>>
>>> ARM systems with VIVT caches have extremely poor task switching
>>> performance because they flush the entire data cache at every task switch
>>> - to the extent that it makes system performance drop dramatically when
>>> they become loaded.
>>>
>>> Doing that for every DMA operation will kill the advantage we've gained
>>> from having VIPT caches and ASIDs stone dead.
>> This statement effectively means: don't map dma-able memory to the CPU
>> unless it's uncached. Have I missed anything?
> I'll give you another solution to the problem - lobby ARM Ltd to have
> this restriction lifted from the architecture specification, which
> will probably result in the speculative prefetching also having to be
> removed.
>
Isn't disabling Speculative Accesses forwarding to the AXI bus the
solution to our woes?
At least on the A8, which happens to be paired with non-IOMMU capable
IPs on our SoCs.
On A9 the bit is gone (or has it moved?), but we have IOMMU here so the
CMA isn't needed.
http://infocenter.arm.com/
Cortex-A8 Technical Reference Manual Revision: r3p2
3.2.26. c1, Auxiliary Control Register
CP15, c1, c0, bit 4: Enables speculative accesses on AXI
> That would be my preferred solution if I had the power to do so, but
> I have to live with what ARM Ltd (and their partners such as yourselves)
> decide should end up in the architecture specification.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
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 policy in Canada: sign http://dissolvethecrtc.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2010-12-23 15:35 UTC|newest]
Thread overview: 124+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-15 20:34 [PATCHv8 00/12] Contiguous Memory Allocator Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` [PATCHv8 01/12] mm: migrate.c: fix compilation error Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` [PATCHv8 02/12] lib: bitmap: Added alignment offset for bitmap_find_next_zero_area() Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` [PATCHv8 03/12] lib: genalloc: Generic allocator improvements Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` [PATCHv8 04/12] mm: move some functions from memory_hotplug.c to page_isolation.c Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` [PATCHv8 05/12] mm: alloc_contig_freed_pages() added Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` [PATCHv8 06/12] mm: alloc_contig_range() added Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` [PATCHv8 07/12] mm: cma: Contiguous Memory Allocator added Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2011-02-02 12:43 ` Ankita Garg
2011-02-02 12:43 ` Ankita Garg
2011-02-02 12:43 ` Ankita Garg
2011-02-02 14:58 ` Michal Nazarewicz
2011-02-02 14:58 ` Michal Nazarewicz
2011-02-02 14:58 ` Michal Nazarewicz
2010-12-15 20:34 ` [PATCHv8 08/12] mm: MIGRATE_CMA migration type added Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` [PATCHv8 09/12] mm: MIGRATE_CMA isolation functions added Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` [PATCHv8 10/12] mm: MIGRATE_CMA support added to CMA Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` [PATCHv8 11/12] mm: cma: Test device and application added Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` [PATCHv8 12/12] ARM: cma: Added CMA to Aquila, Goni and c210 universal boards Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-15 20:34 ` Michal Nazarewicz
2010-12-23 9:30 ` [PATCHv8 00/12] Contiguous Memory Allocator Kyungmin Park
2010-12-23 9:30 ` Kyungmin Park
2010-12-23 9:30 ` Kyungmin Park
2010-12-23 10:06 ` Russell King - ARM Linux
2010-12-23 10:06 ` Russell King - ARM Linux
2010-12-23 10:06 ` Russell King - ARM Linux
2010-12-23 10:58 ` Marek Szyprowski
2010-12-23 10:58 ` Marek Szyprowski
2010-12-23 10:58 ` Marek Szyprowski
2010-12-23 12:19 ` Russell King - ARM Linux
2010-12-23 12:19 ` Russell King - ARM Linux
2010-12-23 12:19 ` Russell King - ARM Linux
2010-12-23 13:09 ` Marek Szyprowski
2010-12-23 13:09 ` Marek Szyprowski
2010-12-23 13:09 ` Marek Szyprowski
2010-12-23 13:44 ` Russell King - ARM Linux
2010-12-23 13:44 ` Russell King - ARM Linux
2010-12-23 13:44 ` Russell King - ARM Linux
2011-01-12 18:49 ` Marek Szyprowski
2011-01-12 18:49 ` Marek Szyprowski
2011-01-12 18:49 ` Marek Szyprowski
2011-01-12 19:04 ` Nicolas Pitre
2011-01-12 19:04 ` Nicolas Pitre
2011-01-12 19:04 ` Nicolas Pitre
2011-01-13 7:01 ` Marek Szyprowski
2011-01-13 7:01 ` Marek Szyprowski
2011-01-13 7:01 ` Marek Szyprowski
2010-12-23 13:35 ` Tomasz Fujak
2010-12-23 13:35 ` Tomasz Fujak
2010-12-23 13:35 ` Tomasz Fujak
2010-12-23 13:48 ` Russell King - ARM Linux
2010-12-23 13:48 ` Russell King - ARM Linux
2010-12-23 13:48 ` Russell King - ARM Linux
2010-12-23 14:04 ` Tomasz Fujak
2010-12-23 14:04 ` Tomasz Fujak
2010-12-23 14:04 ` Tomasz Fujak
2010-12-23 14:16 ` Russell King - ARM Linux
2010-12-23 14:16 ` Russell King - ARM Linux
2010-12-23 14:16 ` Russell King - ARM Linux
2010-12-23 14:42 ` Felipe Contreras
2010-12-23 14:42 ` Felipe Contreras
2010-12-23 14:42 ` Felipe Contreras
2010-12-23 15:02 ` Michal Nazarewicz
2010-12-23 15:02 ` Michal Nazarewicz
2010-12-23 15:02 ` Michal Nazarewicz
2010-12-23 18:04 ` David Brown
2010-12-23 18:04 ` David Brown
2010-12-23 18:04 ` David Brown
2010-12-27 10:56 ` Tomasz Fujak
2010-12-23 13:41 ` Michal Nazarewicz
2010-12-23 13:41 ` Michal Nazarewicz
2010-12-23 13:41 ` Michal Nazarewicz
2010-12-23 13:51 ` Russell King - ARM Linux
2010-12-23 13:51 ` Russell King - ARM Linux
2010-12-23 13:51 ` Russell King - ARM Linux
2010-12-23 14:08 ` Tomasz Fujak
2010-12-23 14:08 ` Tomasz Fujak
2010-12-23 14:08 ` Tomasz Fujak
2010-12-23 14:20 ` Russell King - ARM Linux
2010-12-23 14:20 ` Russell King - ARM Linux
2010-12-23 14:20 ` Russell King - ARM Linux
2010-12-23 15:35 ` Tomasz Fujak [this message]
2010-12-23 15:35 ` Tomasz Fujak
2010-12-23 15:35 ` Tomasz Fujak
2011-01-04 23:12 ` Jamie Lokier
2011-01-04 23:12 ` Jamie Lokier
2011-01-04 23:12 ` Jamie Lokier
2011-01-04 16:23 ` Johan MOSSBERG
2011-01-04 16:23 ` Johan MOSSBERG
2011-01-04 16:23 ` Johan MOSSBERG
2011-01-04 16:59 ` Michał Nazarewicz
2011-01-04 16:59 ` Michał Nazarewicz
2011-01-04 16:59 ` Michał Nazarewicz
2011-01-04 17:19 ` Russell King - ARM Linux
2011-01-04 17:19 ` Russell King - ARM Linux
2011-01-04 17:19 ` Russell King - ARM Linux
2011-01-04 17:31 ` Santosh Shilimkar
2011-01-04 17:31 ` Santosh Shilimkar
2011-01-04 17:31 ` Santosh Shilimkar
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=4D136C42.6090601@samsung.com \
--to=t.fujak@samsung.com \
--cc=linux-arm-kernel@lists.infradead.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.