// Copyright (c) HashiCorp, Inc. // SPDX-License-Identifier: MPL-2.0 package raft import ( "context" "os" "github.com/shirou/gopsutil/v3/mem" "golang.org/x/sys/unix" ) func init() { getMmapFlags = getMmapFlagsLinux } func getMmapFlagsLinux(dbPath string) int { if os.Getenv("VAULT_RAFT_DISABLE_MAP_POPULATE") != "" { return 0 } stat, err := os.Stat(dbPath) if err != nil { return 0 } size := stat.Size() v, err := mem.VirtualMemoryWithContext(context.Background()) if err != nil { return 0 } // We won't worry about swap, since we already tell people not to use it. if v.Total > uint64(size) { return unix.MAP_POPULATE } return 0 }