Replies: 8 comments 4 replies
|
赞成把分散的配置、分散的体系结构条件编译等进行集中处理,但是感觉不一定集中后都直接放置到axvisor。 |
重构前的结构重构后的结构
重构后
|
|
以前的设计抽象层次较多,倾向于垂直化管理;新设计减少了部分中间层,倾向于扁平化。属于各有利弊。 |
|
Who is responsible for the lifetime management and scheduling of each vCPU |
|
https://github.com/arceos-hypervisor/axvisor/blob/next/doc/changelog/v0.3.0/AxVCpu.md 代码验证 |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Axvisor 配置与架构解耦技术方案
1. 背景与动机
当前 axvisor 项目包含三个核心 crate:
随着对多架构(如 RISC-V、AArch64、x86_64 等)与多平台(不同 SoC / 板级)的支持增加,项目内部出现以下问题:
#[cfg(...)])在 axvm 与 axdevice 中大量散落,难以维护。造成信息路径割裂。
vCPU核心功能差异:
虚拟中断控制器差异对比:
2. 目标
3. 优化方案
新的设计理念:从"vCPU层抹除差异"转变为"VM层抹除差异,vCPU求同存异"。核心相似功能抽象,架构特性独立,最小公约的函数组合,最终在VM层抹除架构差异
新分层架构
管理层 (axvisor): 负责虚拟机的高层管理逻辑,如VM生命周期管理、vCPU调度和资源分配。
VM层 (axvm): 提供统一的虚拟化抽象接口,定义trait和基础类型,协调各架构实现,提供给axvisor的接口已抹除架构差异。
架构层 (axvm/arch): 实现架构特定的虚拟化功能,为axvm接口提供实现,隔离架构相关代码,每个架构独立维护。每个架构模块内部依赖具体的实现组件。
架构实现层: 包含具体的架构实现模块,如arm_vcpu、arm_vgic、x86_vcpu等,为架构层提供底层功能支持。
架构共性层 (axvm/common): 在vm层级内,提供各架构通用的辅助功能和工具函数,减少重复代码。
14. 结论
通过将所有架构相关与配置决策逻辑上移至 axvisor,并为 axvm、axdevice 提炼统一抽象与配置注入流程,可显著提升:
All reactions