openvswitch: add trace points
authorAaron Conole <aconole@redhat.com>
Tue, 22 Jun 2021 14:02:33 +0000 (10:02 -0400)
committerDavid S. Miller <davem@davemloft.net>
Tue, 22 Jun 2021 17:47:32 +0000 (10:47 -0700)
commitc4ab7b56be0f6f18f025ddc8d469cce54f82415a
treebc97103096899129dd9b6e818156e6958a7e9bcb
parentb0e03950dd71315204c24a3dffb2d9fc477e82de
openvswitch: add trace points

This makes openvswitch module use the event tracing framework
to log the upcall interface and action execution pipeline.  When
using openvswitch as the packet forwarding engine, some types of
debugging are made possible simply by using the ovs-vswitchd's
ofproto/trace command.  However, such a command has some
limitations:

  1. When trying to trace packets that go through the CT action,
     the state of the packet can't be determined, and probably
     would be potentially wrong.

  2. Deducing problem packets can sometimes be difficult as well
     even if many of the flows are known

  3. It's possible to use the openvswitch module even without
     the ovs-vswitchd (although, not common use).

Introduce the event tracing points here to make it possible for
working through these problems in kernel space.  The style is
copied from the mac80211 driver-trace / trace code for
consistency - this creates some checkpatch splats, but the
official 'guide' for adding tracepoints, as well as the existing
examples all add the same splats so it seems acceptable.

Signed-off-by: Aaron Conole <aconole@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/openvswitch/Makefile
net/openvswitch/actions.c
net/openvswitch/datapath.c
net/openvswitch/openvswitch_trace.c [new file with mode: 0644]
net/openvswitch/openvswitch_trace.h [new file with mode: 0644]