]> git.ipfire.org Git - thirdparty/apache/httpd.git/commit
Re-order the fields of 'struct h2_session_props' to avoid a hole and some padding.
authorChristophe Jaillet <jailletc36@apache.org>
Sun, 19 Feb 2023 15:15:03 +0000 (15:15 +0000)
committerChristophe Jaillet <jailletc36@apache.org>
Sun, 19 Feb 2023 15:15:03 +0000 (15:15 +0000)
commit994d6cd45d1400446ed0e854771d4bda43e123e4
tree03d40e5b6f3bc797b1f31feb4087ee06023ab338
parent8c3125324eff715264cd0a788dbfce5f4ab2346a
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
modules/http2/h2.h