]> www.infradead.org Git - users/jedix/linux-maple.git/commit
rds: make sure base connection is up on both sides
authorAjaykumar Hotchandani <ajaykumar.hotchandani@oracle.com>
Tue, 5 May 2015 03:09:42 +0000 (20:09 -0700)
committerMukesh Kacker <mukesh.kacker@oracle.com>
Wed, 21 Oct 2015 16:06:56 +0000 (09:06 -0700)
commitcf80f396af3a866a1c147a8d04cf5be040e5061b
tree20f988664cf01ff45a09badc6b92d9048bd09f3e
parent6bdb943487ba944d59ae21d276c539d5824a1323
rds: make sure base connection is up on both sides

Current RDS active side requires zero lane path records for establishing
non-zero lane connection. For this reason, active side makes sure to
have zero lane connection up before establishing non-zero lane
connection. Passive side does not require to fetch path records, so it
does not have this check.

This has possibility of connection having non-ideal path records in
following scenario:
- Host1 had PORT_UP event.
- Lane0 and Lane6 connection went down.
- Lane0 connection came up.
- Host1 sent connection request for Lane6.
- Host2 had PORT_UP event.
- Lane0 and Lane6 connections went down.
- Host2 sent DREQ for Lane0.
- Since Lane6 connection is not up, it does not require to do anything.
- Host2 received connection request from host1 having old path records
  for Lane6.
- Lane6 connection got established on old path records.

Following are impacts of having connections with non-ideal path records:
- minor performance hit because of extra hop with ISL path
- in port failure scenario, it impacts connections which are not related
  to that port.

With this patch we make sure that base connection is up on passive side
as well before allowing to establish connection.

(This is port of UEK2 commit 7ab7ef255a)

Orabug: 21675157

Tested-by: Michael Nowak <michael.nowak@oracle.com>
Signed-off-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@oracle.com>
Acked-by: Qing Huang <qing.huang@oracle.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
net/rds/ib_cm.c