Jump to content

    

ion_reserve что это?

Еще вопрос...

При старте системы вижу сообщение

[ 0.000000] Virtual kernel memory layout:

[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)

[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)

[ 0.000000] vmalloc : 0xe7800000 - 0xff000000 ( 376 MB)

[ 0.000000] lowmem : 0xc0000000 - 0xe7000000 ( 624 MB)

[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)

[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)

[ 0.000000] .text : 0xc0008000 - 0xc095abb4 (9547 kB)

[ 0.000000] .init : 0xc095b000 - 0xc09aeb00 ( 335 kB)

[ 0.000000] .data : 0xc09b0000 - 0xc0add7c8 (1206 kB)

[ 0.000000] .bss : 0xc0ae009c - 0xc0b65098 ( 532 kB)

 

В системе 2 ГБ памяти... НО, для чего то резервируются 376 М (vmalloc) и lowmem 624 MB

 

при прерывании загрузки на уровне uBoot, команда

env print показывает, в частности такие строки

setargs_mmc=setenv bootargs console=${console} root=${mmc_root} init=${init} vmalloc=384M ion_reserve=812M loglevel=${loglevel} partitions=${partitions}

setargs_nand=setenv bootargs console=${console} root=${nand_root} init=${init} vmalloc=384M ion_reserve=812M loglevel=${loglevel} partitions=${partitions}

 

Может кто нибудь объяснить, для чего резервируется почти 50% памяти?

и можно ли (если ДА, то как) избежать этого? И что за собой может это повлечь?

 

Спасибо!

Share this post


Link to post
Share on other sites
Еще вопрос...

При старте системы вижу сообщение

[ 0.000000] Virtual kernel memory layout:

[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)

[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)

[ 0.000000] vmalloc : 0xe7800000 - 0xff000000 ( 376 MB)

[ 0.000000] lowmem : 0xc0000000 - 0xe7000000 ( 624 MB)

[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)

[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)

[ 0.000000] .text : 0xc0008000 - 0xc095abb4 (9547 kB)

[ 0.000000] .init : 0xc095b000 - 0xc09aeb00 ( 335 kB)

[ 0.000000] .data : 0xc09b0000 - 0xc0add7c8 (1206 kB)

[ 0.000000] .bss : 0xc0ae009c - 0xc0b65098 ( 532 kB)

 

В системе 2 ГБ памяти... НО, для чего то резервируются 376 М (vmalloc) и lowmem 624 MB

 

при прерывании загрузки на уровне uBoot, команда

env print показывает, в частности такие строки

setargs_mmc=setenv bootargs console=${console} root=${mmc_root} init=${init} vmalloc=384M ion_reserve=812M loglevel=${loglevel} partitions=${partitions}

setargs_nand=setenv bootargs console=${console} root=${nand_root} init=${init} vmalloc=384M ion_reserve=812M loglevel=${loglevel} partitions=${partitions}

 

Может кто нибудь объяснить, для чего резервируется почти 50% памяти?

и можно ли (если ДА, то как) избежать этого? И что за собой может это повлечь?

 

Спасибо!

 

Навскидку предполагаю vmalloc резервирует кучу (heep) для malloc-ов

адресс 0xc0000000 это виртуальный адрес начала адресного пространства кернела. Ваши сегменты кода, инициализируемых данных и неинициализируемых данных как раз внутри lowmem 624 MB и находятся. Посмотрите на адреса.

Edited by Tarbal

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this