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 1AA11E62 for ; Wed, 23 Dec 2015 02:56:02 +0100 (CET) Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (Postfix) with ESMTPS id C890B96F9; Wed, 23 Dec 2015 01:56:00 +0000 (UTC) Received: from pxdev.xzpeter.org (vpn1-6-193.pek2.redhat.com [10.72.6.193]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id tBN1tsMx020360 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 22 Dec 2015 20:55:57 -0500 Date: Wed, 23 Dec 2015 09:55:54 +0800 From: Peter Xu To: "Xie, Huawei" Message-ID: <20151223015554.GC1694@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> <20151222095641.GH7532@pxdev.xzpeter.org> <20151222113912.GA30780@pxdev.xzpeter.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 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: Wed, 23 Dec 2015 01:56:02 -0000 On Tue, Dec 22, 2015 at 04:38:30PM +0000, Xie, Huawei wrote: > On 12/22/2015 7:39 PM, Peter Xu wrote: > > I tried to unbind one of the virtio net device, I see the PCI entry > > still there. > > > > Before unbind: > > > > [root@vm proc]# lspci -k -s 00:03.0 > > 00:03.0 Ethernet controller: Red Hat, Inc Virtio network device > > Subsystem: Red Hat, Inc Device 0001 > > Kernel driver in use: virtio-pci > > [root@vm proc]# cat /proc/ioports | grep c060-c07f > > c060-c07f : 0000:00:03.0 > > c060-c07f : virtio-pci > > > > After unbind: > > > > [root@vm proc]# lspci -k -s 00:03.0 > > 00:03.0 Ethernet controller: Red Hat, Inc Virtio network device > > Subsystem: Red Hat, Inc Device 0001 > > [root@vm proc]# cat /proc/ioports | grep c060-c07f > > c060-c07f : 0000:00:03.0 > > > > So... does this means that it is an alternative to black list > > solution? > Oh, we could firstly check if this port is manipulated by kernel driver > in virtio_resource_init/eth_virtio_dev_init, as long as it is not too late. I guess there might be two problems? Which are: 1. How user avoid DPDK taking over virtio devices that they do not want for IO (chooses which device to use) 2. Driver conflict between virtio PMD in DPDK, and virtio-pci in kernel (happens on every virtio device that DPDK uses) For the white/black list solution, I guess it's good enough to solve (1) for customers. I am just curious about the 2nd. Or say, even we black listed some virtio devices (or doing white list), the virtio devices used by DPDK are still in danger if we cannot make sure that virtio-pci will not touch the device any more (even it will not touch it, it feels like errornous to not telling virtio-pci to remove it before hand). E.g., if virtio-pci interrupt is still working, when there are packets from outside to guest, vp_interrupt() might be called? Then virtio-pci driver might do read/write to vring as well? If so, that's problematic. Am I wrong? Peter