linux_dsm_epyc7002/drivers/net/ethernet
Hariprasad Shenai 7730b4c7e3 cxgb4/iw_cxgb4: work request logging feature
This commit enhances the iwarp driver to optionally keep a log of rdma
work request timining data for kernel mode QPs.  If iw_cxgb4 module option
c4iw_wr_log is set to non-zero, each work request is tracked and timing
data maintained in a rolling log that is 4096 entries deep by default.
Module option c4iw_wr_log_size_order allows specifing a log2 size to use
instead of the default order of 12 (4096 entries). Both module options
are read-only and must be passed in at module load time to set them. IE:

modprobe iw_cxgb4 c4iw_wr_log=1 c4iw_wr_log_size_order=10

The timing data is viewable via the iw_cxgb4 debugfs file "wr_log".
Writing anything to this file will clear all the timing data.
Data tracked includes:

- The host time when the work request was posted, just before ringing
the doorbell.  The host time when the completion was polled by the
application.  This is also the time the log entry is created.  The delta
of these two times is the amount of time took processing the work request.

- The qid of the EQ used to post the work request.

- The work request opcode.

- The cqe wr_id field.  For sq completions requests this is the swsqe
index.  For recv completions this is the MSN of the ingress SEND.
This value can be used to match log entries from this log with firmware
flowc event entries.

- The sge timestamp value just before ringing the doorbell when
posting,  the sge timestamp value just after polling the completion,
and CQE.timestamp field from the completion itself.  With these three
timestamps we can track the latency from post to poll, and the amount
of time the completion resided in the CQ before being reaped by the
application.  With debug firmware, the sge timestamp is also logged by
firmware in its flowc history so that we can compute the latency from
posting the work request until the firmware sees it.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-07-15 16:25:16 -07:00
..
3com
8390 net: set name_assign_type in alloc_netdev() 2014-07-15 16:12:48 -07:00
adaptec
adi
aeroflex
allwinner net: allwinner: emac: Add missing free_irq 2014-06-25 16:31:17 -07:00
alteon
altera
amd ethernet: amd: fix 'foo* bar' 2014-07-14 19:14:15 -07:00
apple
arc arc_emac: Remove unused pointer to net_device from arc_emac_priv 2014-07-09 16:49:21 -07:00
atheros
broadcom net: systemport: use kcalloc instead of kzalloc 2014-07-09 18:19:54 -07:00
brocade Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-06-12 14:27:40 -07:00
cadence
calxeda
chelsio cxgb4/iw_cxgb4: work request logging feature 2014-07-15 16:25:16 -07:00
cirrus
cisco enic: fix return values in enic_set_coalesce 2014-07-07 21:33:46 -07:00
davicom
dec tulip: Poll link status more frequently for Comet chips 2014-06-22 17:12:36 -07:00
dlink
emulex be2net: re-enable vlan filtering mode asap 2014-07-02 18:40:56 -07:00
faraday
freescale net: fec: consolidate hwtstamp implementation 2014-07-08 20:57:46 -07:00
fujitsu
hisilicon
hp
i825xx
ibm
icplus
intel i40evf: remove unnecessary break after goto 2014-07-13 23:45:24 -07:00
marvell net: mvpp2: Fix a typo in the license 2014-07-15 16:07:01 -07:00
mellanox net/mlx4_en: Fix mac_hash database inconsistency 2014-07-08 19:58:45 -07:00
micrel
microchip
moxa
myricom
natsemi
neterion
nuvoton
nvidia
nxp
octeon
oki-semi
packetengines
pasemi
qlogic bridge: fdb dumping takes a filter device 2014-07-10 12:37:33 -07:00
rdc
realtek r8169: support IPv6 2014-07-11 14:32:54 -07:00
renesas sh_eth: remove checks around dev_kfree_skb() calls 2014-07-02 17:37:46 -07:00
samsung net: sxgbe: remove duplicate SXGBE_CORE_L34_ADDCTL_REG define 2014-06-11 15:01:30 -07:00
seeq
sfc sfc: Add 40G link capability decoding 2014-07-14 19:11:48 -07:00
sgi
silan
sis
smsc
stmicro
sun
tehuti
ti net: cpmac: fix in debug messages 2014-07-10 16:55:22 -07:00
tile net: set name_assign_type in alloc_netdev() 2014-07-15 16:12:48 -07:00
toshiba ps3_gelic: remove unnecessary break after goto 2014-07-13 23:45:24 -07:00
tundra
via via-rhine: fix full-duplex with autoneg disable 2014-06-12 10:31:10 -07:00
wiznet
xilinx xilinx: Fix compiler warning 2014-06-22 17:14:56 -07:00
xircom
xscale
dnet.c
dnet.h
ec_bhf.c
ethoc.c
fealnx.c
jme.c
jme.h
Kconfig
korina.c
lantiq_etop.c
Makefile
netx-eth.c
s6gmac.c