amarao (amarao_san) wrote,
amarao
amarao_san

Секреты зена

static unsigned long minimum_target(void)
{
#ifndef CONFIG_XEN
#define max_pfn num_physpages
#endif
        unsigned long min_pages, curr_pages = current_target();

#define MB2PAGES(mb) ((mb) << (20 - PAGE_SHIFT))
        /* Simple continuous piecewiese linear function:
         *  max MiB -> min MiB  gradient
         *       0         0
         *      16        16
         *      32        24
         *     128        72    (1/2)
         *     512       168    (1/4)
         *    2048       360    (1/8)
         *    8192       552    (1/32)
         *   32768      1320
         *  131072      4392
         */
        if (max_pfn < MB2PAGES(128))
                min_pages = MB2PAGES(8) + (max_pfn >> 1);
        else if (max_pfn < MB2PAGES(512))
                min_pages = MB2PAGES(40) + (max_pfn >> 2);
        else if (max_pfn < MB2PAGES(2048))
                min_pages = MB2PAGES(104) + (max_pfn >> 3);
        else
                min_pages = MB2PAGES(296) + (max_pfn >> 5);
#undef MB2PAGES

        /* Don't enforce growth */
        return min(min_pages, curr_pages);
#ifndef CONFIG_XEN
#undef max_pfn
#endif
}


И всё сразу понятно. Минимальное количество страниц (т.е. после лёгкого движения рукой, килобайт) зависит от максимального количества страниц (... надо выяснить, как оно образуется при запуске PVM'а - как static-max, вероятнее всего...) по простенькой формуле на 8 строк. Интересно, насколько сложно будет пропатчить ядро? Я бы всё-таки хотел иметь balloon'инг вплоть до 32-64Мб, при максимуме в 320Гб...

        if (max_pfn < MB2PAGES(128))
                min_pages = MB2PAGES(8) + (max_pfn >> 1);
        else if (max_pfn < MB2PAGES(512))
                min_pages = MB2PAGES(40) + (max_pfn >> 2);
        else if (max_pfn < MB2PAGES(2048))
                min_pages = MB2PAGES(104) + (max_pfn >> 3);
        else
                min_pages = MB2PAGES(296) + (max_pfn >> 5);


Собственно, в комментариях уже выписано:

От 128 до 512 Мб лимит - одна вторая.
От 512 до 2Гб лимит - одна четверть (увы!)
От 2Гб до 8Гб - одна восьмая (т.е. минимум 360Мб)
От 8Гб до 32Гб - 1/32.
Tags: balloon, xen cloud platform
Subscribe

  • философское

    У меня в голове начинает зарождаться метафора "surgical refactoring". Это такой рефакторинг, который проводится на живом пациенте (читай, на проекте…

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

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

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

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

  • 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.
  • 0 comments