thanks for your reply. :) I try to 'setcap' for ./build/l2fwd, but, I get the same error. :(
1. sudo setcap cap_net_admin,cap_net_raw,cap_ipc_lock=ep ./build/l2fwd 2. $getcap ./build/l2fwd ./build/l2fwd = cap_net_admin,cap_net_raw,cap_ipc_lock+ep 3. $./build/l2fwd -c 0x1 -n 4 -- -p 0x1 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 2018-04-23 19:24 GMT+08:00 Adrien Mazarguil <[email protected]>: > 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 >
