linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* CMA alignment question
@ 2014-11-04 21:03 Gregory Fong
  2014-11-04 22:27 ` Michal Nazarewicz
  0 siblings, 1 reply; 7+ messages in thread
From: Gregory Fong @ 2014-11-04 21:03 UTC (permalink / raw)
  To: linux-mm
  Cc: lauraa, iamjoonsoo.kim, mina86, Marek Szyprowski, linux-kernel,
	Florian Fainelli, Brian Norris

Hi all,

The alignment in cma_alloc() is done w.r.t. the bitmap.  This is a
problem when, for example:

- a device requires 16M (order 12) alignment
- the CMA region is not 16 M aligned

In such a case, can result with the CMA region starting at, say,
0x2f800000 but any allocation you make from there will be aligned from
there.  Requesting an allocation of 32 M with 16 M alignment, will
result in an allocation from 0x2f800000 to 0x31800000, which doesn't
work very well if your strange device requires 16M alignment.

This doesn't have the behavior I would expect, which would be for the
allocation to be aligned w.r.t. the start of memory.  I realize that
aligning the CMA region is an option, but don't see why cma_alloc()
aligns to the start of the CMA region.  Is there a good reason for
having cma_alloc() alignment work this way?

Thanks and regards,
Gregory

--
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/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

end of thread, other threads:[~2014-11-06 12:29 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-04 21:03 CMA alignment question Gregory Fong
2014-11-04 22:27 ` Michal Nazarewicz
2014-11-05  4:18   ` Gregory Fong
2014-11-05  7:20     ` Weijie Yang
2014-11-05 22:01       ` Michal Nazarewicz
2014-11-06  1:00         ` Weijie Yang
2014-11-06 12:29           ` Michal Nazarewicz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox