* Re: [PATCH v1 1/1] net/ncsi: specify maximum package to probe
[not found] <20240701154336.3536924-1-peteryin.openbmc@gmail.com>
@ 2024-07-02 13:00 ` Simon Horman
2024-07-02 13:20 ` Simon Horman
0 siblings, 1 reply; 2+ messages in thread
From: Simon Horman @ 2024-07-02 13:00 UTC (permalink / raw)
To: Peter Yin
Cc: patrick, amithash, Samuel Mendoza-Jonas, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Joel Stanley, Andrew Jeffery,
Cosmo Chou, linux-kernel, devicetree, linux-arm-kernel,
linux-aspeed
[ As this seems to relate to: DT, ASPEED and ARM, CC:
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Joel Stanley, Andrew Jeffery,
devicetree, linux-arm-kernel, linux-aspeed. ]
On Mon, Jul 01, 2024 at 11:43:36PM +0800, Peter Yin wrote:
> Most NICs have a single package. For OCP3.0 NICs, the package ID is
> determined by the slot ID. Probing all 8 package IDs is usually
> unnecessary. To reduce probe time, add properties to specify the
> maximum number of packages.
>
> Signed-off-by: Cosmo Chou <cosmo.chou@quantatw.com>
> Signed-off-by: Peter Yin <peteryin.openbmc@gmail.com>
> ---
> net/ncsi/internal.h | 1 +
> net/ncsi/ncsi-manage.c | 16 ++++++++++++----
> 2 files changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/net/ncsi/internal.h b/net/ncsi/internal.h
> index ef0f8f73826f..bd7ad0bf803f 100644
> --- a/net/ncsi/internal.h
> +++ b/net/ncsi/internal.h
> @@ -341,6 +341,7 @@ struct ncsi_dev_priv {
> #define NCSI_MAX_VLAN_VIDS 15
> struct list_head vlan_vids; /* List of active VLAN IDs */
>
> + unsigned int max_package; /* Num of packages to probe */
> bool multi_package; /* Enable multiple packages */
> bool mlx_multi_host; /* Enable multi host Mellanox */
> u32 package_whitelist; /* Packages to configure */
> diff --git a/net/ncsi/ncsi-manage.c b/net/ncsi/ncsi-manage.c
> index 5ecf611c8820..159943ee1317 100644
> --- a/net/ncsi/ncsi-manage.c
> +++ b/net/ncsi/ncsi-manage.c
> @@ -1358,12 +1358,12 @@ static void ncsi_probe_channel(struct ncsi_dev_priv *ndp)
> nd->state = ncsi_dev_state_probe_deselect;
> fallthrough;
> case ncsi_dev_state_probe_deselect:
> - ndp->pending_req_num = 8;
> + ndp->pending_req_num = ndp->max_package;
>
> /* Deselect all possible packages */
> nca.type = NCSI_PKT_CMD_DP;
> nca.channel = NCSI_RESERVED_CHANNEL;
> - for (index = 0; index < 8; index++) {
> + for (index = 0; index < ndp->max_package; index++) {
> nca.package = index;
> ret = ncsi_xmit_cmd(&nca);
> if (ret)
> @@ -1491,7 +1491,7 @@ static void ncsi_probe_channel(struct ncsi_dev_priv *ndp)
>
> /* Probe next package */
> ndp->package_probe_id++;
> - if (ndp->package_probe_id >= 8) {
> + if (ndp->package_probe_id >= ndp->max_package) {
> /* Probe finished */
> ndp->flags |= NCSI_DEV_PROBED;
> break;
> @@ -1746,7 +1746,7 @@ struct ncsi_dev *ncsi_register_dev(struct net_device *dev,
> struct platform_device *pdev;
> struct device_node *np;
> unsigned long flags;
> - int i;
> + int i, ret;
>
> /* Check if the device has been registered or not */
> nd = ncsi_find_dev(dev);
> @@ -1795,6 +1795,14 @@ struct ncsi_dev *ncsi_register_dev(struct net_device *dev,
> if (np && (of_property_read_bool(np, "mellanox,multi-host") ||
> of_property_read_bool(np, "mlx,multi-host")))
> ndp->mlx_multi_host = true;
> +
Should the "ncsi-package" (and above multi-host properties) be
documented in DT bindings somewhere? I was unable to locate such
documentation.
> + if (np) {
> + ret = of_property_read_u32(np, "ncsi-package",
> + &ndp->max_package);
> + if (ret || !ndp->max_package ||
> + ndp->max_package > NCSI_MAX_PACKAGE)
> + ndp->max_package = NCSI_MAX_PACKAGE;
> + }
> }
It seems that ndp->max_package will be 0 unless pdev != NULL and np != NULL.
Would it be better set to NCSI_MAX_PACKAGE in such cases?
>
> return nd;
> --
> 2.25.1
>
>
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH v1 1/1] net/ncsi: specify maximum package to probe
2024-07-02 13:00 ` [PATCH v1 1/1] net/ncsi: specify maximum package to probe Simon Horman
@ 2024-07-02 13:20 ` Simon Horman
0 siblings, 0 replies; 2+ messages in thread
From: Simon Horman @ 2024-07-02 13:20 UTC (permalink / raw)
To: Peter Yin
Cc: patrick, amithash, Samuel Mendoza-Jonas, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Joel Stanley, Andrew Jeffery,
Cosmo Chou, linux-kernel, devicetree, linux-arm-kernel,
linux-aspeed, netdev
[ + netdev, which I accidently dropped from the CC list ]
On Tue, Jul 02, 2024 at 02:00:30PM +0100, Simon Horman wrote:
> [ As this seems to relate to: DT, ASPEED and ARM, CC:
> Rob Herring, Krzysztof Kozlowski, Conor Dooley, Joel Stanley, Andrew Jeffery,
> devicetree, linux-arm-kernel, linux-aspeed. ]
>
> On Mon, Jul 01, 2024 at 11:43:36PM +0800, Peter Yin wrote:
> > Most NICs have a single package. For OCP3.0 NICs, the package ID is
> > determined by the slot ID. Probing all 8 package IDs is usually
> > unnecessary. To reduce probe time, add properties to specify the
> > maximum number of packages.
> >
> > Signed-off-by: Cosmo Chou <cosmo.chou@quantatw.com>
> > Signed-off-by: Peter Yin <peteryin.openbmc@gmail.com>
> > ---
> > net/ncsi/internal.h | 1 +
> > net/ncsi/ncsi-manage.c | 16 ++++++++++++----
> > 2 files changed, 13 insertions(+), 4 deletions(-)
> >
> > diff --git a/net/ncsi/internal.h b/net/ncsi/internal.h
> > index ef0f8f73826f..bd7ad0bf803f 100644
> > --- a/net/ncsi/internal.h
> > +++ b/net/ncsi/internal.h
> > @@ -341,6 +341,7 @@ struct ncsi_dev_priv {
> > #define NCSI_MAX_VLAN_VIDS 15
> > struct list_head vlan_vids; /* List of active VLAN IDs */
> >
> > + unsigned int max_package; /* Num of packages to probe */
> > bool multi_package; /* Enable multiple packages */
> > bool mlx_multi_host; /* Enable multi host Mellanox */
> > u32 package_whitelist; /* Packages to configure */
> > diff --git a/net/ncsi/ncsi-manage.c b/net/ncsi/ncsi-manage.c
> > index 5ecf611c8820..159943ee1317 100644
> > --- a/net/ncsi/ncsi-manage.c
> > +++ b/net/ncsi/ncsi-manage.c
> > @@ -1358,12 +1358,12 @@ static void ncsi_probe_channel(struct ncsi_dev_priv *ndp)
> > nd->state = ncsi_dev_state_probe_deselect;
> > fallthrough;
> > case ncsi_dev_state_probe_deselect:
> > - ndp->pending_req_num = 8;
> > + ndp->pending_req_num = ndp->max_package;
> >
> > /* Deselect all possible packages */
> > nca.type = NCSI_PKT_CMD_DP;
> > nca.channel = NCSI_RESERVED_CHANNEL;
> > - for (index = 0; index < 8; index++) {
> > + for (index = 0; index < ndp->max_package; index++) {
> > nca.package = index;
> > ret = ncsi_xmit_cmd(&nca);
> > if (ret)
> > @@ -1491,7 +1491,7 @@ static void ncsi_probe_channel(struct ncsi_dev_priv *ndp)
> >
> > /* Probe next package */
> > ndp->package_probe_id++;
> > - if (ndp->package_probe_id >= 8) {
> > + if (ndp->package_probe_id >= ndp->max_package) {
> > /* Probe finished */
> > ndp->flags |= NCSI_DEV_PROBED;
> > break;
> > @@ -1746,7 +1746,7 @@ struct ncsi_dev *ncsi_register_dev(struct net_device *dev,
> > struct platform_device *pdev;
> > struct device_node *np;
> > unsigned long flags;
> > - int i;
> > + int i, ret;
> >
> > /* Check if the device has been registered or not */
> > nd = ncsi_find_dev(dev);
> > @@ -1795,6 +1795,14 @@ struct ncsi_dev *ncsi_register_dev(struct net_device *dev,
> > if (np && (of_property_read_bool(np, "mellanox,multi-host") ||
> > of_property_read_bool(np, "mlx,multi-host")))
> > ndp->mlx_multi_host = true;
> > +
>
> Should the "ncsi-package" (and above multi-host properties) be
> documented in DT bindings somewhere? I was unable to locate such
> documentation.
>
> > + if (np) {
> > + ret = of_property_read_u32(np, "ncsi-package",
> > + &ndp->max_package);
> > + if (ret || !ndp->max_package ||
> > + ndp->max_package > NCSI_MAX_PACKAGE)
> > + ndp->max_package = NCSI_MAX_PACKAGE;
> > + }
> > }
>
> It seems that ndp->max_package will be 0 unless pdev != NULL and np != NULL.
> Would it be better set to NCSI_MAX_PACKAGE in such cases?
>
> >
> > return nd;
> > --
> > 2.25.1
> >
> >
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-07-02 13:21 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20240701154336.3536924-1-peteryin.openbmc@gmail.com>
2024-07-02 13:00 ` [PATCH v1 1/1] net/ncsi: specify maximum package to probe Simon Horman
2024-07-02 13:20 ` Simon Horman
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).