A question about memblock.reserved
Wonhyuk Yang
vvghjk1234 at gmail.com
Fri Jun 24 02:40:59 EDT 2022
On Thu, Jun 23, 2022 at 2:25 PM Chan Kim <ckim at etri.re.kr> wrote:
>
> I mm/memblock.c I see this struct memblock memblock which is initialized with empty list.
>
> static struct memblock_region memblock_memory_init_regions[INIT_MEMBLOCK_REGIONS] __initdata_memblock;
> static struct memblock_region memblock_reserved_init_regions[INIT_MEMBLOCK_RESERVED_REGIONS] __initdata_memblock;
>
> struct memblock memblock __initdata_memblock = {
> .memory.regions = memblock_memory_init_regions,
> .memory.cnt = 1, /* empty dummy entry */
> .memory.max = INIT_MEMBLOCK_REGIONS,
> .memory.name = "memory",
> .reserved.regions = memblock_reserved_init_regions,
> .reserved.cnt = 1, /* empty dummy entry */
> .reserved.max = INIT_MEMBLOCK_RESERVED_REGIONS,
> .reserved.name = "reserved",
> .bottom_up = false,
> .current_limit = MEMBLOCK_ALLOC_ANYWHERE,
> };
>
> My question is : we can speicify "reserved-memory" in the device tree. Some drivers use the reserved memory for its own use.
> Then, are the 'reserved-memory' regions are put into this memblock.reserved regions during the boot process?(I mean during dtb parsing).
>
Yes, reserved memblock is initialized while scanning the fdt.
I'll attach some call graph below and I hope it helps you.
setup_arch ()
arm64_memblock_init ()
early_init_fdt_scan_reserved_mem ()
fdt_init_reserved_mem ()
fdt_scan_reserved_mem ()
__reserved_mem_reserve_reg ()
early_init_dt_reserve_memory_arch ()
memblock_reserve ()
Plus, I written some *scribbled* notes about this in Korean.
I don't know if it will help, but I will attach it below.
https://kjhg4321.gitbook.io/doodle/
More information about the Kernelnewbies
mailing list