buildstats.py: extend diskstats support for NVMe and flexible token count

Added support for NVMe devices in the diskstats regex pattern to ensure stats are properly collected from devices like nvme0n1.

Relaxed the check for the number of fields in /proc/diskstats from an exact match (14) to a minimum check (at least 14), to handle kernel variations and additional fields gracefully.

(From OE-Core rev: 87a31bc4ca3661aae94cf43f3f579b02f4fb4923)

Signed-off-by: denisova-ok <denisova.olga.k@yandex.ru>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
denisova-ok
2025-04-15 18:34:04 +03:00
committed by Richard Purdie
parent 8dcd0f73eb
commit 5b74c76964

View File

@@ -66,7 +66,7 @@ class SystemStats:
self.min_seconds = 1.0 - self.tolerance
self.meminfo_regex = re.compile(rb'^(MemTotal|MemFree|Buffers|Cached|SwapTotal|SwapFree):\s*(\d+)')
self.diskstats_regex = re.compile(rb'^([hsv]d.|mtdblock\d|mmcblk\d|cciss/c\d+d\d+.*)$')
self.diskstats_regex = re.compile(rb'^([hsv]d.|mtdblock\d|mmcblk\d|cciss/c\d+d\d+|nvme\d+n\d+.*)$')
self.diskstats_ltime = None
self.diskstats_data = None
self.stat_ltimes = None
@@ -94,7 +94,7 @@ class SystemStats:
(b'MemTotal', b'MemFree', b'Buffers', b'Cached', b'SwapTotal', b'SwapFree')]) + b'\n')
def _diskstats_is_relevant_line(self, linetokens):
if len(linetokens) != 14:
if len(linetokens) < 14:
return False
disk = linetokens[2]
return self.diskstats_regex.match(disk)