summaryrefslogtreecommitdiff
path: root/modules/http2
diff options
context:
space:
mode:
authorChristophe Jaillet <jailletc36@apache.org>2023-02-19 15:15:03 +0000
committerChristophe Jaillet <jailletc36@apache.org>2023-02-19 15:15:03 +0000
commit994d6cd45d1400446ed0e854771d4bda43e123e4 (patch)
tree03d40e5b6f3bc797b1f31feb4087ee06023ab338 /modules/http2
parent8c3125324eff715264cd0a788dbfce5f4ab2346a (diff)
downloadhttpd-994d6cd45d1400446ed0e854771d4bda43e123e4.tar.gz
Re-order the fields of 'struct h2_session_props' to avoid a hole and some padding.
On x86_64, this shrinks the size of the struct from 40 to 32 bytes. Before the patch, pahole states that: struct h2_session_props { int accepted_max; /* 0 4 */ int completed_max; /* 4 4 */ int emitted_count; /* 8 4 */ int emitted_max; /* 12 4 */ int error; /* 16 4 */ /* XXX 4 bytes hole, try to pack */ const char * error_msg; /* 24 8 */ unsigned int accepting:1; /* 32: 0 4 */ unsigned int shutdown:1; /* 32: 1 4 */ /* size: 40, cachelines: 1, members: 8 */ /* sum members: 28, holes: 1, sum holes: 4 */ /* sum bitfield members: 2 bits (0 bytes) */ /* padding: 4 */ /* bit_padding: 30 bits */ /* last cacheline: 40 bytes */ }; git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1907756 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/http2')
-rw-r--r--modules/http2/h2.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/modules/http2/h2.h b/modules/http2/h2.h
index 250e7260e8..aa58b61a5a 100644
--- a/modules/http2/h2.h
+++ b/modules/http2/h2.h
@@ -114,10 +114,10 @@ typedef struct h2_session_props {
int completed_max; /* the highest remote stream completed */
int emitted_count; /* the number of local streams sent */
int emitted_max; /* the highest local stream id sent */
- int error; /* the last session error encountered */
- const char *error_msg; /* the short message given on the error */
unsigned int accepting : 1; /* if the session is accepting new streams */
unsigned int shutdown : 1; /* if the final GOAWAY has been sent */
+ int error; /* the last session error encountered */
+ const char *error_msg; /* the short message given on the error */
} h2_session_props;
typedef enum h2_stream_state_t {