Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ion_reserve что это?
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
Sergio66
Еще вопрос...
При старте системы вижу сообщение
[ 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% памяти?
и можно ли (если ДА, то как) избежать этого? И что за собой может это повлечь?

Спасибо!
Tarbal
Цитата(Sergio66 @ Dec 17 2014, 17:12) *
Еще вопрос...
При старте системы вижу сообщение
[ 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 и находятся. Посмотрите на адреса.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.