diff options
Diffstat (limited to 'internal/debugfs/debugfs.go')
| -rw-r--r-- | internal/debugfs/debugfs.go | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/internal/debugfs/debugfs.go b/internal/debugfs/debugfs.go deleted file mode 100644 index 80ac436..0000000 --- a/internal/debugfs/debugfs.go +++ /dev/null @@ -1,57 +0,0 @@ -package debugfs - -import ( - "bufio" - "fmt" - "os" - "path/filepath" - "strings" -) - -// Return tracepoints with 'unsigned int fd', which are I/O tracepoints on FDs -func TracepointsWithFd() ([]string, error) { - return tracepointsWith("unsigned int fd") -} - -func tracepointsWith(field string) ([]string, error) { - var tracepoints []string - - matches, err := filepath.Glob("/sys/kernel/debug/tracing/events/syscalls/*/format") - if err != nil { - return tracepoints, err - } - if len(matches) == 0 { - return tracepoints, fmt.Errorf("Unable to gather tracepoints with FDs") - } - - for _, formatPath := range matches { - has, err := hasField(formatPath, field) - if err != nil { - return tracepoints, err - } - if !has { - continue - } - tracepoints = append(tracepoints, filepath.Base(filepath.Dir(formatPath))) - } - - return tracepoints, nil -} - -func hasField(formatPath, field string) (bool, error) { - file, err := os.Open(formatPath) - if err != nil { - return false, err - } - defer file.Close() - - scanner := bufio.NewScanner(file) - for scanner.Scan() { - line := scanner.Text() - if strings.Contains(line, fmt.Sprintf("field:%s;", field)) { - return true, nil - } - } - - return false, nil -} |
