[v4,0/5] use IOVAs check based on DMA mask
mbox series

Message ID 1531243552-7795-1-git-send-email-alejandro.lucero@netronome.com
Headers show
Series
  • use IOVAs check based on DMA mask
Related show

Message

Alejandro Lucero July 10, 2018, 5:25 p.m. UTC
This patchset adds, mainly, a check for ensuring IOVAs are within a
restricted range due to addressing limitations with some devices. There
are two known cases: NFP and IOMMU VT-d emulation.

With this check IOVAs out of range are detected and PMDs can abort
initialization. For the VT-d case, IOVA VA mode is allowed as long as
IOVAs are within the supported range, avoiding to forbid IOVA VA by
default.

For the addressing limitations known cases, there are just 40(NFP) or
39(VT-d) bits for handling IOVAs. When using IOVA PA, those limitations
imply 1TB(NFP) or 512M(VT-d) as upper limits, which is likely enough for
most systems. With machines using more memory, the added check will
ensure IOVAs within the range.

With IOVA VA, and because the way the Linux kernel serves mmap calls
in 64 bits systems, 39 or 40 bits are not enough. It is possible to
give an address hint with a lower starting address than the default one
used by the kernel, and then ensuring the mmap uses that hint or hint plus
some offset. With 64 bits systems, the process virtual address space is
large enoguh for doing the hugepages mmaping within the supported range
when those addressing limitations exist. This patchset also adds a change
for using such a hint making the use of IOVA VA a more than likely
possibility when there are those addressing limitations.

The check is not done by default but just when it is required. This
patchset adds the check for NFP initialization and for setting the IOVA
mode is an emulated VT-d is detected.

This patchset applies on 17.11.3.

Similar changes will be submitted to main DPDK branch soon.

v2:
 - add get_addr_hint function
 - call munmap when hint given and not used by mmap
 - create dma mask in one step
 - refactor logs

v3:
 - add new API functions to map files

v4:
 - add sanity check for dma mask bits
 - remove rte_eth_dev_check_dma_mask

Comments

Thomas Monjalon July 26, 2018, 3:41 p.m. UTC | #1
10/07/2018 19:25, Alejandro Lucero:
> This patchset applies on 17.11.3.
> 
> Similar changes will be submitted to main DPDK branch soon.

In patchwork, I mark this patchset as Deferred,
waiting a new version for 18.11.
Alejandro Lucero July 27, 2018, 7:03 a.m. UTC | #2
Hi Thomas,

Why deferred? This patch is only to be applied to 17.11.3. Because the
changes the memory code has gone through the last months, the same fix will
be different for newer versions.

I'm working on it but waiting all the current patches from Anatoly being
accepted for creating the final patchset.



On Thu, Jul 26, 2018 at 5:41 PM, Thomas Monjalon <thomas@monjalon.net>
wrote:

> 10/07/2018 19:25, Alejandro Lucero:
> > This patchset applies on 17.11.3.
> >
> > Similar changes will be submitted to main DPDK branch soon.
>
> In patchwork, I mark this patchset as Deferred,
> waiting a new version for 18.11.
>
>
>
Thomas Monjalon July 27, 2018, 8:01 a.m. UTC | #3
27/07/2018 09:03, Alejandro Lucero:
> Hi Thomas,
> 
> Why deferred? This patch is only to be applied to 17.11.3. Because the
> changes the memory code has gone through the last months, the same fix will
> be different for newer versions.

OK, I can change them to "Not Applicable".

> I'm working on it but waiting all the current patches from Anatoly being
> accepted for creating the final patchset.

Is there still some patches which are not applied?



> On Thu, Jul 26, 2018 at 5:41 PM, Thomas Monjalon <thomas@monjalon.net>
> wrote:
> 
> > 10/07/2018 19:25, Alejandro Lucero:
> > > This patchset applies on 17.11.3.
> > >
> > > Similar changes will be submitted to main DPDK branch soon.
> >
> > In patchwork, I mark this patchset as Deferred,
> > waiting a new version for 18.11.
> >
> >
> >
>
Alejandro Lucero July 27, 2018, 8:22 a.m. UTC | #4
On Fri, Jul 27, 2018 at 10:01 AM, Thomas Monjalon <thomas@monjalon.net>
wrote:

