summaryrefslogtreecommitdiff
path: root/internal/eventloop.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/eventloop.go')
-rw-r--r--internal/eventloop.go13
1 files changed, 12 insertions, 1 deletions
diff --git a/internal/eventloop.go b/internal/eventloop.go
index 91af7c9..c5467ec 100644
--- a/internal/eventloop.go
+++ b/internal/eventloop.go
@@ -345,6 +345,17 @@ func (e *eventLoop) tracepointExited(exitEv event.Event, ch chan<- *event.Pair)
}
case *NullEvent:
+ if ep.Is(SYS_ENTER_IO_URING_SETUP) {
+ retEvent, ok := exitEv.(*types.RetEvent)
+ if !ok {
+ panic("expected *types.RetEvent")
+ }
+ if fd := int32(retEvent.Ret); fd >= 0 {
+ fdFile := file.NewFdWithPid(fd, v.Pid)
+ e.files[fd] = fdFile
+ ep.File = fdFile
+ }
+ }
ep.Comm = e.comm(ep.EnterEv.GetTid())
if !e.filter.eventPair(ep) {
ep.Recycle()
@@ -404,7 +415,7 @@ func (e *eventLoop) tracepointExited(exitEv event.Event, ch chan<- *event.Pair)
// TODO: mmap, msync...
// TODO: getcwd?
// TODO: sync_file_range
- // TODO: https://man7.org/linux/man-pages/man2/io_uring_enter.2.html (already captured but without FDs)
+ // TODO: io_uring_enter/io_uring_register are captured without fd arguments.
prevPairTime, _ := e.prevPairTimes[ep.EnterEv.GetTid()]
ep.CalculateDurations(prevPairTime)