From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tetsuya Mukawa Subject: Re: [PATCH v4 0/2] Add VHOST PMD Date: Fri, 13 Nov 2015 15:50:16 +0900 Message-ID: <56458828.7070009@igel.co.jp> References: <1447046221-20811-3-git-send-email-mukawa@igel.co.jp> <1447392031-24970-1-git-send-email-mukawa@igel.co.jp> <20151113053215.GN2326@yliu-dev.sh.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: dev@dpdk.org, ann.zhuangyanying@huawei.com To: Yuanhan Liu Return-path: Received: from mail-pa0-f43.google.com (mail-pa0-f43.google.com [209.85.220.43]) by dpdk.org (Postfix) with ESMTP id D24B39392 for ; Fri, 13 Nov 2015 07:50:20 +0100 (CET) Received: by pacdm15 with SMTP id dm15so90926905pac.3 for ; Thu, 12 Nov 2015 22:50:20 -0800 (PST) In-Reply-To: <20151113053215.GN2326@yliu-dev.sh.intel.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 2015/11/13 14:32, Yuanhan Liu wrote: > On Fri, Nov 13, 2015 at 02:20:29PM +0900, Tetsuya Mukawa wrote: >> The patch introduces a new PMD. This PMD is implemented as thin wrapper >> of librte_vhost. >> >> * Known issue. >> We may see issues while handling RESET_OWNER message. >> These handlings are done in vhost library, so not a part of vhost PMD. >> So far, we are waiting for QEMU fixing. > Fix patches have already been applied. Please help test :) > > --yliu Hi Yuanhan, It seems there might be an another issue related with "vq->callfd" in vhost library. We may miss something to handle the value correctly. Anyway, here are steps. 1. Apply vhost PMD patch. (I guess you don't need it to reproduce the issue, but to reproduce it, using the PMD may be easy) 2. Start testpmd on host with vhost-user PMD. 3. Start QEMU with virtio-net device. 4. Login QEMU. 5. Bind the virtio-net device to igb_uio. 6. Start testpmd in QEMU. 7. Quit testmd in QEMU. 8. Start testpmd again in QEMU. It seems when last command is executed, testpmd on host doesn't receive SET_VRING_CALL message from QEMU. Because of this, testpmd on host assumes virtio-net device is not ready. (I made sure virtio_is_ready() was failed on host). According to QEMU source code, SET_VRING_KICK will be called when virtqueue starts, but SET_VRING_CALL will be called when virtqueue is initialized. Not sure exactly, might be "vq->call" will be valid while connection is established? Also I've found a workaround. Please execute after step7. 8. Bind the virtio-net device to virtio-pci kernel driver. 9. Bind the virtio-net device to igb_uio. 10. Start testpmd in QEMU. When step8 is executed, connection will be re-established, and testpmd on host will be able to receive SET_VRING_CALL. Then testpmd on host can start. Thanks, Tetsuya