* [PATCH rdma-next] IB/IPoIB: Forward MTU change to driver below
@ 2017-05-23 8:42 Leon Romanovsky
[not found] ` <20170523084252.16018-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: Leon Romanovsky @ 2017-05-23 8:42 UTC (permalink / raw)
To: Doug Ledford; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, Erez Shitrit
From: Erez Shitrit <erezsh-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
This patch checks if there is a driver below that
needs to be updated on the new MTU and calls it
accordingly.
Signed-off-by: Erez Shitrit <erezsh-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Reviewed by: Alex Vesker <valex-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Signed-off-by: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
---
drivers/infiniband/ulp/ipoib/ipoib_main.c | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index 2869d1adb1de..28068140800c 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -233,6 +233,7 @@ static netdev_features_t ipoib_fix_features(struct net_device *dev, netdev_featu
static int ipoib_change_mtu(struct net_device *dev, int new_mtu)
{
struct ipoib_dev_priv *priv = ipoib_priv(dev);
+ int ret = 0;
/* dev->mtu > 2K ==> connected mode */
if (ipoib_cm_admin_enabled(dev)) {
@@ -256,9 +257,23 @@ static int ipoib_change_mtu(struct net_device *dev, int new_mtu)
ipoib_dbg(priv, "MTU must be smaller than the underlying "
"link layer MTU - 4 (%u)\n", priv->mcast_mtu);
- dev->mtu = min(priv->mcast_mtu, priv->admin_mtu);
+ new_mtu = min(priv->mcast_mtu, priv->admin_mtu);
- return 0;
+ if (priv->rn_ops->ndo_change_mtu) {
+ bool carrier_status = netif_carrier_ok(dev);
+
+ netif_carrier_off(dev);
+
+ /* notify lower level on the real mtu */
+ ret = priv->rn_ops->ndo_change_mtu(dev, new_mtu);
+
+ if (carrier_status)
+ netif_carrier_on(dev);
+ } else {
+ dev->mtu = new_mtu;
+ }
+
+ return ret;
}
/* Called with an RCU read lock taken */
--
2.12.2
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 5+ messages in thread[parent not found: <20170523084252.16018-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>]
* Re: [PATCH rdma-next] IB/IPoIB: Forward MTU change to driver below [not found] ` <20170523084252.16018-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> @ 2017-05-23 8:56 ` Yuval Shaia 2017-05-23 9:24 ` Leon Romanovsky 2017-07-22 17:07 ` Doug Ledford 1 sibling, 1 reply; 5+ messages in thread From: Yuval Shaia @ 2017-05-23 8:56 UTC (permalink / raw) To: Leon Romanovsky Cc: Doug Ledford, linux-rdma-u79uwXL29TY76Z2rM5mHXA, Erez Shitrit On Tue, May 23, 2017 at 11:42:52AM +0300, Leon Romanovsky wrote: > From: Erez Shitrit <erezsh-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> > > This patch checks if there is a driver below that Is it "below" or "upper" in the driver hierarchy? > needs to be updated on the new MTU and calls it > accordingly. > > Signed-off-by: Erez Shitrit <erezsh-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> > Reviewed by: Alex Vesker <valex-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> > Signed-off-by: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > --- > drivers/infiniband/ulp/ipoib/ipoib_main.c | 19 +++++++++++++++++-- > 1 file changed, 17 insertions(+), 2 deletions(-) > > diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c > index 2869d1adb1de..28068140800c 100644 > --- a/drivers/infiniband/ulp/ipoib/ipoib_main.c > +++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c > @@ -233,6 +233,7 @@ static netdev_features_t ipoib_fix_features(struct net_device *dev, netdev_featu > static int ipoib_change_mtu(struct net_device *dev, int new_mtu) > { > struct ipoib_dev_priv *priv = ipoib_priv(dev); > + int ret = 0; > > /* dev->mtu > 2K ==> connected mode */ > if (ipoib_cm_admin_enabled(dev)) { > @@ -256,9 +257,23 @@ static int ipoib_change_mtu(struct net_device *dev, int new_mtu) > ipoib_dbg(priv, "MTU must be smaller than the underlying " > "link layer MTU - 4 (%u)\n", priv->mcast_mtu); > > - dev->mtu = min(priv->mcast_mtu, priv->admin_mtu); > + new_mtu = min(priv->mcast_mtu, priv->admin_mtu); > > - return 0; > + if (priv->rn_ops->ndo_change_mtu) { > + bool carrier_status = netif_carrier_ok(dev); > + > + netif_carrier_off(dev); > + > + /* notify lower level on the real mtu */ > + ret = priv->rn_ops->ndo_change_mtu(dev, new_mtu); > + > + if (carrier_status) > + netif_carrier_on(dev); > + } else { > + dev->mtu = new_mtu; > + } So we don't want dev->mtu to be updated if driver was registered? > + > + return ret; > } > > /* Called with an RCU read lock taken */ > -- > 2.12.2 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH rdma-next] IB/IPoIB: Forward MTU change to driver below 2017-05-23 8:56 ` Yuval Shaia @ 2017-05-23 9:24 ` Leon Romanovsky [not found] ` <20170523092428.GK17751-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org> 0 siblings, 1 reply; 5+ messages in thread From: Leon Romanovsky @ 2017-05-23 9:24 UTC (permalink / raw) To: Yuval Shaia; +Cc: Doug Ledford, linux-rdma-u79uwXL29TY76Z2rM5mHXA, Erez Shitrit [-- Attachment #1: Type: text/plain, Size: 2611 bytes --] On Tue, May 23, 2017 at 11:56:45AM +0300, Yuval Shaia wrote: > On Tue, May 23, 2017 at 11:42:52AM +0300, Leon Romanovsky wrote: > > From: Erez Shitrit <erezsh-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> > > > > This patch checks if there is a driver below that > > Is it "below" or "upper" in the driver hierarchy? The part which close to the HW. I called it "below". > > > needs to be updated on the new MTU and calls it > > accordingly. > > > > Signed-off-by: Erez Shitrit <erezsh-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> > > Reviewed by: Alex Vesker <valex-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> > > Signed-off-by: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > > --- > > drivers/infiniband/ulp/ipoib/ipoib_main.c | 19 +++++++++++++++++-- > > 1 file changed, 17 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c > > index 2869d1adb1de..28068140800c 100644 > > --- a/drivers/infiniband/ulp/ipoib/ipoib_main.c > > +++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c > > @@ -233,6 +233,7 @@ static netdev_features_t ipoib_fix_features(struct net_device *dev, netdev_featu > > static int ipoib_change_mtu(struct net_device *dev, int new_mtu) > > { > > struct ipoib_dev_priv *priv = ipoib_priv(dev); > > + int ret = 0; > > > > /* dev->mtu > 2K ==> connected mode */ > > if (ipoib_cm_admin_enabled(dev)) { > > @@ -256,9 +257,23 @@ static int ipoib_change_mtu(struct net_device *dev, int new_mtu) > > ipoib_dbg(priv, "MTU must be smaller than the underlying " > > "link layer MTU - 4 (%u)\n", priv->mcast_mtu); > > > > - dev->mtu = min(priv->mcast_mtu, priv->admin_mtu); > > + new_mtu = min(priv->mcast_mtu, priv->admin_mtu); > > > > - return 0; > > + if (priv->rn_ops->ndo_change_mtu) { > > + bool carrier_status = netif_carrier_ok(dev); > > + > > + netif_carrier_off(dev); > > + > > + /* notify lower level on the real mtu */ > > + ret = priv->rn_ops->ndo_change_mtu(dev, new_mtu); > > + > > + if (carrier_status) > > + netif_carrier_on(dev); > > + } else { > > + dev->mtu = new_mtu; > > + } > > So we don't want dev->mtu to be updated if driver was registered? It is updated in ndo_change_mtu call. See nes. cxgb3/4 and mlx4/5 as an example. > > > + > > + return ret; > > } > > > > /* Called with an RCU read lock taken */ > > -- > > 2.12.2 > > > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <20170523092428.GK17751-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>]
* Re: [PATCH rdma-next] IB/IPoIB: Forward MTU change to driver below [not found] ` <20170523092428.GK17751-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org> @ 2017-05-23 11:13 ` Yuval Shaia 0 siblings, 0 replies; 5+ messages in thread From: Yuval Shaia @ 2017-05-23 11:13 UTC (permalink / raw) To: Leon Romanovsky Cc: Doug Ledford, linux-rdma-u79uwXL29TY76Z2rM5mHXA, Erez Shitrit On Tue, May 23, 2017 at 12:24:28PM +0300, Leon Romanovsky wrote: > On Tue, May 23, 2017 at 11:56:45AM +0300, Yuval Shaia wrote: > > On Tue, May 23, 2017 at 11:42:52AM +0300, Leon Romanovsky wrote: > > > From: Erez Shitrit <erezsh-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> > > > > > > This patch checks if there is a driver below that > > > > Is it "below" or "upper" in the driver hierarchy? > > The part which close to the HW. I called it "below". > > > > > > needs to be updated on the new MTU and calls it > > > accordingly. > > > > > > Signed-off-by: Erez Shitrit <erezsh-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> > > > Reviewed by: Alex Vesker <valex-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> > > > Signed-off-by: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > > > --- > > > drivers/infiniband/ulp/ipoib/ipoib_main.c | 19 +++++++++++++++++-- > > > 1 file changed, 17 insertions(+), 2 deletions(-) > > > > > > diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c > > > index 2869d1adb1de..28068140800c 100644 > > > --- a/drivers/infiniband/ulp/ipoib/ipoib_main.c > > > +++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c > > > @@ -233,6 +233,7 @@ static netdev_features_t ipoib_fix_features(struct net_device *dev, netdev_featu > > > static int ipoib_change_mtu(struct net_device *dev, int new_mtu) > > > { > > > struct ipoib_dev_priv *priv = ipoib_priv(dev); > > > + int ret = 0; > > > > > > /* dev->mtu > 2K ==> connected mode */ > > > if (ipoib_cm_admin_enabled(dev)) { > > > @@ -256,9 +257,23 @@ static int ipoib_change_mtu(struct net_device *dev, int new_mtu) > > > ipoib_dbg(priv, "MTU must be smaller than the underlying " > > > "link layer MTU - 4 (%u)\n", priv->mcast_mtu); > > > > > > - dev->mtu = min(priv->mcast_mtu, priv->admin_mtu); > > > + new_mtu = min(priv->mcast_mtu, priv->admin_mtu); > > > > > > - return 0; > > > + if (priv->rn_ops->ndo_change_mtu) { > > > + bool carrier_status = netif_carrier_ok(dev); > > > + > > > + netif_carrier_off(dev); > > > + > > > + /* notify lower level on the real mtu */ > > > + ret = priv->rn_ops->ndo_change_mtu(dev, new_mtu); > > > + > > > + if (carrier_status) > > > + netif_carrier_on(dev); > > > + } else { > > > + dev->mtu = new_mtu; > > > + } > > > > So we don't want dev->mtu to be updated if driver was registered? > > It is updated in ndo_change_mtu call. See nes. cxgb3/4 and mlx4/5 as an > example. > > > > > > + > > > + return ret; > > > } Reviewed-by: Yuval Shaia <yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> > > > > > > /* Called with an RCU read lock taken */ > > > -- > > > 2.12.2 > > > > > > -- > > > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > > > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > > > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH rdma-next] IB/IPoIB: Forward MTU change to driver below [not found] ` <20170523084252.16018-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> 2017-05-23 8:56 ` Yuval Shaia @ 2017-07-22 17:07 ` Doug Ledford 1 sibling, 0 replies; 5+ messages in thread From: Doug Ledford @ 2017-07-22 17:07 UTC (permalink / raw) To: Leon Romanovsky; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, Erez Shitrit [-- Attachment #1.1: Type: text/plain, Size: 712 bytes --] On 5/23/2017 4:42 AM, Leon Romanovsky wrote: > From: Erez Shitrit <erezsh-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> > > This patch checks if there is a driver below that > needs to be updated on the new MTU and calls it > accordingly. > > Signed-off-by: Erez Shitrit <erezsh-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> > Reviewed by: Alex Vesker <valex-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> > Signed-off-by: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> This has been accepted into 4.13-rc, thanks. -- Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> GPG Key ID: B826A3330E572FDD Key fingerprint = AE6B 1BDA 122B 23B4 265B 1274 B826 A333 0E57 2FDD [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 884 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2017-07-22 17:07 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-23 8:42 [PATCH rdma-next] IB/IPoIB: Forward MTU change to driver below Leon Romanovsky
[not found] ` <20170523084252.16018-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-05-23 8:56 ` Yuval Shaia
2017-05-23 9:24 ` Leon Romanovsky
[not found] ` <20170523092428.GK17751-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-05-23 11:13 ` Yuval Shaia
2017-07-22 17:07 ` Doug Ledford
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox