[OPTIM] reorder http_txn to optimize cache lines placement
This re-ordering brings about 3% of performance boost on x86_64
on pipeline intensive requests, which means it mainly benefits
the parsers.
diff --git a/include/types/proto_http.h b/include/types/proto_http.h
index c68b0c9..ba23968 100644
--- a/include/types/proto_http.h
+++ b/include/types/proto_http.h
@@ -303,17 +303,20 @@
* response message (which can be empty).
*/
struct http_txn {
- http_meth_t meth; /* HTTP method */
+ struct http_msg req; /* HTTP request message */
struct hdr_idx hdr_idx; /* array of header indexes (max: MAX_HTTP_HDR) */
- struct chunk auth_hdr; /* points to 'Authorization:' header */
- struct http_msg req, rsp; /* HTTP request and response messages */
+ unsigned int flags; /* transaction flags */
+ http_meth_t meth; /* HTTP method */
+
+ int status; /* HTTP status from the server, negative if from proxy */
+ struct http_msg rsp; /* HTTP response message */
- char *uri; /* first line if log needed, NULL otherwise */
- char *cli_cookie; /* cookie presented by the client, in capture mode */
- char *srv_cookie; /* cookie presented by the server, in capture mode */
+ char *uri; /* first line if log needed, NULL otherwise */
+ char *cli_cookie; /* cookie presented by the client, in capture mode */
+ char *srv_cookie; /* cookie presented by the server, in capture mode */
char *sessid; /* the appsession id, if found in the request or in the response */
- int status; /* HTTP status from the server, negative if from proxy */
- unsigned int flags; /* transaction flags */
+
+ struct chunk auth_hdr; /* points to 'Authorization:' header */
};
/* This structure is used by http_find_header() to return values of headers.