mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 14:21:25 +02:00
REORG: mux-h1: Reorg the H1C structure
Fields in H1C structure are reorganised to not have the output buffer straddled between to cache lines. There is 4-bytes hole after the flags, but it will be partially filled by an enum representing the H1 connection state.
This commit is contained in:
parent
7fcbcc0e4c
commit
089cc6e805
23
src/mux_h1.c
23
src/mux_h1.c
@ -35,21 +35,24 @@
|
|||||||
/* H1 connection descriptor */
|
/* H1 connection descriptor */
|
||||||
struct h1c {
|
struct h1c {
|
||||||
struct connection *conn;
|
struct connection *conn;
|
||||||
struct proxy *px;
|
|
||||||
uint32_t flags; /* Connection flags: H1C_F_* */
|
|
||||||
unsigned int errcode; /* Status code when an error occurred at the H1 connection level */
|
|
||||||
struct buffer ibuf; /* Input buffer to store data before parsing */
|
|
||||||
struct buffer obuf; /* Output buffer to store data after reformatting */
|
|
||||||
|
|
||||||
struct buffer_wait buf_wait; /* Wait list for buffer allocation */
|
|
||||||
struct wait_event wait_event; /* To be used if we're waiting for I/Os */
|
|
||||||
|
|
||||||
struct h1s *h1s; /* H1 stream descriptor */
|
struct h1s *h1s; /* H1 stream descriptor */
|
||||||
struct task *task; /* timeout management task */
|
struct task *task; /* timeout management task */
|
||||||
struct h1_counters *px_counters; /* h1 counters attached to proxy */
|
|
||||||
|
uint32_t flags; /* Connection flags: H1C_F_* */
|
||||||
|
|
||||||
|
struct buffer ibuf; /* Input buffer to store data before parsing */
|
||||||
|
struct buffer obuf; /* Output buffer to store data after reformatting */
|
||||||
|
struct proxy *px;
|
||||||
|
|
||||||
|
unsigned int errcode; /* Status code when an error occurred at the H1 connection level */
|
||||||
|
|
||||||
int idle_exp; /* idle expiration date (http-keep-alive or http-request timeout) */
|
int idle_exp; /* idle expiration date (http-keep-alive or http-request timeout) */
|
||||||
int timeout; /* client/server timeout duration */
|
int timeout; /* client/server timeout duration */
|
||||||
int shut_timeout; /* client-fin/server-fin timeout duration */
|
int shut_timeout; /* client-fin/server-fin timeout duration */
|
||||||
|
|
||||||
|
struct h1_counters *px_counters; /* h1 counters attached to proxy */
|
||||||
|
struct buffer_wait buf_wait; /* Wait list for buffer allocation */
|
||||||
|
struct wait_event wait_event; /* To be used if we're waiting for I/Os */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* H1 stream descriptor */
|
/* H1 stream descriptor */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user