From: 陈亚辉-云杉研发部 <goodluckwillcomesoon@gmail.com>
To: dev@dpdk.org, jiping@yunshan.net, xiangyang@yunshan.net
Subject: [dpdk-dev] eal: can not run secondary process on openstack environment
Date: Wed, 15 Apr 2020 18:06:14 +0800 [thread overview]
Message-ID: <CAPydje-rYD=Ce+_vYXbV1bzwW3no4qnW-+XvHyTht9QAfMvbDQ@mail.gmail.com> (raw)
dpdk version: 18.11
Ovs-dpdk runs as openvswitch account on the openstack environment. Use the
root account to run another --proc-type=secondary program,
such as dpdk-pdump or helloword with parameter --proc-type=secondary , and
it will report an Err: Cannot open '/var/run/dpdk/rte/config' for
rte_mem_config.
Check the source code eal.c:
int
eal_create_runtime_dir(void)
{
const char *directory = default_runtime_dir;
const char *xdg_runtime_dir = getenv("XDG_RUNTIME_DIR");
const char *fallback = "/tmp";
char tmp[PATH_MAX];
int ret;
if (getuid() != 0) {
/* try XDG path first, fall back to /tmp */
if (xdg_runtime_dir != NULL)
directory = xdg_runtime_dir;
else
directory = fallback;
}
/* create DPDK subdirectory under runtime dir */
ret = snprintf(tmp, sizeof(tmp), "%s/dpdk", directory);
if (ret < 0 || ret == sizeof(tmp)) {
RTE_LOG(ERR, EAL, "Error creating DPDK runtime path
name\n");
return -1;
}
/* create prefix-specific subdirectory under DPDK runtime dir */
ret = snprintf(runtime_dir, sizeof(runtime_dir), "%s/%s",
tmp, eal_get_hugefile_prefix());
if (ret < 0 || ret == sizeof(runtime_dir)) {
RTE_LOG(ERR, EAL, "Error creating prefix-specific runtime
path name\n");
return -1;
}
The root account is corresponds to the directory /var/run/DPDK/rte, but
openvswitch account is directory /var/run/openvswitch DPDK/rte.
Then, I changed to the openvswitch account and run the process again,
errors below were reported:
EAL: Detected 40 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Multi-process socket
/var/run/openvswitch/dpdk/rte/mp_socket_306857_7e76690dafe702
EAL: Probing VFIO support...
EAL: VFIO support initialized
EAL: Could not map memory from primary process
EAL: FATAL: Cannot init memory
EAL: Cannot init memory
There seems to be insufficient permissions. So, I change the code blow and
all the things get to be OK:
int
eal_create_runtime_dir(void)
{
const char *directory = default_runtime_dir;
const char *xdg_runtime_dir = getenv("XDG_RUNTIME_DIR");
const char *fallback = "/tmp";
char tmp[PATH_MAX];
int ret;
if (getuid() != 0) {
/* try XDG path first, fall back to /tmp */
if (xdg_runtime_dir != NULL)
directory = xdg_runtime_dir;
else
directory = fallback;
}
directory = "/var/run/openvswitch"; // added by my for test.........
/* create DPDK subdirectory under runtime dir */
ret = snprintf(tmp, sizeof(tmp), "%s/dpdk", directory);
if (ret < 0 || ret == sizeof(tmp)) {
RTE_LOG(ERR, EAL, "Error creating DPDK runtime path
name\n");
return -1;
}
This is supposed to be a DPDK BUG. Considering that the primary and
secondary processes may not be the same account,
process with parameter --proc-type=secondary should get the runtime
directory from the primary process instead of
generating a directory as it does now.
next reply other threads:[~2020-04-15 10:06 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-15 10:06 陈亚辉-云杉研发部 [this message]
2020-04-17 13:52 ` Burakov, Anatoly
2020-04-30 4:14 陈亚辉-云杉研发部
2020-04-30 9:14 ` Burakov, Anatoly
2020-04-30 16:09 ` Stephen Hemminger
2020-04-30 16:36 ` Bruce Richardson
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='CAPydje-rYD=Ce+_vYXbV1bzwW3no4qnW-+XvHyTht9QAfMvbDQ@mail.gmail.com' \
--to=goodluckwillcomesoon@gmail.com \
--cc=dev@dpdk.org \
--cc=jiping@yunshan.net \
--cc=xiangyang@yunshan.net \
/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).