WS2: Hypervisor & Virtualization Facilities
Owner: TBD Duration: 16-20 weeks Priority: Critical
💬 Discuss WS2: Join #powercommons:matrix.org to discuss LPAR implementation, hypervisor state transitions, and KVM enablement strategies.
Objectives
Transform embedded hypervisor model (Book III-E) to ISA v3.0C/v3.1C hypervisor/LPAR model.
Deliverables
- MSR[HV] bit implementation (replacing MSR[GS])
- LPAR support with LPCR, HRMOR, PCR
- Hypervisor-specific SPRs (HSRR0/1, HSPRG0/1, HDAR, HDSISR)
- Per-thread partition support
- Hypervisor Emulation Assist Interrupt (HEAI)
Roadmap
Phase 1: Architecture Study (Weeks 1-2)
- Analyze Book III-E vs Book III-S differences
- Design state transition model
- Plan SPR remapping
Phase 2: Core State Logic (Weeks 3-8)
- Implement MSR[HV] bit
- Remove MSR[GS] logic
- Rework privilege checking
Phase 3: SPR Implementation (Weeks 9-13)
- Implement new hypervisor SPRs
- Remove embedded hypervisor SPRs
- Update SPR access control
Phase 4: LPAR Support (Weeks 14-17)
- Implement LPCR/HRMOR/PCR
- Add per-thread partition support
- Implement HEAI
Phase 5: Integration (Weeks 18-20)
- System-level testing
- KVM validation
- Performance optimization
Dependencies
- WS3: Interrupt Architecture (interrupt routing changes)
- WS4: Storage Management (LPIDR integration with MMU)
Risks
- Per-thread partition support adds significant complexity
- KVM compatibility issues
- Privilege state transition bugs
- Performance degradation in partition switching
Success Criteria
- MSR[HV] operational, MSR[GS] removed
- All hypervisor SPRs implemented
- LPAR fully functional
- Per-thread partitioning working
- KVM boots and runs guests
- Pass ISA hypervisor compliance tests
- <10% overhead for partition switching
Issues
Status: 27 open, 0 closed (0/27 complete)
| # | Title | Category | Tags | Status | Priority | Assignee |
|---|---|---|---|---|---|---|
| #94 | Replace MSR[GS] with MSR[HV] | Hypervisor | architecture, hypervisor, msr | ⬜ Open | 🔴 Critical | - |
| #95 | Remove guest state SPR mapping | Hypervisor | hypervisor, spr | ⬜ Open | 🔴 Critical | - |
| #96 | Implement privilege state logic per ISA v3.1C | Hypervisor | hypervisor, privilege | ⬜ Open | 🔴 Critical | - |
| #97 | Implement HSRR0/HSRR1 registers | Hypervisor | hypervisor, registers, spr | ⬜ Open | 🟠 High | - |
| #98 | Implement HSPRG0/HSPRG1 registers | Hypervisor | hypervisor, registers, spr | ⬜ Open | 🟠 High | - |
| #99 | Implement HDAR register | Hypervisor | hypervisor, registers, spr | ⬜ Open | 🟠 High | - |
| #100 | Implement HDSISR register | Hypervisor | hypervisor, registers, spr | ⬜ Open | 🟠 High | - |
| #101 | Implement HEIR register | Hypervisor | hypervisor, registers, spr | ⬜ Open | 🟠 High | - |
| #102 | Implement HEIR register | Hypervisor | hypervisor, registers, spr | ⬜ Open | 🟠 High | - |
| #103 | Implement LPCR register | Hypervisor | hypervisor, lpar, spr | ⬜ Open | 🔴 Critical | - |
| #104 | Implement HRMOR register | Hypervisor | hypervisor, lpar, spr | ⬜ Open | 🔴 Critical | - |
| #105 | Implement PCR register | Hypervisor | compatibility, hypervisor, lpar, spr | ⬜ Open | 🟡 Medium | - |
| #106 | Remove EPCR register | Cleanup | cleanup, embedded-hv | ⬜ Open | 🟠 High | - |
| #107 | Remove MSRP register | Cleanup | cleanup, embedded-hv | ⬜ Open | 🟠 High | - |
| #108 | Remove GESR, GDEAR registers | Cleanup | cleanup, embedded-hv | ⬜ Open | 🟡 Medium | - |
| #109 | Remove ehpriv instruction | Cleanup | cleanup, embedded-hv, instruction | ⬜ Open | 🟠 High | - |
| #110 | Modify sc (system call) instruction | Hypervisor | hypervisor, system-call | ⬜ Open | 🟠 High | - |
| #111 | Implement Hypervisor Emulation Assist Interrupt (HEAI) | Hypervisor | hypervisor, interrupt | ⬜ Open | 🟠 High | - |
| #112 | Implement privilege violation routing per LPCR[EVIRT] | Hypervisor | hypervisor, interrupt, privilege | ⬜ Open | 🟠 High | - |
| #113 | Update interrupt delivery for guest vs hypervisor | Hypervisor | hypervisor, interrupt | ⬜ Open | 🟠 High | - |
| #114 | Remove per-core partition restriction | Hypervisor | hypervisor, lpar, multi-threading | ⬜ Open | 🔴 Critical | - |
| #115 | Implement per-thread LPIDR | Hypervisor | hypervisor, lpar, multi-threading | ⬜ Open | 🟠 High | - |
| #116 | Create hypervisor privilege state test suite | Verification | testing, verification | ⬜ Open | 🟠 High | - |
| #117 | Create LPAR isolation test suite | Verification | lpar, testing, verification | ⬜ Open | 🟠 High | - |
| #118 | KVM integration testing | Verification | kvm, testing, verification | ⬜ Open | 🔴 Critical | - |
| #119 | Hypervisor performance optimization | Performance | optimization, performance | ⬜ Open | 🟡 Medium | - |
| #499 | Replace MSR[GS] with MSR[HV] | Hypervisor | architecture, hypervisor, msr | ⬜ Open | 🔴 Critical | - |
Last updated: 2025-12-05 16:48:17