History log of /drivers/infiniband/hw/qib/qib_qp.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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