1. 28 2月, 2009 1 次提交
  2. 22 12月, 2008 1 次提交
    • D
      IB/iser: Avoid recv buffer exhaustion caused by unexpected PDUs · bba7ebba
      David Disseldorp 提交于
      iSCSI/iSER targets may send PDUs without a prior request from the
      initiator.  RFC 5046 refers to these PDUs as "unexpected".  NOP-In PDUs
      with itt=RESERVED and Asynchronous Message PDUs occupy this category.
      
      The amount of active "unexpected" PDU's an iSER target may have at any
      time is governed by the MaxOutstandingUnexpectedPDUs key, which is not
      yet supported.
      
      Currently when an iSER target sends an "unexpected" PDU, the
      initiators recv buffer consumed by the PDU is not replaced.  If over
      initial_post_recv_bufs_num "unexpected" PDUs are received then the
      receive queue will run out of receive work requests entirely.
      
      This patch ensures recv buffers consumed by "unexpected" PDUs are
      replaced in the next iser_post_receive_control() call.
      Signed-off-by: NDavid Disseldorp <ddiss@sgi.com>
      Signed-off-by: NKen Sandars <ksandars@sgi.com>
      Acked-by: NOr Gerlitz <ogerlitz@voltaire.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      bba7ebba
  3. 31 10月, 2008 1 次提交
  4. 24 8月, 2008 1 次提交
  5. 23 7月, 2008 1 次提交
  6. 15 7月, 2008 1 次提交
  7. 12 7月, 2008 2 次提交
  8. 17 4月, 2008 1 次提交
  9. 11 3月, 2008 2 次提交
  10. 26 1月, 2008 2 次提交
  11. 10 10月, 2007 1 次提交
  12. 18 7月, 2007 1 次提交
    • R
      IB/iser: Make a couple of functions static · 41179e2d
      Roland Dreier 提交于
      Make iser_conn_release() and iser_start_rdma_unaligned_sg() static,
      since they are only used in the .c file where they are defined.  In
      addition to being a cleanup, this even shrinks the generated code by
      allowing the single call of iser_start_rdma_unaligned_sg() to be
      inlined into its callsite.  On x86_64:
      
      add/remove: 0/1 grow/shrink: 1/0 up/down: 466/-533 (-67)
      function                                     old     new   delta
      iser_reg_rdma_mem                           1518    1984    +466
      iser_start_rdma_unaligned_sg                 533       -    -533
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      41179e2d
  13. 03 6月, 2007 1 次提交
  14. 09 5月, 2007 1 次提交
  15. 07 5月, 2007 1 次提交
    • M
      IB: Add CQ comp_vector support · f4fd0b22
      Michael S. Tsirkin 提交于
      Add a num_comp_vectors member to struct ib_device and extend
      ib_create_cq() to pass in a comp_vector parameter -- this parallels
      the userspace libibverbs API.  Update all hardware drivers to set
      num_comp_vectors to 1 and have all ULPs pass 0 for the comp_vector
      value.  Pass the value of num_comp_vectors to userspace rather than
      hard-coding a value of 1.
      
      We want multiple CQ event vector support (via MSI-X or similar for
      adapters that can generate multiple interrupts), but it's not clear
      how many vectors we want, or how we want to deal with policy issues
      such as how to decide which vector to use or how to set up interrupt
      affinity.  This patch is useful for experimenting, since no core
      changes will be necessary when updating a driver to support multiple
      vectors, and we know that we want to make at least these changes
      anyway.
      Signed-off-by: NMichael S. Tsirkin <mst@dev.mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      f4fd0b22
  16. 06 4月, 2007 1 次提交
    • E
      IB/iser: Don't defer connection failure notification to workqueue · 1d426d64
      Erez Zilber 提交于
      When a connection is terminated asynchronously from the iSCSI layer's
      perspective, iSER needs to notify the iSCSI layer that the connection
      has failed.  This is done using a workqueue (switched to from the iSER
      tasklet context).  Meanwhile, the connection object (that holds the
      work struct) is released.  If the workqueue function wasn't called
      yet, it will be called later with a NULL pointer, which will crash the
      kernel.
      
      The context switch (tasklet to workqueue) is not required, and
      everything can be done from the iSER tasklet. This eliminates the NULL
      work struct bug (and simplifies the code).
      Signed-off-by: NErez Zilber <erezz@voltaire.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      1d426d64
  17. 22 11月, 2006 1 次提交
  18. 29 9月, 2006 1 次提交
  19. 23 9月, 2006 2 次提交
    • E
      IB/iser: Do not use FMR for a single dma entry sg · d8111028
      Erez Zilber 提交于
      Fast Memory Registration (fmr) is used to register for rdma an sg whose
      elements are not linearly sequential after dma mapping.
      
      The IB verbs layer provides an "all dma memory MR (memory region)" which
      can be used for RDMA-ing a dma linearly sequential buffer.
      
      Change the code to use the dma mr instead of doing fmr when dma mapping
      produces a single dma entry sg.
      Signed-off-by: NErez Zilber <erezz@voltaire.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      d8111028
    • E
      IB/iser: make FMR "page size" be 4K and not PAGE_SIZE · 8dfa0876
      Erez Zilber 提交于
      As iser is able to use at most one rdma operation for the
      execution of a scsi command, and registration of the sg
      associated with scsi command has its restrictions, the code
      checks if an sg is "aligned for rdma".
      
      Alignment for rdma is measured in "fmr page" units whose
      possible resolutions are different between HCAs and can be
      smaller, equal or bigger to the system page size.
      
      When the system page size is bigger than 4KB (eg the default
      with ia64 kernels) there a bigger chance that an sg would be
      aligned for rdma if the fmr page size is 4KB.
      
      Change the code to create FMR whose pages are of size 4KB
      and to take that into account when processing the sg.
      Signed-off-by: NErez Zilber <erezz@voltaire.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      8dfa0876
  20. 15 7月, 2006 1 次提交
  21. 22 6月, 2006 1 次提交