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.
This commit is contained in:
Willy Tarreau 2024-11-14 08:54:32 +01:00
parent 502790ed7e
commit df93cf72b9
1 changed files with 6 additions and 1 deletions

View File

@ -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;