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>