linux-hardened/drivers/net/ethernet
Ido Shamay 77507aa249 net/mlx4_core: Enable CQE/EQE stride support
This feature is intended for archs having cache line larger then 64B.

Since our CQE/EQEs are generally 64B in those systems, HW will write
twice to the same cache line consecutively, causing pipe locks due to
he hazard prevention mechanism. For elements in a cyclic buffer, writes
are consecutive, so entries smaller than a cache line should be
avoided, especially if they are written at a high rate.

Reduce consecutive writes to same cache line in CQs/EQs, by allowing the
driver to increase the distance between entries so that each will reside
in a different cache line. Until the introduction of this feature, there
were two types of CQE/EQE:

1. 32B stride and context in the [0-31] segment
2. 64B stride and context in the [32-63] segment

This feature introduces two additional types:

3. 128B stride and context in the [0-31] segment (128B cache line)
4. 256B stride and context in the [0-31] segment (256B cache line)

Modify the mlx4_core driver to query the device for the CQE/EQE cache
line stride capability and to enable that capability when the host
cache line size is larger than 64 bytes (supported cache lines are
128B and 256B).

The mlx4 IB driver and libmlx4 need not be aware of this change. The PF
context behaviour is changed to require this change in VF drivers
running on such archs.

Signed-off-by: Ido Shamay <idos@mellanox.com>
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-09-19 17:30:10 -04:00
..
3com drivers/net: Convert remaining uses of pr_warning to pr_warn 2014-09-09 20:37:08 -07:00
8390 PCI changes for the v3.17 merge window (part 2): 2014-08-14 18:10:33 -06:00
adaptec PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
adi bfin_mac: convert bfin Ethernet driver to NAPI framework 2014-07-24 23:35:42 -07:00
aeroflex greth: moved TX ring cleaning to NAPI rx poll func 2014-09-05 21:57:09 -07:00
allwinner net: sun4i-emac: fix memory leak on bad packet 2014-08-05 16:43:49 -07:00
alteon PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
altera Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-05-24 00:32:30 -04:00
amd ethernet: amd: use pr_info_once() 2014-09-12 18:02:41 -04:00
apm drivers: net: NET_XGENE should depend on HAS_DMA 2014-09-01 20:33:15 -07:00
apple
arc net: ethernet: arc: Don't free Rockchip resources before disconnect from phy 2014-09-10 13:03:00 -07:00
atheros PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
broadcom bnx2x: Add a fallback multi-function mode NPAR1.5 2014-09-19 16:31:08 -04:00
brocade bna: use container_of to resolve bufdesc_ex from bufdesc 2014-09-15 12:49:11 -04:00
cadence net/macb: Add hardware revision information during probe 2014-09-13 17:34:37 -04:00
calxeda net: calxedaxgmac: fix driver dependencies 2014-09-02 13:23:25 -07:00
chelsio cxgb4/cxgb4vf: Add device ID for new adapter and remove for dbg adapter 2014-09-10 14:01:54 -07:00
cirrus cirrus: cs89x0: Use managed interfaces 2014-08-02 16:40:52 -07:00
cisco drivers/net: Convert remaining uses of pr_warning to pr_warn 2014-09-09 20:37:08 -07:00
davicom dm9000: Remove typedef board_info_t 2014-08-08 10:38:13 -07:00
dec tulip: dmfe: Fix global namespace pollution of phy accessors. 2014-08-27 18:25:40 -07:00
dlink PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
emulex be2net: enable PCIe error reporting on VFs too 2014-09-13 17:12:15 -04:00
faraday net: get rid of SET_ETHTOOL_OPS 2014-05-13 17:43:20 -04:00
freescale net: fec: Workaround for imx6sx enet tx hang when enable three queues 2014-09-19 15:36:50 -04:00
fujitsu drivers/net: ethernet: Remove typedef for struct and enum 2014-08-07 16:02:58 -07:00
hisilicon net: hisilicon: add hix5hd2 mac driver 2014-06-02 23:39:05 -07:00
hp hp100: Convert the normal skb free path to dev_consume_skb_any() 2014-09-08 15:39:58 -07:00
i825xx
ibm ehea: Fix TSO and hw checksums with non-accelerated vlan packets. 2014-08-25 17:27:09 -07:00
icplus PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
intel e1000: switch to napi_gro_frags api 2014-09-12 02:24:49 -07:00
marvell drivers/net: Convert remaining uses of pr_warning to pr_warn 2014-09-09 20:37:08 -07:00
mellanox net/mlx4_core: Enable CQE/EQE stride support 2014-09-19 17:30:10 -04:00
micrel PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
microchip net: get rid of SET_ETHTOOL_OPS 2014-05-13 17:43:20 -04:00
moxa net: moxa: continue loop on skb allocation failure 2014-08-25 17:25:39 -07:00
myricom PCI changes for the v3.17 merge window (part 2): 2014-08-14 18:10:33 -06:00
natsemi PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
neterion net: ethernet: neterion: vxge: vxge-main.c: Cleaning up missing null-terminate in conjunction with strncpy 2014-09-15 14:17:00 -04:00
nuvoton
nvidia ethernet: nvidia: Remove extra parens 2014-09-02 13:47:25 -07:00
nxp net: lpc_eth: Fix crash on ip link up 2014-09-02 13:21:55 -07:00
octeon octeon: remove deprecated syststamp timestamp 2014-07-29 11:39:49 -07:00
oki-semi PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
packetengines drivers/net: Convert remaining uses of pr_warning to pr_warn 2014-09-09 20:37:08 -07:00
pasemi PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
qlogic drivers/net: Convert remaining uses of pr_warning to pr_warn 2014-09-09 20:37:08 -07:00
rdc PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
realtek r8169: add missing MODULE_FIRMWARE. 2014-08-28 15:22:27 -07:00
renesas net: sh_eth: fix driver dependencies 2014-09-02 13:23:25 -07:00
samsung net: sxgbe: remove duplicate SXGBE_CORE_L34_ADDCTL_REG define 2014-06-11 15:01:30 -07:00
seeq
sfc sfc: Convert the normal transmit complete path to dev_consume_skb_any() 2014-09-09 17:33:56 -07:00
sgi PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
silan PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
sis PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
smsc PCI changes for the v3.17 merge window (part 2): 2014-08-14 18:10:33 -06:00
stmicro net: stmmac: fix return value check in socfpga_dwmac_parse_data() 2014-09-13 16:42:47 -04:00
sun sunvnet: Avoid sending superfluous LDC messages. 2014-09-12 18:19:08 -04:00
tehuti PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
ti ethernet: ti: remove unwanted THIS_MODULE macro 2014-09-09 11:59:14 -07:00
tile drivers/net: Convert remaining uses of pr_warning to pr_warn 2014-09-09 20:37:08 -07:00
toshiba PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
tundra
via PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
wiznet
xilinx net: axienet: remove unnecessary ether_setup after alloc_etherdev 2014-09-12 18:15:40 -04:00
xircom ethernet: amd: Remove typedef local_info_t 2014-08-11 12:19:53 -07:00
xscale
dnet.c net: dnet: Use managed interfaces 2014-08-02 16:40:52 -07:00
dnet.h
ec_bhf.c net: ec_bhf: remove excessive debug messages 2014-08-24 18:36:57 -07:00
ethoc.c net: ethoc: remove ethoc_config 2014-04-21 14:58:48 -04:00
fealnx.c PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
jme.c PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
jme.h
Kconfig drivers: net: Add APM X-Gene SoC ethernet driver support. 2014-08-11 11:50:33 -07:00
korina.c
lantiq_etop.c
Makefile drivers: net: Add APM X-Gene SoC ethernet driver support. 2014-08-11 11:50:33 -07:00
netx-eth.c
s6gmac.c