mirror of
https://github.com/xzeldon/htop.git
synced 2025-07-13 20:44:35 +03:00
ZFS arcstats for Linux
If no pools are imported (ARC size == 0) or the ZFS module is not in the kernel (/proc/spl/kstat/zfs/arcstats does not exist), then the Meter reports "Unavailable".
This commit is contained in:
@ -41,27 +41,32 @@ static void ZfsArcMeter_display(Object* cast, RichString* out) {
|
||||
char buffer[50];
|
||||
Meter* this = (Meter*)cast;
|
||||
|
||||
RichString_write(out, CRT_colors[METER_TEXT], ":");
|
||||
Meter_humanUnit(buffer, this->total, 50);
|
||||
RichString_append(out, CRT_colors[METER_VALUE], buffer);
|
||||
Meter_humanUnit(buffer, this->values[5], 50);
|
||||
RichString_append(out, CRT_colors[METER_TEXT], " Used:");
|
||||
RichString_append(out, CRT_colors[METER_VALUE], buffer);
|
||||
Meter_humanUnit(buffer, this->values[0], 50);
|
||||
RichString_append(out, CRT_colors[METER_TEXT], " MFU:");
|
||||
RichString_append(out, CRT_colors[ZFS_MFU], buffer);
|
||||
Meter_humanUnit(buffer, this->values[1], 50);
|
||||
RichString_append(out, CRT_colors[METER_TEXT], " MRU:");
|
||||
RichString_append(out, CRT_colors[ZFS_MRU], buffer);
|
||||
Meter_humanUnit(buffer, this->values[2], 50);
|
||||
RichString_append(out, CRT_colors[METER_TEXT], " Anon:");
|
||||
RichString_append(out, CRT_colors[ZFS_ANON], buffer);
|
||||
Meter_humanUnit(buffer, this->values[3], 50);
|
||||
RichString_append(out, CRT_colors[METER_TEXT], " Hdr:");
|
||||
RichString_append(out, CRT_colors[ZFS_HEADER], buffer);
|
||||
Meter_humanUnit(buffer, this->values[4], 50);
|
||||
RichString_append(out, CRT_colors[METER_TEXT], " Oth:");
|
||||
RichString_append(out, CRT_colors[ZFS_OTHER], buffer);
|
||||
if (this->values[5] > 0) {
|
||||
RichString_write(out, CRT_colors[METER_TEXT], ":");
|
||||
Meter_humanUnit(buffer, this->total, 50);
|
||||
RichString_append(out, CRT_colors[METER_VALUE], buffer);
|
||||
Meter_humanUnit(buffer, this->values[5], 50);
|
||||
RichString_append(out, CRT_colors[METER_TEXT], " Used:");
|
||||
RichString_append(out, CRT_colors[METER_VALUE], buffer);
|
||||
Meter_humanUnit(buffer, this->values[0], 50);
|
||||
RichString_append(out, CRT_colors[METER_TEXT], " MFU:");
|
||||
RichString_append(out, CRT_colors[ZFS_MFU], buffer);
|
||||
Meter_humanUnit(buffer, this->values[1], 50);
|
||||
RichString_append(out, CRT_colors[METER_TEXT], " MRU:");
|
||||
RichString_append(out, CRT_colors[ZFS_MRU], buffer);
|
||||
Meter_humanUnit(buffer, this->values[2], 50);
|
||||
RichString_append(out, CRT_colors[METER_TEXT], " Anon:");
|
||||
RichString_append(out, CRT_colors[ZFS_ANON], buffer);
|
||||
Meter_humanUnit(buffer, this->values[3], 50);
|
||||
RichString_append(out, CRT_colors[METER_TEXT], " Hdr:");
|
||||
RichString_append(out, CRT_colors[ZFS_HEADER], buffer);
|
||||
Meter_humanUnit(buffer, this->values[4], 50);
|
||||
RichString_append(out, CRT_colors[METER_TEXT], " Oth:");
|
||||
RichString_append(out, CRT_colors[ZFS_OTHER], buffer);
|
||||
} else {
|
||||
RichString_write(out, CRT_colors[METER_TEXT], " ");
|
||||
RichString_append(out, CRT_colors[FAILED_SEARCH], "Unavailable");
|
||||
}
|
||||
}
|
||||
|
||||
MeterClass ZfsArcMeter_class = {
|
||||
|
Reference in New Issue
Block a user