Harmonize vec/pool_get_aligned object sizes and alignment requests 79/12379/5
authorDave Barach <dbarach@cisco.com>
Thu, 3 May 2018 12:26:39 +0000 (08:26 -0400)
committerFlorin Coras <florin.coras@gmail.com>
Fri, 4 May 2018 15:15:22 +0000 (15:15 +0000)
commiteb987d3a09f669787014b1553f032219522149e1
tree8d092c7368cfc2e02fc1869c6ded7410ad734392
parent432bf677c6decadd05e3edfe54c02b1d01b2c64e
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 <dbarach@cisco.com>
49 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.h
src/vpp/oam/oam.c
src/vppinfra/pool.h
src/vppinfra/vec.h