{
  "slug": "sas-phy-event-counters",
  "term": "SAS PHY event counters",
  "aliases": [
    "SAS PHY error counters",
    "SAS physical-layer event counters"
  ],
  "definition": "SAS PHY event counters are per-physical-link-endpoint counts of specified link events, including invalid DWORDs, disparity errors, synchronization loss and PHY reset problems.",
  "note": "smartmontools 7.5 decodes four 32-bit counters in each SAS PHY descriptor: invalid DWORDs, running disparity errors, loss of DWORD synchronization and PHY reset problems; additional event descriptors may be present [sas-decoder]. These observations are not media-error totals or root-cause labels, and reset problems are not a count of every reset. For supported SAS SSP devices, smartctl -l sasphy reads Protocol Specific log page 0x18 without requesting a counter reset; sasphy,reset reads first and then requests a reset [sasphy-manual]. Preserve initial output and the reset result. Interpretation guidance: compare the same device, port, PHY and reporting endpoint over a recorded interval. Reset, replacement or an unexplained decrease requires a new baseline; do not blindly assume wraparound. Events per hour are not a bit-error rate or drive-failure rate. Linux driver-exposed PHY statistics and target-device log counters are distinct observations and must not be silently combined [linux-sas]. Missing or unsupported telemetry is not a measured zero. Linux v6.12 may print a stored PHY value even when its acquisition callback is absent; successful reading alone does not establish freshness [linux-sas]. smartmontools uses positional JSON keys, not endpoint IDs, and separate read/reset commands, not an atomic read-and-clear [sas-decoder]. The companion analysis explains the evidence boundaries [hesela-link].",
  "status": "shipping",
  "advantages": [],
  "limitations": [
    "A nonzero count does not identify the faulty cable, backplane, controller or drive.",
    "Comparisons require endpoint identity and continuous counter history; collection support depends on device, controller and driver."
  ],
  "related": [
    "sas",
    "scsi"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "citations": [
    {
      "id": "sas-decoder",
      "title": "smartmontools 7.5: SAS port/PHY decoding and optional log reset",
      "url": "https://raw.githubusercontent.com/smartmontools/smartmontools/f276b249fdc84019403491303479485030ac7c80/smartmontools/scsiprint.cpp",
      "accessed": "2026-10-15"
    },
    {
      "id": "sasphy-manual",
      "title": "smartmontools 7.5: smartctl sasphy and sasphy,reset",
      "url": "https://raw.githubusercontent.com/smartmontools/smartmontools/f276b249fdc84019403491303479485030ac7c80/smartmontools/smartctl.8.in",
      "accessed": "2026-10-15"
    },
    {
      "id": "linux-sas",
      "title": "Linux v6.12: SAS PHY identity and link-error attributes",
      "url": "https://raw.githubusercontent.com/torvalds/linux/adc218676eef25575469234709c2d87185ca223a/drivers/scsi/scsi_transport_sas.c",
      "accessed": "2026-10-15"
    },
    {
      "id": "hesela-link",
      "title": "SATA and SAS link errors: what counters can and cannot diagnose",
      "url": "https://hesela.com/analyses/sata-sas-link-failure-signatures/",
      "accessed": "2026-10-15"
    }
  ],
  "updated": "2026-10-15"
}
