[ovs-discuss] ovs-2.8 Cannot open /dev/uio0

O'Reilly, Darragh darragh.oreilly at hpe.com
Thu Nov 23 14:26:00 UTC 2017


How was ovs installed?  I don’t recall ever seeing ovs-vswitchd running as a non-root user.

From: 王嵘 [mailto:rong.wang at easystack.cn]
Sent: 23 November 2017 13:09
To: O'Reilly, Darragh <darragh.oreilly at hpe.com>
Cc: ovs-discuss at openvswitch.org
Subject: Re:RE: [ovs-discuss] ovs-2.8 Cannot open /dev/uio0


O, my fault.
And now find the log like :
2017-11-23T13:02:43.869Z|00071|dpdk|ERR|EAL: Cannot open /dev/uio0: Permission denied
2017-11-23T13:02:43.869Z|00072|dpdk|ERR|EAL: Current userid: 988
The uid 988  belongs to the lbvirt? why the uid is 988?
And even this uid don't have the right to open the uio0。
[root at localhost rpm-2.8]# cat /etc/group | grep openvswitch
openvswitch:x:983:
hugetlbfs:x:1001:openvswitch
[root at localhost rpm-2.8]# cat /etc/group | grep 988
libvirt:x:988:
[root at localhost rpm-2.8]#

在 2017-11-23 20:24:04,"O'Reilly, Darragh" <darragh.oreilly at hpe.com<mailto:darragh.oreilly at hpe.com>> 写道:


I think you got the address of the function getuid, but you want to call it by adding ():
               RTE_LOG(ERR, EAL, "Current userid: %d\n", getuid() );

From: ovs-discuss-bounces at openvswitch.org<mailto:ovs-discuss-bounces at openvswitch.org> [mailto:ovs-discuss-bounces at openvswitch.org<mailto:ovs-discuss-bounces at openvswitch.org>] On Behalf Of ??
Sent: 23 November 2017 08:20
To: 王嵘 <rong.wang at easystack.cn<mailto:rong.wang at easystack.cn>>
Cc: ovs-discuss at openvswitch.org<mailto:ovs-discuss at openvswitch.org>
Subject: Re: [ovs-discuss] ovs-2.8 Cannot open /dev/uio0


And I  add a log in the code, found thath the current uid is not 0(root),
if there is some other config I missed ?

    /* save fd if in primary process */
    dev->intr_handle.fd = open(devname, O_RDWR);
    if (dev->intr_handle.fd < 0) {
        RTE_LOG(ERR, EAL, "Cannot open %s: %s\n",
            devname, strerror(errno));
        RTE_LOG(ERR, EAL, "Current userid: %d\n", getuid);
        goto error;
    }

#systemctl restart openvswitch
2017-11-23T07:57:13.476Z|00071|dpdk|ERR|EAL: Cannot open /dev/uio0: Permission denied
2017-11-23T07:57:13.476Z|00072|dpdk|ERR|EAL: Current userid: -534781824


在 2017-11-22 21:05:05,"王嵘" <rong.wang at easystack.cn<mailto:rong.wang at easystack.cn>> 写道:

hi,
   That's because  I'm using the Broadcom Nic for performing-test and found the uio problem("Cannot open /dev/uio0: Permission denied").
and I now RECHECKED  the problem in my own VM environment。
Pity that, the uio Permission denied problem still alway exists.(the ovs2.7 is ok).
and the ovs is 2.8.1, dpdk-1705.2
[root at localhost test]# rpm -qa | grep openvswitch
openvswitch-2.8.1-1.el7.centos.x86_64
openvswitch-debuginfo-2.8.1-1.el7.centos.x86_64
[root at localhost test]# rpm -qa | grep dpdk
dpdk-17.05.2-1.x86_64
dpdk-devel-17.05.2-1.x86_64
dpdk-debuginfo-17.05.2-1.x86_64


