• subfunction


    e71383fb9cd1 net/mlx5: Light probe local SFs

    kernel 6.5 merge了上面的commit后,SF的行为有了个变化,以前active local sf的时候,auxiliary sub-device就会创建,现在要等到devlink reload之后。

    1. devlink port add pci/0000:08:00.0 flavour pcisf pfnum 0 sfnum 1
    2. devlink port function set en8f0pf0sf1 state active
    3. devlink dev param set auxiliary/mlx5_core.sf.2 name enable_eth value true cmode driverinit

    devlink会传DEVLINK_PORT_FLAVOUR_PCI_SF到kernel,创建local sf

    1. devlink_nl_cmd_port_new_doit
    2. mlx5_devlink_sf_port_new
    3. mlx5_sf_add
    4. mlx5_sf_alloc
    5. mlx5_sf_hw_table_sf_alloc
    6. mlx5_sf_hw_table_sf_alloc
    7. mlx5_cmd_alloc_sf
    8. mlx5_modify_vhca_sw_id
    9. mlx5_eswitch_load_sf_vport
    10. mlx5_esw_offloads_init_sf_rep
    11. mlx5_esw_offloads_sf_devlink_port_init
    12. mlx5_eswitch_load_vport
    13. mlx5_esw_vport_enable
    14. mlx5_esw_offloads_load_rep
    15. mlx5_esw_offloads_devlink_port_register
    16. devl_port_register_with_ops
    17. devl_rate_leaf_create
    18. mlx5_esw_offloads_rep_load

    1. # devlink port function set en8f0pf0sf1 state active
    2. mlx5_devlink_sf_port_fn_state_set
    3. mlx5_sf_table_try_get
    4. mlx5_sf_lookup_by_index
    5. mlx5_sf_state_set
    6. mlx5_sf_activate
    7. mlx5_cmd_sf_enable_hca
    8. mlx5_sf_inactivate
    9. mlx5_cmd_sf_disable_hca

    下面的notifier block函数会被连续调好几遍:

    1. [Fri Oct 27 11:52:03 2023] mlx5_sf_vhca_event: called
    2. [Fri Oct 27 11:52:03 2023] mlx5_sf_hw_vhca_event: called
    3. [Fri Oct 27 11:52:03 2023] mlx5_sf_dev_state_change_handler: called
    1. 8.339618 135039 135039 kworker/u48:0 mlx5_sf_dev_probe
    2. b'mlx5_sf_dev_probe+0x5 [mlx5_core]'
    3. b'call_driver_probe+0x26 [kernel]'
    4. b'really_probe+0x1a6 [kernel]'
    5. b'__driver_probe_device+0x7e [kernel]'
    6. b'driver_probe_device+0x23 [kernel]'
    7. b'__device_attach_driver+0x92 [kernel]'
    8. b'bus_for_each_drv+0x8d [kernel]'
    9. b'__device_attach+0xc6 [kernel]'
    10. b'device_initial_probe+0x17 [kernel]'
    11. b'bus_probe_device+0xa8 [kernel]'
    12. b'device_add+0x431 [kernel]'
    13. b'__auxiliary_device_add+0x45 [kernel]'
    14. b'mlx5_sf_dev_add+0x10f [mlx5_core]'
    15. b'mlx5_sf_dev_state_change_handler+0x152 [mlx5_core]'
    16. b'notifier_call_chain+0x49 [kernel]'
    17. b'blocking_notifier_call_chain+0x4d [kernel]'
    18. b'mlx5_vhca_event_notify+0xf2 [mlx5_core]'
    19. b'mlx5_vhca_state_work_handler+0x22 [mlx5_core]'
    20. b'process_one_work+0x1f5 [kernel]'
    21. b'worker_thread+0x1cd [kernel]'
    22. b'kthread+0x10d [kernel]'
    23. b'ret_from_fork+0x3d [kernel]'
    24. b'ret_from_fork_asm+0x1b [kernel]'

        devlink dev reload auxiliary/mlx5_core.sf.2

    1. 12.00634 145115 145115 devlink register_netdev
    2. b'register_netdev+0x5 [kernel]'
    3. mlx5e_probe
    4. b'auxiliary_bus_probe+0x42 [kernel]'
    5. b'call_driver_probe+0x26 [kernel]'
    6. b'really_probe+0x1a6 [kernel]'
    7. b'__driver_probe_device+0x7e [kernel]'
    8. b'driver_probe_device+0x23 [kernel]'
    9. b'__device_attach_driver+0x92 [kernel]'
    10. b'bus_for_each_drv+0x8d [kernel]'
    11. b'__device_attach+0xc6 [kernel]'
    12. b'device_initial_probe+0x17 [kernel]'
    13. b'bus_probe_device+0xa8 [kernel]'
    14. b'device_add+0x431 [kernel]'
    15. b'__auxiliary_device_add+0x45 [kernel]'
    16. b'add_adev+0x9e [mlx5_core]'
    17. b'add_drivers+0xa6 [mlx5_core]'
    18. b'mlx5_rescan_drivers_locked+0x4e [mlx5_core]'
    19. b'mlx5_register_device+0x40 [mlx5_core]'
    20. b'mlx5_init_one_devl_locked+0x114 [mlx5_core]'
    21. b'mlx5_devlink_reload_up+0xc8 [mlx5_core]'
    22. b'devlink_reload+0xfe [kernel]'
    23. b'devlink_nl_cmd_reload+0x12a [kernel]'
    24. b'genl_family_rcv_msg_doit+0xd7 [kernel]'
    25. b'genl_family_rcv_msg+0x148 [kernel]'
    26. b'genl_rcv_msg+0x50 [kernel]'
    27. b'netlink_rcv_skb+0x5d [kernel]'
    28. b'genl_rcv+0x2d [kernel]'
    29. b'netlink_unicast+0x1b6 [kernel]'
    30. b'netlink_sendmsg+0x25c [kernel]'
    31. b'sock_sendmsg+0xbb [kernel]'
    32. b'__sys_sendto+0x12b [kernel]'
    33. b'__x64_sys_sendto+0x2d [kernel]'
    34. b'do_syscall_64+0x3c [kernel]'
    35. b'entry_SYSCALL_64_after_hwframe+0x6e [kernel]'

  • 相关阅读:
    【用户画像】功能实现值写入ClickHouse人群包、预估和更新分群人数,NoSQL数据库介绍
    企业内训app源码,在线培训小程序,随时随地想学就学
    MATLB|基于小波神经网络的短时交通流量时间序列预测
    电动汽车充电机
    第十天 移动端网页特效
    Zookeeper集群 + Kafka集群的详细介绍与部署
    解决提交到App Store时的ITMS-90478和ITMS-90062错误
    如今市面上有什么冷门生意可做
    Doris的安装和部署(Failed to find 3 backends for policy)
    三肽Isovaleryl-Val-Val-Sta-乙酯化、120849-36-7
  • 原文地址:https://blog.csdn.net/mishuang2017/article/details/134080536