Перейти к содержанию
    

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% памяти?

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

 

Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

[ 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 и находятся. Посмотрите на адреса.

Изменено пользователем Tarbal

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...