Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 30 additions & 12 deletions doc/openvmm-upstream-roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,13 @@
reorganization kept it there; see [Upstream status](#upstream-status).
- Mapped fork tip: `7677ad8d56a59864475012b63b6f01a22575c30d`, position 131. The graph, PR
summary, and commit mapping below cover positions 001-131.
- NVX's pinned OpenVMM revision: `cba21d109eeb99fbc573c79b2ed9f4754f734b25`, position 237, the
head of microsoft/openvmm#5004, whose commit follows position 236, `ac3dc27a7`, the head of
microsoft/openvmm#5003, on which it stacks, whose commit follows position 235, `b4028c1aa`, the
head of `feature/microvm/dev`, which microsoft/openvmm#5001 merged after position 234,
`f41a1ecfc`, which microsoft/openvmm#4997 merged after position 233, `d501e5066`, which
microsoft/openvmm#4996 merged after position 232, `6cb6ba87c`, which
- NVX's pinned OpenVMM revision: `46bfe02ed65697e858f66ce55eb60831b3ac3461`, position 238, the
head of microsoft/openvmm#5005, whose commit follows position 237, `cba21d109`, the head of
microsoft/openvmm#5004, on which it stacks, whose commit follows position 236, `ac3dc27a7`, the
head of microsoft/openvmm#5003, on which that one stacks, whose commit follows position 235,
`b4028c1aa`, the head of `feature/microvm/dev`, which microsoft/openvmm#5001 merged after
position 234, `f41a1ecfc`, which microsoft/openvmm#4997 merged after position 233, `d501e5066`,
which microsoft/openvmm#4996 merged after position 232, `6cb6ba87c`, which
microsoft/openvmm#4995 merged after position 231, `98e5b3ca5`, which
microsoft/openvmm#4994 merged with position 230 after position 229, `ed8fc0713`, which
microsoft/openvmm#4993 merged after position 228, `d6addf8c1`, which
Expand All @@ -30,8 +31,8 @@
position 221 into positions 035 and 036, and combined v5.1 positions 222 and 223, the two commits
of microsoft/openvmm#4984, into position 220. Positions 001-147 keep their positions, v5.1
positions 149-220 are positions 148-219, and the tree of position 220 is the tree of
`3f2ab4c2f`; see [The v6.0 reorganization](#the-v60-reorganization). The pin is 106 commits past
the mapped tip on the same first-parent chain. Positions 132-237 are not yet assigned to PRs; see
`3f2ab4c2f`; see [The v6.0 reorganization](#the-v60-reorganization). The pin is 107 commits past
the mapped tip on the same first-parent chain. Positions 132-238 are not yet assigned to PRs; see
[Commits after the mapped tip](#commits-after-the-mapped-tip).
- Upstream main: `ba105dd7f00499acc1862456c179c0930cb2c8f7` (2026-11-06), the fork base itself;
see [Upstream main past the fork base](#upstream-main-past-the-fork-base).
Expand Down Expand Up @@ -996,7 +997,8 @@ ba105dd7f
-> kernel tuning admitted on platform command lines [235]
-> memory-expansion ranges placed without overflow [236]
-> FIFO artifacts refused without waiting for a writer [237]
-> cba21d109 (NVX pin)
-> device input gated without closing devices to the vCPUs [238]
-> 46bfe02ed (NVX pin)
```

For upstream review, PR01-PR06 and PR14 can be rebased independently onto current upstream main,
Expand All @@ -1012,13 +1014,13 @@ reorganization folded the PR20 and PR12 fixups into the commits that they fix; s

## Commits after the mapped tip

The NVX pin extends the chain past position 131 without merges. None of the 106 later commits is a
The NVX pin extends the chain past position 131 without merges. None of the 107 later commits is a
fixup of a mapped PR, and none is yet classified or assigned to PRs. Each of positions 132-186
combines the v2.4 commits that the table lists, as v3.0 positions 145-160 and 162-200 did, which
developed one concept; "(part)" marks a v2.4 fixup that split across commits. Positions 187-191
followed the v3.0 reorganization, positions 192-205 are the ABI restart of the v4.0
reorganization, positions 206-211 followed it, positions 212-218 followed the v5.0
reorganization, positions 219 and 220 followed the v5.1 rebase, and positions 221-237 followed the
reorganization, positions 219 and 220 followed the v5.1 rebase, and positions 221-238 followed the
v6.0 reorganization, so they combine none, apart from position 220, which combines v5.1 positions
222 and 223. Each commit has the position that it
had in v5.1 through position 147, and one less from v5.1 position 149 on; see
Expand Down Expand Up @@ -1133,6 +1135,7 @@ at `e1ca353eb`, whose first 210 commits are those of `feature/microvm/release/v4
| 235 | `b4028c1aa` | - | - | - | - | openvmm_helpers: admit kernel tuning on platform command lines (microsoft/openvmm#5001) |
| 236 | `ac3dc27a7` | - | - | - | - | openvmm_helpers: compute memory-expansion ranges without overflow (microsoft/openvmm#5003) |
| 237 | `cba21d109` | - | - | - | - | openvmm_helpers: refuse a FIFO artifact without waiting for a writer (microsoft/openvmm#5004) |
| 238 | `46bfe02ed` | - | - | - | - | vmotherboard: gate a device's input without closing it to the vCPUs (microsoft/openvmm#5005) |

The remarks that say whether commits apply to upstream main record what the v3.0 reorganization
found on its base, `b2676222b`, at the positions that the commits have now.
Expand Down Expand Up @@ -1266,7 +1269,13 @@ restores: on Unix both now open with `O_NONBLOCK`, so that position 032's type c
FIFO without waiting for a writer, and then make a regular file's descriptor blocking again. It
also adds tests beside position 032's tests of the module and position 035's tests of a restore's
artifacts, and extends the restore paragraph that PR12's position 036 adds to the snapshot format
guide.
guide. Position 238 changes the input gate that PR09's position 018 adds: the chipset device unit,
which changed a device's gate with the device's mutex closed, as it changes the device's other
states, now makes the gate's synchronous part under the device's ordinary lock and awaits the rest
without the device, since the vCPUs run through a gate change. It changes the gate's methods of
`ChangeDeviceState`, the erased chipset devices, and the remote device proxy, which position 018
adds, and the virtio transports' forwarding of the gate, which PR13's position 040 adds, and adds
tests of the unit, both virtio transports, and the proxy.
Assigning the later commits therefore means revisiting those PRs, not only appending new ones.

Position 177, by contrast, changes only `disk_blob`, which upstream main and the fork base
Expand Down Expand Up @@ -1522,6 +1531,15 @@ adds to the snapshot format guide. Replaying it on upstream main conflicts in al
files: upstream main lacks the file system module of position 032, the directory-relative restore
of position 035, and that paragraph, so it follows PR11, PR12, and PR19 upstream.

Position 238 changes only the input gate that PR09's position 018 adds to `vmcore`'s device state,
the chipset device unit, the erased chipset devices, and the remote device proxy, whose files
PR10's position 019 and position 218 also change, and the gate's forwarding through the virtio
transports, which PR13's positions 039 and 040 add and PR16's positions 066 and 068 and positions
183 and 218 also change. It adds tests of the unit, the transports, and the proxy, those of the
transports in a new file. Replaying it on upstream main conflicts in eight of its nine files, all
but that new one, which applies cleanly: upstream main lacks the input gate of position 018 and its
forwarding by position 040, so it follows PR09 and PR13 upstream.

## PR summary

Each count is of v6.0 commits, which include the fixups that the v3.0, v4.0, v5.0, and v6.0
Expand Down
Loading