The firmware on the POWER9 machines provides an energy sensor.  This
sensor measures the energy on/in/at the chip.  I'm not sure what that
actually means.  But it is different from the energy content of a
battery which is measured in Watthours.

Should I add this?  Or should I just skip these sensors?

Index: sbin/sysctl/sysctl.c
===================================================================
RCS file: /cvs/src/sbin/sysctl/sysctl.c,v
retrieving revision 1.251
diff -u -p -r1.251 sysctl.c
--- sbin/sysctl/sysctl.c        29 May 2020 04:42:23 -0000      1.251
+++ sbin/sysctl/sysctl.c        14 Jul 2020 17:30:43 -0000
@@ -2759,6 +2759,9 @@ print_sensor(struct sensor *s)
                case SENSOR_VELOCITY:
                        printf("%4.3f m/s", s->value / 1000000.0);
                        break;
+               case SENSOR_ENERGY:
+                       printf("%.2f J", s->value / 1000000.0);
+                       break;
                default:
                        printf("unknown");
                }
Index: usr.bin/systat/sensors.c
===================================================================
RCS file: /cvs/src/usr.bin/systat/sensors.c,v
retrieving revision 1.31
diff -u -p -r1.31 sensors.c
--- usr.bin/systat/sensors.c    10 Dec 2018 13:35:54 -0000      1.31
+++ usr.bin/systat/sensors.c    14 Jul 2020 17:30:43 -0000
@@ -291,6 +291,9 @@ showsensor(struct sensinfo *s)
        case SENSOR_VELOCITY:
                tbprintf("%4.3f m/s", s->sn_value / 1000000.0);
                break;
+       case SENSOR_ENERGY:
+               tbprintf("%.2f J", s->sn_value / 1000000.0);
+               break;
        default:
                tbprintf("%10lld", s->sn_value);
                break;
Index: sys/sys/sensors.h
===================================================================
RCS file: /cvs/src/sys/sys/sensors.h,v
retrieving revision 1.36
diff -u -p -r1.36 sensors.h
--- sys/sys/sensors.h   10 Dec 2018 13:35:54 -0000      1.36
+++ sys/sys/sensors.h   14 Jul 2020 17:30:43 -0000
@@ -53,6 +53,7 @@ enum sensor_type {
        SENSOR_PRESSURE,                /* pressure (mPa) */
        SENSOR_ACCEL,                   /* acceleration (u m/s^2) */
        SENSOR_VELOCITY,                /* velocity (u m/s) */
+       SENSOR_ENERGY,                  /* energy (uJ) */
        SENSOR_MAX_TYPES
 };
 
@@ -80,6 +81,7 @@ static const char * const sensor_type_s[
        "pressure",
        "acceleration",
        "velocity",
+       "energy",
        "undefined"
 };
 #endif /* !_KERNEL */

Reply via email to