Re: [PATCH v2] Documentation/ABI: update infiniband sysfs interfaces
From: Hal Rosenstock
Date: Tue Feb 06 2018 - 07:42:39 EST
On 2/6/2018 2:24 AM, Aishwarya Pant wrote:
> Add documentation for core and hardware specific infiniband interfaces.
> The descriptions have been collected from git commit logs, reading
> through code and data sheets. Some drivers have incomplete doc and are
> annotated with the comment '[to be documented]'.
>
> Signed-off-by: Aishwarya Pant <aishpant@xxxxxxxxx>
Looks good. One nit below.
> ---
> Changes in v2:
> - Move infiniband interface from testing to stable
> - Fix typos
> - Update description of cap_mask, port_xmit_constraint_errors and
> port_rcv_constraint_errors
> - Add doc for hw_counters
> - Remove old documentation
>
> Documentation/ABI/stable/sysfs-class-infiniband | 818 +++++++++++++++++++++++
> Documentation/ABI/testing/sysfs-class-infiniband | 16 -
> Documentation/infiniband/sysfs.txt | 129 +---
> 3 files changed, 820 insertions(+), 143 deletions(-)
> create mode 100644 Documentation/ABI/stable/sysfs-class-infiniband
> delete mode 100644 Documentation/ABI/testing/sysfs-class-infiniband
>
> diff --git a/Documentation/ABI/stable/sysfs-class-infiniband b/Documentation/ABI/stable/sysfs-class-infiniband
> new file mode 100644
> index 000000000000..f9c709a8d0ab
> --- /dev/null
> +++ b/Documentation/ABI/stable/sysfs-class-infiniband
> @@ -0,0 +1,818 @@
> +sysfs interface common for all infiniband devices
> +-------------------------------------------------
> +
> +What: /sys/class/infiniband/<device>/node_type
> +What: /sys/class/infiniband/<device>/node_guid
> +What: /sys/class/infiniband/<device>/sys_image_guid
> +Date: Apr, 2005
> +KernelVersion: v2.6.12
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + node_type: (RO) Node type (CA, RNIC, usNIC, usNIC UDP,
> + switch or router)
> +
> + node_guid: (RO) Node GUID
> +
> + sys_image_guid: (RO) System image GUID
> +
> +
> +What: /sys/class/infiniband/<device>/node_desc
> +Date: Feb, 2006
> +KernelVersion: v2.6.17
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + (RW) Update the node description with information such as the
> + node's hostname, so that IB network management software can tie
> + its view to the real world.
> +
> +
> +What: /sys/class/infiniband/<device>/fw_ver
> +Date: Jun, 2016
> +KernelVersion: v4.10
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + (RO) Display firmware version
> +
> +
> +What: /sys/class/infiniband/<device>/ports/<port-num>/lid
> +What: /sys/class/infiniband/<device>/ports/<port-num>/rate
> +What: /sys/class/infiniband/<device>/ports/<port-num>/lid_mask_count
> +What: /sys/class/infiniband/<device>/ports/<port-num>/sm_sl
> +What: /sys/class/infiniband/<device>/ports/<port-num>/sm_lid
> +What: /sys/class/infiniband/<device>/ports/<port-num>/state
> +What: /sys/class/infiniband/<device>/ports/<port-num>/phys_state
> +What: /sys/class/infiniband/<device>/ports/<port-num>/cap_mask
> +Date: Apr, 2005
> +KernelVersion: v2.6.12
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> +
> + lid: (RO) Port LID
> +
> + rate: (RO) Port data rate (active width * active
> + speed)
> +
> + lid_mask_count: (RO) Port LID mask count
> +
> + sm_sl: (RO) Subnet manager SL for port's subnet
> +
> + sm_lid: (RO) Subnet manager LID for port's subnet
> +
> + state: (RO) Port state (DOWN, INIT, ARMED, ACTIVE or
> + ACTIVE_DEFER)
> +
> + phys_state: (RO) Port physical state (Sleep, Polling,
> + LinkUp, etc)
> +
> + cap_mask: (RO) Port capability mask. 2 bits here are
> + settable- IsCommunicationManagementSupported
> + (set when CM module is loaded) and IsSM (set via
> + open of issmN file).
> +
> +
> +What: /sys/class/infiniband/<device>/ports/<port-num>/link_layer
> +Date: Oct, 2010
> +KernelVersion: v2.6.37
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + (RO) Link layer type information (Infiniband or Ethernet type)
> +
> +
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/symbol_error
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/port_rcv_errors
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/port_rcv_remote_physical_errors
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/port_rcv_switch_relay_errors
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/link_error_recovery
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/port_xmit_constraint_errors
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/port_rcv_contraint_errors
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/local_link_integrity_errors
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/excessive_buffer_overrun_errors
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/port_xmit_data
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/port_rcv_data
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/port_xmit_packets
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/port_rcv_packets
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/unicast_rcv_packets
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/unicast_xmit_packets
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/multicast_rcv_packets
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/multicast_xmit_packets
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/link_downed
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/port_xmit_discards
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/VL15_dropped
> +What: /sys/class/infiniband/<device>/ports/<port-num>/counters/port_xmit_wait
> +Date: Apr, 2005
> +KernelVersion: v2.6.12
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + Errors info:
> + -----------
> +
> + symbol_error: (RO) Total number of minor link errors detected on
> + one or more physical lanes.
> +
> + port_rcv_errors : (RO) Total number of packets containing an
> + error that were received on the port.
> +
> + port_rcv_remote_physical_errors : (RO) Total number of packets
> + marked with the EBP delimiter received on the port.
> +
> + port_rcv_switch_relay_errors : (RO) Total number of packets
> + received on the port that were discarded because they could not
> + be forwarded by the switch relay.
> +
> + link_error_recovery: (RO) Total number of times the Port
> + Training state machine has successfully completed the link error
> + recovery process.
> +
> + port_xmit_constraint_errors: (RO) Total number of packets not
> + transmitted from the switch physical port due to outbound raw
> + filtering or failing outbound partition or IP version check.
> +
> + port_rcv_constraint_errors: (RO) Total number of packets
> + received on the switch physical port that are discarded due to
> + inbound raw filtering or failing outbound partition or IP
> + version check.
Nit: cut 'n paste error I provided here:
outbound -> inbound
> +
> + local_link_integrity_errors: (RO) The number of times that the
> + count of local physical errors exceeded the threshold specified
> + by LocalPhyErrors
> +
> + excessive_buffer_overrun_errors: (RO) This counter, indicates an
> + input buffer overrun. It indicates possible misconfiguration of
> + a port, either by the Subnet Manager (SM) or by user
> + intervention. It can also indicate hardware issues or extremely
> + poor link signal integrity
> +
> + Data info:
> + ---------
> +
> + port_xmit_data: (RO) Total number of data octets, divided by 4
> + (lanes), transmitted on all VLs. This is 64 bit counter
> +
> + port_rcv_data: (RO) Total number of data octets, divided by 4
> + (lanes), received on all VLs. This is 64 bit counter.
> +
> + port_xmit_packets: (RO) Total number of packets transmitted on
> + all VLs from this port. This may include packets with errors.
> + This is 64 bit counter.
> +
> + port_rcv_packets: (RO) Total number of packets (this may include
> + packets containing Errors. This is 64 bit counter.
> +
> + link_downed: (RO) Total number of times the Port Training state
> + machine has failed the link error recovery process and downed
> + the link.
> +
> + unicast_rcv_packets: (RO) Total number of unicast packets,
> + including unicast packets containing errors.
> +
> + unicast_xmit_packets: (RO) Total number of unicast packets
> + transmitted on all VLs from the port. This may include unicast
> + packets with errors.
> +
> + multicast_rcv_packets: (RO) Total number of multicast packets,
> + including multicast packets containing errors.
> +
> + multicast_xmit_packets: (RO) Total number of multicast packets
> + transmitted on all VLs from the port. This may include multicast
> + packets with errors.
> +
> + Misc info:
> + ---------
> +
> + port_xmit_discards: (RO) Total number of outbound packets
> + discarded by the port because the port is down or congested.
> +
> + VL15_dropped: (RO) Number of incoming VL15 packets dropped due
> + to resource limitations (e.g., lack of buffers) of the port.
> +
> + port_xmit_wait: (RO) The number of ticks during which the port
> + had data to transmit but no data was sent during the entire tick
> + (either because of insufficient credits or because of lack of
> + arbitration).
> +
> + Each of these files contains the corresponding value from the
> + port's Performance Management PortCounters attribute, as
> + described in the InfiniBand Architecture Specification.
> +
> +
> +What: /sys/class/infiniband/<device-name>/hw_counters/lifespan
> +What: /sys/class/infiniband/<device-name>/ports/<port-num>/hw_counters/lifespan
> +Date: May, 2016
> +KernelVersion: 4.6
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + The optional "hw_counters" subdirectory can 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 milliseconds 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.
> +
> +
> +What: /sys/class/infiniband/<hca>/ports/<port-number>/gid_attrs/ndevs/<gid-index>
> +Date: November 29, 2015
> +KernelVersion: 4.4.0
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description: The net-device's name associated with the GID resides
> + at index <gid-index>.
> +
> +What: /sys/class/infiniband/<hca>/ports/<port-number>/gid_attrs/types/<gid-index>
> +Date: November 29, 2015
> +KernelVersion: 4.4.0
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description: The RoCE type of the associated GID resides at index <gid-index>.
> + This could either be "IB/RoCE v1" for IB and RoCE v1 based GODs
> + or "RoCE v2" for RoCE v2 based GIDs.
> +
> +
> +What: /sys/class/infiniband_mad/umadN/ibdev
> +What: /sys/class/infiniband_mad/umadN/port
> +What: /sys/class/infiniband_mad/issmN/ibdev
> +What: /sys/class/infiniband_mad/issmN/port
> +Date: Apr, 2005
> +KernelVersion: v2.6.12
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + Each port of each InfiniBand device has a "umad" device and an
> + "issm" device attached. For example, a two-port HCA will have
> + two umad devices and two issm devices, while a switch will have
> + one device of each type (for switch port 0).
> +
> + ibdev: (RO) Show Infiniband (IB) device name
> +
> + port: (RO) Display port number
> +
> +
> +What: /sys/class/infiniband_mad/abi_version
> +Date: Apr, 2005
> +KernelVersion: v2.6.12
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + (RO) Value is incremented if any changes are made that break
> + userspace ABI compatibility of umad & issm devices.
> +
> +
> +What: /sys/class/infiniband_cm/ucmN/ibdev
> +Date: Oct, 2005
> +KernelVersion: v2.6.14
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + (RO) Display Infiniband (IB) device name
> +
> +
> +What: /sys/class/infiniband_cm/abi_version
> +Date: Oct, 2005
> +KernelVersion: v2.6.14
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + (RO) Value is incremented if any changes are made that break
> + userspace ABI compatibility of ucm devices.
> +
> +
> +What: /sys/class/infiniband_verbs/uverbsN/ibdev
> +What: /sys/class/infiniband_verbs/uverbsN/abi_version
> +Date: Sept, 2005
> +KernelVersion: v2.6.14
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + ibdev: (RO) Display Infiniband (IB) device name
> +
> + abi_version: (RO) Show ABI version of IB device specific
> + interfaces.
> +
> +
> +What: /sys/class/infiniband_verbs/abi_version
> +Date: Sep, 2005
> +KernelVersion: v2.6.14
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + (RO) Value is incremented if any changes are made that break
> + userspace ABI compatibility uverbs devices.
> +
> +
> +sysfs interface for Mellanox IB HCA low-level driver (mthca)
> +------------------------------------------------------------
> +
> +What: /sys/class/infiniband/mthcaX/hw_rev
> +What: /sys/class/infiniband/mthcaX/hca_type
> +What: /sys/class/infiniband/mthcaX/board_id
> +Date: Apr, 2005
> +KernelVersion: v2.6.12
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + hw_rev: (RO) Hardware revision number
> +
> + hca_type: (RO) Host Channel Adapter type: MT23108, MT25208
> + (MT23108 compat mode), MT25208 or MT25204
> +
> + board_id: (RO) Manufacturing board ID
> +
> +
> +sysfs interface for Chelsio T3 RDMA Driver (cxgb3)
> +--------------------------------------------------
> +
> +What: /sys/class/infiniband/cxgb3_X/hw_rev
> +What: /sys/class/infiniband/cxgb3_X/hca_type
> +What: /sys/class/infiniband/cxgb3_X/board_id
> +Date: Feb, 2007
> +KernelVersion: v2.6.21
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + hw_rev: (RO) Hardware revision number
> +
> + hca_type: (RO) HCA type. Here it is a driver short name.
> + It should normally match the name in its bus
> + driver structure (e.g. pci_driver::name).
> +
> + board_id: (RO) Manufacturing board id
> +
> +
> +sysfs interface for Mellanox ConnectX HCA IB driver (mlx4)
> +----------------------------------------------------------
> +
> +What: /sys/class/infiniband/mlx4_X/hw_rev
> +What: /sys/class/infiniband/mlx4_X/hca_type
> +What: /sys/class/infiniband/mlx4_X/board_id
> +Date: Sep, 2007
> +KernelVersion: v2.6.24
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + hw_rev: (RO) Hardware revision number
> +
> + hca_type: (RO) Host channel adapter type
> +
> + board_id: (RO) Manufacturing board ID
> +
> +
> +What: /sys/class/infiniband/mlx4_X/iov/ports/<port-num>/gids/<n>
> +What: /sys/class/infiniband/mlx4_X/iov/ports/<port-num>/admin_guids/<n>
> +What: /sys/class/infiniband/mlx4_X/iov/ports/<port-num>/pkeys/<n>
> +What: /sys/class/infiniband/mlx4_X/iov/ports/<port-num>/mcgs/
> +What: /sys/class/infiniband/mlx4_X/iov/ports/<pci-slot-num>/ports/<m>/gid_idx/0
> +What: /sys/class/infiniband/mlx4_X/iov/ports/<pci-slot-num>/ports/<m>/pkey_idx/<n>
> +Date: Aug, 2012
> +KernelVersion: v3.6.15
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + The sysfs iov directory is used to manage and examine the port
> + P_Key and guid paravirtualization. This directory is added only
> + for the master -- slaves do not have it.
> +
> + Under iov/ports, the administrator may examine the gid and P_Key
> + tables as they are present in the device (and as are seen in the
> + "network view" presented to the SM).
> +
> + 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.
> +
> + gids/<n>: (RO) The physical port gids n = 0..127
> +
> + admin_guids/<n>: (RW) Allows examining or changing the
> + administrative state of a given GUID
> + n = 0..127
> +
> + pkeys/<n>: (RO) Displays the contents of the physical
> + key table n = 0..126
> +
> + mcgs/: (RO) Muticast group table
> +
> + <m>/gid_idx/0: (RO) Display the GID mapping m = 1..2
> +
> + <m>/pkey_idx/<n>: (RW) Writable except for RoCE pkeys.
> + m = 1..2, n = 0..126
> +
> + Under the iov/<pci slot number>
> + directories, the admin may map the index
> + numbers in the physical tables (as under
> + iov/ports) to the paravirtualized index
> + numbers that guests see.
> +
> + For example, if the administrator, for
> + port 1 on guest 2 maps physical pkey
> + index 10 to virtual index 1, then that
> + guest, whenever it uses its pkey index
> + 1, will actually be using the real pkey
> + index 10.
> +
> +
> +What: /sys/class/infiniband/mlx4_X/iov/<pci-slot-num>/ports/<m>/smi_enabled
> +What: /sys/class/infiniband/mlx4_X/iov/<pci-slot-num>/ports/<m>/enable_smi_admin
> +Date: May, 2014
> +KernelVersion: v3.15.7
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + Enabling QP0 on VFs for selected VF/port. By default, no VFs are
> + enabled for QP0 operation.
> +
> + smi_enabled: (RO) Indicates whether smi is currently enabled
> + for the indicated VF/port
> +
> + enable_smi_admin:(RW) Used by the admin to request that smi
> + capability be enabled or disabled for the
> + indicated VF/port. 0 = disable, 1 = enable.
> +
> + The requested enablement will occur at the next reset of the VF
> + (e.g. driver restart on the VM which owns the VF).
> +
> +
> +sysfs interface for NetEffect RNIC Low-Level iWARP driver (nes)
> +---------------------------------------------------------------
> +
> +What: /sys/class/infiniband/nesX/hw_rev
> +What: /sys/class/infiniband/nesX/hca_type
> +What: /sys/class/infiniband/nesX/board_id
> +Date: Feb, 2008
> +KernelVersion: v2.6.25
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + hw_rev: (RO) Hardware revision number
> +
> + hca_type: (RO) Host Channel Adapter type (NEX020)
> +
> + board_id: (RO) Manufacturing board id
> +
> +
> +sysfs interface for Chelsio T4/T5 RDMA driver (cxgb4)
> +-----------------------------------------------------
> +
> +What: /sys/class/infiniband/cxgb4_X/hw_rev
> +What: /sys/class/infiniband/cxgb4_X/hca_type
> +What: /sys/class/infiniband/cxgb4_X/board_id
> +Date: Apr, 2010
> +KernelVersion: v2.6.35
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> +
> + hw_rev: (RO) Hardware revision number
> +
> + hca_type: (RO) Driver short name. Should normally match
> + the name in its bus driver structure (e.g.
> + pci_driver::name)
> +
> + board_id: (RO) Manufacturing board id. (Vendor + device
> + information)
> +
> +
> +sysfs interface for Intel IB driver qib
> +---------------------------------------
> +
> +What: /sys/class/infiniband/qibX/version
> +What: /sys/class/infiniband/qibX/hw_rev
> +What: /sys/class/infiniband/qibX/hca_type
> +What: /sys/class/infiniband/qibX/board_id
> +What: /sys/class/infiniband/qibX/boardversion
> +What: /sys/class/infiniband/qibX/nctxts
> +What: /sys/class/infiniband/qibX/localbus_info
> +What: /sys/class/infiniband/qibX/tempsense
> +What: /sys/class/infiniband/qibX/serial
> +What: /sys/class/infiniband/qibX/nfreectxts
> +What: /sys/class/infiniband/qibX/chip_reset
> +Date: May, 2010
> +KernelVersion: v2.6.35
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + version: (RO) Display version information of installed software
> + and drivers.
> +
> + hw_rev: (RO) Hardware revision number
> +
> + hca_type: (RO) Host channel adapter type
> +
> + board_id: (RO) Manufacturing board id
> +
> + boardversion: (RO) Current version of the chip architecture
> +
> + nctxts: (RO) Return the number of user ports (contexts)
> + available
> +
> + localbus_info: (RO) Human readable localbus info
> +
> + tempsense: (RO) Display temp sense registers in decimal
> +
> + serial: (RO) Serial number of the HCA
> +
> + nfreectxts: (RO) The number of free user ports (contexts)
> + available.
> +
> + chip_reset: (WO) Reset the chip if possible by writing
> + "reset" to this file. Only allowed if no user
> + contexts are open that use chip resources.
> +
> +
> +What: /sys/class/infiniband/qibX/ports/N/sl2vl/[0-15]
> +Date: May, 2010
> +KernelVersion: v2.6.35
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + (RO) The directory contains 16 files numbered 0-15 that specify
> + the Service Level (SL). Listing the SL files returns the Virtual
> + Lane (VL) as programmed by the SL.
> +
> +What: /sys/class/infiniband/qibX/ports/N/CCMgtA/cc_settings_bin
> +What: /sys/class/infiniband/qibX/ports/N/CCMgtA/cc_table_bin
> +Date: May, 2010
> +KernelVersion: v2.6.35
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + Per-port congestion control. Both are binary attributes.
> +
> + cc_table_bin: (RO) Congestion control table size followed by
> + table entries.
> +
> + cc_settings_bin:(RO) Congestion settings: port control, control
> + map and an array of 16 entries for the
> + congestion entries - increase, timer, event log
> + trigger threshold and the minimum injection rate
> + delay.
> +
> +What: /sys/class/infiniband/qibX/ports/N/linkstate/loopback
> +What: /sys/class/infiniband/qibX/ports/N/linkstate/led_override
> +What: /sys/class/infiniband/qibX/ports/N/linkstate/hrtbt_enable
> +What: /sys/class/infiniband/qibX/ports/N/linkstate/status
> +What: /sys/class/infiniband/qibX/ports/N/linkstate/status_str
> +Date: May, 2010
> +KernelVersion: v2.6.35
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + [to be documented]
> +
> + loopback: (WO)
> + led_override: (WO)
> + hrtbt_enable: (RW)
> + status: (RO)
> +
> + status_str: (RO) Displays information about the link state,
> + possible cable/switch problems, and hardware
> + errors. Possible states are- "Initted",
> + "Present", "IB_link_up", "IB_configured" or
> + "Fatal_Hardware_Error".
> +
> +What: /sys/class/infiniband/qibX/ports/N/diag_counters/rc_resends
> +What: /sys/class/infiniband/qibX/ports/N/diag_counters/seq_naks
> +What: /sys/class/infiniband/qibX/ports/N/diag_counters/rdma_seq
> +What: /sys/class/infiniband/qibX/ports/N/diag_counters/rnr_naks
> +What: /sys/class/infiniband/qibX/ports/N/diag_counters/other_naks
> +What: /sys/class/infiniband/qibX/ports/N/diag_counters/rc_timeouts
> +What: /sys/class/infiniband/qibX/ports/N/diag_counters/look_pkts
> +What: /sys/class/infiniband/qibX/ports/N/diag_counters/pkt_drops
> +What: /sys/class/infiniband/qibX/ports/N/diag_counters/dma_wait
> +What: /sys/class/infiniband/qibX/ports/N/diag_counters/unaligned
> +Date: May, 2010
> +KernelVersion: v2.6.35
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + [to be documented]
> +
> +
> +sysfs interface for Mellanox Connect-IB HCA driver mlx5
> +-------------------------------------------------------
> +
> +What: /sys/class/infiniband/mlx5_X/hw_rev
> +What: /sys/class/infiniband/mlx5_X/hca_type
> +What: /sys/class/infiniband/mlx5_X/reg_pages
> +What: /sys/class/infiniband/mlx5_X/fw_pages
> +Date: Jul, 2013
> +KernelVersion: v3.11
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + [to be documented]
> +
> +
> +sysfs interface for Cisco VIC (usNIC) Verbs Driver
> +--------------------------------------------------
> +
> +What: /sys/class/infiniband/usnic_X/board_id
> +What: /sys/class/infiniband/usnic_X/config
> +What: /sys/class/infiniband/usnic_X/qp_per_vf
> +What: /sys/class/infiniband/usnic_X/max_vf
> +What: /sys/class/infiniband/usnic_X/cq_per_vf
> +What: /sys/class/infiniband/usnic_X/iface
> +Date: Sep, 2013
> +KernelVersion: v3.14
> +Contact: Christian Benvenuti <benve@xxxxxxxxx>,
> + Dave Goodell <dgoodell@xxxxxxxxx>,
> + linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> +
> + board_id: (RO) Manufacturing board id
> +
> + config: (RO) Report the configuration for this PF
> +
> + qp_per_vf: (RO) Queue pairs per virtual function.
> +
> + max_vf: (RO) Max virtual functions
> +
> + cq_per_vf: (RO) Completion queue per virtual function
> +
> + iface: (RO) Shows which network interface this usNIC
> + entry is associated to (visible with ifconfig).
> +
> +What: /sys/class/infiniband/usnic_X/qpn/summary
> +What: /sys/class/infiniband/usnic_X/qpn/context
> +Date: Sep, 2013
> +KernelVersion: v3.14
> +Contact: Christian Benvenuti <benve@xxxxxxxxx>,
> + Dave Goodell <dgoodell@xxxxxxxxx>,
> + linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + [to be documented]
> +
> +
> +sysfs interface for Emulex RoCE HCA Driver
> +------------------------------------------
> +
> +What: /sys/class/infiniband/ocrdmaX/hw_rev
> +Date: Feb, 2014
> +KernelVersion: v3.14
> +Description:
> + hw_rev: (RO) Hardware revision number
> +
> +What: /sys/class/infiniband/ocrdmaX/hca_type
> +Date: Jun, 2014
> +KernelVersion: v3.16
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + hca_type: (RO) Display FW version
> +
> +
> +sysfs interface for Intel Omni-Path driver (HFI1)
> +-------------------------------------------------
> +
> +What: /sys/class/infiniband/hfi1_X/hw_rev
> +What: /sys/class/infiniband/hfi1_X/board_id
> +What: /sys/class/infiniband/hfi1_X/nctxts
> +What: /sys/class/infiniband/hfi1_X/serial
> +What: /sys/class/infiniband/hfi1_X/chip_reset
> +What: /sys/class/infiniband/hfi1_X/boardversion
> +What: /sys/class/infiniband/hfi1_X/nfreectxts
> +What: /sys/class/infiniband/hfi1_X/tempsense
> +Date: May, 2016
> +KernelVersion: v4.6
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + hw_rev: (RO) Hardware revision number
> +
> + board_id: (RO) Manufacturing board id
> +
> + nctxts: (RO) Total contexts available.
> +
> + serial: (RO) Board serial number
> +
> + chip_reset: (WO) Write "reset" to this file to reset the
> + chip if possible. Only allowed if no user
> + contexts are open that use chip resources.
> +
> + boardversion: (RO) Human readable board info
> +
> + nfreectxts: (RO) The number of free user ports (contexts)
> + available.
> +
> + tempsense: (RO) Thermal sense information
> +
> +
> +What: /sys/class/infiniband/hfi1_X/ports/N/CCMgtA/cc_settings_bin
> +What: /sys/class/infiniband/hfi1_X/ports/N/CCMgtA/cc_table_bin
> +What: /sys/class/infiniband/hfi1_X/ports/N/CCMgtA/cc_prescan
> +Date: May, 2016
> +KernelVersion: v4.6
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + Per-port congestion control.
> +
> + cc_table_bin: (RO) CCA tables used by PSM2 Congestion control
> + table size followed by table entries. Binary
> + attribute.
> +
> + cc_settings_bin:(RO) Congestion settings: port control, control
> + map and an array of 16 entries for the
> + congestion entries - increase, timer, event log
> + trigger threshold and the minimum injection rate
> + delay. Binary attribute.
> +
> + cc_prescan: (RW) enable prescanning for faster BECN
> + response. Write "on" to enable and "off" to
> + disable.
> +
> +What: /sys/class/infiniband/hfi1_X/ports/N/sc2vl/[0-31]
> +What: /sys/class/infiniband/hfi1_X/ports/N/sl2sc/[0-31]
> +What: /sys/class/infiniband/hfi1_X/ports/N/vl2mtu/[0-15]
> +Date: May, 2016
> +KernelVersion: v4.6
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + sc2vl/: (RO) 32 files (0 - 31) used to translate sl->vl
> +
> + sl2sc/: (RO) 32 files (0 - 31) used to translate sl->sc
> +
> + vl2mtu/: (RO) 16 files (0 - 15) used to determine MTU for vl
> +
> +
> +What: /sys/class/infiniband/hfi1_X/sdma_N/cpu_list
> +What: /sys/class/infiniband/hfi1_X/sdma_N/vl
> +Date: Sept, 2016
> +KernelVersion: v4.8
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + sdma<N>/ contains one directory per sdma engine (0 - 15)
> +
> + cpu_list: (RW) List of cpus for user-process to sdma
> + engine assignment.
> +
> + vl: (RO) Displays the virtual lane (vl) the sdma
> + engine maps to.
> +
> + This interface gives the user control on the affinity settings
> + for the 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.
> +
> +
> +sysfs interface for Intel(R) X722 iWARP i40iw driver
> +----------------------------------------------------
> +
> +What: /sys/class/infiniband/i40iwX/hw_rev
> +What: /sys/class/infiniband/i40iwX/hca_type
> +What: /sys/class/infiniband/i40iwX/board_id
> +Date: Jan, 2016
> +KernelVersion: v4.10
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + hw_rev: (RO) Hardware revision number
> +
> + hca_type: (RO) Show HCA type (I40IW)
> +
> + board_id: (RO) I40IW board ID
> +
> +
> +sysfs interface for QLogic qedr NIC Driver
> +------------------------------------------
> +
> +What: /sys/class/infiniband/qedrX/hw_rev
> +What: /sys/class/infiniband/qedrX/hca_type
> +Date: Oct, 2016
> +KernelVersion: v4.10
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> +
> + hw_rev: (RO) Hardware revision number
> +
> + hca_type: (RO) Display HCA type
> +
> +
> +sysfs interface for VMware Paravirtual RDMA driver
> +--------------------------------------------------
> +
> +What: /sys/class/infiniband/vmw_pvrdmaX/hw_rev
> +What: /sys/class/infiniband/vmw_pvrdmaX/hca_type
> +What: /sys/class/infiniband/vmw_pvrdmaX/board_id
> +Date: Oct, 2016
> +KernelVersion: v4.10
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> +
> + hw_rev: (RO) Hardware revision number
> +
> + hca_type: (RO) Host channel adapter type
> +
> + board_id: (RO) Display PVRDMA manufacturing board ID
> +
> +
> +sysfs interface for Broadcom NetXtreme-E RoCE driver
> +----------------------------------------------------
> +
> +What: /sys/class/infiniband/bnxt_reX/hw_rev
> +What: /sys/class/infiniband/bnxt_reX/hca_type
> +Date: Feb, 2017
> +KernelVersion: v4.11
> +Contact: linux-rdma@xxxxxxxxxxxxxxx
> +Description:
> + hw_rev: (RO) Hardware revision number
> +
> + hca_type: (RO) Host channel adapter type
> diff --git a/Documentation/ABI/testing/sysfs-class-infiniband b/Documentation/ABI/testing/sysfs-class-infiniband
> deleted file mode 100644
> index a86abe66a316..000000000000
> --- a/Documentation/ABI/testing/sysfs-class-infiniband
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -What: /sys/class/infiniband/<hca>/ports/<port-number>/gid_attrs/ndevs/<gid-index>
> -Date: November 29, 2015
> -KernelVersion: 4.4.0
> -Contact: linux-rdma@xxxxxxxxxxxxxxx
> -Description: The net-device's name associated with the GID resides
> - at index <gid-index>.
> -
> -What: /sys/class/infiniband/<hca>/ports/<port-number>/gid_attrs/types/<gid-index>
> -Date: November 29, 2015
> -KernelVersion: 4.4.0
> -Contact: linux-rdma@xxxxxxxxxxxxxxx
> -Description: The RoCE type of the associated GID resides at index <gid-index>.
> - This could either be "IB/RoCE v1" for IB and RoCE v1 based GODs
> - or "RoCE v2" for RoCE v2 based GIDs.
> -
> -
> diff --git a/Documentation/infiniband/sysfs.txt b/Documentation/infiniband/sysfs.txt
> index 77570d16b170..9fab5062f84b 100644
> --- a/Documentation/infiniband/sysfs.txt
> +++ b/Documentation/infiniband/sysfs.txt
> @@ -1,129 +1,4 @@
> 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
> +The sysfs interface has moved to
> +Documentation/ABI/stable/sysfs-class-infiniband.
>