Sergio66 0 17 декабря, 2014 Опубликовано 17 декабря, 2014 · Жалоба Еще вопрос... При старте системы вижу сообщение [ 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 4 9 января, 2015 Опубликовано 9 января, 2015 (изменено) · Жалоба Еще вопрос... При старте системы вижу сообщение [ 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 и находятся. Посмотрите на адреса. Изменено 9 января, 2015 пользователем Tarbal Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться