02 Nov, 2009

12 commits


31 Oct, 2009

12 commits

  • Move receive processing from event handler to a tasklet.
    This should help prevent hangcheck timer from going off
    when RDS is under heavy load.

    Signed-off-by: Andy Grover
    Signed-off-by: David S. Miller

    Andy Grover
     
  • This issue was discovered by HP's Pradeep and fixed in OFED
    1.3, but not fixed in later versions, since the fix's implementation
    was not immediately applyable to the later code. This patch should
    do the trick for 1.4+ codebases.

    Signed-off-by: Andy Grover
    Signed-off-by: David S. Miller

    Andy Grover
     
  • Remove explicit destruction of passive connection when destroying
    active end of the connection. The passive end is also on the
    device's connection list, and will thus be cleaned up properly.
    Panic was caused by trying to clean it up twice.

    Signed-off-by: Andy Grover
    Signed-off-by: David S. Miller

    Andy Grover
     
  • "At rds_ib_recv_refill_one(), it first executes atomic_read(&rds_ib_allocation)
    for if-condition checking,

    and then executes atomic_inc(&rds_ib_allocation) if the condition was
    not satisfied.

    However, if any other code which updates rds_ib_allocation executes
    between these two atomic operation executions,
    it seems that it may result race condition. (especially when
    rds_ib_allocation + 1 == rds_ib_sysctl_max_recv_allocation)"

    This patch fixes this by using atomic_inc_unless to eliminate the
    possibility of allocating more than rds_ib_sysctl_max_recv_allocation
    and then decrementing the count if the allocation fails. It also
    makes an identical change to the iwarp transport.

    Reported-by: Shin Hong
    Signed-off-by: Andy Grover
    Signed-off-by: David S. Miller

    Andy Grover
     
  • RDS currently supports a GET_MR sockopt to establish a
    memory region (MR) for a chunk of memory. However, the fastreg
    method ties a MR to a particular destination. The GET_MR_FOR_DEST
    sockopt allows the remote machine to be specified, and thus
    support for fastreg (aka FRWRs).

    Note that this patch does *not* do all of this - it simply
    implements the new sockopt in terms of the old one, so applications
    can begin to use the new sockopt in preparation for cutover to
    FRWRs.

    Signed-off-by: Andy Grover
    Signed-off-by: David S. Miller

    Andy Grover
     
  • - Don't call rtnl_link_unregister if rtnl_link_register fails
    - Set .priv_size so we aren't stomping on uninitialized memory
    when we use netdev_priv, on bond devices created with
    ip link add type bond.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • This implements a basic set of rtnl link ops and takes advantage of
    the fact that rtnl_link_unregister kills all of the surviving
    devices to all us to kill bond_free_all. A module alias
    is added so ip link add can pull in the bonding module.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • Manually inline the code from bond_deinit to bond_uninit. bond_uninit
    is the only caller and it is short.

    Move the call of bond_release_all from the netdev notifier into
    bond_uninit. The call site is effectively the same and performing
    the call explicitly allows all the paths for destroying a
    bonding device to behave the same way.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • Stop calling dev_get_by_name to see if the bond device already
    exists. register_netdevice already does that.

    Stop calling bond_deinit if register_netdevice fails as bond_uninit
    is guaranteed to be called if bond_init succeeds.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • This patch delegates the work of creating the sysfs groups
    to the netdev layer and ultimately to the device layer. This
    closes races between uevents.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • This isn't beautifully abstracted, but it is simple,
    simplifies uses and so far is only needed for the bonding driver.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     

30 Oct, 2009

16 commits