3 For each InfiniBand device, the InfiniBand drivers create the
4 following files under /sys/class/infiniband/<device name>:
6 node_type - Node type (CA, switch or router)
8 sys_image_guid - System image GUID
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
14 /sys/class/infiniband/mthca0/ports/1
15 /sys/class/infiniband/mthca0/ports/2
17 (A switch will only have a single "0" subdirectory for switch port
18 0; no subdirectory is created for normal switch ports)
20 In each port subdirectory, the following files are created:
22 cap_mask - Port capability mask
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)
31 There is also a "counters" subdirectory, with files
34 excessive_buffer_overrun_errors
37 local_link_integrity_errors
38 port_rcv_constraint_errors
42 port_rcv_remote_physical_errors
43 port_rcv_switch_relay_errors
44 port_xmit_constraint_errors
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.
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
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.
73 The Mellanox HCA driver also creates the files:
75 hw_rev - Hardware revision number
76 fw_ver - Firmware version
77 hca_type - HCA type: "MT23108", "MT25208 (MT23108 compat mode)",
82 The hfi1 driver also creates these additional files:
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
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
96 sdma<N>/vl - read-only, vl the sdma engine maps to.
98 The new interface will give the user control on the affinity settings
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:
104 echo "3" > /proc/irq/<N>/smp_affinity_list
105 echo "4-7" > /sys/devices/.../sdma3/cpu_list
106 cat /sys/devices/.../sdma3/vl
108 echo "8" > /proc/irq/<M>/smp_affinity_list
109 echo "9-12" > /sys/devices/.../sdma4/cpu_list
110 cat /sys/devices/.../sdma4/vl
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
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.
124 cc_settings_bin - CCA tables used by PSM2
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