mirror of
https://github.com/void-linux/void-packages.git
synced 2025-06-07 15:43:49 +02:00
uftrace: add upstream fix for missing symbol
This commit is contained in:
parent
6e29f3e714
commit
00dd265e2e
2 changed files with 175 additions and 1 deletions
|
@ -0,0 +1,174 @@
|
||||||
|
From 95941ed8e45adabd178a1866c910de39626010ba Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andrew Slough <ajss@forbidden.co.uk>
|
||||||
|
Date: Sun, 29 Oct 2017 15:29:08 +0000
|
||||||
|
Subject: [PATCH] build: move get_event_name to fstack
|
||||||
|
|
||||||
|
Signed-off-by: Andrew Slough <andrew.slough@gmail.com>
|
||||||
|
|
||||||
|
diff --git utils/fstack.c utils/fstack.c
|
||||||
|
index b6c13a1..3308216 100644
|
||||||
|
--- utils/fstack.c
|
||||||
|
+++ utils/fstack.c
|
||||||
|
@@ -1054,6 +1054,78 @@ static void save_task_event(struct ftrace_task_handle *task,
|
||||||
|
fseek(task->fp, 8 - rem, SEEK_CUR);
|
||||||
|
}
|
||||||
|
|
||||||
|
+/**
|
||||||
|
+ * get_event_name - find event name from event id
|
||||||
|
+ * @handle - handle to uftrace data
|
||||||
|
+ * @evt_id - event id
|
||||||
|
+ *
|
||||||
|
+ * This function returns a string of event name matching to @evt_id.
|
||||||
|
+ * Callers must free the returned string. This is moved from utils.c
|
||||||
|
+ * since it needs to call libtraceevent function for kernel events
|
||||||
|
+ * which is not linked into libmcount.
|
||||||
|
+ */
|
||||||
|
+char *get_event_name(struct ftrace_file_handle *handle, unsigned evt_id)
|
||||||
|
+{
|
||||||
|
+ char *evt_name = NULL;
|
||||||
|
+ struct event_format *event;
|
||||||
|
+
|
||||||
|
+ if (evt_id >= EVENT_ID_USER) {
|
||||||
|
+ struct uftrace_event *ev;
|
||||||
|
+
|
||||||
|
+ list_for_each_entry(ev, &handle->events, list) {
|
||||||
|
+ if (ev->id == evt_id) {
|
||||||
|
+ xasprintf(&evt_name, "%s:%s", ev->provider, ev->event);
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ xasprintf(&evt_name, "user_event:%u", evt_id);
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (evt_id >= EVENT_ID_PERF) {
|
||||||
|
+ const char *event_name;
|
||||||
|
+
|
||||||
|
+ switch (evt_id) {
|
||||||
|
+ case EVENT_ID_PERF_SCHED_IN:
|
||||||
|
+ event_name = "sched-in";
|
||||||
|
+ break;
|
||||||
|
+ case EVENT_ID_PERF_SCHED_OUT:
|
||||||
|
+ event_name = "sched-out";
|
||||||
|
+ break;
|
||||||
|
+ case EVENT_ID_PERF_SCHED_BOTH:
|
||||||
|
+ event_name = "schedule";
|
||||||
|
+ break;
|
||||||
|
+ default:
|
||||||
|
+ event_name = "unknown";
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ xasprintf(&evt_name, "linux:%s", event_name);
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (evt_id >= EVENT_ID_BUILTIN) {
|
||||||
|
+ switch (evt_id) {
|
||||||
|
+ case EVENT_ID_PROC_STATM:
|
||||||
|
+ xasprintf(&evt_name, "read:proc/statm");
|
||||||
|
+ break;
|
||||||
|
+ case EVENT_ID_PAGE_FAULT:
|
||||||
|
+ xasprintf(&evt_name, "read:page-fault");
|
||||||
|
+ break;
|
||||||
|
+ default:
|
||||||
|
+ xasprintf(&evt_name, "builtin_event:%u", evt_id);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* kernel events */
|
||||||
|
+ event = pevent_find_event(handle->kernel->pevent, evt_id);
|
||||||
|
+ xasprintf(&evt_name, "%s:%s", event->system, event->name);
|
||||||
|
+
|
||||||
|
+out:
|
||||||
|
+ return evt_name;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
int read_task_event(struct ftrace_task_handle *task,
|
||||||
|
struct uftrace_record *rec)
|
||||||
|
{
|
||||||
|
diff --git utils/utils.c utils/utils.c
|
||||||
|
index de7dd1b..eb959ed 100644
|
||||||
|
--- utils/utils.c
|
||||||
|
+++ utils/utils.c
|
||||||
|
@@ -522,76 +522,6 @@ void free_parsed_cmdline(char **argv)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-/**
|
||||||
|
- * get_event_name - find event name from event id
|
||||||
|
- * @handle - handle to uftrace data
|
||||||
|
- * @evt_id - event id
|
||||||
|
- *
|
||||||
|
- * This function returns a string of event name matching to @evt_id.
|
||||||
|
- * Callers must free the returned string.
|
||||||
|
- */
|
||||||
|
-char *get_event_name(struct ftrace_file_handle *handle, unsigned evt_id)
|
||||||
|
-{
|
||||||
|
- char *evt_name = NULL;
|
||||||
|
- struct event_format *event;
|
||||||
|
-
|
||||||
|
- if (evt_id >= EVENT_ID_USER) {
|
||||||
|
- struct uftrace_event *ev;
|
||||||
|
-
|
||||||
|
- list_for_each_entry(ev, &handle->events, list) {
|
||||||
|
- if (ev->id == evt_id) {
|
||||||
|
- xasprintf(&evt_name, "%s:%s", ev->provider, ev->event);
|
||||||
|
- goto out;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- xasprintf(&evt_name, "user_event:%u", evt_id);
|
||||||
|
- goto out;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (evt_id >= EVENT_ID_PERF) {
|
||||||
|
- const char *event_name;
|
||||||
|
-
|
||||||
|
- switch (evt_id) {
|
||||||
|
- case EVENT_ID_PERF_SCHED_IN:
|
||||||
|
- event_name = "sched-in";
|
||||||
|
- break;
|
||||||
|
- case EVENT_ID_PERF_SCHED_OUT:
|
||||||
|
- event_name = "sched-out";
|
||||||
|
- break;
|
||||||
|
- case EVENT_ID_PERF_SCHED_BOTH:
|
||||||
|
- event_name = "schedule";
|
||||||
|
- break;
|
||||||
|
- default:
|
||||||
|
- event_name = "unknown";
|
||||||
|
- break;
|
||||||
|
- }
|
||||||
|
- xasprintf(&evt_name, "linux:%s", event_name);
|
||||||
|
- goto out;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (evt_id >= EVENT_ID_BUILTIN) {
|
||||||
|
- switch (evt_id) {
|
||||||
|
- case EVENT_ID_PROC_STATM:
|
||||||
|
- xasprintf(&evt_name, "read:proc/statm");
|
||||||
|
- break;
|
||||||
|
- case EVENT_ID_PAGE_FAULT:
|
||||||
|
- xasprintf(&evt_name, "read:page-fault");
|
||||||
|
- break;
|
||||||
|
- default:
|
||||||
|
- xasprintf(&evt_name, "builtin_event:%u", evt_id);
|
||||||
|
- break;
|
||||||
|
- }
|
||||||
|
- goto out;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- /* kernel events */
|
||||||
|
- event = pevent_find_event(handle->kernel->pevent, evt_id);
|
||||||
|
- xasprintf(&evt_name, "%s:%s", event->system, event->name);
|
||||||
|
-
|
||||||
|
-out:
|
||||||
|
- return evt_name;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
/**
|
||||||
|
* absolute_dirname - return the canonicalized absolute dirname
|
||||||
|
*
|
||||||
|
--
|
||||||
|
2.15.0
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# Template file for 'uftrace'
|
# Template file for 'uftrace'
|
||||||
pkgname=uftrace
|
pkgname=uftrace
|
||||||
version=0.8.1
|
version=0.8.1
|
||||||
revision=1
|
revision=2
|
||||||
build_style=gnu-configure
|
build_style=gnu-configure
|
||||||
hostmakedepends="pandoc"
|
hostmakedepends="pandoc"
|
||||||
makedepends="elfutils-devel"
|
makedepends="elfutils-devel"
|
||||||
|
|
Loading…
Add table
Reference in a new issue