|
Edited by jernej at 2016-1-7 22:04
That difference doesn't change anything important, just parsing memory string. There is a lot of spaghetti code around ion so there is no easy way to disable it. I will try to do some hack just to check if there would be a difference to use CMA allocated contiguous memory instead of carveout memory (reserved at boot in sun8i.c). Naturally, CedarX's libMemAdapter.so would need a patch if everything works. Patching is not a big deal, but there is no guarantee that libMemAdapter will easily work that way either.
Can you please try this video https://app.box.com/s/qkhfruhz1xv9xq7dqfcfv6x262wkogw9 with 160m? Even though it says 120 fps it is 30 fps (check with ffmpeg, vlc or similar).
Is there anyone who knows something about CMA and/or ION's carveout? Should be memory reserved for those two mechanisms always threated as used, e.g. when checking with command "free"?
EDIT: current findings:
- Carveout memory region cannot be easily disabled because of kernel freeze (currently unknown reason)
- it can be minimized at least to 24MB (16MB doesn't work anymore), kswapd is not seen in "top" command
- CMA can be extended to 256MB, but not sure if really works with such amount of memory
- found some comment in arch/arm/mach-sunxi/include/mach/memory.h which is contradictory to the current status (carveout memory region is last 256MB of memory):
- /*
- * NOTE: CMA reserved area: (CONFIG_CMA_RESERVE_BASE ~ CONFIG_CMA_RESERVE_BASE + CONFIG_CMA_SIZE_MBYTES),
- * which is reserved in the function of dma_contiguous_reserve, drivers/base/dma-contiguous.c.
- * Please DO NOT conflict with it when you reserved your own areas.
- *
- * We need to restrict CMA area in the front 256M, because VE only support these address.
- */
Copy code
- sunxi-libvdpau uses CMA for memory allocation, so in theory should work (?)
|
|