From: David Marchand <david.marchand@6wind.com>
To: dev@dpdk.org
Subject: [dpdk-dev] [PATCH] eal: fix vdev allocation on non-0 numa socket
Date: Wed, 30 Apr 2014 15:15:08 +0200 [thread overview]
Message-ID: <1398863708-31078-1-git-send-email-david.marchand@6wind.com> (raw)
From: Maxime Leroy <maxime.leroy@6wind.com>
vdev ethdev can not be allocated on a numa socket that is not socket 0.
The reason comes from rte_eth_dev_allocate() which uses rte_socket_id() to
identify the socket on which vdev driver data should be allocated.
However, at this initialization step, rte_socket_id() always returns 0.
Looking at rte_socket_id(), it needs rte_lcore_id() which uses the per-core
global _lcore_id variable. This variable is initialised by
eal_thread_init_master.
So eal_thread_init_master should be called before rte_eal_vdev_init().
Signed-off-by: Maxime Leroy <maxime.leroy@6wind.com>
---
lib/librte_eal/linuxapp/eal/eal.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c
index b7f5ffa..d7a59de 100644
--- a/lib/librte_eal/linuxapp/eal/eal.c
+++ b/lib/librte_eal/linuxapp/eal/eal.c
@@ -1056,12 +1056,14 @@ rte_eal_init(int argc, char **argv)
RTE_LOG(WARNING, EAL, "%s\n", dlerror());
}
- if (rte_eal_vdev_init() < 0)
- rte_panic("Cannot init virtual devices\n");
+ eal_thread_init_master(rte_config.master_lcore);
RTE_LOG(DEBUG, EAL, "Master core %u is ready (tid=%x)\n",
rte_config.master_lcore, (int)thread_id);
+ if (rte_eal_vdev_init() < 0)
+ rte_panic("Cannot init virtual devices\n");
+
RTE_LCORE_FOREACH_SLAVE(i) {
/*
@@ -1082,8 +1084,6 @@ rte_eal_init(int argc, char **argv)
rte_panic("Cannot create thread\n");
}
- eal_thread_init_master(rte_config.master_lcore);
-
/*
* Launch a dummy function on all slave lcores, so that master lcore
* knows they are all ready when this function returns.
--
1.7.10.4
next reply other threads:[~2014-04-30 13:15 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-30 13:15 David Marchand [this message]
2014-04-30 21:16 ` Thomas Monjalon
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=1398863708-31078-1-git-send-email-david.marchand@6wind.com \
--to=david.marchand@6wind.com \
--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).