2015-02-13 2 views
0

Я пытаюсь проверить работу сети qemu. Итак, я создаю одну новую точку трассировки внутри net/net.c: qemu_deliver_packet(). TP успешно установлен (# lttng list -u). Однако TP не появился, когда я запускаю сеанс lttng. Дело в том, что та же самая точка отслеживания появилась, когда я использую printf(). Почему? это потому, что мне нужно настроить что-то для libvirt (я использую libvirt)?Может ли lttng захватывать любые пользовательские точки трассировки?

ответ

0

Включили ли вы контрольную точку, с lttng enable-event -u [event name] (или -a)?

Наличие точки следа в lttng list -u означает, что оно зарегистрировано и доступно, но вам нужно включить его в сеансе трассировки, чтобы он генерировал события трассировки.

+0

Да, я это сделал. Я думаю, что это до libvirt, потому что, когда я запускал Qemu вручную (без virsh), тогда я могу захватить эту TP. Теперь я хочу знать, как включить его при использовании libvirt. Должен ли я что-то изменить в libvirtd.cfg? – adywp

+0

Хм, возможно ли, что libvirt запускает qemu через fork()? В этом случае вам, возможно, придется использовать библиотеку liblttng-ust-fork. В основном 'LD_PRELOAD = liblttng-ust-fork.so [appname]'. См. [Этот раздел] (http://lttng.org/docs/#doc-using-lttng-ust-with-daemons) документации. – alexmonthy