mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-04-14 18:47:30 +07:00
![]() Minimize padding in sw_flow_key and move 'tp' top the main struct. These changes simplify code when accessing the transport port numbers and the tcp flags, and makes the sw_flow_key 8 bytes smaller on 64-bit systems (128->120 bytes). These changes also make the keys for IPv4 packets to fit in one cache line. There is a valid concern for safety of packing the struct ovs_key_ipv4_tunnel, as it would be possible to take the address of the tun_id member as a __be64 * which could result in unaligned access in some systems. However: - sw_flow_key itself is 64-bit aligned, so the tun_id within is always 64-bit aligned. - We never make arrays of ovs_key_ipv4_tunnel (which would force every second tun_key to be misaligned). - We never take the address of the tun_id in to a __be64 *. - Whereever we use struct ovs_key_ipv4_tunnel outside the sw_flow_key, it is in stack (on tunnel input functions), where compiler has full control of the alignment. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Signed-off-by: Pravin B Shelar <pshelar@nicira.com> |
||
---|---|---|
.. | ||
actions.c | ||
datapath.c | ||
datapath.h | ||
dp_notify.c | ||
flow_netlink.c | ||
flow_netlink.h | ||
flow_table.c | ||
flow_table.h | ||
flow.c | ||
flow.h | ||
Kconfig | ||
Makefile | ||
vport-gre.c | ||
vport-internal_dev.c | ||
vport-internal_dev.h | ||
vport-netdev.c | ||
vport-netdev.h | ||
vport-vxlan.c | ||
vport.c | ||
vport.h |