From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wg0-f47.google.com (mail-wg0-f47.google.com [74.125.82.47]) by dpdk.org (Postfix) with ESMTP id 357307E74 for ; Mon, 13 Oct 2014 04:59:34 +0200 (CEST) Received: by mail-wg0-f47.google.com with SMTP id x13so7724061wgg.30 for ; Sun, 12 Oct 2014 20:07:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=8/d3P4Agg/Pdbhfks2+FkDbylVH9tHctQedw0cZqsOI=; b=VhLEgUJmfzhG19VzdAQVw0Kea4sDWz3hJW7Ccc5bvDUhdcb5qcCkCWT0+PUJNjV1Tc r3bg/3+0ekYtLtwGmc4E2FSowsDApNJDiMc+5Qr5Lms4mkMK+fD4TzP+ekqHYOdSPBaN w+sHGlqdiOXQVzXJRmWV4ydHfp5mv/9GoZNReumgo4HcScZpKRdOfB3BcF3OTbgiO7s1 XGvHOOZ6kxK0RmYtQNewg3mUNFT69TNyoTO7PS88ycC3N6VHGFMfI86jHPDX2D6ZNXeR QYCJyrhQRG+jYt6CXWdaBf8pqu9xJfec42uh3W+w3/B/Vv+iZVzeg/oBbAuqbMSpBQ9D Soow== MIME-Version: 1.0 X-Received: by 10.194.11.10 with SMTP id m10mr399461wjb.77.1413169632290; Sun, 12 Oct 2014 20:07:12 -0700 (PDT) Received: by 10.194.95.74 with HTTP; Sun, 12 Oct 2014 20:07:12 -0700 (PDT) In-Reply-To: References: Date: Mon, 13 Oct 2014 08:37:12 +0530 Message-ID: From: Navakanth M To: "Patel, Rashmin N" , "Cao, Waterman" Content-Type: text/plain; charset=ISO-8859-1 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] vmxnet3 pmd dev restart X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Oct 2014 02:59:34 -0000 Hi Rashmin I have tried the memset change but still I am facing the problem which I pointed out earlier. After restart, packets are not being received in vmxnet3_recv_pkts(). I have also observed PANIC in vmxnet3_tq_tx_complete() after couple of stop and start operations. PANIC in vmxnet3_tq_tx_complete(): EOP desc does not point to a valid mbuf15: [/lib64/libc.so.6(clone+0x6d) [0x7fd60354c52d]] 1: [/mswitch/bin/sos.shumway.elf(rte_dump_stack+0x23) [0x463313]] 2: [/mswitch/bin/sos.shumway.elf(__rte_panic+0xc1) [0x447ae8]] 3: [/mswitch/bin/sos.shumway.elf(vmxnet3_xmit_pkts+0x382) [0x4f4f22]] Thanks Navakanth On Fri, Oct 10, 2014 at 8:39 AM, Cao, Waterman wrote: > Hi Rashmin, > > We found similar issue when we start/stop vmnet dev several time. (> 3 times) > It happens kernel panic, and sometimes kernel will occur core dump. > Let me know if you want to submit patch to fix it. > > Thanks > Waterman > > -----Original Message----- >>From: Patel, Rashmin N >>Sent: Friday, October 10, 2014 6:07 AM >>To: Navakanth M; stephen@networkplumber.org; Cao, Waterman >>Cc: dev@dpdk.org >>Subject: RE: vmxnet3 pmd dev restart >> >>I just quickly looked into the code and instead of releasing memory or simply set it to NULL (patch: >> http://thread.gmane.org/gmane.comp.networking.dpdk.devel/4683), you can zero it out and it should work perfectly, you can give it a quick try. >> >>//rte_free(ring->buf_info); >>memset(ring->buf_info, 0x0, ring->size*sizeof(vmxnet3_buf_info_t)); >> >>This will not free the memory from heap but just wipe it out to 0x0, provided that we freed all the mbuf(s) pointed by each buf_info->m pointers. Hence you won't need to reallocate it when you start device after this stop. >> >>Thanks, >>Rashmin >> >>-----Original Message----- >>From: Navakanth M [mailto:navakanthdev@gmail.com] >>Sent: Wednesday, October 08, 2014 10:11 PM >>To: stephen@networkplumber.org; Patel, Rashmin N; Cao, Waterman >>Cc: dev@dpdk.org >>Subject: Re: vmxnet3 pmd dev restart >> >>I had tried with Stephen's patch but after stop is done and when we call start it crashed at vmxnet3_dev_start()-> >>vmxnet3_dev_rxtx_init()->vmxnet3_post_rx_bufs() as buf_info is freed and is not allocated again. buf_info is allocated in >>vmxnet3_dev_rx_queue_setup() which would be called once at the initialization only. >>I also tried not freeing buf_info in stop but then i see different issue after start, packets are not received due to check while (rcd->gen == rxq->comp_ring.gen) { in vmxnet3_recv_pkts() >> >>Waterman, Have you got chance to test stop and start of vmnet dev if so did you notice any issue similar to this? >> >>Thanks >>Navakanth >> >>On Thu, Oct 9, 2014 at 12:46 AM, Patel, Rashmin N wrote: >>> Yes I had a local copy working with couple of lines fix. But someone else, I think Stephen added a fix patch for the same, and I assume if it's been merged, should be working, so did not follow up later. >>> >>> I don't have a VMware setup handy at moment but I think Waterman would have more information about testing that patch if he has found any issue with it. >>> >>> Thanks, >>> Rashmin >>> >>> -----Original Message----- >>> From: Navakanth M [mailto:navakanthdev@gmail.com] >>> Sent: Wednesday, October 08, 2014 4:14 AM >>> To: dev@dpdk.org; Patel, Rashmin N >>> Subject: Re: vmxnet3 pmd dev restart >>> >>> Hi Rashmin >>> >>> I have come across your reply in following post that you have worked on this problem and would submit the patch for it. >>> Can you please share information on the changes you worked on or patch log if you had submitted any for it? >>> http://thread.gmane.org/gmane.comp.networking.dpdk.devel/4683 >>> >>> Thanks >>> Navakanth >>> >>> On Tue, Sep 30, 2014 at 1:44 PM, Navakanth M wrote: >>>> Hi >>>> >>>> I am using DPDKv1.7.0 running on Vmware Esxi 5.1 and am trying to >>>> reset the port which uses pmd_vmnet3 library functions from below >>>> function calls. >>>> rte_eth_dev_stop >>>> rte_eth_dev_start >>>> >>>> Doing this, i face panic while rte_free(ring->buf_info) in >>>> Vmxnet3_cmd_ring_release(). >>>> I have gone through following thread but the patch mentioned didn't >>>> help rather it crashed in start function while accessing buf_info in >>>> vmxnet3_post_rx_bufs. I see this buf_info is allocated in queue setup >>>> functions which are called at initialization. >>>> http://thread.gmane.org/gmane.comp.networking.dpdk.devel/4683 >>>> >>>> I tried not freeing it and then rx packets are not received due to >>>> mismatch in while (rcd->gen == rxq->comp_ring.gen) in >>>> vmxnet3_recv_pkts() >>>> >>>> To reset the device port, is this the right way what i am doing? >>>> Or do I have to call vmxnet3_dev_tx_queue_setup() >>>> vmxnet3_dev_rx_queue_setup() once stop is called? I have checked >>>> recent patches and threads but did not get much information on this. >>>> >>>> Thanks >>>> Navakanth