From 6d9b54d845b08d54d3f483f1130b499516588db3 Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Fri, 2 Mar 2018 17:36:26 -0500 Subject: [PATCH] Fix: cache the result of getpid() internally On Linux we called getpid() directly on each tracepoint and relied on the glibc pid cache. However, in glibc 2.25, released on 2017-02-05, the pid cache was removed which results in a getpid syscall on each event when the vpid context is enabled. Remove the Linux specific case and use our internal cache all the time. Signed-off-by: Michael Jeanson Signed-off-by: Mathieu Desnoyers --- liblttng-ust/lttng-context-vpid.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/liblttng-ust/lttng-context-vpid.c b/liblttng-ust/lttng-context-vpid.c index 5e5ed145..53fb314b 100644 --- a/liblttng-ust/lttng-context-vpid.c +++ b/liblttng-ust/lttng-context-vpid.c @@ -27,17 +27,6 @@ #include #include -#ifdef __linux__ -static inline -pid_t wrapper_getpid(void) -{ - return getpid(); -} - -void lttng_context_vpid_reset(void) -{ -} -#else /* * We cache the result to ensure we don't trigger a system call for * each event. @@ -60,7 +49,6 @@ void lttng_context_vpid_reset(void) { cached_vpid = 0; } -#endif static size_t vpid_get_size(struct lttng_ctx_field *field, size_t offset) -- 2.34.1