netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 for-next 0/3] IB: Use GFP_NOIO calls in IPoIB connected mode TX path
@ 2014-05-11 12:15 Or Gerlitz
       [not found] ` <1399810512-30774-1-git-send-email-ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Or Gerlitz @ 2014-05-11 12:15 UTC (permalink / raw)
  To: roland-DgEjT+Ai2ygdnm+yROfE0A, amirv-VPRAkNaXOzVWk0Htik3J/w
  Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, saeedm-VPRAkNaXOzVWk0Htik3J/w,
	Or Gerlitz, Jiri Kosina, Mel Gorman,
	netdev-u79uwXL29TY76Z2rM5mHXA, linux-kernel

Hi Roland,

This series is a refactored form of the one posted by Jiri Kosina 
to LKML and netdev according to the discussion that followed
and the guidelines you provided here https://lkml.org/lkml/2014/3/5/250

Basically, the functionality changes introduced by this series fully 
reside on the IB side of things, so I am only posting the actual patches 
to linux-rdma with CC on the cover-letter to the lists that were on V0.

Or.

As described in the change log of patch #2 this series comes to address 
a problem whereby NFS client writes would enter uninterruptible sleep 
forever. The issue happened when using NFS over IPoIB connected mode.

The problem encountered was described as follows: it's not memory
reclamation that is the problem as such. There is an indirect dependency
between network filesystems writing back pages and ipoib_cm_tx_init()
due to how a kworker is used. Page reclaim cannot make forward progress
until ipoib_cm_tx_init() succeeds and it is stuck in page reclaim itself
waiting for network transmission. Ordinarily this situation may be
avoided by having the caller use GFP_NOFS but ipoib_cm_tx_init()
does not have that information.

To address this, we take a more general approach vs. V0 and generalize 
the solution such that when the new QP creation flag is provided, the
HW driver should use a GFP_NOIO for the memory allocations related
to the new QP.

changes from V0:
 - removed the module param for IPoIB, the connected mode code would
   attempt to use GFP_NOIO for the QP creation and fallback to GFP_KERNEL
   (as before) if the HW driver doesn't support that. This approach will let
   

Jiri Kosina (1):
  mlx4: Enhance the QP creation path to use a given GFP directive

Or Gerlitz (2):
  IB: Return error when QP creation are provided for driver not supporting that
  IB: Add a QP creation flag to allow specifying a NOIO allocation directive

 drivers/infiniband/hw/mlx4/cq.c                    |    6 ++--
 drivers/infiniband/hw/mlx4/mlx4_ib.h               |    1 +
 drivers/infiniband/hw/mlx4/qp.c                    |   30 +++++++++++--------
 drivers/infiniband/hw/mlx4/srq.c                   |    7 ++--
 drivers/infiniband/hw/qib/qib_qp.c                 |    3 +-
 drivers/infiniband/hw/usnic/usnic_ib_verbs.c       |    3 ++
 drivers/infiniband/ulp/ipoib/ipoib_cm.c            |   19 ++++++++++--
 drivers/net/ethernet/mellanox/mlx4/alloc.c         |   27 +++++++++--------
 drivers/net/ethernet/mellanox/mlx4/cq.c            |    4 +-
 drivers/net/ethernet/mellanox/mlx4/en_rx.c         |    6 ++--
 drivers/net/ethernet/mellanox/mlx4/en_tx.c         |    2 +-
 drivers/net/ethernet/mellanox/mlx4/icm.c           |    7 ++--
 drivers/net/ethernet/mellanox/mlx4/icm.h           |    3 +-
 drivers/net/ethernet/mellanox/mlx4/mlx4.h          |    4 +-
 drivers/net/ethernet/mellanox/mlx4/mr.c            |   17 ++++++-----
 drivers/net/ethernet/mellanox/mlx4/qp.c            |   20 ++++++------
 .../net/ethernet/mellanox/mlx4/resource_tracker.c  |    4 +-
 drivers/net/ethernet/mellanox/mlx4/srq.c           |    4 +-
 include/linux/mlx4/device.h                        |   10 ++++--
 include/rdma/ib_verbs.h                            |    1 +
 20 files changed, 104 insertions(+), 74 deletions(-)

Cc: Jiri Kosina <jkosina-AlSwsSmVLrQ@public.gmane.org>
Cc: Mel Gorman <mgorman-l3A5Bk7waGM@public.gmane.org>
Cc: netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: linux-kernel <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
--
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] 7+ messages in thread

end of thread, other threads:[~2014-05-28 14:12 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-11 12:15 [PATCH v1 for-next 0/3] IB: Use GFP_NOIO calls in IPoIB connected mode TX path Or Gerlitz
     [not found] ` <1399810512-30774-1-git-send-email-ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2014-05-13 11:38   ` Jiri Kosina
     [not found]     ` <alpine.LNX.2.00.1405131338030.16459-ztGlSCb7Y1iN3ZZ/Hiejyg@public.gmane.org>
2014-05-17 20:52       ` Or Gerlitz
2014-05-20  1:04         ` Roland Dreier
     [not found]           ` <CAL1RGDUoEFF=fR-e-fc1v0yHp8sxaidBnO_2iiAFThgZNvCcfQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-05-26 10:52             ` Jiri Kosina
2014-05-28 13:57               ` Or Gerlitz
     [not found]                 ` <CAG4TOxMsq+okTzDrgTetDeXnAgQ+iGCZLbjAZx1iBD0xDmce6g@mail.gmail.com>
     [not found]                   ` <CAG4TOxMsq+okTzDrgTetDeXnAgQ+iGCZLbjAZx1iBD0xDmce6g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-05-28 14:12                     ` Or Gerlitz

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).