jaypipes / ghw

Go HardWare discovery/inspection library
Apache License 2.0
1.62k stars 174 forks source link

only process memory cell/block subdirs in sysfs #343

Closed jaypipes closed 1 year ago

jaypipes commented 1 year ago

The /sys/devices/system/memory and /sys/devices/system/node/nodeX subdirectories contains one or more subdirectories that begin with the word "memory" and end in a 0-based cell/block index for that memory. e.g. /sys/devices/system/node/node0/memory63 is a directory containing information files about the 64th memory block in NUMA node 0.

Previously, code that gathered total physical memory by looking at these subdirectories was using a simple glob on memory* to determine those memory block subdirectories. However, in some recent Linux kernels a /sys/devices/system/memory/memory_failure file causes that simple glob to backfire. This patch replaces the simple glob with a read of the /sys/devices/system/memory or /sys/devices/system/node/nodeX directory and regex matches on memory\d$ to determine if the subdirectory is a memory block one.

Fixes Issue #341

ffromani commented 1 year ago

LGTM

waiting for the missing CI lane (macos-1015) to complete/rerun before to merge