On 11/17/2017 09:58 PM, David Ahern wrote: > 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://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Farkadis%2Fiproute2%2F&data=02%7C01%7Carkadis%40mellanox.com%7Cbf79bc51b9c641e1c3cc08d52df59f29%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636465455333867183&sdata=JHpevZLdZJH2Imk%2FLpEaEbRTlAGMYP6GYaxTsNWHaig%3D&reserved=0 >> 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 >
Thanks, will fix