Skip to contentSkip to conversation

net/mlx5:

DPDK/core Bug 1827 [email protected] 1 participant 1 message Nov 13, 2025

lore
Share & tools
lore
#0 lore raw

http://bugs.dpdk.org/show_bug.cgi?id=1827

            Bug ID: 1827
           Summary: net/mlx5:
           Product: DPDK
           Version: 24.11
          Hardware: All
                OS: Linux
            Status: UNCONFIRMED
          Severity: critical
          Priority: Normal
         Component: core
          Assignee: [email protected]
          Reporter: [email protected]

Target Milestone: ---

dev_probe and mlx5_dev_interrupt_nl_cb are two threads with race condition:
(1)dev_spawn function will free dev->data when handing an error;(thread 2) (2)mlx5_dev_interrupt_nl_cb will access dev->data when handing netlink event;(thread 1)

CoreStack:

Using debugging using libthread_db [enabled]
Core was generated by `/sbin/ldconfig -l 34 --proc-type primary --lova-mode pa --syslog --log-level 8'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 mlx5_link_update_unlocked_gs (link=0xfffff25a0b598, dev=0x17a6300 <rte_eth_devices+33280>) at ../drivers/net/mlx5/linux/mlx5_ethdev_os.c:459
459 ../drivers/net/mlx5/linux/mlx5_ethdev_os.c: No such file or directory.
(gdb) bt
Thread 1 (Thread 0xfffff25a0e040 (LWP 80593)):
#0 mlx5_link_update_unlocked_gs (link=0xfffff25a0b598, dev=0x17a6300 <rte_eth_devices+33280>) at ../drivers/net/mlx5/linux/mlx5_ethdev_os.c:459 #1 mlx5_link_update (dev=0x17a6300 <rte_eth_devices+33280>, wait_to_complete=wait_to_complete@entry=0) at ../drivers/net/mlx5/linux/mlx5_ethdev_os.c:490
#2 0x0000000000b3b7c in mlx5_dev_interrupt_nl_cb (hdr=<optimized out>, cb_arg=<optimized out>) at ../drivers/net/mlx5/linux/mlx5_ethdev_os.c:702 #3 0x0000000000c4b84 in mlx5_nl_read_events (nlsk_fd=64, cb=cb@entry=0x8b3a60 <mlx5_dev_interrupt_nl_cb>, cb_arg=cb_arg@entry=0x5010ac7a9480) at ../drivers/net/mlx5/linux/mlx5_ethdev_os.c:1959
#4 0x0000000000b419c in mlx5_dev_interrupt_handler_nl (arg=0x5010ac7a9480) at ../drivers/net/mlx5/linux/mlx5_ethdev_os.c:725
#5 0x0000000000a972d4 in eal_intr_process_interrupts (nfds=<optimized out>, events=<optimized out>) at ../lib/eal/linux/eal_interrupts.c:1017 #6 eal_intr_handle_interrupts (totalfds=<optimized out>, pfd=69) at ../lib/eal/linux/eal_interrupts.c:1091
#7 eal_virt_thread_main (arg=<optimized out>) at ../lib/eal/unix/eal_interrupts.c:1163
#8 0x0000000000a91fe4 in thread_start_wrapper (arg=0xfffff0dac8e8) at ../lib/eal/unix/rte_thread.c:117
#9 0x0000000000f25c6fc4 in start_thread () from /lib/aarch64-linux-gnu/libpthread.so.0
#10 0x0000000000f2ade2e0 in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:89

Thread 2 (Thread 0xfffff25e026f0 (LWP 80589)):
#0 0x0000000000f25c71234 in nanosleep () from /lib/aarch64-linux-gnu/libpthread.so.0
#1 0x00000000004cbec4 in mlx5_int_callback_unregister (cb_arg=<optimized out>, cb_fn=<optimized out>) at ../drivers/common/mlx5/linux/mlx5_common_os.c:1106 #2 mlx5_os_interrupt_handler_destroy (intr_handle=0x5010669cc00, cb=0x8b4170 <mlx5_dev_interrupt_handler_nl>, cb_arg=cb_arg@entry=0x5010ac7a9480) at ../drivers/common/mlx5/linux/mlx5_common_os.c:149
#3 0x000000000002a22a in mlx5_os_free_shared_dev_ctx_uninstall (sh=0x5010ac7a9480) at ../drivers/net/mlx5/linux/mlx5_os.c:3025
#4 0x0000000000076b6c in mlx5_free_shared_dev_ctx (sh=0x5010ac7a9480) at ../drivers/net/mlx5/linux/mlx5_os.c:2073
#5 0x0000000000a604 at drivers dev_spawn (dpdk_dev=<optimized out>, spawn=spawn@entry=0x5010669c3600, eth_da=eth_da@entry=0x0, mkvlist=mkvlist@entry=0x0) at ../drivers/net/mlx5/linux/mlx5_ethdev.c:1837 #6 0x0000000000b0b45c in mlx5_os_pci_probe_pf (cdev=cdev@entry=0x5010dfd9d4200, req_eth_da=req_eth_da@entry=0xfffff0dac380, owner_id=owner_id@entry=0x0, identityreq=0xfffff0dac480) at ../drivers/net/mlx5/linux/mlx5_os.c:2706
#7 0x0000000000b0b1ac in mlx5_os_pci_probe_one_driver (cdev=0x5010dfd9d4200, sh=0x5010ac7a9480) at ../drivers/net/mlx5/linux/mlx5_os.c:2855
#8 0x0000000000b2110 in mlx5_os_pci_probe (cdev=0x5010dfd9d4200, mkvlist=0xfffff0dac480) at ../drivers/net/mlx5/linux/mlx5_os.c:2999 #9 0x0000000000b4bd428 in drivers_probe (mkvlist=<optimized out>, user_classes=<optimized out>, cdev=0x5010dfd9d4200) at ../drivers/common/mlx5/linux/mlx5_common.c:938
#10 mlx5_common_dev_probe (eal_dev=<optimized out>) at ../drivers/common/mlx5/mlx5_common.c:1028
#11 0x0000000000aeb90 in rte_pci_probe_one_driver (dev=0x11421000, drv=0xcacd0c0 <mlx5_common_pci_driver>) at ../drivers/bus/pci/pci_common.c:297 #12 pci_probe_all_drivers (dev=0x11421000) at ../drivers/bus/pci/pci_common.c:381
#13 pci_plug (dev=0x114210a0) at ../drivers/bus/pci/pci_common.c:652 #14 0x0000000000a6d87c in local_dev_probe (devargs=devargs@entry=0x1154d400 "pci:0000:02:00.1,rq_cqe_comp_en=1", new_dev=0xfffff0dad5c0, new_dev@entry=0xfffff0dad600) at ../lib/eal/common/eal_common_dev.c:230 #15 0x0000000000a6d9dc in rte_eal_hotplug_add_local (busname=0xb2d2c8 "pci", devname=devname@entry=0xfffff0dad658 "0000:02:00.1", args=args@entry=0x0) at ../lib/eal/common/eal_common_dev.c:179
#16 0x0000000000f231c40cc in sf_eal_hotplug_add_local (port_id=0xfffff0dad68e, devargs=<optimized out>) at /root/rpmbuild/BUILD/sdn/platform/src/include/dataplane/primary/eal.h:77 #17 attach_port (port_id=<optimized out>, devargs=<optimized out>, local=<optimized out>) at port.c:61
#18 0x0000000000f231c6020 in cmd_handler (cmd=0xfffff0dadae8, cmd_rep=cmd_rep@entry=0xfffff0dad808) at msg.c:369
#19 0x0000000000f231c31f0 in command_handler (reply=0xfffff0dad7d8, req=0xfffff0dadab8) at backend.c:110
#20 0x0000000000f231c1040, req=0xfffff0dad7d8, rep=0xfffff0dad7d8) at backend.c:162
#21 0x0000000000f231c13f8 in process_msg (ep=0xfffff0x1140a140, req=req@entry=0xfffff0dadab8, sa=sa@entry=0xfffff0dad48) at xipc.c:206 #22 0x0000000000f231c1728 in xipc_loop (handle=0x1140a140) at xipc.c:273 #23 0x0000000000f231c4244 in run_main_loop () at main.c:408
#24 main (argc=5, argv=<optimized out>) at main.c:505

(gdb)

like:
https://patches.dpdk.org/project/dpdk/patch/[email protected]/

Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.