Skip to content

Support SBI nested acceleration (NACL) extension #256

@uestc-gr

Description

@uestc-gr

当KVM RISC-V Hypervisor作为guset运行在其他主机Hypervisor之下时,完整的H扩展功能将由主机Hypervisor通过"陷入并模拟"(trap-and-emulate)方式实现。在这种情况下,如果主机Hypervisor提供了SBI嵌套加速(NACL)扩展,KVM RISC-V的性能可以得到加速。

本系列补丁扩展了KVM RISC-V,使其能够在底层SBI实现(即主机Hyperviso)提供该功能时使用SBI NACL扩展。

主要合入以下补丁
NACL的前置依赖补丁,包括kvm汇编代码的优化,新增用户空间栈回溯支持,并在 perf 中实现 Host/Guest 性能事件区分与基础 profiling 能力
683c5bb riscv: kvm: Use SYM_*() assembly macros instead of deprecated ones
e5ff012 riscv: kvm: use ".L" local labels in assembly when applicable
1a74833 riscv: stacktrace: Add USER_STACKTRACE support
5bb5ccb riscv: perf: add guest vs host distinction
eded675 riscv: KVM: add basic support for host vs guest profiling

NACL特性扩展合入
e403a90 RISC-V: KVM: Order the object files alphabetically
b6114a7 RISC-V: KVM: Save/restore HSTATUS in C source
b922307 RISC-V: KVM: Save/restore SCOUNTEREN in C source
8f57ada RISC-V: KVM: Break down the __kvm_riscv_switch_to() into macros
5d8f7ee RISC-V: KVM: Replace aia_set_hvictl() with aia_hvictl_value()
15ff2ff RISC-V: KVM: Don't setup SGEI for zero guest external interrupts
5daf89e RISC-V: Add defines for the SBI nested acceleration extension
d466c19 RISC-V: KVM: Add common nested acceleration support
e28e6b6 RISC-V: KVM: Use nacl_csr_xyz() for accessing H-extension CSRs
dab5560 RISC-V: KVM: Use nacl_csr_xyz() for accessing AIA CSRs
68c72a6 RISC-V: KVM: Use SBI sync SRET call when available
3e7d154 RISC-V: KVM: Save trap CSRs in kvm_riscv_vcpu_enter_exit()
5bdecd8 RISC-V: KVM: Use NACL HFENCEs for KVM request based HFENCEs

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions