On Tue, 27 Mar 2018 18:59:19 +0200
Björn Töpel <bjorn.to...@gmail.com> wrote:

> +static void dump_stats(void)
> +{
> +     unsigned long stop_time = get_nsecs();
> +     long dt = stop_time - start_time;
> +     int i;
> +
> +     for (i = 0; i < num_socks; i++) {
> +             double rx_pps = xsks[i]->rx_npkts * 1000000000. / dt;
> +             double tx_pps = xsks[i]->tx_npkts * 1000000000. / dt;
> +             char *fmt = "%-15s %'-11.0f %'-11lu\n";
> +
> +             printf("\n sock%d@", i);
> +             print_benchmark(false);
> +             printf("\n");
> +
> +             printf("%-15s %-11s %-11s %-11.2f\n", "", "pps", "pkts",
> +                    dt / 1000000000.);
> +             printf(fmt, "rx", rx_pps, xsks[i]->rx_npkts);
> +             printf(fmt, "tx", tx_pps, xsks[i]->tx_npkts);
> +     }
> +}
> +
> +static void *poller(void *arg)
> +{
> +     (void)arg;
> +     for (;;) {
> +             sleep(1);
> +             dump_stats();
> +     }
> +
> +     return NULL;
> +}

You are printing the "pps" (packets per sec) as an average over the
entire test run... could you please change that to, at least also, have
an more up-to-date value like between the last measurement?

The problem is that when you start the test, the first reading will be
too low, and it takes time to average out/up. For ixgbe, first reading
will be zero, because it does a link-down+up, which stops my pktgen.

The second annoyance is that I like to change system/kernel setting
during the run, and observe the effect. E.g change CPU sleep states
(via tuned-adm) during the test-run to see the effect, which I cannot
with this long average.

-- 
Best regards,
  Jesper Dangaard Brouer
  MSc.CS, Principal Kernel Engineer at Red Hat
  LinkedIn: http://www.linkedin.com/in/brouer

Reply via email to