mirror of
https://github.com/genesi/linux-legacy.git
synced 2026-07-09 02:07:14 +00:00
Now everything is one big memarena instead of a separate PHYS and EMEM, and instead of having to micromanage the split between Z160 (always PHYS here) and GPU (99% of it's allocations come out of EMEM), we give blocks from the same memory pool. This should effect some more efficient allocation strategies and allow Xorg acceleration to proceed with much less movement of data (when it evicts for low memory in PHYS, it moves it to userspace and uses pixman to render everything, which is CPU intensive) at the potential cost of leaving slightly less memory around for the 3D GPU, but userspace apps using the GPU should be doing better with texture management so as not to soak up >32MiB of reserved GPU memory needlessly. Moving away from gsl_memmgr to genalloc is not desirable right now since the driver requires multiple allocation alignment orders and genalloc can only really guarantee a minimum alignment (i.e. size of allocation represented by each bit in the allocation bitmap). Moving to a dma_alloc_coherent/writecombine-only model also poses a problem since significant amounts of code expects to be able to find the "base" GPU memory address and with individual allocations instead of a pooled area, there is no such thing. Signed-off-by: Matt Sealey <matt@genesi-usa.com>