DPDK usage discussions
 help / color / mirror / Atom feed
From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
To: Tao Peng <dev.pengtao@gmail.com>
Cc: users@dpdk.org
Subject: Re: [dpdk-users] net_mlx5: priv allocation failure
Date: Mon, 23 Apr 2018 13:24:57 +0200	[thread overview]
Message-ID: <20180423112457.GM4957@6wind.com> (raw)
In-Reply-To: <CA+CVHvDCU_Ysv_1tFh7fOktiG1JPKS7N8s2qM6nSSYeonKb68Q@mail.gmail.com>

On Mon, Apr 23, 2018 at 06:03:49PM +0800, Tao Peng wrote:
> Hi ,
> 
> When I run the dpdk l2fwd , I encountered some errors, please help, thanks!
> :)
> 
> $./build/l2fwd -c 0x1 -n 4 -- -p 0x1

Can you confirm this problem only occurs when attempting to run l2fwd as an
unprivileged user?

I just want to make sure, because it's is currently undocumented, untested
and therefore unsupported. This being said, please see below.

> EAL: Detected 64 lcore(s)
> 
> EAL: No free hugepages reported in hugepages-1048576kB
> 
> EAL: Probing VFIO support...
> 
> EAL: WARNING: Master core has no memory on local socket!
> 
> EAL: PCI device 0000:01:00.0 on NUMA socket 0
> 
> EAL:   probe driver: 15b3:1015 net_mlx5
> 
> PMD: net_mlx5: PCI information matches, using device "mlx5_0" (SR-IOV:
> false, MPS: true)
> 
> PMD: net_mlx5: 1 port(s) detected
> 
> PMD: net_mlx5: priv allocation failure
> 
> EAL: Requested device 0000:01:00.0 cannot be used
> 
> EAL: PCI device 0000:01:00.1 on NUMA socket 0
> 
> EAL:   probe driver: 15b3:1015 net_mlx5
> 
> PMD: net_mlx5: PCI information matches, using device "mlx5_1" (SR-IOV:
> false, MPS: true)
> 
> PMD: net_mlx5: 1 port(s) detected
> 
> PMD: net_mlx5: priv allocation failure
> 
> EAL: Requested device 0000:01:00.1 cannot be used
> 
> EAL: PCI device 0000:02:00.0 on NUMA socket 0
> 
> EAL:   probe driver: 8086:1521 net_e1000_igb
> 
> EAL: PCI device 0000:02:00.1 on NUMA socket 0
> 
> EAL:   probe driver: 8086:1521 net_e1000_igb
> 
> EAL: PCI device 0000:81:00.0 on NUMA socket -1
> 
> EAL:   probe driver: 15b3:1015 net_mlx5
> 
> PMD: net_mlx5: PCI information matches, using device "mlx5_2" (SR-IOV:
> false, MPS: true)
> 
> PMD: net_mlx5: 1 port(s) detected
> 
> PMD: net_mlx5: priv allocation failure
> 
> EAL: Requested device 0000:81:00.0 cannot be used
> 
> EAL: PCI device 0000:81:00.1 on NUMA socket -1
> 
> EAL:   probe driver: 15b3:1015 net_mlx5
> 
> PMD: net_mlx5: PCI information matches, using device "mlx5_3" (SR-IOV:
> false, MPS: true)
> 
> PMD: net_mlx5: 1 port(s) detected
> 
> PMD: net_mlx5: priv allocation failure
> 
> EAL: Requested device 0000:81:00.1 cannot be used
> 
> EAL: PCI device 0000:82:00.0 on NUMA socket -1
> 
> EAL:   probe driver: 8086:10fb net_ixgbe
> 
> EAL: PCI device 0000:82:00.1 on NUMA socket -1
> 
> EAL:   probe driver: 8086:10fb net_ixgbe
> 
> MAC updating enabled
> 
> MEMPOOL: Cannot allocate tailq entry!
> 
> EAL: Error - exiting with code: 1
> 
>   Cause: Cannot init mbuf pool
> 
> 
> *Hugepage info:*
> 
> $cat /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
> 8192
> 
> $cat /sys/kernel/mm/hugepages/hugepages-2048kB/free_hugepages
> 5120
> 
> 
> But , If I run in the below command, it will run successful.
> 
> $*sudo* ./build/l2fwd -c 0x1 -n 4 -- -p 0x1
> 
> But, I dont want to run l2fwd in sudo mode.

A few extra capabilities are necessary in order to start a DPDK application
as an unprivileged user (as opposed to starting it as root before dropping
unwanted privileges).

Both mlx4 and mlx5 PMDs require CAP_NET_ADMIN, CAP_NET_RAW and CAP_IPC_LOCK
respectively to fiddle with their associated kernel netdevice, create queues
for any kind of traffic and lock memory (the last one is not necessarily
needed when running with --no-huge).

If acceptable for your application, then you may try something like:

 root# setcap cap_net_admin,cap_net_raw,cap_ipc_lock=ep ./build/l2fwd

 user$ ./build/l2fwd [...]

Note the described approach adds capabilities through extended device
attributes on the file system (those are rarely preserved when copying
files). While finer grained than "chmod +s", you still need to carefully
consider the security implications, trust the program and its users.

Have a look at man capabilities(7).

-- 
Adrien Mazarguil
6WIND

  reply	other threads:[~2018-04-23 11:25 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-23 10:03 Tao Peng
2018-04-23 11:24 ` Adrien Mazarguil [this message]
2018-04-23 14:45   ` Tao Peng
2018-04-24  2:24     ` Tao Peng
2018-05-18 13:50       ` Adrien Mazarguil

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=20180423112457.GM4957@6wind.com \
    --to=adrien.mazarguil@6wind.com \
    --cc=dev.pengtao@gmail.com \
    --cc=users@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).