1. 10 10月, 2007 4 次提交
  2. 29 7月, 2007 1 次提交
  3. 21 7月, 2007 2 次提交
    • S
      IB/ehca: Support small QP queues · e2f81daf
      Stefan Roscher 提交于
      eHCA2 supports QP queues that can be as small as 512 bytes. This
      greatly reduces memory overhead for consumers that use lots of QPs
      with small queues (e.g. RDMA-only QPs). Apart from dealing with
      firmware, this code needs to manage bite-sized chunks of kernel pages,
      making sure that no kernel page is shared between different protection
      domains.
      Signed-off-by: NHoang-Nam Nguyen <hnguyen@de.ibm.com>
      e2f81daf
    • H
      IB/ehca: Support large page MRs · 5bb7d929
      Hoang-Nam Nguyen 提交于
      Add support for MR pages larger than 4K on eHCA2. This reduces
      firmware memory consumption.  If enabled via the mr_largepage module
      parameter, the MR page size will be determined based on the MR length
      and the hardware capabilities -- if the MR is >= 16M, 16M pages are
      used, for example.
      Signed-off-by: NJoachim Fenkes <fenkes@de.ibm.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      5bb7d929
  4. 18 7月, 2007 2 次提交
  5. 10 7月, 2007 7 次提交
  6. 15 5月, 2007 1 次提交
  7. 09 5月, 2007 1 次提交
    • R
      IB/uverbs: Export ib_umem_get()/ib_umem_release() to modules · f7c6a7b5
      Roland Dreier 提交于
      Export ib_umem_get()/ib_umem_release() and put low-level drivers in
      control of when to call ib_umem_get() to pin and DMA map userspace,
      rather than always calling it in ib_uverbs_reg_mr() before calling the
      low-level driver's reg_user_mr method.
      
      Also move these functions to be in the ib_core module instead of
      ib_uverbs, so that driver modules using them do not depend on
      ib_uverbs.
      
      This has a number of advantages:
       - It is better design from the standpoint of making generic code a
         library that can be used or overridden by device-specific code as
         the details of specific devices dictate.
       - Drivers that do not need to pin userspace memory regions do not
         need to take the performance hit of calling ib_mem_get().  For
         example, although I have not tried to implement it in this patch,
         the ipath driver should be able to avoid pinning memory and just
         use copy_{to,from}_user() to access userspace memory regions.
       - Buffers that need special mapping treatment can be identified by
         the low-level driver.  For example, it may be possible to solve
         some Altix-specific memory ordering issues with mthca CQs in
         userspace by mapping CQ buffers with extra flags.
       - Drivers that need to pin and DMA map userspace memory for things
         other than memory regions can use ib_umem_get() directly, instead
         of hacks using extra parameters to their reg_phys_mr method.  For
         example, the mlx4 driver that is pending being merged needs to pin
         and DMA map QP and CQ buffers, but it does not need to create a
         memory key for these buffers.  So the cleanest solution is for mlx4
         to call ib_umem_get() in the create_qp and create_cq methods.
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      f7c6a7b5
  8. 25 4月, 2007 1 次提交
  9. 02 3月, 2007 1 次提交
    • H
      IB/ehca: Fix sync between completion handler and destroy cq · 31726798
      Hoang-Nam Nguyen 提交于
      This patch fixes two issues reported by Roland Dreier and Christoph Hellwig:
      
      - Mismatched sync/locking between completion handler and destroy cq We
        introduced a counter nr_events per cq to track number of irq events
        seen. This counter is incremented when an event queue entry is seen
        and decremented after completion handler has been called regardless
        if scaling code is active or not. Note that nr_callbacks tracks
        number of events assigned to a cpu and both counters can potentially
        diverge.
      
        The sync between running completion handler and destroy cq is done
        by using the global spin lock ehca_cq_idr_lock.
      
      - Replace yield by wait_event on the counter above to become zero.
      Signed-off-by: NHoang-Nam Nguyen <hnguyen@de.ibm.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      31726798
  10. 17 2月, 2007 2 次提交
  11. 05 2月, 2007 2 次提交
  12. 23 9月, 2006 1 次提交