From: bugzilla@dpdk.org
To: dev@dpdk.org
Subject: [dpdk-dev] [Bug 809] KNI request overwritten with new asynchronous kni_net_release mechanism
Date: Tue, 14 Sep 2021 14:41:51 +0000 [thread overview]
Message-ID: <bug-809-3@http.bugs.dpdk.org/> (raw)
https://bugs.dpdk.org/show_bug.cgi?id=809
Bug ID: 809
Summary: KNI request overwritten with new asynchronous
kni_net_release mechanism
Product: DPDK
Version: 21.11
Hardware: x86
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: ethdev
Assignee: dev@dpdk.org
Reporter: erclists@gmail.com
Target Milestone: ---
With the new asynchronous KNI request for kni_net_release() there is a
potential for an interface down request to be overwritten in the KNI request
fifo. The issue occurs when an application sets an interface down, immediately
followed by setting the interface up.
The down request gets put on the KNI fifo and then returns immediately (inside
kni_net_process_request) . If a subsequent up request comes in before the down
request has had a chance to be processed by the request handler, the new up
request gets written to the same KNI sync address, thus overwriting the down
request and the first down request will be missed:
/* Construct data */
memcpy(kni->sync_kva, req, sizeof(struct rte_kni_request)); <--
Overwritten
num = kni_fifo_put(kni->req_q, &kni->sync_va, 1);
Before this asynchronous mechanism was introduced this was prevented by taking
the kni->sync_lock and waiting for the response. But even in this case if the
wait timeout was exceeded, this same type of condition could theoretically
happen.
--
You are receiving this mail because:
You are the assignee for the bug.
reply other threads:[~2021-09-14 14:41 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=bug-809-3@http.bugs.dpdk.org/ \
--to=bugzilla@dpdk.org \
--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).