IBQUERYERRORS(8)

πŸ’… ibqueryerrors β€” aka IBQUERYERRORS(8), the OpenIB Diagnostics era ✨

okay bestie, gather round, because this one is literally the port-counter gossip column of your InfiniBand fabric 🫢


🌸 Name

IBQUERYERRORS β€” query and report IB port counters. yes that's the whole job. she clocks in, she counts, she spills the tea πŸ’–


✨ SYNOPSIS ✨

ibqueryerrors [options]

πŸ¦‹ DESCRIPTION πŸ¦‹

so here's the default vibe: by default she reports the port error counters that exceed a threshold, for each port in the fabric. the default threshold is zero (0) β€” which, yeah, means basically any counter with a number in it is gonna get called out πŸ‘€

error fields can also be suppressed entirely, if you're feeling like selective hearing today.

and it's not just errors, bestie. on top of reporting errors on every port, ibqueryerrors can also report the port transmit and receive data, as well as report full link information to the remote port β€” if available. lowkey a whole glow-up πŸ’…


πŸ‘‘ OPTIONS πŸ‘‘

  • -s, --suppress <err1,err2,...> β€” suppress the errors listed in the comma separated list provided. bye bye specific counters ✌️
  • -c, --suppress-common β€” suppress some of the common "side effect" counters. these usually do not indicate an error condition and can usually be safely ignored. they're just loud, not messy πŸ“
  • -r, --report-port β€” report the port information. this includes LID, port, external port (if applicable), link speed setting, remote GUID, remote port, remote external port (if applicable), and remote node description information. the full dossier, no cap πŸ“‹
  • --data β€” include the optional transmit and receive data counters.
  • --threshold-file <filename> β€” specify an alternate threshold file. the default is /etc/infiniband-diags/error_thresholds
  • --switch β€” print data for switch's only.
  • --ca β€” print data for CA's only.
  • --skip-sl β€” use the default sl for queries. this is not recommended when using a QoS aware routing engine, because it can cause a credit deadlock. ⚠️ like, for real, don't.
  • --router β€” print data for routers only.
  • --clear-errors -k β€” clear error counters after read.
  • --clear-counts -K β€” clear data counters after read.
CAUTION 🚨 clearing data or error counters will occur regardless of if they are printed or not. see --counters and --data for details on controlling which counters are printed. so like, she's wiping the whiteboard whether or not you read it first, bestie 😭
  • --details β€” include receive error and transmit discard details.
  • --counters β€” print data counters only.

🧚 Partial Scan flags

the node to start a partial scan can be specified with the following addresses.

  • --port-guid, -G <port_guid> β€” specify a port_guid
  • -D, --Direct <dr_path> β€” the address specified is a directed route

Examples:

-D "0"          # self port
-D "0,1,2,1,4"  # out via port 1, then 2, ...

(Note the second number in the path specified must match the port being used. This can be specified using the port selection flag -P or the port found through the automatic selection process.)

Note: for switches, results are printed for all ports, not just switch port 0. slay, all of them πŸ’€
  • -S <port_guid> β€” same as "-G". (provided only for backward compatibility β€” she's an icon, she's a legend, she's the moment, but she's legacy πŸŽ€)

🌈 Cache File flags

  • --load-cache <filename> β€” load and use the cached ibnetdiscover data stored in the specified filename. may be useful for outputting and learning about other fabrics or a previous state of a fabric. time travel, kinda πŸ•°οΈ

πŸ’œ Port Selection flags

  • -C, --Ca <ca_name> β€” use the specified ca_name.
  • -P, --Port <ca_port> β€” use the specified ca_port.
  • -Y, --pkey-idx <idx> β€” P_Key table index (0-65535, default 0) used for the outgoing SA/GMP MADs. SMP (SMI directed-route/LID-routed) MADs always use P_Key index 0. the rule is the rule ⭐

🌸 Local port Selection

Multiple port/Multiple CA support: when no IB device or port is specified (see the "local umad parameters" below), the libibumad library selects the port to use by the following criteria:

  1. the first port that is ACTIVE.
  2. if not found, the first port that is UP (physical link up).

