Thx, pushed to master, On Fri, Sep 19, 2014 at 11:49 AM, Alex Wang <al...@nicira.com> wrote:
> sure, i'm okay with that, > > > On Fri, Sep 19, 2014 at 11:22 AM, Daniele Di Proietto < > ddiproie...@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 <ddiproie...@vmware.com> >> >> On 9/19/14, 10:57 AM, "Alex Wang" <al...@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 <et...@nicira.com> >> >Signed-off-by: Alex Wang <al...@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 >> > >> >> > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev