From: Konstantin Ananyev <konstantin.ananyev@huawei.com>
To: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
"gakhil@marvell.com" <gakhil@marvell.com>,
"abhinandan.gujjar@intel.com" <abhinandan.gujjar@intel.com>,
nd <nd@arm.com>
Subject: RE: bug in cryptodev enqueue/dequeue callbacks?
Date: Mon, 18 Nov 2024 12:21:53 +0000 [thread overview]
Message-ID: <bf45c969378e4c7eaf48248e8baf7300@huawei.com> (raw)
In-Reply-To: <0B6EDD23-D0E1-4FB0-B37B-03795E80C83A@arm.com>
> > On Nov 14, 2024, at 8:41 AM, Konstantin Ananyev <konstantin.ananyev@huawei.com> wrote:
> >
> > Hi everyone,
> >
> > Looking at implementation of cryptodev callbacks
> > (it uses DPDK RCU), it seems like there is a bug here:
> >
> > at init time we don't call rte_rcu_qsbr_thread_register().
> > As I understand without it rte_rcu_qsbr_check() wouldn't
> > work properly for that thread.
> Yes, this understanding is correct. However, the responsibility of calling the rte_rcu_qsbr_thread_register lies with the application.
> The roles and responsibilities are documented at [1]
>
> [1] https://doc.dpdk.org/guides/prog_guide/rcu_lib.html#resource-reclamation-framework-for-dpdk
I don't think it is an option here.
cryptodev callbacks adding/removing/invoking mechanism it totally opaque to the user.
So these RCU instances are internal for cryptodev devices and shouldn't be updated for the user.
In fact, it is sort of 'speacial-case' where we have rcu with just one thread_id(==0),
and doing online/offline only.
Here is a link to original discussion:
https://mails.dpdk.org/archives/dev/2020-September/183401.html
So I still think we just forgot to call
rte_rcu_qsbr_thread_register(qsbr, 0);
here.
> >
> > Probably need to add:
> > static int
> > cryptodev_cb_init(struct rte_cryptodev *dev)
> > {
> > ....
> > if (rte_rcu_qsbr_init(qsbr, max_threads)) {...}
> > + rte_rcu_qsbr_thread_register(qsbr, 0);
> >
> > Unless I am missing something obvious here?
> > Konstantin
> >
prev parent reply other threads:[~2024-11-18 12:21 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-14 14:41 Konstantin Ananyev
2024-11-15 14:02 ` Honnappa Nagarahalli
2024-11-18 12:21 ` Konstantin Ananyev [this message]
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=bf45c969378e4c7eaf48248e8baf7300@huawei.com \
--to=konstantin.ananyev@huawei.com \
--cc=Honnappa.Nagarahalli@arm.com \
--cc=abhinandan.gujjar@intel.com \
--cc=dev@dpdk.org \
--cc=gakhil@marvell.com \
--cc=nd@arm.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).