DPDK Reports No Regex Devices Detected

I’m trying to run the RXP benchmark binary provided on the BlueField-2 but it reports no RegEx devices detected. Running the DOCA regex file scan sample and dpi scan sample, both work fine and shows regex matches. Is there something wrong with the PMD drivers for DPDK?

When I run RXP benchmark I get this output:

ubuntu@bf2:~$ sudo rxpbench -D "-l1,2 -n 1 class=regex -a 03:00.0 -a 03:00.01" --input-mode text_file -f /opt/mellanox/doca/samples/doca_re
gex/regex_scan/data_to_scan.txt -d rxp -r ./regex_rules.rof2.binary -c 1 -s 10 -l 2048
<< WARNING: No config file at  rxpbench.conf. >>
EAL: Detected CPU lcores: 8
EAL: Detected NUMA nodes: 1
EAL: Detected static linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: Probe PCI driver: mlx5_pci (15b3:a2d6) device: 0000:03:00.0 (socket -1)
mlx5_net: Cannot retrieve PCI address of IB device mlx5_2
EAL: Probe PCI driver: mlx5_pci (15b3:a2d6) device: 0000:03:00.1 (socket -1)
mlx5_net: Cannot retrieve PCI address of IB device mlx5_2
<< ERROR: 0 regex devices detected - should be 1. >>
EAL: Error - exiting with code: 1
  Cause: Failed initializing regex device

I also tried running it with the same “-a” option as I did for the regex scan and dpi scan samples, I get this output:

ubuntu@bf2:/tmp$ sudo rxpbench -D "-l1,2 -n 1 class=regex -a auxiliary:mlx5_core.sf.2,sft_en=1" --input-mode text_file -f /opt/mellanox/doca/samples/doca_regex/regex_scan/data_to_scan.txt -d rxp -r ./regex_rules.rof2.binary -c 1 -s 10 -l 2048
EAL: Detected CPU lcores: 8
EAL: Detected NUMA nodes: 1
EAL: Detected static linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
<< ERROR: 0 regex devices detected - should be 1. >>
EAL: Error - exiting with code: 1
  Cause: Failed initializing regex device

I followed some Regex troubleshooting guide that said to restart the mlx-regex service but that has had no effect:

bf2# systemctl stop mlx-regex
bf2# /etc/init.d/openibd restart
bf2# systemctl restart mlx-regex

I then ran “dpdk-devbind.py -s” and got this output:

ubuntu@bf2:/tmp$ /opt/mellanox/dpdk/bin/dpdk-devbind.py -s

Network devices using kernel driver
===================================
0000:03:00.0 'MT42822 BlueField-2 integrated ConnectX-6 Dx network controller a2d6' if=en3f0pf0sf0,pf0hpf,p0 drv=mlx5_core unused=
0000:03:00.1 'MT42822 BlueField-2 integrated ConnectX-6 Dx network controller a2d6' if=p1,pf1hpf drv=mlx5_core unused=

No 'Baseband' devices detected
==============================

No 'Crypto' devices detected
============================

No 'DMA' devices detected
=========================

No 'Eventdev' devices detected
==============================

No 'Mempool' devices detected
=============================

No 'Compress' devices detected
==============================

No 'Misc (rawdev)' devices detected
===================================

No 'Regex' devices detected
===========================

For some reason DPDK reports no ‘Regex’ devices detected.

ubuntu@bf2:/tmp$ sudo ovs-vsctl show
e2561b67-f705-4613-bb3c-eaf828f09d36
    Bridge ovsbr1
        Port p0
            Interface p0
        Port ovsbr1
            Interface ovsbr1
                type: internal
        Port pf0hpf
            Interface pf0hpf
        Port en3f0pf0sf0
            Interface en3f0pf0sf0
    Bridge ovsbr2
        Port p1
            Interface p1
        Port ovsbr2
            Interface ovsbr2
                type: internal
        Port pf1hpf
            Interface pf1hpf
        Port en3f1pf1sf0
            Interface en3f1pf1sf0
                error: "could not open network device en3f1pf1sf0 (No such device)"
    ovs_version: "2.17.7-e054917"

And if I run this to make sure regex hardware accleration is on, I get this output:

ubuntu@bf2:/tmp$ sudo sh -c “echo 1 > /sys/bus/pci/devices/0000:03:00.0/regex/pf/regex_en”
sh: 1: echo: echo: I/O error

When running the RXP benchmark, syslog will show this:

Sep 30 23:18:50 localhost rxpbench[2873575]: EAL: Error - exiting with code: 1#012 Cause:
Sep 30 23:18:50 localhost rxpbench[2873575]: Failed initializing regex device

Running the benchmark with the DOCA regex rather than DPDK regex I get this output. (And ran it on ports rather than files. Running the DOCA regex on files seems to work.)

ubuntu@bf2:/tmp$ sudo rxpbench -D "-l 0,1,2,3 -n 1 class=eth:regex -a 03:00.0 -a 03:00.1" --input-mode dpdk_port --dpdk-primary-port 0 -d doca -r ./regex.rof2.binary -c 4 -s 10 -l 2048
<< WARNING: buf-length not applicable to dpdk_port mode. >>
EAL: Detected CPU lcores: 8
EAL: Detected NUMA nodes: 1
EAL: Detected static linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: Probe PCI driver: mlx5_pci (15b3:a2d6) device: 0000:03:00.0 (socket -1)
mlx5_net: Cannot retrieve PCI address of IB device mlx5_2
EAL: Probe PCI driver: mlx5_pci (15b3:a2d6) device: 0000:03:00.1 (socket -1)
mlx5_net: Cannot retrieve PCI address of IB device mlx5_2
Segmentation fault

Hello @Liquidstar225,

Thank you for posting your query on our community. Please follow these steps to enable the RegEx service if running the application in the host:

  1. Unload drivers in the host: # sudo /etc/init.d/openibd stop
  2. Unload drivers in the ARM: # sudo /etc/init.d/openibd stop
  3. Enable RegEx service on BlueField-2 (please ensure you have sudo permissions):

sudo /etc/init.d/openibd start

echo 1 > /sys/class/net/p0/smart_nic/pf/regex_en

current_huge=cat /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

echo $((200 + current_huge)) > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

systemctl start mlx-regex

systemctl status mlx-regex

  1. Load drivers in the host: # sudo /etc/init.d/openibd start

I would also recommend you to do a power cycle of the server before executing the above commands. If the issue still persists, please open a support ticket with us by emailing " Networking-support@nvidia.com " for further investigation of the issue. Please also provide us with a snapshot from your server which can be collected using the tool and instruction found at - GitHub - Mellanox/linux-sysinfo-snapshot: Linux Sysinfo Snapshot 2 1

Please note that an active support contract would be required for the same. If you do not have a current support contract, please reach out to our Contracts team at networking-contracts@nvidia.com.

Thanks,
Bhargavi