Hi.
  this bug has been fixed on github.

  diff --git a/data/netdev-dpdk.c b/lib/netdev-dpdk.c
  index 75c369a..ec49e3a 100644
  --- a/data/netdev-dpdk.c
  +++ b/lib/netdev-dpdk.c
  @@ -776,6 +776,7 @@ netdev_dpdk_vhost_destruct(struct netdev *netdev_)
     }

     ovs_mutex_lock(&dpdk_mutex);
+   rte_free(dev->tx_q);
     list_remove(&dev->list_node);
     dpdk_mp_put(dev->dpdk_mp);
     ovs_mutex_unlock(&dpdk_mutex);

2016-03-17 9:25 GMT+08:00 王华夏 <wanghua...@jd.com>:

> The ovs-vswitch crashed after the test run sometimes(it can be repeated ),
> and it looks like has memory leak
>
> *[Sugesh] What you mean by sometimes? How much time it takes the exhaust
> the memory? Are you using 1GB hugepages? Make sure you have allocated
> enough 1G hugepages in the system boot. And also increase the socket-mem to
> atleast 1G(--socket-mem 1024) when starting the vswitchd.*
>
>
>
> I started the ovs-vswitchd like this:
>
>
>
> */usr/local/sbin/ovs-vswitchd --dpdk  -c 0x1 -n 4 --socket-mem 6000 --
> unix:/usr/local/var/run/openvswitch/db.sock --pidfile –detach*
>
>
>
> *The hugepages of the test environment:*
>
>
>
> *[root@A06-R12-302F0405-I36-100 qemu]# cat /proc/meminfo |grep -i huge*
>
> *AnonHugePages:    292864 kB*
>
> *HugePages_Total:   20480*
>
> *HugePages_Free:    17432*
>
> *HugePages_Rsvd:        0*
>
> *HugePages_Surp:        0*
>
> *Hugepagesize:       2048 kB*
>
>
>
> The out of memory occurred 2 hours later when I started my test, and It
> can  replicate in different test environment.
>
>
>
> Test steps:
>
>
>
> Step 1: create a vm for port vhost-user-0
>
> Step 2: create other 15 vms likes step 1
>
> Step 3 :destroy the 15 vms created by step 2
>
> Step 4 repeat step 2 and step 3
>
>
>
> Thanks
>
>
>
> Wang Huaxia ---JD.COM
>
>
>
> *From: *Chandran, Sugesh <sugesh.chand...@intel.com>
> *Sent: *2016年3月17日 1:29
>
> *To: *王华夏 <wanghua...@jd.com>; discuss@openvswitch.org
> *Subject: *RE: [ovs-discuss] [bug] a new problem of ovs-dpdk
>
>
>
>
>
>
>
> *Regards*
>
> *_Sugesh*
>
>
>
> *From:* 王华夏 [mailto:wanghua...@jd.com]
> *Sent:* Wednesday, March 16, 2016 1:30 AM
> *To:* Chandran, Sugesh <sugesh.chand...@intel.com>;
> discuss@openvswitch.org
> *Cc:* Traynor, Kevin <kevin.tray...@intel.com>
> *Subject:* RE: [ovs-discuss] [bug] a new problem of ovs-dpdk
>
>
>
> I tested it with qemu 2.5, and change the ovs version into 2.5 release
> version (it is not the release version before). get another problem.
>
>
>
> The ovs-vswitch crashed after the test run sometimes(it can be repeated ),
> and it looks like has memory leak
>
> *[Sugesh] What you mean by sometimes? How much time it takes the exhaust
> the memory? Are you using 1GB hugepages? Make sure you have allocated
> enough 1G hugepages in the system boot. And also increase the socket-mem to
> atleast 1G(--socket-mem 1024) when starting the vswitchd.*
>
>
>
> The stacks as follows:
>
>
>
> gdb) bt
>
> #0  0x00007f72bfc2f5d7 in raise () from /lib64/libc.so.6
>
> #1  0x00007f72bfc30cc8 in abort () from /lib64/libc.so.6
>
> #2  0x0000000000636fce in ovs_abort_valist (err_no=<optimized out>,
> format=<optimized out>, args=args@entry=0x7ffe3fe2b2f8) at lib/util.c:323
>
> #3  0x0000000000637057 in ovs_abort (err_no=err_no@entry=0,
> format=format@entry=0x6dfad5 "virtual memory exhausted") at lib/util.c:315
>
> *#4  0x0000000000637072 in out_of_memory () at lib/util.c:89*
>
> #5  0x0000000000651465 in dpdk_rte_mzalloc (sz=sz@entry=3170304) at
> lib/netdev-dpdk.c:269
>
> #6  0x0000000000651a33 in netdev_dpdk_alloc_txq 
> (netdev=netdev@entry=0x7f72765ec400,
> n_txqs=n_txqs@entry=1024) at lib/netdev-dpdk.c:565
>
> #7  0x000000000065283c in netdev_dpdk_init 
> (netdev_=netdev_@entry=0x7f72765ec400,
> port_no=port_no@entry=4294967295, type=type@entry=DPDK_DEV_VHOST) at
> lib/netdev-dpdk.c:633
>
> #8  0x0000000000652a06 in vhost_construct_helper (netdev_=0x7f72765ec400)
> at lib/netdev-dpdk.c:668
>
> #9  netdev_dpdk_vhost_user_construct (netdev_=0x7f72765ec400) at
> lib/netdev-dpdk.c:716
>
> #10 0x00000000005d34d9 in netdev_open (name=<optimized out>,
> type=0x38962d0 "dpdkvhostuser", netdevp=netdevp@entry=0x7ffe3fe2b510) at
> lib/netdev.c:382
>
> #11 0x0000000000562aa7 in iface_do_create (port_cfg=<optimized out>,
> errp=0x7ffe3fe2b500, netdevp=<synthetic pointer>, ofp_portp=0x7ffe3fe2b4fc,
> iface_cfg=0x38c2700, br=0x283def0) at vswitchd/bridge.c:1762
>
> #12 iface_create (port_cfg=0x38c29c0, iface_cfg=0x38c2700, br=0x283def0)
> at vswitchd/bridge.c:1816
>
> #13 bridge_add_ports__ (br=br@entry=0x283def0,
> wanted_ports=wanted_ports@entry=0x283dfd0,
> with_requested_port=with_requested_port@entry=true) at
> vswitchd/bridge.c:892
>
> #14 0x0000000000565645 in bridge_add_ports (wanted_ports=0x283dfd0,
> br=0x283def0) at vswitchd/bridge.c:903
>
> #15 bridge_reconfigure (ovs_cfg=ovs_cfg@entry=0x28415c0) at
> vswitchd/bridge.c:646
>
> #16 0x0000000000568900 in bridge_run () at vswitchd/bridge.c:2975
>
> #17 0x000000000041045d in main (argc=4, argv=0x7ffe3fe2b9a8) at
> vswitchd/ovs-vswitchd.c:120
>
>
>
>
>
> Wang Huaxia ---JD.COM
>
>
>
> *From: *Chandran, Sugesh <sugesh.chand...@intel.com>
> *Sent: *2016年3月15日 19:57
> *To: *王华夏 <wanghua...@jd.com>; discuss@openvswitch.org
> *Cc: *Traynor, Kevin <kevin.tray...@intel.com>
> *Subject: *RE: [ovs-discuss] [bug] a new problem of ovs-dpdk
>
>
>
> I feel the fix for the mentioned issued already present in the DPDK 2.2.
>
>
>
>
> https://github.com/openvswitch/ovs/commit/2d9439f045eab772cd1863ccc2efe0d179064ae5
>
>
>
> So you can use QEMU 2.4.0 to test.
>
>
>
>
>
> *Regards*
>
> *_Sugesh*
>
>
>
> *From:* 王华夏 [mailto:wanghua...@jd.com <wanghua...@jd.com>]
> *Sent:* Monday, March 14, 2016 1:26 AM
> *To:* Chandran, Sugesh <sugesh.chand...@intel.com>;
> discuss@openvswitch.org
> *Subject:* RE: [ovs-discuss] [bug] a new problem of ovs-dpdk
>
>
>
> I did not used the multiqueue in this test. And in ovs user guide ,it
> pointed out :
> *For versions of QEMU v2.4.0 and later, it is currently not possible to 
> unbind more than one dpdkvhostuser port from the guest kernel driver without 
> causing the ovs-vswitchd process to crash. If this is a requirement for your 
> use case, it is recommended either to use a version of QEMU between v2.2.0 
> and v2.3.1 (inclusive”*
>
>
>
> So I tested with qemu= 2.3
>
>
>
>
>
> Wang Huaxia ---JD.COM
>
>
>
> *From: *Chandran, Sugesh <sugesh.chand...@intel.com>
> *Sent: *2016年3月12日 1:12
> *To: *王华夏 <wanghua...@jd.com>; discuss@openvswitch.org
> *Subject: *RE: [ovs-discuss] [bug] a new problem of ovs-dpdk
>
>
>
>
>
> Are you using multiqueue  for this test setup??
>
> Can you please try with Qemu >=2.4  version instead of 2.3?
>
>
>
>
>
> *Regards*
>
> *_Sugesh*
>
>
>
> *From:* discuss [mailto:discuss-boun...@openvswitch.org
> <discuss-boun...@openvswitch.org>] *On Behalf Of *???
> *Sent:* Friday, March 11, 2016 9:54 AM
> *To:* discuss@openvswitch.org
> *Subject:* [ovs-discuss] [bug] a new problem of ovs-dpdk
>
>
>
> Hi all.
>
> These days ,I tested the vm  by using ovs-dpdk ,and found a new problem as
> fellows:
>
>
>
> My test environment :
>
> Host:
>
> Linux version 3.10.0-229.14.1.el7.x86_64 (buil...@kbuilder.dev.centos.org)
> (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Tue Sep 15
> 15:05:51 UTC 2015
>
> Dpdk: version 2.2
>
> Ovs: version 2.5
>
> QEMU version 2.3.1,
>
>
>
> Guest : Linux version 3.10.0-229.el7.x86_64 (
> buil...@kbuilder.dev.centos.org) (gcc version 4.8.2 20140120 (Red Hat
> 4.8.2-16) (GCC) ) #1 SMP Fri Mar 6 11:36:42 UTC 2015
>
>
>
> Ovs:
>
>
>
> 1 S root      61984      1  0  80   0 - 11923 poll_s 14:29 ?
> 00:00:31 ovsdb-server -v
> --remote=punix:/usr/local/var/run/openvswitch/db.sock
> --remote=db:Open_vSwitch,Open_vSwitch,manager_options
> --private-key=db:Open_vSwitch,SSL,private_key
> --certificate=db:Open_vSwitch,SSL,certificate
> --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert --pidfile --detach
>
> 5 S root      61998      1 99  80   0 - 2745735 poll_s 14:29 ?
> 12:25:52 /usr/local/sbin/ovs-vswitchd --dpdk -c 0x1 -n 4 --socket-mem 400
> -- unix:/usr/local/var/run/openvswitch/db.sock --pidfile --detach
>
>
>
> Ovs-port cfg:
>
>
>
>     Bridge "br1"
>
>         Port "dpdk0"
>
>             Interface "dpdk0"
>
>                 type: dpdk
>
>        Port "br1"
>
>             Interface "br1"
>
>                 type: internal
>
>     Bridge "br0"
>
>         Port "br0"
>
>             Interface "br0"
>
>                 type: internal
>
>         Port "vxlan-1"
>
>             Interface "vxlan-1"
>
>                 type: vxlan
>
>                options: {remote_ip="7.0.0.2"}
>
>         Port "vhost-user-0"
>
>             Interface "vhost-user-0"
>
>                 type: dpdkvhostuser
>
>
>
>
>
> The numa huagepages and vcpu configes in xml :
>
>
>
> <memoryBacking>
>
>     <hugepages>
>
>       <page size='2048' unit='KiB'/>
>
>     </hugepages>
>
>   </memoryBacking>
>
>   <vcpu placement='static'>4</vcpu>
>
>   <os>
>
>     <type arch='x86_64' machine='pc-i440fx-2.2'>hvm</type>
>
>     <boot dev='hd'/>
>
>   </os>
>
>   <features>
>
>     <acpi/>
>
>   </features>
>
>   <cpu>
>
>     <numa>
>
>       <cell id='0' cpus='0-3' memory='4000000' unit='KiB'
> memAccess='shared'/>
>
>     </numa>
>
>
>
>
>
> Test steps:
>
> Step 1: create a vm for port vhost-user-0
>
> Step 2: create other 15 vms likes step 1
>
> Step 3 :destroy the 15 vms created by step 2
>
> Step 4 repeat step 2 and step 3
>
>
>
> Then sometimes I find I can’t  reach the vm created by step 1, every time,
> this occurred in step 2
>
>
>
> The logs of guest as fellows:
>
>
>
> localhost kernel: virtio_net virtio0: output.0:id 222 is not a head!
>
> localhost kernel: net eth0: Unexpected TXQ (0) queue failure: -5
>
> localhost kernel: net eth0: Unexpected TXQ (0) queue failure: -5
>
> localhost kernel: net eth0: Unexpected TXQ (0) queue failure: -5
>
> then reboot the vm it can be recovered.
>
>
>
> It is obvious that this is network problem. In my opinion, this the
> problems of the hugepages. But indeed , the hugepages has been mapped when
> the ovs-dpdk started by “/usr/local/sbin/ovs-vswitchd --dpdk -c 0x1 -n 4
> --socket-mem 400 -- unix:/usr/local/var/run/openvswitch/db.sock --pidfile
> --detach”I am not sure. How the hugepages recovery when the vm is
> destroyed. If somebody met the same problem with me , I am do not know if
> this is a bug of ovs-dpdk,or dpdk???
>
>
>
> Thanks
>
> Eric wang
>
>
>
> Wang Huaxia ---JD.COM
>
>
>
> _______________________________________________
> discuss mailing list
> discuss@openvswitch.org
> http://openvswitch.org/mailman/listinfo/discuss
>
>
_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to