Merge branch 'work.splice_read' of git://git.kernel.org/pub/scm/linux/kernel/git...
[cascardo/linux.git] / Documentation / infiniband / sysfs.txt
1 SYSFS FILES
2
3   For each InfiniBand device, the InfiniBand drivers create the
4   following files under /sys/class/infiniband/<device name>:
5
6     node_type      - Node type (CA, switch or router)
7     node_guid      - Node GUID
8     sys_image_guid - System image GUID
9
10   In addition, there is a "ports" subdirectory, with one subdirectory
11   for each port.  For example, if mthca0 is a 2-port HCA, there will
12   be two directories:
13
14     /sys/class/infiniband/mthca0/ports/1
15     /sys/class/infiniband/mthca0/ports/2
16
17   (A switch will only have a single "0" subdirectory for switch port
18   0; no subdirectory is created for normal switch ports)
19
20   In each port subdirectory, the following files are created:
21
22     cap_mask       - Port capability mask
23     lid            - Port LID
24     lid_mask_count - Port LID mask count
25     rate           - Port data rate (active width * active speed)
26     sm_lid         - Subnet manager LID for port's subnet
27     sm_sl          - Subnet manager SL for port's subnet
28     state          - Port state (DOWN, INIT, ARMED, ACTIVE or ACTIVE_DEFER)
29     phys_state     - Port physical state (Sleep, Polling, LinkUp, etc)
30
31   There is also a "counters" subdirectory, with files
32
33     VL15_dropped
34     excessive_buffer_overrun_errors
35     link_downed
36     link_error_recovery
37     local_link_integrity_errors
38     port_rcv_constraint_errors
39     port_rcv_data
40     port_rcv_errors
41     port_rcv_packets
42     port_rcv_remote_physical_errors
43     port_rcv_switch_relay_errors
44     port_xmit_constraint_errors
45     port_xmit_data
46     port_xmit_discards
47     port_xmit_packets
48     symbol_error
49
50   Each of these files contains the corresponding value from the port's
51   Performance Management PortCounters attribute, as described in
52   section 16.1.3.5 of the InfiniBand Architecture Specification.
53
54   The "pkeys" and "gids" subdirectories contain one file for each
55   entry in the port's P_Key or GID table respectively.  For example,
56   ports/1/pkeys/10 contains the value at index 10 in port 1's P_Key
57   table.
58
59   There is an optional "hw_counters" subdirectory that may be under either
60   the parent device or the port subdirectories or both.  If present,
61   there are a list of counters provided by the hardware.  They may match
62   some of the counters in the counters directory, but they often include
63   many other counters.  In addition to the various counters, there will
64   be a file named "lifespan" that configures how frequently the core
65   should update the counters when they are being accessed (counters are
66   not updated if they are not being accessed).  The lifespan is in milli-
67   seconds and defaults to 10 unless set to something else by the driver.
68   Users may echo a value between 0 - 10000 to the lifespan file to set
69   the length of time between updates in milliseconds.
70
71 MTHCA
72
73   The Mellanox HCA driver also creates the files:
74
75     hw_rev   - Hardware revision number
76     fw_ver   - Firmware version
77     hca_type - HCA type: "MT23108", "MT25208 (MT23108 compat mode)",
78                or "MT25208"
79
80 HFI1
81
82   The hfi1 driver also creates these additional files:
83
84    hw_rev - hardware revision
85    board_id - manufacturing board id
86    tempsense - thermal sense information
87    serial - board serial number
88    nfreectxts - number of free user contexts
89    nctxts - number of allowed contexts (PSM2)
90    chip_reset - diagnostic (root only)
91    boardversion - board version
92
93    sdma<N>/ - one directory per sdma engine (0 - 15)
94         sdma<N>/cpu_list - read-write, list of cpus for user-process to sdma
95                            engine assignment.
96         sdma<N>/vl - read-only, vl the sdma engine maps to.
97
98         The new interface will give the user control on the affinity settings
99         for the hfi1 device.
100         As an example, to set an sdma engine irq affinity and thread affinity
101         of a user processes to use the sdma engine, which is "near" in terms
102         of NUMA configuration, or physical cpu location, the user will do:
103
104         echo "3" > /proc/irq/<N>/smp_affinity_list
105         echo "4-7" > /sys/devices/.../sdma3/cpu_list
106         cat /sys/devices/.../sdma3/vl
107         0
108         echo "8" > /proc/irq/<M>/smp_affinity_list
109         echo "9-12" > /sys/devices/.../sdma4/cpu_list
110         cat /sys/devices/.../sdma4/vl
111         1
112
113         to make sure that when a process runs on cpus 4,5,6, or 7,
114         and uses vl=0, then sdma engine 3 is selected by the driver,
115         and also the interrupt of the sdma engine 3 is steered to cpu 3.
116         Similarly, when a process runs on cpus 9,10,11, or 12 and sets vl=1,
117         then engine 4 will be selected and the irq of the sdma engine 4 is
118         steered to cpu 8.
119         This assumes that in the above N is the irq number of "sdma3",
120         and M is irq number of "sdma4" in the /proc/interrupts file.
121
122    ports/1/
123           CCMgtA/
124                cc_settings_bin - CCA tables used by PSM2
125                cc_table_bin
126                cc_prescan - enable prescaning for faster BECN response
127           sc2v/ - 32 files (0 - 31) used to translate sl->vl
128           sl2sc/ - 32 files (0 - 31) used to translate sl->sc
129           vl2mtu/ - 16 (0 - 15) files used to determine MTU for vl