1. 14 5月, 2009 2 次提交
  2. 18 1月, 2009 1 次提交
  3. 17 1月, 2009 2 次提交
  4. 08 1月, 2009 1 次提交
  5. 30 12月, 2008 2 次提交
  6. 22 12月, 2008 1 次提交
    • J
      IB/ehca: Remove redundant test of vpage · 139cdab0
      Julia Lawall 提交于
      vpage is checked not to be NULL just after it is initialized at the
      beginning of each loop iteration.
      
      A simplified version of the semantic patch that makes this change is
      as follows: (http://www.emn.fr/x-info/coccinelle/)
      
      // <smpl>
      @r exists@
      local idexpression x;
      expression E;
      position p1,p2;
      @@
      
      if (x@p1 == NULL || ...) { ... when forall
         return ...; }
      ... when != \(x=E\|x--\|x++\|--x\|++x\|x-=E\|x+=E\|x|=E\|x&=E\|&x\)
      (
      x@p2 == NULL
      |
      x@p2 != NULL
      )
      
      // another path to the test that is not through p1?
      @s exists@
      local idexpression r.x;
      position r.p1,r.p2;
      @@
      
      ... when != x@p1
      (
      x@p2 == NULL
      |
      x@p2 != NULL
      )
      
      @fix depends on !s@
      position r.p1,r.p2;
      expression x,E;
      statement S1,S2;
      @@
      
      (
      - if ((x@p2 != NULL) || ...)
        S1
      |
      - if ((x@p2 == NULL) && ...) S1
      |
      - BUG_ON(x@p2 == NULL);
      )
      // </smpl>
      Signed-off-by: NJulia Lawall <julia@diku.dk>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      139cdab0
  7. 06 12月, 2008 1 次提交
  8. 02 12月, 2008 3 次提交
  9. 12 11月, 2008 1 次提交
  10. 23 10月, 2008 2 次提交
    • S
      IB/ehca: Reject dynamic memory add/remove when ehca adapter is present · 263c24a2
      Stefan Roscher 提交于
      Since the ehca device driver does not support dynamic memory add and
      remove operations, the driver must explicitly reject such requests in
      order to prevent unpredictable behaviors related to existing memory
      regions that cover all of memory being used by InfiniBand protocols in
      the kernel.
      
      The solution (for now at least) is to add a memory notifier to the
      ehca device driver and if a request for dynamic memory add or remove
      comes in, ehca will always reject it.  The user can add or remove
      memory by hot-removing the ehca adapter, performing the memory
      operation, and then hot-adding the ehca adapter back.
      Signed-off-by: NStefan Roscher <stefan.roscher@de.ibm.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      263c24a2
    • S
      IB/ehca: Fix reported max number of QPs and CQs in systems with >1 adapter · 19f42821
      Stefan Roscher 提交于
      Because ehca adapters can differ in the maximum number of QPs and CQs
      we have to save the maximum number of these ressources per adapter and
      not globally per ehca driver. This fix introduces 2 new members to the
      shca structure to store the maximum value for QPs and CQs per adapter.
      
      The module parameters are now used as initial values for those
      variables.  If a user selects an invalid number of CQs or QPs we don't
      print an error any longer, instead we will inform the user with a
      warning and set the values to the respective maximum supported by the
      HW.
      Signed-off-by: NStefan Roscher <stefan.roscher@de.ibm.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      19f42821
  11. 11 10月, 2008 1 次提交
  12. 21 9月, 2008 1 次提交
    • A
      IB/ehca: Generate flush status CQ entries · b9012e0a
      Alexander Schmidt 提交于
      When a QP goes into error state, it is required that CQ entries with a
      flush error status are delivered to the application for any
      outstanding work requests.  eHCA does not do this in hardware, so this
      patch adds software flush CQE generation to the ehca driver.
      
      Whenever a QP gets into error state, it is added to the QP error list
      of its respective CQ.  If the error QP list of a CQ is not empty,
      poll_cq() generates flush CQEs before polling the actual CQ.
      Signed-off-by: NAlexander Schmidt <alexs@linux.vnet.ibm.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      b9012e0a
  13. 24 8月, 2008 1 次提交
  14. 13 8月, 2008 5 次提交
  15. 04 8月, 2008 1 次提交
  16. 23 7月, 2008 3 次提交
  17. 15 7月, 2008 4 次提交
    • J
      IB/ehca: Make device table externally visible · 038919f2
      Joachim Fenkes 提交于
      This gives ehca an autogenerated modalias and therefore enables automatic loading.
      Signed-off-by: NJoachim Fenkes <fenkes@de.ibm.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      038919f2
    • S
      IB/ehca: In case of lost interrupts, trigger EOI to reenable interrupts · 6f7bc01a
      Stefan Roscher 提交于
      During corner case testing, we noticed that some versions of ehca do
      not properly transition to interrupt done in special load situations.
      This can be resolved by periodically triggering EOI through H_EOI, if
      EQEs are pending.
      Signed-off-by: NStefan Roscher <stefan.roscher@de.ibm.com>
      Acked-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      6f7bc01a
    • J
    • S
      RDMA/core: Add memory management extensions support · 00f7ec36
      Steve Wise 提交于
      This patch adds support for the IB "base memory management extension"
      (BMME) and the equivalent iWARP operations (which the iWARP verbs
      mandates all devices must implement).  The new operations are:
      
       - Allocate an ib_mr for use in fast register work requests.
      
       - Allocate/free a physical buffer lists for use in fast register work
         requests.  This allows device drivers to allocate this memory as
         needed for use in posting send requests (eg via dma_alloc_coherent).
      
       - New send queue work requests:
         * send with remote invalidate
         * fast register memory region
         * local invalidate memory region
         * RDMA read with invalidate local memory region (iWARP only)
      
      Consumer interface details:
      
       - A new device capability flag IB_DEVICE_MEM_MGT_EXTENSIONS is added
         to indicate device support for these features.
      
       - New send work request opcodes IB_WR_FAST_REG_MR, IB_WR_LOCAL_INV,
         IB_WR_RDMA_READ_WITH_INV are added.
      
       - A new consumer API function, ib_alloc_mr() is added to allocate
         fast register memory regions.
      
       - New consumer API functions, ib_alloc_fast_reg_page_list() and
         ib_free_fast_reg_page_list() are added to allocate and free
         device-specific memory for fast registration page lists.
      
       - A new consumer API function, ib_update_fast_reg_key(), is added to
         allow the key portion of the R_Key and L_Key of a fast registration
         MR to be updated.  Consumers call this if desired before posting
         a IB_WR_FAST_REG_MR work request.
      
      Consumers can use this as follows:
      
       - MR is allocated with ib_alloc_mr().
      
       - Page list memory is allocated with ib_alloc_fast_reg_page_list().
      
       - MR R_Key/L_Key "key" field is updated with ib_update_fast_reg_key().
      
       - MR made VALID and bound to a specific page list via
         ib_post_send(IB_WR_FAST_REG_MR)
      
       - MR made INVALID via ib_post_send(IB_WR_LOCAL_INV),
         ib_post_send(IB_WR_RDMA_READ_WITH_INV) or an incoming send with
         invalidate operation.
      
       - MR is deallocated with ib_dereg_mr()
      
       - page lists dealloced via ib_free_fast_reg_page_list().
      
      Applications can allocate a fast register MR once, and then can
      repeatedly bind the MR to different physical block lists (PBLs) via
      posting work requests to a send queue (SQ).  For each outstanding
      MR-to-PBL binding in the SQ pipe, a fast_reg_page_list needs to be
      allocated (the fast_reg_page_list is owned by the low-level driver
      from the consumer posting a work request until the request completes).
      Thus pipelining can be achieved while still allowing device-specific
      page_list processing.
      
      The 32-bit fast register memory key/STag is composed of a 24-bit index
      and an 8-bit key.  The application can change the key each time it
      fast registers thus allowing more control over the peer's use of the
      key/STag (ie it can effectively be changed each time the rkey is
      rebound to a page list).
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      00f7ec36
  18. 07 6月, 2008 1 次提交
  19. 24 5月, 2008 1 次提交
  20. 08 5月, 2008 1 次提交
  21. 06 5月, 2008 1 次提交
  22. 30 4月, 2008 2 次提交
  23. 29 4月, 2008 1 次提交
    • A
      IB: expand ib_umem_get() prototype · cb9fbc5c
      Arthur Kepner 提交于
      Add a new parameter, dmasync, to the ib_umem_get() prototype.  Use dmasync = 1
      when mapping user-allocated CQs with ib_umem_get().
      Signed-off-by: NArthur Kepner <akepner@sgi.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Cc: Jes Sorensen <jes@sgi.com>
      Cc: Randy Dunlap <randy.dunlap@oracle.com>
      Cc: Roland Dreier <rdreier@cisco.com>
      Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
      Cc: David Miller <davem@davemloft.net>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Grant Grundler <grundler@parisc-linux.org>
      Cc: Michael Ellerman <michael@ellerman.id.au>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cb9fbc5c
  24. 24 4月, 2008 1 次提交