Re: [PATCH net-next 1/2] mlxsw: Register physical ports as a devlink resource
From: Jakub Kicinski <kuba@kernel.org>
Date: 2021-01-13 18:47:34
On Wed, 13 Jan 2021 16:26:56 +0200 Ido Schimmel wrote:
On Wed, Jan 13, 2021 at 02:39:02PM +0100, Jiri Pirko wrote:quoted
Wed, Jan 13, 2021 at 09:32:41AM CET, idosch@idosch.org wrote:quoted
On Tue, Jan 12, 2021 at 08:21:22PM -0800, Jakub Kicinski wrote:quoted
On Tue, 12 Jan 2021 10:39:30 +0200 Ido Schimmel wrote:quoted
From: Danielle Ratson <redacted> The switch ASIC has a limited capacity of physical ('flavour physical' in devlink terminology) ports that it can support. While each system is brought up with a different number of ports, this number can be increased via splitting up to the ASIC's limit. Expose physical ports as a devlink resource so that user space will have visibility to the maximum number of ports that can be supported and the current occupancy.Any thoughts on making this a "generic" resource?It might be possible to allow drivers to pass the maximum number of physical ports to devlink during their initialization. Devlink can then use it as an indication to register the resource itself instead of the driver. It can report the current occupancy without driver intervention since the list of ports is maintained in devlink. There might be an issue with the resource identifier which is a 64-bit number passed from drivers. I think we can partition this to identifiers allocated by devlink / drivers. Danielle / Jiri?There is no concept of "generic resource". And I think it is a good reason for it, as the resource is something which is always quite hw-specific. Port number migth be one exception. Can you think of anything else? If not, I would vote for not having "generic resource" just for this one case.I think Jakub's point is that he does not want drivers to expose the same resource to user space under different names.
Exactly.
Question is how to try to guarantee it. One option is what I suggested above, but it might be an overkill. Another option is better documentation. To add a section of "generic" resources in devlink-resource documentation [1] and modify the kernel-doc comment above devlink_resource_register() to point to it. [1] https://www.kernel.org/doc/html/latest/networking/devlink/devlink-resource.html
Yup, an entry in documentation and a common define in net/devlink.h is fine by me. We can always move around the kernel internals, like what registers the resource, later.