2017-11-22T11:37:24.909Z|00061|dpdk|WARN|EAL: rte_pci_probe_one execing.
2017-11-22T11:37:24.909Z|00062|dpdk|INFO|EAL: PCI device 0000:00:09.0 on NUMA socket -1
2017-11-22T11:37:24.909Z|00063|dpdk|INFO|EAL:   probe driver: 8086:100e net_e1000_em
2017-11-22T11:37:24.909Z|00064|dpdk|ERR|EAL: Cannot open /dev/uio0: Permission denied
2017-11-22T11:37:24.909Z|00065|dpdk|WARN|EAL: Requested device 0000:00:09.0 cannot be used
2017-11-22T11:37:24.909Z|00066|dpdk|ERR|EAL: Driver cannot attach the device (0000:00:09.0)


[root at localhost test]# dpdk-devbind --status

Network devices using DPDK-compatible driver
============================================
0000:00:09.0 '82540EM Gigabit Ethernet Controller 100e' drv=igb_uio unused=
0000:00:0a.0 '82540EM Gigabit Ethernet Controller 100e' drv=igb_uio unused=

Network devices using kernel driver
===================================
0000:00:03.0 'Virtio network device 1000' if=eth0 drv=virtio-pci unused=igb_uio *Active*


[root at localhost test]# lspci | egrep -i --color 'network|ethernet'
00:03.0 Ethernet controller: Red Hat, Inc Virtio network device
00:09.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 03)
00:0a.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 03)

[root at localhost test]# lshw -c network -businfo
Bus info          Device      Class          Description
========================================================
pci at 0000:00:03.0<mailto:pci at 0000:00:03.0>              network        Virtio network device
virtio at 0          eth0        network        Ethernet interface
pci at 0000:00:09.0<mailto:pci at 0000:00:09.0>              network        82540EM Gigabit Ethernet Controller
pci at 0000:00:0a.0<mailto:pci at 0000:00:0a.0>              network        82540EM Gigabit Ethernet Controller
                  br0         network        Ethernet interface
                  ovs-system  network        Ethernet interface
                  virbr0-nic  network        Ethernet interface
                  virbr0      network        Ethernet interface





在 2017-11-16 02:21:54,"Shivaram Mysore" <shivaram.mysore at gmail.com<mailto:shivaram.mysore at gmail.com>> 写道:
Glad to hear that you solved the problem.

What you have are Intel NIC - 82540em.  The driver igb_uio should work for this - which is what you have.  I am confused as to why you said that you were using Broadcom Nextreme card

Anyways, it is good to hear that you were able to rectify the issue.

On Wed, Nov 15, 2017 at 4:40 AM, 王嵘 <rong.wang at easystack.cn<mailto:rong.wang at easystack.cn>> wrote:

hi, I solved the NIC bind problem.
I checked the log found that
 netdev_dpdk|ERR|Interface dpdk-eth2(rxq:1 txq:3) configure error: Invalid argument
so, I changed the rxq of the NIC to 3 by "options:n_rxq=3", and it works. ^^

I tested the ovs2.8-dpdk in another VM of Centos7, but the "Permission denied" problem still exists.
Here is the results of the commands you asked to execute,

[root at localhost ~]# lshw -c network -businfo
Bus info          Device      Class          Description
========================================================
pci at 0000:00:03.0<mailto:pci at 0000:00:03.0>              network        Virtio network device
virtio at 0          eth0        network        Ethernet interface
pci at 0000:00:09.0<mailto:pci at 0000:00:09.0>              network        82540EM Gigabit Ethernet Controller
pci at 0000:00:0a.0<mailto:pci at 0000:00:0a.0>  ens10       network        82540EM Gigabit Ethernet Controller
                  br0         network        Ethernet interface
                  ovs-netdev  network        Ethernet interface
                  virbr0-nic  network        Ethernet interface
                  virbr0      network        Ethernet interface
[root at localhost ~]# lspci | egrep -i --color 'network|ethernet'
00:03.0 Ethernet controller: Red Hat, Inc Virtio network device
00:09.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 03)
00:0a.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 03)
[root at localhost ~]# lsmod | grep uio
igb_uio                13224  1
uio                    19259  3 igb_uio

[root at localhost test]#  lsmod | grep uio
igb_uio                13224  0
uio                    19259  1 igb_uio



在 2017-11-15 04:29:34,"Shivaram Mysore" <shivaram.mysore at gmail.com<mailto:shivaram.mysore at gmail.com>> 写道:
What is the output of the following commands:


lshw -c network -businfo