If a port and/or CA name is specified, the libibumad library attempts to fulfill the user request, and will fail if it is not possible.

For example:

ibaddr                 # use the first port (criteria #1 above)
ibaddr -C mthca1       # pick the best port from "mthca1" only.
ibaddr -P 2            # use the second (active/up) port from the first available IB device.
ibaddr -C mthca0 -P 2  # use the specified port only.

⭐ Configuration flags

  • --config, -z <config_file> β€” specify alternate config file. Default: /etc/infiniband-diags/ibdiag.conf
  • --outstanding_smps, -o <val> β€” specify the number of outstanding SMP's which should be issued during the scan. Default: 2
  • --node-name-map <node-name-map> β€” specify a node name map. this file maps GUIDs to more user friendly names. see FILES section. πŸ‘€
  • -t, --timeout <timeout_ms> β€” override the default timeout for the solicited mads.
  • -y, --m_key <key> β€” use the specified M_key for requests. if a non-numeric value (like 'x') is specified then a value will be prompted for. so you'll get asked, like a pop quiz πŸ“

πŸ› Debugging flags

  • -d β€” raise the IB debugging level. may be used several times (-ddd or -d -d -d). stack her up, she loves it πŸ’…
  • -e β€” show send and receive errors (timeouts and others)
  • -h, --help β€” show the usage message
  • -v, --verbose β€” increase the application verbosity level. may be used several times (-vv or -v -v -v)
  • -V, --version β€” show the version info.
  • -R β€” (This option is obsolete and does nothing) πŸ’€ she's giving retired influencer. ignore her.

πŸŽ€ EXIT STATUS πŸŽ€

  • -1 if scan fails.
  • 0 if scan succeeds without errors beyond thresholds
  • 1 if errors are found beyond thresholds or inconsistencies are found in check mode.

πŸ“ FILES πŸ“

πŸ’– ERROR THRESHOLD

/etc/infiniband-diags/error_thresholds

Define threshold values for errors. File format is simple "name=val". Comments begin with '#'

Example:

# Define thresholds for error counters
SymbolErrorCounter=10
LinkErrorRecoveryCounter=10
VL15Dropped=100

🧁 CONFIG FILE

/etc/infiniband-diags/ibdiag.conf

A global config file is provided to set some of the common options for all tools. See supplied config file for details.

πŸ¦‹ NODE NAME MAP FILE FORMAT

The node name map is used to specify user friendly names for nodes in the output. GUIDs are used to perform the lookup.

This functionality is provided by the opensm-libs package. See opensm(8) for the file location for your installation.

Generically:

# comment
<guid> "<name>"

Example:

# IB1
# Line cards
0x0008f104003f125c "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f125d "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d2 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d3 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10bf "IB1 (Rack 11 slot 12  ) ISR9288/ISR9096 Voltaire sLB-24D"

# Spines
0x0008f10400400e2d "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2e "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2f "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e31 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e32 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"

# GUID   Node Name
0x0008f10400411a08 "SW1  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a28 "SW2  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a34 "SW3  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f104004119d0 "SW4  (Rack  3) ISR9024 Voltaire 9024D"

🌟 AUTHOR 🌟

Ira Weiny β€” ira.weiny@intel.com πŸ‘‘


and that's the whole page, bestie 🫢 this diva of a manpage was last touched on 2016-09-26, she's OpenIB Diagnostics to her core, and she's still out here counting every counter like the main character she is. periodt. πŸ’œβœ¨

πŸ“¦ where this page comes from
  • arch rolling: rdma-core 65.0-1 Β· GPL-2.0-or-later OR LicenseRef-OpenIB.org-BSD-MIT AND GPL-2.0-or-later OR LicenseRef-OpenIB.org-BSD-FreeBSD AND GPL-2.0-or-later OR LicenseRef-Intel-BSD-3-Clause AND GPL-2.0-or-later OR LicenseRef-PathScale-BSD-Patent-License AND CC0-1.0 AND MIT AND BSD-2-Clause AND CPL-1.0 OR BSD-2-Clause OR GPL-2.0-or-later
  • ubuntu stonking: infiniband-diags 64.0-1ubuntu1 Β· BSD-MIT OR GPL-2.0-only
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms