[dpdk-dev] bnx2x pmd crash when launching testpmd using BCM57840 Nic.
Hi DPDK team, 1. I am trying to run testpmd with BCM57840 NIC using DPDK 20.02.1, the process is crashing at bnx2x_write_dmae(). Had any one seen this kind of issue earlier. root@gic-mps-104-173:~/bnx2x# ./testpmd.new -l 0-3 -n 4 -w :37:00.4 -w :37:00.5 --log-level="pmd.net.bnx2x.driver",8 -- -i --portmask=0x3 --nb-cores=2 EAL: Detected 48 lcore(s) EAL: Detected 2 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Selected IOVA mode 'PA' EAL: Debug dataplane logs available - lower performance EAL: Probing VFIO support... EAL: VFIO support initialized EAL: PCI device :37:00.4 on NUMA socket 0 EAL: probe driver: 14e4:16a2 net_bnx2x [bnx2x_load_firmware:9689(37:00.4:dpdk-port-0)] fw_len = 320936 [bnx2x_attach:9756(37:00.4:dpdk-port-0)] Starting attach... [bnx2x_probe_pci_caps:7645(37:00.4:dpdk-port-0)] Found PM capability: id=0x0001 type=0x0001 addr=0x0048 [bnx2x_pcie_capability_read:7611(37:00.4:dpdk-port-0)] Found PCIe capability: id=0x0010 type=0x0001 addr=0x00AC [bnx2x_probe_pci_caps:7658(37:00.4:dpdk-port-0)] PCIe link speed=3 width=8 [bnx2x_probe_pci_caps:7674(37:00.4:dpdk-port-0)] Found MSI-X capability at 0x bnx2x_reg_write32(37:00.4:dpdk-port-0): offset=0x9430 val=0x0001 ... [bnx2x_get_device_info:8316(37:00.4:dpdk-port-0)] chip_id=0x168d1010 (num=0x168d rev=0x1 metal=0x01 bond=0x0) ... [bnx2x_get_device_info:8345(37:00.4:dpdk-port-0)] Port mode = 2 bnx2x_reg_read32(37:00.4:dpdk-port-0): offset=0x0045 val=0x00040204 [bnx2x_get_function_num:7574(37:00.4:dpdk-port-0)] Relative function 4, Absolute function 4, Path 0 ... [bnx2x_get_device_info:8382(37:00.4:dpdk-port-0)] Bootcode version: 7.14.63 ... [bnx2x_get_shmem_info:8178(37:00.4:dpdk-port-0)] Ethernet address: 20:67:7c:0d:d0:a2 ... [bnx2x_get_device_info:8448(37:00.4:dpdk-port-0)] IGU Normal Mode ... [elink_phy_probe:13507(37:00.4:dpdk-port-0)] Begin phy probe [elink_phy_probe:13526(37:00.4:dpdk-port-0)] phy_config_swapped 0, phy_index 0, actual_phy_idx 0 ... [elink_populate_int_phy:13118(37:00.4:dpdk-port-0)] :chip_id = 0x168d1000 ... [elink_populate_int_phy:13209(37:00.4:dpdk-port-0)] media_type = f0, flags = 1400, supported = a0f00 [elink_populate_int_phy:13239(37:00.4:dpdk-port-0)] Internal phy port=0, addr=0x1, mdio_ctl=0x8000 ... [elink_populate_preemphasis:13078(37:00.4:dpdk-port-0)] phy->rx_preemphasis. = 0, phy->tx_preemphasis = 0 ... [elink_populate_preemphasis:13078(37:00.4:dpdk-port-0)] phy->rx_preemphasis = 0, phy->tx_preemphasis = 0 ... [elink_phy_def_cfg:13413(37:00.4:dpdk-port-0)] Default config phy idx 0 cfg 0x0 speed_cap_mask 0x500050 [elink_phy_def_cfg:13444(37:00.4:dpdk-port-0)] Default config phy idx 0, req_duplex config 1 [elink_phy_def_cfg:13465(37:00.4:dpdk-port-0)] Requested Duplex = 1, line_speed = 0, flow_ctrl = 0 [elink_phy_probe:13526(37:00.4:dpdk-port-0)] phy_config_swapped 0, phy_index 1, actual_phy_idx 1 bnx2x_reg_read32(37:00.4:dpdk-port-0): offset=0x003c6e34 val=0x [elink_phy_probe:13574(37:00.4:dpdk-port-0)] End phy probe. #phys found 1 bnx2x_reg_read32(37:00.4:dpdk-port-0): offset=0xa9cc val=0x0001 [bnx2x_link_settings_supported:8556(37:00.4:dpdk-port-0)] PHY addr 0x0001 [bnx2x_link_settings_supported:8610(37:00.4:dpdk-port-0)] PHY supported 0=0x000a0f00 1=0x bnx2x_reg_read32(37:00.4:dpdk-port-0): offset=0x003c7008 val=0x [bnx2x_media_detect:8193(37:00.4:dpdk-port-0)] Found 10GBase-CX4 media. bnx2x_reg_read32(37:00.4:dpdk-port-0): offset=0x003c735c val=0x211a [bnx2x_attach:9824(37:00.4:dpdk-port-0)] prev unload fw_seq 0x001a [bnx2x_nic_load_analyze_req:2785(37:00.4:dpdk-port-0)] loaded FW 0x00010d07 / my FW 0x00010d07 [bnx2x_pcie_capability_read:7611(37:00.4:dpdk-port-0)] Found PCIe capability: id=0x0010 type=0x0001 addr=0x00AC bnx2x_reg_write32(37:00.4:dpdk-port-0): offset=0x003c7360 val=0x bnx2x_reg_write32(37:00.4:dpdk-port-0): offset=0x003c735c val=0x021c [elink_cb_fw_command:836(37:00.4:dpdk-port-0)] wrote command 0x021c to FW MB param 0x bnx2x_reg_read32(37:00.4:dpdk-port-0): offset=0x003c7364 val=0x2012001b bnx2x_reg_read32(37:00.4:dpdk-port-0): offset=0x003c7364 val=0x021c [bnx2x_dcbx_set_state:9546(37:00.4:dpdk-port-0)] DCB state [OFF:user-mode] [bnx2x_print_adapter_info:11819(37:00.4:dpdk-port-0)] [bnx2x_print_adapter_info:11822(37:00.4:dpdk-port-0)] DPDK : DPDK 20.02.1 [bnx2x_print_adapter_info:11824(37:00.4:dpdk-port-0)] Driver : BNX2X PMD 1.78.18_1.1.0.1 [bnx2x_print_adapter_info:11830(37:00.4:dpdk-port-0)] Firmware : 7.13.1 [bnx2x_print_adapter_info:11832(37:00.4:dpdk-port-0)] Bootcode : 7.14.63 [bnx2x_print_adapter_info:11834(37:00.4:dpdk-port-0)] ASIC : 0x168d1010 [bnx2x_print_adapter_info:11836(37:00.4:dpdk-port-0)] Rev : B1 [bnx2x_print_adapter_info:11839(37:00.4:dpdk-port-0)]Vendor Id : 0x14e4 [bnx2x_p
[dpdk-dev] bnx2x pmd crash when launching testpmd using BCM57840 Nic.
Hi DPDK team, 1. I am trying to run testpmd with BCM57840 NIC using DPDK 20.02.1, the process is crashing at bnx2x_write_dmae(). Had any one seen this kind of issue earlier. root@gic-mps-104-173:~/bnx2x# ./testpmd.new -l 0-3 -n 4 -w :37:00.4 -w :37:00.5 --log-level="pmd.net.bnx2x.driver",8 -- -i --portmask=0x3 --nb-cores=2 EAL: Detected 48 lcore(s) EAL: Detected 2 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Selected IOVA mode 'PA' EAL: Debug dataplane logs available - lower performance EAL: Probing VFIO support... EAL: VFIO support initialized EAL: PCI device :37:00.4 on NUMA socket 0 EAL: probe driver: 14e4:16a2 net_bnx2x [bnx2x_load_firmware:9689(37:00.4:dpdk-port-0)] fw_len = 320936 [bnx2x_attach:9756(37:00.4:dpdk-port-0)] Starting attach... [bnx2x_probe_pci_caps:7645(37:00.4:dpdk-port-0)] Found PM capability: id=0x0001 type=0x0001 addr=0x0048 [bnx2x_pcie_capability_read:7611(37:00.4:dpdk-port-0)] Found PCIe capability: id=0x0010 type=0x0001 addr=0x00AC [bnx2x_probe_pci_caps:7658(37:00.4:dpdk-port-0)] PCIe link speed=3 width=8 [bnx2x_probe_pci_caps:7674(37:00.4:dpdk-port-0)] Found MSI-X capability at 0x bnx2x_reg_write32(37:00.4:dpdk-port-0): offset=0x9430 val=0x0001 ... [bnx2x_get_device_info:8316(37:00.4:dpdk-port-0)] chip_id=0x168d1010 (num=0x168d rev=0x1 metal=0x01 bond=0x0) ... [bnx2x_get_device_info:8345(37:00.4:dpdk-port-0)] Port mode = 2 bnx2x_reg_read32(37:00.4:dpdk-port-0): offset=0x0045 val=0x00040204 [bnx2x_get_function_num:7574(37:00.4:dpdk-port-0)] Relative function 4, Absolute function 4, Path 0 ... [bnx2x_get_device_info:8382(37:00.4:dpdk-port-0)] Bootcode version: 7.14.63 ... [bnx2x_get_shmem_info:8178(37:00.4:dpdk-port-0)] Ethernet address: 20:67:7c:0d:d0:a2 ... [bnx2x_get_device_info:8448(37:00.4:dpdk-port-0)] IGU Normal Mode ... [elink_phy_probe:13507(37:00.4:dpdk-port-0)] Begin phy probe [elink_phy_probe:13526(37:00.4:dpdk-port-0)] phy_config_swapped 0, phy_index 0, actual_phy_idx 0 ... [elink_populate_int_phy:13118(37:00.4:dpdk-port-0)] :chip_id = 0x168d1000 ... [elink_populate_int_phy:13209(37:00.4:dpdk-port-0)] media_type = f0, flags = 1400, supported = a0f00 [elink_populate_int_phy:13239(37:00.4:dpdk-port-0)] Internal phy port=0, addr=0x1, mdio_ctl=0x8000 ... [elink_populate_preemphasis:13078(37:00.4:dpdk-port-0)] phy->rx_preemphasis. = 0, phy->tx_preemphasis = 0 ... [elink_populate_preemphasis:13078(37:00.4:dpdk-port-0)] phy->rx_preemphasis = 0, phy->tx_preemphasis = 0 ... [elink_phy_def_cfg:13413(37:00.4:dpdk-port-0)] Default config phy idx 0 cfg 0x0 speed_cap_mask 0x500050 [elink_phy_def_cfg:13444(37:00.4:dpdk-port-0)] Default config phy idx 0, req_duplex config 1 [elink_phy_def_cfg:13465(37:00.4:dpdk-port-0)] Requested Duplex = 1, line_speed = 0, flow_ctrl = 0 [elink_phy_probe:13526(37:00.4:dpdk-port-0)] phy_config_swapped 0, phy_index 1, actual_phy_idx 1 bnx2x_reg_read32(37:00.4:dpdk-port-0): offset=0x003c6e34 val=0x [elink_phy_probe:13574(37:00.4:dpdk-port-0)] End phy probe. #phys found 1 bnx2x_reg_read32(37:00.4:dpdk-port-0): offset=0xa9cc val=0x0001 [bnx2x_link_settings_supported:8556(37:00.4:dpdk-port-0)] PHY addr 0x0001 [bnx2x_link_settings_supported:8610(37:00.4:dpdk-port-0)] PHY supported 0=0x000a0f00 1=0x bnx2x_reg_read32(37:00.4:dpdk-port-0): offset=0x003c7008 val=0x [bnx2x_media_detect:8193(37:00.4:dpdk-port-0)] Found 10GBase-CX4 media. bnx2x_reg_read32(37:00.4:dpdk-port-0): offset=0x003c735c val=0x211a [bnx2x_attach:9824(37:00.4:dpdk-port-0)] prev unload fw_seq 0x001a [bnx2x_nic_load_analyze_req:2785(37:00.4:dpdk-port-0)] loaded FW 0x00010d07 / my FW 0x00010d07 [bnx2x_pcie_capability_read:7611(37:00.4:dpdk-port-0)] Found PCIe capability: id=0x0010 type=0x0001 addr=0x00AC bnx2x_reg_write32(37:00.4:dpdk-port-0): offset=0x003c7360 val=0x bnx2x_reg_write32(37:00.4:dpdk-port-0): offset=0x003c735c val=0x021c [elink_cb_fw_command:836(37:00.4:dpdk-port-0)] wrote command 0x021c to FW MB param 0x bnx2x_reg_read32(37:00.4:dpdk-port-0): offset=0x003c7364 val=0x2012001b bnx2x_reg_read32(37:00.4:dpdk-port-0): offset=0x003c7364 val=0x021c [bnx2x_dcbx_set_state:9546(37:00.4:dpdk-port-0)] DCB state [OFF:user-mode] [bnx2x_print_adapter_info:11819(37:00.4:dpdk-port-0)] [bnx2x_print_adapter_info:11822(37:00.4:dpdk-port-0)] DPDK : DPDK 20.02.1 [bnx2x_print_adapter_info:11824(37:00.4:dpdk-port-0)] Driver : BNX2X PMD 1.78.18_1.1.0.1 [bnx2x_print_adapter_info:11830(37:00.4:dpdk-port-0)] Firmware : 7.13.1 [bnx2x_print_adapter_info:11832(37:00.4:dpdk-port-0)] Bootcode : 7.14.63 [bnx2x_print_adapter_info:11834(37:00.4:dpdk-port-0)] ASIC : 0x168d1010 [bnx2x_print_adapter_info:11836(37:00.4:dpdk-port-0)] Rev : B1 [bnx2x_print_adapter_info:11839(37:00.4:dpdk-port-0)]Vendor Id : 0x14e4 [bnx2x_p
[dpdk-dev] long initialization time for EAL init
Hi Team, Posting this query on behalf of Balaji as he was not able to send mail to dpdk-dev. We are using OVS 2.12.0 with DPDK 18.11.2 release on Ubuntu 16.04 LTS. We do observe long initialization time for EAL init ( ~10 seconds for EAL memory initialization). Below is our hardware and memory configuration Hardware : Dell Server Sockets(NUMA) : 2 CPUs : Each NUMA with 10 CPUs (Intel(R) Xeon(R) CPU E5-2660 v2 @ 2.20GHz) RAM : 128 GB Hugepages reserverd : 2048 huge pages of 2MB and 100 Huge pages of 1G (reserved during boot time). We are using only 2MB huge pages for OVS process. NIC : Ethernet 10G 2P X520 ( ixgbe driver ) Passing below EAL arguments with OVS process. 2020-07-23T09:46:58.878Z|00014|dpdk|INFO|EAL ARGS: ovs-vswitchd -w :04:00.0,support-multi-driver=1 -w :42:00.0,support-multi-driver=1 -c 0x1 --huge-dir /mnt/huge_ovs_2M --socket-mem 2048,2048 --socket-limit 2048,2048. We debugged further in DPDK and found out that mmap called in eal_get_virtual_area is taking more time ( rte_eal_init-> rte_eal_memory_init -> rte_eal_memseg_init -> memseg_primary_init -> alloc_va_space -> eal_get_virtual_area ->mmap ). Long initialization time is noticeable difference compared to prior release. Any pointers would be helpful. EAL Init logs ( rte_eal_memseg_init function taking ~8 seconds ) 2020-07-23T09:46:58.878Z|8|dpdk|INFO|Using DPDK 18.11.2 2020-07-23T09:46:58.878Z|9|dpdk|INFO|DPDK Enabled - initializing... 2020-07-23T09:46:58.878Z|00010|dpdk|INFO|No vhost-sock-dir provided - defaulting to /var/run/openvswitch 2020-07-23T09:46:58.878Z|00011|dpdk|INFO|IOMMU support for vhost-user-client disabled. 2020-07-23T09:46:58.878Z|00012|dpdk|INFO|POSTCOPY support for vhost-user-client disabled. 2020-07-23T09:46:58.878Z|00013|dpdk|INFO|Per port memory for DPDK devices disabled. 2020-07-23T09:46:58.878Z|00014|dpdk|INFO|EAL ARGS: ovs-vswitchd -w :04:00.0,support-multi-driver=1 -w :42:00.0,support-multi-driver=1 -c 0x1 --huge-dir /mnt/huge_ovs_2M --socket-mem 2048,2048 --socket-limit 2048,2048. 2020-07-23T09:46:58.882Z|00015|dpdk|INFO|EAL: Detected 40 lcore(s) 2020-07-23T09:46:58.882Z|00016|dpdk|INFO|EAL: Detected 2 NUMA nodes 2020-07-23T09:46:58.885Z|00017|dpdk|INFO|EAL: Multi-process socket /var/run/dpdk/rte/mp_socket 2020-07-23T09:46:58.907Z|00018|dpdk|INFO|EAL: 100 hugepages of size 1073741824 reserved, but no mounted hugetlbfs found for that size 2020-07-23T09:46:58.907Z|00019|dpdk|INFO|EAL: Probing VFIO support... 2020-07-23T09:46:58.907Z|00020|dpdk|INFO|EAL: VFIO support initialized 2020-07-23T09:46:58.907Z|00021|dpdk|INFO|EAL: Ask a virtual area of 0x2e000 bytes 2020-07-23T09:46:58.907Z|00023|dpdk|INFO|EAL: Before mmap ... 2020-07-23T09:46:58.907Z|00024|dpdk|INFO|EAL: After mmap ... 2020-07-23T09:46:58.907Z|00026|dpdk|INFO|EAL: Virtual area found at 0x1 (size = 0x2e000) 2020-07-23T09:46:58.907Z|00029|dpdk|INFO|EAL: Setting up physically contiguous memory... 2020-07-23T09:46:58.907Z|00032|dpdk|INFO|EAL: Calling rte_eal_memseg_init... 2020-07-23T09:46:58.907Z|00034|dpdk|INFO|EAL: Setting maximum number of open files to 65535 2020-07-23T09:46:58.907Z|00039|dpdk|INFO|EAL: Creating 4 segment lists: n_segs:8192 socket_id:0 hugepage_sz:2097152 2020-07-23T09:46:58.907Z|00042|dpdk|INFO|EAL: Ask a virtual area of 0x61000 bytes 2020-07-23T09:46:58.907Z|00044|dpdk|INFO|EAL: Before mmap ... 2020-07-23T09:46:58.907Z|00045|dpdk|INFO|EAL: After mmap ... 2020-07-23T09:46:58.907Z|00047|dpdk|INFO|EAL: Virtual area found at 0x10002e000 (size = 0x61000) 2020-07-23T09:46:58.907Z|00053|dpdk|INFO|EAL: Ask a virtual area of 0x4 bytes 2020-07-23T09:46:58.907Z|00055|dpdk|INFO|EAL: Before mmap ... 2020-07-23T09:46:59.887Z|00056|dpdk|INFO|EAL: After mmap ... 2020-07-23T09:46:59.887Z|00058|dpdk|INFO|EAL: Virtual area found at 0x10020 (size = 0x4) 2020-07-23T09:46:59.888Z|00063|dpdk|INFO|EAL: Ask a virtual area of 0x61000 bytes 2020-07-23T09:46:59.888Z|00065|dpdk|INFO|EAL: Before mmap ... 2020-07-23T09:46:59.888Z|00066|dpdk|INFO|EAL: After mmap ... 2020-07-23T09:46:59.888Z|00068|dpdk|INFO|EAL: Virtual area found at 0x50020 (size = 0x61000) 2020-07-23T09:46:59.888Z|00074|dpdk|INFO|EAL: Ask a virtual area of 0x4 bytes 2020-07-23T09:46:59.888Z|00076|dpdk|INFO|EAL: Before mmap ... 2020-07-23T09:47:00.824Z|00077|dpdk|INFO|EAL: After mmap ... 2020-07-23T09:47:00.824Z|00079|dpdk|INFO|EAL: Virtual area found at 0x50040 (size = 0x4) 2020-07-23T09:47:00.824Z|00084|dpdk|INFO|EAL: Ask a virtual area of 0x61000 bytes 2020-07-23T09:47:00.824Z|00086|dpdk|INFO|EAL: Before mmap ... 2020-07-23T09:47:00.824Z|00087|dpdk|INFO|EAL: After mmap ... 2020-07-23T09:47:00.824Z|00089|dpdk|INFO|EAL: Virtual area found at 0x90040 (size = 0x61000) 2020-07-23T09:47:00.824Z|00095|dpdk|INFO|EAL: Ask a virtual