Re: [PATCH 2/2] trace: improve performance while category is disabled
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Nov 27, 2017, 01:32 UTC
- Message-ID
- <xmqqlgisfquy.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <xmqqpo84fre1.fsf@gitster.mtv.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 12 quoted lines
> gennady.kupava@gmail.com writes: > >> From: Gennady Kupava <gkupava@bloomberg.net> >> >> - Do the check if the trace key is enabled sooner in call chain. >> - Move just enough code from trace.c into trace.h header so all code >> necessary to determine that trace is disabled could be inlined to >> calling functions. > > Makes sense. Will queue. > > Thanks.
Just in case others notice style and whitespace issues, I've applied the following to fix them, so there is no need to reroll only to fix these.
diff --git a/trace.h b/trace.h index db10f2afeb..05395242aa 100644 --- a/trace.h +++ b/trace.h @@ -85,29 +85,29 @@ extern void trace_performance_since(uint64_t start, const char *format, ...); if (trace_pass_fl(key)) \ trace_printf_key_fl(TRACE_CONTEXT, __LINE__, key, \ __VA_ARGS__); \ - } while(0) + } while (0) #define trace_printf(...) trace_printf_key(&trace_default_key, __VA_ARGS__) #define trace_argv_printf(argv, ...) \ do { \ if (trace_pass_fl(&trace_default_key)) \ - trace_argv_printf_fl(TRACE_CONTEXT, __LINE__, \ + trace_argv_printf_fl(TRACE_CONTEXT, __LINE__, \ argv, __VA_ARGS__); \ - } while(0) + } while (0) #define trace_strbuf(key, data) \ do { \ if (trace_pass_fl(key)) \ trace_strbuf_fl(TRACE_CONTEXT, __LINE__, key, data);\ - } while(0) + } while (0) #define trace_performance(nanos, ...) \ do { \ if (trace_pass_fl(&trace_perf_key)) \ trace_performance_fl(TRACE_CONTEXT, __LINE__, nanos,\ - __VA_ARGS__); \ - } while(0) + __VA_ARGS__); \ + } while (0) #define trace_performance_since(start, ...) \ do { \ @@ -115,7 +115,7 @@ extern void trace_performance_since(uint64_t start, const char *format, ...); trace_performance_fl(TRACE_CONTEXT, __LINE__, \ getnanotime() - (start), \ __VA_ARGS__); \ - } while(0) + } while (0) /* backend functions, use non-*fl macros instead */ __attribute__((format (printf, 4, 5))) @@ -129,7 +129,8 @@ extern void trace_strbuf_fl(const char *file, int line, struct trace_key *key, __attribute__((format (printf, 4, 5))) extern void trace_performance_fl(const char *file, int line, uint64_t nanos, const char *fmt, ...); -inline int trace_pass_fl(struct trace_key *key) { +inline int trace_pass_fl(struct trace_key *key) +{ return key->fd || !key->initialized; }