From 45bc09c37bae81a23b59149e95abccce16aea059 Mon Sep 17 00:00:00 2001 From: Amaury Denoyelle Date: Mon, 29 Jan 2024 15:15:27 +0100 Subject: [PATCH] MINOR: h3: add traces for stream sending function Replace h3_debug_printf() by real trace for functions used by stream layer snd_buf callback. A new event type H3_EV_STRM_SEND is created for the occasion. This should be backported up to 2.6 to help investigate H3 issues on stable releases. Note that h3_nego_ff/h3_done_ff definition are not available from 2.8. (cherry picked from commit df5cf9123fff25eaa8693b97e5c219827bd45581) Signed-off-by: Willy Tarreau --- src/h3.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/h3.c b/src/h3.c index 1ffc76b..bf8d3cb 100644 --- a/src/h3.c +++ b/src/h3.c @@ -72,6 +72,8 @@ static const struct trace_event h3_trace_events[] = { { .mask = H3_EV_H3C_NEW, .name = "h3c_new", .desc = "new H3 connection" }, #define H3_EV_H3C_END (1ULL << 10) { .mask = H3_EV_H3C_END, .name = "h3c_end", .desc = "H3 connection terminated" }, +#define H3_EV_STRM_SEND (1ULL << 12) + { .mask = H3_EV_STRM_SEND, .name = "strm_send", .desc = "sending data for stream" }, { } }; @@ -1901,7 +1903,7 @@ static size_t h3_snd_buf(struct qcs *qcs, struct buffer *buf, size_t count) int32_t idx; int ret = 0; - h3_debug_printf(stderr, "%s\n", __func__); + TRACE_ENTER(H3_EV_STRM_SEND, qcs->qcc->conn, qcs); htx = htx_from_buf(buf); @@ -2000,6 +2002,7 @@ static size_t h3_snd_buf(struct qcs *qcs, struct buffer *buf, size_t count) out: htx_to_buf(htx, buf); + TRACE_LEAVE(H3_EV_STRM_SEND, qcs->qcc->conn, qcs); return total; } @@ -2009,7 +2012,7 @@ static size_t h3_nego_ff(struct qcs *qcs, size_t count) int hsize; size_t sz, ret = 0; - h3_debug_printf(stderr, "%s\n", __func__); + TRACE_ENTER(H3_EV_STRM_SEND, qcs->qcc->conn, qcs); res = mux_get_buf(qcs); if (b_is_null(res)) { @@ -2046,12 +2049,14 @@ static size_t h3_nego_ff(struct qcs *qcs, size_t count) ret = count; end: + TRACE_LEAVE(H3_EV_STRM_SEND, qcs->qcc->conn, qcs); return ret; } static size_t h3_done_ff(struct qcs *qcs) { size_t total = qcs->sd->iobuf.data; + TRACE_ENTER(H3_EV_STRM_SEND, qcs->qcc->conn, qcs); h3_debug_printf(stderr, "%s\n", __func__); @@ -2066,6 +2071,7 @@ static size_t h3_done_ff(struct qcs *qcs) qcs->sd->iobuf.offset = 0; qcs->sd->iobuf.data = 0; + TRACE_LEAVE(H3_EV_STRM_SEND, qcs->qcc->conn, qcs); return total; } -- 1.7.10.4