lspci | egrep -i --color 'network|ethernet'

lsmod | grep uio

/sbin/dpdk-devbind --status


On Mon, Nov 13, 2017 at 9:29 PM, 王嵘 <rong.wang at easystack.cn<mailto:rong.wang at easystack.cn>> wrote:
I just want to use ovs-2.8 for userspace connection-track, and I choose the  latest LST DPDK 1705.
But, you mean theres is something like broadcom-uio.ko when using broadcom NIC?
I just have changed the  config/common_base:

CONFIG_RTE_LIBRTE_BNX2X_PMD=y
CONFIG_RTE_LIBRTE_BNX2X_DEBUG=y
CONFIG_RTE_LIBRTE_BNX2X_DEBUG_INIT=y
CONFIG_RTE_LIBRTE_BNX2X_DEBUG_RX=y
CONFIG_RTE_LIBRTE_BNX2X_DEBUG_TX=y
CONFIG_RTE_LIBRTE_BNX2X_MF_SUPPORT=y
CONFIG_RTE_LIBRTE_BNX2X_DEBUG_PERIODIC=y



在 2017-11-14 12:49:44,"Shivaram Mysore" <shivaram.mysore at gmail.com<mailto:shivaram.mysore at gmail.com>> 写道:
Is there a specific reason as to why you would want to use this version of DPDK?  I have never had to check permission.

Also, igb is mainly for Intel NICs.  You are using a Broadcom NIC - http://dpdk.org/doc/guides/nics/bnxt.html for driver info.  I think what you have is a misconfiguration.

You may want to check out the scripts here https://github.com/shivarammysore/faucetsdn-intel/tree/master/src/ubuntu/zesty/ovs_281 - to setup and configure DPDK.  I have only used Intel NICs.

Cheers!

On Mon, Nov 13, 2017 at 6:50 PM, 王嵘 <rong.wang at easystack.cn<mailto:rong.wang at easystack.cn>> wrote:
hi, I'm using ovs2.8 with dpdk-17052, and the 'NetXtreme II BCM57810 10 Gigabit Ethernet 168e'.
There comes the error, while I try to bind the NIC using igb_uio.

2017-11-14T02:25:18.400Z|00362|dpdk|INFO|EAL:   probe driver: 14e4:168e net_bnx2x
2017-11-14T02:25:18.400Z|00363|dpdk|ERR|EAL: Cannot open /dev/uio0: Permission denied

Then I chmod the file, like "chmod 777 /dev/uio0",(but I dont think this is right way.)
but there comes other files with the same error, and I also chmod them.
And I do the actions:
chmod 777 /sys/bus/pci/devices/0000:20:00.1/*
chmod 777 /sys/class/uio/uio0/device/config

Then , restart the ovs-dpdk,
But, there comes the following error:
2017-11-14T02:40:05.436Z|8384580|dpdk|ERR|PMD: pci_read(): Can't read from PCI config space
2017-11-14T02:40:05.436Z|8384581|dpdk|ERR|PMD: pci_read(): Can't read from PCI config space
2017-11-14T02:40:05.436Z|8384582|dpdk|ERR|PMD: pci_read(): Can't read from PCI config space
2017-11-14T02:40:05.436Z|8384583|dpdk|ERR|PMD: pci_read(): Can't read from PCI config space
2017-11-14T02:40:05.436Z|8384584|dpdk|INFO|PMD: bnx2x_pci_get_caps(): Failed to allocate memory
2017-11-14T02:40:05.436Z|8384585|dpdk|INFO|PMD: bnx2x_attach(): PCIe caps reading was failed
2017-11-14T02:40:05.436Z|8384586|dpdk|ERR|PMD: bnx2x_common_dev_init(): bnx2x_attach failed (-12)
2017-11-14T02:40:05.436Z|8384587|dpdk|ERR|EAL: Requested device 0000:20:00.1 cannot be used

So, why there comes the Permission prolem? And what should I do for the PCIe error? Or it is the NIC drivers' problem?
Thanks a lot.


_______________________________________________
discuss mailing list
discuss at openvswitch.org<mailto:discuss at openvswitch.org>
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-discuss/attachments/20171123/656e2464/attachment-0001.html>


More information about the discuss mailing list