mirror of
https://github.com/home-assistant/operating-system.git
synced 2025-11-16 06:09:26 +00:00
* Rebase patches to Buildroot 2021.02-rc3 * Update Buildroot to 2021.02-rc3 * Declare Kernel headers to be Linux version 5.10 (since they are, and new Buildroot knows about 5.10)
141 lines
4.9 KiB
Diff
141 lines
4.9 KiB
Diff
From 1a000636c1828eecdcec5360a51623ef4ffbff04 Mon Sep 17 00:00:00 2001
|
|
From: Beniamin Sandu <beniaminsandu@gmail.com>
|
|
Date: Mon, 30 Nov 2020 14:27:55 +0200
|
|
Subject: [PATCH] trace-cmd: make it build against musl C library
|
|
|
|
* add some missing headers and macros
|
|
* set pthread affinity using pthread_setaffinity_np after creating the thread
|
|
instead of pthread_attr_setaffinity_np (which seems to not be implemented
|
|
in musl)
|
|
|
|
Tested using https://musl.cc/x86_64-linux-musl-native.tgz
|
|
|
|
Link: https://lore.kernel.org/linux-trace-devel/20201130122755.31000-1-beniaminsandu@gmail.com
|
|
|
|
Reviewed-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com>
|
|
Signed-off-by: Beniamin Sandu <beniaminsandu@gmail.com>
|
|
[ Fixed a whitespace issue ]
|
|
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
|
|
[Retrieved from:
|
|
https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/commit/?id=1a000636c1828eecdcec5360a51623ef4ffbff04]
|
|
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
---
|
|
.../include/private/trace-cmd-private.h | 1 +
|
|
lib/trace-cmd/include/trace-cmd-local.h | 1 +
|
|
lib/tracefs/include/tracefs-local.h | 12 ++++++++++++
|
|
lib/tracefs/tracefs-events.c | 1 +
|
|
tracecmd/include/trace-local.h | 1 +
|
|
tracecmd/trace-tsync.c | 16 +++++++++++-----
|
|
6 files changed, 27 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/lib/trace-cmd/include/private/trace-cmd-private.h b/lib/trace-cmd/include/private/trace-cmd-private.h
|
|
index 458760e5..a0dac5da 100644
|
|
--- a/lib/trace-cmd/include/private/trace-cmd-private.h
|
|
+++ b/lib/trace-cmd/include/private/trace-cmd-private.h
|
|
@@ -6,6 +6,7 @@
|
|
#ifndef _TRACE_CMD_PRIVATE_H
|
|
#define _TRACE_CMD_PRIVATE_H
|
|
|
|
+#include <sys/types.h>
|
|
#include "traceevent/event-parse.h"
|
|
#include "trace-cmd/trace-cmd.h"
|
|
|
|
diff --git a/lib/trace-cmd/include/trace-cmd-local.h b/lib/trace-cmd/include/trace-cmd-local.h
|
|
index d0a7365a..0cd27441 100644
|
|
--- a/lib/trace-cmd/include/trace-cmd-local.h
|
|
+++ b/lib/trace-cmd/include/trace-cmd-local.h
|
|
@@ -6,6 +6,7 @@
|
|
#ifndef _TRACE_CMD_LOCAL_H
|
|
#define _TRACE_CMD_LOCAL_H
|
|
|
|
+#include <byteswap.h>
|
|
#include "trace-cmd-private.h"
|
|
|
|
/* Can be overridden */
|
|
diff --git a/lib/tracefs/include/tracefs-local.h b/lib/tracefs/include/tracefs-local.h
|
|
index 9cc371b4..bdbf89e8 100644
|
|
--- a/lib/tracefs/include/tracefs-local.h
|
|
+++ b/lib/tracefs/include/tracefs-local.h
|
|
@@ -13,4 +13,16 @@ void warning(const char *fmt, ...);
|
|
int str_read_file(const char *file, char **buffer);
|
|
char *trace_append_file(const char *dir, const char *name);
|
|
|
|
+#ifndef ACCESSPERMS
|
|
+#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) /* 0777 */
|
|
+#endif
|
|
+
|
|
+#ifndef ALLPERMS
|
|
+#define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) /* 07777 */
|
|
+#endif
|
|
+
|
|
+#ifndef DEFFILEMODE
|
|
+#define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) /* 0666*/
|
|
+#endif
|
|
+
|
|
#endif /* _TRACE_FS_LOCAL_H */
|
|
diff --git a/lib/tracefs/tracefs-events.c b/lib/tracefs/tracefs-events.c
|
|
index 80a25ee5..a4e5215f 100644
|
|
--- a/lib/tracefs/tracefs-events.c
|
|
+++ b/lib/tracefs/tracefs-events.c
|
|
@@ -13,6 +13,7 @@
|
|
#include <errno.h>
|
|
#include <sys/stat.h>
|
|
#include <fcntl.h>
|
|
+#include <limits.h>
|
|
|
|
#include "kbuffer.h"
|
|
#include "tracefs.h"
|
|
diff --git a/tracecmd/include/trace-local.h b/tracecmd/include/trace-local.h
|
|
index 28d1b4e0..85c7e03e 100644
|
|
--- a/tracecmd/include/trace-local.h
|
|
+++ b/tracecmd/include/trace-local.h
|
|
@@ -8,6 +8,7 @@
|
|
|
|
#include <sys/types.h>
|
|
#include <dirent.h> /* for DIR */
|
|
+#include <limits.h>
|
|
|
|
#include "trace-cmd-private.h"
|
|
#include "event-utils.h"
|
|
diff --git a/tracecmd/trace-tsync.c b/tracecmd/trace-tsync.c
|
|
index e639788d..8b9083ae 100644
|
|
--- a/tracecmd/trace-tsync.c
|
|
+++ b/tracecmd/trace-tsync.c
|
|
@@ -104,13 +104,16 @@ int tracecmd_host_tsync(struct buffer_instance *instance,
|
|
|
|
pthread_attr_init(&attrib);
|
|
pthread_attr_setdetachstate(&attrib, PTHREAD_CREATE_JOINABLE);
|
|
- if (!get_first_cpu(&pin_mask, &mask_size))
|
|
- pthread_attr_setaffinity_np(&attrib, mask_size, pin_mask);
|
|
|
|
ret = pthread_create(&instance->tsync_thread, &attrib,
|
|
tsync_host_thread, &instance->tsync);
|
|
- if (!ret)
|
|
+
|
|
+ if (!ret) {
|
|
+ if (!get_first_cpu(&pin_mask, &mask_size))
|
|
+ pthread_setaffinity_np(instance->tsync_thread, mask_size, pin_mask);
|
|
instance->tsync_thread_running = true;
|
|
+ }
|
|
+
|
|
if (pin_mask)
|
|
CPU_FREE(pin_mask);
|
|
pthread_attr_destroy(&attrib);
|
|
@@ -243,11 +246,14 @@ unsigned int tracecmd_guest_tsync(char *tsync_protos,
|
|
pthread_attr_init(&attrib);
|
|
tsync->sync_proto = proto;
|
|
pthread_attr_setdetachstate(&attrib, PTHREAD_CREATE_JOINABLE);
|
|
- if (!get_first_cpu(&pin_mask, &mask_size))
|
|
- pthread_attr_setaffinity_np(&attrib, mask_size, pin_mask);
|
|
|
|
ret = pthread_create(thr_id, &attrib, tsync_agent_thread, tsync);
|
|
|
|
+ if (!ret) {
|
|
+ if (!get_first_cpu(&pin_mask, &mask_size))
|
|
+ pthread_setaffinity_np(*thr_id, mask_size, pin_mask);
|
|
+ }
|
|
+
|
|
if (pin_mask)
|
|
CPU_FREE(pin_mask);
|
|
pthread_attr_destroy(&attrib);
|