From: Thomas Monjalon <thomas@monjalon.net>
To: Alejandro Lucero <alejandro.lucero@netronome.com>
Cc: lei.a.yao@intel.com, dev <dev@dpdk.org>,
"Xu, Qian Q" <qian.q.xu@intel.com>,
xueqin.lin@intel.com, "Burakov,
Anatoly" <anatoly.burakov@intel.com>,
Ferruh Yigit <ferruh.yigit@intel.com>
Subject: Re: [PATCH v3 0/6] use IOVAs check based on DMA mask
Date: Mon, 29 Oct 2018 15:18:21 +0100 [thread overview]
Message-ID: <3483377.PMXnpSGLS9@xps> (raw)
In-Reply-To: <CAD+H990gvgYU8UPhEMeY3gmDqW-LXM+FZaZSWVDGttu4V3J2DQ@mail.gmail.com>
29/10/2018 14:40, Alejandro Lucero:
> On Mon, Oct 29, 2018 at 1:18 PM Yao, Lei A <lei.a.yao@intel.com> wrote:
> > *From:* Alejandro Lucero [mailto:alejandro.lucero@netronome.com]
> > On Mon, Oct 29, 2018 at 11:46 AM Thomas Monjalon <thomas@monjalon.net>
> > wrote:
> >
> > 29/10/2018 12:39, Alejandro Lucero:
> > > I got a patch that solves a bug when calling rte_eal_dma_mask using the
> > > mask instead of the maskbits. However, this does not solves the
> > deadlock.
> >
> > The deadlock is a bigger concern I think.
> >
> > I think once the call to rte_eal_check_dma_mask uses the maskbits instead
> > of the mask, calling rte_memseg_walk_thread_unsafe avoids the deadlock.
> >
> > Yao, can you try with the attached patch?
> >
> > Hi, Lucero
> >
> > This patch can fix the issue at my side. Thanks a lot
> > for you quick action.
>
> Great!
>
> I will send an official patch with the changes.
Please, do not forget my other request to better comment functions.
> I have to say that I tested the patchset, but I think it was where
> legacy_mem was still there and therefore dynamic memory allocation code not
> used during memory initialization.
>
> There is something that concerns me though. Using
> rte_memseg_walk_thread_unsafe could be a problem under some situations
> although those situations being unlikely.
>
> Usually, calling rte_eal_check_dma_mask happens during initialization. Then
> it is safe to use the unsafe function for walking memsegs, but with device
> hotplug and dynamic memory allocation, there exists a potential race
> condition when the primary process is allocating more memory and
> concurrently a device is hotplugged and a secondary process does the device
> initialization. By now, this is just a problem with the NFP, and the
> potential race condition window really unlikely, but I will work on this
> asap.
Yes, this is what concerns me.
You can add a comment explaining the unsafe which is not handled.
> > > Interestingly, the problem looks like a compiler one. Calling
> > > rte_memseg_walk does not return when calling inside rt_eal_dma_mask,
> > but if
> > > you modify the call like this:
> > >
> > > - if (rte_memseg_walk(check_iova, &mask))
> > > + if (!rte_memseg_walk(check_iova, &mask))
> > >
> > > it works, although the value returned to the invoker changes, of course.
> > > But the point here is it should be the same behaviour when calling
> > > rte_memseg_walk than before and it is not.
> >
> > Anyway, the coding style requires to save the return value in a variable,
> > instead of nesting the call in an "if" condition.
> > And the "if" check should be explicitly != 0 because it is not a real
> > boolean.
> >
> > PS: please do not top post and avoid HTML emails, thanks
> >
> >
>
next prev parent reply other threads:[~2018-10-29 14:18 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-05 12:45 [PATCH v3 0/6] use IOVAs check based on DMA mask Alejandro Lucero
2018-10-05 12:45 ` [PATCH v3 1/6] mem: add function for checking memsegs IOVAs addresses Alejandro Lucero
2018-10-10 8:56 ` Tu, Lijuan
2018-10-11 9:26 ` Alejandro Lucero
2018-10-28 21:03 ` Thomas Monjalon
2018-10-05 12:45 ` [PATCH v3 2/6] mem: use address hint for mapping hugepages Alejandro Lucero
2018-10-29 16:08 ` Dariusz Stojaczyk
2018-10-29 16:40 ` Alejandro Lucero
2018-10-05 12:45 ` [PATCH v3 3/6] bus/pci: check iommu addressing limitation just once Alejandro Lucero
2018-10-05 12:45 ` [PATCH v3 4/6] bus/pci: use IOVAs dmak mask check when setting IOVA mode Alejandro Lucero
2018-10-05 12:45 ` [PATCH v3 5/6] net/nfp: check hugepages IOVAs based on DMA mask Alejandro Lucero
2018-10-05 12:45 ` [PATCH v3 6/6] net/nfp: support IOVA VA mode Alejandro Lucero
2018-10-28 21:04 ` [PATCH v3 0/6] use IOVAs check based on DMA mask Thomas Monjalon
2018-10-29 8:23 ` Yao, Lei A
2018-10-29 8:42 ` Thomas Monjalon
2018-10-29 9:07 ` Thomas Monjalon
2018-10-29 9:25 ` Alejandro Lucero
2018-10-29 9:44 ` Yao, Lei A
2018-10-29 9:36 ` Yao, Lei A
2018-10-29 9:48 ` Thomas Monjalon
2018-10-29 10:11 ` Alejandro Lucero
2018-10-29 10:15 ` Alejandro Lucero
2018-10-29 11:39 ` Alejandro Lucero
2018-10-29 11:46 ` Thomas Monjalon
2018-10-29 12:55 ` Alejandro Lucero
2018-10-29 13:18 ` Yao, Lei A
2018-10-29 13:40 ` Alejandro Lucero
2018-10-29 14:18 ` Thomas Monjalon [this message]
2018-10-29 14:35 ` Alejandro Lucero
2018-10-29 18:54 ` Yongseok Koh
2018-10-29 19:37 ` Alejandro Lucero
2018-10-30 10:10 ` Burakov, Anatoly
2018-10-30 10:11 ` Burakov, Anatoly
2018-10-30 10:19 ` Alejandro Lucero
2018-10-30 3:20 ` Lin, Xueqin
2018-10-30 9:41 ` Alejandro Lucero
2018-10-30 10:33 ` Lin, Xueqin
2018-10-30 10:38 ` Alejandro Lucero
2018-10-30 12:21 ` Lin, Xueqin
2018-10-30 12:37 ` Alejandro Lucero
2018-10-30 14:04 ` Alejandro Lucero
2018-10-30 14:14 ` Burakov, Anatoly
2018-10-30 14:45 ` Alejandro Lucero
2018-10-30 14:45 ` Lin, Xueqin
2018-10-30 14:57 ` Alejandro Lucero
2018-10-30 15:09 ` Lin, Xueqin
2018-10-30 10:18 ` Burakov, Anatoly
2018-10-30 10:23 ` Alejandro Lucero
-- strict thread matches above, loose matches on Subject: below --
2018-07-04 12:53 Alejandro Lucero
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=3483377.PMXnpSGLS9@xps \
--to=thomas@monjalon.net \
--cc=alejandro.lucero@netronome.com \
--cc=anatoly.burakov@intel.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=lei.a.yao@intel.com \
--cc=qian.q.xu@intel.com \
--cc=xueqin.lin@intel.com \
/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 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.