All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH for-next 0/9] mlx4 changes in virtual GID management
@ 2015-03-29 13:51 Or Gerlitz
       [not found] ` <1427637093-6711-1-git-send-email-ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
  0 siblings, 1 reply; 34+ messages in thread
From: Or Gerlitz @ 2015-03-29 13:51 UTC (permalink / raw)
  To: Roland Dreier
  Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, Tal Alon, Amir Vadai,
	Yishai Hadas, Or Gerlitz

Under the existing implementation for virtual GIDs, if the SM is not 
reachable or incurs a delayed response, or if the VF is probed into a
VM before their GUID is registered with the SM, there exists a window 
in time in which the VF sees an incorrect GID, i.e., not the GID that 
was intended by the admin. This results in exposing a temporal identity 
to the VF.

Moreover, a subsequent change in the alias GID causes a spec-incompliant
change to the VF identity. Some guest operating systems, such as Windows,
cannot tolerate such changes.

This series solves above problem by exposing the admin desired value instead 
of the value that was approved by the SM. As long as the SM doesn't approve 
the GID, the VF would see its link as down.

In addition, we request GIDs from the SM on demand, i.e., when a VF actually
needs them, and release them when the GIDs are no longer in use. In cloud
environments, this is useful for GID migrations, in which a GID is assigned to
a VF on the destination HCA, while the VF on the source HCA is shut down (but
the GID was not administratively released).

For reasons of compatibility, an explicit admin request to set/change a GUID
entry is done immediately, regardless of whether the VF is active or not. This
allows administrators to change the GUID without the need to unbind/bind the VF.

In addition, the existing implementation doesn't support a persistency
mechanism to retry a GUID request when the SM has rejected it for any reason.
The PF driver shall keep trying to acquire the specified GUID indefinitely by
utilizing an exponential back off scheme, this should be managed per GUID and
be aligned with other incoming admin requests.

This ability needed especially for the on-demand GUID feature. In this case, we
must manage the GUID's status per entry and handle cases that some entries are
temporarily rejected.

The first patch adds the persistency support and is pre-requisites for the
series.  Further patches make the change to use the admin VF behavior as
described above.

Finally, the default mode is changed to be HOST assigned instead of SM
assigned. This is the expected operational mode, because it doesn't depend on
SM availability as described above.

Yishai and Or.

Yishai Hadas (9):
  IB/mlx4: Alias GUID adding persistency support
  net/mlx4_core: Manage alias GUID per VF
  net/mlx4_core: Set initial admin GUIDs for VFs
  IB/mlx4: Manage admin alias GUID upon admin request
  IB/mlx4: Change init flow to request alias GUIDs for active VFs
  IB/mlx4: Request alias GUID on demand
  net/mlx4_core: Raise slave shutdown event upon FLR
  net/mlx4_core: Return the admin alias GUID upon host view request
  IB/mlx4: Change alias guids default to be host assigned

 drivers/infiniband/hw/mlx4/alias_GUID.c   |  468 +++++++++++++++++++++--------
 drivers/infiniband/hw/mlx4/main.c         |   26 ++-
 drivers/infiniband/hw/mlx4/mlx4_ib.h      |   14 +-
 drivers/infiniband/hw/mlx4/sysfs.c        |   44 +--
 drivers/net/ethernet/mellanox/mlx4/cmd.c  |   42 ++-
 drivers/net/ethernet/mellanox/mlx4/eq.c   |    2 +
 drivers/net/ethernet/mellanox/mlx4/main.c |   39 +++
 drivers/net/ethernet/mellanox/mlx4/mlx4.h |    1 +
 include/linux/mlx4/device.h               |    4 +
 9 files changed, 459 insertions(+), 181 deletions(-)

--
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] 34+ messages in thread

end of thread, other threads:[~2015-04-08 13:03 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-29 13:51 [PATCH for-next 0/9] mlx4 changes in virtual GID management Or Gerlitz
     [not found] ` <1427637093-6711-1-git-send-email-ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-03-29 13:51   ` [PATCH for-next 1/9] IB/mlx4: Alias GUID adding persistency support Or Gerlitz
2015-03-29 13:51   ` [PATCH for-next 2/9] net/mlx4_core: Manage alias GUID per VF Or Gerlitz
2015-03-29 13:51   ` [PATCH for-next 3/9] net/mlx4_core: Set initial admin GUIDs for VFs Or Gerlitz
     [not found]     ` <1427637093-6711-4-git-send-email-ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-03-30 17:16       ` Jason Gunthorpe
     [not found]         ` <20150330171631.GA1152-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-03-31  9:54           ` Or Gerlitz
2015-03-29 13:51   ` [PATCH for-next 4/9] IB/mlx4: Manage admin alias GUID upon admin request Or Gerlitz
2015-03-29 13:51   ` [PATCH for-next 5/9] IB/mlx4: Change init flow to request alias GUIDs for active VFs Or Gerlitz
2015-03-29 13:51   ` [PATCH for-next 6/9] IB/mlx4: Request alias GUID on demand Or Gerlitz
2015-03-29 13:51   ` [PATCH for-next 7/9] net/mlx4_core: Raise slave shutdown event upon FLR Or Gerlitz
2015-03-29 13:51   ` [PATCH for-next 8/9] net/mlx4_core: Return the admin alias GUID upon host view request Or Gerlitz
2015-03-29 13:51   ` [PATCH for-next 9/9] IB/mlx4: Change alias guids default to be host assigned Or Gerlitz
2015-03-30 16:17   ` [PATCH for-next 0/9] mlx4 changes in virtual GID management Or Gerlitz
     [not found]     ` <CAJ3xEMj0T8QXBQdVHmfEFMXwjAFVD-O6ywAwyyVY+M3oRLzAVA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-03-31  3:36       ` David Miller
     [not found]         ` <20150330.233602.155832546277570456.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2015-03-31  3:47           ` Roland Dreier
     [not found]             ` <CAL1RGDUmDGCGdTBeTTBiHygO5UgEbRm_Qgxtx-+bxo1vg1v-8g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-03-31  9:13               ` Sagi Grimberg
     [not found]                 ` <551A6556.9030708-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-03-31 18:46                   ` Jason Gunthorpe
