Skip to content

add file-backed ReadonlySharedMemory#1498

Draft
ludfjig wants to merge 3 commits into
hyperlight-dev:mainfrom
ludfjig:file_backed_rsm
Draft

add file-backed ReadonlySharedMemory#1498
ludfjig wants to merge 3 commits into
hyperlight-dev:mainfrom
ludfjig:file_backed_rsm

Conversation

@ludfjig
Copy link
Copy Markdown
Contributor

@ludfjig ludfjig commented Jun 1, 2026

draft, will rebase once #1485 is merged

Add ReadonlySharedMemory::from_file(file, guest_mapped_size), a file-backed counterpart to from_bytes. It reserves [guard][blob][guard] with the file mapped over the middle slot: Linux uses a PROT_NONE anonymous reservation with MAP_FIXED, Windows uses a VirtualAlloc2 placeholder split into three with MapViewOfFile3(MEM_REPLACE_PLACEHOLDER). The Windows path uses the WindowsMapping::FileBacked variant added in #1485 so surrogate-process plumbing can tell the two backings apart.

ReadonlySharedMemory::from_bytes also changes from Option to a required usize.

This is currently unused but will be used in the future.

ludfjig added 3 commits May 29, 2026 16:31
Wrap host-mapping lifetime management in dedicated RAII guards. On Linux `Mmap` owns the `mmap` reservation and calls `munmap` on drop. On Windows `MappedView` owns the mapped view and calls `UnmapViewOfFile`, and `FileMapping` owns the file-mapping HANDLE and calls `CloseHandle`.

`HostMapping` becomes a thin aggregate of these guards instead of carrying raw `(ptr, size, handle)` fields with a manual `Drop` impl, and exposes `ptr()`, `size()`, and `file_mapping_handle()` accessors that the `SharedMemory` trait defaults use.

Signed-off-by: Ludvig Liljenberg <4257730+ludfjig@users.noreply.github.com>
Signed-off-by: Ludvig Liljenberg <4257730+ludfjig@users.noreply.github.com>
Signed-off-by: Ludvig Liljenberg <4257730+ludfjig@users.noreply.github.com>
@ludfjig ludfjig added the kind/enhancement For PRs adding features, improving functionality, docs, tests, etc. label Jun 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/enhancement For PRs adding features, improving functionality, docs, tests, etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant