]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MEDIUM/OPTIM: mux-quic: implement purg_list
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Tue, 17 Dec 2024 10:16:34 +0000 (11:16 +0100)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 18 Dec 2024 08:33:52 +0000 (09:33 +0100)
commite296585ae9eb86f898614aed2b04929018340ee7
tree79df2c9c6bc1cd1a688c059cf45e5c45af2be1e4
parent4b42dd4ae0d65c62d1979791b50dadd0d42774bb
MEDIUM/OPTIM: mux-quic: implement purg_list

This commit is part of the current serie which aims to refactor and
improve overall performance of QUIC MUX I/O handler.

qcc_io_process() is responsible to perform some internal operations on
QUIC MUX after I/O completion. It is notably called on every qcc_io_cb()
tasklet handler.

The most intensive work on it is the purging of QCS instances after
transfer completion. This was implemented by looping on QCC streams tree
and inspecting the state of every QCS. The purpose of this commit is to
optimize this processing.

A new purg_list QCC member is defined. It is responsible to list every
QCS instances whose transfer has been completed. It is thus safe to
reuse <el_send> QCS list attach point. Stream purging will thus only
loop on purg_list instead of every known QCS.

This should be backported up to 3.1.
include/haproxy/mux_quic-t.h
src/mux_quic.c