# ls /sys/class/infiniband
mlx5_0 mlx5_1
创建bond
modprobe bonding
/opt/mellanox/iproute2/sbin/ip link set dev enp8s0f0 up
echo '2' > /sys/class/net/enp8s0f0/device/sriov_numvfs
/opt/mellanox/iproute2/sbin/ip link set dev enp8s0f0 vf 0 state enable
/opt/mellanox/iproute2/sbin/ip link set dev enp8s0f0 vf 1 state enable
/opt/mellanox/iproute2/sbin/ip link set dev enp8s0f0 vf 0 mac 00:00:00:00:00:01
/opt/mellanox/iproute2/sbin/ip link set dev enp8s0f0 vf 1 mac 00:00:00:00:00:02
echo '0000:08:00.2' > /sys/bus/pci/drivers/mlx5_core/unbind
echo '0000:08:00.3' > /sys/bus/pci/drivers/mlx5_core/unbind
/opt/mellanox/iproute2/sbin/devlink dev eswitch set pci/0000:08:00.0 mode switchdev
/opt/mellanox/iproute2/sbin/ip link set dev enp8s0f0 up
echo '2' > /sys/class/net/enp8s0f1/device/sriov_numvfs
/opt/mellanox/iproute2/sbin/ip link set dev enp8s0f1 vf 0 state enable
/opt/mellanox/iproute2/sbin/ip link set dev enp8s0f1 vf 1 state enable
/opt/mellanox/iproute2/sbin/ip link set dev enp8s0f1 vf 0 mac 00:00:00:00:00:01
/opt/mellanox/iproute2/sbin/ip link set dev enp8s0f1 vf 1 mac 00:00:00:00:00:02
echo '0000:08:00.6' > /sys/bus/pci/drivers/mlx5_core/unbind
echo '0000:08:00.7' > /sys/bus/pci/drivers/mlx5_core/unbind
/opt/mellanox/iproute2/sbin/devlink dev eswitch set pci/0000:08:00.1 mode switchdev
echo '+enp8s0f0bond0' > /sys/class/net/bonding_masters
echo 'balance-xor' > /sys/class/net/enp8s0f0bond0/bonding/mode
echo 'layer2' > /sys/class/net/enp8s0f0bond0/bonding/xmit_hash_policy
/opt/mellanox/iproute2/sbin/ip link set dev enp8s0f0 down
echo '+enp8s0f0' > /sys/class/net/enp8s0f0bond0/bonding/slaves
/opt/mellanox/iproute2/sbin/ip link set dev enp8s0f1 down
echo '+enp8s0f1' > /sys/class/net/enp8s0f0bond0/bonding/slaves
echo '1' > /sys/class/net/enp8s0f0bond0/bonding/all_slaves_active
/opt/mellanox/iproute2/sbin/ip link set dev enp8s0f0 up
/opt/mellanox/iproute2/sbin/ip link set dev enp8s0f1 up
/opt/mellanox/iproute2/sbin/ip link set dev enp8s0f0bond0 up
sysfs的节点就变成了:
# ls /sys/class/infiniband
mlx5_bond_0
是因为调用了dev_set_name/kobject_set_name_vargs
[Mon Aug 23 12:11:43 2021] dev_set_name+0x53/0x70
[Mon Aug 23 12:11:43 2021] alloc_name +0x16d/0x1b0 [ib_core]
[Mon Aug 23 12:11:43 2021] ? ida_alloc_range+0x84/0x400
[Mon Aug 23 12:11:43 2021] ? down_write+0x8c/0x110
[Mon Aug 23 12:11:43 2021] ib_register_device+0x59/0x410 [ib_core]
[Mon Aug 23 12:11:43 2021] ? do_raw_spin_unlock+0x4d/0xc0
[Mon Aug 23 12:11:43 2021] mlx5_ib_stage_ib_reg_init+0x52/0x60 [mlx5_ib]
[Mon Aug 23 12:11:43 2021] __mlx5_ib_add+0x33/0x90 [mlx5_ib]
[Mon Aug 23 12:11:43 2021] mlx5r_probe+0x13b/0x260 [mlx5_ib]
[Mon Aug 23 12:11:43 2021] ? mlx5_load+0x107/0x130 [mlx5_core]
[Mon Aug 23 12:11:43 2021] auxiliary_bus_probe+0x49/0x80
[Mon Aug 23 12:11:43 2021] ? driver_sysfs_add+0x70/0xa0
[Mon Aug 23 12:11:43 2021] really_probe+0xf5/0x3f0
[Mon Aug 23 12:11:43 2021] driver_probe_device+0xef/0x160
[Mon Aug 23 12:11:43 2021] device_driver_attach+0x58/0x60
[Mon Aug 23 12:11:43 2021] __driver_attach+0x96/0x160
[Mon Aug 23 12:11:43 2021] ? device_driver_attach+0x60/0x60
[Mon Aug 23 12:11:43 2021] ? device_driver_attach+0x60/0x60
[Mon Aug 23 12:11:43 2021] bus_for_each_dev+0x7c/0xc0
[Mon Aug 23 12:11:43 2021] driver_attach+0x1e/0x20
[Mon Aug 23 12:11:43 2021] bus_add_driver+0x157/0x1f0
[Mon Aug 23 12:11:43 2021] driver_register+0x70/0xc0
[Mon Aug 23 12:11:43 2021] __auxiliary_driver_register+0x63/0xa0
[Mon Aug 23 12:11:43 2021] __init_backport+0x2cf/0x39d [mlx5_ib]
[Mon Aug 23 12:11:43 2021] ? 0xffffffffc029f000
[Mon Aug 23 12:11:43 2021] do_one_initcall+0x5f/0x2c0
[Mon Aug 23 12:11:43 2021] ? kmem_cache_alloc_trace+0x6f5/0x760
[Mon Aug 23 12:11:43 2021] do_init_module+0x60/0x230
[Mon Aug 23 12:11:43 2021] load_module+0x194d/0x1a70
[Mon Aug 23 12:11:43 2021] __do_sys_finit_module+0xc1/0x120
[Mon Aug 23 12:11:43 2021] ? __do_sys_finit_module+0xc1/0x120
[Mon Aug 23 12:11:43 2021] __x64_sys_finit_module+0x1a/0x20
[Mon Aug 23 12:11:43 2021] do_syscall_64+0x3c/0x80
[Mon Aug 23 12:11:43 2021] entry_SYSCALL_64_after_hwframe+0x44/0xae
[Mon Aug 23 12:11:43 2021] RIP: 0033:0x7f91d891978d