| SYSFS FILES |
| |
| For each InfiniBand device, the InfiniBand drivers create the |
| following files under /sys/class/infiniband/<device name>: |
| |
| node_type - Node type (CA, switch or router) |
| node_guid - Node GUID |
| sys_image_guid - System image GUID |
| |
| In addition, there is a "ports" subdirectory, with one subdirectory |
| for each port. For example, if mthca0 is a 2-port HCA, there will |
| be two directories: |
| |
| /sys/class/infiniband/mthca0/ports/1 |
| /sys/class/infiniband/mthca0/ports/2 |
| |
| (A switch will only have a single "0" subdirectory for switch port |
| 0; no subdirectory is created for normal switch ports) |
| |
| In each port subdirectory, the following files are created: |
| |
| cap_mask - Port capability mask |
| lid - Port LID |
| lid_mask_count - Port LID mask count |
| rate - Port data rate (active width * active speed) |
| sm_lid - Subnet manager LID for port's subnet |
| sm_sl - Subnet manager SL for port's subnet |
| state - Port state (DOWN, INIT, ARMED, ACTIVE or ACTIVE_DEFER) |
| phys_state - Port physical state (Sleep, Polling, LinkUp, etc) |
| |
| There is also a "counters" subdirectory, with files |
| |
| VL15_dropped |
| excessive_buffer_overrun_errors |
| link_downed |
| link_error_recovery |
| local_link_integrity_errors |
| port_rcv_constraint_errors |
| port_rcv_data |
| port_rcv_errors |
| port_rcv_packets |
| port_rcv_remote_physical_errors |
| port_rcv_switch_relay_errors |
| port_xmit_constraint_errors |
| port_xmit_data |
| port_xmit_discards |
| port_xmit_packets |
| symbol_error |
| |
| Each of these files contains the corresponding value from the port's |
| Performance Management PortCounters attribute, as described in |
| section 16.1.3.5 of the InfiniBand Architecture Specification. |
| |
| The "pkeys" and "gids" subdirectories contain one file for each |
| entry in the port's P_Key or GID table respectively. For example, |
| ports/1/pkeys/10 contains the value at index 10 in port 1's P_Key |
| table. |
| |
| There is an optional "hw_counters" subdirectory that may be under either |
| the parent device or the port subdirectories or both. If present, |
| there are a list of counters provided by the hardware. They may match |
| some of the counters in the counters directory, but they often include |
| many other counters. In addition to the various counters, there will |
| be a file named "lifespan" that configures how frequently the core |
| should update the counters when they are being accessed (counters are |
| not updated if they are not being accessed). The lifespan is in milli- |
| seconds and defaults to 10 unless set to something else by the driver. |
| Users may echo a value between 0 - 10000 to the lifespan file to set |
| the length of time between updates in milliseconds. |
| |
| MTHCA |
| |
| The Mellanox HCA driver also creates the files: |
| |
| hw_rev - Hardware revision number |
| fw_ver - Firmware version |
| hca_type - HCA type: "MT23108", "MT25208 (MT23108 compat mode)", |
| or "MT25208" |
| |
| HFI1 |
| |
| The hfi1 driver also creates these additional files: |
| |
| hw_rev - hardware revision |
| board_id - manufacturing board id |
| tempsense - thermal sense information |
| serial - board serial number |
| nfreectxts - number of free user contexts |
| nctxts - number of allowed contexts (PSM2) |
| chip_reset - diagnostic (root only) |
| boardversion - board version |
| |
| sdma<N>/ - one directory per sdma engine (0 - 15) |
| sdma<N>/cpu_list - read-write, list of cpus for user-process to sdma |
| engine assignment. |
| sdma<N>/vl - read-only, vl the sdma engine maps to. |
| |
| The new interface will give the user control on the affinity settings |
| for the hfi1 device. |
| As an example, to set an sdma engine irq affinity and thread affinity |
| of a user processes to use the sdma engine, which is "near" in terms |
| of NUMA configuration, or physical cpu location, the user will do: |
| |
| echo "3" > /proc/irq/<N>/smp_affinity_list |
| echo "4-7" > /sys/devices/.../sdma3/cpu_list |
| cat /sys/devices/.../sdma3/vl |
| 0 |
| echo "8" > /proc/irq/<M>/smp_affinity_list |
| echo "9-12" > /sys/devices/.../sdma4/cpu_list |
| cat /sys/devices/.../sdma4/vl |
| 1 |
| |
| to make sure that when a process runs on cpus 4,5,6, or 7, |
| and uses vl=0, then sdma engine 3 is selected by the driver, |
| and also the interrupt of the sdma engine 3 is steered to cpu 3. |
| Similarly, when a process runs on cpus 9,10,11, or 12 and sets vl=1, |
| then engine 4 will be selected and the irq of the sdma engine 4 is |
| steered to cpu 8. |
| This assumes that in the above N is the irq number of "sdma3", |
| and M is irq number of "sdma4" in the /proc/interrupts file. |
| |
| ports/1/ |
| CCMgtA/ |
| cc_settings_bin - CCA tables used by PSM2 |
| cc_table_bin |
| cc_prescan - enable prescaning for faster BECN response |
| sc2v/ - 32 files (0 - 31) used to translate sl->vl |
| sl2sc/ - 32 files (0 - 31) used to translate sl->sc |
| vl2mtu/ - 16 (0 - 15) files used to determine MTU for vl |