summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNicolas Lacasse <nlacasse@google.com>2019-03-27 17:43:30 -0700
committerShentubot <shentubot@google.com>2019-03-27 17:44:38 -0700
commit9c188978870051f0b42ceb1a3f16320286936976 (patch)
treec0d0bfc4dbb034e7ac6de50f0b700da96e3e017f
parent6cb0b1881a6dacf2a85d1e904460a2aaae63e562 (diff)
Add rsslim field in /proc/pid/stat.
PiperOrigin-RevId: 240681675 Change-Id: Ib214106e303669fca2d5c744ed5c18e835775161
-rw-r--r--pkg/sentry/fs/proc/BUILD1
-rw-r--r--pkg/sentry/fs/proc/task.go7
-rw-r--r--test/syscalls/linux/proc.cc4
3 files changed, 11 insertions, 1 deletions
diff --git a/pkg/sentry/fs/proc/BUILD b/pkg/sentry/fs/proc/BUILD
index 666b0ab3a..3aa70a28e 100644
--- a/pkg/sentry/fs/proc/BUILD
+++ b/pkg/sentry/fs/proc/BUILD
@@ -42,6 +42,7 @@ go_library(
"//pkg/sentry/kernel/auth",
"//pkg/sentry/kernel/kdefs",
"//pkg/sentry/kernel/time",
+ "//pkg/sentry/limits",
"//pkg/sentry/mm",
"//pkg/sentry/socket/rpcinet",
"//pkg/sentry/socket/unix",
diff --git a/pkg/sentry/fs/proc/task.go b/pkg/sentry/fs/proc/task.go
index 335003dd8..5a90c5578 100644
--- a/pkg/sentry/fs/proc/task.go
+++ b/pkg/sentry/fs/proc/task.go
@@ -29,6 +29,7 @@ import (
"gvisor.googlesource.com/gvisor/pkg/sentry/fs/proc/seqfile"
"gvisor.googlesource.com/gvisor/pkg/sentry/fs/ramfs"
"gvisor.googlesource.com/gvisor/pkg/sentry/kernel"
+ "gvisor.googlesource.com/gvisor/pkg/sentry/limits"
"gvisor.googlesource.com/gvisor/pkg/sentry/mm"
"gvisor.googlesource.com/gvisor/pkg/sentry/usage"
"gvisor.googlesource.com/gvisor/pkg/sentry/usermem"
@@ -477,7 +478,11 @@ func (s *taskStatData) ReadSeqFileData(ctx context.Context, h seqfile.SeqHandle)
}
})
fmt.Fprintf(&buf, "%d %d ", vss, rss/usermem.PageSize)
- fmt.Fprintf(&buf, "0 0 0 0 0 0 " /* rsslim startcode endcode startstack kstkesp kstkeip */)
+
+ // rsslim.
+ fmt.Fprintf(&buf, "%d ", s.t.ThreadGroup().Limits().Get(limits.Rss).Cur)
+
+ fmt.Fprintf(&buf, "0 0 0 0 0 " /* startcode endcode startstack kstkesp kstkeip */)
fmt.Fprintf(&buf, "0 0 0 0 0 " /* signal blocked sigignore sigcatch wchan */)
fmt.Fprintf(&buf, "0 0 " /* nswap cnswap */)
terminationSignal := linux.Signal(0)
diff --git a/test/syscalls/linux/proc.cc b/test/syscalls/linux/proc.cc
index 64d75d9fb..5b52ed71a 100644
--- a/test/syscalls/linux/proc.cc
+++ b/test/syscalls/linux/proc.cc
@@ -895,6 +895,10 @@ TEST_P(ProcPidStatTest, HasBasicFields) {
uint64_t rss;
ASSERT_TRUE(absl::SimpleAtoi(fields[23], &rss));
EXPECT_GT(rss, 0);
+
+ uint64_t rsslim;
+ ASSERT_TRUE(absl::SimpleAtoi(fields[24], &rsslim));
+ EXPECT_GT(rsslim, 0);
}
INSTANTIATE_TEST_CASE_P(SelfAndNumericPid, ProcPidStatTest,