[dpdk-dev,1/2] app/testpmd: fix crash at mbuf pool creation
Checks
Commit Message
Since
commit 999b2ee0fe45 ("app/testpmd: enable NUMA support by default"),
testpmd is started with numa enabled by default. This highlights a
floating point exception when started with --total-num-mbufs without any
port (division by 0). This bug was already triggered before this commit
if the --no-numa option was given.
This commit adds a check of the nb_ports value before doing the
division. By looking at this code, it appears that the creation of the
mbuf pool is not consistent for the number of mbufs depending on the
configuration. This is fixed in the next commit.
Fixes: b6ea6408fbc7 ("ethdev: store numa_node per device")
CC: stable@dpdk.org
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
---
app/test-pmd/testpmd.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
> -----Original Message-----
> From: Olivier Matz [mailto:olivier.matz@6wind.com]
> Sent: Monday, April 24, 2017 8:34 PM
> To: dev@dpdk.org; Wu, Jingjing <jingjing.wu@intel.com>
> Cc: Richardson, Bruce <bruce.richardson@intel.com>; stable@dpdk.org
> Subject: [PATCH 1/2] app/testpmd: fix crash at mbuf pool creation
>
> Since
> commit 999b2ee0fe45 ("app/testpmd: enable NUMA support by default"),
> testpmd is started with numa enabled by default. This highlights a floating point
> exception when started with --total-num-mbufs without any port (division by 0).
> This bug was already triggered before this commit if the --no-numa option was
> given.
>
> This commit adds a check of the nb_ports value before doing the division. By
> looking at this code, it appears that the creation of the mbuf pool is not
> consistent for the number of mbufs depending on the configuration. This is fixed
> in the next commit.
>
> Fixes: b6ea6408fbc7 ("ethdev: store numa_node per device")
>
> CC: stable@dpdk.org
> Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
> ---
> app/test-pmd/testpmd.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index
> 3a573480d..f61f31344 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -597,7 +597,7 @@ init_config(void)
> uint8_t i;
> unsigned int nb_mbuf;
>
> - if (param_total_num_mbufs)
> + if (param_total_num_mbufs && nb_ports != 0)
> nb_mbuf_per_pool = nb_mbuf_per_pool/nb_ports;
>
> for (i = 0; i < max_socket; i++) {
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
28/04/2017 10:51, Wu, Jingjing:
> From: Olivier Matz [mailto:olivier.matz@6wind.com]
> > Since
> > commit 999b2ee0fe45 ("app/testpmd: enable NUMA support by default"),
> > testpmd is started with numa enabled by default. This highlights a floating point
> > exception when started with --total-num-mbufs without any port (division by 0).
> > This bug was already triggered before this commit if the --no-numa option was
> > given.
> >
> > This commit adds a check of the nb_ports value before doing the division. By
> > looking at this code, it appears that the creation of the mbuf pool is not
> > consistent for the number of mbufs depending on the configuration. This is fixed
> > in the next commit.
> >
> > Fixes: b6ea6408fbc7 ("ethdev: store numa_node per device")
> >
> > CC: stable@dpdk.org
> > Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
>
> Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Series applied, thanks
@@ -597,7 +597,7 @@ init_config(void)
uint8_t i;
unsigned int nb_mbuf;
- if (param_total_num_mbufs)
+ if (param_total_num_mbufs && nb_ports != 0)
nb_mbuf_per_pool = nb_mbuf_per_pool/nb_ports;
for (i = 0; i < max_socket; i++) {