From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH 0/3] remove RTE_EAL_UNBIND_PORTS related code Date: Tue, 15 Apr 2014 10:15:51 +0200 Message-ID: <4976678.CMXOgFkiV5@xps13> References: <534BEE72.4070205@6wind.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev-VfR2kkLFssw@public.gmane.org To: "Burakov, Anatoly" Return-path: In-Reply-To: List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" Hi Anatoly, 2014-04-14 14:39, Burakov, Anatoly: > > This functionality is at least used by virtio-net-pmd. > > So we cannot remove this without a fix for virtio-net-pmd. > > It appears that virtio-net-pmd hasn't been merged in yet? At least I can't > see it in the git tree for 1.6 release. Maybe you don't know the history of the project. virtio-net-pmd was the first PMD for virtio. It has been released out of tree. Then Intel designed another one based on uio and released it in the DPDK tree. On this topic, you should know that some parts of virtio-uio are (wrongly) integrated in EAL. So it seems to be a bad idea to integrate PMDs in DPDK tree. virtio-net-pmd is hosted outside of the git tree: http://dpdk.org/browse/virtio-net-pmd > > Yet, even if we remove this from the eal, I think we should provide a > > proper api to bind/unbind devices to kernel drivers. > > This way PMDs can use this api and forget about OS dependencies > > (linux/bsd). > > Please forgive me for repeating myself, but I'm still not convinced that > binding/unbinding the kernel drivers has to be the responsibility of the > application in the first place. As far as I know, the reasons why the > binding/unbinding code was there are purely historical and have no > rationale behind them other than "this is how it was first implemented". > Plus, correct me if I'm wrong, but FreeBSD has some issues with port > binding/unbinding - i.e. it can't do that at all, at least during runtime, > so on BSD it's even less of an issue. I understand your point of view. I think everybody agree that EAL should not force binding/unbinding operations. But it could be very convenient to allow PMDs to do it by themselves. Do you agree that the David's version is a good step in the right direction as it allows to remove RTE_EAL_UNBIND_PORTS? If so, could you ack these patches, please? Then we could discuss what are the next steps. > Anyway, the reason I'm bringing this subject up in the first place is I'm > preparing a patch to support VFIO driver alongside igb_uio. Among the > changes I'm preparing to make is getting rid of the device ID list in > igb_uio, so that any driver could be bound to it (via writing to new_id) - > i.e. making it similar to how pci_stub, vfio-pci et al work. A consequence > of that will be that igb_uio won't try to bind any devices unless the user > explicitly asks for it, meaning that the virtio device will not be bound to > igb_uio by default. I think this will remedy the issues with virtio-net-pmd > without the need for force-unbind logic in the EAL. virtio-net-pmd doesn't need any kernel driver. Moreover, the virtio-net kernel driver must be unbound. It can be done before running DPDK but it's simpler to do it in the PMD initialization. By the way, we should remove this flag FORCE_UNBIND. But please, let's do it in another step. -- Thomas