[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