You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
MEDIUM: mux-quic: allow to only release one buffer
Previous commit relaxed conditions for QUIC MUX Tx buffer allocation.
This was necessary to prevent slow throughput when a standalone stream
could only allocate a single buffer. Now, when a buffer is released, it
is removed from connection buffer window, thus allowing a new
allocation. However, this virtually allows a QCS to allocate many
buffers without any limit.
To fix this, add a limit on the number of released buffer that a QCS may
have. Once this limit is reached, qcc_release_stream_txbuf() operation
will return an error, flagging QCS with QC_SF_BLK_MROOM. Each time an
already released buffer is freed after ACK reception, new
qcs_notify_buf() is called by qc_stream_desc layer to wakeup the QCS
stream if currently blocked.
The limit is configured via a define QMUX_MAX_QCS_TXBUF_RELEASED. It is
set to 1 by default. This value is low enough to guarantee minimal
memory consumption for a QUIC connection while preserving transfer
throughput. Thus, the new buffer allocation limit is now :
qc_window_size + (1 * nb_streams)
0 commit comments