vlib: add postmortem pcap dispatch trace 34/29734/2
authorDave Barach <dave@barachs.net>
Tue, 3 Nov 2020 14:59:06 +0000 (09:59 -0500)
committerFlorin Coras <florin.coras@gmail.com>
Wed, 4 Nov 2020 17:39:10 +0000 (17:39 +0000)
commit27d978c9136e903244113a7ab57acea4b496898e
tree1520252a663db663b0634633149e5f83a9c23f53
parenta210433d534fe0039ddc2a9aa9840895aef0405d
vlib: add postmortem pcap dispatch trace

Inspired by a real-life conundrum: scenario X involves a vpp crash in
ip4-load-balance because vnet_buffer(b)->ip.adj_index[VLIB_TX] is
(still) set to ~0.

The problem takes most of a day to occur, and we need to see the
broken packet's graph trajectory, metadata, etc. to understand the
problem.

Fix a signed/unsigned ASSERT bug in vlib_get_trace_count().

Rename elog_post_mortem_dump() -> vlib_post_mortem_dump(), add
dispatch trace post-mortem dump.

Add FILTER_FLAG_POST_MORTEM so we can (putatively) capture a ludicrous
number of buffer traces, without actually using more than one dispatch
cycle's worth of memory.

Type: improvement

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: If093202ef071df46e290370bd9b33bf6560d30e6
src/vlib/main.c
src/vlib/main.h
src/vlib/trace.c
src/vlib/trace.h
src/vlib/trace_funcs.h
src/vpp/vnet/main.c