On 12/20/17 4:58 AM, Jiri Pirko wrote:
> From: Jiri Pirko <j...@mellanox.com>
> 
> 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 such cases performing driver reload is
> needed for the changes to take place, thus this patchset also adds support
> for hot reload.
> 
> Such an abstraction can be coupled with devlink's dpipe interface, which
> models the ASIC's pipeline as a 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.
> 

The breakout problem I mentioned in the last round of patches has not
been fixed:

$ ./devlink port split swp1 count 4
<hangs forever>

$ ps -C devlink
  PID TTY          TIME CMD
 4530 pts/0    00:00:00 devlink

$ cat /proc/4530/stack
[<0>] devlink_port_unregister+0x29/0x60 [devlink]
[<0>] mlxsw_core_port_fini+0x25/0x50 [mlxsw_core]
[<0>] mlxsw_sp_port_remove+0xf0/0x100 [mlxsw_spectrum]
[<0>] mlxsw_sp_port_split+0xdc/0x240 [mlxsw_spectrum]
[<0>] mlxsw_devlink_port_split+0x36/0x50 [mlxsw_core]
[<0>] devlink_nl_cmd_port_split_doit+0x3d/0x50 [devlink]
[<0>] genl_family_rcv_msg+0x1c4/0x380
[<0>] genl_rcv_msg+0x4c/0x90
[<0>] netlink_rcv_skb+0xe7/0x120
[<0>] genl_rcv+0x28/0x40
[<0>] netlink_unicast+0x181/0x230
[<0>] netlink_sendmsg+0x273/0x350
[<0>] SYSC_sendto+0x10e/0x1a0
[<0>] SyS_sendto+0xe/0x10
[<0>] do_syscall_64+0x5c/0x120
[<0>] entry_SYSCALL64_slow_path+0x25/0x25
[<0>] 0xffffffffffffffff


I rebuilt the tool from remotes/arkadi/resource_dev and I am not seeing
anything from the devlink command:

$ ./devlink resource show pci/0000:03:00.0
devlink answers: Success

Checking the kernel:

$ grep mlxsw_sp_resource_ /proc/kallsyms
ffffffffa0145080 t mlxsw_sp_resource_kvd_size_validate  [mlxsw_spectrum]
ffffffffa01450a0 t mlxsw_sp_resource_kvd_linear_size_validate
[mlxsw_spectrum]
ffffffffa01456a0 t mlxsw_sp_resource_kvd_hash_double_size_validate
[mlxsw_spectrum]
ffffffffa0145d40 t mlxsw_sp_resource_kvd_linear_occ_get [mlxsw_spectrum]
ffffffffa0145d70 t mlxsw_sp_resource_kvd_hash_single_size_validate
[mlxsw_spectrum]

Reply via email to