> On 4 Nov 2019, at 18:27, Burakov, Anatoly <anatoly.bura...@intel.com> wrote: > > On 04-Nov-19 1:57 PM, Damjan Marion (damarion) wrote: >>> On 25 Oct 2019, at 15:02, Damjan Marion (damarion) <damar...@cisco.com >>> <mailto:damar...@cisco.com>> wrote: >>> >>> >>> >>>> On 25 Oct 2019, at 14:23, Burakov, Anatoly <anatoly.bura...@intel.com >>>> <mailto:anatoly.bura...@intel.com>> wrote: >>>> >>>> On 25-Oct-19 12:13 PM, Damjan Marion (damarion) wrote: >>>>>> On 25 Oct 2019, at 00:32, Thomas Monjalon <tho...@monjalon.net >>>>>> <mailto:tho...@monjalon.net>> wrote: >>>>>> >>>>>> 24/10/2019 21:09, David Marchand: >>>>>>> On Thu, Oct 24, 2019 at 2:18 PM Anatoly Burakov >>>>>>> <anatoly.bura...@intel.com <mailto:anatoly.bura...@intel.com>> wrote: >>>>>>>> >>>>>>>> The rte_vfio_dma_map/unmap API's have been marked as deprecated in >>>>>>>> release 19.05. Remove them. >>>>>>>> >>>>>>>> Signed-off-by: Anatoly Burakov <anatoly.bura...@intel.com >>>>>>>> <mailto:anatoly.bura...@intel.com>> >>>>>>>> --- >>>>>>>> >>>>>>>> Notes: >>>>>>>> Although `rte_vfio_dma_map` et al. was marked as deprecated in our >>>>>>>> documentation, >>>>>>>> it wasn't marked as __rte_deprecated in code. Should we still >>>>>>>> remove it? >>>>>>> >>>>>>> I can see that vpp is still using this api. >>>>>>> I would prefer we get some ack from their side. >>>>>>> >>>>>>> Shahaf? >>>>>>> Ray? >>>>>>> >>>>>>> Do you guys have contact with VPP devs? >>>>>> >>>>>> +Cc Damjan >>>>> Thanks for looping me in. If I remember correctly that was used only to >>>>> get mlx PMDs working. >>>>> We can remove that calls but then mlx PMDs will stop working unless there >>>>> is alternative solution. >>>>> From my perspective it is not big issue as we already have native rdma >>>>> based mlx support, but i would expect that other people will complain. >>>>> Is there alternative way to tell DPDK about DMA mapping? >>>> >>>> The rte_vfio_container_dma_map(VFIO_DEFAULT_CONTAINER, ...) is the exact >>>> equivalent of the functions being removed. Also, rte_dev_dma_map() is >>>> supposed to be the more general DMA mapping API that works with VFIO and >>>> with any other bus/device-specific DMA mapping. >>>> >>>> So yes, a simple search and replace for "rte_vfio_dma_(un)?map(" to >>>> "rte_vfio_container_dma_(un)?map(VFIO_DEFAULT_CONTAINER, " should trigger >>>> exactly the same behavior. >>> >>> Done, will be merged after it passes verify jobs… >>> >>> https://gerrit.fd.io/r/c/vpp/+/22982 >> I just got report that this patch breaks some tests. Is it >> RTE_VFIO_DEFAULT_CONTAINER_FD right value to use here? >> Maybe i wrongly assumed that when you said VFIO_DEFAULT_CONTAINER, you meant >> RTE_VFIO_DEFAULT_CONTAINER_FD… >> — >> Damjan > Yes, i think i can see the bug. Can you rerun the failing test after applying > the following patch? > > diff --git a/lib/librte_eal/linux/eal/eal_vfio.c > b/lib/librte_eal/linux/eal/eal_vfio.c > index d9541b1220..d7887388f9 100644 > --- a/lib/librte_eal/linux/eal/eal_vfio.c > +++ b/lib/librte_eal/linux/eal/eal_vfio.c > @@ -412,6 +412,9 @@ get_vfio_cfg_by_container_fd(int container_fd) > { > int i; > > + if (container_fd == RTE_VFIO_DEFAULT_CONTAINER_FD) > + return default_vfio_cfg; > + > for (i = 0; i < VFIO_MAX_CONTAINERS; i++) { > if (vfio_cfgs[i].vfio_container_fd == container_fd) > return &vfio_cfgs[i]; > > > The problem seems to be that we're looking at actual fd, whereas the > RTE_VFIO_DEFAULT_CONTAINER_FD value is -1, which will not match anything in > that list.
That was exactly my reading, but I didn’t want to rush into conclusion. Will ask guys to test…