Jay Sternberg [Fri, 5 Sep 2014 17:36:13 +0000 (10:36 -0700)]
xeon-phi: updates to ofed-mic script
Changes include:
- Start the ibp daemon (ibpd) since udev is not longer being used.
- Always try to unload ipoib/kmtest on the card
- Try using another hostname when starting services on the cards
(i.e. hostname.domain).
Jay Sternberg [Mon, 8 Sep 2014 21:05:51 +0000 (14:05 -0700)]
xeon-phi: updates to ibp_server
Changes include:
- adds the synchronization to all three ibp servers (drv/sa/cm)
and track additional resources to free them with others
- correct freeing of resources in cm server so the usage count
is manages correctly and the driver can be unloaded without
forcing the count.
- correct issue when the xeon-phi is rebooted without stopping
the ofed-mic service which occationally hangs the host.
Jay Sternberg [Mon, 8 Sep 2014 21:01:34 +0000 (14:01 -0700)]
xeon-phi: updated technology preview for ibscif
Changes include:
- add a module parameter to turn on/off GRH checking, used to detect
connections going outside the box
- use mutex instead of spinlock when the lock holder could go sleep
fixing a soft lockup issue under oversubscribing
- add semaphore/mutex macros missing on older systems
- eliminates a race condition between the poll thread and the netdev
notifier
- invalidate connections going outside the box
- set the correct link layer type
- clean up the driver output
- perform endian conversion before printing GID
- fix compiler warnings
Steve Wise [Thu, 28 Aug 2014 21:07:29 +0000 (16:07 -0500)]
cxgb4: Fix vlan support in sles and rhel backport.
If a tagged packet arrives it will cause a crash in t4_ethrx_handler()
due to a bug in the backports causing a skb to be freed twice. Also in
the RHEL backport, needed to add a vlan netdev op for it to work at all.
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Phil Cayton [Tue, 19 Aug 2014 19:11:31 +0000 (12:11 -0700)]
Changes to ofed-mic script to better handle IPoIB interfaces
List IPoIB interfaces brought up on card following card name and
colon (:), ie mic0 : ib0 ib1
If IF on card fails to come up (ie ifup ib0 fails), print offending card
and interface, keep trying other interfaces. If any IPoIB interfaces fail
to come up don't assume card does not exist and try other hostnames.
Phil Cayton [Tue, 19 Aug 2014 19:10:49 +0000 (12:10 -0700)]
ofed-mic add check for existing ibpd to start function
Add a check for an existing ibpd daemon before starting another.
This prevents multiple "service ofed-mic start" commands from
launching multiple copies of the ibpd daemon, spawning more
driver worker threads than intended.
commit a7bade7e3deff33f5a0f830e43596b3d8ebd3d85
Author: Selvin Xavier <selvin.xavier@emulex.com>
Date: Tue, 3 Jun 2014 11:13:00 +0530
RDMA/ocrdma: Query and initalize the PFC SL
This patch implements routine to query the PFC priority from the adapter port.
Following are the changes implemented:
* A new FW command is implemented to query the operational/admin
DCBX configuration from the FW and obtain active priority(service level).
* Adds support for the async event reported by FW when the PFC priority
changes. Service level is re-initialized during modify_qp or
create_ah, based on this event.
* Maintain SL value in ocrdma_dev structure and refer that as and
when needed.
be2net driver sends shutdown event to ocrdma during shutdown/reboot.
As part of event processing, ocrdma calls close() and remove() to
free all the resources associated with ocrdma. This also frees
irqs used by ocrdma
Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com> Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
commit c9a08ed7fbd10343a404a3dc899be9eac06c0d6e
Author: Devesh Sharma <devesh.sharma@emulex.com>
Date: Tue, 27 May 2014 14:16:15 +0530
RDMA/ocrdma: Remove hardcoding of the max DPP QPs supported
Removing hardcoded value of max dpp qps and calculate the same from
doorbell page size and WQE size
Cleanup the AH table in error path, if HW initialization fails
after AH table creation.
Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com> Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
commit bb2d1842ca249900a73e3850b3583c77b7d0f450
Author: Selvin Xavier <selvin.xavier@emulex.com>
Date: Wed, 28 May 2014 09:25:16 +0530
RDMA/ocrdma: Avoid reporting wrong completions in case of error CQEs
During cable pull test with a mount over nfs rdma, driver was reporting
error completions when there was no pending requests in the SQ and RQ.
This was triggering a host crash because of reporting wrong work req id.
Avoid this crash by adding a check for SQ and RQ empty condition and
prevent reporting completions if queues are empty.
Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com> Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
commit 66e9bb03219959cee18ec8cbd50c29b0c7b1c8d9
Author: Mitesh Ahuja <mitesh.ahuja@emulex.Com>
Date: Mon, 2 Jun 2014 10:54:40 +0530
RDMA/ocrdma: Allow only SEND opcode in case of UD QPs
Prevent posting opcodes other than send and send immediate on the UD QPs
Signed-off-by: Mitesh Ahuja <mitesh.ahuja@emulex.Com> Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com> Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
commit 6237b9592d8494f1e9df9f6655336d196a2c244c
Author: Mitesh Ahuja <mitesh.ahuja@emulex.Com>
Date: Fri, 18 Jul 2014 11:47:18 +0530
RDMA/ocrdma: Do proper cleanup evenif FW is in error state
If any mailbox command reports timeout, save the state in the driver, to prevent
issuing any more commands to the HW. Do proper cleanup even if FW is in error state.
Signed-off-by: Mitesh Ahuja <mitesh.ahuja@emulex.Com> Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
commit cb245d90fb25b9974cd316d14f02a159e2cd2fac
Author: Mitesh Ahuja <mitesh.ahuja@emulex.Com>
Date: Wed, 28 May 2014 10:25:38 +0530
RDMA/ocrdma: Return proper value for max_mr_size
Update the max_mr_size with proper value. Corrected the response structure
of query config mailbox command.
Currently, driver obtains service level value from ah_attr->sl
field. However, this filed is set to zero all the times from
rdma-cm. This patch allows create_ah to obtain service level from
dev->sl
ib_request_notify_cq() when called for the first time
ocrdma tries to skip setting deffered_arm flag. This
may lead CQ to an un-armed state thus, never generating
CQ event and leaving consumer in hung state.
This patch removes the part of code that skkips setting
deffered_arm flag.
Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com> Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com> Signed-off-by: Mitesh Ahuja <mitesh.ahuja@emulex.com>
commit 295ec1fb5a5ecb9e35f452a1b744992c0c515066
Author: Devesh Sharma <devesh.sharma@emulex.com>
Date: Thu, 5 Jun 2014 19:11:05 +0530
RDMA/ocrdma: Report actual value of max_fast_reg_page_list_len
ocrdma_query_device does not report correct value of max_fast_reg_page_list_len.
This patch applies changes to fix this bug.
In the shutdown path, when be2net calls pci_disable_msix(), it
complains (BUG_ON) that irqs requested by ocrdma driver are still in
use. This patch fixes this problem by issuing shutdown event to
ocrdma from be2net shutdown path. As part of shutdown event
processing, ocrdma driver will free up all the resources and free
irqs. Once this completes be2net completes pci_disable_msix
successfully.
timecounter_init() was was called only after first potential
timecounter_read().
Moved mlx4_en_init_timestamp() before mlx4_en_init_netdev()
Signed-off-by: Amir Vadai <amirv@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Vladimir Sokolovsky <vlad@mellanox.com>
Steve Wise [Tue, 17 Jun 2014 21:07:15 +0000 (16:07 -0500)]
cxgb4/iw_cxgb4 fixes
Cherry pick these from linux-3.16-rc1:
c887ad0 cxgb4: Change default Interrupt Holdoff Packet Count Threshold b408ff2 iw_cxgb4: don't truncate the recv window size 92e7ae7 iw_cxgb4: Choose appropriate hw mtu index and ISS for iWARP connections cf38be6 iw_cxgb4: Allocate and use IQs specifically for indirect interrupts
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
RDMA connections over a vlan interface don't work due to
import_ep() not using the correct egress device.
- use the real device in import_ep()
- use rdma_vlan_dev_real_dev() in get_real_dev().
Signed-off-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: Roland Dreier <roland@purestorage.com> Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Steve Wise [Tue, 29 Apr 2014 01:56:43 +0000 (20:56 -0500)]
More iw_cxgb4 fixes
Pull in these fixes:
c2f9da9 RDMA/cxgb4: Only allow kernel db ringing for T4 devs 92e5011 RDMA/cxgb4: Force T5 connections to use TAHOE congestion control cc18b93 RDMA/cxgb4: Fix endpoint mutex deadlocks
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
cxgb4: use the correct max size for firmware flash
The wrong max fw size was being used and causing false
"too big" errors running ethtool -f.
Signed-off-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: David S. Miller <davem@davemloft.net>
commit bfae23249955819a42aa6c23d93708c818eff5c9
Author: Steve Wise <swise@opengridcomputing.com>
Date: Mon Apr 14 14:22:43 2014 -0500
cxgb4: Save the correct mac addr for hw-loopback connections in the L2T
Hardware needs the local device mac address to support hw loopback for
rdma loopback connections.
Signed-off-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Steve Wise [Thu, 10 Apr 2014 15:02:51 +0000 (10:02 -0500)]
linux-next-pending: pull in more iw_cxgb4 fixes.
Pull in these heading into 3.15:
Hariprasad Shenai (1):
iw_cxgb4: Use pr_warn_ratelimited
Steve Wise (9):
iw_cxgb4: use the BAR2/WC path for kernel QPs and T5 devices
iw_cxgb4: endpoint timeout fixes
iw_cxgb4: rmb() after reading valid gen bit
iw_cxgb4: SQ flush fix
iw_cxgb4: Max fastreg depth depends on DSGL support
iw_cxgb4: Initialize reserved fields in a FW work request
iw_cxgb4: Add missing debug stats
iw_cxgb4: Use uninitialized_var()
iw_cxgb4: fix over-dereference when terminating
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
1410e14 RDMA/cxgb4: Disable DSGL use. 13f17b7 RDMA/cxgb4: rx_data() needs to hold the ep mutex 925902f RDMA/cxgb4: Drop RX_DATA packets if the endpoint is gone 9306dcb RDMA/cxgb4: Lock around accept/reject downcalls 9c88aa0 RDMA/cxgb4: Update snd_seq when sending MPA messages be13b2d RDMA/cxgb4: Connect_request_upcall fixes 70b9c66 RDMA/cxgb4: Ignore read reponse type 1 CQEs 1ce1d47 RDMA/cxgb4: Fix possible memory leak in RX_PKT processing dbb084c RDMA/cxgb4: Don't leak skb in c4iw_uld_rx_handler() eda6d1d RDMA/cxgb4: Save the correct map length for fast_reg_page_lists df2d513 RDMA/cxgb4: Default peer2peer mode to 1 ba32de9 RDMA/cxgb4: Mind the sq_sig_all/sq_sig_type QP attributes 8a9c399 RDMA/cxgb4: Fix incorrect BUG_ON conditions ebf0006 RDMA/cxgb4: Always release neigh entry f8e8190 RDMA/cxgb4: Allow loopback connections ffd4359 RDMA/cxgb4: Cap CQ size at T4_MAX_IQ_SIZE e24a72a RDMA/cxgb4: Fix four byte info leak in c4iw_create_cq() ff1706f RDMA/cxgb4: Fix underflows in c4iw_create_qp()
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Kumar Sanghvi [Mon, 17 Mar 2014 08:10:25 +0000 (13:40 +0530)]
linux-next-cherry-picks: Bring upstream fixes on cxgb4
This patch brings in below fixes on cxgb4 from linux-next: ca71de6 (cxgb4: Calculate len properly for LSO path) c2b955e (cxgb4: Updates for T5 SGE's Egress Congestion Threshold) 0f4d201 (cxgb4: Rectify emitting messages about SGE Ingress DMA channels being potentially stuck) 68bce192 (cxgb4: Add code to dump SGE registers when hitting idma hangs) 92ddcc7 (cxgb4: Fix some small bugs in t4_sge_init_soft() when our Page Size is 64KB)
Kumar Sanghvi [Wed, 19 Feb 2014 07:11:12 +0000 (12:41 +0530)]
linux-next-cherry-picks: Bring upstream fixes on cxgb4
Bring below upstream fixes on cxgb4: f0a8e6d cxgb4: Add more PCI device ids. 0034b29 cxgb4: Don't assume LSO only uses SGL path in t4_eth_xmit() c1f49e3 cxgb4: Remove unused registers and add missing ones 1ac0f09 cxgb4: Query firmware for T5 ULPTX MEMWRITE DSGL capabilities 4fe44dd cxgb4: LE-Workaround is not atomic in firmware 57d8b76 cxgb4: Allow >10G ports to have multiple queues a94cd70 cxgb4: Print adapter VPD Part Number instead of Engineering Change field 72aca4b cxgb4: Add support to recognize 40G links
This adds support for Chelsio 40G adapters.
And also, brings in misc. fixes on cxgb4 for T4 and T5 adapters.
Kumar Sanghvi [Tue, 18 Feb 2014 10:47:57 +0000 (16:17 +0530)]
linux-next-cherry-picks: Bring upstream fix on RDMA/cxgb4 LE-Workaround path
This brings upstream fix 0f01320 (RDMA/cxgb4: Add missing neigh_release in LE-Workaround path),
and makes corresponding backport adjustment.
This resolves OFED Bugzilla Bug#2459
Commit c1be5232d21d "Fix micro UAR allocator" broke binary compatibility
between libmlx5 and mlx5_ib since it defines a different value to the number of
micro UARs per page, leading to wrong calculation in libmlx5. This patch
defines struct mlx5_ib_alloc_ucontext_req_v2 as an extension to struct
mlx5_ib_alloc_ucontext_req. The extended size is determined in
mlx5_ib_alloc_ucontext() and in case of old library we use uuarn 0 which works
fine -- this is acheived due to create_user_qp() falling back from high to
medium then to low class where low class will return 0. For new libraries we
use the more sophisticated allocation algorithm.
Issue: 371069
Change-Id: I43b67013e11f4c8dc395b4920118fe2831ffe19d Fixes: c1be5232d21d ('Fix micro UAR allocator') Signed-off-by: Eli Cohen <eli@mellanox.com> Signed-off-by: Vladimir Sokolovsky <vlad@mellanox.com>
Mike Marciniszyn [Tue, 14 Jan 2014 14:51:50 +0000 (09:51 -0500)]
truescale.cmds: fix many issues with irqbalance banning
The following issues are addressed:
- Detect --banirq vs. IRQ_BALANCE_BANNED_INTERRUPTS
- Configure --banirq vs. IRQ_BALANCE_BANNED_INTERRUPTS
- Detect unconfigurable banning (SLES11SP2/3)
- Determine service name correctly
- Use grep to cut out qib interrupts from banned configuration
This patch also adds the shell comment line to better
support invokation from udev.
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Mitko Haralanov [Fri, 10 Jan 2014 16:41:30 +0000 (11:41 -0500)]
truescale.cmds: Adjust QME724x TX tunings based on BP version
The Dell blade chassis got an updated backplane which
requires new transmitter tuning settings. With this
change the tuning script will query the driver for the
backplane version and set the TX settings according to
BP version and slot in the chassis.
Mitko Haralanov [Fri, 10 Jan 2014 16:41:29 +0000 (11:41 -0500)]
truescale.cmds: Ban irqbalance from re-arranging our IRQs
We've already assigned our IRQs to the proper cores and
we don't want irqbalance messing with them. Use the
IRQBALANCE_BANNED_INTERRUPTS environment variable to
stop irqbalance from re-arranging our IRQs.
Mitko Haralanov [Fri, 10 Jan 2014 16:41:28 +0000 (11:41 -0500)]
truescale.cmds: Wait for /dev/ipath* devices before changing permissions
Wait for up to 30 seconds for the /dev/ipath* devices to appear
before attempting to change their permissions. This helps with
system which boot a bit slower on which the device permissions
could be left in the wrong state.
Kumar Sanghvi [Tue, 24 Dec 2013 18:42:01 +0000 (00:12 +0530)]
linux-next-cherry-picks: Misc fixes for Chelsio T4/T5
This patch brings-in the following linux-next commits:
d14807d cxgb4: Much cleaner implementation of is_t4()/is_t5() 16e4762 cxgb4: Add new scheme to update T4/T5 firmware b6f8eae cxgb4: Reserve stid 0 for T4/T5 adapters 7c89e55 cxgb4: Include TCP as protocol when creating server filters 470c60c cxgb4: Assign filter server TIDs properly 15f63b7 cxgb4: Account for stid entries properly in case of IPv6 dcf7b6f cxgb4: Add API to correctly calculate tuple fields a4ea025 RDMA/cxgb4: Calculate the filter server TID properly 8c04469 RDMA/cxgb4: Server filters are supported only for IPv4 41b4f86 RDMA/cxgb4: Use cxgb4_select_ntuple to correctly calculate ntuple fields
mlx4_core: Roll back round robin bitmap allocation commit for CQs, SRQs, and MPTs
Commit f4ec9e9 "mlx4_core: Change bitmap allocator to work in round-robin fashion"
introduced round-robin allocation (via bitmap) for all resources which allocate
via a bitmap.
Round robin allocation is desirable for mcgs, counters, pd's, UARs, and xrcds.
These are simply numbers, with no involvement of ICM memory mapping.
Round robin is required for QPs, since we had a problem with immediate
reuse of a 24-bit QP number (commit f4ec9e9).
However, for other resources which use the bitmap allocator and involve
mapping ICM memory -- MPTs, CQs, SRQs -- round-robin is not desirable.
What happens in these cases is the following:
ICM memory is allocated and mapped in chunks of 256K.
Since the resource allocation index goes up monotonically, the allocator
will eventually require mapping a new chunk. Now, chunks are also unmapped
when their reference count goes back to zero. Thus, if a single app is
running and starts/exits frequently we will have the following situation:
When the app starts, a new chunk must be allocated and mapped.
When the app exits, the chunk reference count goes back to zero, and the
chunk is unmapped and freed. Therefore, the app must pay the cost of allocation
and mapping of ICM memory each time it runs (although the price is paid only when
allocating the initial entry in the new chunk).
For apps which allocate MPTs/SRQs/CQs and which operate as described above,
this presented a performance problem.
We therefore roll back the round-robin allocator modification for MPTs, CQs, SRQs.
Reported-by: Matthew Finlay <matt@mellanox.com> Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: Vladimir Sokolovsky <vlad@mellanox.com>