Coverage Report

Created: 2023-03-26 07:42

/src/openvswitch/lib/coverage.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014 Nicira, Inc.
3
 *
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at:
7
 *
8
 *     http://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16
17
#ifndef COVERAGE_H
18
#define COVERAGE_H 1
19
20
/* This file implements a simple form of coverage instrumentation.  Points in
21
 * source code that are of interest must be explicitly annotated with
22
 * COVERAGE_INC.  The coverage counters may be logged at any time with
23
 * coverage_log().
24
 *
25
 * This form of coverage instrumentation is intended to be so lightweight that
26
 * it can be enabled in production builds.  It is obviously not a substitute
27
 * for traditional coverage instrumentation with e.g. "gcov", but it is still
28
 * a useful debugging tool. */
29
30
#include "ovs-thread.h"
31
#include "compiler.h"
32
33
/* Makes coverage_run run every 5000 ms (5 seconds).
34
 * If this value is redefined, the new value must
35
 * divide 60000 (1 minute). */
36
0
#define COVERAGE_RUN_INTERVAL    5000
37
BUILD_ASSERT_DECL(60000 % COVERAGE_RUN_INTERVAL == 0);
38
39
0
#define COVERAGE_CLEAR_INTERVAL  1000
40
BUILD_ASSERT_DECL(COVERAGE_RUN_INTERVAL % COVERAGE_CLEAR_INTERVAL == 0);
41
42
/* Defines the moving average array length. */
43
0
#define MIN_AVG_LEN (60000/COVERAGE_RUN_INTERVAL)
44
0
#define HR_AVG_LEN  60
45
46
/* A coverage counter. */
47
struct coverage_counter {
48
    const char *const name;            /* Textual name. */
49
    unsigned int (*const count)(void); /* Gets, zeros this thread's count. */
50
    unsigned long long int total;      /* Total count. */
51
    unsigned long long int last_total;
52
    /* The moving average arrays. */
53
    unsigned int min[MIN_AVG_LEN];
54
    unsigned int hr[HR_AVG_LEN];
55
};
56
57
void coverage_counter_register(struct coverage_counter*);
58
59
/* Defines COUNTER.  There must be exactly one such definition at file scope
60
 * within a program. */
