-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LTTng hotspot and hotspot private tracepoints #14
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
В конфигуре появился флажок --enable-lttng.
Пока что нужно добавлять --enable-dtrace=no, так как поумолчанию он включен, если доступен.
Возможно, я неправильно поняла части автоконфигурации и добавление получилось не минимальным, но так пока работает)
Наверно основная претензия в том, что не может быть одновременно lttng и dtrace событий. Хотелось бы, чтобы они могли сосуществовать
В lttng_examples появилась папочка test, там просто hello world, но он ловит все созданные события.
У части событий есть параметры, смысл которых мне пока не ясен (у них есть вопросики в lttngTracepoints), надеюсь, если их половить, то станет лучше.
Их значение можно узнать из кода. На опредлененном уровне, они могут выступать просто как идентификаторы, их можно отдавать как есть
Все-таки сделала отдельный файлик с дефайнами, чтобы не было проблем с генерацией файликов для ustd проб. (там дублируются пустые дефайны, но их можно убрать)
Не совсем понял, можешь пояснить?
make/autoconf/hotspot.m4
Outdated
@@ -363,14 +380,22 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES], | |||
DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES epsilongc g1gc zgc shenandoahgc" | |||
fi | |||
|
|||
# Turn on additional features based on other parts of configure |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Это похоже на ошибку
#undef TRACEPOINT_INCLUDE | ||
#define TRACEPOINT_INCLUDE "./utilities/lttngHSPrivate.hpp" | ||
|
||
#if !defined(_VM_METHODS_TP_H) || defined(TRACEPOINT_HEADER_MULTI_READ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
_VM_METHODS_TP_H
-- это guard macro, чтобы файл не инклюдился несколько раз?
- Идентификатор используется здесь и в lttngTracepoints.hpp, ошибка. Лучше начинать по имени, вроде
LTTNG_HS_PRIVATE_H_
- начинать с
_
не стоит -- такие имена зарезервированны за ОС/компилятором
), | ||
TP_FIELDS( | ||
ctf_string(class_name, name) | ||
// ctf_integer(class_loader_data, class_loader_data) // ????????????? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Это class loader, объект ответственный за загрузку класса. Это указатель на самом деле. Превратить его в integer (лучше в long, чтобы указатель поместился) -- нормальное решение
ctf_string(class_name, class_name) | ||
ctf_string(method_name, name) | ||
ctf_string(signature, sig) | ||
//insts ?? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Это начало инструкций в скомпилированном коде. Сделать из них longи -- норм
TP_ARGS( | ||
bool, full), | ||
TP_FIELDS( | ||
ctf_integer(bool, full, full) //?? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
void VM_GC_Operation::notify_gc_begin(bool full) {
HOTSPOT_GC_BEGIN(
full);
полная или не полная сборка
DTRACE_PROBE... нельзя переопределить, поэтому пока непонятно, как делать и ustd, и lttng ивенты одновременно, так как из кода обращаются непосредственно по сгенеренным именам.
Могла быть проблема в том, что для генерации файликов с дефайнами проб (dtracefiles/hotspot.h) проверяется, что есть все необходимое, но если его нет (а все для работы lttng трейспоинтов есть), было бы странно падать с ошибкой. |
оказалось, что регэкспы все-таки ужасные, поэтому теперь есть #16 |
т.е. на этот PR можно не смотреть? |
В конфигуре появился флажок --enable-lttng.
Пока что нужно добавлять --enable-dtrace=no, так как поумолчанию он включен, если доступен.
Возможно, я неправильно поняла части автоконфигурации и добавление получилось не минимальным, но так пока работает)
В lttng_examples появилась папочка test, там просто hello world, но он ловит все созданные события. У части событий есть параметры, смысл которых мне пока не ясен (у них есть вопросики в lttngTracepoints), надеюсь, если их половить, то станет лучше.
Все-таки сделала отдельный файлик с дефайнами, чтобы не было проблем с генерацией файликов для ustd проб. (там дублируются пустые дефайны, но их можно убрать)