Thanks for the fix! Acked-by: Daniele Di Proietto <ddiproie...@vmware.com>
On 9/25/14, 1:28 PM, "Alex Wang" <al...@nicira.com> wrote: >When kernel cannot obtain the pci numa info, the numa_node file >in corresponding pci directory in sysfs will show -1. Then the >rte_eth_dev_socket_id() function will return it to ovs. On >current master, ovs assumes rte_eth_dev_socket_id() always >returns non-negative value. So using this -1 in pmd thread >creation will cause ovs crash. > >To fix the above issue, this commit makes ovs always check the >return value of rte_eth_dev_socket_id() and use numa node 0 if >the return value is negative. > >Reported-by: Daniel Badea <daniel.ba...@windriver.com> >Signed-off-by: Alex Wang <al...@nicira.com> >--- > lib/netdev-dpdk.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > >diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c >index 50ea965..9c93768 100644 >--- a/lib/netdev-dpdk.c >+++ b/lib/netdev-dpdk.c >@@ -485,13 +485,18 @@ netdev_dpdk_init(struct netdev *netdev_, unsigned >int port_no) > OVS_REQUIRES(dpdk_mutex) > { > struct netdev_dpdk *netdev = netdev_dpdk_cast(netdev_); >+ int sid; > int err = 0; > > ovs_mutex_init(&netdev->mutex); > > ovs_mutex_lock(&netdev->mutex); > >- netdev->socket_id = rte_eth_dev_socket_id(port_no); >+ /* If the 'sid' is negative, it means that the kernel fails >+ * to obtain the pci numa info. In that situation, always >+ * use 'SOCKET0'. */ >+ sid = rte_eth_dev_socket_id(port_no); >+ netdev->socket_id = sid < 0 ? SOCKET0 : sid; > netdev_dpdk_alloc_txq(netdev, NR_QUEUE); > netdev->port_id = port_no; > netdev->flags = 0; >-- >1.7.9.5 > >_______________________________________________ >dev mailing list >dev@openvswitch.org >https://urldefense.proofpoint.com/v1/url?u=http://openvswitch.org/mailman/ >listinfo/dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=MV9BdLjtFIdhBDBaw5z%2BU >6SSA2gAfY4L%2F1HCy3VjlKU%3D%0A&m=X596LDIOn3vB8hKejLfNln2Hv%2FE45SfcQeQbYSI >zMtM%3D%0A&s=0c07569815c01a727f199675214802aa8c941cbffb74b700ea79174397c7c >ab3 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev