From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id A49FC3005 for ; Tue, 22 Dec 2015 10:56:48 +0100 (CET) Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (Postfix) with ESMTPS id DD1A3AAA; Tue, 22 Dec 2015 09:56:47 +0000 (UTC) Received: from pxdev.xzpeter.org (vpn1-6-183.pek2.redhat.com [10.72.6.183]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id tBM9ugti019944 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 22 Dec 2015 04:56:46 -0500 Date: Tue, 22 Dec 2015 17:56:41 +0800 From: Peter Xu To: Yuanhan Liu Message-ID: <20151222095641.GH7532@pxdev.xzpeter.org> References: <20151222035041.GA7532@pxdev.xzpeter.org> <20151222070029.GO18863@yliu-dev.sh.intel.com> <20151222082338.GG7532@pxdev.xzpeter.org> <20151222083246.GT18863@yliu-dev.sh.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20151222083246.GT18863@yliu-dev.sh.intel.com> User-Agent: Mutt/1.5.24 (2015-08-30) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 Cc: DPDK Dev Subject: Re: [dpdk-dev] [Question] How pmd virtio works without UIO? 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: Tue, 22 Dec 2015 09:56:48 -0000 On Tue, Dec 22, 2015 at 04:32:46PM +0800, Yuanhan Liu wrote: > Actually, you are right. I mentioned in the last email that this is > for configuration part. To answer your question in this email, you > will not be able to go that further (say initiating virtio pmd) if > you don't unbind the origin virtio-net driver, and bind it to igb_uio > (or something similar). > > The start point is from rte_eal_pci_scan, where the sub-function > pci_san_one just initates a DPDK bond driver. I am not sure whether I do understand your meaning correctly (regarding "you willl not be able to go that furture"): The problem is that, we _can_ run testpmd without unbinding the ports and bind to UIO or something. What we need to do is boot the guest, reserve huge pages, and run testpmd (keeping its kernel driver as "virtio-pci"). In pci_scan_one(): if (!ret) { if (!strcmp(driver, "vfio-pci")) dev->kdrv = RTE_KDRV_VFIO; else if (!strcmp(driver, "igb_uio")) dev->kdrv = RTE_KDRV_IGB_UIO; else if (!strcmp(driver, "uio_pci_generic")) dev->kdrv = RTE_KDRV_UIO_GENERIC; else dev->kdrv = RTE_KDRV_UNKNOWN; } else dev->kdrv = RTE_KDRV_UNKNOWN; I think it should be going to RTE_KDRV_UNKNOWN (driver=="virtio-pci") here. I tried to run IO and it could work, but I am not sure whether it is safe, and how. Also, I am not sure whether I need to (at least) unbind the virtio-pci driver, so that there should have no kernel driver running for the virtio device before DPDK using it. Thanks Peter > > --yliu