]> git.baikalelectronics.ru Git - kernel.git/commit
RDS: Fix congestion issues for loopback
authorAndy Grover <andy.grover@oracle.com>
Thu, 11 Mar 2010 13:49:59 +0000 (13:49 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 17 Mar 2010 04:16:55 +0000 (21:16 -0700)
commitc134efab87ca732c0ebf73ca63e0bfd335686a67
treed073317ace5a9ef948a826aed32e8b35f21e2193
parent9647f3254140032cfea01ce8e243b3fc9408117c
RDS: Fix congestion issues for loopback

We have two kinds of loopback: software (via loop transport)
and hardware (via IB). sw is used for 127.0.0.1, and doesn't
support rdma ops. hw is used for sends to local device IPs,
and supports rdma. Both are used in different cases.

For both of these, when there is a congestion map update, we
want to call rds_cong_map_updated() but not actually send
anything -- since loopback local and foreign congestion maps
point to the same spot, they're already in sync.

The old code never called sw loop's xmit_cong_map(),so
rds_cong_map_updated() wasn't being called for it. sw loop
ports would not work right with the congestion monitor.

Fixing that meant that hw loopback now would send congestion maps
to itself. This is also undesirable (racy), so we check for this
case in the ib-specific xmit code.

Signed-off-by: Andy Grover <andy.grover@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/rds/cong.c
net/rds/ib_send.c
net/rds/loop.c