[rds-devel] [git pull] quick fixes

Zach Brown zach.brown at oracle.com
Fri Jul 9 12:38:39 PDT 2010


Heya Andy!

Here are some quick fixes for the devel branch.  First, let's just get rid of the risk of section mismatches entirely by removing the __init and __exit annotation :).

I'm curious to hear what you think of the shutdown fix.  The premise is that we have a bug that can trigger a connection teardown while lots of sends are in flight.  That bug exposed this bug where we can have send completion processing race with connection shutdown.  We used to wait for the send ring to empty, but we don't do that now because of the risk of waiting forever for non-signaled send completions which are never processed.

It took some thinking, but I realized that we could just schedule completion processing every time we sleep on the rings as we shut down.  I think this solves it, and it keeps us from having to add any serialization between the shutdown and completion processing paths.

Now, on to that first bug..

- z

The following changes since commit ad380e8a5101d2579b849f7e383121ebff261444:
  Andy Grover (1):
        RDS/IB: Use SLAB_HWCACHE_ALIGN flag for kmem_cache_create()

are available in the git repository at:

  git://oss.oracle.com/git/zab/ofed-1.5-linux-2.6.git devel-fixes-jul-9-2010

Zach Brown (2):
      RDS: remove __init and __exit annotation
      RDS/IB: wait for the send ring to empty on connection shutdown

 net/rds/af_rds.c         |    4 ++--
 net/rds/connection.c     |    2 +-
 net/rds/ib.c             |    2 +-
 net/rds/ib.h             |   10 +++++-----
 net/rds/ib_cm.c          |   24 ++++++++++++++++++++----
 net/rds/ib_rdma.c        |    4 ++--
 net/rds/ib_recv.c        |    2 +-
 net/rds/ib_sysctl.c      |    2 +-
 net/rds/iw.c             |    2 +-
 net/rds/iw.h             |    6 +++---
 net/rds/iw_recv.c        |    2 +-
 net/rds/iw_sysctl.c      |    2 +-
 net/rds/rdma_transport.c |    4 ++--
 net/rds/rds.h            |   10 +++++-----
 net/rds/stats.c          |    2 +-
 net/rds/sysctl.c         |    2 +-
 net/rds/tcp.c            |    2 +-
 net/rds/tcp.h            |    6 +++---
 net/rds/tcp_listen.c     |    2 +-
 net/rds/tcp_recv.c       |    2 +-
 net/rds/threads.c        |    2 +-
 21 files changed, 55 insertions(+), 39 deletions(-)




More information about the rds-devel mailing list