Skip to content

v1.2.2

Choose a tag to compare

@zcalusic zcalusic released this 07 Nov 18:45
· 4 commits to master since this release
v1.2.2

Memory information per module: every populated DIMM with its slot, vendor, part number, size, speeds and voltage, plus the speed the memory actually runs at.

Upgrade notes

  • Memory contains a slice now (Devices), so Go code can no longer compare Memory values with == or use them as map keys. JSON output only gains new keys.
  • memory.speed is the modules' rated speed, as before. The speed they run at is the new memory.configuredspeed, and the two often differ: DDR4-3200 modules running at 2400 or 2666, DDR5-4800 modules running at 6000 with EXPO.
  • Only system memory counts. Memory devices of arrays used for video memory or flash are no longer added to memory.size.

New

  • memory.devices, one entry per populated module: locator, bank, vendor, model (part number), serial, size, type, formfactor, rank, speed, configuredspeed and voltage (in mV). Placeholder strings such as "Not Specified" and all-zero serial numbers are left out. Thanks to Haraguroicha for the idea (#12).
  • memory.slots, the number of memory sockets, populated or not.
  • memory.configuredspeed, the configured (running) speed of the first module.

Fixes

  • A speed reported in the SMBIOS 3.3 extended fields showed as 65535 MT/s.
  • Modules whose size the firmware gives in KB were skipped.

Documentation

  • The README's sample output shows the new fields.

Build and testing

  • The SMBIOS parser is tested against tables from five physical machines (Supermicro and Dell Xeon servers, a Quanta EPYC server, an AMD desktop with DDR5) and a QEMU virtual machine, with serial numbers and UUIDs removed. All of them also seed the fuzz test.

Full Changelog: v1.2.1...v1.2.2