diff --git a/succbone/succd/http.go b/succbone/succd/http.go
index 4365428..61df8a8 100644
--- a/succbone/succd/http.go
+++ b/succbone/succd/http.go
@@ -70,9 +70,6 @@ type apiData struct {
// HighReached is true when the system has reached a high vacuum stage.
HighReached bool
}
- // LoopLoad is a percentage expressing how busy the processing loop is; 100
- // is full utilization; >100 is lag.
- LoopLoad int64
// System junk.
System struct {
// Load of the system.
@@ -117,7 +114,6 @@ func (s *webServer) apiData(skipSystem bool) *apiData {
ad.Pumps.DPOn = state.dpOn
ad.Feedback.RoughReached = rough
ad.Feedback.HighReached = high
- ad.LoopLoad = s.d.loopLoad()
ad.System.Load = load
ad.System.Hostname = hostname
return &ad
diff --git a/succbone/succd/index.html b/succbone/succd/index.html
index a26db5d..08acab3 100644
--- a/succbone/succd/index.html
+++ b/succbone/succd/index.html
@@ -100,29 +100,27 @@ td > span {
Control |
RP |
-
+ |
|
DP |
-
+ |
|
-
+ |
|
Status |
- OK |
- Load |
- ... |
+ OK |
@@ -277,7 +275,6 @@ window.addEventListener("load", (_) => {
let ping = document.querySelector("#ping");
let trough = document.querySelector("#trough");
let thigh = document.querySelector("#thigh");
- let load = document.querySelector("#load");
// Buttons
let pd = document.querySelector("#pd");
@@ -357,7 +354,6 @@ window.addEventListener("load", (_) => {
thigh.innerHTML = "NOK";
thigh.style = "background-color: #f06060";
}
- load.innerHTML = data.LoopLoad.toString() + "%";
historicalPush(data.Pirani.MbarFloat);
ping.innerHTML = Date.now();
});
diff --git a/succbone/succd/process.go b/succbone/succd/process.go
index de99e84..8ebf220 100644
--- a/succbone/succd/process.go
+++ b/succbone/succd/process.go
@@ -5,7 +5,6 @@ import (
"errors"
"fmt"
"sync"
- "sync/atomic"
"time"
"k8s.io/klog"
@@ -24,8 +23,6 @@ type daemon struct {
gpioBelowRough gpio
gpioBelowHigh gpio
- load atomic.Int64
-
// mu guards the state below.
mu sync.RWMutex
daemonState
@@ -65,22 +62,11 @@ func (d *daemonState) vacuumStatus() (rough, high bool) {
// process runs the pain acquisition and control loop of succd.
func (d *daemon) process(ctx context.Context) {
- var lastRun time.Time
- hz := 100
- period := time.Second / time.Duration(hz)
- // Extra grace period for GC pauses and other non-realtime system jitter.
- periodGrace := period + time.Millisecond*5
-
- ticker := time.NewTicker(period)
+ ticker := time.NewTicker(time.Millisecond * 100)
defer ticker.Stop()
for {
select {
case <-ticker.C:
- now := time.Now()
- if elapsed := now.Sub(lastRun); !lastRun.IsZero() && elapsed > periodGrace {
- klog.Warningf("Processing loop lag: took %s, want %s", elapsed, period)
- }
- lastRun = now
if err := d.processOnce(ctx); err != nil {
if errors.Is(err, ctx.Err()) {
return
@@ -89,9 +75,6 @@ func (d *daemon) process(ctx context.Context) {
time.Sleep(time.Second * 10)
}
}
- runtime := time.Since(lastRun)
- load := int64(100 * runtime / period)
- d.load.Store(load)
case <-ctx.Done():
return
}
@@ -121,8 +104,8 @@ func (d *daemon) processOnce(_ context.Context) error {
mbar := d.piraniMbar3.mbar
if !d.safety.failsafe && mbar < 4e-6 {
// Unrealistic result, Pirani probe probably disconnected. Failsafe mode.
- d.safety.failsafe = true
- klog.Errorf("SAFETY: Pirani probe seems disconnected; enabling failsafe mode")
+ d.safety.failsafe = true
+ klog.Errorf("SAFETY: Pirani probe seems disconnected; enabling failsafe mode")
}
if d.safety.failsafe && mbar > 1e2 {
d.safety.failsafe = false
diff --git a/succbone/succd/process_controller.go b/succbone/succd/process_controller.go
index b7f689c..0c0abc6 100644
--- a/succbone/succd/process_controller.go
+++ b/succbone/succd/process_controller.go
@@ -7,7 +7,6 @@ import "k8s.io/klog"
//
// This is a subset of daemon functions limited to a safe, explicit subset.
type daemonController interface {
- loopLoad() int64
// snapshot returns an internally consistent copy of the daemon state.
snapshot() *daemonState
// rpSet enables/disables the roughing pump.
@@ -20,10 +19,6 @@ type daemonController interface {
ventPress()
}
-func (d *daemon) loopLoad() int64 {
- return d.load.Load()
-}
-
func (d *daemon) snapshot() *daemonState {
d.mu.RLock()
ds := d.daemonState