From: Jiri Pirko <jiri@resnulli.us>
To: David Ahern <dsa@cumulusnetworks.com>
Cc: netdev@vger.kernel.org, davem@davemloft.net,
arkadis@mellanox.com, mlxsw@mellanox.com, andrew@lunn.ch,
vivien.didelot@savoirfairelinux.com, f.fainelli@gmail.com,
michael.chan@broadcom.com, ganeshgr@chelsio.com,
saeedm@mellanox.com, matanb@mellanox.com, leonro@mellanox.com,
idosch@mellanox.com, jakub.kicinski@netronome.com,
ast@kernel.org, daniel@iogearbox.net, simon.horman@netronome.com,
pieter.jansenvanvuuren@netronome.com, john.hurley@netronome.com,
alexander.h.duyck@intel.com, linville@tuxdriver.com,
gospo@broadcom.com, steven.lin1@broadcom.com,
yuvalm@mellanox.com, ogerlitz@mellanox.com,
roopa@cumulusnetworks.com
Subject: Re: [patch net-next v2 00/10] Add support for resource abstraction
Date: Wed, 27 Dec 2017 09:09:02 +0100 [thread overview]
Message-ID: <20171227080902.GA1997@nanopsycho> (raw)
In-Reply-To: <c72fd96e-9f46-974c-733f-3c9336285d52@cumulusnetworks.com>
Wed, Dec 27, 2017 at 05:05:09AM CET, dsa@cumulusnetworks.com wrote:
>On 12/26/17 5:23 AM, Jiri Pirko wrote:
>> From: Jiri Pirko <jiri@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.
>
>In the last RFC (not v1, but RFC) I asked for some kind of description
>for each resource, and you and Arkadi have pushed back. Let's walk
>through an example to see what I mean:
>
>$ devlink resource show pci/0000:03:00.0
>pci/0000:03:00.0:
> name kvd size 245760 size_valid true
> resources:
> name linear size 98304 occ 0
> name hash_double size 60416
> name hash_single size 87040
>
>So this 2700 has 3 resources that can be managed -- some table or
>resource or something named 'kvd' with linear, hash_double and
>hash_single sub-resources. What are these names referring too? The above
>output gives no description, and 'kvd' is not an industry term. Further,
This are internal resources specific to the ASIC. Would you like some
description to each or something like that?
>what are these sizes that a user can control? The output contains no
>units, no description, nothing. In short, the above output provides
>random numbers associated with random names.
Units are now exposed from kernel, just this version of iproute2 patch
does not display it.
>
>I can see dpipe tables exported by this device:
>
>$ devlink dpipe header show pci/0000:03:00.0
>
>pci/0000:03:00.0:
> name mlxsw_meta
> field:
> name erif_port bitwidth 32 mapping_type ifindex
> name l3_forward bitwidth 1
> name l3_drop bitwidth 1
> name adj_index bitwidth 32
> name adj_size bitwidth 32
> name adj_hash_index bitwidth 32
>
> name ipv6
> field:
> name destination ip bitwidth 128
>
> name ipv4
> field:
> name destination ip bitwidth 32
>
> name ethernet
> field:
> name destination mac bitwidth 48
>
>but none mention 'kvd' or 'linear' or 'hash" and none of the other
>various devlink options:
>
>$ devlink
>Usage: devlink [ OPTIONS ] OBJECT { COMMAND | help }
>where OBJECT := { dev | port | sb | monitor | dpipe }
>
>seem to related to resources.
>
>So how does a user know what they are controlling by this 'resource'
>option? Is the user expected to have a PRM or user guide on hand for the
>specific device model that is being configured?
The relation of specific dpipe table to specific resource is exposed by
the kernel as well. Probably the iproute2 patch just does not display
it.
>
>Again, I have no objections to kvd, linear, hash, etc terms as they do
>relate to Mellanox products. But kvd/linear, for example, does correlate
>to industry standard concepts in some way. My request is that the
>resource listing guide the user in some way, stating what these
>resources mean.
So the showed relation to dpipe table would be enougn or you would still
like to see some description? I don't like the description concept here
as the relations to dpipe table should tell user exactly what he needs
to know.
>
>IMO the above output is not user friendly and having to keep a PRM on
>hand for each device model is not a realistic solution.
next prev parent reply other threads:[~2017-12-27 8:09 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-26 11:23 [patch net-next v2 00/10] Add support for resource abstraction Jiri Pirko
2017-12-26 11:23 ` [patch net-next v2 01/10] devlink: Add per devlink instance lock Jiri Pirko
2017-12-26 11:23 ` [patch net-next v2 02/10] devlink: Add support for resource abstraction Jiri Pirko
2017-12-26 11:23 ` [patch net-next v2 03/10] devlink: Add support for reload Jiri Pirko
2017-12-26 11:23 ` [patch net-next v2 04/10] devlink: Add relation between dpipe and resource Jiri Pirko
2017-12-26 11:23 ` [patch net-next v2 05/10] mlxsw: pci: Add support for performing bus reset Jiri Pirko
2017-12-26 11:23 ` [patch net-next v2 06/10] mlxsw: spectrum: Register KVD resources with devlink Jiri Pirko
2017-12-26 11:23 ` [patch net-next v2 07/10] mlxsw: spectrum_dpipe: Connect dpipe tables to resources Jiri Pirko
2017-12-26 11:23 ` [patch net-next v2 08/10] mlxsw: spectrum: Add support for getting kvdl occupancy Jiri Pirko
2017-12-26 11:23 ` [patch net-next v2 09/10] mlxsw: pci: Add support for getting resource through devlink Jiri Pirko
2017-12-26 11:23 ` [patch net-next v2 10/10] mlxsw: core: Add support for reload Jiri Pirko
2017-12-27 4:05 ` [patch net-next v2 00/10] Add support for resource abstraction David Ahern
2017-12-27 8:09 ` Jiri Pirko [this message]
2017-12-27 8:23 ` Andrew Lunn
2017-12-27 9:37 ` Jiri Pirko
2017-12-27 13:08 ` Andrew Lunn
2017-12-27 13:15 ` Jiri Pirko
2017-12-27 16:38 ` David Ahern
2017-12-27 19:31 ` Andrew Lunn
2017-12-27 20:16 ` David Ahern
2017-12-27 8:28 ` Yuval Mintz
2017-12-27 16:34 ` David Ahern
2017-12-27 19:43 ` Roopa Prabhu
2017-12-28 8:21 ` Yuval Mintz
2017-12-30 21:15 ` David Ahern
2017-12-31 10:52 ` Arkadi Sharshevsky
2017-12-31 15:46 ` David Ahern
2018-01-01 12:23 ` Arkadi Sharshevsky
2017-12-27 20:15 ` Arkadi Sharshevsky
2017-12-28 8:25 ` Yuval Mintz
2017-12-28 16:09 ` David Ahern
2017-12-28 16:23 ` Jiri Pirko
2017-12-28 16:33 ` David Ahern
2017-12-28 16:43 ` Jiri Pirko
2017-12-29 17:09 ` Arkadi Sharshevsky
2017-12-30 10:18 ` Andrew Lunn
2017-12-30 10:25 ` Jiri Pirko
2017-12-30 17:26 ` Andrew Lunn
2018-01-01 14:58 ` Arkadi Sharshevsky
2018-01-02 10:08 ` Jiri Pirko
2018-01-02 13:41 ` Andrew Lunn
2018-01-02 14:35 ` Jiri Pirko
2018-01-02 18:05 ` David Ahern
2018-01-03 18:05 ` Arkadi Sharshevsky
2018-01-03 18:14 ` David Ahern
2018-01-03 18:17 ` Jiri Pirko
2018-01-03 18:29 ` David Ahern
2018-01-03 18:36 ` Jiri Pirko
2018-01-04 16:58 ` David Ahern
2018-01-04 17:17 ` David Miller
2018-01-25 15:24 ` Jiri Pirko
2018-01-25 15:38 ` David Ahern
2018-01-25 15:50 ` Jiri Pirko
2018-01-04 0:07 ` Arkadi Sharshevsky
2018-01-04 2:28 ` David Ahern
2018-01-04 9:24 ` Arkadi Sharshevsky
2018-01-04 12:41 ` Andrew Lunn
2018-01-04 15:58 ` David Ahern
2018-01-04 16:13 ` Arkadi Sharshevsky
2018-01-04 16:44 ` David Ahern
2018-01-04 18:03 ` David Ahern
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171227080902.GA1997@nanopsycho \
--to=jiri@resnulli.us \
--cc=alexander.h.duyck@intel.com \
--cc=andrew@lunn.ch \
--cc=arkadis@mellanox.com \
--cc=ast@kernel.org \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=dsa@cumulusnetworks.com \
--cc=f.fainelli@gmail.com \
--cc=ganeshgr@chelsio.com \
--cc=gospo@broadcom.com \
--cc=idosch@mellanox.com \
--cc=jakub.kicinski@netronome.com \
--cc=john.hurley@netronome.com \
--cc=leonro@mellanox.com \
--cc=linville@tuxdriver.com \
--cc=matanb@mellanox.com \
--cc=michael.chan@broadcom.com \
--cc=mlxsw@mellanox.com \
--cc=netdev@vger.kernel.org \
--cc=ogerlitz@mellanox.com \
--cc=pieter.jansenvanvuuren@netronome.com \
--cc=roopa@cumulusnetworks.com \
--cc=saeedm@mellanox.com \
--cc=simon.horman@netronome.com \
--cc=steven.lin1@broadcom.com \
--cc=vivien.didelot@savoirfairelinux.com \
--cc=yuvalm@mellanox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).