microsoft / microsoft/openvmm

Expressing devices that have dependencies on the memory_manager and transitively the partition unit

Open
#74 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Rust
Stars
1.9k
Forks
238
Avg merge
1d 15h
Merged PRs (30d)
100

Description

Today there's devices like the framebuffer and vpci that have an unexpressed dependency with the partition that ultimately implements map/unmap via the memory_manager.

It doesn't seem like we express this dependency in any way today, which means that a device could issue map/unmap calls while a partition is undergoing reset. That seems wrong?

We chatted about this a bit in office hours and we thought that perhaps it makes sense to make the memory_manager its own state unit. The rationale being that on state transitions, we should make sure to correctly flush and commit any pending changes to the memory mappings of the vm to the backing partition unit before we can complete that state transition.

Thoughts? That's a much more involved change, but I think it's the correct model to follow

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the framebuffer and vpci devices, the memory_manager, and the partition unit to understand how map/unmap calls interact with reset and state transitions. Determine how pending VM memory mappings could be flushed and committed before a transition completes. Done would mean the dependency is explicitly represented and reset cannot race with those mapping operations.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
operating-systems
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.