On 23/12/2021 15:25, Vladimir Medvedkin wrote:
This patch fixes the division by 0, which occurs if the number of routes is 
less than 10.
Can be triggered by passing -n argument with value < 10:


9 causing a divide by zero - another example of inflation :-)

./dpdk-test-fib -- -n 9
...
Floating point exception (core dumped)

Fixes: 103809d032cd ("app/test-fib: add test application for FIB")
Cc: vladimir.medved...@intel.com


You probably want to add 'Cc: sta...@dpdk.org' for this.

Signed-off-by: Vladimir Medvedkin <vladimir.medved...@intel.com>
---
  app/test-fib/main.c | 40 ++++++++++++++++++++++++----------------
  1 file changed, 24 insertions(+), 16 deletions(-)

diff --git a/app/test-fib/main.c b/app/test-fib/main.c
index ecd420116a..9bc8b8a7ca 100644
--- a/app/test-fib/main.c
+++ b/app/test-fib/main.c
@@ -902,8 +902,9 @@ run_v4(void)
                                return -ret;
                        }
                }
-               printf("AVG FIB add %"PRIu64"\n",
-                       (rte_rdtsc_precise() - start) / j);
+               if (j != 0)
+                       printf("AVG FIB add %"PRIu64"\n",
+                               (rte_rdtsc_precise() - start) / j);


You are just not printing the result for these cases. Do you think it is worth to print a warning message (one), and update any documentation so the user is aware of the acceptable bounds?

                i += j;
        }
@@ -930,8 +931,9 @@ run_v4(void)
                                        return -ret;
                                }
                        }
-                       printf("AVG LPM add %"PRIu64"\n",
-                               (rte_rdtsc_precise() - start) / j);
+                       if (j != 0)
+                               printf("AVG LPM add %"PRIu64"\n",
+                                       (rte_rdtsc_precise() - start) / j);
                        i += j;
                }
        }
@@ -984,8 +986,9 @@ run_v4(void)
                for (j = 0; j < (config.nb_routes - i) / k; j++)
                        rte_fib_delete(fib, rt[i + j].addr, rt[i + j].depth);
- printf("AVG FIB delete %"PRIu64"\n",
-                       (rte_rdtsc_precise() - start) / j);
+               if (j != 0)
+                       printf("AVG FIB delete %"PRIu64"\n",
+                               (rte_rdtsc_precise() - start) / j);
                i += j;
        }
@@ -996,8 +999,9 @@ run_v4(void)
                                rte_lpm_delete(lpm, rt[i + j].addr,
                                        rt[i + j].depth);
- printf("AVG LPM delete %"PRIu64"\n",
-                               (rte_rdtsc_precise() - start) / j);
+                       if (j != 0)
+                               printf("AVG LPM delete %"PRIu64"\n",
+                                       (rte_rdtsc_precise() - start) / j);
                        i += j;
                }
        }
@@ -1097,8 +1101,9 @@ run_v6(void)
                                return -ret;
                        }
                }
-               printf("AVG FIB add %"PRIu64"\n",
-                       (rte_rdtsc_precise() - start) / j);
+               if (j != 0)
+                       printf("AVG FIB add %"PRIu64"\n",
+                               (rte_rdtsc_precise() - start) / j);
                i += j;
        }
@@ -1125,8 +1130,9 @@ run_v6(void)
                                        return -ret;
                                }
                        }
-                       printf("AVG LPM add %"PRIu64"\n",
-                               (rte_rdtsc_precise() - start) / j);
+                       if (j != 0)
+                               printf("AVG LPM add %"PRIu64"\n",
+                                       (rte_rdtsc_precise() - start) / j);
                        i += j;
                }
        }
@@ -1183,8 +1189,9 @@ run_v6(void)
                for (j = 0; j < (config.nb_routes - i) / k; j++)
                        rte_fib6_delete(fib, rt[i + j].addr, rt[i + j].depth);
- printf("AVG FIB delete %"PRIu64"\n",
-                       (rte_rdtsc_precise() - start) / j);
+               if (j != 0)
+                       printf("AVG FIB delete %"PRIu64"\n",
+                               (rte_rdtsc_precise() - start) / j);
                i += j;
        }
@@ -1195,8 +1202,9 @@ run_v6(void)
                                rte_lpm6_delete(lpm, rt[i + j].addr,
                                        rt[i + j].depth);
- printf("AVG LPM delete %"PRIu64"\n",
-                               (rte_rdtsc_precise() - start) / j);
+                       if (j != 0)
+                               printf("AVG LPM delete %"PRIu64"\n",
+                                       (rte_rdtsc_precise() - start) / j);
                        i += j;
                }
        }


Reply via email to