From: Marc Sune <marc.sune@bisdn.de>
To: "<dev@dpdk.org>" <dev@dpdk.org>
Cc: "dev-team@bisdn.de" <dev-team@bisdn.de>
Subject: [dpdk-dev] KNI and memzones
Date: Tue, 23 Sep 2014 11:27:47 +0200 [thread overview]
Message-ID: <54213D13.4040605@bisdn.de> (raw)
Hi all,
So we are having some problems with KNI. In short, we have a DPDK
application that creates KNI interfaces and destroys them during its
lifecycle and connecting them to DOCKER containers. Interfaces may
eventually be even named the same (see below).
We were wondering why even calling rte_kni_release() the hugepages
memory was rapidly being exhausted, and we also realised even after
destruction, you cannot use the same name for the interface.
After close inspection of the rte_kni lib we think the core issue and is
mostly a design issue. rte_kni_alloc ends up calling
kni_memzone_reserve() that calls at the end rte_memzone_reserve() which
cannot be unreserved by rte_kni_relese() (by design of memzones). The
exhaustion is rapid due to the number of FIFOs created (6).
If this would be right, we would propose and try to provide a patch as
follows:
* Create a new rte_kni_init(unsigned int max_knis);
This would preallocate all the FIFO rings(TX, RX, ALLOC, FREE, Request
and Response)*max_knis by calling kni_memzone_reserve(), and store them
in a kni_fifo_pool. This should only be called once by DPDK applications
at bootstrapping time.
* rte_kni_allocate would just use one of the kni_fifo_pool (one =>
meaning a a set of 6 FIFOs making a single slot)
* rte_kni_release would return to the pool.
This should solve both issues. We would base the patch on 1.7.2.
Thoughts?
marc
p.s. Lately someone involved with DPDK said KNI would be deprecated in
future DPDK releases; I haven't read or listen to this before, is this
true? What would be the natural replacement then?
next reply other threads:[~2014-09-23 9:21 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-23 9:27 Marc Sune [this message]
2014-09-23 12:39 ` Jay Rolette
2014-09-23 16:38 ` Zhou, Danny
2014-09-23 18:53 ` Jay Rolette
2014-09-23 19:12 ` Zhou, Danny
2014-09-23 19:24 ` Jay Rolette
2014-09-23 20:50 ` Marc Sune
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=54213D13.4040605@bisdn.de \
--to=marc.sune@bisdn.de \
--cc=dev-team@bisdn.de \
--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).