Map host FDs into AddressSpaces eagerly. #10978
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Map host FDs into AddressSpaces eagerly.
mm.MemoryManager.MMap(), which is primarily responsible for implementing
application mmap(2), creates a sentry VMA (virtual memory area) as requested,
but does not always create PMAs (platform mapping area) or the platform
mappings they represent (via platform.AddressSpace.MapFile()). For mappings of
files (as opposed to anonymous mappings), MMap() never creates platform
mappings because the cost of doing so is unknown; in particular, if the file is
gofer-backed, then creating a platform mapping may require that the requested
pages be read from the gofer into sentry page cache, which may be relatively
slow. However, in cases where the file is directly backed by a host file
descriptor, we can override MMap()'s conservative heuristic by setting
memmap.MMapOpts.PlatformEffect to at least PlatformEffectPopulate.