From: "Mattias Rönnblom" <hofors@lysator.liu.se>
To: "Van Haaren, Harry" <harry.van.haaren@intel.com>,
"dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH] eventdev: fix incorrect MP/MC tail updates in rte_event_ring
Date: Tue, 3 Apr 2018 10:14:46 +0200 [thread overview]
Message-ID: <6976944b-b835-925a-15dd-833f583104a5@lysator.liu.se> (raw)
In-Reply-To: <E923DB57A917B54B9182A2E928D00FA65E018DD7@IRSMSX101.ger.corp.intel.com>
On 2018-03-29 14:38, Van Haaren, Harry wrote:
>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Mattias Rönnblom
>> Sent: Wednesday, March 28, 2018 10:17 AM
>> To: dev@dpdk.org
>> Cc: Mattias Rönnblom <hofors@lysator.liu.se>
>> Subject: [dpdk-dev] [PATCH] eventdev: fix incorrect MP/MC tail updates in
>> rte_event_ring
>>
>> rte_event_ring enqueue and dequeue tail updates were hardcoded for a
>> SC/SP configuration.
>>
>> Signed-off-by: Mattias Rönnblom <hofors@lysator.liu.se>
>> ---
>
> Hi Mattias,
>
>
> Thanks for your patch, a few notes;
>
> 1)
> You can CC the maintainer of a section - the event rings falls under
> the eventdev library, and Jerin Jacob is the maintainer.
>
>
> 2)
> In DPDK we note patches that are "Fixes",
> so we can track what commit they fix. Fixes patches are
> also often candidates for backporting.
>
> Details on getting the fixes line here:
> https://dpdk.org/doc/guides/contributing/patches.html#commit-messages-body
>
> For this patch, the following is the fixline:
>
> Fixes: dc39e2f359b5 ("eventdev: add ring structure for events")
> Cc: bruce.richardson@intel.com
>
>
Thanks for your help. I'll resubmit and try to get the administrative
details correct.
>> lib/librte_eventdev/rte_event_ring.h | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/lib/librte_eventdev/rte_event_ring.h
>> b/lib/librte_eventdev/rte_event_ring.h
>> index 29d4228..07b4559 100644
>> --- a/lib/librte_eventdev/rte_event_ring.h
>> +++ b/lib/librte_eventdev/rte_event_ring.h
>> @@ -99,7 +99,7 @@ rte_event_ring_enqueue_burst(struct rte_event_ring *r,
>>
>> ENQUEUE_PTRS(&r->r, &r[1], prod_head, events, n, struct rte_event);
>>
>> - update_tail(&r->r.prod, prod_head, prod_next, 1, 1);
>> + update_tail(&r->r.prod, prod_head, prod_next, 1, r->r.prod.single);
>> end:
>> if (free_space != NULL)
>> *free_space = free_entries - n;
>> @@ -140,7 +140,7 @@ rte_event_ring_dequeue_burst(struct rte_event_ring *r,
>>
>> DEQUEUE_PTRS(&r->r, &r[1], cons_head, events, n, struct rte_event);
>>
>> - update_tail(&r->r.cons, cons_head, cons_next, 1, 0);
>> + update_tail(&r->r.cons, cons_head, cons_next, 1, r->r.cons.single);
>
>
> The signature of update_tail() is as follows:
>
> static __rte_always_inline void
> update_tail(struct rte_ring_headtail *ht, uint32_t old_val, uint32_t new_val,
> uint32_t single, uint32_t enqueue)
>
> It seems to be that the 2nd last parameter sets the single/multi producer?
>
Yes, you are right. I ported this fix from my 17.08 tree, and
update_tail() has changed since then - something I failed to notice.
I reproduced the issue on 17.08, and even on a machine with a strong
memory model, the event ring doesn't work correctly in a MP/SC
configuration. With the fix, it at least passes my tests on 17.08. I
didn't try MP/MC, and I also didn't try anything beyond building on HEAD.
Regards,
Mattias
next prev parent reply other threads:[~2018-04-03 8:14 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-28 9:16 Mattias Rönnblom
2018-03-29 12:38 ` Van Haaren, Harry
2018-04-02 2:55 ` Jerin Jacob
2018-04-03 8:14 ` Mattias Rönnblom [this message]
2018-04-03 8:19 ` Mattias Rönnblom
2018-04-04 0:52 ` Jerin Jacob
2018-04-04 8:52 ` Bruce Richardson
2018-04-04 9:46 ` Jerin Jacob
2018-04-04 10:36 ` Van Haaren, Harry
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=6976944b-b835-925a-15dd-833f583104a5@lysator.liu.se \
--to=hofors@lysator.liu.se \
--cc=dev@dpdk.org \
--cc=harry.van.haaren@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 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).