> 27/07/2018 09:03, Alejandro Lucero:
> > Hi Thomas,
> >
> > Why deferred? This patch is only to be applied to 17.11.3. Because the
> > changes the memory code has gone through the last months, the same fix
> will
> > be different for newer versions.
>
> OK, I can change them to "Not Applicable".
>
>
It is not applicable to master but it should for 17.11.3. Adding
stable@dpdk.org to this thread.


> > I'm working on it but waiting all the current patches from Anatoly being
> > accepted for creating the final patchset.
>
> Is there still some patches which are not applied?
>
>
>
Uhmm, maybe a patch for 18.11 could be created now. I was thinking about
these ones:

Support externally allocated memory in DPDK


Support running DPDK without hugetlbfs mountpoint

But they are not going to be in 18.11, so I will submit the patch asap, but
I'm afraid it will be for stable 18.11.1
Next three weeks I'm on PTO, so hopefully I can submit the patch early
September.



> > On Thu, Jul 26, 2018 at 5:41 PM, Thomas Monjalon <thomas@monjalon.net>
> > wrote:
> >
> > > 10/07/2018 19:25, Alejandro Lucero:
> > > > This patchset applies on 17.11.3.
> > > >
> > > > Similar changes will be submitted to main DPDK branch soon.
> > >
> > > In patchwork, I mark this patchset as Deferred,
> > > waiting a new version for 18.11.
> > >
> > >
> > >
> >
>
>
>
>
>
>
Thomas Monjalon July 27, 2018, 8:52 a.m. UTC | #5
27/07/2018 10:22, Alejandro Lucero:
> Thomas Monjalon <thomas@monjalon.net> wrote:
> > 27/07/2018 09:03, Alejandro Lucero:
> > > Thomas Monjalon <thomas@monjalon.net> wrote:
> > > > 10/07/2018 19:25, Alejandro Lucero:
> > > > > This patchset applies on 17.11.3.
> > > > >
> > > > > Similar changes will be submitted to main DPDK branch soon.
> > > >
> > > > In patchwork, I mark this patchset as Deferred,
> > > > waiting a new version for 18.11.

> > > Hi Thomas,
> > >
> > > Why deferred? This patch is only to be applied to 17.11.3. Because the
> > > changes the memory code has gone through the last months, the same fix
> > will
> > > be different for newer versions.
> >
> > OK, I can change them to "Not Applicable".
> >
> It is not applicable to master but it should for 17.11.3. Adding
> stable@dpdk.org to this thread.

The process is to send the patches to stable@dpdk.org with
[PATCH 17.11] in the subject.
Then it must decided of accepting the exception or not.

> > > I'm working on it but waiting all the current patches from Anatoly being
> > > accepted for creating the final patchset.
> >
> > Is there still some patches which are not applied?
> >
> Uhmm, maybe a patch for 18.11 could be created now. I was thinking about
> these ones:
> 
> Support externally allocated memory in DPDK
> Support running DPDK without hugetlbfs mountpoint
> 
> But they are not going to be in 18.11, so I will submit the patch asap, but
> I'm afraid it will be for stable 18.11.1
> Next three weeks I'm on PTO, so hopefully I can submit the patch early
> September.

