DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Polevoy, Igor" <Igor_Polevoy@McAfee.com>
To: Keunhong Lee <dlrmsghd@gmail.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] driver initialization in DPDK 2.0 built into a shared library.
Date: Mon, 20 Jul 2015 23:57:58 +0000	[thread overview]
Message-ID: <78a5648a6b054ce48dfc09bfe3533f1f@MIVEXUSR1N03.corpzone.internalzone.com> (raw)
In-Reply-To: <CAKBXKmBTuYWFQHZJC875bUJcOyR36uuTp6t5wv3ZpSZom_hs0Q@mail.gmail.com>

After linking the shared library using –whole-archive and –start-group and allowing for multiple definitions also with –z,muldefs I have the situation when init is called two times and I’m  getting the core created inside the tailqinitfn_rte_uio_tailq
(eal_common_tailqs.c:153).
Commenting out the log print does not help as the method still returns -1 and goes to the rte_panic.

Igor

From: Keunhong Lee [mailto:dlrmsghd@gmail.com]
Sent: Tuesday, July 14, 2015 11:42 AM
To: Polevoy, Igor
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] driver initialization in DPDK 2.0 built into a shared library.

Did you tried 'mk/rte_app.mk<http://rte_app.mk>' to build you application?
Simply including -lrte_pmd_xxx may cause problem because
PMD_REGISTER_DRIVER uses 'init' attribute,
which is called before the 'main' function.
See the 'start-group' and 'whole-archive' linker options.

Keunhong.


2015-07-15 3:21 GMT+09:00 Polevoy, Igor <Igor_Polevoy@mcafee.com<mailto:Igor_Polevoy@mcafee.com>>:
Hi,
We are developing an application that uses DPDK PMD functionality .
We are using a linux shared library which contains the network packets processing code and it is statically linked with all the necessary DPDK libs.
The .so is loaded by the main program.
For the DPDK compilation we have added the -fPIC to the GCC options.

While it all worked fine with DPDK 1.6 where we had the rte_pmd_init_all method, in the 2.0 version the
drivers registration methods (PMD_REGISTER_DRIVER) are not called when the shared library is loaded.

Although, I can go along the lines of the rte_pmd_init all and manually call the driver registration, I'm concerned
that DPDK has other drivers initialization calls, and I don't actually know which are needed or could be needed and when.

Do you have any advice on that? What is the best way to resolve this issue?

Thank you
Igor.


  reply	other threads:[~2015-07-21  0:07 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-14 18:21 Polevoy, Igor
2015-07-14 18:41 ` Keunhong Lee
2015-07-20 23:57   ` Polevoy, Igor [this message]
2015-07-15  9:14 ` Bruce Richardson
2015-07-16 13:00 ` Zoltan Kiss

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=78a5648a6b054ce48dfc09bfe3533f1f@MIVEXUSR1N03.corpzone.internalzone.com \
    --to=igor_polevoy@mcafee.com \
    --cc=dev@dpdk.org \
    --cc=dlrmsghd@gmail.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).