app/testpmd: fix burst percentage calculation
The burst % calculation can over flow due to multiplication. Fix the multiplication and increase the size of variables to 64b. Fixes: af75078fece3 ("first public release") Cc: stable@dpdk.org Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com> Reviewed-by: Phil Yang <phil.yang@arm.com> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> Tested-by: Phil Yang <phil.yang@arm.com> Tested-by: Ali Alnubani <alialnu@mellanox.com>
This commit is contained in:
parent
aac2b6a78d
commit
85de481a71
@ -1692,9 +1692,9 @@ init_fwd_streams(void)
|
|||||||
static void
|
static void
|
||||||
pkt_burst_stats_display(const char *rx_tx, struct pkt_burst_stats *pbs)
|
pkt_burst_stats_display(const char *rx_tx, struct pkt_burst_stats *pbs)
|
||||||
{
|
{
|
||||||
unsigned int total_burst;
|
uint64_t total_burst;
|
||||||
unsigned int nb_burst;
|
uint64_t nb_burst;
|
||||||
unsigned int burst_stats[3];
|
uint64_t burst_stats[3];
|
||||||
uint16_t pktnb_stats[3];
|
uint16_t pktnb_stats[3];
|
||||||
uint16_t nb_pkt;
|
uint16_t nb_pkt;
|
||||||
int burst_percent[3];
|
int burst_percent[3];
|
||||||
@ -1723,8 +1723,8 @@ pkt_burst_stats_display(const char *rx_tx, struct pkt_burst_stats *pbs)
|
|||||||
}
|
}
|
||||||
if (total_burst == 0)
|
if (total_burst == 0)
|
||||||
return;
|
return;
|
||||||
burst_percent[0] = (burst_stats[0] * 100) / total_burst;
|
burst_percent[0] = (double)burst_stats[0] / total_burst * 100;
|
||||||
printf(" %s-bursts : %u [%d%% of %d pkts", rx_tx, total_burst,
|
printf(" %s-bursts : %"PRIu64" [%d%% of %d pkts", rx_tx, total_burst,
|
||||||
burst_percent[0], (int) pktnb_stats[0]);
|
burst_percent[0], (int) pktnb_stats[0]);
|
||||||
if (burst_stats[0] == total_burst) {
|
if (burst_stats[0] == total_burst) {
|
||||||
printf("]\n");
|
printf("]\n");
|
||||||
@ -1735,7 +1735,7 @@ pkt_burst_stats_display(const char *rx_tx, struct pkt_burst_stats *pbs)
|
|||||||
100 - burst_percent[0], pktnb_stats[1]);
|
100 - burst_percent[0], pktnb_stats[1]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
burst_percent[1] = (burst_stats[1] * 100) / total_burst;
|
burst_percent[1] = (double)burst_stats[1] / total_burst * 100;
|
||||||
burst_percent[2] = 100 - (burst_percent[0] + burst_percent[1]);
|
burst_percent[2] = 100 - (burst_percent[0] + burst_percent[1]);
|
||||||
if ((burst_percent[1] == 0) || (burst_percent[2] == 0)) {
|
if ((burst_percent[1] == 0) || (burst_percent[2] == 0)) {
|
||||||
printf(" + %d%% of others]\n", 100 - burst_percent[0]);
|
printf(" + %d%% of others]\n", 100 - burst_percent[0]);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user