Hi, When I try to add a port with dpdk, I met an error:  "Error attaching 
device '0000:02:00.0' to DPDK". This is the instruction: ovs-vsctl add-port br0 
dpdk-p0 -- set Interface dpdk-p0 type=dpdk     
options:dpdk-devargs=0000:02:00.0  I have searched github and many mails, but I 
still cannot find the solution(for a long time)  :(:(. So can you tell me how 
to solve it? 
 I have set CONFIG_RTE_BUILD_SHARED_LIB=y in $DPDK_DIR/config/common_base.
 

 
 

 
 
http://docs.openvswitch.org/en/latest/intro/install/dpdk/
 
http://docs.openvswitch.org/en/latest/intro/install/general/#general-build-reqs
 
http://docs.openvswitch.org/en/latest/howto/dpdk/
 
These is my main tutorial.
 

 
 
 This is a partial display:
 

 
 

 
 

 
 

 
 
about hugepages
 

 
 
root@sdn:/usr/src/ovs# echo 'vm.nr_hugepages=2048' > 
/etc/sysctl.d/hugepages.conf
 
root@sdn:/usr/src/ovs#  sysctl -w vm.nr_hugepages=1024
 
vm.nr_hugepages = 1024
 
root@sdn:/usr/src/ovs# grep HugePages_ /proc/meminfo
 
HugePages_Total:    1024
 
HugePages_Free:     1024
 
HugePages_Rsvd:        0
 
HugePages_Surp:        0
 
root@sdn:/usr/src/ovs# mount -t hugetlbfs none /dev/hugepages``
 

 
 
about vfio??s configuration
 

 
 
root@sdn:/usr/src/ovs# dmesg | grep -e DMAR -e IOMMU
 
[    0.000000] ACPI: DMAR 0x00000000CECF8578 000070 (v01 LENOVO TC-FW    
00001790 INTL 00000001)
 
[    0.000000] DMAR: IOMMU enabled
 
[    0.004000] DMAR: Host address width 39
 
[    0.004000] DMAR: DRHD base: 0x000000fed90000 flags: 0x1
 
[    0.004000] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap d2008c40660462 
ecap f050da
 
[    0.004000] DMAR: RMRR base: 0x000000cea19000 end: 0x000000cea38fff
 
[    0.004000] DMAR-IR: IOAPIC id 2 under DRHD base  0xfed90000 IOMMU 0
 
[    0.004000] DMAR-IR: HPET id 0 under DRHD base 0xfed90000
 
[    0.004000] DMAR-IR: Queued invalidation will be enabled to support x2apic 
and Intr-remapping.
 
[    0.004000] DMAR-IR: Enabled IRQ remapping in x2apic mode
 
[    0.744604] DMAR: No ATSR found
 
[    0.744632] DMAR: dmar0: Using Queued invalidation
 
[    0.744680] DMAR: Hardware identity mapping for device 0000:00:00.0
 
[    0.744681] DMAR: Hardware identity mapping for device 0000:00:01.0
 
[    0.744682] DMAR: Hardware identity mapping for device 0000:00:14.0
 
[    0.744682] DMAR: Hardware identity mapping for device 0000:00:16.0
 
[    0.744683] DMAR: Hardware identity mapping for device 0000:00:16.3
 
[    0.744684] DMAR: Hardware identity mapping for device 0000:00:17.0
 
[    0.744685] DMAR: Hardware identity mapping for device 0000:00:1d.0
 
[    0.744686] DMAR: Hardware identity mapping for device 0000:00:1f.0
 
[    0.744687] DMAR: Hardware identity mapping for device 0000:00:1f.2
 
[    0.744688] DMAR: Hardware identity mapping for device 0000:00:1f.3
 
[    0.744688] DMAR: Hardware identity mapping for device 0000:00:1f.4
 
[    0.744689] DMAR: Hardware identity mapping for device 0000:00:1f.6
 
[    0.744691] DMAR: Hardware identity mapping for device 0000:01:00.0
 
[    0.744692] DMAR: Hardware identity mapping for device 0000:01:00.1
 
[    0.744694] DMAR: Hardware identity mapping for device 0000:02:00.0
 
[    0.744695] DMAR: Hardware identity mapping for device 0000:02:00.1
 
[    0.744695] DMAR: Setting RMRR:
 
[    0.744696] DMAR: Ignoring identity map for HW passthrough device 
0000:00:14.0 [0xcea19000 - 0xcea38fff]
 
[    0.744697] DMAR: Prepare 0-16MiB unity mapping for LPC
 
[    0.744697] DMAR: Ignoring identity map for HW passthrough device 
0000:00:1f.0 [0x0 - 0xffffff]
 
[    0.744699] DMAR: Intel(R) Virtualization Technology for Directed I/O
 

 
 
root@sdn:/usr/src/ovs# cat /proc/cmdline | grep iommu=pt
 
BOOT_IMAGE=/boot/vmlinuz-4.15.0-29-generic 
root=UUID=bdc617a6-3bfc-4b7d-bf4b-72f5cb5dbaff ro quiet splash iommu=pt 
intel_iommu=on vt.handoff=1
 

 
 

 
 
And I bind devices to VFIO:
 

 
 

 
 
Network devices using DPDK-compatible driver
 
============================================
 
0000:02:00.0 'Ethernet Controller 10-Gigabit X540-AT2 1528' drv=vfio-pci 
unused=ixgbe
 
0000:02:00.1 'Ethernet Controller 10-Gigabit X540-AT2 1528' drv=vfio-pci 
unused=ixgbe
 

 
 

 
 
And I ensure them initialized
 

 
 
root@sdn:/usr/src/ovs# ovs-vsctl get Open_vSwitch . dpdk_initialized
 
true
 
root@sdn:/usr/src/ovs# ovs-vswitchd --version
 
ovs-vswitchd (Open vSwitch) 2.10.90
 
DPDK 17.11.3
 
root@sdn:/usr/src/ovs# ovs-vsctl get Open_vSwitch . dpdk_version
 
"DPDK 17.11.3"
 

 
 

 
 
Then I add a bridge
 

 
  ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev
 
 
 
Add a port:
 

 
 
root@sdn:/usr/src/ovs# ovs-vsctl add-port br0 dpdk-p0 -- set Interface dpdk-p0 
type=dpdk     options:dpdk-devargs=0000:02:00.0  
 
ovs-vsctl: Error detected while setting up 'dpdk-p0': Error attaching device 
'0000:02:00.0' to DPDK.  See ovs-vswitchd log for details.
 
ovs-vsctl: The default log directory is "/usr/local/var/log/openvswitch".
 

 
 
Show:
 
root@sdn:/usr/src/ovs# ovs-vsctl show
 
c74a1be8-374c-48c5-a597-8d0db435ff17
 
    Bridge "br0"
 
        Port "dpdk-p0"
 
            Interface "dpdk-p0"
 
                type: dpdk
 
                options: {dpdk-devargs="0000:02:00.0"}
 
                error: "Error attaching device '0000:02:00.0' to DPDK"
 
        Port "br0"
 
            Interface "br0"
 
                type: internal
_______________________________________________
discuss mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to