From 3ee6f706519c0a7456f3d8a79048150dfa6d2581 Mon Sep 17 00:00:00 2001 From: Georgiy Levashov Date: Tue, 28 Apr 2020 14:27:41 +0100 Subject: [PATCH] examples: add flush after stats printing When printf()'s stdout is line-buffered for terminal, it is fully buffered for pipes. So, stdout listener can only get the output when it is flushed (on program termination, when buffer is filled or manual flush). stdout buffer might fill slowly since every stats report could be small. Also when it is fully filled it might contain a part of the last stats report which makes it very inconvenient for any automation which reads and parses the output. Fixes: af75078fece3 ("first public release") Cc: stable@dpdk.org Signed-off-by: Georgiy Levashov Signed-off-by: Andrew Rybchenko --- examples/bbdev_app/main.c | 2 ++ examples/ioat/ioatfwd.c | 2 ++ examples/kni/main.c | 2 ++ examples/l2fwd-crypto/main.c | 2 ++ examples/l2fwd-event/main.c | 2 ++ examples/l2fwd-jobstats/main.c | 3 +++ examples/l2fwd-keepalive/main.c | 2 ++ examples/l2fwd/main.c | 2 ++ examples/link_status_interrupt/main.c | 2 ++ examples/tep_termination/main.c | 2 ++ examples/vhost/main.c | 2 ++ 11 files changed, 23 insertions(+) diff --git a/examples/bbdev_app/main.c b/examples/bbdev_app/main.c index fb38dc3a72..68a46050c0 100644 --- a/examples/bbdev_app/main.c +++ b/examples/bbdev_app/main.c @@ -659,6 +659,8 @@ print_stats(struct stats_lcore_params *stats_lcore) print_lcore_stats(stats_lcore->lconf[l_id].lcore_stats, l_id); } + fflush(stdout); + free(xstats); free(xstats_names); } diff --git a/examples/ioat/ioatfwd.c b/examples/ioat/ioatfwd.c index 53de231795..b66ee73bce 100644 --- a/examples/ioat/ioatfwd.c +++ b/examples/ioat/ioatfwd.c @@ -294,6 +294,8 @@ print_stats(char *prgname) printf("\n"); print_total_stats(&delta_ts); + fflush(stdout); + ts.total_packets_tx += delta_ts.total_packets_tx; ts.total_packets_rx += delta_ts.total_packets_rx; ts.total_packets_dropped += delta_ts.total_packets_dropped; diff --git a/examples/kni/main.c b/examples/kni/main.c index 80dd0353e7..f5d12a5b86 100644 --- a/examples/kni/main.c +++ b/examples/kni/main.c @@ -158,6 +158,8 @@ print_stats(void) kni_stats[i].tx_dropped); } printf("====== ============== ============ ============ ============ ============\n"); + + fflush(stdout); } /* Custom handling of signals to handle stats and kni processing */ diff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c index fcb55c370a..827da9b3e3 100644 --- a/examples/l2fwd-crypto/main.c +++ b/examples/l2fwd-crypto/main.c @@ -334,6 +334,8 @@ print_stats(void) total_packets_dropped, total_packets_errors); printf("\n====================================================\n"); + + fflush(stdout); } static int diff --git a/examples/l2fwd-event/main.c b/examples/l2fwd-event/main.c index 9593ef11e3..4fe500333c 100644 --- a/examples/l2fwd-event/main.c +++ b/examples/l2fwd-event/main.c @@ -516,6 +516,8 @@ print_stats(struct l2fwd_resources *rsrc) total_packets_rx, total_packets_dropped); printf("\n====================================================\n"); + + fflush(stdout); } static void diff --git a/examples/l2fwd-jobstats/main.c b/examples/l2fwd-jobstats/main.c index 396fd89db4..47a3b09765 100644 --- a/examples/l2fwd-jobstats/main.c +++ b/examples/l2fwd-jobstats/main.c @@ -329,6 +329,9 @@ show_stats_cb(__rte_unused void *param) } printf("\n====================================================\n"); + + fflush(stdout); + rte_eal_alarm_set(timer_period * US_PER_S, show_stats_cb, NULL); } diff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c index b7585d55e1..b2742633bc 100644 --- a/examples/l2fwd-keepalive/main.c +++ b/examples/l2fwd-keepalive/main.c @@ -160,6 +160,8 @@ print_stats(__rte_unused struct rte_timer *ptr_timer, total_packets_rx, total_packets_dropped); printf("\n====================================================\n"); + + fflush(stdout); } static void diff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c index f8d14b843a..4a41aac638 100644 --- a/examples/l2fwd/main.c +++ b/examples/l2fwd/main.c @@ -146,6 +146,8 @@ print_stats(void) total_packets_rx, total_packets_dropped); printf("\n====================================================\n"); + + fflush(stdout); } static void diff --git a/examples/link_status_interrupt/main.c b/examples/link_status_interrupt/main.c index 25efe2b09a..9bbcadfcf8 100644 --- a/examples/link_status_interrupt/main.c +++ b/examples/link_status_interrupt/main.c @@ -162,6 +162,8 @@ print_stats(void) total_packets_rx, total_packets_dropped); printf("\n====================================================\n"); + + fflush(stdout); } static void diff --git a/examples/tep_termination/main.c b/examples/tep_termination/main.c index ab956ad7ce..b9fffca020 100644 --- a/examples/tep_termination/main.c +++ b/examples/tep_termination/main.c @@ -1110,6 +1110,8 @@ print_stats(__rte_unused void *arg) dev_ll = dev_ll->next; } printf("\n================================================\n"); + + fflush(stdout); } return NULL; diff --git a/examples/vhost/main.c b/examples/vhost/main.c index ab649bf147..312829e8b9 100644 --- a/examples/vhost/main.c +++ b/examples/vhost/main.c @@ -1334,6 +1334,8 @@ print_stats(__rte_unused void *arg) } printf("===================================================\n"); + + fflush(stdout); } return NULL; -- 2.20.1