From 0207e3a55f2141d54dfd889971d3937b4644fcbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustavo=20I=C3=B1iguez=20Goia?= Date: Tue, 12 Dec 2023 18:11:46 +0100 Subject: [PATCH] cache of events improvement don't reset/recalculate checksums on every configuration change, only if the checksums config item has changed. --- daemon/procmon/cache_events.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/daemon/procmon/cache_events.go b/daemon/procmon/cache_events.go index 4bd921d6..e6e8b40f 100644 --- a/daemon/procmon/cache_events.go +++ b/daemon/procmon/cache_events.go @@ -107,6 +107,7 @@ func (e *EventsStore) ReplaceItem(oldProc, newProc *Process) { // Note: in rare occasions, the process being replaced is the older one. // if oldProc.Starttime > newProc.Starttime {} // + newProc.PPID = oldProc.ID e.UpdateItem(newProc) @@ -307,14 +308,20 @@ func (e *EventsStore) SetComputeChecksums(compute bool) { e.mu.Lock() defer e.mu.Unlock() + if compute == e.checksumsEnabled { + log.Debug("SetComputeChecksums(), no changes (%v, %v)", e.checksumsEnabled, compute) + return + } e.checksumsEnabled = compute if !compute { + log.Debug("SetComputeChecksums() disabled, deleting saved checksums") for _, item := range e.eventByPID { // XXX: reset saved checksums? or keep them in cache? item.Proc.ResetChecksums() } return } + log.Debug("SetComputeChecksums() enabled, recomputing cached checksums") for _, item := range e.eventByPID { if item.Proc.ChecksumsCount() == 0 { item.Proc.ComputeChecksums(e.checksums)