OpenCloudOS-Kernel/drivers/infiniband/hw/hfi1
Don Hiatt 0181ce31b2 IB/hfi1: Add receive fault injection feature
Add fault injection capability:
  - Drop packets unconditionally (fault_by_packet)
  - Drop packets based on opcode (fault_by_opcode)

This feature reacts to the global FAULT_INJECTION
config flag.

The faulting traces have been added:
  - misc/fault_opcode
  - misc/fault_packet

See 'Documentation/fault-injection/fault-injection.txt'
for details.

Examples:
  - Dropping packets by opcode:
    /sys/kernel/debug/hfi1/hfi1_X/fault_opcode
	# Enable fault
	echo Y > fault_by_opcode
	# Setprobability of dropping (0-100%)
	# echo 25 > probability
	# Set opcode
	echo 0x64 > opcode
	# Number of times to fault
	echo 3 > times
	# An optional mask allows you to fault
	# a range of opcodes
	echo 0xf0 > mask
    /sys/kernel/debug/hfi1/hfi1_X/fault_stats
    contains a value in parentheses to indicate
    number of each opcode dropped.

  - Dropping packets unconditionally
    /sys/kernel/debug/hfi1/hfi1_X/fault_packet
	# Enable fault
	echo Y > fault_by_packet
    /sys/kernel/debug/hfi1/hfi1_X/fault_packet/fault_stats
    contains the number of packets dropped.

Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Don Hiatt <don.hiatt@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2017-04-05 14:45:09 -04:00
..
Kconfig Second round of merge items for 4.8 2016-08-04 20:26:31 -04:00
Makefile IB/hfi1: Remove TWSI references 2016-08-02 15:47:42 -04:00
affinity.c sched/core: Remove the tsk_cpus_allowed() wrapper 2017-03-02 08:42:24 +01:00
affinity.h Updates for 4.10 kernel merge window 2016-12-15 12:03:32 -08:00
aspm.h
chip.c IB/hfi1: Add a patch value to the firmware version string 2017-04-05 14:45:09 -04:00
chip.h IB/hfi1: Add a patch value to the firmware version string 2017-04-05 14:45:09 -04:00
chip_registers.h IB/hfi1: Add active channel and backplane support for integrated devices 2016-11-15 16:37:27 -05:00
common.h IB/hfi1, qib, rdmavt: Move AETH credit functions into rdmavt 2017-02-19 09:18:38 -05:00
debugfs.c IB/hfi1: Add receive fault injection feature 2017-04-05 14:45:09 -04:00
debugfs.h IB/hfi1: Add receive fault injection feature 2017-04-05 14:45:09 -04:00
device.c
device.h
driver.c IB/hfi1: Add receive fault injection feature 2017-04-05 14:45:09 -04:00
efivar.c IB/hfi1: Check upper-case EFI variables 2017-02-19 09:18:37 -05:00
efivar.h
eprom.c IB/hfi1: Read new EPROM format 2016-12-11 15:25:13 -05:00
eprom.h IB/hfi1: Add ability to read platform config from the EPROM 2016-10-02 08:42:20 -04:00
file_ops.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/mm.h> 2017-03-02 08:42:28 +01:00
firmware.c IB/hfi1: Add a patch value to the firmware version string 2017-04-05 14:45:09 -04:00
hfi.h IB/hfi1: Add a patch value to the firmware version string 2017-04-05 14:45:09 -04:00
init.c IB/hfi1: Check device id early during init 2017-04-05 14:45:09 -04:00
intr.c
iowait.h IB/hfi1: Add unique txwait_lock for txreq events 2016-11-15 16:25:59 -05:00
mad.c IB/hfi1: Switch from dma_device to dev.parent 2017-01-24 12:23:35 -05:00
mad.h IB/hfi1: Clean up port state structure definition 2016-08-02 12:00:54 -04:00
mmu_rb.c IB/hfi1: constify mmu_notifier_ops structure 2016-12-11 15:29:42 -05:00
mmu_rb.h IB/hfi1: Remove unneeded mm argument in remove function 2016-08-02 22:46:21 -04:00
opa_compat.h
pcie.c IB/hfi1: Use static CTLE with Preset 6 for integrated HFIs 2017-02-19 09:18:34 -05:00
pio.c Updates for 4.10 kernel merge window 2016-12-15 12:03:32 -08:00
pio.h IB/hfi1: Optimize pio_buf and send_context structs 2016-11-15 16:37:27 -05:00
pio_copy.c IB/hfi1: Optimize pio_buf and send_context structs 2016-11-15 16:37:27 -05:00
platform.c IB/hfi1: Add special setting for low power AOC 2016-12-11 15:29:42 -05:00
platform.h IB/hfi1: Define platform_config_table_limits once 2016-12-11 15:29:42 -05:00
qp.c IB/hfi1: Use new rdmavt timers 2017-02-19 09:18:39 -05:00
qp.h IB/hfi1, qib, rdmavt: Move AETH credit functions into rdmavt 2017-02-19 09:18:38 -05:00
qsfp.c IB/hfi1: Extend i2c timeout 2016-10-02 08:42:13 -04:00
qsfp.h IB/hfi1: Fetch monitor values on-demand for CableInfo query 2016-08-22 14:31:41 -04:00
rc.c IB/rdmavt: Add swqe completion trace 2017-04-05 14:45:09 -04:00
ruc.c IB/rdmavt: Add swqe completion trace 2017-04-05 14:45:09 -04:00
sdma.c IB/hfi1: Ensure VL index is within bounds 2017-04-05 14:45:09 -04:00
sdma.h IB/hfi1: Inline sdma_txclean() for verbs pio 2016-11-15 16:25:59 -05:00
sdma_txreq.h
sysfs.c IB/hfi1: Remove redundant sysfs irq affinity entry 2016-11-15 16:16:40 -05:00
trace.c IB/hfi1, qib, rdmavt: Move AETH defines to rdma/ib_hdrs.h 2017-02-19 09:18:44 -05:00
trace.h IB/hfi1: Separate tracepoints into specific headers 2016-08-02 12:00:54 -04:00
trace_ctxts.h IB/hfi1: Fix user-space buffers mapping with IOMMU enabled 2016-10-02 08:42:07 -04:00
trace_dbg.h IB/hfi1: Separate tracepoints into specific headers 2016-08-02 12:00:54 -04:00
trace_ibhdrs.h IB/qib,IB/hfi: Use core common header file 2016-10-02 08:42:06 -04:00
trace_misc.h IB/hfi1: Add receive fault injection feature 2017-04-05 14:45:09 -04:00
trace_rc.h IB/rdmavt, IB/hfi1: Fix timer migration regressions 2017-04-05 14:45:09 -04:00
trace_rx.h IB/hfi1: Remove leftover snoop references 2016-11-15 16:16:43 -05:00
trace_tx.h IB/rdmavt: Add swqe completion trace 2017-04-05 14:45:09 -04:00
uc.c IB/hfi1, rdmavt: Update copy_sge to use boolean arguments 2017-02-19 09:18:41 -05:00
ud.c IB/hfi1, rdmavt: Move SGE state helper routines into rdmavt 2017-02-19 09:18:41 -05:00
user_exp_rcv.c IB/hfi1: Code reuse with memdup_copy 2017-02-19 09:18:45 -05:00
user_exp_rcv.h
user_pages.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/signal.h> 2017-03-02 08:42:29 +01:00
user_sdma.c IB/hfi1: Race hazard avoidance in user SDMA driver 2017-04-05 14:45:09 -04:00
user_sdma.h IB/hfi1: Use evict mmu rb operation 2016-08-02 22:46:21 -04:00
verbs.c IB/hfi1: Add receive fault injection feature 2017-04-05 14:45:09 -04:00
verbs.h IB/hfi1: Add receive fault injection feature 2017-04-05 14:45:09 -04:00
verbs_txreq.c IB/hfi1: Add unique txwait_lock for txreq events 2016-11-15 16:25:59 -05:00
verbs_txreq.h IB/hfi1: Remove dependence on qp->s_cur_size 2016-12-11 15:25:13 -05:00