January 5th, 2012

404

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.

Следующим этапом будет тестирование регулирования памяти (для нас это принципиальный и критичный вопрос).
404

GITS SAC

В 15ой серии тачикомы учатся троллить. Так сказать, доказательство разумности.
404

kronos [11/256]

Внезапно, дебиановские пакеты (в отличие от ppa'шных для бубунты) свежи и рабочи из коробки. Работает правильно сеть, на месте sr, на месте templates.

Пока из обнаруженного: всё-таки стартует xend и xenstore-read vm показывает нули (т.к. у домена uuid'ы на месте, не думаю, что это будет серьёзной проблемой).

Ща попробую их в один пул вогнать, сделать им общий SR (начнём с NFS) и посмотреть на миграцию.

Ах, да, я ещё обещался память поиграть...
404

Вечная борьба добра со стабильностью

commit 371de6e4e0042adf4f9b54c414154f57414ddd37
Author: Keith Packard <keithp@keithp.com>
Date: Mon Dec 26 17:02:11 2011 -0800

drm/i915: Disable RC6 on Sandybridge by default

RC6 fails again.

> I found my system freeze mostly during starting up X and KDE. Sometimes it
> works for some minutes, sometimes it freezes immediatly. When the freeze
> happens, everything is dead (even the reset button does not work, I need to
> power cycle).

> I disabled RC6, and my system runs wonderfully.

> The system is a Z68 Pro board with Sandybridge i5-2500K processor, 8
> GB of RAM and UEFI firmware.

Reported-by: Kai Krakow <hurikhan77@gmail.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>


Да, эти засранцы ОЧЕРЕДНУЮ версию ядра выпустили без rc6.
404

shell guru

Как реализовать паттерн матчинг?

Дана простейшая задача: распаковать файл неизвестным образом запакованный и скормить его в file. Можно написать выматывающий душу скрипт с определением типа архива.

А можно написать активный pattern matching:

cat somefile| (bzip2 -dc || gzip2 -dc || cat ) | file -

Обратите внимание на cat - это 'success by default', оно позволит скормить в file наш файл без преобразований, если ни один распаковщик не справился. Желающие могут расширить любым количеством архиваторов, ключевым является "не писать херню, если не понял что внутри" и "читать/писать на stdio".
404

строительство мостов

Я буду сильно неправ, если скажу, что 90% людей, которые поднимают мосты на вычислителях, делают это для виртуальных машин?

(читать в контексте и терминологии конца 19 века)