1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-18 01:30:27 +02:00

Add build support for tracepoints via lttng-ust

This commit is contained in:
Andy Wingo 2025-02-10 12:45:25 +01:00
parent b517464d7f
commit cca54736a0
6 changed files with 126 additions and 5 deletions

83
api/gc-lttng.h Normal file
View file

@ -0,0 +1,83 @@
#define LTTNG_UST_TRACEPOINT_PROVIDER whippet
#undef LTTNG_UST_TRACEPOINT_INCLUDE
#define LTTNG_UST_TRACEPOINT_INCLUDE "gc-lttng.h"
#if !defined(_TP_H) || defined(LTTNG_UST_TRACEPOINT_HEADER_MULTI_READ)
#define _TP_H
#include <lttng/tracepoint.h>
LTTNG_UST_TRACEPOINT_ENUM(
whippet, gc_kind,
LTTNG_UST_TP_ENUM_VALUES
(lttng_ust_field_enum_value("MINOR", 1)
lttng_ust_field_enum_value("MAJOR", 2)
lttng_ust_field_enum_value("COMPACTING", 3)))
LTTNG_UST_TRACEPOINT_EVENT_CLASS(
whippet, tracepoint,
LTTNG_UST_TP_ARGS(),
LTTNG_UST_TP_FIELDS())
LTTNG_UST_TRACEPOINT_EVENT_CLASS(
whippet, size_tracepoint,
LTTNG_UST_TP_ARGS(size_t, size),
LTTNG_UST_TP_FIELDS(lttng_ust_field_integer(size_t, size, size)))
/* The tracepoint instances */
LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(
whippet, size_tracepoint, whippet, init,
LTTNG_UST_TP_ARGS(size_t, size))
LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(
whippet, size_tracepoint, whippet, heap_resized,
LTTNG_UST_TP_ARGS(size_t, size))
LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(
whippet, size_tracepoint, whippet, live_data_size,
LTTNG_UST_TP_ARGS(size_t, size))
LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(
whippet, tracepoint, whippet, requesting_stop, LTTNG_UST_TP_ARGS())
LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(
whippet, tracepoint, whippet, waiting_for_stop, LTTNG_UST_TP_ARGS())
LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(
whippet, tracepoint, whippet, mutators_stopped, LTTNG_UST_TP_ARGS())
LTTNG_UST_TRACEPOINT_EVENT(
whippet, prepare_gc,
LTTNG_UST_TP_ARGS(int, gc_kind),
LTTNG_UST_TP_FIELDS(
lttng_ust_field_enum(whippet, gc_kind, int, gc_kind, gc_kind)))
LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(
whippet, tracepoint, whippet, roots_traced, LTTNG_UST_TP_ARGS())
LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(
whippet, tracepoint, whippet, heap_traced, LTTNG_UST_TP_ARGS())
LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(
whippet, tracepoint, whippet, ephemerons_traced, LTTNG_UST_TP_ARGS())
LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(
whippet, tracepoint, whippet, finalizers_traced, LTTNG_UST_TP_ARGS())
LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(
whippet, tracepoint, whippet, restarting_mutators, LTTNG_UST_TP_ARGS())
LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(
whippet, tracepoint, whippet, mutator_added, LTTNG_UST_TP_ARGS())
LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(
whippet, tracepoint, whippet, mutator_cause_gc, LTTNG_UST_TP_ARGS())
LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(
whippet, tracepoint, whippet, mutator_stopping, LTTNG_UST_TP_ARGS())
LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(
whippet, tracepoint, whippet, mutator_stopped, LTTNG_UST_TP_ARGS())
LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(
whippet, tracepoint, whippet, mutator_restarted, LTTNG_UST_TP_ARGS())
LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(
whippet, tracepoint, whippet, mutator_removed, LTTNG_UST_TP_ARGS())
/*
* Use LTTNG_UST_TRACEPOINT_EVENT(), LTTNG_UST_TRACEPOINT_EVENT_CLASS(),
* LTTNG_UST_TRACEPOINT_EVENT_INSTANCE(), and
* LTTNG_UST_TRACEPOINT_LOGLEVEL() here.
*/
#endif /* _TP_H */
#include <lttng/tracepoint-event.h>

17
api/gc-tracepoint.h Normal file
View file

@ -0,0 +1,17 @@
#ifndef GC_TRACEPOINT_H
#define GC_TRACEPOINT_H
#ifdef GC_TRACEPOINT_LTTNG
#include "gc-lttng.h"
#define GC_TRACEPOINT(...) \
lttng_ust_tracepoint(whippet, __VA_ARGS__)
#else // GC_TRACEPOINT_LTTNG
#define GC_TRACEPOINT(...) do {} while (0)
#endif // GC_TRACEPOINT_LTTNG
#endif // GC_TRACEPOINT_H