From c76e072e437e745092aae696933ff7bc3ccb4d52 Mon Sep 17 00:00:00 2001 From: Frederic Lecaille Date: Thu, 6 Nov 2025 15:36:43 +0100 Subject: [PATCH] MINOR: quic-be: avoid a useless I/O callback wakeup for 0-RTT sessions For backends and 0-RTT sessions, this patch modifies the ->start() callback to wake up the I/O callback only if the connection (and the mux) is not ready. Note that connect_server() has been modified to call this xprt callback just after having created the mux and installed the mux. Contrary to 1-RTT session, for 0-RTT sessions, the connections are always ready before calling this ->start xprt callback. --- src/xprt_quic.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/xprt_quic.c b/src/xprt_quic.c index c256f4427..5ab196a3b 100644 --- a/src/xprt_quic.c +++ b/src/xprt_quic.c @@ -182,7 +182,8 @@ static int qc_xprt_start(struct connection *conn, void *ctx) * is not done for 0-RTT as xprt->start happens before handshake * completion. */ - if (qc_is_back(qc) || (qc->flags & QUIC_FL_CONN_NEED_POST_HANDSHAKE_FRMS)) + if ((qc_is_back(qc) && !qc_is_conn_ready(qc)) || + (qc->flags & QUIC_FL_CONN_NEED_POST_HANDSHAKE_FRMS)) tasklet_wakeup(qc->wait_event.tasklet); ret = 1; -- 2.47.3