1. 20 1月, 2016 10 次提交
  2. 24 12月, 2015 9 次提交
  3. 23 12月, 2015 17 次提交
  4. 12 12月, 2015 1 次提交
    • C
      IB: add a proper completion queue abstraction · 14d3a3b2
      Christoph Hellwig 提交于
      This adds an abstraction that allows ULPs to simply pass a completion
      object and completion callback with each submitted WR and let the RDMA
      core handle the nitty gritty details of how to handle completion
      interrupts and poll the CQ.
      
      In detail there is a new ib_cqe structure which just contains the
      completion callback, and which can be used to get at the containing
      object using container_of.  It is pointed to by the WR and WC as an
      alternative to the wr_id field, similar to how many ULPs already use
      the field to store a pointer using casts.
      
      A driver using the new completion callbacks allocates it's CQs using
      the new ib_create_cq API, which in addition to the number of CQEs and
      the completion vectors also takes a mode on how we poll for CQEs.
      Three modes are available: direct for drivers that never take CQ
      interrupts and just poll for them, softirq to poll from softirq context
      using the to be renamed blk-iopoll infrastructure which takes care of
      rearming and budgeting, or a workqueue for consumer who want to be
      called from user context.
      
      Thanks a lot to Sagi Grimberg who helped reviewing the API, wrote
      the current version of the workqueue code because my two previous
      attempts sucked too much and converted the iSER initiator to the new
      API.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      14d3a3b2
  5. 09 12月, 2015 2 次提交
  6. 08 12月, 2015 1 次提交
    • B
      IB core: Fix ib_sg_to_pages() · 8f5ba10e
      Bart Van Assche 提交于
      On 12/03/2015 01:18 AM, Christoph Hellwig wrote:
      > The patch looks good to me, but while we touch this area, how about
      > throwing in a few cosmetic fixes as well?
      
      How about the patch below ? In that version of the ib_sg_to_pages() fix
      these concerns have been addressed and additionally to more bugs have been fixed.
      
      ------------
      
      [PATCH] IB core: Fix ib_sg_to_pages()
      
      Fix the code for detecting gaps. A gap occurs not only if the
      second or later scatterlist element is not aligned but also if
      any scatterlist element other than the last does not end at a
      page boundary.
      
      In the code for coalescing contiguous elements, ensure that
      mr->length is correct and that last_page_addr is up-to-date.
      
      Ensure that this function returns a negative
      error code instead of zero if the first set_page() call fails.
      
      Fixes: commit 4c67e2bf ("IB/core: Introduce new fast registration API")
      Reported-by: NChristoph Hellwig <hch@lst.de>
      Reviewed-by: NSagi Grimberg <sagig@mellanox.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      8f5ba10e