Clang analyzer will complain about floating point operations conducted with integer types as rounding is undefined. In pmd_info_show_rxq() a percentage was calculated inside uint64 integers instead of a floating pointer variable for a user visible message. This issue can be resolved simply by casting to double while dividing.
Signed-off-by: Mike Pattrick <[email protected]> --- lib/dpif-netdev.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index f0594e5f5..d12e716b6 100644 --- a/lib/dpif-netdev.c +++ b/lib/dpif-netdev.c @@ -942,9 +942,9 @@ pmd_info_show_rxq(struct ds *reply, struct dp_netdev_pmd_thread *pmd, ? "(enabled) " : "(disabled)"); ds_put_format(reply, " pmd usage: "); if (total_pmd_cycles) { - ds_put_format(reply, "%2"PRIu64"", - rxq_proc_cycles * 100 / total_pmd_cycles); - ds_put_cstr(reply, " %"); + ds_put_format(reply, "%2.0f %%", + (double) (rxq_proc_cycles * 100) / + total_pmd_cycles); } else { ds_put_format(reply, "%s", "NOT AVAIL"); } @@ -959,8 +959,10 @@ pmd_info_show_rxq(struct ds *reply, struct dp_netdev_pmd_thread *pmd, if (total_rxq_proc_cycles < busy_pmd_cycles) { overhead_cycles = busy_pmd_cycles - total_rxq_proc_cycles; } - ds_put_format(reply, "%2"PRIu64" %%", - overhead_cycles * 100 / total_pmd_cycles); + + ds_put_format(reply, "%2.0f %%", + (double) (overhead_cycles * 100) / + total_pmd_cycles); } else { ds_put_cstr(reply, "NOT AVAIL"); } -- 2.43.5 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
