SMP_REP_PHY_EVENT(8)

✨ SMP_REP_PHY_EVENT ✨

okay bestie, welcome to smp_rep_phy_event β€” it's a page from the SMP_UTILS manual, section 8, and it's literally the whole vibe of "hey expander, tell me what's been happening with your phys". πŸ’…


🌸 NAME 🌸

smp_rep_phy_event β€” invoke REPORT PHY EVENT SMP function πŸ¦‹


πŸŽ€ SYNOPSIS πŸŽ€

smp_rep_phy_event [--desc] [--enumerate] [--help] [--hex]
[--interface=PARAMS] [--long] [--phy=ID] [--raw] [--sa=SAS_ADDR]
[--verbose] [--version] [--zero] SMP_DEVICE[,N]

πŸ’– DESCRIPTION πŸ’–

So what this does is send a SAS Serial Management Protocol (SMP) REPORT PHY EVENT function request to an SMP target. The SMP target is identified by the SMP_DEVICE and the SAS_ADDR, fr fr. Depending on the interface, the SAS_ADDR may just be deduced from the SMP_DEVICE β€” no extra work needed, slay.

The mpt interface is the special one: it uses SMP_DEVICE to identify a HBA (an SMP initiator) and it needs that extra ,N to tell HBAs apart if there's more than one hanging around. πŸ‘‘

It reports zero or more phy event descriptors. Each descriptor contains a phy event source, a phy event (i.e. a count) and a peak value detector theshold. At least one phy event should be maintained for each phy. periodt. πŸ’«


✨ OPTIONS ✨

Mandatory arguments to long options are mandatory for short options as well β€” yes bestie, that's just how it is, iykyk.

  • -d, --desc β€” precede each phy event descriptor with a line announcing its descriptor index number. Index numbers start at 1. πŸ“
  • -e, --enumerate β€” enumerate all of the known Phy Event Source names, one per line, preceded by its value in hex. Ignores SMP_DEVICE if it is given; most other options are also ignored. Exits after displaying the names. so it just does its thing and dips πŸ’€
  • -h, --help β€” output the usage message then exit.
  • -H, --hex β€” output the response (less the CRC field) in hexadecimal.
  • -I, --interface=PARAMS β€” interface specific parameters. In this case "interface" refers to the path through the operating system to the SMP initiator. See the smp_utils man page for more information.
  • -l, --long β€” prefix each phy event source string with its numeric identifier in hex. For example: "[0x1]: Invalid word count: 23" β€” see, iconic formatting πŸŽ€
  • -p, --phy=ID β€” phy identifier. ID is a value between 0 and 254. Default is 0.
  • -r, --raw β€” send the response (less the CRC field) to stdout in binary. All error messages are sent to stderr. 🫢
  • -s, --sa=SAS_ADDR β€” specifies the SAS address of the SMP target device. Typically this is an expander. This option may not be needed if the SMP_DEVICE has the target's SAS address within it. The SAS_ADDR is in decimal but most SAS addresses are shown in hexadecimal. To give a number in hexadecimal either prefix it with '0x' or put a trailing 'h' on it.
  • -v, --verbose β€” increase the verbosity of the output. Can be used multiple times 🌈
  • -V, --version β€” print the version string and then exit.

πŸ’œ NOTES πŸ’œ

Similar information is maintained for SAS SSP target phys (e.g. on a SAS disk). It can be obtained from the Protocol Specific Port log page with the sg_logs utility. πŸ¦‹

Similar information may be obtained for SAS initiator phys (e.g. on a SAS HBA). As an example in Linux 2.6.28 error information can be found in this directory /sys/class/sas_phy/phy-4:0 (for the phy 0 in SCSI/SAS host 4). lowkey such a specific little path and I love that for us.

Similar information may be obtained for SATA device phys (e.g. on a SATA disk). If there is a SAT layer between OS and the SATA device then the sg_sat_phy_event utility can fetch the information. 😌


⭐ CONFORMING TO ⭐

The SMP REPORT PHY EVENT function was introduced in SAS-2 . (yes there's a lil space before the period, we're not fixing it, it's part of the lore ✨)


πŸ‘‘ AUTHORS πŸ‘‘

Written by Douglas Gilbert. πŸ’–


πŸ™ˆ REPORTING BUGS πŸ™ˆ

Report bugs to <dgilbert at interlog dot com>.


Copyright Β© 2011 Douglas Gilbert

This software is distributed under a FreeBSD license. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

bestie I'm serious about that one β€” NO warranty, like none, zero, nada. don't come for us πŸ’€

πŸ”₯ SEE ALSO πŸ”₯

smp_utils, smp_phy_control, smp_rep_phy_event_list(smp_utils) sg_logs, sg_sat_phy_event(sg3_utils)


smp_utils-0.97 Β· December 2011 β€” that's the version and the date bestie, and that's a wrap on SMP_REP_PHY_EVENT(8) πŸ’…βœ¨ go query those phys, you ate πŸŽ€