[dpdk-dev] [PATCH 0/3] remove RTE_EAL_UNBIND_PORTS related code

Thomas Monjalon thomas.monjalon at 6wind.com
Tue Apr 15 10:15:51 CEST 2014


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


More information about the dev mailing list