From 96355c79a38032ab4bd880b3b3ff4192ae709795 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 20 May 2026 14:37:41 +0300 Subject: task 27: add KindSleep and requested sleep metric --- internal/eventloop_exit.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'internal/eventloop_exit.go') diff --git a/internal/eventloop_exit.go b/internal/eventloop_exit.go index 7e26cb0..7a69774 100644 --- a/internal/eventloop_exit.go +++ b/internal/eventloop_exit.go @@ -42,6 +42,8 @@ func (e *eventLoop) handleTracepointExit(ep *event.Pair) bool { return e.handlePollExit(ep, ev) case *types.MemEvent: return e.handleMemExit(ep, ev) + case *types.SleepEvent: + return e.handleSleepExit(ep, ev) case *types.NullEvent: return e.handleNullExit(ep, ev) case *types.FcntlEvent: @@ -417,6 +419,15 @@ func (e *eventLoop) handleMemExit(ep *event.Pair, memEv *types.MemEvent) bool { return true } +func (e *eventLoop) handleSleepExit(ep *event.Pair, sleepEv *types.SleepEvent) bool { + ep.Comm = e.comm(sleepEv.GetTid()) + if !e.Filter().MatchPair(ep) { + ep.Recycle() + return false + } + return true +} + func pipeDescriptorName(flags, fd0, fd1 int32) string { return fmt.Sprintf("pipe:%d:%d:%d", flags, fd0, fd1) } @@ -544,6 +555,17 @@ func applyAddressSpaceBytes(ep *event.Pair) { ep.AddressSpaceBytes = addressSpaceBytesFromMem(memEv) } +func applyRequestedSleepNs(ep *event.Pair) { + if ep == nil { + return + } + sleepEv, ok := ep.EnterEv.(*types.SleepEvent) + if !ok { + return + } + ep.RequestedSleepNs = sleepEv.RequestedNs +} + // dropMalformedRawEvent records a warning when a raw BPF event cannot be // decoded, keeping the error visible without crashing the event loop. func (e *eventLoop) dropMalformedRawEvent(evType types.EventType, raw []byte) { -- cgit v1.2.3