Harmonize vec/pool_get_aligned object sizes and alignment requests 44/12644/2
authorDave Barach <[email protected]>
Thu, 3 May 2018 12:26:39 +0000 (08:26 -0400)
committerDave Barach <[email protected]>
Fri, 18 May 2018 12:14:55 +0000 (12:14 +0000)
commit01b2c23faecee4a60cccf8219bf37fa588009b8d
treef247c2ae2beec0a9770337511c8d187b64a5aac0
parent6a4b97a6162994a5759ab1014fa2005439bb3ee3
Harmonize vec/pool_get_aligned object sizes and alignment requests

Object sizes must evenly divide alignment requests, or vice
versa. Otherwise, only the first object will be aligned as
requested.

Three choices: add CLIB_CACHE_LINE_ALIGN_MARK(align_me) at
the end of structures, manually pad to an even divisor or multiple of
the alignment request, or use plain vectors/pools.

static assert for enforcement.

Change-Id: I41aa6ff1a58267301d32aaf4b9cd24678ac1c147
Signed-off-by: Dave Barach <[email protected]>
50 files changed:
src/plugins/acl/acl.h
src/plugins/dpdk/device/dpdk.h
src/plugins/dpdk/ipsec/ipsec.h
src/plugins/gtpu/gtpu.h
src/plugins/ioam/analyse/ioam_analyse.h
src/plugins/ioam/export-common/ioam_export.h
src/plugins/ioam/ip6/ioam_cache.h
src/plugins/ioam/udp-ping/udp_ping.h
src/plugins/memif/private.h
src/plugins/pppoe/pppoe.h
src/vlib/unix/input.c
src/vnet/bier/bier_disp_entry.h
src/vnet/bier/bier_disp_table.h
src/vnet/bier/bier_fmask.h
src/vnet/bier/bier_imp.h
src/vnet/bier/bier_table.h
src/vnet/dpo/classify_dpo.h
src/vnet/dpo/l3_proxy_dpo.h
src/vnet/dpo/load_balance.h
src/vnet/dpo/load_balance_map.h
src/vnet/dpo/lookup_dpo.h
src/vnet/dpo/mpls_disposition.h
src/vnet/dpo/mpls_label_dpo.h
src/vnet/dpo/receive_dpo.h
src/vnet/dpo/replicate_dpo.h
src/vnet/fib/ip4_fib.c
src/vnet/fib/ip4_fib.h
src/vnet/fib/ip6_fib.c
src/vnet/fib/mpls_fib.c
src/vnet/fib/mpls_fib.h
src/vnet/geneve/geneve.h
src/vnet/gre/gre.h
src/vnet/ip/ip6.h
src/vnet/ip/ip_source_and_port_range_check.h
src/vnet/ipip/ipip.h
src/vnet/ipsec-gre/ipsec_gre.h
src/vnet/ipsec/ipsec.h
src/vnet/map/map.h
src/vnet/mfib/mfib_itf.h
src/vnet/mfib/mfib_table.h
src/vnet/qos/qos_egress_map.h
src/vnet/sctp/sctp.h
src/vnet/session/session_table.h
src/vnet/udp/udp.h
src/vnet/vxlan-gpe/vxlan_gpe.h
src/vnet/vxlan/vxlan.c
src/vnet/vxlan/vxlan.h
src/vpp/oam/oam.c
src/vppinfra/pool.h
src/vppinfra/vec.h