We are not going to apply them to 18.11.1. It should be in 18.11.0.
If you send them really early September, it can be fine.
Burakov, Anatoly July 27, 2018, 8:54 a.m. UTC | #6
On 27-Jul-18 9:22 AM, Alejandro Lucero wrote:
> 
> 
> On Fri, Jul 27, 2018 at 10:01 AM, Thomas Monjalon <thomas@monjalon.net 
> <mailto:thomas@monjalon.net>> wrote:
> 
>     27/07/2018 09:03, Alejandro Lucero:
>     > Hi Thomas,
>     > 
>     > Why deferred? This patch is only to be applied to 17.11.3. Because the
>     > changes the memory code has gone through the last months, the same fix will
>     > be different for newer versions.
> 
>     OK, I can change them to "Not Applicable".
> 
> 
> It is not applicable to master but it should for 17.11.3. Adding 
> stable@dpdk.org <mailto:stable@dpdk.org> to this thread.
> 
>     > I'm working on it but waiting all the current patches from Anatoly being
>     > accepted for creating the final patchset.
> 
>     Is there still some patches which are not applied?
> 
> 
> 
> Uhmm, maybe a patch for 18.11 could be created now. I was thinking about 
> these ones:
> 
> Support externally allocated memory in DPDK
> 
> 
> Support running DPDK without hugetlbfs mountpoint

External memory allocators is an RFC intended for 18.11. In-memory mode 
patches are already applied IIRC.

> 
> 
> But they are not going to be in 18.11, so I will submit the patch asap, 
> but I'm afraid it will be for stable 18.11.1
> Next three weeks I'm on PTO, so hopefully I can submit the patch early 
> September.
> 
> 
> 
>      > On Thu, Jul 26, 2018 at 5:41 PM, Thomas Monjalon
>     <thomas@monjalon.net <mailto:thomas@monjalon.net>>
>      > wrote:
>      >
>      > > 10/07/2018 19:25, Alejandro Lucero:
>      > > > This patchset applies on 17.11.3.
>      > > >
>      > > > Similar changes will be submitted to main DPDK branch soon.
>      > >
>      > > In patchwork, I mark this patchset as Deferred,
>      > > waiting a new version for 18.11.
>      > >
>      > >
>      > >
>      >
> 
> 
> 
> 
> 
>
Alejandro Lucero July 27, 2018, 8:59 a.m. UTC | #7
On Fri, Jul 27, 2018 at 10:52 AM, Thomas Monjalon <thomas@monjalon.net>
wrote:

> 27/07/2018 10:22, Alejandro Lucero:
> > Thomas Monjalon <thomas@monjalon.net> wrote:
> > > 27/07/2018 09:03, Alejandro Lucero:
> > > > Thomas Monjalon <thomas@monjalon.net> wrote:
> > > > > 10/07/2018 19:25, Alejandro Lucero:
> > > > > > This patchset applies on 17.11.3.
> > > > > >
> > > > > > Similar changes will be submitted to main DPDK branch soon.
> > > > >
> > > > > In patchwork, I mark this patchset as Deferred,
> > > > > waiting a new version for 18.11.
>
> > > > Hi Thomas,
> > > >
> > > > Why deferred? This patch is only to be applied to 17.11.3. Because
> the
> > > > changes the memory code has gone through the last months, the same
> fix
> > > will
> > > > be different for newer versions.
> > >
> > > OK, I can change them to "Not Applicable".
> > >
> > It is not applicable to master but it should for 17.11.3. Adding
> > stable@dpdk.org to this thread.
>
> The process is to send the patches to stable@dpdk.org with
> [PATCH 17.11] in the subject.
> Then it must decided of accepting the exception or not.
>
>
OK. I'll do that then.


> > > > I'm working on it but waiting all the current patches from Anatoly
> being
> > > > accepted for creating the final patchset.
> > >
> > > Is there still some patches which are not applied?
> > >
> > Uhmm, maybe a patch for 18.11 could be created now. I was thinking about
> > these ones:
> >
> > Support externally allocated memory in DPDK
> > Support running DPDK without hugetlbfs mountpoint
> >
> > But they are not going to be in 18.11, so I will submit the patch asap,
> but
> > I'm afraid it will be for stable 18.11.1
> > Next three weeks I'm on PTO, so hopefully I can submit the patch early
> > September.
>
> We are not going to apply them to 18.11.1. It should be in 18.11.0.
> If you send them really early September, it can be fine.
>
>
Good. Thanks!