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 1A258370 for ; Tue, 22 Dec 2015 09:23:49 +0100 (CET) Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (Postfix) with ESMTPS id EF18035732E; Tue, 22 Dec 2015 08:23:47 +0000 (UTC) Received: from pxdev.xzpeter.org (vpn1-6-183.pek2.redhat.com [10.72.6.183]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id tBM8Nerq021077 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 22 Dec 2015 03:23:45 -0500 Date: Tue, 22 Dec 2015 16:23:38 +0800 From: Peter Xu To: Yuanhan Liu Message-ID: <20151222082338.GG7532@pxdev.xzpeter.org> References: <20151222035041.GA7532@pxdev.xzpeter.org> <20151222070029.GO18863@yliu-dev.sh.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20151222070029.GO18863@yliu-dev.sh.intel.com> User-Agent: Mutt/1.5.24 (2015-08-30) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 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 08:23:49 -0000 On Tue, Dec 22, 2015 at 03:00:29PM +0800, Yuanhan Liu wrote: > On Tue, Dec 22, 2015 at 11:50:41AM +0800, Peter Xu wrote: > > Hi, > > > > I got a question related to how virtio pmd driver work without > > UIO layer. > > > > I see that in virtio PMD driver, DPDK will first try to init the > > device using UIO interfaces. If it fails, it will try to init by > > manipulating IO ports directly (see virtio_resource_init()). > > > > For the ioport case, is it okay to do it like this? E.g., in > > eth_virtio_dev_init(), we are resetting the virtio device, however, > > this device should still be owned by virtio-pci driver in the > > kernel. > > > > How is that working? Did I miss anything? > > That's for configuration part: as far as we can read/write the right > PCI port, virtio pmd configuration will work. Note that on this case, > uio just provides another way to tell you where the port is. Will there be any conflict? For example, when we start testpmd in the guest without UIO (now, guest virtio net device is using virtio-pci driver), we directly do read/write to IO ports of the virtio device, reset it, and configure it. During the time, virtio-pci driver of the virtio device should be still working (we could see it by doing lspci -k), never knowing that the device is reset. So... It seems like that both DPDK and virtio-pci are manipulating the device. After that, for example, when host trigger interrupt for guest vring, who (DPDK or virtio-pci) will handle it? I would understand if we unbind the virtio-pci driver before taking over the device. But it seems not. Peter > > --yliu