d0f2faf72d51dacf5c5e8dec7dca22d0395896e2 |
|
23-Sep-2011 |
Mike Marciniszyn <mike.marciniszyn@qlogic.com> |
IB/qib: Precompute timeout jiffies to optimize latency A new field is added to qib_qp called timeout_jiffies. It is initialized upon create and modify. The field is now used instead of a computation based on qp->timeout. Signed-off-by: Mike Marciniszyn <mike.marciniszyn@qlogic.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
/drivers/infiniband/hw/qib/qib_qp.c
|
af061a644a0e4d4778fe6cd2246479c1962e153b |
|
23-Sep-2011 |
Mike Marciniszyn <mike.marciniszyn@qlogic.com> |
IB/qib: Use RCU for qpn lookup The heavy weight spinlock in qib_lookup_qpn() is replaced with RCU. The hash list itself is now accessed via jhash functions instead of mod. The changes should benefit multiple receive contexts in different processors by not contending for the lock just to read the hash structures. The patch also adds a lookaside_qp (pointer) and a lookaside_qpn in the context. The interrupt handler will test the current packet's qpn against lookaside_qpn if the lookaside_qp pointer is non-NULL. The pointer is NULL'ed when the interrupt handler exits. Signed-off-by: Mike Marciniszyn <mike.marciniszyn@qlogic.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
/drivers/infiniband/hw/qib/qib_qp.c
|
cc6ea1385b43487f6ef03bdc91416c8366d28311 |
|
23-Sep-2011 |
Mike Marciniszyn <mike.marciniszyn@qlogic.com> |
IB/qib: Decode path MTU optimization Store both the encoded and decoded MTU in the QP structure as a minor optimization for UC/RC receive routines. Signed-off-by: Mike Marciniszyn <mike.marciniszyn@qlogic.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
/drivers/infiniband/hw/qib/qib_qp.c
|
7c3edd3ff3098093e594dbcbc9dbeeae09b1b4a0 |
|
11-Jan-2011 |
Mike Marciniszyn <mike.marciniszyn@qlogic.com> |
IB/qib: Change QPN increment Changing from +1 to +2 allows for better QP distribution across receive contexts. Signed-off-by: Mike Marciniszyn <mike.marciniszyn@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
/drivers/infiniband/hw/qib/qib_qp.c
|
2528ea60f94ef9e1e1cd82066d55f62a1d19fde1 |
|
11-Jan-2011 |
Mike Marciniszyn <mike.marciniszyn@qlogic.com> |
IB/qib: Change receive queue/QPN selection The basic idea is that on SusieQ, the difficult part of mapping QPN to context is handled by the mapping registers so the generic QPN allocation doesn't need to worry about chip specifics. For Monty and Linda, there is no mapping table so the qpt->mask (same as dd->qpn_mask), is used to see if the QPN to context falls within [zero..dd->n_krcv_queues). Signed-off-by: Mike Marciniszyn <mike.marciniszyn@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
/drivers/infiniband/hw/qib/qib_qp.c
|
16028f27778cb6439516c36c0a72446d29805691 |
|
11-Jan-2011 |
Mike Marciniszyn <mike.marciniszyn@qlogic.com> |
IB/qib: Clear WAIT_SEND flags when setting QP to error state If these flags are set when the QP is transitioned to the error state, it will wait until the flags are cleared, which may never happen if the error transition is due to a link going down. Signed-off-by: Mike Marciniszyn <mike.marciniszyn@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
/drivers/infiniband/hw/qib/qib_qp.c
|
a5210c12b7c4e34e904f4820a4abd048a2d75db5 |
|
03-Aug-2010 |
Ralph Campbell <ralph.campbell@qlogic.com> |
IB/qib: Fix race between qib_error_qp() and receive packet processing When transitioning a QP to the error state, in progress RWQEs need to be marked complete. This also involves releasing the reference count to the memory regions referenced in the SGEs. The locking in the receive packet processing wasn't sufficient to prevent qib_error_qp() from modifying the r_sge state at the same time, thus leading to kernel panics. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
/drivers/infiniband/hw/qib/qib_qp.c
|
f931551bafe1f10ded7f5282e2aa162c267a2e5d |
|
24-May-2010 |
Ralph Campbell <ralph.campbell@qlogic.com> |
IB/qib: Add new qib driver for QLogic PCIe InfiniBand adapters Add a low-level IB driver for QLogic PCIe adapters. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
/drivers/infiniband/hw/qib/qib_qp.c
|