summaryrefslogtreecommitdiffhomepage
path: root/pkg/sentry/fs/proc/task.go
diff options
context:
space:
mode:
authorNicolas Lacasse <nlacasse@google.com>2019-03-27 12:40:18 -0700
committerShentubot <shentubot@google.com>2019-03-27 12:41:27 -0700
commit2d355f0e8fb8f7e72e6448fd4fcc4e79cdb6ba72 (patch)
tree18803e4d5278c08b1133d3444478e89a21a08752 /pkg/sentry/fs/proc/task.go
parent5d94c893ae38f09f5132ab43d48204ab49121960 (diff)
Add start time to /proc/<pid>/stat.
The start time is the number of clock ticks between the boot time and application start time. PiperOrigin-RevId: 240619475 Change-Id: Ic8bd7a73e36627ed563988864b0c551c052492a5
Diffstat (limited to 'pkg/sentry/fs/proc/task.go')
-rw-r--r--pkg/sentry/fs/proc/task.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/pkg/sentry/fs/proc/task.go b/pkg/sentry/fs/proc/task.go
index 70578d3fa..335003dd8 100644
--- a/pkg/sentry/fs/proc/task.go
+++ b/pkg/sentry/fs/proc/task.go
@@ -461,7 +461,14 @@ func (s *taskStatData) ReadSeqFileData(ctx context.Context, h seqfile.SeqHandle)
fmt.Fprintf(&buf, "%d %d ", linux.ClockTFromDuration(cputime.UserTime), linux.ClockTFromDuration(cputime.SysTime))
fmt.Fprintf(&buf, "%d %d ", s.t.Priority(), s.t.Niceness())
fmt.Fprintf(&buf, "%d ", s.t.ThreadGroup().Count())
- fmt.Fprintf(&buf, "0 0 " /* itrealvalue starttime */)
+
+ // itrealvalue. Since kernel 2.6.17, this field is no longer
+ // maintained, and is hard coded as 0.
+ fmt.Fprintf(&buf, "0 ")
+
+ // Start time is relative to boot time, expressed in clock ticks.
+ fmt.Fprintf(&buf, "%d ", linux.ClockTFromDuration(s.t.StartTime().Sub(s.t.Kernel().Timekeeper().BootTime())))
+
var vss, rss uint64
s.t.WithMuLocked(func(t *kernel.Task) {
if mm := t.MemoryManager(); mm != nil {