All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/6] use IOVAs check based on DMA mask
@ 2018-10-05 12:06 Alejandro Lucero
  2018-10-05 12:06 ` [PATCH v2 1/6] mem: add function for checking memsegs IOVAs addresses Alejandro Lucero
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Alejandro Lucero @ 2018-10-05 12:06 UTC (permalink / raw)
  To: dev

I sent a patchset about this to be applied on 17.11 stable. The memory
code has had main changes since that version, so here it is the patchset
adjusted to current master repo.

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. Also, because the recent patchset
adding dynamic memory allocation, the check is also invoked for ensuring
the new memsegs are within the required range.

This patchset could be applied to stable 18.05.

v2:
 - change logs from INFO to DEBUG
 - only keeps dma mask if device capable of addressing allocated memory
 - add ABI changes
 - change hint address increment to page size
 - split pci/bus commit in two
 - fix commits

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2018-10-05 12:20 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-05 12:06 [PATCH v2 0/6] use IOVAs check based on DMA mask Alejandro Lucero
2018-10-05 12:06 ` [PATCH v2 1/6] mem: add function for checking memsegs IOVAs addresses Alejandro Lucero
2018-10-05 12:15   ` Burakov, Anatoly
2018-10-05 12:19     ` Alejandro Lucero
2018-10-05 12:20       ` Burakov, Anatoly
2018-10-05 12:06 ` [PATCH v2 2/6] mem: use address hint for mapping hugepages Alejandro Lucero
2018-10-05 12:16   ` Burakov, Anatoly
2018-10-05 12:06 ` [PATCH v2 3/6] bus/pci: check iommu addressing limitation just once Alejandro Lucero
2018-10-05 12:16   ` Burakov, Anatoly
2018-10-05 12:06 ` [PATCH v2 4/6] bus/pci: use IOVAs dmak mask check when setting IOVA mode Alejandro Lucero
2018-10-05 12:18   ` Burakov, Anatoly
2018-10-05 12:06 ` [PATCH v2 5/6] net/nfp: check hugepages IOVAs based on DMA mask Alejandro Lucero
2018-10-05 12:06 ` [PATCH v2 6/6] net/nfp: support IOVA VA mode Alejandro Lucero

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.