2015-03-31 11:22               ` Or Gerlitz
     [not found]                 ` <CAJ3xEMjfbxt2Ouh4bhuf3_LMc7qY807h6FryvdCr0rr_gdiZAw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-03-31 12:49                   ` Christoph Lameter
     [not found]                     ` <alpine.DEB.2.11.1503310735380.13128-gkYfJU5Cukgdnm+yROfE0A@public.gmane.org>
2015-03-31 12:57                       ` Hal Rosenstock
     [not found]                         ` <551A99D4.7060703-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-03-31 15:49                           ` Christoph Lameter
2015-03-31 15:50                       ` David Miller
     [not found]                         ` <20150331.115052.1321302787804579694.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2015-03-31 16:29                           ` Christoph Lameter
2015-03-31 15:48                   ` David Miller
     [not found]                     ` <20150331.114824.651005354305268415.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2015-03-31 17:27                       ` Hefty, Sean
     [not found]                         ` <1828884A29C6694DAF28B7E6B8A82373A8FBB790-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-03-31 20:28                           ` Or Gerlitz
2015-03-31 21:33                             ` Hefty, Sean
     [not found]                               ` <1828884A29C6694DAF28B7E6B8A82373A8FBBCE3-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-02 14:32                                 ` Or Gerlitz
     [not found]                                   ` <CAJ3xEMgptECgnWXfW7wN8sjqRfUvzF3tCN=Lj8MZtdOG8yg3jQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-02 22:31                                     ` ira.weiny
     [not found]                                       ` <20150402223135.GA12588-W4f6Xiosr+yv7QzWx2u06xL4W9x8LtSr@public.gmane.org>
2015-04-05  5:15                                         ` Or Gerlitz
     [not found]                                           ` <CAJ3xEMgsHAFJomuCN+EzMcYaxTOTQqHuDdr9zztuO9pH9QicXw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-05 14:51                                             ` Roland Dreier
     [not found]                                               ` <CAG4TOxOv98YjNOi9MbKHiHg6aLw75XRfasMaScdRccRitiE3-g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-05 20:46                                                 ` David Miller
     [not found]                                                   ` <20150405.164626.1878934248335902055.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2015-04-07 17:12                                                     ` Jason Gunthorpe
2015-04-08 13:03                                                 ` Or Gerlitz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.