mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 05:41:26 +02:00
Several times recently, it was noticed that some benchmarks would highly vary depending on the position of certain fields in the server struct, and this could even vary between runs. The server struct does have separate areas depending on the user cases and hot/cold aspect of the members stored there, but the areas are artificially kept apart using fixed padding instead of real alignment, which has the first sad effect of artificially inflating the struct, and the second one of misaligning it. Now that we have all the necessary tools to keep them aligned, let's just do it. The struct has shrunk from 4160 to 4032 bytes on 64-bit systems, 152 of which are still holes or padding.