amarao (amarao_san) wrote,
amarao
amarao_san

Categories:

kronos [10/256]

Итак, прошлый раз мы остановились на том, что такое SS в контексте ненацистской виртуализации. Первое -S- - shutdowned, второе - reason code, 2. Последней мыслью предыдущего поста было сделать греп по SHUTDOWN_suspend (догадка). (После этого у меня закозлил i915 и я ушёл что-то там делать с гитсом).

И да, вот он греп:

xen/include/public/sched.h:#define SHUTDOWN_suspend 2 /* Clean up, save suspend info, kill. */

То есть -ss- - это домен, который завершился со статусом suspend.

там же (в выводе грепа) ещё интересная строчка:

xen/common/domain.c: if ( (d->shutdown_code == SHUTDOWN_suspend) && d->suspend_evtchn )

Изучаем...
if ( (d->shutdown_code == SHUTDOWN_suspend) && d->suspend_evtchn )
evtchn_send(d, d->suspend_evtchn);

Поскольку это код зена, внимание, заметка на будущее, shutdown code - это не просто "код возврата домена", он имеет значение для зена. В нашем случае - при SHUTDOWN_suspend всем участникам обмена через event channel'ы (в реальной жизни - это соотв. драйвер в dom0) посылается сообщение о том, что этот event channel ушёл в саспенд. Что это значит для драйвера - не знаю, но общая идея понятна.

Итак, возвращаемся к нашим тараканам. Почему домен висит в состоянии SHUTDOWN_suspend?

Во-первых, по поводу shutodwn доменов. Если мы делаем crash или halt или reboot, то соответствующий reson code обрабатывает тулстек (xend или xapi), которое смотрит на код и решает, что делать дальше (перезапустить домен или считать, что машина выключена). При этом shutdown домен сам по себе не исчезает (проверка - выключить xapi/xend, ребутнуть машину, она будет висеть с статусом -s- неограниченно долго, пока xapi/xend не будут запущены). То есть именно xapi/xend отвечают за удаление домена.

В пакетированном xcp ребут работает (я уже сделал установку), то есть теоретически, обработка shutdown-доменов производится корректно, то есть -ss- домен оставлен таковым не случайно (где-то что-то сломалось на середине).

Кстати, в рассылке на мои багрепорты ответили, что оно всё фиксед уже давным-давно.

Пока меня смущают два фактора:

1) Старая версия ядра в squeezed (я играюсь с debian'ом)
2) Наличие в памяти одновременно xapi и xend'а. Странные люди?

Начнём с малого - поставим свежее ядро из сида.

Не помогло. Очевидно, пришла пора заняться странностью с xend'ом

Хм. Остановка xend'а автоматически решила проблему. Заодно понятно его наличие - его притащил xen-utils-4.1.

При этом xapi зачем-то на него depends... Впрочем, ладно, возможно, бага пакетирования.

Итак, мы имеем рабочую миграцию на localhost'е. Заметим, без дурацких проверок на PV-guest-tools-version.

Следующим этапом будет тестирование регулирования памяти (для нас это принципиальный и критичный вопрос).
Tags: xapi, xcp
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