• Andy Grover's avatar
    RDS: Fix congestion issues for loopback · 2e7b3b99
    Andy Grover authored
    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: default avatarAndy Grover <andy.grover@oracle.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2e7b3b99
loop.c 5.37 KB