[ewg] 1.6 pull request
Mike Marciniszyn
mike.marciniszyn at qlogic.com
Mon Feb 28 07:11:39 PST 2011
Vlad,
Please pull the following patches from ~mmarciniszyn/scm/ofed_1_6/linux-2.6. These are qib patches missing from the "37" kernel that are upstream.
Thanks!
Mike
commit e985f7c9517a8793c19100c121ca08919e27c623
Author: Mitko Haralanov <mitko at qlogic.com>
Date: Mon Feb 28 09:31:20 2011 -0500
IB/qib: Set default LE2 value for active cables to 0
For active and far-EQ cables use an LE2 value of 0 for
improved SI.
Signed-off-by: Mitko Haralanov <mitko at qlogic.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit c264fd1eb45761790df8e44215864ca9e9616dee
Author: Mitko Haralanov <mitko at qlogic.com>
Date: Mon Feb 28 09:30:02 2011 -0500
IB/qib: Return correct MAD when setting link width to 255
Fix a bug which cause the driver to return incorrect MADs
as a response to Set(PortInfo) which sets the link width
to 0xFF or link speed to 0xF.
Signed-off-by: Mitko Haralanov <mitko at qlogic.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit f3187875316428670617951c62ef4657b41203a4
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 09:28:53 2011 -0500
IB/qib: Prevent double completions after a timeout or RNR error
There is a double completion associated with error handling
for RC QP's.
The sequence is:
- The do_rc_ack() routine fields an RNR nack and there are 0 rnr_retries
configured on the QP.
- qib_error_qp() stops the pending timer
- qib_rc_send_complete() is called from sdma_complete()
- qib_rc_send_complete() starts the timer because the msb of the psn just
completed says and ack is needed.
- a bunch of flushes occur as ipoib posts wqe's to an error'ed qp
- rc_timeout() calls qib_restart_rc()
- qib_restart_rc() calls qib_send_complete() with a IB_WC_RETRY_EXC_ERR on a
wqe that has already been completed in the past
The fix avoids starting the timer since another packet will never
arrive.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit 14c7c213e6420e9deb60f2ed8aa32b40cb12046e
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 09:28:04 2011 -0500
IB/qib: Kernel BUG at include/linux/timer.h:82
The following panic BUG_ON occurs during qib testing:
Kernel BUG at include/linux/timer.h:82
RIP [<ffffffff881f7109>] :ib_qib:start_timer+0x73/0x89
RSP <ffffffff80425bd0>
<0>Kernel panic - not syncing: Fatal exception
<0>Dumping qib trace buffer from panic
qib_set_lid INFO: IB0:1 got a lid: 0xf8
Done dumping qib trace buffer
BUG: warning at kernel/panic.c:137/panic() (Tainted: G
The flaw is due to a missing state test when processing responses that results
in an add_timer() call when the same timer is already queued. This code was
executing in parallel with a QP destroy on another CPU that had changed the state
to reset, but the missing test caused to response handling code to run on into
the panic.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit 9b78fd8c9e0d99e77da4d23cf62ec580c2010033
Author: Mitko Haralanov <mitko at qlogic.com>
Date: Mon Feb 28 09:26:08 2011 -0500
IB/qib: Hold link for Tx SERDES settings
Hold the IB link at DISABLED until we get the correct TX
settings on mezz boards.
Signed-off-by: Mitko Haralanov <mitko at qlogic.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit 831e6f3114a2f0ec987c3dcf29e2be155c5bd91c
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 09:24:21 2011 -0500
IB/qib: fix refcount leak in lkey/rkey validation
The mr optimization introduced a reference count leak on an exception test.
The lock/refcount manipulation is moved down and the problematic exception
test now calls bail to insure that the lock is released.
Additional fixes as suggested by Ralph Campbell <ralph.campbell at qlogic.org>:
- reduce lock scope of dma regions
- use explicit values on returns vs. automatic ret value
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit ca19f1843a7822459c1dc9008bbe2a2327522af4
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 09:23:32 2011 -0500
IB/qib: Improve SERDES tunning on QMH boards
Improve the QMH SERDES tunning on initial driver load by
removing the delay after SERDES init and having the driver
go through a link state change.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit 2e517e1654323ba675563b472a57b2782a5102be
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 09:22:42 2011 -0500
IB/qib: Add a delay to allow SERDES to initialize
Adding a small delay would allow the SERDES to adapt better,
which would improve the link negotiation.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit 8d1c5109a9e78d75c057976375c5506e0be5c8d6
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 09:21:51 2011 -0500
IB/qib: Un-necessary delayed completions on RC connection
Currently on receipt of a response message (ACKs, RDMA Response, Atomic
Responses etc.) if the SDMA completion counter is not advanced the
driver delays the completion of the WQE. In most cases this is overly
pessimistic as the response (ACK) to a previously transmitted send
implies that the send is complete. Ensure that SDMA queue is progressed
appropriately before determining if a send has delayed completions.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit b72e20dba2d7aa7f9962197ecb08b5c4ae06b7d9
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 09:21:08 2011 -0500
IB/qib: Issue pre-emptive NAKs on eager buffer overflow
Under congestion resulting in eager buffer overflow attempt to send
pre-emptive NAKs if header queue entries with TID errors are generated and
a valid header is present. This prevents long timeouts and flow restarts if
a trailing set of packets are dropped due to eager overflows. Pre-emptive
NAKs are currently only supported for RDMA Writes.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit d4b42bf94984b6a8396b2464f2804e4a42559708
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 09:20:09 2011 -0500
IB/qib: RDMA lkey/rkey validation is inefficient for large MRs
The current code loops during rkey/lkey validiation to isolate the mr
for the RDMA, which is expensive when the current operation is
inside a very large memory region.
This fix optimizes rkey/lkey validation routines for user memory regions and
fast memory regions. The mr entry can be isolated by shifts/mods instead of
looping. The existing loop is preserved for phys memory regions for now.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit e2a778f9cb26cc710fdf62b1697a48c655538488
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 09:19:31 2011 -0500
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 at qlogic.com>
commit 33cc93fe88f14c40d6755c0ac7522632708d42a3
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 09:18:34 2011 -0500
IB/qib: adding fix missing from earlier patch
rcv/error race fix was missing part
of a fix that makes merges impossible.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit d515d9934866cfce923b35e519488cf1719dbac7
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 09:17:45 2011 -0500
IB/qib: change rcv 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 at qlogic.com>
commit 0572c6013be7e6afb3d8253d081650195deef065
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 09:16:51 2011 -0500
IB/qib: interrupt mitigation fix
For SusieQ we need to write to the interrupt timer register before updating the
header queue head with interrupt count. This is to ensure that the timer is
enabled properly and a receive available interrupt is delivered else this
interrupt can be lost if the receiver header/eager queues are full before the
timer is enabled.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit b809eb206d3bcce2f80278c2e8e68193c288b1d3
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 09:16:03 2011 -0500
IB/qib: Avoid duplicate writes to the rcv head register
Avoid duplicate writes to the head register as this can lead to lost interrupts
if the context goes full before the second write is done.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit eaef50600af2ed692cde5887ff1127e5e5d1f16c
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 09:14:52 2011 -0500
IB/qib: Add a few new SERDES tunings
Add new SERDES tuning to aid manufacturing.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit d5c92e47e8fdcbb4af723852ac206110426aee84
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 09:13:39 2011 -0500
IB/qib: Reset packet list after freeing
Reset the list pointers after freeing the SDMA packet
list. This is done to any potential double-free cases.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit 722f88848671c40b964b3c956e0f633368a3ee6b
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 09:12:30 2011 -0500
IB/qib: New SERDES init routine and improvements to SI quality
Implement new SERDES initialization routine and improvements
to SI - disable LE1 adaptation, disable LOS after link-up, set
better SERDES parameters.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit b9594f38a3bb8ec10965a20e286a32bb1b7abced
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 09:11:30 2011 -0500
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 at qlogic.com>
commit 5e98328bdf49f4cb9bc4529590ac2e90d89e271a
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 09:10:29 2011 -0500
IB/qib: fix context allocation with multiple HCAs
The driver was incorrectly choosing HCAs on which to allocate
new user contexts based on overall count of usable ports
regardless whether the usable port was on the currently selected
HCA.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit a19bcfc7e13e34ffee1916fa34b69689a113ceab
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 09:08:47 2011 -0500
IB/qib: Multi Florida HCA Hosts panic on reboot
Add check when setting configured contexts that the value
does not exceed the number of contexts allocated for the
card. If the value exceeds the already allocated count,
set it to what is already allocated.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit 4ccdadcedc76abe1f89aad14c5783dfb8fc89b65
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 09:07:36 2011 -0500
IB/qib: Handle transitions from ACTIVE_DEFERRED to ACTIVE better
When the link transitions from ACTIVE_DEFERRED to ACTIVE, the driver
only sees the ACTIVE state. With this change, it will check whether
the state was already ACTIVE and if so, it will not generated IB
events and will not clear symbol error counts.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit fbd9828c27e4ca320cc27b954fed4affe80a8c48
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 08:38:04 2011 -0500
IB/qib: UD send with immediate Rx completion has wrong size
The code to generate receive completion entries for UD send with
immediate contains the wrong payload length. This is because when
the code to compute the payload size was moved, the value of hdrsize
didn't get moved too. The fix is to update tlen directly.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit 9bb69c0b3e8538cf3d1659d480a3d2b2c249fe79
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 08:36:29 2011 -0500
IB/qib: set port physical state even if other fields are invalid
The IBTA vol. 1 release 1.2.1 spec. says:
C14-24.2.1: If PortInfo:Portstate=Down, then a SubnSet(PortInfo)
shall make any changes it specifies to PortInfo:PortPhysicalState;
any other result is vendor-dependent.
The patch changes the error handling so that the reply says there
are invalid fields but still attempts to set fields that are
in range including PortInfo:PortPhysicalState.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit a760de02de0b1ddd2462c1e26224d427834ef9a6
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 08:35:26 2011 -0500
IB/qib: generate completion callback on errors
According to IBTA vol. 1, C11-30.1.1, a notification callback is
invoked if the CQ is armed for the next solicited completion event
or an error completion. The error case wasn't being generated
previously.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit 567b16d5a1e199535b5f317f79af1732b6b9be27
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 08:34:17 2011 -0500
IB/qib: add thresholds to VendorPortCounters PMA operation
This adds thresholds to be specified in the VendorPortCounters PMA
operation.
The reserved fields are now defined in the appropriate header file.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit a87e1ee80cf7c83c55059f1e664ce8ae50d4ee90
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 08:32:54 2011 -0500
IB/qib: add support for the new QME7362 card
From: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
This patch adds support to recognize another board variation
named QME7362.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit 2a306aed784bbf5caa3035697c70fba044581eec
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 08:31:14 2011 -0500
IB/qib: add receive header queue size module parameters
The receive header queue sizes need to modified to support
performance tuning. Three module parameters are added to
support this.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
commit 51c069e6950ae01ad81842f28651b0cd585867a3
Author: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
Date: Mon Feb 28 08:29:41 2011 -0500
IB/qib: remove IB latency turnoff
This is required for hardware testing.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
________________________________
This message and any attached documents contain information from QLogic Corporation or its wholly-owned subsidiaries that may be confidential. If you are not the intended recipient, you may not read, copy, distribute, or use this information. If you have received this transmission in error, please notify the sender immediately by reply e-mail and then delete this message.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/ewg/attachments/20110228/316830e0/attachment.html>
More information about the ewg
mailing list