From: "Xie, Huawei" <huawei.xie@intel.com>
To: Thomas Monjalon <thomas.monjalon@6wind.com>
Cc: Dyasly Sergey <s.dyasly@samsung.com>,
"dev@dpdk.org" <dev@dpdk.org>,
Ilya Maximets <i.maximets@samsung.com>
Subject: Re: [dpdk-dev] [PATCH RFC 4/4] doc: add note about rte_vhost_enqueue_burst thread safety.
Date: Tue, 23 Feb 2016 05:56:39 +0000 [thread overview]
Message-ID: <C37D651A908B024F974696C65296B57B4C5F068D@SHSMSX101.ccr.corp.intel.com> (raw)
In-Reply-To: <3343596.CjhAKlsm75@xps13>
On 2/22/2016 6:16 PM, Thomas Monjalon wrote:
> 2016-02-22 02:07, Xie, Huawei:
>> On 2/19/2016 5:05 PM, Ilya Maximets wrote:
>>> On 19.02.2016 11:36, Xie, Huawei wrote:
>>>> On 2/19/2016 3:10 PM, Yuanhan Liu wrote:
>>>>> On Fri, Feb 19, 2016 at 09:32:43AM +0300, Ilya Maximets wrote:
>>>>>> Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
>>>>>> ---
>>>>>> doc/guides/prog_guide/thread_safety_dpdk_functions.rst | 1 +
>>>>>> 1 file changed, 1 insertion(+)
>>>>>>
>>>>>> diff --git a/doc/guides/prog_guide/thread_safety_dpdk_functions.rst b/doc/guides/prog_guide/thread_safety_dpdk_functions.rst
>>>>>> index 403e5fc..13a6c89 100644
>>>>>> --- a/doc/guides/prog_guide/thread_safety_dpdk_functions.rst
>>>>>> +++ b/doc/guides/prog_guide/thread_safety_dpdk_functions.rst
>>>>>> The mempool library is based on the DPDK lockless ring library and therefore is also multi-thread safe.
>>>>>> +rte_vhost_enqueue_burst() is also thread safe because based on lockless ring-buffer algorithm like the ring library.
>>>>> FYI, Huawei meant to make rte_vhost_enqueue_burst() not be thread-safe,
>>>>> to aligh with the usage of rte_eth_tx_burst().
>>>>>
>>>>> --yliu
>>>> I have a patch to remove the lockless enqueue. Unless there is strong
>>>> reason, i prefer vhost PMD to behave like other PMDs, with no internal
>>>> lockless algorithm. In future, for people who really need it, we could
>>>> have dynamic/static switch to enable it.
>> Thomas, what is your opinion on this and my patch removing lockless enqueue?
> The thread safety behaviour is part of the API specification.
> If we want to enable/disable such behaviour, it must be done with an API
> function. But it would introduce a conditional statement in the fast path.
> That's why the priority must be to keep a simple and consistent behaviour
> and try to build around. An API complexity may be considered only if there
> is a real (measured) gain.
Let us put the gain aside temporarily. I would do the measurement.
Vhost is wrapped as a PMD in Tetsuya's patch. And also in DPDK OVS's
case, it is wrapped as a vport like all other physical ports. The DPDK
app/OVS will treat all ports equally. It will add complexity if the app
needs to know that some supports concurrency while some not. Since all
other PMDs doesn't support thread safety, it doesn't make sense for
vhost PMD to support that. I believe the APP will not use that behavior.
>From the API's point of view, if we previously implemented it wrongly,
we need to fix it as early as possible.
>
>
next prev parent reply other threads:[~2016-02-23 5:56 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-19 6:32 [dpdk-dev] [PATCH RFC 0/4] Thread safe rte_vhost_enqueue_burst() Ilya Maximets
2016-02-19 6:32 ` [dpdk-dev] [PATCH RFC 1/4] vhost: use SMP barriers instead of compiler ones Ilya Maximets
2016-02-19 6:32 ` [dpdk-dev] [PATCH RFC 2/4] vhost: make buf vector for scatter RX local Ilya Maximets
2016-02-19 7:06 ` Yuanhan Liu
2016-02-19 7:30 ` Ilya Maximets
2016-02-19 8:10 ` Xie, Huawei
2016-04-05 5:47 ` [dpdk-dev] [RFC] vhost-user public struct refactor (was Re: [PATCH RFC 2/4] vhost: make buf vector for scatter RX) local Yuanhan Liu
2016-04-05 8:37 ` Thomas Monjalon
2016-04-05 14:06 ` Yuanhan Liu
2016-04-06 4:14 ` Flavio Leitner
2016-04-06 4:54 ` Yuanhan Liu
2016-02-19 6:32 ` [dpdk-dev] [PATCH RFC 3/4] vhost: avoid reordering of used->idx and last_used_idx updating Ilya Maximets
2016-02-19 6:32 ` [dpdk-dev] [PATCH RFC 4/4] doc: add note about rte_vhost_enqueue_burst thread safety Ilya Maximets
2016-02-19 7:10 ` Yuanhan Liu
2016-02-19 8:36 ` Xie, Huawei
2016-02-19 9:05 ` Ilya Maximets
2016-02-22 2:07 ` Xie, Huawei
2016-02-22 10:14 ` Thomas Monjalon
2016-02-23 5:56 ` Xie, Huawei [this message]
2016-02-24 5:06 ` Ilya Maximets
2016-02-25 5:12 ` Xie, Huawei
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=C37D651A908B024F974696C65296B57B4C5F068D@SHSMSX101.ccr.corp.intel.com \
--to=huawei.xie@intel.com \
--cc=dev@dpdk.org \
--cc=i.maximets@samsung.com \
--cc=s.dyasly@samsung.com \
--cc=thomas.monjalon@6wind.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 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).