On 11/14/17 9:18 AM, Jiri Pirko wrote: > From: Jiri Pirko <j...@mellanox.com> > > Arkadi says: > > Many of the ASIC's internal resources are limited and are shared between > several hardware procedures. For example, unified hash-based memory can > be used for many lookup purposes, like FDB and LPM. In many cases the user > can provide a partitioning scheme for such a resource in order to perform > fine tuning for his application. In many cases after setting the > partitioning of the resource driver reload is needed. This patchset add > support for hot reset of the driver. > > Such an abstraction can be coupled with devlink's dpipe interface, which > models the ASIC's pipeline as an graph of match/action tables. By modeling > the hardware resource object, and by coupling it to several dpipe tables, > further visibility can be achieved in order to debug ASIC-wide issues. > > The proposed interface will provide the user the ability to understand the > limitations of the hardware, and receive notification regarding its occupancy. > Furthermore, monitoring the resource occupancy can be done in real-time and > can be useful in many cases. > > Userspace part prototype can be found at https://github.com/arkadis/iproute2/ > at resource_dev branch. >
now that my firmware problem is fixed, I installed a build with this patch set. Trying to run devlink to split a port hangs: $ devlink port split swp1 count 4 [ 615.373359] INFO: task devlink:804 blocked for more than 120 seconds. [ 615.379934] Tainted: G W 4.14.0+ #38 [ 615.385238] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 615.393111] devlink D 0 804 771 0x00000080 [ 615.393115] Call Trace: [ 615.393126] __schedule+0x1de/0x690 [ 615.393130] schedule+0x36/0x80 [ 615.393139] schedule_preempt_disabled+0xe/0x10 [ 615.393146] __mutex_lock.isra.4+0x211/0x530 [ 615.393152] __mutex_lock_slowpath+0x13/0x20 [ 615.393155] ? __mutex_lock_slowpath+0x13/0x20 [ 615.393158] mutex_lock+0x2f/0x40 [ 615.393164] devlink_port_unregister+0x29/0x60 [devlink] [ 615.393169] mlxsw_core_port_fini+0x25/0x50 [mlxsw_core] [ 615.393179] mlxsw_sp_port_remove+0xf0/0x100 [mlxsw_spectrum] [ 615.393186] mlxsw_sp_port_split+0xdc/0x260 [mlxsw_spectrum] [ 615.393193] ? _cond_resched+0x19/0x30 [ 615.393200] mlxsw_devlink_port_split+0x36/0x50 [mlxsw_core] [ 615.393206] devlink_nl_cmd_port_split_doit+0x42/0x50 [devlink] [ 615.393212] genl_family_rcv_msg+0x1c9/0x390 [ 615.393217] genl_rcv_msg+0x4c/0xa0 [ 615.393220] ? _cond_resched+0x19/0x30 [ 615.393228] ? genl_family_rcv_msg+0x390/0x390 [ 615.393232] netlink_rcv_skb+0xec/0x120 [ 615.393235] genl_rcv+0x28/0x40 [ 615.393239] netlink_unicast+0x170/0x230 [ 615.393244] netlink_sendmsg+0x28e/0x370 [ 615.393251] SYSC_sendto+0x10e/0x1b0 [ 615.393258] ? __audit_syscall_entry+0xc1/0x110 [ 615.393261] ? syscall_trace_enter+0x1c6/0x2d0 [ 615.393264] ? __do_page_fault+0x231/0x4b0 [ 615.393268] SyS_sendto+0xe/0x10 [ 615.393272] do_syscall_64+0x60/0x1f0 [ 615.393277] entry_SYSCALL64_slow_path+0x25/0x25 [ 615.393280] RIP: 0033:0x7f4ef43c16f3 [ 615.393284] RSP: 002b:00007fffb907fbc8 EFLAGS: 00000246 ORIG_RAX: 000000000000002c [ 615.393287] RAX: ffffffffffffffda RBX: 00000000013660e0 RCX: 00007f4ef43c16f3 [ 615.393290] RDX: 0000000000000040 RSI: 0000000001366110 RDI: 0000000000000003 [ 615.393291] RBP: 0000000000000000 R08: 00007f4ef4686d80 R09: 000000000000000c [ 615.393292] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 [ 615.393296] R13: 0000000000000004 R14: 0000000000000000 R15: 0000000000000000