I'm interested in CMA scheme or preserved memory allocation of ION (ION_HEAP_TYPE_CARVEOUT heap type) 
I knew many SoC vendors (TI, nvidia, qualcom) already used similar approaches for multimedia processing in the past. 
However, reservation of physical memory should waste memory and limit available system memory, so now they use an IOMMU to support a contiguous virtual address region.
In addition to, ICS (Ice Cream Sandwitch) support overlay UI layer requiring lots of contiguous memory allocation area.

Now I'm suggesting an idea to use lots of contiguous memory allocation area without IOMMU.
So ION_HEAP_TYPE_CARVEOUT heap type of ION is one of my considerations, but you know that it might exhaust much physical memory. However, I think physical memory wasting problem can be solved in the virtualized system.
In case of virtualized environment, physical memory is intermediate physical memory instead of real physical memory, so a preserved carveout heap does not exhaust real physical memory any more. In addition to,  if virtual address and intermediate physical address are 32 and 40bits respectively, virtual memory is not exhausted neither.
How do you think about my suggestion?