Skip to content

Conversation

@ZR233
Copy link
Contributor

@ZR233 ZR233 commented Dec 21, 2025

This pull request introduces several infrastructure and dependency management updates, primarily focused on improving module handling, workspace configuration, and patch management for the project. It also includes some cleanup and modernization of CI workflow files and board configuration files.

Dependency and Module Management

  • Added multiple new submodules to .gitmodules for various system and platform modules, enabling local development and easier updates.
  • Updated Cargo.toml to use local paths for several dependencies (e.g., axvm, axvcpu, axdevice, etc.), added new dependencies (ranges-ext, vm-allocator, axplat-aarch64-dyn, axvm-types), and reworked [patch] sections to point to local modules instead of remote repositories. [1] [2] [3] [4] [5]
  • Added devspace patch management to .cargo/config.toml for local crate overrides, improving workflow for development and testing of patched crates.
  • Added .devspace/state.json to track module paths and applied patches, supporting reproducibility and easier environment setup.

Continuous Integration Workflow Updates

  • Updated actions/checkout to v6 and enabled recursive submodule checkout in test-board.yml and test-qemu.yml, ensuring all submodules are correctly initialized during CI runs. [1] [2]
  • Removed custom composite actions for setting up NimbOS guest images and QEMU, likely in favor of a more streamlined or centralized approach. [1] [2]

Board and VM Configuration Cleanup

  • Removed or commented out the "ept-level-4" feature from multiple board configuration files, simplifying feature sets for various platforms. [1] [2] [3] [4] [5]
  • Cleaned up the VM configuration for linux-aarch64-qemu-smp1.toml, removing unused or redundant fields and clarifying CPU set definitions.

Miscellaneous

  • Commented out force_explicit_abi in .rustfmt.toml, possibly reverting to default formatting behavior.

These changes collectively improve the project's maintainability, streamline development workflows, and modernize CI/CD and configuration management.

chore: update submodule commits for various modules

feat: add axplat-aarch64-dyn submodule

feat(axalloc): introduce a global memory allocator with buddy system

- Added `axalloc` crate with a global allocator implementation.
- Implemented `GlobalAllocator` using a buddy system allocator.
- Provided functions for memory initialization, allocation, and deallocation.
- Added `GlobalPage` struct for managing contiguous memory pages.

feat(axvm-types): define address types and device access structures

- Introduced `GuestVirtAddr` and `GuestPhysAddr` types for guest memory addressing.
- Created traits for device address handling and defined `DeviceAddr` and `DeviceAddrRange`.
- Implemented `Port` and `SysRegAddr` types for I/O operations and system registers.

fix(vmm): update VM reference handling

- Changed `push_vm` function to accept `axvm::Vm` directly and return an `Arc<axvm::Vm>`.
- Updated global VM list management to use `Arc` for thread-safe reference counting.

chore: update submodules and dependencies

- Updated submodules for `arm_vcpu`, `axvm`, and `axvmconfig`.
- Added `memory_addr` dependency to `axruntime` and `axvm-types`.
- Updated `Cargo.toml` files to reflect new dependencies and features.

chore: update axplat-aarch64-dyn submodule to latest commit

chore: update axplat-aarch64-dyn submodule to latest commit

fix: update memory mapping type in build_vmconfig function

chore: update dependencies to version hv-0.4.3 and sync submodule axvm

chore: update dependencies and refactor task management in the kernel

chore: update fdt-parser submodule to latest commit

chore: update fdt-edit and fdt-raw packages to latest versions and adjust dependencies

chore: update fdt-edit package to version 0.1.3 and adjust checksum

chore: update Cargo.lock and axplat-aarch64-dyn submodule to latest commits

Add initial documentation and diagram for refactoring process

- Created a new markdown file `refactor.md` to outline the refactoring strategy.
- Added a binary image `refactor.png` to visually represent the refactoring process.

Add refactor documentation for AxVisor architecture evolution

