ANDROID: mm: memblock: avoid to create memmap for memblock nomap regions
This 'commit 86588296acbf ("fdt: Properly handle "no-map" field in the memory region")' is keeping the no-map regions in memblock.memory with MEMBLOCK_NOMAP flag set to use no-map memory for EFI using memblock api's, but during the initialization sparse_init mark all memblock.memory as present using for_each_mem_pfn_range, which is creating the memmap for no-map memblock regions. Upstream has suggested to make use of bootloader to pass this as not a memory,but because of possibility that some bootloaders might not support this and also due to time constraints in evaluating this approach on 5.10, Use command line parameter as a temporary solution. Get in the appropriate solution later after further discussion with upstream. Add kernel param "android12_only.will_be_removed_soon.memblock_nomap_remove" which when enabled will remove page structs for these regions using memblock_remove. With this change we will be able to save ~11MB memory for ~612MB carve out. android12_only.will_be_removed_soon.memblock_nomap_remove=true: [ 0.000000] memblock_alloc_exact_nid_raw: 115343360 bytes align=0x200000 nid=0 from=0x0000000080000000 max_addr=0x0000000000000000 sparse_buffer_init+0x60/0x8c [ 0.000000] memblock_reserve: [0x0000000932c00000-0x00000009399fffff] memblock_alloc_range_nid+0xbc/0x1a0 [ 0.000000] On node 0 totalpages: 1627824 [ 0.000000] DMA32 zone: 5383 pages used for memmap [ 0.000000] Normal zone: 20052 pages used for memmap Default or android12_only.will_be_removed_soon.memblock_nomap_remove=false: [ 0.000000] memblock_alloc_exact_nid_raw: 117440512 bytes align=0x200000 nid=0 from=0x0000000080000000 max_addr=0x0000000000000000 sparse_buffer_init+0x60/0x8c [ 0.000000] memblock_reserve: [0x0000000932a00000-0x00000009399fffff] memblock_alloc_range_nid+0xbc/0x1a0 [ 0.000000] On node 0 totalpages: 1788416 [ 0.000000] DMA32 zone: 8192 pages used for memmap [ 0.000000] Normal zone: 20052 pages used for memmap. Change-Id: I34a7d46f02a6df7c769af3e53e44e49d6fc515af Bug: 227974747 Link: https://lore.kernel.org/all/20210115172949.GA1495225@robh.at.kernel.org Signed-off-by: Faiyaz Mohammed <quic_faiyazm@quicinc.com> Signed-off-by: Vijayanand Jitta <quic_vjitta@quicinc.com>
此提交包含在:
@@ -2533,6 +2533,12 @@
|
||||
|
||||
memblock=debug [KNL] Enable memblock debug messages.
|
||||
|
||||
android12_only.will_be_removed_soon.memblock_nomap_remove= [KNL]
|
||||
Setting this to true through kernel command line will
|
||||
call memblock_remove on the regions marked with no-map
|
||||
property thereby saving memory by removing page structs
|
||||
for those regions. By default this is set to false.
|
||||
|
||||
load_ramdisk= [RAM] [Deprecated]
|
||||
|
||||
lockd.nlm_grace_period=P [NFS] Assign grace period.
|
||||
|
新增問題並參考
封鎖使用者