Skip to content

Commit

Permalink
dpif-netdev-perf: Fix double update of perf histograms.
Browse files Browse the repository at this point in the history
Real values of 'packets per batch' and 'cycles per upcall' already
added to histograms in 'dpif-netdev' on receive. Adding the averages
makes statistics wrong. We should not add to histograms values that
never really appeared.

For exmaple, in current code following situation is possible:

  pmd thread numa_id 0 core_id 5:
  ...
    Rx packets:                  83  (0 Kpps, 13873 cycles/pkt)
    ...
    - Upcalls:                    3  (  3.6 %, 248.6 us/upcall)

  Histograms
    packets/it      pkts/batch       upcalls/it     cycles/upcall
    1         83    1         166    1         3    ...
                                                    15848     2
                                                    19952     2
                                                    ...
                                                    50118     2

i.e. all the packets counted twice in 'pkts/batch' column and
all the upcalls counted twice in 'cycles/upcall' column.

CC: Jan Scheurich <jan.scheurich@ericsson.com>
Fixes: 79f3687 ("dpif-netdev: Detailed performance stats for PMDs")
Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Signed-off-by: Ian Stokes <ian.stokes@intel.com>
  • Loading branch information
igsilya authored and istokes committed Mar 19, 2019
1 parent 9e36fa0 commit 7f67a5b
Showing 1 changed file with 0 additions and 8 deletions.
8 changes: 0 additions & 8 deletions lib/dpif-netdev-perf.c
Expand Up @@ -498,15 +498,7 @@ pmd_perf_end_iteration(struct pmd_perf_stats *s, int rx_packets,
cycles_per_pkt = cycles / rx_packets;
histogram_add_sample(&s->cycles_per_pkt, cycles_per_pkt);
}
if (s->current.batches > 0) {
histogram_add_sample(&s->pkts_per_batch,
rx_packets / s->current.batches);
}
histogram_add_sample(&s->upcalls, s->current.upcalls);
if (s->current.upcalls > 0) {
histogram_add_sample(&s->cycles_per_upcall,
s->current.upcall_cycles / s->current.upcalls);
}
histogram_add_sample(&s->max_vhost_qfill, s->current.max_vhost_qfill);

/* Add iteration samples to millisecond stats. */
Expand Down

0 comments on commit 7f67a5b

Please sign in to comment.