- Introduced a comprehensive analysis report detailing the transition from axvisor-dev3 to axvsior-dev2.
- Documented key architectural changes, including modularization, multi-architecture support, and improved dependency management.
- Highlighted the benefits of the refactor, such as enhanced maintainability, stability, and development efficiency.
- Provided a detailed comparison of the old and new architecture, including directory structure and module responsibilities.
- Included design principles, performance optimizations, and future development recommendations.

Refactor AxVisor architecture: Transition from monolithic to modular design

- Removed detailed execution summary and key improvements from refactor.md to streamline documentation.
- Deleted outdated diagram (refactor.png) to eliminate redundancy.
- Updated submodule reference for axvm to the latest commit for improved consistency.

Refactor code structure for improved readability and maintainability

更新 Cargo.lock 和 Cargo.toml,移除 fdt-parser 版本限制并添加 ranges-ext 依赖

更新 fdt-edit 依赖版本至 0.1.4,移除 ept-level-4 特性,并更新 axvm 子模块

更新 axalloc 依赖版本至 0.2.0,修复依赖冲突并移除过时的 zerocopy 依赖

更新 GitHub Actions 工作流,升级 checkout 动作至 v6 并启用子模块递归更新;更新 axvm 子模块至最新提交

update ci

删除不再使用的 NimbOS 和 QEMU 设置工作流;移除多个配置文件中的 ept-level-4 特性

refactor: Enhance AxVm design and state management

- Introduced a detailed design for AxVm, illustrating its internal structure and lifecycle management through state machines.
- Defined the overall architecture, including the relationship between AxVisor and Vm instances.
- Elaborated on the state management within VmData, detailing the three core states: InitData, VmRunData, and StoppedData.
- Clarified the VCPU and threading model, emphasizing resource migration and lifecycle safety through Arc/Weak references.

refactor: 清理未使用的导入和模块,优化代码结构

更新 fdt-edit 包至版本 0.1.5,移除 build_vmconfig 函数中的冗余设备配置,更新 axvm 子模块至最新提交

更新 axvm 子模块至最新提交

更新 axvm 子模块至最新提交

更新 linux-aarch64-qemu-smp1.toml 配置,移除冗余物理 CPU ID 和内核相关注释,更新 axvm 子模块至最新提交

更新 axvm 和 arm_vcpu 子模块至最新提交

更新 axvm 子模块至最新提交

更新 axvm 和 arm_vcpu 子模块至最新提交

更新 axvm 子模块至最新提交

更新 axvm 和 arm_vcpu 子模块至最新提交

更新 axvm 和 arm_vcpu 子模块至最新提交

更新 axvm 子模块至最新提交

更新 arceos 和 linux 虚拟机配置文件,注释掉物理 CPU ID 和内核相关参数

在虚拟机配置中添加内核中断模式设置为“passthrough”

调整 arceos 虚拟机配置,移动中断模式设置至设备规格部分,并更新内核路径和内存区域配置

更新 uboot.toml 成功正则表达式,添加 "Hello, world!";更新 arm_vcpu 和 axvm-types 子模块至最新提交

更新 arceos 和 linux 虚拟机配置,注释掉物理 CPU ID 和内核相关参数

更新 axvm 子模块至最新提交

更新 axvm 子模块至最新提交;修复内存映射类型为保留类型的配置;更新 axconfig 和 axruntime 的版本号至 0.1.0

更新依赖项,添加 axplat-x86-qemu-q35 和 x86_vcpu;修复多处理器启动页设置中的指针计算

更新 arm_vcpu 子模块至最新提交

更新 arm_vcpu 和 axvm 子模块至最新提交

更新依赖项,添加 raw-cpuid 和 axaddrspace;公开 load_images_fs 函数;更新子模块至最新提交

doc: update uml

更新版本号至 0.3.0,优化 load_images_fs 函数,简化内存映像加载逻辑

fmt

chore: clean up Cargo.lock by removing unused packages and updating dependencies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants