DPDK patches and discussions
 help / color / mirror / Atom feed
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).