Skip to content
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

Closed
wants to merge 7 commits into from

Conversation

drazumova
Copy link

В конфигуре появился флажок --enable-lttng.
Пока что нужно добавлять --enable-dtrace=no, так как поумолчанию он включен, если доступен.
Возможно, я неправильно поняла части автоконфигурации и добавление получилось не минимальным, но так пока работает)
В lttng_examples появилась папочка test, там просто hello world, но он ловит все созданные события. У части событий есть параметры, смысл которых мне пока не ясен (у них есть вопросики в lttngTracepoints), надеюсь, если их половить, то станет лучше.
Все-таки сделала отдельный файлик с дефайнами, чтобы не было проблем с генерацией файликов для ustd проб. (там дублируются пустые дефайны, но их можно убрать)

Copy link
Member

@AntonKozlov AntonKozlov left a 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 проб. (там дублируются пустые дефайны, но их можно убрать)

Не совсем понял, можешь пояснить?

@@ -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
Copy link
Member

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)
Copy link
Member

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, чтобы файл не инклюдился несколько раз?

  1. Идентификатор используется здесь и в lttngTracepoints.hpp, ошибка. Лучше начинать по имени, вроде LTTNG_HS_PRIVATE_H_
  2. начинать с _ не стоит -- такие имена зарезервированны за ОС/компилятором

),
TP_FIELDS(
ctf_string(class_name, name)
// ctf_integer(class_loader_data, class_loader_data) // ?????????????
Copy link
Member

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 ??
Copy link
Member

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) //??
Copy link
Member

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);

полная или не полная сборка

@drazumova
Copy link
Author

drazumova commented Jan 11, 2020

DTRACE_PROBE... нельзя переопределить, поэтому пока непонятно, как делать и ustd, и lttng ивенты одновременно, так как из кода обращаются непосредственно по сгенеренным именам.

Все-таки сделала отдельный файлик с дефайнами, чтобы не было проблем с генерацией файликов для ustd проб. (там дублируются пустые дефайны, но их можно убрать)
Не совсем понял, можешь пояснить?

Могла быть проблема в том, что для генерации файликов с дефайнами проб (dtracefiles/hotspot.h) проверяется, что есть все необходимое, но если его нет (а все для работы lttng трейспоинтов есть), было бы странно падать с ошибкой.

@drazumova
Copy link
Author

drazumova commented Mar 6, 2020

оказалось, что регэкспы все-таки ужасные, поэтому теперь есть #16

@AntonKozlov
Copy link
Member

т.е. на этот PR можно не смотреть?

@drazumova drazumova closed this Mar 26, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants