]> git.kaiwu.me - nginx.git/commit
QUIC: coalesce neighbouring stream send buffers.
authorRoman Arutyunyan <arut@nginx.com>
Tue, 18 Aug 2020 09:28:33 +0000 (12:28 +0300)
committerRoman Arutyunyan <arut@nginx.com>
Tue, 18 Aug 2020 09:28:33 +0000 (12:28 +0300)
commitff1941d6ddb014da8b085c7ca9ba1098b4ec35a5
tree873f0a1b3ebce8f779c6f8acd723fe9452dcaff8
parent6e17937db4f7419427333e9afd66c9819e4f9aaf
QUIC: coalesce neighbouring stream send buffers.

Previously a single STREAM frame was created for each buffer in stream output
chain which is wasteful with respect to memory.  The following changes were
made in the stream send code:

- ngx_quic_stream_send_chain() no longer calls ngx_quic_stream_send() and got
  a separate implementation that coalesces neighbouring buffers into a single
  frame
- the new ngx_quic_stream_send_chain() respects the limit argument, which fixes
  sendfile_max_chunk and limit_rate
- ngx_quic_stream_send() is reimplemented to call ngx_quic_stream_send_chain()
- stream frame size limit is moved out to a separate function
  ngx_quic_max_stream_frame()
- flow control is moved out to a separate function ngx_quic_max_stream_flow()
- ngx_quic_stream_send_chain() is relocated next to ngx_quic_stream_send()
src/event/ngx_event_quic.c