From df93cf72b9995c9580649e6e69a82692decc3f83 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Thu, 14 Nov 2024 08:54:32 +0100 Subject: [PATCH] MINOR: mux-h2: count glitches when they're reported The h2c_report_glitch() function is now replaced with a macro to support enumerating counters for each individual glitch line. For now this adds 43 such counters. The macro supports an optional description, though that is not being used for now. It gives outputs like this (note that the last one was purposely instrumented to pass a description): > debug dev counters glt all 0 GLT mux_h2.c:5976 h2c_dec_hdrs() 0 GLT mux_h2.c:5960 h2c_dec_hdrs() (...) 0 GLT mux_h2.c:2207 h2c_frt_recv_preface() 0 GLT mux_h2.c:1954 h2c_frt_stream_new(): new stream too early As a reminder, this requires to build with -DDEBUG_GLITCHES=1. --- src/mux_h2.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/mux_h2.c b/src/mux_h2.c index b65518c004..8910a909ac 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -1586,7 +1586,12 @@ static void __maybe_unused h2s_alert(struct h2s *h2s) * glitch limit was reached, in which case an error is also reported on the * connection. */ -static inline int h2c_report_glitch(struct h2c *h2c, int increment) +#define h2c_report_glitch(h2c, inc, ...) ({ \ + COUNT_GLITCH(__VA_ARGS__); \ + _h2c_report_glitch(h2c, inc); \ + }) + +static inline int _h2c_report_glitch(struct h2c *h2c, int increment) { int thres = (h2c->flags & H2_CF_IS_BACK) ? h2_be_glitches_threshold : h2_fe_glitches_threshold;