mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2026-02-12 08:00:53 +00:00
capture: add API to request a counter id
This commit is contained in:
@ -95,6 +95,7 @@ typedef struct
|
|||||||
bool is_shared;
|
bool is_shared;
|
||||||
int tid;
|
int tid;
|
||||||
int pid;
|
int pid;
|
||||||
|
int next_counter_id;
|
||||||
} SysprofCollector;
|
} SysprofCollector;
|
||||||
|
|
||||||
#define COLLECTOR_INVALID ((void *)&invalid)
|
#define COLLECTOR_INVALID ((void *)&invalid)
|
||||||
@ -420,6 +421,7 @@ sysprof_collector_get (void)
|
|||||||
#else
|
#else
|
||||||
self->tid = self->pid;
|
self->tid = self->pid;
|
||||||
#endif
|
#endif
|
||||||
|
self->next_counter_id = 1;
|
||||||
|
|
||||||
pthread_mutex_lock (&control_fd_lock);
|
pthread_mutex_lock (&control_fd_lock);
|
||||||
|
|
||||||
@ -845,3 +847,19 @@ sysprof_collector_set_counters (const unsigned int *counters_ids,
|
|||||||
}
|
}
|
||||||
} COLLECTOR_END;
|
} COLLECTOR_END;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned int
|
||||||
|
sysprof_collector_request_counter (unsigned int n_counters)
|
||||||
|
{
|
||||||
|
unsigned int ret = 0;
|
||||||
|
|
||||||
|
if (n_counters == 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
COLLECTOR_BEGIN {
|
||||||
|
ret = collector->next_counter_id;
|
||||||
|
((SysprofCollector *)collector)->next_counter_id += n_counters;
|
||||||
|
} COLLECTOR_END;
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|||||||
@ -64,50 +64,52 @@
|
|||||||
SYSPROF_BEGIN_DECLS
|
SYSPROF_BEGIN_DECLS
|
||||||
|
|
||||||
SYSPROF_AVAILABLE_IN_3_36
|
SYSPROF_AVAILABLE_IN_3_36
|
||||||
void sysprof_collector_init (void);
|
void sysprof_collector_init (void);
|
||||||
SYSPROF_AVAILABLE_IN_3_36
|
SYSPROF_AVAILABLE_IN_3_36
|
||||||
void sysprof_collector_allocate (SysprofCaptureAddress alloc_addr,
|
void sysprof_collector_allocate (SysprofCaptureAddress alloc_addr,
|
||||||
int64_t alloc_size,
|
int64_t alloc_size,
|
||||||
SysprofBacktraceFunc backtrace_func,
|
SysprofBacktraceFunc backtrace_func,
|
||||||
void *backtrace_data);
|
void *backtrace_data);
|
||||||
SYSPROF_AVAILABLE_IN_3_36
|
SYSPROF_AVAILABLE_IN_3_36
|
||||||
void sysprof_collector_sample (SysprofBacktraceFunc backtrace_func,
|
void sysprof_collector_sample (SysprofBacktraceFunc backtrace_func,
|
||||||
void *backtrace_data);
|
void *backtrace_data);
|
||||||
SYSPROF_AVAILABLE_IN_3_36
|
SYSPROF_AVAILABLE_IN_3_36
|
||||||
void sysprof_collector_mark (int64_t time,
|
void sysprof_collector_mark (int64_t time,
|
||||||
int64_t duration,
|
int64_t duration,
|
||||||
const char *group,
|
const char *group,
|
||||||
const char *mark,
|
const char *mark,
|
||||||
const char *message);
|
const char *message);
|
||||||
SYSPROF_AVAILABLE_IN_3_38
|
SYSPROF_AVAILABLE_IN_3_38
|
||||||
void sysprof_collector_mark_printf (int64_t time,
|
void sysprof_collector_mark_printf (int64_t time,
|
||||||
int64_t duration,
|
int64_t duration,
|
||||||
const char *group,
|
const char *group,
|
||||||
const char *mark,
|
const char *mark,
|
||||||
const char *message_format,
|
const char *message_format,
|
||||||
...) SYSPROF_PRINTF(5, 6);
|
...) SYSPROF_PRINTF(5, 6);
|
||||||
SYSPROF_AVAILABLE_IN_3_38
|
SYSPROF_AVAILABLE_IN_3_38
|
||||||
void sysprof_collector_mark_vprintf (int64_t time,
|
void sysprof_collector_mark_vprintf (int64_t time,
|
||||||
int64_t duration,
|
int64_t duration,
|
||||||
const char *group,
|
const char *group,
|
||||||
const char *mark,
|
const char *mark,
|
||||||
const char *message_format,
|
const char *message_format,
|
||||||
va_list args) SYSPROF_PRINTF(5, 0);
|
va_list args) SYSPROF_PRINTF(5, 0);
|
||||||
SYSPROF_AVAILABLE_IN_3_36
|
SYSPROF_AVAILABLE_IN_3_36
|
||||||
void sysprof_collector_log (int severity,
|
void sysprof_collector_log (int severity,
|
||||||
const char *domain,
|
const char *domain,
|
||||||
const char *message);
|
const char *message);
|
||||||
SYSPROF_AVAILABLE_IN_3_38
|
SYSPROF_AVAILABLE_IN_3_38
|
||||||
void sysprof_collector_log_printf (int severity,
|
void sysprof_collector_log_printf (int severity,
|
||||||
const char *domain,
|
const char *domain,
|
||||||
const char *format,
|
const char *format,
|
||||||
...) SYSPROF_PRINTF (3, 4);
|
...) SYSPROF_PRINTF (3, 4);
|
||||||
SYSPROF_AVAILABLE_IN_3_38
|
SYSPROF_AVAILABLE_IN_3_38
|
||||||
void sysprof_collector_define_counters (const SysprofCaptureCounter *counters,
|
unsigned int sysprof_collector_request_counter (unsigned int n_counters);
|
||||||
unsigned int n_counters);
|
|
||||||
SYSPROF_AVAILABLE_IN_3_38
|
SYSPROF_AVAILABLE_IN_3_38
|
||||||
void sysprof_collector_set_counters (const unsigned int *counters_ids,
|
void sysprof_collector_define_counters (const SysprofCaptureCounter *counters,
|
||||||
const SysprofCaptureCounterValue *values,
|
unsigned int n_counters);
|
||||||
unsigned int n_counters);
|
SYSPROF_AVAILABLE_IN_3_38
|
||||||
|
void sysprof_collector_set_counters (const unsigned int *counters_ids,
|
||||||
|
const SysprofCaptureCounterValue *values,
|
||||||
|
unsigned int n_counters);
|
||||||
|
|
||||||
SYSPROF_END_DECLS
|
SYSPROF_END_DECLS
|
||||||
|
|||||||
Reference in New Issue
Block a user