How can I reserve contiguous mem alloc region?
Chan Kim
ckim at etri.re.kr
Tue Jan 3 00:35:50 EST 2023
Hello kernel experts and users,
I wanted to test cma-allocator in linux (5.15.68).
So I added linux,cma node in the /reserved-memory node like this.
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
axpu_reserved_mem: axpursvd at 90000000 {
no-map;
reg = <0x0 0xc0000000 0x0 0x8000000>;
};
linux,cma {
compatible = "shared-dma-pool";
reusable;
size = <0 0x30000000>;
alloc-ranges = <0 0x90000000 0 0x30000000>;
linux,cma-default;
};
};
BTW, this test was done on qemu arm64 machine and there is only 1GB ram
(from 0x80000000 ~ 0xbfffffff) in the virtual machine, and notice I'm
assigning 3/4 of the ram to cma region and 1/8 to a device driver (just for
test).
When I boot the machine, I see this message during the boot.
Memory: 1020140K/1048576K available (3200K kernel code, 386K rwdata,
808K rodata, 7808K init, 106K bss, 28436K reserved, 0K cma-reserved)
Why is the CMA-reserved area is 0KB?
This is some config variables I added for CMA test.
CONFIG_MEMORY_ISOLATION=y
CONFIG_CONTIG_ALLOC=y
ONFIG_CMA=y
CONFIG_CMA_DEBUG=y
CONFIG_CMA_DEBUGFS=y
CONFIG_CMA_SYSFS=y
CONFIG_CMA_AREAS=7
# CONFIG_DMA_CMA is not set
I tried adding 'cma=768MB' in the boot args or changed CONFIG_CMA_AREAS to 1
but it is the same.
What am I missing??
Thank you.
Chan Kim
More information about the Kernelnewbies
mailing list