mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
Add /proc/sys/vm/max_map_count
Set it to int32 max because gVisor doesn't have a limit. Fixes #2337 PiperOrigin-RevId: 378722230
This commit is contained in:
committed by
gVisor bot
parent
8d426b7381
commit
21169357ca
@@ -77,6 +77,27 @@ func (*overcommitMemory) ReadSeqFileData(ctx context.Context, h seqfile.SeqHandl
|
||||
}, 0
|
||||
}
|
||||
|
||||
// +stateify savable
|
||||
type maxMapCount struct{}
|
||||
|
||||
// NeedsUpdate implements seqfile.SeqSource.
|
||||
func (*maxMapCount) NeedsUpdate(int64) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// ReadSeqFileData implements seqfile.SeqSource.
|
||||
func (*maxMapCount) ReadSeqFileData(ctx context.Context, h seqfile.SeqHandle) ([]seqfile.SeqData, int64) {
|
||||
if h != nil {
|
||||
return nil, 0
|
||||
}
|
||||
return []seqfile.SeqData{
|
||||
{
|
||||
Buf: []byte("2147483647\n"),
|
||||
Handle: (*maxMapCount)(nil),
|
||||
},
|
||||
}, 0
|
||||
}
|
||||
|
||||
func (p *proc) newKernelDir(ctx context.Context, msrc *fs.MountSource) *fs.Inode {
|
||||
h := hostname{
|
||||
SimpleFileInode: *fsutil.NewSimpleFileInode(ctx, fs.RootOwner, fs.FilePermsFromMode(0444), linux.PROC_SUPER_MAGIC),
|
||||
@@ -96,6 +117,7 @@ func (p *proc) newKernelDir(ctx context.Context, msrc *fs.MountSource) *fs.Inode
|
||||
|
||||
func (p *proc) newVMDir(ctx context.Context, msrc *fs.MountSource) *fs.Inode {
|
||||
children := map[string]*fs.Inode{
|
||||
"max_map_count": seqfile.NewSeqFileInode(ctx, &maxMapCount{}, msrc),
|
||||
"mmap_min_addr": seqfile.NewSeqFileInode(ctx, &mmapMinAddrData{p.k}, msrc),
|
||||
"overcommit_memory": seqfile.NewSeqFileInode(ctx, &overcommitMemory{}, msrc),
|
||||
}
|
||||
|
||||
@@ -55,6 +55,7 @@ func (fs *filesystem) newSysDir(ctx context.Context, root *auth.Credentials, k *
|
||||
}),
|
||||
}),
|
||||
"vm": fs.newStaticDir(ctx, root, map[string]kernfs.Inode{
|
||||
"max_map_count": fs.newInode(ctx, root, 0444, newStaticFile("2147483647\n")),
|
||||
"mmap_min_addr": fs.newInode(ctx, root, 0444, &mmapMinAddrData{k: k}),
|
||||
"overcommit_memory": fs.newInode(ctx, root, 0444, newStaticFile("0\n")),
|
||||
}),
|
||||
|
||||
@@ -2364,6 +2364,15 @@ TEST(ProcSysKernelHostname, MatchesUname) {
|
||||
EXPECT_EQ(procfs_hostname, hostname);
|
||||
}
|
||||
|
||||
TEST(ProcSysVmMaxmapCount, HasNumericValue) {
|
||||
const std::string val_str =
|
||||
ASSERT_NO_ERRNO_AND_VALUE(GetContents("/proc/sys/vm/max_map_count"));
|
||||
int32_t val;
|
||||
EXPECT_TRUE(absl::SimpleAtoi(val_str, &val))
|
||||
<< "/proc/sys/vm/max_map_count does not contain a numeric value: "
|
||||
<< val_str;
|
||||
}
|
||||
|
||||
TEST(ProcSysVmMmapMinAddr, HasNumericValue) {
|
||||
const std::string mmap_min_addr_str =
|
||||
ASSERT_NO_ERRNO_AND_VALUE(GetContents("/proc/sys/vm/mmap_min_addr"));
|
||||
|
||||
Reference in New Issue
Block a user