All of lore.kernel.org
 help / color / mirror / Atom feed
* CMA region absolutely for a particular device?
@ 2016-06-07 12:59 Shawn Guo
  2016-06-07 15:55 ` Laura Abbott
  0 siblings, 1 reply; 3+ messages in thread
From: Shawn Guo @ 2016-06-07 12:59 UTC (permalink / raw)
  To: linux-kernel, inux-arm-kernel
  Cc: Marek Szyprowski, Arnd Bergmann, Laurent Pinchart,
	Michal Nazarewicz, Vlastimil Babka, Laura Abbott, Minchan Kim,
	Joonsoo Kim, Shawn Guo

Hi,

I'm using a separate CMA region than the system default one for
a particular device to avoid fragmentation.  It does help.  But under
certain circumstance (memory shortage), it seems some of the pages in
the region will be used by system.  The really bad thing is that when
a CMA allocation tries to move these occupied pages around, it just
fails to do so with messages like "alloc_contig_range: ... PFNs busy".
These pages thus become holes in a contiguous block and prevent the
allocation from succeeding.

Is it possible to make a CMA absolutely for a particular device, and
even system movable pages cannot use the memory?  I can reserve a memory
region from kernel and manage it with some custom and private interface
for that particular device.  But obviously, the standard dma-mapping API
and established underneath CMA infrastructural is more desirable to use,
right?

This is an arm64 device running on 4.1 kernel.  Any comments or
suggestions will be appreciated.  Thanks.

Shawn

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: CMA region absolutely for a particular device?
  2016-06-07 12:59 CMA region absolutely for a particular device? Shawn Guo
@ 2016-06-07 15:55 ` Laura Abbott
  2016-06-08 11:04   ` Shawn Guo
  0 siblings, 1 reply; 3+ messages in thread
From: Laura Abbott @ 2016-06-07 15:55 UTC (permalink / raw)
  To: Shawn Guo, linux-kernel, inux-arm-kernel
  Cc: Marek Szyprowski, Arnd Bergmann, Laurent Pinchart,
	Michal Nazarewicz, Vlastimil Babka, Minchan Kim, Joonsoo Kim

On 06/07/2016 05:59 AM, Shawn Guo wrote:
> Hi,
>
> I'm using a separate CMA region than the system default one for
> a particular device to avoid fragmentation.  It does help.  But under
> certain circumstance (memory shortage), it seems some of the pages in
> the region will be used by system.  The really bad thing is that when
> a CMA allocation tries to move these occupied pages around, it just
> fails to do so with messages like "alloc_contig_range: ... PFNs busy".
> These pages thus become holes in a contiguous block and prevent the
> allocation from succeeding.
>
> Is it possible to make a CMA absolutely for a particular device, and
> even system movable pages cannot use the memory?  I can reserve a memory
> region from kernel and manage it with some custom and private interface
> for that particular device.  But obviously, the standard dma-mapping API
> and established underneath CMA infrastructural is more desirable to use,
> right?
>
> This is an arm64 device running on 4.1 kernel.  Any comments or
> suggestions will be appreciated.  Thanks.
>
> Shawn
>

You could try backporting the ZONE_CMA patches
http://article.gmane.org/gmane.linux.kernel.mm/152016 . The primary problem
there was CMA utilization but there was some discussion about migration
success as well http://article.gmane.org/gmane.linux.kernel/2228789

If that doesn't work for you, I think the 'reusable' property can be dropped
and it should just become a DMA coherent pool. I haven't tested this though.

Thanks,
Laura

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: CMA region absolutely for a particular device?
  2016-06-07 15:55 ` Laura Abbott
@ 2016-06-08 11:04   ` Shawn Guo
  0 siblings, 0 replies; 3+ messages in thread
From: Shawn Guo @ 2016-06-08 11:04 UTC (permalink / raw)
  To: Laura Abbott
  Cc: Linux Kernel Mailing List, inux-arm-kernel, Marek Szyprowski,
	Arnd Bergmann, Laurent Pinchart, Michal Nazarewicz,
	Vlastimil Babka, Minchan Kim, Joonsoo Kim

On Tue, Jun 7, 2016 at 11:55 PM, Laura Abbott <labbott@redhat.com> wrote:
> You could try backporting the ZONE_CMA patches
> http://article.gmane.org/gmane.linux.kernel.mm/152016 . The primary problem
> there was CMA utilization but there was some discussion about migration
> success as well http://article.gmane.org/gmane.linux.kernel/2228789

Thanks much for the pointers, Laura.

> If that doesn't work for you, I think the 'reusable' property can be dropped
> and it should just become a DMA coherent pool. I haven't tested this though.

I will see if I can test it out.

Shawn

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-06-08 11:04 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-07 12:59 CMA region absolutely for a particular device? Shawn Guo
2016-06-07 15:55 ` Laura Abbott
2016-06-08 11:04   ` Shawn Guo

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.