Message ID | 1478003653-16248-1-git-send-email-leon@kernel.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
On Tue, Nov 01, 2016 at 02:34:13PM +0200, Leon Romanovsky wrote: > From: Erez Shitrit <erezsh@mellanox.com> > > Currently when the card doesn't support IB_QP_CREATE_USE_GFP_NOIO it warns > on every QP creation, It becomes worse when driver works in connected mode > we will see one print on each new connection, instead do it once. > > Fixes: 09b93088d7 ('Add a QP creation flag to use GFP_NOIO allocations') > Signed-off-by: Erez Shitrit <erezsh@mellanox.com> > Signed-off-by: Leon Romanovsky <leon@kernel.org> > --- > drivers/infiniband/ulp/ipoib/ipoib_cm.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c > index 4ad297d..917393b 100644 > --- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c > +++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c > @@ -1053,8 +1053,8 @@ static struct ib_qp *ipoib_cm_create_tx_qp(struct net_device *dev, struct ipoib_ > > tx_qp = ib_create_qp(priv->pd, &attr); > if (PTR_ERR(tx_qp) == -EINVAL) { > - ipoib_warn(priv, "can't use GFP_NOIO for QPs on device %s, using GFP_KERNEL\n", > - priv->ca->name); > + pr_warn_once("can't use GFP_NOIO for QPs on device %s, using GFP_KERNEL\n", > + priv->ca->name); But it will still re-print it for different device, right? > attr.create_flags &= ~IB_QP_CREATE_USE_GFP_NOIO; > tx_qp = ib_create_qp(priv->pd, &attr); > } > -- > 2.7.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > the body of a message to majordomo@vger.kernel.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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Nov 01, 2016 at 03:48:24PM +0200, Yuval Shaia wrote: > On Tue, Nov 01, 2016 at 02:34:13PM +0200, Leon Romanovsky wrote: > > From: Erez Shitrit <erezsh@mellanox.com> > > > > Currently when the card doesn't support IB_QP_CREATE_USE_GFP_NOIO it warns > > on every QP creation, It becomes worse when driver works in connected mode > > we will see one print on each new connection, instead do it once. > > > > Fixes: 09b93088d7 ('Add a QP creation flag to use GFP_NOIO allocations') > > Signed-off-by: Erez Shitrit <erezsh@mellanox.com> > > Signed-off-by: Leon Romanovsky <leon@kernel.org> > > --- > > drivers/infiniband/ulp/ipoib/ipoib_cm.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c > > index 4ad297d..917393b 100644 > > --- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c > > +++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c > > @@ -1053,8 +1053,8 @@ static struct ib_qp *ipoib_cm_create_tx_qp(struct net_device *dev, struct ipoib_ > > > > tx_qp = ib_create_qp(priv->pd, &attr); > > if (PTR_ERR(tx_qp) == -EINVAL) { > > - ipoib_warn(priv, "can't use GFP_NOIO for QPs on device %s, using GFP_KERNEL\n", > > - priv->ca->name); > > + pr_warn_once("can't use GFP_NOIO for QPs on device %s, using GFP_KERNEL\n", > > + priv->ca->name); > > But it will still re-print it for different device, right? Good question, pr_warn_once is defined as alias to printk_once [1]. That printk_once is macro too [2] which will define local static read_once variable. [1] http://lxr.free-electrons.com/source/include/linux/printk.h#L359 [2] http://lxr.free-electrons.com/source/include/linux/printk.h#L322 > > > attr.create_flags &= ~IB_QP_CREATE_USE_GFP_NOIO; > > tx_qp = ib_create_qp(priv->pd, &attr); > > } > > -- > > 2.7.4 > > > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > > the body of a message to majordomo@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Nov 01, 2016 at 04:14:54PM +0200, Leon Romanovsky wrote: > On Tue, Nov 01, 2016 at 03:48:24PM +0200, Yuval Shaia wrote: > > On Tue, Nov 01, 2016 at 02:34:13PM +0200, Leon Romanovsky wrote: > > > From: Erez Shitrit <erezsh@mellanox.com> > > > > > > Currently when the card doesn't support IB_QP_CREATE_USE_GFP_NOIO it warns > > > on every QP creation, It becomes worse when driver works in connected mode > > > we will see one print on each new connection, instead do it once. > > > > > > Fixes: 09b93088d7 ('Add a QP creation flag to use GFP_NOIO allocations') > > > Signed-off-by: Erez Shitrit <erezsh@mellanox.com> > > > Signed-off-by: Leon Romanovsky <leon@kernel.org> > > > --- > > > drivers/infiniband/ulp/ipoib/ipoib_cm.c | 4 ++-- > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > > > diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c > > > index 4ad297d..917393b 100644 > > > --- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c > > > +++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c > > > @@ -1053,8 +1053,8 @@ static struct ib_qp *ipoib_cm_create_tx_qp(struct net_device *dev, struct ipoib_ > > > > > > tx_qp = ib_create_qp(priv->pd, &attr); > > > if (PTR_ERR(tx_qp) == -EINVAL) { > > > - ipoib_warn(priv, "can't use GFP_NOIO for QPs on device %s, using GFP_KERNEL\n", > > > - priv->ca->name); > > > + pr_warn_once("can't use GFP_NOIO for QPs on device %s, using GFP_KERNEL\n", > > > + priv->ca->name); > > > > But it will still re-print it for different device, right? > > Good question, > > pr_warn_once is defined as alias to printk_once [1]. That printk_once is > macro too [2] which will define local static read_once variable. > > [1] http://lxr.free-electrons.com/source/include/linux/printk.h#L359 > [2] http://lxr.free-electrons.com/source/include/linux/printk.h#L322 If only one HCA model is installed on the system then it should be fine, but wonder if more then one, would we like to see the warning again? i think yes. > > > > > > attr.create_flags &= ~IB_QP_CREATE_USE_GFP_NOIO; > > > tx_qp = ib_create_qp(priv->pd, &attr); > > > } > > > -- > > > 2.7.4 > > > > > > -- > > > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > > > the body of a message to majordomo@vger.kernel.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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Nov 01, 2016 at 04:34:31PM +0200, Yuval Shaia wrote: > On Tue, Nov 01, 2016 at 04:14:54PM +0200, Leon Romanovsky wrote: > > On Tue, Nov 01, 2016 at 03:48:24PM +0200, Yuval Shaia wrote: > > > On Tue, Nov 01, 2016 at 02:34:13PM +0200, Leon Romanovsky wrote: > > > > From: Erez Shitrit <erezsh@mellanox.com> > > > > > > > > Currently when the card doesn't support IB_QP_CREATE_USE_GFP_NOIO it warns > > > > on every QP creation, It becomes worse when driver works in connected mode > > > > we will see one print on each new connection, instead do it once. > > > > > > > > Fixes: 09b93088d7 ('Add a QP creation flag to use GFP_NOIO allocations') > > > > Signed-off-by: Erez Shitrit <erezsh@mellanox.com> > > > > Signed-off-by: Leon Romanovsky <leon@kernel.org> > > > > --- > > > > drivers/infiniband/ulp/ipoib/ipoib_cm.c | 4 ++-- > > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > > > > > diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c > > > > index 4ad297d..917393b 100644 > > > > --- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c > > > > +++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c > > > > @@ -1053,8 +1053,8 @@ static struct ib_qp *ipoib_cm_create_tx_qp(struct net_device *dev, struct ipoib_ > > > > > > > > tx_qp = ib_create_qp(priv->pd, &attr); > > > > if (PTR_ERR(tx_qp) == -EINVAL) { > > > > - ipoib_warn(priv, "can't use GFP_NOIO for QPs on device %s, using GFP_KERNEL\n", > > > > - priv->ca->name); > > > > + pr_warn_once("can't use GFP_NOIO for QPs on device %s, using GFP_KERNEL\n", > > > > + priv->ca->name); > > > > > > But it will still re-print it for different device, right? > > > > Good question, > > > > pr_warn_once is defined as alias to printk_once [1]. That printk_once is > > macro too [2] which will define local static read_once variable. > > > > [1] http://lxr.free-electrons.com/source/include/linux/printk.h#L359 > > [2] http://lxr.free-electrons.com/source/include/linux/printk.h#L322 > > If only one HCA model is installed on the system then it should be fine, > but wonder if more then one, would we like to see the warning again? i think > yes. It is correct and valid question and not for the multiple devices only. Additional thing which was missed in such a trivial patch is the lost of context which is printed by ipoib_warn and doesn't print in the case of pr_warn. Thanks for pointing and investing time in the review. Doug, Please drop it. We will respin it. > > > > > > > > > > attr.create_flags &= ~IB_QP_CREATE_USE_GFP_NOIO; > > > > tx_qp = ib_create_qp(priv->pd, &attr); > > > > } > > > > -- > > > > 2.7.4 > > > > > > > > -- > > > > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > > > > the body of a message to majordomo@vger.kernel.org > > > > More majordomo info at http://vger.kernel.org/majordomo-info.html > >
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c index 4ad297d..917393b 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c @@ -1053,8 +1053,8 @@ static struct ib_qp *ipoib_cm_create_tx_qp(struct net_device *dev, struct ipoib_ tx_qp = ib_create_qp(priv->pd, &attr); if (PTR_ERR(tx_qp) == -EINVAL) { - ipoib_warn(priv, "can't use GFP_NOIO for QPs on device %s, using GFP_KERNEL\n", - priv->ca->name); + pr_warn_once("can't use GFP_NOIO for QPs on device %s, using GFP_KERNEL\n", + priv->ca->name); attr.create_flags &= ~IB_QP_CREATE_USE_GFP_NOIO; tx_qp = ib_create_qp(priv->pd, &attr); }