Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MadviseDontNeed ¶ added in v0.15.0
func MadviseDontNeed(desc Descriptor) error
MadviseDontNeed frees mmapped memory. `MADV_DONTNEED` informs the kernel to free the mmapped pages right away instead of waiting for memory pressure. NB(bodu): DO NOT FREE anonymously mapped memory or else it will null all of the underlying bytes as the memory is not file backed.
func Munmap ¶
func Munmap(desc Descriptor) error
Munmap munmaps a byte slice that is backed by an mmap
Types ¶
type Context ¶ added in v0.15.0
Context provides context about the current mmap for reporting purposes
type Descriptor ¶ added in v0.15.0
type Descriptor struct { Bytes []byte Warning error ReporterOptions ReporterOptions }
Descriptor is a descriptor of a successful mmap
type FileDesc ¶
type FileDesc struct { // file is the *os.File ref to store File **os.File // bytes is the []byte slice ref to store the mmap'd address Descriptor *Descriptor // options specifies options to use when mmaping a file Options Options }
FileDesc contains the fields required for Mmaping a file using MmapFiles
type FileOpener ¶
FileOpener is the signature of a function that MmapFiles can use to open files
type FilesResult ¶
type FilesResult struct {
Warning error
}
FilesResult contains the result of calling MmapFiles
func Files ¶
func Files(opener FileOpener, files map[string]FileDesc) (FilesResult, error)
Files is a utility function for mmap'ing a group of files at once
type HugeTLBOptions ¶
type HugeTLBOptions struct { // enabled determines if using the huge TLB flag is enabled for platforms // that support it Enabled bool // threshold determines if the size being mmap'd is greater or equal // to this value to use or not use the huge TLB flag if enabled Threshold int64 }
HugeTLBOptions contains all options related to huge TLB
type Options ¶
type Options struct { // read is whether to make mmap bytes ref readable Read bool // write is whether to make mmap bytes ref writable Write bool // hugeTLB is the mmap huge TLB options HugeTLB HugeTLBOptions // ReporterOptions is the reporter options ReporterOptions ReporterOptions }
Options contains the options for mmap'ing a file
type Reporter ¶ added in v0.15.0
type Reporter interface { // ReportMap reports the mapping of an mmap and allows an error to be // returned in case the reporter want's to deny allowing this map call. ReportMap(ctx Context) error // ReportUnmap reports the unmapping of an mmap and allows an error to be // returned in case the reporter want's to deny allowing this unmap call. ReportUnmap(ctx Context) error }
Reporter implements the reporting of mmap.
type ReporterOptions ¶ added in v0.15.0
type ReporterOptions struct { // Context is the context to report to reporter for this Context Context // Reporter if set will receive events for reporting Reporter Reporter }
ReporterOptions contains all options to tracking mmap calls