61
#define COVERAGE_DEFINE(COUNTER)                                        \
62
        DEFINE_STATIC_PER_THREAD_DATA(unsigned int,                     \
63
                                      counter_##COUNTER, 0);            \
64
        static unsigned int COUNTER##_count(void)                       \
65
0
        {                                                               \
66
0
            unsigned int *countp = counter_##COUNTER##_get();           \
67
0
            unsigned int count = *countp;                               \
68
0
            *countp = 0;                                                \
69
0
            return count;                                               \
70
0
        }                                                               \
Unexecuted instantiation: util.c:util_xalloc_count
Unexecuted instantiation: flow.c:flow_extract_count
Unexecuted instantiation: flow.c:miniflow_extract_ipv4_pkt_len_error_count
Unexecuted instantiation: flow.c:miniflow_extract_ipv4_pkt_too_short_count
Unexecuted instantiation: flow.c:miniflow_extract_ipv6_pkt_len_error_count
Unexecuted instantiation: flow.c:miniflow_extract_ipv6_pkt_too_short_count
Unexecuted instantiation: flow.c:miniflow_malloc_count
Unexecuted instantiation: netdev.c:netdev_received_count
Unexecuted instantiation: netdev.c:netdev_sent_count
Unexecuted instantiation: netdev.c:netdev_add_router_count
Unexecuted instantiation: netdev.c:netdev_get_stats_count
Unexecuted instantiation: netdev.c:netdev_send_prepare_drops_count
Unexecuted instantiation: netdev.c:netdev_push_header_drops_count
Unexecuted instantiation: poll-loop.c:poll_create_node_count
Unexecuted instantiation: poll-loop.c:poll_zero_timeout_count
Unexecuted instantiation: seq.c:seq_change_count
Unexecuted instantiation: unixctl.c:unixctl_received_count
Unexecuted instantiation: unixctl.c:unixctl_replied_count
Unexecuted instantiation: netdev-linux.c:netdev_set_policing_count
Unexecuted instantiation: netdev-linux.c:netdev_arp_lookup_count
Unexecuted instantiation: netdev-linux.c:netdev_get_ifindex_count
Unexecuted instantiation: netdev-linux.c:netdev_get_hwaddr_count
Unexecuted instantiation: netdev-linux.c:netdev_set_hwaddr_count
Unexecuted instantiation: netdev-linux.c:netdev_get_ethtool_count
Unexecuted instantiation: netdev-linux.c:netdev_set_ethtool_count
Unexecuted instantiation: netlink-socket.c:netlink_overflow_count
Unexecuted instantiation: netlink-socket.c:netlink_received_count
Unexecuted instantiation: netlink-socket.c:netlink_recv_jumbo_count
Unexecuted instantiation: netlink-socket.c:netlink_sent_count
Unexecuted instantiation: ccmap.c:ccmap_expand_count
Unexecuted instantiation: ccmap.c:ccmap_shrink_count
Unexecuted instantiation: cmap.c:cmap_expand_count
Unexecuted instantiation: cmap.c:cmap_shrink_count
Unexecuted instantiation: dpif.c:dpif_destroy_count
Unexecuted instantiation: dpif.c:dpif_port_add_count
Unexecuted instantiation: dpif.c:dpif_port_del_count
Unexecuted instantiation: dpif.c:dpif_flow_flush_count
Unexecuted instantiation: dpif.c:dpif_flow_get_count
Unexecuted instantiation: dpif.c:dpif_flow_put_count
Unexecuted instantiation: dpif.c:dpif_flow_del_count
Unexecuted instantiation: dpif.c:dpif_execute_count
Unexecuted instantiation: dpif.c:dpif_purge_count
Unexecuted instantiation: dpif.c:dpif_execute_with_help_count
Unexecuted instantiation: dpif.c:dpif_meter_set_count
Unexecuted instantiation: dpif.c:dpif_meter_get_count
Unexecuted instantiation: dpif.c:dpif_meter_del_count
Unexecuted instantiation: hmap.c:hmap_pathological_count
Unexecuted instantiation: hmap.c:hmap_expand_count
Unexecuted instantiation: hmap.c:hmap_shrink_count
Unexecuted instantiation: hmap.c:hmap_reserve_count
Unexecuted instantiation: odp-execute.c:datapath_drop_sample_error_count
Unexecuted instantiation: odp-execute.c:datapath_drop_nsh_decap_error_count
Unexecuted instantiation: odp-execute.c:drop_action_of_pipeline_count
Unexecuted instantiation: odp-execute.c:drop_action_bridge_not_found_count
Unexecuted instantiation: odp-execute.c:drop_action_recursion_too_deep_count
Unexecuted instantiation: odp-execute.c:drop_action_too_many_resubmit_count
Unexecuted instantiation: odp-execute.c:drop_action_stack_too_deep_count
Unexecuted instantiation: odp-execute.c:drop_action_no_recirculation_context_count
Unexecuted instantiation: odp-execute.c:drop_action_recirculation_conflict_count
Unexecuted instantiation: odp-execute.c:drop_action_too_many_mpls_labels_count
Unexecuted instantiation: odp-execute.c:drop_action_invalid_tunnel_metadata_count
Unexecuted instantiation: odp-execute.c:drop_action_unsupported_packet_type_count
Unexecuted instantiation: odp-execute.c:drop_action_congestion_count
Unexecuted instantiation: odp-execute.c:drop_action_forwarding_disabled_count
Unexecuted instantiation: stream.c:pstream_open_count
Unexecuted instantiation: stream.c:stream_open_count
Unexecuted instantiation: netlink-notifier.c:nln_changed_count
Unexecuted instantiation: conntrack.c:conntrack_full_count
Unexecuted instantiation: conntrack.c:conntrack_l3csum_err_count
Unexecuted instantiation: conntrack.c:conntrack_l4csum_err_count
Unexecuted instantiation: conntrack.c:conntrack_lookup_natted_miss_count
Unexecuted instantiation: dpif-netdev.c:datapath_drop_meter_count
Unexecuted instantiation: dpif-netdev.c:datapath_drop_upcall_error_count
Unexecuted instantiation: dpif-netdev.c:datapath_drop_lock_error_count
Unexecuted instantiation: dpif-netdev.c:datapath_drop_userspace_action_error_count
Unexecuted instantiation: dpif-netdev.c:datapath_drop_tunnel_push_error_count
Unexecuted instantiation: dpif-netdev.c:datapath_drop_tunnel_pop_error_count
Unexecuted instantiation: dpif-netdev.c:datapath_drop_recirc_error_count
Unexecuted instantiation: dpif-netdev.c:datapath_drop_invalid_port_count
Unexecuted instantiation: dpif-netdev.c:datapath_drop_invalid_bond_count
Unexecuted instantiation: dpif-netdev.c:datapath_drop_invalid_tnl_port_count
Unexecuted instantiation: dpif-netdev.c:datapath_drop_rx_invalid_packet_count
Unexecuted instantiation: hindex.c:hindex_pathological_count
Unexecuted instantiation: hindex.c:hindex_expand_count
Unexecuted instantiation: hindex.c:hindex_shrink_count
Unexecuted instantiation: hindex.c:hindex_reserve_count
Unexecuted instantiation: ipf.c:ipf_stuck_frag_list_purged_count
Unexecuted instantiation: ipf.c:ipf_l3csum_err_count
Unexecuted instantiation: conntrack-tcp.c:conntrack_tcp_seq_chk_bypass_count
Unexecuted instantiation: conntrack-tcp.c:conntrack_tcp_seq_chk_failed_count
Unexecuted instantiation: conntrack-tcp.c:conntrack_invalid_tcp_flags_count
Unexecuted instantiation: ovsdb-idl.c:txn_uncommitted_count
Unexecuted instantiation: ovsdb-idl.c:txn_unchanged_count
Unexecuted instantiation: ovsdb-idl.c:txn_incomplete_count
Unexecuted instantiation: ovsdb-idl.c:txn_aborted_count
Unexecuted instantiation: ovsdb-idl.c:txn_success_count
Unexecuted instantiation: ovsdb-idl.c:txn_try_again_count
Unexecuted instantiation: ovsdb-idl.c:txn_not_locked_count
Unexecuted instantiation: ovsdb-idl.c:txn_error_count
71
        static inline void COUNTER##_add(unsigned int n)                \
72
44.6M
        {                                                               \
73
44.6M
            *counter_##COUNTER##_get() += n;                            \
74
44.6M
        }                                                               \
util.c:util_xalloc_add
Line
Count
Source
72
44.4M
        {                                                               \
73
44.4M
            *counter_##COUNTER##_get() += n;                            \
74
44.4M
        }                                                               \
flow.c:flow_extract_add
Line
Count
Source
72
120k
        {                                                               \
73
120k
            *counter_##COUNTER##_get() += n;                            \
74
120k
        }                                                               \
flow.c:miniflow_extract_ipv4_pkt_too_short_add
Line
Count
Source
72
295
        {                                                               \
73
295
            *counter_##COUNTER##_get() += n;                            \
74
295
        }                                                               \
flow.c:miniflow_extract_ipv4_pkt_len_error_add
Line
Count
Source
72
1.93k
        {                                                               \
73
1.93k
            *counter_##COUNTER##_get() += n;                            \
74
1.93k
        }                                                               \
flow.c:miniflow_extract_ipv6_pkt_too_short_add
Line
Count
Source
72
347
        {                                                               \
73
347
            *counter_##COUNTER##_get() += n;                            \
74
347
        }                                                               \
flow.c:miniflow_extract_ipv6_pkt_len_error_add
Line
Count
Source
72
1.82k
        {                                                               \
73
1.82k
            *counter_##COUNTER##_get() += n;                            \
74
1.82k
        }                                                               \
flow.c:miniflow_malloc_add
Line
Count
Source
72
107k
        {                                                               \
73
107k
            *counter_##COUNTER##_get() += n;                            \
74
107k
        }                                                               \
Unexecuted instantiation: netdev.c:netdev_received_add
Unexecuted instantiation: netdev.c:netdev_send_prepare_drops_add
Unexecuted instantiation: netdev.c:netdev_sent_add
Unexecuted instantiation: netdev.c:netdev_push_header_drops_add
Unexecuted instantiation: netdev.c:netdev_add_router_add
Unexecuted instantiation: netdev.c:netdev_get_stats_add
Unexecuted instantiation: poll-loop.c:poll_create_node_add
Unexecuted instantiation: poll-loop.c:poll_zero_timeout_add
Unexecuted instantiation: seq.c:seq_change_add
Unexecuted instantiation: unixctl.c:unixctl_replied_add
Unexecuted instantiation: unixctl.c:unixctl_received_add
Unexecuted instantiation: netdev-linux.c:netdev_set_hwaddr_add
Unexecuted instantiation: netdev-linux.c:netdev_get_hwaddr_add
Unexecuted instantiation: netdev-linux.c:netdev_set_policing_add
Unexecuted instantiation: netdev-linux.c:netdev_arp_lookup_add
Unexecuted instantiation: netdev-linux.c:netdev_get_ethtool_add
Unexecuted instantiation: netdev-linux.c:netdev_set_ethtool_add
Unexecuted instantiation: netdev-linux.c:netdev_get_ifindex_add
Unexecuted instantiation: netlink-socket.c:netlink_sent_add
Unexecuted instantiation: netlink-socket.c:netlink_overflow_add
Unexecuted instantiation: netlink-socket.c:netlink_recv_jumbo_add
Unexecuted instantiation: netlink-socket.c:netlink_received_add
Unexecuted instantiation: ccmap.c:ccmap_expand_add
Unexecuted instantiation: ccmap.c:ccmap_shrink_add
Unexecuted instantiation: cmap.c:cmap_expand_add
Unexecuted instantiation: cmap.c:cmap_shrink_add
Unexecuted instantiation: dpif.c:dpif_destroy_add
Unexecuted instantiation: dpif.c:dpif_port_add_add
Unexecuted instantiation: dpif.c:dpif_port_del_add
Unexecuted instantiation: dpif.c:dpif_flow_flush_add
Unexecuted instantiation: dpif.c:dpif_flow_put_add
Unexecuted instantiation: dpif.c:dpif_flow_get_add
Unexecuted instantiation: dpif.c:dpif_flow_del_add
Unexecuted instantiation: dpif.c:dpif_execute_add
Unexecuted instantiation: dpif.c:dpif_execute_with_help_add
Unexecuted instantiation: dpif.c:dpif_purge_add
Unexecuted instantiation: dpif.c:dpif_meter_set_add
Unexecuted instantiation: dpif.c:dpif_meter_get_add
Unexecuted instantiation: dpif.c:dpif_meter_del_add
hmap.c:hmap_expand_add
Line
Count
Source
72
4.81k
        {                                                               \
73
4.81k
            *counter_##COUNTER##_get() += n;                            \
74
4.81k
        }                                                               \
hmap.c:hmap_pathological_add
Line
Count
Source
72
717
        {                                                               \
73
717
            *counter_##COUNTER##_get() += n;                            \
74
717
        }                                                               \
Unexecuted instantiation: hmap.c:hmap_shrink_add
Unexecuted instantiation: hmap.c:hmap_reserve_add
Unexecuted instantiation: odp-execute.c:datapath_drop_sample_error_add
Unexecuted instantiation: odp-execute.c:datapath_drop_nsh_decap_error_add
Unexecuted instantiation: odp-execute.c:drop_action_of_pipeline_add
Unexecuted instantiation: odp-execute.c:drop_action_bridge_not_found_add
Unexecuted instantiation: odp-execute.c:drop_action_recursion_too_deep_add
Unexecuted instantiation: odp-execute.c:drop_action_too_many_resubmit_add
Unexecuted instantiation: odp-execute.c:drop_action_stack_too_deep_add
Unexecuted instantiation: odp-execute.c:drop_action_no_recirculation_context_add
Unexecuted instantiation: odp-execute.c:drop_action_recirculation_conflict_add
Unexecuted instantiation: odp-execute.c:drop_action_too_many_mpls_labels_add
Unexecuted instantiation: odp-execute.c:drop_action_invalid_tunnel_metadata_add
Unexecuted instantiation: odp-execute.c:drop_action_unsupported_packet_type_add
Unexecuted instantiation: odp-execute.c:drop_action_congestion_add
Unexecuted instantiation: odp-execute.c:drop_action_forwarding_disabled_add
Unexecuted instantiation: stream.c:stream_open_add
Unexecuted instantiation: stream.c:pstream_open_add
Unexecuted instantiation: netlink-notifier.c:nln_changed_add
Unexecuted instantiation: conntrack.c:conntrack_l3csum_err_add
Unexecuted instantiation: conntrack.c:conntrack_lookup_natted_miss_add
Unexecuted instantiation: conntrack.c:conntrack_full_add
Unexecuted instantiation: conntrack.c:conntrack_l4csum_err_add
Unexecuted instantiation: dpif-netdev.c:datapath_drop_rx_invalid_packet_add
Unexecuted instantiation: dpif-netdev.c:datapath_drop_upcall_error_add
Unexecuted instantiation: dpif-netdev.c:datapath_drop_lock_error_add
Unexecuted instantiation: dpif-netdev.c:datapath_drop_invalid_port_add
Unexecuted instantiation: dpif-netdev.c:datapath_drop_invalid_bond_add
Unexecuted instantiation: dpif-netdev.c:datapath_drop_tunnel_push_error_add
Unexecuted instantiation: dpif-netdev.c:datapath_drop_tunnel_pop_error_add
Unexecuted instantiation: dpif-netdev.c:datapath_drop_invalid_tnl_port_add
Unexecuted instantiation: dpif-netdev.c:datapath_drop_recirc_error_add
Unexecuted instantiation: dpif-netdev.c:datapath_drop_userspace_action_error_add
Unexecuted instantiation: dpif-netdev.c:datapath_drop_meter_add
Unexecuted instantiation: hindex.c:hindex_expand_add
Unexecuted instantiation: hindex.c:hindex_shrink_add
Unexecuted instantiation: hindex.c:hindex_reserve_add
Unexecuted instantiation: hindex.c:hindex_pathological_add
Unexecuted instantiation: ipf.c:ipf_l3csum_err_add
Unexecuted instantiation: ipf.c:ipf_stuck_frag_list_purged_add
Unexecuted instantiation: conntrack-tcp.c:conntrack_invalid_tcp_flags_add
Unexecuted instantiation: conntrack-tcp.c:conntrack_tcp_seq_chk_bypass_add
Unexecuted instantiation: conntrack-tcp.c:conntrack_tcp_seq_chk_failed_add
Unexecuted instantiation: ovsdb-idl.c:txn_uncommitted_add
Unexecuted instantiation: ovsdb-idl.c:txn_unchanged_add
Unexecuted instantiation: ovsdb-idl.c:txn_incomplete_add
Unexecuted instantiation: ovsdb-idl.c:txn_aborted_add
Unexecuted instantiation: ovsdb-idl.c:txn_success_add
Unexecuted instantiation: ovsdb-idl.c:txn_try_again_add
Unexecuted instantiation: ovsdb-idl.c:txn_not_locked_add
Unexecuted instantiation: ovsdb-idl.c:txn_error_add
75
        extern struct coverage_counter counter_##COUNTER;               \
76
        struct coverage_counter counter_##COUNTER                       \
77
            = { #COUNTER, COUNTER##_count, 0, 0, {0}, {0} };            \
78
1.01k
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
1.01k
            coverage_counter_register(&counter_##COUNTER);              \
80
1.01k
        }
util.c:util_xalloc_init_coverage
Line
Count
Source
78
12
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
12
            coverage_counter_register(&counter_##COUNTER);              \
80
12
        }
flow.c:flow_extract_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
flow.c:miniflow_extract_ipv4_pkt_len_error_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
flow.c:miniflow_extract_ipv4_pkt_too_short_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
flow.c:miniflow_extract_ipv6_pkt_len_error_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
flow.c:miniflow_extract_ipv6_pkt_too_short_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
flow.c:miniflow_malloc_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
netdev.c:netdev_received_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
netdev.c:netdev_sent_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
netdev.c:netdev_add_router_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
netdev.c:netdev_get_stats_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
netdev.c:netdev_send_prepare_drops_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
netdev.c:netdev_push_header_drops_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
poll-loop.c:poll_create_node_init_coverage
Line
Count
Source
78
12
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
12
            coverage_counter_register(&counter_##COUNTER);              \
80
12
        }
poll-loop.c:poll_zero_timeout_init_coverage
Line
Count
Source
78
12
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
12
            coverage_counter_register(&counter_##COUNTER);              \
80
12
        }
seq.c:seq_change_init_coverage
Line
Count
Source
78
12
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
12
            coverage_counter_register(&counter_##COUNTER);              \
80
12
        }
unixctl.c:unixctl_received_init_coverage
Line
Count
Source
78
12
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
12
            coverage_counter_register(&counter_##COUNTER);              \
80
12
        }
unixctl.c:unixctl_replied_init_coverage
Line
Count
Source
78
12
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
12
            coverage_counter_register(&counter_##COUNTER);              \
80
12
        }
netdev-linux.c:netdev_set_policing_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
netdev-linux.c:netdev_arp_lookup_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
netdev-linux.c:netdev_get_ifindex_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
netdev-linux.c:netdev_get_hwaddr_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
netdev-linux.c:netdev_set_hwaddr_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
netdev-linux.c:netdev_get_ethtool_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
netdev-linux.c:netdev_set_ethtool_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
netlink-socket.c:netlink_overflow_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
netlink-socket.c:netlink_received_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
netlink-socket.c:netlink_recv_jumbo_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
netlink-socket.c:netlink_sent_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
ccmap.c:ccmap_expand_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
ccmap.c:ccmap_shrink_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
cmap.c:cmap_expand_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
cmap.c:cmap_shrink_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif.c:dpif_destroy_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif.c:dpif_port_add_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif.c:dpif_port_del_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif.c:dpif_flow_flush_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif.c:dpif_flow_get_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif.c:dpif_flow_put_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif.c:dpif_flow_del_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif.c:dpif_execute_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif.c:dpif_purge_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif.c:dpif_execute_with_help_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif.c:dpif_meter_set_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif.c:dpif_meter_get_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif.c:dpif_meter_del_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
hmap.c:hmap_pathological_init_coverage
Line
Count
Source
78
12
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
12
            coverage_counter_register(&counter_##COUNTER);              \
80
12
        }
hmap.c:hmap_expand_init_coverage
Line
Count
Source
78
12
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
12
            coverage_counter_register(&counter_##COUNTER);              \
80
12
        }
hmap.c:hmap_shrink_init_coverage
Line
Count
Source
78
12
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
12
            coverage_counter_register(&counter_##COUNTER);              \
80
12
        }
hmap.c:hmap_reserve_init_coverage
Line
Count
Source
78
12
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
12
            coverage_counter_register(&counter_##COUNTER);              \
80
12
        }
odp-execute.c:datapath_drop_sample_error_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
odp-execute.c:datapath_drop_nsh_decap_error_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
odp-execute.c:drop_action_of_pipeline_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
odp-execute.c:drop_action_bridge_not_found_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
odp-execute.c:drop_action_recursion_too_deep_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
odp-execute.c:drop_action_too_many_resubmit_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
odp-execute.c:drop_action_stack_too_deep_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
odp-execute.c:drop_action_no_recirculation_context_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
odp-execute.c:drop_action_recirculation_conflict_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
odp-execute.c:drop_action_too_many_mpls_labels_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
odp-execute.c:drop_action_invalid_tunnel_metadata_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
odp-execute.c:drop_action_unsupported_packet_type_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
odp-execute.c:drop_action_congestion_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
odp-execute.c:drop_action_forwarding_disabled_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
stream.c:pstream_open_init_coverage
Line
Count
Source
78
12
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
12
            coverage_counter_register(&counter_##COUNTER);              \
80
12
        }
stream.c:stream_open_init_coverage
Line
Count
Source
78
12
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
12
            coverage_counter_register(&counter_##COUNTER);              \
80
12
        }
netlink-notifier.c:nln_changed_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
conntrack.c:conntrack_full_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
conntrack.c:conntrack_l3csum_err_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
conntrack.c:conntrack_l4csum_err_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
conntrack.c:conntrack_lookup_natted_miss_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif-netdev.c:datapath_drop_meter_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif-netdev.c:datapath_drop_upcall_error_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif-netdev.c:datapath_drop_lock_error_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif-netdev.c:datapath_drop_userspace_action_error_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif-netdev.c:datapath_drop_tunnel_push_error_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif-netdev.c:datapath_drop_tunnel_pop_error_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif-netdev.c:datapath_drop_recirc_error_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif-netdev.c:datapath_drop_invalid_port_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif-netdev.c:datapath_drop_invalid_bond_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif-netdev.c:datapath_drop_invalid_tnl_port_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
dpif-netdev.c:datapath_drop_rx_invalid_packet_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
hindex.c:hindex_pathological_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
hindex.c:hindex_expand_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
hindex.c:hindex_shrink_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
hindex.c:hindex_reserve_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
ipf.c:ipf_stuck_frag_list_purged_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
ipf.c:ipf_l3csum_err_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
conntrack-tcp.c:conntrack_tcp_seq_chk_bypass_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
conntrack-tcp.c:conntrack_tcp_seq_chk_failed_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
conntrack-tcp.c:conntrack_invalid_tcp_flags_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
ovsdb-idl.c:txn_uncommitted_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
ovsdb-idl.c:txn_unchanged_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
ovsdb-idl.c:txn_incomplete_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
ovsdb-idl.c:txn_aborted_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
ovsdb-idl.c:txn_success_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
ovsdb-idl.c:txn_try_again_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
ovsdb-idl.c:txn_not_locked_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
ovsdb-idl.c:txn_error_init_coverage
Line
Count
Source
78
10
        OVS_CONSTRUCTOR(COUNTER##_init_coverage) {                      \
79
10
            coverage_counter_register(&counter_##COUNTER);              \
80
10
        }
81
82
/* Adds 1 to COUNTER. */
83
44.6M
#define COVERAGE_INC(COUNTER) COVERAGE_ADD(COUNTER, 1)
84
85
/* Adds AMOUNT to COUNTER. */
86
44.6M
#define COVERAGE_ADD(COUNTER, AMOUNT) COUNTER##_add(AMOUNT)
87
88
void coverage_init(void);
89
void coverage_log(void);
90
void coverage_clear(void);
91
void coverage_try_clear(void);
92
void coverage_run(void);
93
94
#endif /* coverage.h */