From: Alejandro Lucero <alejandro.lucero@netronome.com>
To: dev@dpdk.org
Subject: [dpdk-dev] [PATCH 0/7] fix DMA mask check
Date: Wed, 31 Oct 2018 17:29:24 +0000 [thread overview]
Message-ID: <20181031172931.11894-1-alejandro.lucero@netronome.com> (raw)
A patchset sent introducing DMA mask checks has several critical
issues precluding apps to execute. The patchset was reviewed and
finally accepted after three versions. Obviously it did not go
through the proper testing what can be explained, at least from my
side, due to the big changes to the memory initialization code these
last months. It turns out the patchset did work with legacy memory
and I'm afraid that was mainly my testing.
This patchset should solve the main problems reported:
- deadlock duriing initialization
- segmentation fault with secondary processes
For solving the deadlock, a new API is introduced:
rte_mem_check_dma_mask_safe/unsafe
making the previous rte_mem_check_dma_mask the one those new functions
end calling. A boolean param is used for calling rte_memseg_walk thread
safe or thread unsafe. This second option is needed for avoiding the
deadlock.
For the secondary processes problem, the call to check the dma mask is
avoided from code being executed before the memory initialization.
Instead, a new API function, rte_mem_set_dma_mask is introduced, which
will be used in those cases. The dma mask check is done once the memory
initialization is completed.
This last change implies the IOVA mode can not be set depending on IOMMU
hardware limitations, and it is assumed IOVA VA is possible. If the dma
mask check reports a problem after memory initilization, the error
message includes now advice for trying with --iova-mode option set to
pa.
The patchet also includes the dma mask check for legacy memory and the
no hugepage option.
Finally, all the DMA mask API has been updated for using the same prefix
than other EAL memory code.
An initial version of this patchset has been tested by Intel DPDK
Validation team and it seems it solves all the problems reported. This
final patchset has the same functionality with minor changes. I have
successfully tested the patchset with my limited testbench.
Alejandro Lucero (7):
mem: fix call to DMA mask check
mem: use proper prefix
mem: add function for setting DMA mask
bus/pci: avoid call to DMA mask check
mem: modify error message for DMA mask check
mem: add safe and unsafe versions for checking DMA mask
eal/mem: use DMA mask check for legacy memory
doc/guides/rel_notes/release_18_11.rst | 2 +-
drivers/bus/pci/linux/pci.c | 11 ++++++-
drivers/net/nfp/nfp_net.c | 2 +-
lib/librte_eal/common/eal_common_memory.c | 36 +++++++++++++++++---
lib/librte_eal/common/include/rte_memory.h | 37 +++++++++++++++++++--
lib/librte_eal/common/malloc_heap.c | 38 ++++++++++++++++++----
lib/librte_eal/linuxapp/eal/eal_memory.c | 17 ++++++++++
lib/librte_eal/rte_eal_version.map | 4 ++-
8 files changed, 131 insertions(+), 16 deletions(-)
--
2.17.1
next reply other threads:[~2018-10-31 17:29 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-31 17:29 Alejandro Lucero [this message]
2018-10-31 17:29 ` [dpdk-dev] [PATCH 1/7] mem: fix call to " Alejandro Lucero
2018-11-01 10:11 ` Burakov, Anatoly
2018-10-31 17:29 ` [dpdk-dev] [PATCH 2/7] mem: use proper prefix Alejandro Lucero
2018-11-01 10:08 ` Burakov, Anatoly
2018-11-01 10:40 ` Alejandro Lucero
2018-11-01 14:50 ` Thomas Monjalon
2018-11-01 15:03 ` Burakov, Anatoly
2018-11-01 16:18 ` Alejandro Lucero
2018-10-31 17:29 ` [dpdk-dev] [PATCH 3/7] mem: add function for setting DMA mask Alejandro Lucero
2018-11-01 10:11 ` Burakov, Anatoly
2018-11-01 10:48 ` Alejandro Lucero
2018-11-01 10:57 ` Burakov, Anatoly
2018-11-01 11:30 ` Alejandro Lucero
2018-11-01 14:32 ` Alejandro Lucero
2018-10-31 17:29 ` [dpdk-dev] [PATCH 4/7] bus/pci: avoid call to DMA mask check Alejandro Lucero
2018-11-01 10:12 ` Burakov, Anatoly
2018-10-31 17:29 ` [dpdk-dev] [PATCH 5/7] mem: modify error message for " Alejandro Lucero
2018-11-01 10:29 ` Burakov, Anatoly
2018-11-01 11:03 ` Alejandro Lucero
2018-11-01 11:12 ` Burakov, Anatoly
2018-11-01 11:32 ` Alejandro Lucero
2018-10-31 17:29 ` [dpdk-dev] [PATCH 6/7] mem: add safe and unsafe versions for checking DMA mask Alejandro Lucero
2018-11-01 10:38 ` Burakov, Anatoly
2018-11-01 13:34 ` Alejandro Lucero
2018-10-31 17:29 ` [dpdk-dev] [PATCH 7/7] eal/mem: use DMA mask check for legacy memory Alejandro Lucero
2018-11-01 10:40 ` Burakov, Anatoly
2018-11-01 13:39 ` Alejandro Lucero
2018-11-01 14:28 ` Burakov, Anatoly
2018-11-01 14:32 ` Alejandro Lucero
2018-10-31 17:47 ` [dpdk-dev] [PATCH 0/7] fix DMA mask check Alejandro Lucero
2018-11-02 5:52 ` Hyong Youb Kim
2018-11-01 10:13 ` Mattias Rönnblom
2018-11-01 17:28 ` Ferruh Yigit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181031172931.11894-1-alejandro.lucero@netronome.com \
--to=alejandro.lucero@netronome.com \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).