[ovs-dev] [PATCH 2/2] netdev-dpdk: Fix a bug in netdev_dpdk_set_multiq().
Alex Wang
alexw at nicira.com
Fri Sep 19 18:49:05 UTC 2014
sure, i'm okay with that,
On Fri, Sep 19, 2014 at 11:22 AM, Daniele Di Proietto <
ddiproietto at vmware.com> wrote:
> How about changing Œnetdev_dpdk_set_txq()¹ to 'netdev_dpdk_alloc_txq()¹?
> IMHO it is more clear that it is allocating memory without freeing it.
>
> Otherwise, LGTM. Thanks for the fix
>
> Acked-by: Daniele Di Proietto <ddiproietto at vmware.com>
>
> On 9/19/14, 10:57 AM, "Alex Wang" <alexw at nicira.com> wrote:
>
> >Commit 5a0340 (dpif-netdev: Create multiple tx/rx queues when
> >adding dpdk interface.) introduced a bug which causes the function
> >netdev_dpdk_set_multiq() never resetting the tx queues. This bug
> >could cause pmd thread accessing unassigned memory, resulting in
> >segfault.
> >
> >This commit fixes the bug.
> >
> >Reported-by: Ethan Jackson <ethan at nicira.com>
> >Signed-off-by: Alex Wang <alexw at nicira.com>
> >---
> > lib/netdev-dpdk.c | 9 +++++----
> > 1 file changed, 5 insertions(+), 4 deletions(-)
> >
> >diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
> >index ed39b9c..0101c7d 100644
> >--- a/lib/netdev-dpdk.c
> >+++ b/lib/netdev-dpdk.c
> >@@ -622,14 +622,15 @@ netdev_dpdk_set_multiq(struct netdev *netdev_,
> >unsigned int n_txq,
> >
> > ovs_mutex_lock(&dpdk_mutex);
> > ovs_mutex_lock(&netdev->mutex);
> >+
> > rte_eth_dev_stop(netdev->port_id);
> >+
> > netdev->up.n_txq = n_txq;
> > netdev->up.n_rxq = n_rxq;
> >+ rte_free(netdev->tx_q);
> >+ netdev_dpdk_set_txq(netdev, n_txq);
> > err = dpdk_eth_dev_init(netdev);
> >- if (!err && netdev->up.n_txq != n_txq) {
> >- rte_free(netdev->tx_q);
> >- netdev_dpdk_set_txq(netdev, n_txq);
> >- }
> >+
> > ovs_mutex_unlock(&netdev->mutex);
> > ovs_mutex_unlock(&dpdk_mutex);
> >
> >--
> >1.7.9.5
> >
>
>
More information about the dev
mailing list