1. 13 2月, 2007 4 次提交
  2. 11 2月, 2007 7 次提交
    • S
      IB: Remove redundant "_wq" from workqueue names · c7f743a6
      Sean Hefty 提交于
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      c7f743a6
    • S
      RDMA/cma: Increment port number after close to avoid re-use · aedec080
      Sean Hefty 提交于
      Randomize the starting port number and avoid re-using port values
      immediately after they are closed.  Instead keep track of the last
      port value used and increment it every time a new port number is
      assigned, to better replicate other port spaces.
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      aedec080
    • A
      IB/ehca: Fix memleak on module unloading · 65e5c026
      Akinobu Mita 提交于
      Percpu data is not freed on module unloading.
      
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Christoph Raisch <raisch@de.ibm.com>
      Signed-off-by: NAkinobu Mita <akinobu.mita@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Acked-by: NHoang-Nam Nguyen <hnguyen@de.ibm.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      65e5c026
    • D
      IB/mthca: Work around gcc bug on sparc64 · 6bdd61d8
      David Howells 提交于
      For some reason gcc-3.4.5 on sparc64 does:
      
       WARNING: "____ilog2_NaN" [drivers/infiniband/hw/mthca/ib_mthca.ko] undefined!
      
      Points to note:
      
       (1) The asm volatile flush/flushw are just markers for viewing what comes out
           in the assembly; removing them has no effect on the result.
      
       (2) Changing almost anything else in dwh__mthca_arbel_init_srq_context() or
           dwh__mthca_alloc_srq() causes the problem to go away.
      
      The compiler command line issued by the kernel build is:
      
      /opt/crosstool/gcc-3.4.5-glibc-2.3.6/sparc64-unknown-linux-gnu/bin/sparc64-unknown-linux-gnu-gcc -fno-strict-aliasing -fno-common -Os -m64 -mno-fpu -mcpu=ultrasparc -mcmodel=medlow -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wa,--undeclared-regs -pg -fno-omit-frame-pointer -fno-optimize-sibling-calls -fasynchronous-unwind-tables -g  -c -o drivers/infiniband/hw/mthca/.tmp_mthca_srq.o drivers/infiniband/hw/mthca/mthca_srq.c
      
      This can be reduced to this whilst still retaining the problem:
      
      /opt/crosstool/gcc-3.4.5-glibc-2.3.6/sparc64-unknown-linux-gnu/bin/sparc64-unknown-linux-gnu-gcc -m64 -c -o drivers/infiniband/hw/mthca/mthca_srq.o drivers/infiniband/hw/mthca/mthca_srq.c -Os
      
      Removing -Os or changing it to -O or -O0 thru -O6 gets rid of the problem.
      
      This patch to the kernel code fixes the problem:
      
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      6bdd61d8
    • M
      IPoIB: Connected mode experimental support · 839fcaba
      Michael S. Tsirkin 提交于
      The following patch adds experimental support for IPoIB connected
      mode, as defined by the draft from the IETF ipoib working group.  The
      idea is to increase performance by increasing the MTU from the maximum
      of 2K (theoretically 4K) supported by IPoIB on top of UD.  With this
      code, I'm able to get 800MByte/sec or more with netperf without
      options on a Mellanox 4x back-to-back DDR system.
      
      Some notes on code:
      1. SRQ is used for scalability to large cluster sizes
      2. Only RC connections are used (UC does not support SRQ now)
      3. Retry count is set to 0 since spec draft warns against retries
      4. Each connection is used for data transfers in only 1 direction, so
         each connection is either active(TX) or passive (RX).  2 sides that
         want to communicate create 2 connections.
      5. Each active (TX) connection has a separate CQ for send completions -
         this keeps the code simple without CQ resize and other tricks
      6. To detect stale passive side connections (where the remote side is
         down), we keep an LRU list of passive connections (updated once per
         second per connection) and destroy a connection after it has been
         unused for several seconds. The LRU rule makes it possible to avoid
         scanning connections that have recently been active.
      Signed-off-by: NMichael S. Tsirkin <mst@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      839fcaba
    • A
      IB/core: Use ARRAY_SIZE macro for mandatory_table · 9a6b090c
      Ahmed S. Darwish 提交于
      Use ARRAY_SIZE() macro already defined in kernel.h instead of open
      coding equivalent code.
      Signed-off-by: NAhmed S. Darwish <darwish.07@gmail.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      9a6b090c
    • R
      IB/mthca: Use correct structure size in call to memset() · 99d4f22e
      Roland Dreier 提交于
      When clearing the ib_ah_attr parameter in to_ib_ah_attr(), use sizeof
      *ib_ah_attr instead of sizeof *path.
      
      Pointed out by Jack Morgenstein <jackm@mellanox.co.il>.
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      99d4f22e
  3. 10 2月, 2007 1 次提交
  4. 08 2月, 2007 1 次提交
  5. 05 2月, 2007 5 次提交
    • H
      IB/ehca: Remove obsolete prototypes · b45bfcc1
      Hoang-Nam Nguyen 提交于
      Remove prototypes for functions that don't exist.
      Signed-off-by: NHoang-Nam Nguyen <hnguyen@de.ibm.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      b45bfcc1
    • H
      IB/ehca: Remove use of do_mmap() · 4c34bdf5
      Hoang-Nam Nguyen 提交于
      This patch removes do_mmap() from ehca:
       - Call remap_pfn_range() for hardware register block
       - Use vm_insert_page() to register memory allocated for completion
         queues and queue pairs
       - The actual mmap() call/trigger is now controlled by user space,
         ie. libehca
      Signed-off-by: NHoang-Nam Nguyen <hnguyen@de.ibm.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      4c34bdf5
    • S
      RDMA/addr: Handle ethernet neighbour updates during route resolution · 1f126670
      Steve Wise 提交于
      The iWARP connection manager uses the ib_addr services to do route
      resolution (neighbour discovery in the IP world).  The ib_addr
      netevent callback routine, however, currently only acts on InfiniBand
      neighbour updates.  It needs to act on ethernet neighbour updates as
      well.
      
      This patch just removes filtering on device type altogether and will
      trigger on any neighour updates where the nud_type is valid.  This
      simplifies the code some.
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      1f126670
    • I
      IB/srp: Don't wait for response when QP is in error state. · 1033ff67
      Ishai Rabinovitz 提交于
      When there is a call to send_tsk_mgmt SRP posts a send and waits for 5
      seconds to get a response.
      
      When the QP is in the error state it is obvious that there will be no
      response so it is quite useless to wait.  In fact, the timeout causes
      SRP to wait a long time to reconnect when a QP error occurs. (Each
      abort and each reset_device calls send_tsk_mgmt, which waits for the
      timeout).  The following patch solves this problem by identifying the
      failure and returning an immediate error code.
      Signed-off-by: NIshai Rabinovitz <ishai@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      1033ff67
    • M
      IB: Return qp pointer as part of ib_wc · 062dbb69
      Michael S. Tsirkin 提交于
      struct ib_wc currently only includes the local QP number: this matches
      the IB spec, but seems mostly useless. The following patch replaces
      this with the pointer to qp itself, and updates all low level drivers
      and all users.
      
      This has the following advantages:
      - Ability to get a per-qp context through wc->qp->qp_context
      - Existing drivers already have the qp pointer ready in poll cq, so
        this change actually saves a tiny bit (extra memory read) on data path
        (for ehca it would actually be expensive to find the QP pointer when
        polling a CQ, but ehca does not support SRQ so we can leave wc->qp as
        NULL for ehca)
      - Users that need the QP number can still get it through wc->qp->qp_num
      
      Use case:
      
      In IPoIB connected mode code, I have a common CQ shared by multiple
      QPs.  To track connection usage, I need a way to get at some per-QP
      context upon the completion, and I would like to avoid allocating
      context object per work request just to stick a QP pointer into it.
      With this code, I can just use wc->qp->qp_context.
      Signed-off-by: NMichael S. Tsirkin <mst@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      062dbb69
  6. 23 1月, 2007 3 次提交
  7. 10 1月, 2007 2 次提交
  8. 08 1月, 2007 5 次提交
  9. 05 1月, 2007 1 次提交
    • M
      IB/mthca: Fix off-by-one in FMR handling on memfree · 46707e96
      Michael S. Tsirkin 提交于
      mthca_table_find() will return the wrong address when the table entry
      being searched for is exactly at the beginning of a sglist entry
      (other than the first), because it uses >= when it should use >.
      
      Example: assume we have 2 entries in scatterlist, 4K each, offset is
      4K.  The current code will return first entry + 4K when we really want
      the second entry.
      
      In particular this means mapping an FMR on a memfree HCA may end up
      writing the page table into the wrong place, leading to memory
      corruption and also causing the HCA to use an incorrect address
      translation table.
      Signed-off-by: NMichael S. Tsirkin <mst@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      46707e96
  10. 31 12月, 2006 1 次提交
  11. 16 12月, 2006 3 次提交
  12. 13 12月, 2006 7 次提交