amarao (amarao_san) wrote,
amarao
amarao_san

The Kernel

Очередная попытка подружить mem_kb и MemTotal pv_ops ядра.

Текущие наблюдения: различия гуляют от сборки ядра и всякой ерунды, вроде опций, частично зависят от static-max, но не точно.

Внутри ядра: totalram_pages = free_all_bootmem()=55801, то есть значение уже меньше, чем передано из xen'а (для VM выставлено 256Мб).

При этом:
[ 0.000000] Xen: [mem 0x0000000000000000-0x000000000009ffff] usable
[ 0.000000] Xen: [mem 0x00000000000a0000-0x00000000000fffff] reserved
[ 0.000000] Xen: [mem 0x0000000000100000-0x000000000fffffff] usable
Даже если мы положим, что reserved не используется, оставшееся будет 261759кб, то есть на 385кб меньше выделенного.

В нашем же случае мы имеем 223204кб (55801 страниц), что на 38940кб меньше ожидаемого. Куда оно теряется?

Сейчас дошёл до free_all_bootmem
</pre>
unsigned long __init free_all_bootmem(void)
{
unsigned long total_pages = 0;
bootmem_data_t *bdata;
struct pglist_data *pgdat;
printk (KERN_ERR, "in free_all_bootmem\n");
for_each_online_pgdat(pgdat)
reset_node_lowmem_managed_pages(pgdat);

list_for_each_entry(bdata, &bdata_list, list)
total_pages += free_all_bootmem_core(bdata);
}
</pre>
Поставил вывод каждого результата free_all_bootmem_core, ща посмотрим на вывод...

Ага, я ошибся файлом. Функция на самом деле в nobootmem.c
Tags: linux, linux kernel, memory on demand, xen
Subscribe

  • мы их теряем!

    Make: 1976 Прямо сейчас выходят на пенсию люди, для которых make был новомодной технологией, которую притащили хипстеры.

  • Админская мудрость

    Когда вывод strace на башовый скрипт становится понятнее самого скрипта, граница разумности давно пройдена.

  • Rules of internet

    Rule 34. There is porn of it. Rule 35. It's used to mine cryptocurrencies.

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 2 comments