From ce17a5015cf3e4d2533375a65554697ef8c8403a Mon Sep 17 00:00:00 2001 From: GnoCiYeH Date: Mon, 15 Apr 2024 23:19:23 +0800 Subject: [PATCH 01/18] =?UTF-8?q?=E5=87=A0=E4=B8=AA=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/src/arch/x86_64/vm/kvm_host/mod.rs | 40 ++++++++++ kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs | 31 ++++++++ kernel/src/arch/x86_64/vm/mod.rs | 85 ++++++++++++++++++++++ kernel/src/arch/x86_64/vm/vmx/mod.rs | 26 +++++++ kernel/src/virt/vm/kvm_host/mod.rs | 28 +++++++ kernel/src/virt/vm/kvm_host/vcpu.rs | 51 +++++++++++++ kernel/src/virt/vm/mod.rs | 1 + 7 files changed, 262 insertions(+) create mode 100644 kernel/src/arch/x86_64/vm/kvm_host/mod.rs create mode 100644 kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs create mode 100644 kernel/src/arch/x86_64/vm/mod.rs create mode 100644 kernel/src/arch/x86_64/vm/vmx/mod.rs create mode 100644 kernel/src/virt/vm/kvm_host/mod.rs create mode 100644 kernel/src/virt/vm/kvm_host/vcpu.rs create mode 100644 kernel/src/virt/vm/mod.rs diff --git a/kernel/src/arch/x86_64/vm/kvm_host/mod.rs b/kernel/src/arch/x86_64/vm/kvm_host/mod.rs new file mode 100644 index 000000000..dfd7501d4 --- /dev/null +++ b/kernel/src/arch/x86_64/vm/kvm_host/mod.rs @@ -0,0 +1,40 @@ +use system_error::SystemError; + +pub mod vcpu; + +type SysResult = Result; + +pub struct X86KvmArch { + /// 中断芯片模式 + irqchip_mode: KvmIrqChipMode, + /// 负责引导(bootstrap)kvm的vcpu——id + bsp_vcpu_id: usize, +} + +#[derive(Debug, Clone, Copy)] +pub enum KvmIrqChipMode { + None, + Kernel, + Split, +} + +pub trait KvmFunc: Send + Sync { + /// 返回该硬件支持的名字,例如“Vmx” + fn name(&self) -> &'static str; + + /// 启用硬件支持 + /// (注:只有dummy实现能够返回ENOSYS错误码,表示未指定) + fn hardware_enable(&self) -> SysResult<()>; +} + +pub struct DummyKvmFunc; + +impl KvmFunc for DummyKvmFunc { + fn name(&self) -> &'static str { + "kvm_dummy_ops" + } + + fn hardware_enable(&self) -> SysResult<()> { + Err(SystemError::ENOSYS) + } +} diff --git a/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs b/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs new file mode 100644 index 000000000..f06bed31e --- /dev/null +++ b/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs @@ -0,0 +1,31 @@ +use crate::{ + smp::cpu::ProcessorId, + virt::vm::kvm_host::vcpu::{MutilProcessorState, VirtCpu}, +}; + +#[derive(Debug)] +pub struct X86VcpuArch { + /// 最近一次尝试进入虚拟机的主机cpu + last_vmentry_cpu: ProcessorId, + /// 可用寄存器数量 + regs_avail: u32, + /// 脏寄存器数量 + regs_dirty: u32, + /// 多处理器状态 + mp_state: MutilProcessorState, +} + +impl VirtCpu { + pub fn init_arch(&mut self) {} +} + +impl Default for X86VcpuArch { + fn default() -> Self { + Self { + last_vmentry_cpu: ProcessorId::INVALID, + regs_avail: !0, + regs_dirty: !0, + mp_state: MutilProcessorState::Runnable, + } + } +} diff --git a/kernel/src/arch/x86_64/vm/mod.rs b/kernel/src/arch/x86_64/vm/mod.rs new file mode 100644 index 000000000..6233199d9 --- /dev/null +++ b/kernel/src/arch/x86_64/vm/mod.rs @@ -0,0 +1,85 @@ +use core::{ + arch::x86_64::{_xgetbv, _XCR_XFEATURE_ENABLED_MASK}, + sync::atomic::{AtomicU64, Ordering}, +}; + +use alloc::{boxed::Box, sync::Arc}; +use raw_cpuid::CpuId; +use system_error::SystemError; +use x86::msr::{rdmsr, IA32_CSTAR, IA32_PAT}; + +use crate::{ + kerror, + libs::{lazy_init::Lazy, rwlock::RwLock}, +}; + +use self::kvm_host::KvmFunc; + +pub mod kvm_host; +pub mod vmx; + +static KVM_X86_MANAGER: Lazy = Lazy::new(); + +pub fn kvm_x86_ops() -> Option<&'static dyn KvmFunc> { + *KVM_X86_MANAGER.funcs.read() +} + +pub struct KvmArchManager { + funcs: RwLock>, + host_xcr0: AtomicU64, +} + +impl KvmArchManager { + pub const KVM_MAX_VCPUS: usize = 1024; + + /// 厂商相关的init工作 + pub fn vendor_init(&self) -> Result<(), SystemError> { + let cpuid = CpuId::new(); + let cpu_feature = cpuid.get_feature_info().ok_or(SystemError::ENOSYS)?; + + let kvm_x86_ops = kvm_x86_ops(); + + // 是否已经设置过 + if let Some(ops) = kvm_x86_ops { + kerror!("[KVM] already loaded vendor module {}", ops.name()); + return Err(SystemError::EEXIST); + } + + // 确保cpu支持fpu浮点数处理器 + if !cpu_feature.has_fpu() || !cpu_feature.has_fxsave_fxstor() { + kerror!("[KVM] inadequate fpu"); + return Err(SystemError::ENOSYS); + } + + // TODO:实时内核需要判断tsc + // https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/x86.c#9472 + + // 读取主机page attribute table(页属性表) + let host_pat = unsafe { rdmsr(IA32_PAT) }; + // PAT[0]是否为write back类型,即判断低三位是否为0b110(0x06) + if host_pat & 0b111 != 0b110 { + kerror!("[KVM] host PAT[0] is not WB"); + return Err(SystemError::EIO); + } + + // TODO:mmu vendor init + + if cpu_feature.has_xsave() { + self.host_xcr0.store( + unsafe { _xgetbv(_XCR_XFEATURE_ENABLED_MASK) }, + Ordering::SeqCst, + ); + } + + Ok(()) + } +} + +/// ### Kvm的功能特性 +#[derive(Debug)] +pub struct KvmCapabilities { + has_tsc_control: bool, + max_guest_tsc_khz: u32, + tsc_scaling_ratio_frac_bits: u8, + +} diff --git a/kernel/src/arch/x86_64/vm/vmx/mod.rs b/kernel/src/arch/x86_64/vm/vmx/mod.rs new file mode 100644 index 000000000..e9921ec71 --- /dev/null +++ b/kernel/src/arch/x86_64/vm/vmx/mod.rs @@ -0,0 +1,26 @@ +use raw_cpuid::CpuId; + +pub struct Vmx; + +impl Vmx { + /// @brief 查看CPU是否支持虚拟化 + pub fn kvm_arch_cpu_supports_vm() -> bool { + let cpuid = CpuId::new(); + // Check to see if CPU is Intel (“GenuineIntel”). + if let Some(vi) = cpuid.get_vendor_info() { + if vi.as_str() != "GenuineIntel" { + return false; + } + } + // Check processor supports for Virtual Machine Extension (VMX) technology + // CPUID.1:ECX.VMX[bit 5] = 1 (Intel Manual: 24.6 Discovering Support for VMX) + if let Some(fi) = cpuid.get_feature_info() { + if !fi.has_vmx() { + return false; + } + } + return true; + } +} + +pub fn vmx_init() {} diff --git a/kernel/src/virt/vm/kvm_host/mod.rs b/kernel/src/virt/vm/kvm_host/mod.rs new file mode 100644 index 000000000..92e915644 --- /dev/null +++ b/kernel/src/virt/vm/kvm_host/mod.rs @@ -0,0 +1,28 @@ +use core::sync::atomic::AtomicUsize; + +use alloc::string::String; + +use crate::mm::ucontext::AddressSpace; + +pub mod vcpu; + +const KVM_ADDRESS_SPACE_NUM: usize = 1; + +pub struct KvmMemSlots { + /// 最后一次使用到的内存插槽 + last_use: AtomicUsize, + /// 存储虚拟地址(hva)和内存插槽之间的映射关系 + // Rbt + /// 用于存储全局页帧号(gfn)和内存插槽之间的映射关系 + // Rbt + /// 将内存插槽的ID映射到对应的内存插槽。 + // HashMap + /// 节点索引 + node_idx: usize, +} + +pub struct Vm { + mm: AddressSpace, + max_vcpus: usize, + name: String, +} diff --git a/kernel/src/virt/vm/kvm_host/vcpu.rs b/kernel/src/virt/vm/kvm_host/vcpu.rs new file mode 100644 index 000000000..fc54f11a4 --- /dev/null +++ b/kernel/src/virt/vm/kvm_host/vcpu.rs @@ -0,0 +1,51 @@ +use alloc::{string::String, sync::Arc}; + +use crate::{ + process::{Pid, ProcessManager}, + smp::cpu::ProcessorId, +}; + +use super::{KvmMemSlots, Vm}; + +pub struct VirtCpu { + cpu: ProcessorId, + kvm: Arc, + vcpu_id: usize, + pid: Option, + preempted: bool, + ready: bool, + last_used_slot: Option>, + stats_id: String, +} + +impl VirtCpu { + /// ### 创建一个vcpu,并且初始化部分数据 + pub fn create(vm: Arc, id: usize) -> Self { + Self { + cpu: ProcessorId::INVALID, + kvm: vm, + vcpu_id: id, + pid: None, + preempted: false, + ready: false, + last_used_slot: None, + stats_id: format!("kvm-{}/vcpu-{}", ProcessManager::current_pid().data(), id), + } + } +} + +/// ## 多处理器状态(有些状态在某些架构并不合法) +#[derive(Debug, Clone, Copy)] +pub enum MutilProcessorState { + Runnable, + Uninitialized, + InitReceived, + Halted, + SipiReceived, + Stopped, + CheckStop, + Operating, + Load, + ApResetHold, + Suspended, +} diff --git a/kernel/src/virt/vm/mod.rs b/kernel/src/virt/vm/mod.rs new file mode 100644 index 000000000..cf82f0060 --- /dev/null +++ b/kernel/src/virt/vm/mod.rs @@ -0,0 +1 @@ +pub mod kvm_host; \ No newline at end of file From 074b3a9b06b2a3a447ecf90e0a9100f14e9700d0 Mon Sep 17 00:00:00 2001 From: GnoCiYeH Date: Sat, 4 May 2024 15:40:00 +0800 Subject: [PATCH 02/18] =?UTF-8?q?=E9=80=9A=E8=BF=87vmx=5Finit=E4=BB=A5?= =?UTF-8?q?=E5=8F=8Acreate=5Fvm=EF=BC=8Ccreate=5Fvcpu=E9=83=A8=E5=88=86TOD?= =?UTF-8?q?O?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/Cargo.toml | 2 +- kernel/crates/bitmap/src/alloc_bitmap.rs | 2 +- kernel/src/arch/x86_64/kvm/vmx/vcpu.rs | 2 +- kernel/src/arch/x86_64/mod.rs | 9 + kernel/src/arch/x86_64/vm/asm.rs | 436 +++++++ kernel/src/arch/x86_64/vm/cpuid.rs | 58 + kernel/src/arch/x86_64/vm/kvm_host/lapic.rs | 43 + kernel/src/arch/x86_64/vm/kvm_host/mod.rs | 284 ++++- kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs | 554 ++++++++- kernel/src/arch/x86_64/vm/mem.rs | 21 + kernel/src/arch/x86_64/vm/mmu.rs | 356 ++++++ kernel/src/arch/x86_64/vm/mod.rs | 547 ++++++++- kernel/src/arch/x86_64/vm/vmx/capabilities.rs | 509 ++++++++ kernel/src/arch/x86_64/vm/vmx/mod.rs | 1066 ++++++++++++++++- kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs | 158 +++ kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs | 265 ++++ kernel/src/init/init.rs | 5 +- kernel/src/lib.rs | 2 + kernel/src/libs/rbtree.rs | 9 + kernel/src/mm/mod.rs | 2 +- kernel/src/virt/mod.rs | 1 + kernel/src/virt/vm/kvm_dev.rs | 428 +++++++ kernel/src/virt/vm/kvm_host/mem.rs | 502 ++++++++ kernel/src/virt/vm/kvm_host/mod.rs | 236 +++- kernel/src/virt/vm/kvm_host/vcpu.rs | 115 +- kernel/src/virt/vm/mod.rs | 4 +- kernel/src/virt/vm/user_api.rs | 430 +++++++ user/apps/test_kvm/main.c | 20 +- 28 files changed, 5946 insertions(+), 120 deletions(-) create mode 100644 kernel/src/arch/x86_64/vm/asm.rs create mode 100644 kernel/src/arch/x86_64/vm/cpuid.rs create mode 100644 kernel/src/arch/x86_64/vm/kvm_host/lapic.rs create mode 100644 kernel/src/arch/x86_64/vm/mem.rs create mode 100644 kernel/src/arch/x86_64/vm/mmu.rs create mode 100644 kernel/src/arch/x86_64/vm/vmx/capabilities.rs create mode 100644 kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs create mode 100644 kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs create mode 100644 kernel/src/virt/vm/kvm_dev.rs create mode 100644 kernel/src/virt/vm/kvm_host/mem.rs create mode 100644 kernel/src/virt/vm/user_api.rs diff --git a/kernel/Cargo.toml b/kernel/Cargo.toml index 941fe9f8a..a62c492be 100644 --- a/kernel/Cargo.toml +++ b/kernel/Cargo.toml @@ -82,4 +82,4 @@ debug = true # Controls whether the compiler passes `-g` # The release profile, used for `cargo build --release` [profile.release] -debug = false +debug = true diff --git a/kernel/crates/bitmap/src/alloc_bitmap.rs b/kernel/crates/bitmap/src/alloc_bitmap.rs index d4c6c5107..36ee33e3d 100644 --- a/kernel/crates/bitmap/src/alloc_bitmap.rs +++ b/kernel/crates/bitmap/src/alloc_bitmap.rs @@ -2,7 +2,7 @@ use alloc::vec::Vec; use crate::{bitmap_core::BitMapCore, traits::BitMapOps}; -#[derive(Clone)] +#[derive(Debug, Clone)] pub struct AllocBitmap { elements: usize, data: Vec, diff --git a/kernel/src/arch/x86_64/kvm/vmx/vcpu.rs b/kernel/src/arch/x86_64/kvm/vmx/vcpu.rs index f940069f8..4b5e813fc 100644 --- a/kernel/src/arch/x86_64/kvm/vmx/vcpu.rs +++ b/kernel/src/arch/x86_64/kvm/vmx/vcpu.rs @@ -503,7 +503,7 @@ pub fn get_segment_base(gdt_base: *const u64, gdt_size: u16, segment_selector: u // } pub fn adjust_vmx_controls(ctl_min: u32, ctl_opt: u32, msr: u32, result: &mut u32) { let vmx_msr_low: u32 = unsafe { (msr::rdmsr(msr) & 0x0000_0000_FFFF_FFFF) as u32 }; - let vmx_msr_high: u32 = unsafe { (msr::rdmsr(msr) << 32) as u32 }; + let vmx_msr_high: u32 = unsafe { (msr::rdmsr(msr) >> 32) as u32 }; let mut ctl: u32 = ctl_min | ctl_opt; ctl &= vmx_msr_high; /* bit == 0 in high word ==> must be zero */ ctl |= vmx_msr_low; /* bit == 1 in low word ==> must be one */ diff --git a/kernel/src/arch/x86_64/mod.rs b/kernel/src/arch/x86_64/mod.rs index b2069f087..11c7ff27b 100644 --- a/kernel/src/arch/x86_64/mod.rs +++ b/kernel/src/arch/x86_64/mod.rs @@ -19,6 +19,7 @@ pub mod sched; pub mod smp; pub mod syscall; pub mod time; +pub mod vm; pub use self::pci::pci::X86_64PciArch as PciArch; @@ -38,3 +39,11 @@ pub use crate::arch::elf::X86_64ElfArch as CurrentElfArch; pub use crate::arch::smp::X86_64SMPArch as CurrentSMPArch; pub use crate::arch::sched::X86_64SchedArch as CurrentSchedArch; + +pub use crate::arch::vm::KvmArchManager as CurrentKvmManager; + +pub use crate::arch::vm::kvm_host::X86KvmArch as KvmArch; + +pub use crate::arch::vm::x86_kvm_ops as kvm_arch_ops; + +pub use crate::arch::vm::kvm_host::vcpu::X86VcpuArch as VirtCpuArch; diff --git a/kernel/src/arch/x86_64/vm/asm.rs b/kernel/src/arch/x86_64/vm/asm.rs new file mode 100644 index 000000000..92867c616 --- /dev/null +++ b/kernel/src/arch/x86_64/vm/asm.rs @@ -0,0 +1,436 @@ +use core::arch::asm; + +use alloc::slice; +use raw_cpuid::CpuId; +use system_error::SystemError; +use x86::{ + bits64::vmx::vmxon, + controlregs::{cr0, cr0_write, cr4, cr4_write, Cr0, Cr4}, + msr::{ + rdmsr, wrmsr, IA32_FEATURE_CONTROL, IA32_VMX_CR0_FIXED0, IA32_VMX_CR0_FIXED1, + IA32_VMX_CR4_FIXED0, IA32_VMX_CR4_FIXED1, + }, +}; + +use crate::{ + arch::mm::barrier, + kdebug, + mm::{phys_2_virt, PhysAddr}, +}; + +pub struct KvmX86Asm; + +impl KvmX86Asm { + pub fn read_pkru() -> u32 { + let cpuid = CpuId::new(); + if let Some(feat) = cpuid.get_extended_feature_info() { + if feat.has_ospke() { + return Self::rdpkru(); + } + } + return 0; + } + + fn rdpkru() -> u32 { + let ecx: u32 = 0; + let pkru: u32; + let edx: u32; + + unsafe { + asm!( + "rdpkru", + out("eax") pkru, + out("edx") edx, + in("ecx") ecx, + ); + } + + pkru + } + + pub fn get_segment_base(gdt_base: *const u64, gdt_size: u16, segment_selector: u16) -> u64 { + let table = segment_selector & 0x0004; // get table indicator in selector + let index = (segment_selector >> 3) as usize; // get index in selector + if table == 0 && index == 0 { + return 0; + } + let descriptor_table = unsafe { slice::from_raw_parts(gdt_base, gdt_size.into()) }; + let descriptor = descriptor_table[index]; + + let base_high = (descriptor & 0xFF00_0000_0000_0000) >> 32; + let base_mid = (descriptor & 0x0000_00FF_0000_0000) >> 16; + let base_low = (descriptor & 0x0000_0000_FFFF_0000) >> 16; + let segment_base = (base_high | base_mid | base_low) & 0xFFFFFFFF; + let virtaddr = phys_2_virt(segment_base.try_into().unwrap()) + .try_into() + .unwrap(); + kdebug!( + "segment_base={:x}", + phys_2_virt(segment_base.try_into().unwrap()) + ); + return virtaddr; + } +} + +pub struct VmxAsm; + +impl VmxAsm { + pub fn vmclear(phys_addr: PhysAddr) { + kdebug!("vmclear addr {phys_addr:?}"); + match unsafe { x86::bits64::vmx::vmclear(phys_addr.data() as u64) } { + Ok(_) => {} + Err(e) => { + panic!("[VMX] vmclear failed! reason: {e:?}"); + } + } + } + + pub fn vmcs_load(phys_addr: PhysAddr) { + match unsafe { x86::bits64::vmx::vmptrld(phys_addr.data() as u64) } { + Ok(_) => {} + Err(e) => { + panic!("[VMX] vmptrld failed! reason: {e:?}"); + } + } + } + + /// vmrite the current VMCS. + pub fn vmx_vmwrite(vmcs_field: u32, value: u64) { + unsafe { + x86::bits64::vmx::vmwrite(vmcs_field, value) + .expect(&format!("vmcs_field: {:x} vmx_write fail", vmcs_field)) + } + } + + pub fn kvm_cpu_vmxon(phys_addr: PhysAddr) -> Result<(), SystemError> { + unsafe { + let mut cr4 = cr4(); + cr4.insert(Cr4::CR4_ENABLE_VMX); + cr4_write(cr4); + + Self::vmx_set_lock_bit()?; + Self::vmx_set_cr0_bits(); + Self::vmx_set_cr4_bits(); + kdebug!("vmxon addr {phys_addr:?}"); + + vmxon(phys_addr.data() as u64).expect("[VMX] vmxon failed! reason"); + + barrier::mfence(); + + Ok(()) + } + } + + /// Set the mandatory bits in CR4 and clear bits that are mandatory zero + /// (Intel Manual: 24.8 Restrictions on VMX Operation) + fn vmx_set_cr4_bits() { + let ia32_vmx_cr4_fixed0 = unsafe { rdmsr(IA32_VMX_CR4_FIXED0) }; + let ia32_vmx_cr4_fixed1 = unsafe { rdmsr(IA32_VMX_CR4_FIXED1) }; + + let mut cr4 = unsafe { cr4() }; + + cr4 |= Cr4::from_bits_truncate(ia32_vmx_cr4_fixed0 as usize); + cr4 &= Cr4::from_bits_truncate(ia32_vmx_cr4_fixed1 as usize); + + unsafe { cr4_write(cr4) }; + } + + /// Check if we need to set bits in IA32_FEATURE_CONTROL + // (Intel Manual: 24.7 Enabling and Entering VMX Operation) + fn vmx_set_lock_bit() -> Result<(), SystemError> { + const VMX_LOCK_BIT: u64 = 1 << 0; + const VMXON_OUTSIDE_SMX: u64 = 1 << 2; + + let ia32_feature_control = unsafe { rdmsr(IA32_FEATURE_CONTROL) }; + + if (ia32_feature_control & VMX_LOCK_BIT) == 0 { + unsafe { + wrmsr( + IA32_FEATURE_CONTROL, + VMXON_OUTSIDE_SMX | VMX_LOCK_BIT | ia32_feature_control, + ) + }; + } else if (ia32_feature_control & VMXON_OUTSIDE_SMX) == 0 { + return Err(SystemError::EPERM); + } + + Ok(()) + } + + /// Set the mandatory bits in CR0 and clear bits that are mandatory zero + /// (Intel Manual: 24.8 Restrictions on VMX Operation) + fn vmx_set_cr0_bits() { + let ia32_vmx_cr0_fixed0 = unsafe { rdmsr(IA32_VMX_CR0_FIXED0) }; + let ia32_vmx_cr0_fixed1 = unsafe { rdmsr(IA32_VMX_CR0_FIXED1) }; + + let mut cr0 = unsafe { cr0() }; + + cr0 |= Cr0::from_bits_truncate(ia32_vmx_cr0_fixed0 as usize); + cr0 &= Cr0::from_bits_truncate(ia32_vmx_cr0_fixed1 as usize); + + unsafe { cr0_write(cr0) }; + } +} + +bitflags! { + pub struct MiscEnable: u64 { + const MSR_IA32_MISC_ENABLE_FAST_STRING = 1 << 0; + const MSR_IA32_MISC_ENABLE_TCC = 1 << 1; + const MSR_IA32_MISC_ENABLE_EMON = 1 << 7; + const MSR_IA32_MISC_ENABLE_BTS_UNAVAIL = 1 << 11; + const MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL = 1 << 12; + const MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP = 1 << 16; + const MSR_IA32_MISC_ENABLE_MWAIT = 1 << 18; + const MSR_IA32_MISC_ENABLE_LIMIT_CPUID= 1 << 22; + const MSR_IA32_MISC_ENABLE_XTPR_DISABLE = 1 << 23; + const MSR_IA32_MISC_ENABLE_XD_DISABLE = 1 << 34; + } + + pub struct ArchCapabilities: u64 { + /// Not susceptible to Meltdown + const ARCH_CAP_RDCL_NO = 1 << 0; + /// Enhanced IBRS support + const ARCH_CAP_IBRS_ALL = 1 << 1; + /// RET may use alternative branch predictors + const ARCH_CAP_RSBA = 1 << 2; + /// Skip L1D flush on vmentry + const ARCH_CAP_SKIP_VMENTRY_L1DFLUSH = 1 << 3; + /// + /// Not susceptible to Speculative Store Bypass + /// attack, so no Speculative Store Bypass + /// control required. + /// + const ARCH_CAP_SSB_NO = 1 << 4; + /// Not susceptible to + /// Microarchitectural Data + /// Sampling (MDS) vulnerabilities. + const ARCH_CAP_MDS_NO = 1 << 5; + /// The processor is not susceptible to a + /// machine check error due to modifying the + /// code page size along with either the + /// physical address or cache type + /// without TLB invalidation. + const ARCH_CAP_PSCHANGE_MC_NO = 1 << 6; + /// MSR for TSX control is available. + const ARCH_CAP_TSX_CTRL_MSR = 1 << 7; + /// Not susceptible to + /// TSX Async Abort (TAA) vulnerabilities. + const ARCH_CAP_TAA_NO = 1 << 8; + /// Not susceptible to SBDR and SSDP + /// variants of Processor MMIO stale data + /// vulnerabilities. + const ARCH_CAP_SBDR_SSDP_NO = 1 << 13; + /// Not susceptible to FBSDP variant of + /// Processor MMIO stale data + /// vulnerabilities. + const ARCH_CAP_FBSDP_NO = 1 << 14; + /// Not susceptible to PSDP variant of + /// Processor MMIO stale data + /// vulnerabilities. + const ARCH_CAP_PSDP_NO = 1 << 15; + /// VERW clears CPU fill buffer + /// even on MDS_NO CPUs. + const ARCH_CAP_FB_CLEAR = 1 << 17; + /// MSR_IA32_MCU_OPT_CTRL[FB_CLEAR_DIS] + /// bit available to control VERW + /// behavior. + const ARCH_CAP_FB_CLEAR_CTRL = 1 << 18; + /// Indicates RET may use predictors + /// other than the RSB. With eIBRS + /// enabled predictions in kernel mode + /// are restricted to targets in + /// kernel. + const ARCH_CAP_RRSBA = 1 << 19; + /// Not susceptible to Post-Barrier + /// Return Stack Buffer Predictions. + const ARCH_CAP_PBRSB_NO = 1 << 24; + /// CPU is vulnerable to Gather + /// Data Sampling (GDS) and + /// has controls for mitigation. + const ARCH_CAP_GDS_CTRL = 1 << 25; + /// CPU is not vulnerable to Gather + /// Data Sampling (GDS). + const ARCH_CAP_GDS_NO = 1 << 26; + /// IA32_XAPIC_DISABLE_STATUS MSR + /// supported + const ARCH_CAP_XAPIC_DISABLE = 1 << 21; + + const KVM_SUPPORTED_ARCH_CAP = ArchCapabilities::ARCH_CAP_RDCL_NO.bits + | ArchCapabilities::ARCH_CAP_IBRS_ALL.bits + | ArchCapabilities::ARCH_CAP_RSBA.bits + | ArchCapabilities::ARCH_CAP_SKIP_VMENTRY_L1DFLUSH.bits + | ArchCapabilities::ARCH_CAP_SSB_NO.bits + | ArchCapabilities::ARCH_CAP_MDS_NO.bits + | ArchCapabilities::ARCH_CAP_PSCHANGE_MC_NO.bits + | ArchCapabilities::ARCH_CAP_TSX_CTRL_MSR.bits + | ArchCapabilities::ARCH_CAP_TAA_NO.bits + | ArchCapabilities::ARCH_CAP_SBDR_SSDP_NO.bits + | ArchCapabilities::ARCH_CAP_FBSDP_NO.bits + | ArchCapabilities::ARCH_CAP_PSDP_NO.bits + | ArchCapabilities::ARCH_CAP_FB_CLEAR.bits + | ArchCapabilities::ARCH_CAP_RRSBA.bits + | ArchCapabilities::ARCH_CAP_PBRSB_NO.bits + | ArchCapabilities::ARCH_CAP_GDS_NO.bits; + } +} + +#[derive(Debug, Default, Copy, Clone)] +pub struct MsrData { + pub host_initiated: bool, + pub index: u32, + pub data: u64, +} + +#[derive(Debug, Default, Copy, Clone)] +pub struct KvmMsrEntry { + pub index: u32, + pub reserved: u32, + pub data: u64, +} + +pub mod hyperv { + /* Hyper-V specific model specific registers (MSRs) */ + + /* MSR used to identify the guest OS. */ + pub const HV_X64_MSR_GUEST_OS_ID: u32 = 0x40000000; + + /* MSR used to setup pages used to communicate with the hypervisor. */ + pub const HV_X64_MSR_HYPERCALL: u32 = 0x40000001; + + /* MSR used to provide vcpu index */ + pub const HV_REGISTER_VP_INDEX: u32 = 0x40000002; + + /* MSR used to reset the guest OS. */ + pub const HV_X64_MSR_RESET: u32 = 0x40000003; + + /* MSR used to provide vcpu runtime in 100ns units */ + pub const HV_X64_MSR_VP_RUNTIME: u32 = 0x40000010; + + /* MSR used to read the per-partition time reference counter */ + pub const HV_REGISTER_TIME_REF_COUNT: u32 = 0x40000020; + + /* A partition's reference time stamp counter (TSC) page */ + pub const HV_REGISTER_REFERENCE_TSC: u32 = 0x40000021; + + /* MSR used to retrieve the TSC frequency */ + pub const HV_X64_MSR_TSC_FREQUENCY: u32 = 0x40000022; + + /* MSR used to retrieve the local APIC timer frequency */ + pub const HV_X64_MSR_APIC_FREQUENCY: u32 = 0x40000023; + + /* Define the virtual APIC registers */ + pub const HV_X64_MSR_EOI: u32 = 0x40000070; + pub const HV_X64_MSR_ICR: u32 = 0x40000071; + pub const HV_X64_MSR_TPR: u32 = 0x40000072; + pub const HV_X64_MSR_VP_ASSIST_PAGE: u32 = 0x40000073; + + /* Define synthetic interrupt controller model specific registers. */ + pub const HV_REGISTER_SCONTROL: u32 = 0x40000080; + pub const HV_REGISTER_SVERSION: u32 = 0x40000081; + pub const HV_REGISTER_SIEFP: u32 = 0x40000082; + pub const HV_REGISTER_SIMP: u32 = 0x40000083; + pub const HV_REGISTER_EOM: u32 = 0x40000084; + pub const HV_REGISTER_SINT0: u32 = 0x40000090; + pub const HV_REGISTER_SINT1: u32 = 0x40000091; + pub const HV_REGISTER_SINT2: u32 = 0x40000092; + pub const HV_REGISTER_SINT3: u32 = 0x40000093; + pub const HV_REGISTER_SINT4: u32 = 0x40000094; + pub const HV_REGISTER_SINT5: u32 = 0x40000095; + pub const HV_REGISTER_SINT6: u32 = 0x40000096; + pub const HV_REGISTER_SINT7: u32 = 0x40000097; + pub const HV_REGISTER_SINT8: u32 = 0x40000098; + pub const HV_REGISTER_SINT9: u32 = 0x40000099; + pub const HV_REGISTER_SINT10: u32 = 0x4000009A; + pub const HV_REGISTER_SINT11: u32 = 0x4000009B; + pub const HV_REGISTER_SINT12: u32 = 0x4000009C; + pub const HV_REGISTER_SINT13: u32 = 0x4000009D; + pub const HV_REGISTER_SINT14: u32 = 0x4000009E; + pub const HV_REGISTER_SINT15: u32 = 0x4000009F; + + /* + * Define synthetic interrupt controller model specific registers for + * nested hypervisor. + */ + pub const HV_REGISTER_NESTED_SCONTROL: u32 = 0x40001080; + pub const HV_REGISTER_NESTED_SVERSION: u32 = 0x40001081; + pub const HV_REGISTER_NESTED_SIEFP: u32 = 0x40001082; + pub const HV_REGISTER_NESTED_SIMP: u32 = 0x40001083; + pub const HV_REGISTER_NESTED_EOM: u32 = 0x40001084; + pub const HV_REGISTER_NESTED_SINT0: u32 = 0x40001090; + + /* + * Synthetic Timer MSRs. Four timers per vcpu. + */ + pub const HV_REGISTER_STIMER0_CONFIG: u32 = 0x400000B0; + pub const HV_REGISTER_STIMER0_COUNT: u32 = 0x400000B1; + pub const HV_REGISTER_STIMER1_CONFIG: u32 = 0x400000B2; + pub const HV_REGISTER_STIMER1_COUNT: u32 = 0x400000B3; + pub const HV_REGISTER_STIMER2_CONFIG: u32 = 0x400000B4; + pub const HV_REGISTER_STIMER2_COUNT: u32 = 0x400000B5; + pub const HV_REGISTER_STIMER3_CONFIG: u32 = 0x400000B6; + pub const HV_REGISTER_STIMER3_COUNT: u32 = 0x400000B7; + + /* Hyper-V guest idle MSR */ + pub const HV_X64_MSR_GUEST_IDLE: u32 = 0x400000F0; + + /* Hyper-V guest crash notification MSR's */ + pub const HV_REGISTER_CRASH_P0: u32 = 0x40000100; + pub const HV_REGISTER_CRASH_P1: u32 = 0x40000101; + pub const HV_REGISTER_CRASH_P2: u32 = 0x40000102; + pub const HV_REGISTER_CRASH_P3: u32 = 0x40000103; + pub const HV_REGISTER_CRASH_P4: u32 = 0x40000104; + pub const HV_REGISTER_CRASH_CTL: u32 = 0x40000105; + + /* TSC emulation after migration */ + pub const HV_X64_MSR_REENLIGHTENMENT_CONTROL: u32 = 0x40000106; + pub const HV_X64_MSR_TSC_EMULATION_CONTROL: u32 = 0x40000107; + pub const HV_X64_MSR_TSC_EMULATION_STATUS: u32 = 0x40000108; + + /* TSC invariant control */ + pub const HV_X64_MSR_TSC_INVARIANT_CONTROL: u32 = 0x40000118; + + /* + * The defines related to the synthetic debugger are required by KDNet, but + * they are not documented in the Hyper-V TLFS because the synthetic debugger + * functionality has been deprecated and is subject to removal in future + * versions of Windows. + */ + pub const HYPERV_CPUID_SYNDBG_VENDOR_AND_MAX_FUNCTIONS: u32 = 0x40000080; + pub const HYPERV_CPUID_SYNDBG_INTERFACE: u32 = 0x40000081; + pub const HYPERV_CPUID_SYNDBG_PLATFORM_CAPABILITIES: u32 = 0x40000082; + + /* + * Hyper-V synthetic debugger platform capabilities + * These are HYPERV_CPUID_SYNDBG_PLATFORM_CAPABILITIES.EAX bits. + */ + pub const HV_X64_SYNDBG_CAP_ALLOW_KERNEL_DEBUGGING: u32 = 1 << 1; + + /* Hyper-V Synthetic debug options MSR */ + pub const HV_X64_MSR_SYNDBG_CONTROL: u32 = 0x400000F1; + pub const HV_X64_MSR_SYNDBG_STATUS: u32 = 0x400000F2; + pub const HV_X64_MSR_SYNDBG_SEND_BUFFER: u32 = 0x400000F3; + pub const HV_X64_MSR_SYNDBG_RECV_BUFFER: u32 = 0x400000F4; + pub const HV_X64_MSR_SYNDBG_PENDING_BUFFER: u32 = 0x400000F5; + pub const HV_X64_MSR_SYNDBG_OPTIONS: u32 = 0x400000FF; +} + +pub mod kvm_msr { + pub const MSR_KVM_WALL_CLOCK: u32 = 0x11; + pub const MSR_KVM_SYSTEM_TIME: u32 = 0x12; + + /* Custom MSRs falls in the range 0x4b564d00-0x4b564dff */ + pub const MSR_KVM_WALL_CLOCK_NEW: u32 = 0x4b564d00; + pub const MSR_KVM_SYSTEM_TIME_NEW: u32 = 0x4b564d01; + pub const MSR_KVM_ASYNC_PF_EN: u32 = 0x4b564d02; + pub const MSR_KVM_STEAL_TIME: u32 = 0x4b564d03; + pub const MSR_KVM_PV_EOI_EN: u32 = 0x4b564d04; + pub const MSR_KVM_POLL_CONTROL: u32 = 0x4b564d05; + pub const MSR_KVM_ASYNC_PF_INT: u32 = 0x4b564d06; + pub const MSR_KVM_ASYNC_PF_ACK: u32 = 0x4b564d07; + pub const MSR_KVM_MIGRATION_CONTROL: u32 = 0x4b564d08; + + pub const PIN_BASED_ALWAYSON_WITHOUT_TRUE_MSR: u64 = 0x00000016; + pub const CPU_BASED_ALWAYSON_WITHOUT_TRUE_MSR: u64 = 0x0401e172; + pub const VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR: u64 = 0x00036dff; + pub const VM_ENTRY_ALWAYSON_WITHOUT_TRUE_MSR: u64 = 0x000011ff; +} diff --git a/kernel/src/arch/x86_64/vm/cpuid.rs b/kernel/src/arch/x86_64/vm/cpuid.rs new file mode 100644 index 000000000..28e91d6a9 --- /dev/null +++ b/kernel/src/arch/x86_64/vm/cpuid.rs @@ -0,0 +1,58 @@ +use alloc::vec::Vec; + +#[derive(Debug, Default, Clone, Copy)] +pub struct KvmCpuidEntry2 { + pub function: u32, + pub index: u32, + pub flags: KvmCpuidFlag, + pub eax: u32, + pub ebx: u32, + pub ecx: u32, + pub edx: u32, + padding: [u32; 3], +} + +impl KvmCpuidEntry2 { + pub fn find( + entries: &Vec, + function: u32, + index: Option, + ) -> Option { + for e in entries { + if e.function != function { + continue; + } + + if !e + .flags + .contains(KvmCpuidFlag::KVM_CPUID_FLAG_SIGNIFCANT_INDEX) + || Some(e.index) == index + { + return Some(*e); + } + + if index.is_none() { + return Some(*e); + } + } + + None + } +} + +bitflags! { + pub struct KvmCpuidFlag: u32 { + /// 表示CPUID函数的输入索引值是重要的,它会影响CPUID函数的行为或返回值 + const KVM_CPUID_FLAG_SIGNIFCANT_INDEX = 1 << 0; + /// 表示CPUID函数是有状态的,即它的行为可能受到先前CPUID函数调用的影响 + const KVM_CPUID_FLAG_STATEFUL_FUNC = 1 << 1; + /// 表示CPUID函数的状态应该在下一次CPUID函数调用中读取 + const KVM_CPUID_FLAG_STATE_READ_NEXT = 1 << 2; + } +} + +impl Default for KvmCpuidFlag { + fn default() -> Self { + Self::empty() + } +} diff --git a/kernel/src/arch/x86_64/vm/kvm_host/lapic.rs b/kernel/src/arch/x86_64/vm/kvm_host/lapic.rs new file mode 100644 index 000000000..dc41c2371 --- /dev/null +++ b/kernel/src/arch/x86_64/vm/kvm_host/lapic.rs @@ -0,0 +1,43 @@ +use crate::{arch::kvm_arch_ops, virt::vm::kvm_host::vcpu::VirtCpu}; + +const APIC_DEFAULT_PHYS_BASE: u64 = 0xfee00000; +const MSR_IA32_APICBASE: u64 = 0x0000001b; +const MSR_IA32_APICBASE_BSP: u64 = (1 << 8); +const MSR_IA32_APICBASE_ENABLE: u64 = (1 << 11); +const MSR_IA32_APICBASE_BASE: u64 = (0xfffff << 12); + +impl VirtCpu { + pub fn lapic_reset(&mut self, init_event: bool) { + let apic = self.arch.apic; + + kvm_arch_ops().apicv_pre_state_restore(self); + + if !init_event { + let mut msr_val = APIC_DEFAULT_PHYS_BASE | MSR_IA32_APICBASE_ENABLE; + if self.kvm().lock().arch.bsp_vcpu_id == self.vcpu_id { + msr_val |= MSR_IA32_APICBASE_BSP; + } + } + } + + fn lapic_set_base(&mut self, value: u64) { + let old_val = self.arch.apic_base; + let apic = self.arch.apic; + + self.arch.apic_base = value; + + if (old_val ^ value) & MSR_IA32_APICBASE_ENABLE != 0 { + // TODO: kvm_update_cpuid_runtime(vcpu); + } + + if apic.is_none() { + return; + } + + if (old_val ^ value) & MSR_IA32_APICBASE_ENABLE != 0 { + if value & MSR_IA32_APICBASE_ENABLE != 0 {} + } + + todo!() + } +} diff --git a/kernel/src/arch/x86_64/vm/kvm_host/mod.rs b/kernel/src/arch/x86_64/vm/kvm_host/mod.rs index dfd7501d4..5b0150e90 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/mod.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/mod.rs @@ -1,40 +1,298 @@ +use core::fmt::Debug; + +use alloc::{boxed::Box, vec::Vec}; +use bit_field::BitField; +use bitmap::{traits::BitMapOps, AllocBitmap}; use system_error::SystemError; +use x86::{ + bits64::rflags::RFlags, + controlregs::{Cr0, Cr4}, +}; +use x86_64::registers::control::EferFlags; -pub mod vcpu; +use crate::{ + smp::cpu::ProcessorId, + virt::vm::kvm_host::{ + vcpu::VirtCpu, Vm, KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID, KVM_USERSAPCE_IRQ_SOURCE_ID, + }, +}; + +use crate::arch::VirtCpuArch; -type SysResult = Result; +use super::{ + asm::{KvmMsrEntry, MsrData}, + vmx::vmx_info, + x86_kvm_manager, x86_kvm_ops, +}; + +pub mod lapic; +pub mod vcpu; +#[derive(Debug, Default)] pub struct X86KvmArch { /// 中断芯片模式 irqchip_mode: KvmIrqChipMode, - /// 负责引导(bootstrap)kvm的vcpu——id + /// 负责引导(bootstrap)kvm的vcpu_id bsp_vcpu_id: usize, + pub pause_in_guest: bool, + pub cstate_in_guest: bool, + irq_sources_bitmap: u64, + default_tsc_khz: u64, + guest_can_read_msr_platform_info: bool, + apicv_inhibit_reasons: usize, + + msr_fliter: Option>, } -#[derive(Debug, Clone, Copy)] +impl X86KvmArch { + pub fn init(kvm_type: usize) -> Result { + if kvm_type != 0 { + return Err(SystemError::EINVAL); + } + let mut arch = x86_kvm_ops().vm_init(); + + // 设置中断源位图 + arch.irq_sources_bitmap + .set_bit(KVM_USERSAPCE_IRQ_SOURCE_ID, true) + .set_bit(KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID, true); + + arch.default_tsc_khz = x86_kvm_manager().max_tsc_khz; + arch.guest_can_read_msr_platform_info = true; + + arch.apicv_init(); + Ok(arch) + } + + fn apicv_init(&mut self) { + self.apicv_inhibit_reasons + .set_bit(KvmApicvInhibit::ABSENT, true); + + if !vmx_info().enable_apicv { + self.apicv_inhibit_reasons + .set_bit(KvmApicvInhibit::DISABLE, true); + } + } + + pub fn msr_allowed(&self, msr: u32, ftype: MsrFilterType) -> bool { + // x2APIC MSRs + if msr >= 0x800 && msr <= 0x8ff { + return true; + } + + if let Some(msr_filter) = &self.msr_fliter { + let mut allowed = msr_filter.default_allow; + + for i in 0..msr_filter.count as usize { + let range = &msr_filter.ranges[i]; + let start = range.base; + let end = start + range.nmsrs; + let flags = range.flags; + let bitmap = &range.bitmap; + if msr >= start && msr < end && flags.contains(ftype) { + allowed = bitmap.get((msr - start) as usize).unwrap_or(false); + break; + } + } + + return allowed; + } else { + return true; + } + } +} + +#[derive(Debug, Clone, Copy, PartialEq)] pub enum KvmIrqChipMode { None, Kernel, Split, } -pub trait KvmFunc: Send + Sync { +impl Default for KvmIrqChipMode { + fn default() -> Self { + Self::None + } +} + +pub trait KvmInitFunc { + fn hardware_setup(&self) -> Result<(), SystemError>; + fn handle_intel_pt_intr(&self) -> u32; + fn runtime_funcs(&self) -> &'static dyn KvmFunc; +} + +pub trait KvmFunc: Send + Sync + Debug { /// 返回该硬件支持的名字,例如“Vmx” fn name(&self) -> &'static str; /// 启用硬件支持 - /// (注:只有dummy实现能够返回ENOSYS错误码,表示未指定) - fn hardware_enable(&self) -> SysResult<()>; + fn hardware_enable(&self) -> Result<(), SystemError>; + + fn vm_init(&self) -> X86KvmArch; + + fn vcpu_create(&self, vcpu: &mut VirtCpu, vm: &Vm); + + fn vcpu_load(&self, vcpu: &mut VirtCpu, cpu: ProcessorId); + + fn cache_reg(&self, vcpu: &VirtCpuArch, reg: KvmReg); + + fn apicv_pre_state_restore(&self, vcpu: &mut VirtCpu); + + fn set_msr(&self, vcpu: &mut VirtCpuArch, msr: MsrData); + + fn set_rflags(&self, vcpu: &mut VirtCpu, rflags: RFlags); + + fn get_rflags(&self, vcpu: &VirtCpu) -> RFlags; + + fn set_cr0(&self, vcpu: &mut VirtCpu, cr0: Cr0); + + fn set_cr4(&self, vcpu: &mut VirtCpu, cr4: Cr4); + + fn set_efer(&self, vcpu: &mut VirtCpu, efer: EferFlags); + + fn update_exception_bitmap(&self, vcpu: &mut VirtCpu); + + fn vcpu_reset(&self, vcpu: &mut VirtCpu, init_event: bool); + + fn has_emulated_msr(&self, msr: u32) -> bool; + + fn get_msr_feature(&self, msr: &mut KvmMsrEntry) -> bool; } -pub struct DummyKvmFunc; +/// ## 中断抑制的原因位 +#[derive(Debug)] +pub struct KvmApicvInhibit; + +impl KvmApicvInhibit { + // Intel与AMD共用 + + /// APIC 加速功能被模块参数禁用,或者硬件不支持 + pub const DISABLE: usize = 0; + + /// Hyper-V 客户机正在使用 AutoEOI 功能,导致 APIC 加速被禁用。 + pub const HYPERV: usize = 1; + + /// 因为用户空间尚未启用内核或分裂的中断控制器,导致 APIC 加速被禁用。 + pub const ABSENT: usize = 2; + + /// KVM_GUESTDBG_BLOCKIRQ(一种调试措施,用于阻止该 vCPU 上的所有中断)被启用,以避免 AVIC/APICv 绕过此功能。 + pub const BLOCKIRQ: usize = 3; + + /// 当所有 vCPU 的 APIC ID 和 vCPU 的 1:1 映射被更改且 KVM 未应用其 x2APIC 热插拔修补程序时,APIC 加速被禁用。 + pub const PHYSICAL_ID_ALIASED: usize = 4; + + /// 当 vCPU 的 APIC ID 或 APIC 基址从其复位值更改时,首次禁用 APIC 加速。 + pub const APIC_ID_MODIFIED: usize = 5; + /// 当 vCPU 的 APIC ID 或 APIC 基址从其复位值更改时,首次禁用 APIC 加速。 + pub const APIC_BASE_MODIFIED: usize = 6; + + // 仅仅对AMD适用 + + /// 当 vCPU 运行嵌套客户机时,AVIC 被禁用。因为与 APICv 不同,当 vCPU 运行嵌套时,该 vCPU 的同级无法使用门铃机制通过 AVIC 信号中断。 + pub const NESTED: usize = 7; + + /// 在 SVM 上,等待 IRQ 窗口的实现使用挂起的虚拟中断,而在 KVM 等待 IRQ 窗口时无法注入这些虚拟中断,因此在等待 IRQ 窗口时 AVIC 被禁用。 + pub const IRQWIN: usize = 8; + + /// PIT(i8254)的“重新注入”模式依赖于 EOI 拦截,而 AVIC 不支持边沿触发中断的 EOI 拦截。 + pub const PIT_REINJ: usize = 9; + + /// SEV 不支持 AVIC,因此 AVIC 被禁用。 + pub const SEV: usize = 10; -impl KvmFunc for DummyKvmFunc { - fn name(&self) -> &'static str { - "kvm_dummy_ops" + /// 当所有带有有效 LDR 的 vCPU 之间的逻辑 ID 和 vCPU 的 1:1 映射被更改时,AVIC 被禁用。 + pub const LOGICAL_ID_ALIASED: usize = 11; +} + +#[derive(Debug)] +pub struct KvmX86MsrFilter { + count: u8, + default_allow: bool, + ranges: Vec, +} + +#[derive(Debug)] +pub struct KernelMsrRange { + pub flags: MsrFilterType, + pub nmsrs: u32, + pub base: u32, + pub bitmap: AllocBitmap, +} + +#[repr(C)] +pub struct PosixMsrFilterRange { + pub flags: u32, + pub nmsrs: u32, + pub base: u32, + pub bitmap: *const u8, +} + +bitflags! { + pub struct MsrFilterType: u8 { + const KVM_MSR_FILTER_READ = 1 << 0; + const KVM_MSR_FILTER_WRITE = 1 << 1; } +} - fn hardware_enable(&self) -> SysResult<()> { - Err(SystemError::ENOSYS) +#[derive(Debug, Clone, Copy)] +pub enum KvmReg { + VcpuRegsRax = 0, + VcpuRegsRcx = 1, + VcpuRegsRdx = 2, + VcpuRegsRbx = 3, + VcpuRegsRsp = 4, + VcpuRegsRbp = 5, + VcpuRegsRsi = 6, + VcpuRegsRdi = 7, + + VcpuRegsR8 = 8, + VcpuRegsR9 = 9, + VcpuRegsR10 = 10, + VcpuRegsR11 = 11, + VcpuRegsR12 = 12, + VcpuRegsR13 = 13, + VcpuRegsR14 = 14, + VcpuRegsR15 = 15, + + VcpuRegsRip = 16, + NrVcpuRegs = 17, + + VcpuExregCr0, + VcpuExregCr3, + VcpuExregCr4, + VcpuExregRflags, + VcpuExregSegments, + VcpuExregExitInfo1, + VcpuExregExitInfo2, +} + +bitflags! { + pub struct HFlags: u8 { + const HF_GUEST_MASK = 1 << 0; /* VCPU is in guest-mode */ + const HF_SMM_MASK = 1 << 1; + const HF_SMM_INSIDE_NMI_MASK = 1 << 2; } } + +/// ### 虚拟机的通用寄存器 +#[derive(Debug, Default, Clone, Copy)] +#[repr(C)] +pub struct KvmCommonRegs { + rax: u64, + rbx: u64, + rcx: u64, + rdx: u64, + rsi: u64, + rdi: u64, + rsp: u64, + rbp: u64, + r8: u64, + r9: u64, + r10: u64, + r11: u64, + r12: u64, + r13: u64, + r14: u64, + r15: u64, + rip: u64, + rflags: u64, +} diff --git a/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs b/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs index f06bed31e..9d7be8976 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs @@ -1,31 +1,559 @@ +use core::intrinsics::unlikely; + +use alloc::{boxed::Box, sync::Arc, vec::Vec}; +use bitmap::{traits::BitMapOps, AllocBitmap, StaticBitmap}; +use raw_cpuid::CpuId; +use system_error::SystemError; +use x86::{ + bits64::rflags::RFlags, + controlregs::{Cr0, Cr4}, + msr::{ + IA32_APIC_BASE, IA32_CSTAR, IA32_FS_BASE, IA32_GS_BASE, IA32_KERNEL_GSBASE, IA32_LSTAR, + IA32_SYSENTER_EIP, IA32_SYSENTER_ESP, IA32_TSC_AUX, + }, +}; +use x86_64::registers::control::EferFlags; + use crate::{ - smp::cpu::ProcessorId, - virt::vm::kvm_host::vcpu::{MutilProcessorState, VirtCpu}, + arch::{ + kvm_arch_ops, + vm::{ + asm::{KvmX86Asm, MiscEnable, MsrData}, + cpuid::KvmCpuidEntry2, + kvm_host::KvmReg, + mmu::{KvmMmu, LockedKvmMmu}, + vmx::vmcs::LoadedVmcs, + x86_kvm_manager, x86_kvm_manager_mut, x86_kvm_ops, + }, + }, + kdebug, kerror, + mm::{PhysAddr, VirtAddr}, + smp::{core::smp_get_processor_id, cpu::ProcessorId}, + virt::vm::kvm_host::{ + mem::GfnToHvaCache, + vcpu::{GuestDebug, VirtCpu}, + LockedVm, MutilProcessorState, Vm, + }, }; +use super::{HFlags, KvmCommonRegs, KvmIrqChipMode}; + #[derive(Debug)] pub struct X86VcpuArch { /// 最近一次尝试进入虚拟机的主机cpu last_vmentry_cpu: ProcessorId, /// 可用寄存器数量 - regs_avail: u32, + regs_avail: AllocBitmap, /// 脏寄存器数量 - regs_dirty: u32, + regs_dirty: AllocBitmap, /// 多处理器状态 mp_state: MutilProcessorState, + pub apic_base: u64, + /// apic + pub apic: Option<()>, + /// 主机pkru寄存器 + host_pkru: u32, + /// hflag + hflags: HFlags, + + pub guest_state_protected: bool, + + pub cpuid_entries: Vec, + + pub exception: KvmQueuedException, + pub exception_vmexit: KvmQueuedException, + pub apf: KvmAsyncPageFault, + + pub smbase: u64, + + pub interrupt: KvmQueuedInterrupt, + + pub tsc_offset_adjustment: u64, + + pub mmu: Option>, + pub root_mmu: Option>, + pub guset_mmu: Option>, + pub walk_mmu: Option>, + pub nested_mmu: Option>, + + pub max_phyaddr: usize, + + pub regs: [u64; KvmReg::NrVcpuRegs as usize], + + pub cr0: Cr0, + pub cr0_guest_owned_bits: Cr0, + pub cr2: usize, + pub cr3: usize, + pub cr4: Cr4, + pub cr4_guest_owned_bits: Cr4, + pub cr4_guest_rsvd_bits: usize, + pub cr8: usize, + pub efer: EferFlags, + + pub dr6: usize, + pub dr7: usize, + + pub single_step_rip: usize, + + pub msr_misc_features_enables: u64, + pub ia32_misc_enable_msr: MiscEnable, + + pub smi_pending: bool, + pub smi_count: u64, + pub nmi_queued: usize, + /// 待注入的 NMI 数量,不包括硬件 vNMI。 + pub nmi_pending: u32, + pub nmi_injected: bool, + + pub db: [usize; Self::KVM_NR_DB_REGS], } -impl VirtCpu { - pub fn init_arch(&mut self) {} +impl X86VcpuArch { + const KVM_NR_DB_REGS: usize = 4; + + #[inline(never)] + pub fn new() -> Self { + let mut ret: Box = unsafe { Box::new_zeroed().assume_init() }; + ret.last_vmentry_cpu = ProcessorId::INVALID; + ret.regs_avail = AllocBitmap::new(32); + ret.regs_dirty = AllocBitmap::new(32); + ret.mp_state = MutilProcessorState::Runnable; + *ret + } + + pub fn lapic_in_kernel(&self) -> bool { + if x86_kvm_manager().has_noapic_vcpu { + return self.apic.is_some(); + } + true + } + + pub fn read_cr0_bits(&mut self, mask: Cr0) -> Cr0 { + let tmask = mask & (Cr0::CR0_TASK_SWITCHED | Cr0::CR0_WRITE_PROTECT); + if tmask.contains(self.cr0_guest_owned_bits) + && !self + .regs_avail + .get(KvmReg::VcpuExregCr0 as usize) + .unwrap_or_default() + { + x86_kvm_ops().cache_reg(self, KvmReg::VcpuExregCr0); + } + + return self.cr0 & mask; + } + + pub fn read_cr4_bits(&mut self, mask: Cr4) -> Cr4 { + let tmask = mask + & (Cr4::CR4_VIRTUAL_INTERRUPTS + | Cr4::CR4_DEBUGGING_EXTENSIONS + | Cr4::CR4_ENABLE_PPMC + | Cr4::CR4_ENABLE_SSE + | Cr4::CR4_UNMASKED_SSE + | Cr4::CR4_ENABLE_GLOBAL_PAGES + | Cr4::CR4_TIME_STAMP_DISABLE + | Cr4::CR4_ENABLE_FSGSBASE); + + if tmask.contains(self.cr4_guest_owned_bits) + && !self + .regs_avail + .get(KvmReg::VcpuExregCr4 as usize) + .unwrap_or_default() + { + x86_kvm_ops().cache_reg(self, KvmReg::VcpuExregCr4) + } + + return self.cr4 & mask; + } + + #[inline] + pub fn is_smm(&self) -> bool { + self.hflags.contains(HFlags::HF_SMM_MASK) + } + + #[inline] + pub fn is_guest_mode(&self) -> bool { + self.hflags.contains(HFlags::HF_GUEST_MASK) + } + + #[inline] + fn clear_interrupt_queue(&mut self) { + self.interrupt.injected = false; + } + + #[inline] + fn clear_exception_queue(&mut self) { + self.exception.pending = false; + self.exception.injected = false; + self.exception_vmexit.pending = false; + } + + pub fn set_msr(&mut self, index: u32, data: u64, host_initiated: bool) { + match index { + IA32_FS_BASE | IA32_GS_BASE | IA32_KERNEL_GSBASE | IA32_CSTAR | IA32_LSTAR => { + if VirtAddr::new(data as usize).is_canonical() { + return; + } + } + + IA32_SYSENTER_EIP | IA32_SYSENTER_ESP => { + // 需要将Data转为合法地址,但是现在先这样写 + assert!(VirtAddr::new(data as usize).is_canonical()); + } + IA32_TSC_AUX => { + if x86_kvm_manager() + .find_user_return_msr_idx(IA32_TSC_AUX) + .is_none() + { + return; + } + + todo!() + } + _ => {} + } + + let msr_data = MsrData { + host_initiated, + index, + data, + }; + + return kvm_arch_ops().set_msr(self, msr_data); + } + + pub fn update_cpuid_runtime(&mut self, entries: &Vec) { + let cpuid = CpuId::new(); + let feat = cpuid.get_feature_info().unwrap(); + let base = KvmCpuidEntry2::find(entries, 1, None); + if let Some(base) = base { + if feat.has_xsave() {} + } + + todo!() + } + + #[inline] + fn mark_register_dirty(&mut self, reg: KvmReg) { + self.regs_avail.set(reg as usize, true); + self.regs_dirty.set(reg as usize, true); + } + + #[inline] + fn write_reg(&mut self, reg: KvmReg, data: u64) { + self.regs[reg as usize] = data; + } + + #[inline] + fn write_reg_raw(&mut self, reg: KvmReg, data: u64) { + self.regs[reg as usize] = data; + self.mark_register_dirty(reg); + } + + #[inline] + fn read_reg(&self, reg: KvmReg) -> u64 { + return self.regs[reg as usize]; + } + + #[inline] + fn read_reg_raw(&self, reg: KvmReg) -> u64 { + if self.regs_avail.get(reg as usize) == Some(true) { + kvm_arch_ops().cache_reg(self, reg); + } + + return self.regs[reg as usize]; + } + + #[inline] + fn get_linear_rip(&mut self) -> u64 { + if self.guest_state_protected { + return 0; + } + return self.read_reg_raw(KvmReg::VcpuRegsRip); + } } -impl Default for X86VcpuArch { - fn default() -> Self { - Self { - last_vmentry_cpu: ProcessorId::INVALID, - regs_avail: !0, - regs_dirty: !0, - mp_state: MutilProcessorState::Runnable, +impl VirtCpu { + pub fn init_arch(&mut self, vm: &Vm) { + self.arch.last_vmentry_cpu = ProcessorId::INVALID; + self.arch.regs_avail.set_all(true); + self.arch.regs_dirty.set_all(true); + + if vm.arch.irqchip_mode != KvmIrqChipMode::None || vm.arch.bsp_vcpu_id == self.vcpu_id { + self.arch.mp_state = MutilProcessorState::Runnable; + } else { + self.arch.mp_state = MutilProcessorState::Uninitialized; } + + self.arch.vcpu_arch_mmu_create(); + + if vm.arch.irqchip_mode != KvmIrqChipMode::None { + todo!() + } else { + x86_kvm_manager_mut().has_noapic_vcpu = true; + } + + x86_kvm_ops().vcpu_create(self, vm); + + self.load(); + self.vcpu_reset(false); + self.arch.kvm_init_mmu(); + } + + pub fn run(&mut self) -> Result { + self.load(); + todo!() + } + + #[inline] + fn load(&mut self) { + self.arch_vcpu_load(smp_get_processor_id()) } + + fn arch_vcpu_load(&mut self, cpu: ProcessorId) { + x86_kvm_ops().vcpu_load(self, cpu); + + self.arch.host_pkru = KvmX86Asm::read_pkru(); + + // 下列两个TODO为处理时钟信息 + if unlikely(self.arch.tsc_offset_adjustment != 0) { + todo!() + } + + if unlikely(self.cpu != cpu) { + // TODO: 设置tsc + self.cpu = cpu; + } + + self.request(VirCpuRequest::KVM_REQ_STEAL_UPDATE) + } + + pub fn request(&mut self, req: VirCpuRequest) { + self.request.insert(req); + } + + pub fn vcpu_reset(&mut self, init_event: bool) { + let old_cr0 = self.arch.read_cr0_bits(Cr0::all()); + + if self.arch.is_guest_mode() { + todo!() + } + + // :TODO + // self.lapic_reset(init_event); + + self.arch.hflags = HFlags::empty(); + + self.arch.smi_pending = false; + self.arch.smi_count = 0; + self.arch.nmi_queued = 0; + self.arch.nmi_pending = 0; + self.arch.nmi_injected = false; + + self.arch.clear_exception_queue(); + self.arch.clear_interrupt_queue(); + + for i in &mut self.arch.db { + *i = 0; + } + + // TODO: kvm_update_dr0123(vcpu); + + // DR6_ACTIVE_LOW + self.arch.dr6 = 0xffff0ff0; + // DR7_FIXED_1 + self.arch.dr7 = 0x00000400; + + // TODO: kvm_update_dr7(vcpu); + + self.arch.cr2 = 0; + + self.request(VirCpuRequest::KVM_REQ_EVENT); + + self.arch.apf.msr_en_val = 0; + self.arch.apf.msr_int_val = 0; + // TODO:st + + // TODO: kvmclock_reset(vcpu); + + // TODO: kvm_clear_async_pf_completion_queue(vcpu); + + for i in &mut self.arch.apf.gfns { + *i = u64::MAX; + } + + self.arch.apf.halted = false; + + // TODO: fpu + + if !init_event { + // TODO:pmu + self.arch.smbase = 0x30000; + + self.arch.msr_misc_features_enables = 0; + self.arch.ia32_misc_enable_msr = MiscEnable::MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL + | MiscEnable::MSR_IA32_MISC_ENABLE_BTS_UNAVAIL; + + // TODO: __kvm_set_xcr(vcpu, 0, XFEATURE_MASK_FP); + // 0xda0: MSR_IA32_XSS + self.arch.set_msr(0xda0, 0, true); + } + + for reg in &mut self.arch.regs { + *reg = 0; + } + + self.arch.mark_register_dirty(KvmReg::VcpuRegsRsp); + + let cpuid_0x1 = KvmCpuidEntry2::find(&self.arch.cpuid_entries, 1, None); + let val = if let Some(cpuid) = cpuid_0x1 { + cpuid.eax + } else { + 0x600 + }; + self.arch.write_reg(KvmReg::VcpuRegsRdx, val as u64); + + kvm_arch_ops().vcpu_reset(self, init_event); + + self.set_rflags(RFlags::FLAGS_A1); + self.arch.write_reg_raw(KvmReg::VcpuRegsRip, 0xfff0); + + self.arch.cr3 = 0; + self.arch.mark_register_dirty(KvmReg::VcpuExregCr3); + + let mut new_cr0 = Cr0::CR0_EXTENSION_TYPE; + if init_event { + new_cr0.insert(old_cr0 & (Cr0::CR0_NOT_WRITE_THROUGH | Cr0::CR0_CACHE_DISABLE)); + } else { + new_cr0.insert(Cr0::CR0_NOT_WRITE_THROUGH | Cr0::CR0_CACHE_DISABLE); + } + + kvm_arch_ops().set_cr0(self, new_cr0); + kvm_arch_ops().set_cr4(self, Cr4::empty()); + kvm_arch_ops().set_efer(self, EferFlags::empty()); + kvm_arch_ops().update_exception_bitmap(self); + + if old_cr0.contains(Cr0::CR0_ENABLE_PAGING) { + self.request(VirCpuRequest::KVM_REQ_TLB_FLUSH_GUEST); + self.arch.reset_mmu_context(); + } + + if init_event { + self.request(VirCpuRequest::KVM_REQ_TLB_FLUSH_GUEST); + } + } + + fn set_rflags(&mut self, rflags: RFlags) { + self._set_rflags(rflags); + self.request(VirCpuRequest::KVM_REQ_EVENT); + } + + fn _set_rflags(&mut self, mut rflags: RFlags) { + if self.guest_debug.contains(GuestDebug::SINGLESTEP) + && self.is_linear_rip(self.arch.single_step_rip) + { + rflags.insert(RFlags::FLAGS_TF); + } + + kvm_arch_ops().set_rflags(self, rflags); + } + + fn get_rflags(&self) -> RFlags { + let mut rflags = kvm_arch_ops().get_rflags(self); + if self.guest_debug.contains(GuestDebug::SINGLESTEP) { + rflags.insert(RFlags::FLAGS_TF); + } + return rflags; + } + + fn is_linear_rip(&mut self, linear_rip: usize) -> bool { + return self.arch.get_linear_rip() == linear_rip as u64; + } + + pub fn get_regs(&mut self) -> KvmCommonRegs { + self.load(); + return self._get_regs(); + } + + fn _get_regs(&self) -> KvmCommonRegs { + KvmCommonRegs { + rax: self.arch.read_reg(KvmReg::VcpuRegsRax), + rbx: self.arch.read_reg(KvmReg::VcpuRegsRbx), + rcx: self.arch.read_reg(KvmReg::VcpuRegsRcx), + rdx: self.arch.read_reg(KvmReg::VcpuRegsRdx), + rsi: self.arch.read_reg(KvmReg::VcpuRegsRsi), + rdi: self.arch.read_reg(KvmReg::VcpuRegsRdi), + rsp: self.arch.read_reg(KvmReg::VcpuRegsRsp), + rbp: self.arch.read_reg(KvmReg::VcpuRegsRbp), + r8: self.arch.read_reg(KvmReg::VcpuRegsR8), + r9: self.arch.read_reg(KvmReg::VcpuRegsR9), + r10: self.arch.read_reg(KvmReg::VcpuRegsR10), + r11: self.arch.read_reg(KvmReg::VcpuRegsR11), + r12: self.arch.read_reg(KvmReg::VcpuRegsR12), + r13: self.arch.read_reg(KvmReg::VcpuRegsR13), + r14: self.arch.read_reg(KvmReg::VcpuRegsR14), + r15: self.arch.read_reg(KvmReg::VcpuRegsR15), + rip: self.arch.read_reg_raw(KvmReg::VcpuRegsRip), + rflags: self.get_rflags().bits(), + } + } +} + +bitflags! { + pub struct VirCpuRequest: u32 { + const KVM_REQUEST_NO_WAKEUP = 1 << 0; + const KVM_REQUEST_WAIT = 1 << 1; + const KVM_REQUEST_NO_ACTION = 1 << 2; + const KVM_REQ_EVENT = 1 << 6; + const KVM_REQ_STEAL_UPDATE = 1 << 8; + const KVM_REQ_TLB_FLUSH_GUEST = 1 << 27 | Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits; + const KVM_REQ_TLB_FLUSH = 1 | Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits; + } +} + +#[derive(Debug, Default)] +pub struct KvmQueuedInterrupt { + pub injected: bool, + pub soft: bool, + pub nr: u8, +} + +#[derive(Debug, Default)] +pub struct KvmQueuedException { + pending: bool, + injected: bool, + has_error_code: bool, + vector: u8, + error_code: u32, + payload: usize, + has_payload: bool, +} + +#[derive(Debug)] +pub struct KvmAsyncPageFault { + /// 是否处于停止状态 + halted: bool, + /// 存储异步页面错误的 GFN(Guest Frame Number) + gfns: [u64; Self::ASYNC_PF_PER_VCPU], + /// 用于 GFN 到 HVA(Host Virtual Address)的缓存 + data: GfnToHvaCache, + /// MSR_KVM_ASYNC_PF_EN 寄存器的值 + msr_en_val: u64, + /// MSR_KVM_ASYNC_PF_INT 寄存器的值 + msr_int_val: u64, + /// 异步 PF 的向量 + vec: u16, + /// 异步 PF 的 ID + id: u32, + /// 是否仅发送给用户空间 + send_user_only: bool, + /// 主机 APF 标志 + host_apf_flags: u32, + /// 是否作为页面错误 VMExit 传递 + delivery_as_pf_vmexit: bool, + /// 是否处于页面就绪挂起状态 + pageready_pending: bool, +} + +impl KvmAsyncPageFault { + pub const ASYNC_PF_PER_VCPU: usize = 64; } diff --git a/kernel/src/arch/x86_64/vm/mem.rs b/kernel/src/arch/x86_64/vm/mem.rs new file mode 100644 index 000000000..b3ac5f0f4 --- /dev/null +++ b/kernel/src/arch/x86_64/vm/mem.rs @@ -0,0 +1,21 @@ +use alloc::sync::Arc; +use system_error::SystemError; + +use crate::virt::vm::kvm_host::{ + mem::{KvmMemoryChangeMode, LockedKvmMemSlot}, + Vm, +}; + +pub struct KvmArchMemorySlot {} + +impl Vm { + pub fn arch_prepare_memory_region( + &self, + old: Option<&Arc>, + new: Option<&Arc>, + change: KvmMemoryChangeMode, + ) -> Result<(), SystemError> { + // todo + Ok(()) + } +} diff --git a/kernel/src/arch/x86_64/vm/mmu.rs b/kernel/src/arch/x86_64/vm/mmu.rs new file mode 100644 index 000000000..852f7cfe8 --- /dev/null +++ b/kernel/src/arch/x86_64/vm/mmu.rs @@ -0,0 +1,356 @@ +use alloc::{sync::Arc, vec::Vec}; +use bitfield_struct::bitfield; +use x86::controlregs::{Cr0, Cr4}; +use x86_64::registers::control::EferFlags; + +use crate::{ + arch::{MMArch, VirtCpuArch}, + libs::spinlock::{SpinLock, SpinLockGuard}, + mm::MemoryManagementArch, +}; + +use super::vmx::vmx_info; + +const PT64_ROOT_5LEVEL: usize = 5; +const PT64_ROOT_4LEVEL: usize = 4; +const PT32_ROOT_LEVEL: usize = 2; +const PT32E_ROOT_LEVEL: usize = 3; + +static mut TDP_ENABLED: bool = false; +static mut TDP_ROOT_LEVEL: usize = 0; +static mut MAX_TDP_LEVEL: usize = 0; +static mut SHADOW_ACCESSED_MASK: usize = 0; + +#[derive(Debug)] +pub struct LockedKvmMmu { + inner: SpinLock, +} + +impl LockedKvmMmu { + pub fn new(mmu: KvmMmu) -> Arc { + Arc::new(Self { + inner: SpinLock::new(mmu), + }) + } + + pub fn lock(&self) -> SpinLockGuard { + self.inner.lock() + } +} + +#[derive(Debug, Default)] +pub struct KvmMmu { + root: KvmMmuRootInfo, + cpu_role: KvmCpuRole, + root_role: KvmMmuPageRole, + + pkru_mask: u32, + + prev_roots: [KvmMmuRootInfo; Self::KVM_MMU_NUM_PREV_ROOTS], + + pae_root: Vec, +} + +impl KvmMmu { + const KVM_MMU_NUM_PREV_ROOTS: usize = 3; + const INVALID_PAGE: u64 = u64::MAX; + + #[inline] + pub fn tdp_enabled() -> bool { + unsafe { TDP_ENABLED } + } + + #[inline] + pub fn tdp_root_level() -> usize { + unsafe { TDP_ROOT_LEVEL } + } + + #[inline] + pub fn max_tdp_level() -> usize { + unsafe { MAX_TDP_LEVEL } + } + + #[inline] + pub fn ad_enabled() -> bool { + unsafe { SHADOW_ACCESSED_MASK != 0 } + } +} + +#[derive(Debug, Default)] +pub struct KvmMmuRootInfo { + pgd: u64, + hpa: u64, +} + +#[derive(Debug, Default, Clone, Copy)] +pub struct KvmCpuRole { + base: KvmMmuPageRole, + extend: KvmMmuExtenedRole, +} + +impl PartialEq for KvmCpuRole { + fn eq(&self, other: &Self) -> bool { + self.base.0 == other.base.0 && self.extend.0 == other.extend.0 + } +} + +/// ### 用于跟踪影子页(包括 TDP 页)的属性,以确定页面是否可以在给定的 MMU 上下文中使用。 +#[bitfield(u32)] +pub struct KvmMmuPageRole { + /// 表示页表级别,占用 4 位。对于普通的页表,取值是 2(二级页表)、3(三级页表)、4(四级页表)和 5(五级页表) + #[bits(4)] + level: u32, + /// 页表项是否为 4 字节,占用 1 位。在非 PAE 分页模式下,该值为 1 + has_4_byte_gpte: bool, + /// 表示页表项所在的象限,占用 2 位。该字段仅在 has_4_byte_gpte 为 1 时有效。 + #[bits(2)] + quadrant: u32, + /// 页面是否直接映射 + direct: bool, + /// 页面的访问权限 + #[bits(3)] + access: u32, + /// 页面是否无效 + invalid: bool, + /// 页面是否启用 NX(不可执行)位 + efer_nx: bool, + /// CR0 寄存器中的写保护位(WP)是否被置位 + cr0_wp: bool, + /// SMEP(Supervisor Mode Execution Protection)和非写保护位的组合 + smep_andnot_wp: bool, + /// SMAP(Supervisor Mode Access Prevention)和非写保护位的组合 + smap_andnot_wp: bool, + /// 页面是否禁用访问位(Accessed Bit) + ad_disabled: bool, + /// 当前页是否处于客户机模式 + guest_mode: bool, + /// 是否将此页透传给客户机 + passthrough: bool, + /// 未使用位域 + #[bits(5)] + unused: u32, + /// 表示 SMM(System Management Mode)模式 + #[bits(8)] + smm: u32, +} + +impl KvmMmuPageRole { + pub fn is_cr0_pg(&self) -> bool { + self.level() > 0 + } + + pub fn is_cr4_pae(&self) -> bool { + !self.has_4_byte_gpte() + } +} + +#[bitfield(u32)] +pub struct KvmMmuExtenedRole { + valid: bool, + execonly: bool, + cr4_pse: bool, + cr4_pke: bool, + cr4_smap: bool, + cr4_smep: bool, + cr4_la57: bool, + efer_lma: bool, + #[bits(24)] + unused: u32, +} + +pub struct KvmMmuRoleRegs { + pub cr0: Cr0, + pub cr4: Cr4, + pub efer: EferFlags, +} + +impl VirtCpuArch { + pub fn kvm_init_mmu(&mut self) { + let regs = self.role_regs(); + let cpu_role = self.calc_cpu_role(®s); + + if self.walk_mmu.is_some() + && self.nested_mmu.is_some() + && Arc::ptr_eq( + self.walk_mmu.as_ref().unwrap(), + self.nested_mmu.as_ref().unwrap(), + ) + { + todo!() + } else if KvmMmu::tdp_enabled() { + self.init_tdp_mmu(cpu_role); + } else { + todo!() + } + } + + fn unload_mmu(&mut self) { + // TODO + } + + pub fn reset_mmu_context(&mut self) { + self.unload_mmu(); + self.kvm_init_mmu(); + } + + fn role_regs(&mut self) -> KvmMmuRoleRegs { + KvmMmuRoleRegs { + cr0: self.read_cr0_bits(Cr0::CR0_ENABLE_PAGING | Cr0::CR0_WRITE_PROTECT), + cr4: self.read_cr4_bits( + Cr4::CR4_ENABLE_PSE + | Cr4::CR4_ENABLE_PAE + | Cr4::CR4_ENABLE_LA57 + | Cr4::CR4_ENABLE_SMEP + | Cr4::CR4_ENABLE_SMAP + | Cr4::CR4_ENABLE_PROTECTION_KEY, + ), + efer: self.efer, + } + } + + fn calc_cpu_role(&self, regs: &KvmMmuRoleRegs) -> KvmCpuRole { + let mut role = KvmCpuRole::default(); + let base = &mut role.base; + let ext = &mut role.extend; + base.set_access(0b111); + base.set_smm(self.is_smm() as u32); + base.set_guest_mode(self.is_guest_mode()); + ext.set_valid(true); + + if !regs.cr0.contains(Cr0::CR0_ENABLE_PAGING) { + base.set_direct(true); + return role; + } + + base.set_efer_nx(regs.efer.contains(EferFlags::NO_EXECUTE_ENABLE)); + base.set_cr0_wp(regs.cr0.contains(Cr0::CR0_WRITE_PROTECT)); + base.set_smep_andnot_wp( + regs.cr4.contains(Cr4::CR4_ENABLE_SMEP) && !regs.cr0.contains(Cr0::CR0_WRITE_PROTECT), + ); + base.set_smap_andnot_wp( + regs.cr4.contains(Cr4::CR4_ENABLE_SMAP) && !regs.cr0.contains(Cr0::CR0_WRITE_PROTECT), + ); + + base.set_has_4_byte_gpte(!regs.cr4.contains(Cr4::CR4_ENABLE_PAE)); + + if regs.efer.contains(EferFlags::LONG_MODE_ACTIVE) { + let level = if regs.cr4.contains(Cr4::CR4_ENABLE_LA57) { + PT64_ROOT_5LEVEL as u32 + } else { + PT64_ROOT_4LEVEL as u32 + }; + base.set_level(level); + } else if regs.cr4.contains(Cr4::CR4_ENABLE_PAE) { + base.set_level(PT32E_ROOT_LEVEL as u32); + } else { + base.set_level(PT32_ROOT_LEVEL as u32); + } + + ext.set_cr4_smep(regs.cr4.contains(Cr4::CR4_ENABLE_SMEP)); + ext.set_cr4_smap(regs.cr4.contains(Cr4::CR4_ENABLE_SMAP)); + ext.set_cr4_pse(regs.cr4.contains(Cr4::CR4_ENABLE_PSE)); + ext.set_cr4_pke( + regs.efer.contains(EferFlags::LONG_MODE_ACTIVE) + && regs.cr4.contains(Cr4::CR4_ENABLE_PROTECTION_KEY), + ); + ext.set_cr4_la57( + regs.efer.contains(EferFlags::LONG_MODE_ACTIVE) + && regs.cr4.contains(Cr4::CR4_ENABLE_LA57), + ); + ext.set_efer_lma(regs.efer.contains(EferFlags::LONG_MODE_ACTIVE)); + + role + } + + /// https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/mmu/mmu.c#6019 + pub fn vcpu_arch_mmu_create(&mut self) { + if vmx_info().tdp_enabled() { + self.guset_mmu = Some(self._mmu_create()); + } + + self.root_mmu = Some(self._mmu_create()); + self.mmu = self.root_mmu.clone(); + self.walk_mmu = self.root_mmu.clone(); + } + + fn _mmu_create(&self) -> Arc { + let mut mmu = KvmMmu::default(); + + mmu.root.hpa = KvmMmu::INVALID_PAGE; + mmu.root.pgd = 0; + + for role in &mut mmu.prev_roots { + role.hpa = KvmMmu::INVALID_PAGE; + role.pgd = KvmMmu::INVALID_PAGE; + } + + if KvmMmu::tdp_enabled() && self.mmu_get_tdp_level() > PT32E_ROOT_LEVEL { + return LockedKvmMmu::new(mmu); + } + + mmu.pae_root + .resize(MMArch::PAGE_SIZE / core::mem::size_of::(), 0); + + return LockedKvmMmu::new(mmu); + } + + fn mmu_get_tdp_level(&self) -> usize { + if KvmMmu::tdp_root_level() != 0 { + return KvmMmu::tdp_root_level(); + } + + if KvmMmu::max_tdp_level() == 5 && self.max_phyaddr <= 48 { + return 4; + } + + return KvmMmu::max_tdp_level(); + } + + pub fn init_tdp_mmu(&mut self, cpu_role: KvmCpuRole) { + let context = self.root_mmu(); + let mut context = context.lock(); + let root_role = self.calc_tdp_mmu_root_page_role(cpu_role); + + if cpu_role == context.cpu_role && root_role.0 == context.root_role.0 { + return; + } + + context.cpu_role = cpu_role; + context.root_role = root_role; + + // todo 设置函数集 + + if !context.cpu_role.base.is_cr0_pg() { + // todo: context->gva_to_gpa = nonpaging_gva_to_gpa; + } else if context.cpu_role.base.is_cr4_pae() { + // todo: context->gva_to_gpa = paging64_gva_to_gpa; + } else { + // todo: context->gva_to_gpa = paging32_gva_to_gpa; + } + + // todo: + // reset_guest_paging_metadata(vcpu, context); + // reset_tdp_shadow_zero_bits_mask(context); + } + + #[inline] + pub fn root_mmu(&self) -> &Arc { + self.root_mmu.as_ref().unwrap() + } + + fn calc_tdp_mmu_root_page_role(&self, cpu_role: KvmCpuRole) -> KvmMmuPageRole { + let mut role = KvmMmuPageRole::default(); + + role.set_access(0b111); + role.set_cr0_wp(true); + role.set_efer_nx(true); + role.set_smm(cpu_role.base.smm()); + role.set_guest_mode(cpu_role.base.guest_mode()); + role.set_ad_disabled(!KvmMmu::ad_enabled()); + role.set_level(self.mmu_get_tdp_level() as u32); + role.set_direct(true); + role.set_has_4_byte_gpte(false); + + role + } +} diff --git a/kernel/src/arch/x86_64/vm/mod.rs b/kernel/src/arch/x86_64/vm/mod.rs index 6233199d9..87ad42fcd 100644 --- a/kernel/src/arch/x86_64/vm/mod.rs +++ b/kernel/src/arch/x86_64/vm/mod.rs @@ -1,47 +1,273 @@ -use core::{ - arch::x86_64::{_xgetbv, _XCR_XFEATURE_ENABLED_MASK}, - sync::atomic::{AtomicU64, Ordering}, -}; - -use alloc::{boxed::Box, sync::Arc}; +use alloc::vec::Vec; use raw_cpuid::CpuId; use system_error::SystemError; -use x86::msr::{rdmsr, IA32_CSTAR, IA32_PAT}; +use x86::{ + controlregs::Xcr0, + msr::{ + rdmsr, IA32_BIOS_SIGN_ID, IA32_CSTAR, IA32_EFER, IA32_FEATURE_CONTROL, IA32_FMASK, + IA32_KERNEL_GSBASE, IA32_LSTAR, IA32_MCG_CTL, IA32_MCG_STATUS, IA32_MISC_ENABLE, IA32_PAT, + IA32_PERFEVTSEL0, IA32_PERFEVTSEL7, IA32_PERF_CAPABILITIES, IA32_PMC0, IA32_PMC7, + IA32_SMBASE, IA32_STAR, IA32_SYSENTER_CS, IA32_SYSENTER_EIP, IA32_SYSENTER_ESP, + IA32_TIME_STAMP_COUNTER, IA32_TSC_ADJUST, IA32_TSC_AUX, IA32_TSC_DEADLINE, IA32_VMX_BASIC, + IA32_VMX_CR0_FIXED0, IA32_VMX_CR4_FIXED0, IA32_VMX_EPT_VPID_CAP, IA32_VMX_MISC, + IA32_VMX_PROCBASED_CTLS2, IA32_VMX_TRUE_ENTRY_CTLS, IA32_VMX_TRUE_EXIT_CTLS, + IA32_VMX_TRUE_PINBASED_CTLS, IA32_VMX_TRUE_PROCBASED_CTLS, IA32_VMX_VMCS_ENUM, + IA32_VMX_VMFUNC, MSR_C1_PMON_EVNT_SEL0, MSR_C5_PMON_BOX_CTRL, MSR_IA32_ADDR0_END, + MSR_IA32_ADDR0_START, MSR_IA32_ADDR1_END, MSR_IA32_ADDR1_START, MSR_IA32_ADDR2_END, + MSR_IA32_ADDR2_START, MSR_IA32_ADDR3_END, MSR_IA32_ADDR3_START, MSR_IA32_CR3_MATCH, + MSR_IA32_RTIT_CTL, MSR_IA32_RTIT_OUTPUT_BASE, MSR_IA32_RTIT_OUTPUT_MASK_PTRS, + MSR_IA32_RTIT_STATUS, MSR_IA32_TSX_CTRL, MSR_PERF_FIXED_CTR0, MSR_PERF_FIXED_CTR2, + MSR_PLATFORM_INFO, MSR_POWER_CTL, MSR_SMI_COUNT, + }, +}; use crate::{ - kerror, - libs::{lazy_init::Lazy, rwlock::RwLock}, + arch::vm::vmx::{VmxL1dFlushState, L1TF_VMX_MITIGATION}, + kdebug, kerror, + libs::once::Once, + mm::percpu::{PerCpu, PerCpuVar}, }; -use self::kvm_host::KvmFunc; +use self::{ + asm::{hyperv::*, kvm_msr::*, ArchCapabilities, KvmMsrEntry}, + kvm_host::{KvmFunc, KvmInitFunc}, +}; +use super::driver::tsc::TSCManager; + +mod asm; +mod cpuid; pub mod kvm_host; +pub mod mem; +mod mmu; pub mod vmx; -static KVM_X86_MANAGER: Lazy = Lazy::new(); +static mut KVM_X86_MANAGER: Option = None; + +pub fn x86_kvm_ops() -> &'static dyn KvmFunc { + unsafe { KVM_X86_MANAGER.as_ref().unwrap().funcs() } +} + +pub fn x86_kvm_manager() -> &'static KvmArchManager { + unsafe { KVM_X86_MANAGER.as_ref().unwrap() } +} -pub fn kvm_x86_ops() -> Option<&'static dyn KvmFunc> { - *KVM_X86_MANAGER.funcs.read() +pub fn x86_kvm_manager_mut() -> &'static mut KvmArchManager { + unsafe { KVM_X86_MANAGER.as_mut().unwrap() } } +pub fn init_kvm_arch() { + static ONCE: Once = Once::new(); + ONCE.call_once(|| unsafe { + KVM_X86_MANAGER = Some(KvmArchManager::default()); + + let mut user_return_msrs = Vec::new(); + user_return_msrs.resize(PerCpu::MAX_CPU_NUM as usize, KvmUserReturnMsrs::default()); + USER_RETURN_MSRS = Some(PerCpuVar::new(user_return_msrs).unwrap()); + }) +} + +/// fixme:这些成员是否需要加锁呢?? +#[derive(Debug, Default)] pub struct KvmArchManager { - funcs: RwLock>, - host_xcr0: AtomicU64, + funcs: Option<&'static dyn KvmFunc>, + host_xcr0: u64, + host_efer: u64, + host_xss: u64, + host_arch_capabilities: u64, + kvm_uret_msrs_list: Vec, + kvm_caps: KvmCapabilities, + max_tsc_khz: u64, + msrs_to_save: Vec, + emulated_msrs: Vec, + msr_based_features: Vec, + + has_noapic_vcpu: bool, + + enable_pmu: bool, } impl KvmArchManager { + #[inline] + pub fn set_runtime_func(&mut self, funcs: &'static dyn KvmFunc) { + self.funcs = Some(funcs); + } + + #[inline] + pub fn funcs(&self) -> &'static dyn KvmFunc { + self.funcs.unwrap() + } + + pub fn find_user_return_msr_idx(&self, msr: u32) -> Option { + for (i, val) in self.kvm_uret_msrs_list.iter().enumerate() { + if *val == msr { + return Some(i); + } + } + + None + } + pub const KVM_MAX_VCPUS: usize = 1024; + pub const KVM_MAX_NR_USER_RETURN_MSRS: usize = 7; + + const MSRS_TO_SAVE_BASE: &[u32] = &[ + IA32_SYSENTER_CS, + IA32_SYSENTER_ESP, + IA32_SYSENTER_EIP, + IA32_STAR, + IA32_CSTAR, + IA32_KERNEL_GSBASE, + IA32_FMASK, + IA32_LSTAR, + IA32_TIME_STAMP_COUNTER, + IA32_PAT, + 0xc0010117, // MSR_VM_HSAVE_PA? + IA32_FEATURE_CONTROL, + MSR_C1_PMON_EVNT_SEL0, + IA32_TSC_AUX, + 0x48, // MSR_IA32_SPEC_CTRL + MSR_IA32_TSX_CTRL, + MSR_IA32_RTIT_CTL, + MSR_IA32_RTIT_STATUS, + MSR_IA32_CR3_MATCH, + MSR_IA32_RTIT_OUTPUT_BASE, + MSR_IA32_RTIT_OUTPUT_MASK_PTRS, + MSR_IA32_ADDR0_START, + MSR_IA32_ADDR0_END, + MSR_IA32_ADDR1_START, + MSR_IA32_ADDR1_END, + MSR_IA32_ADDR2_START, + MSR_IA32_ADDR2_END, + MSR_IA32_ADDR3_START, + MSR_IA32_ADDR3_END, + 0xe1, // MSR_IA32_UMWAIT_CONTROL + 0x1c4, // MSR_IA32_XFD + 0x1c5, // MSR_IA32_XFD_ERR + ]; + + const EMULATED_MSRS_ALL: &[u32] = &[ + MSR_KVM_SYSTEM_TIME, + MSR_KVM_WALL_CLOCK, + MSR_KVM_SYSTEM_TIME_NEW, + MSR_KVM_WALL_CLOCK_NEW, + HV_X64_MSR_GUEST_OS_ID, + HV_X64_MSR_HYPERCALL, + HV_REGISTER_TIME_REF_COUNT, + HV_REGISTER_REFERENCE_TSC, + HV_X64_MSR_TSC_FREQUENCY, + HV_X64_MSR_APIC_FREQUENCY, + HV_REGISTER_CRASH_P0, + HV_REGISTER_CRASH_P1, + HV_REGISTER_CRASH_P2, + HV_REGISTER_CRASH_P3, + HV_REGISTER_CRASH_P4, + HV_REGISTER_CRASH_CTL, + HV_X64_MSR_RESET, + HV_REGISTER_VP_INDEX, + HV_X64_MSR_VP_RUNTIME, + HV_REGISTER_SCONTROL, + HV_REGISTER_STIMER0_CONFIG, + HV_X64_MSR_VP_ASSIST_PAGE, + HV_X64_MSR_REENLIGHTENMENT_CONTROL, + HV_X64_MSR_TSC_EMULATION_CONTROL, + HV_X64_MSR_TSC_EMULATION_STATUS, + HV_X64_MSR_TSC_INVARIANT_CONTROL, + HV_X64_MSR_SYNDBG_OPTIONS, + HV_X64_MSR_SYNDBG_CONTROL, + HV_X64_MSR_SYNDBG_STATUS, + HV_X64_MSR_SYNDBG_SEND_BUFFER, + HV_X64_MSR_SYNDBG_RECV_BUFFER, + HV_X64_MSR_SYNDBG_PENDING_BUFFER, + MSR_KVM_ASYNC_PF_EN, + MSR_KVM_STEAL_TIME, + MSR_KVM_PV_EOI_EN, + MSR_KVM_ASYNC_PF_INT, + MSR_KVM_ASYNC_PF_ACK, + IA32_TSC_ADJUST, + IA32_TSC_DEADLINE, + IA32_PERF_CAPABILITIES, + 0x10a, // MSR_IA32_ARCH_CAPABILITIES, + IA32_MISC_ENABLE, + IA32_MCG_STATUS, + IA32_MCG_CTL, + 0x4d0, // MSR_IA32_MCG_EXT_CTL, + IA32_SMBASE, + MSR_SMI_COUNT, + MSR_PLATFORM_INFO, + 0x140, // MSR_MISC_FEATURES_ENABLES, + 0xc001011f, // MSR_AMD64_VIRT_SPEC_CTRL, + 0xc0000104, // MSR_AMD64_TSC_RATIO, + MSR_POWER_CTL, + IA32_BIOS_SIGN_ID, // MSR_IA32_UCODE_REV, + /* + * KVM always supports the "true" VMX control MSRs, even if the host + * does not. The VMX MSRs as a whole are considered "emulated" as KVM + * doesn't strictly require them to exist in the host (ignoring that + * KVM would refuse to load in the first place if the core set of MSRs + * aren't supported). + */ + IA32_VMX_BASIC, + IA32_VMX_TRUE_PINBASED_CTLS, + IA32_VMX_TRUE_PROCBASED_CTLS, + IA32_VMX_TRUE_EXIT_CTLS, + IA32_VMX_TRUE_ENTRY_CTLS, + IA32_VMX_MISC, + IA32_VMX_CR0_FIXED0, + IA32_VMX_CR4_FIXED0, + IA32_VMX_VMCS_ENUM, + IA32_VMX_PROCBASED_CTLS2, + IA32_VMX_EPT_VPID_CAP, + IA32_VMX_VMFUNC, + 0xc0010015, // MSR_K7_HWCR, + MSR_KVM_POLL_CONTROL, + ]; + + const MSR_BASED_FEATURES_ALL_EXCEPT_VMX: &[u32] = &[ + 0xc0011029, // MSR_AMD64_DE_CFG + IA32_BIOS_SIGN_ID, // MSR_IA32_UCODE_REV + 0x10a, // MSR_IA32_ARCH_CAPABILITIES, + IA32_PERF_CAPABILITIES, + ]; + + pub fn arch_hardware_enable(&self) -> Result<(), SystemError> { + self.online_user_return_msr(); + + x86_kvm_ops().hardware_enable()?; + + // TODO: 这里需要对TSC进行一系列检测 + + Ok(()) + } + + /// ## 初始化当前cpu的kvm msr寄存器 + fn online_user_return_msr(&self) { + let user_return_msrs = user_return_msrs().get_mut(); + + for (idx, msr) in self.kvm_uret_msrs_list.iter().enumerate() { + let val = unsafe { rdmsr(*msr) }; + user_return_msrs.values[idx].host = val; + user_return_msrs.values[idx].curr = val; + } + } /// 厂商相关的init工作 - pub fn vendor_init(&self) -> Result<(), SystemError> { + pub fn vendor_init(&mut self, init_ops: &'static dyn KvmInitFunc) -> Result<(), SystemError> { let cpuid = CpuId::new(); let cpu_feature = cpuid.get_feature_info().ok_or(SystemError::ENOSYS)?; + let cpu_extend = cpuid.get_extended_state_info().ok_or(SystemError::ENOSYS)?; + let extend_features = cpuid + .get_extended_feature_info() + .ok_or(SystemError::ENOSYS)?; - let kvm_x86_ops = kvm_x86_ops(); + let kvm_x86_ops = &self.funcs; // 是否已经设置过 - if let Some(ops) = kvm_x86_ops { - kerror!("[KVM] already loaded vendor module {}", ops.name()); + if kvm_x86_ops.is_some() { + kerror!( + "[KVM] already loaded vendor module {}", + kvm_x86_ops.unwrap().name() + ); return Err(SystemError::EEXIST); } @@ -63,14 +289,219 @@ impl KvmArchManager { } // TODO:mmu vendor init - if cpu_feature.has_xsave() { - self.host_xcr0.store( - unsafe { _xgetbv(_XCR_XFEATURE_ENABLED_MASK) }, - Ordering::SeqCst, + // fixme:这里会UD,后续再修 + // self.host_xcr0 = unsafe { _xgetbv(_XCR_XFEATURE_ENABLED_MASK) }; + } + // 保存efer + self.host_efer = unsafe { rdmsr(IA32_EFER) }; + + // 保存xss + if cpu_extend.has_xsaves_xrstors() { + self.host_xss = unsafe { rdmsr(MSR_C5_PMON_BOX_CTRL) }; + } + + // TODO: 初始化性能监视单元(PMU) + // https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/x86.c#9518 + if extend_features.has_sha() { + self.host_arch_capabilities = unsafe { + // MSR_IA32_ARCH_CAPABILITIES + rdmsr(0x10a) + } + } + + init_ops.hardware_setup()?; + + self.set_runtime_func(init_ops.runtime_funcs()); + + self.kvm_timer_init()?; + + // TODO: https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/x86.c#9544 + + let kvm_caps = &mut self.kvm_caps; + if !cpu_extend.has_xsaves_xrstors() { + kvm_caps.supported_xss = 0; + } + + if kvm_caps.has_tsc_control { + kvm_caps.max_guest_tsc_khz = 0x7fffffff.min( + ((kvm_caps.max_tsc_scaling_ratio as i128 * TSCManager::tsc_khz() as i128) + >> kvm_caps.tsc_scaling_ratio_frac_bits) as u32, ); } + kvm_caps.default_tsc_scaling_ratio = 1 << kvm_caps.tsc_scaling_ratio_frac_bits; + self.kvm_init_msr_lists(); + Ok(()) + } + + fn kvm_init_msr_lists(&mut self) { + self.msrs_to_save.clear(); + self.emulated_msrs.clear(); + self.msr_based_features.clear(); + + for msr in Self::MSRS_TO_SAVE_BASE { + self.kvm_probe_msr_to_save(*msr); + } + + if self.enable_pmu { + todo!() + } + + for msr in Self::EMULATED_MSRS_ALL { + if !x86_kvm_ops().has_emulated_msr(*msr) { + continue; + } + self.emulated_msrs.push(*msr); + } + + for msr in IA32_VMX_BASIC..=IA32_VMX_VMFUNC { + self.kvm_prove_feature_msr(msr) + } + + for msr in Self::MSR_BASED_FEATURES_ALL_EXCEPT_VMX { + self.kvm_prove_feature_msr(*msr); + } + } + + fn kvm_probe_msr_to_save(&mut self, msr: u32) { + let cpuid = CpuId::new(); + let cpu_feat = cpuid.get_feature_info().unwrap(); + let cpu_extend = cpuid.get_extended_feature_info().unwrap(); + + match msr { + MSR_C1_PMON_EVNT_SEL0 => { + if !cpu_extend.has_mpx() { + return; + } + } + + IA32_TSC_AUX => { + if !cpu_feat.has_tsc() { + return; + } + } + // MSR_IA32_UNWAIT_CONTROL + 0xe1 => { + if !cpu_extend.has_waitpkg() { + return; + } + } + MSR_IA32_RTIT_CTL | MSR_IA32_RTIT_STATUS => { + if !cpu_extend.has_processor_trace() { + return; + } + } + MSR_IA32_CR3_MATCH => { + // TODO: 判断intel_pt_validate_hw_cap(PT_CAP_cr3_filtering) + if !cpu_extend.has_processor_trace() { + return; + } + } + MSR_IA32_RTIT_OUTPUT_BASE | MSR_IA32_RTIT_OUTPUT_MASK_PTRS => { + // TODO: 判断!intel_pt_validate_hw_cap(PT_CAP_topa_output) &&!intel_pt_validate_hw_cap(PT_CAP_single_range_output) + if !cpu_extend.has_processor_trace() { + return; + } + } + MSR_IA32_ADDR0_START..MSR_IA32_ADDR3_END => { + // TODO: 判断msr_index - MSR_IA32_RTIT_ADDR0_A >= intel_pt_validate_hw_cap(PT_CAP_num_address_ranges) * 2) + if !cpu_extend.has_processor_trace() { + return; + } + } + IA32_PMC0..IA32_PMC7 => { + // TODO: 判断msr是否符合配置 + } + IA32_PERFEVTSEL0..IA32_PERFEVTSEL7 => { + // TODO: 判断msr是否符合配置 + } + MSR_PERF_FIXED_CTR0..MSR_PERF_FIXED_CTR2 => { + // TODO: 判断msr是否符合配置 + } + MSR_IA32_TSX_CTRL => { + // TODO: !(kvm_get_arch_capabilities() & ARCH_CAP_TSX_CTRL_MSR) + // 这个寄存器目前不支持,现在先return + // return; + } + _ => {} + } + + self.msrs_to_save.push(msr); + } + + fn kvm_prove_feature_msr(&mut self, index: u32) { + let mut msr = KvmMsrEntry { + index, + reserved: Default::default(), + data: Default::default(), + }; + + if self.get_msr_feature(&mut msr) { + return; + } + + self.msr_based_features.push(index); + } + + fn get_msr_feature(&self, msr: &mut KvmMsrEntry) -> bool { + match msr.index { + 0x10a => { + // MSR_IA32_ARCH_CAPABILITIES, + msr.data = self.get_arch_capabilities(); + } + IA32_PERF_CAPABILITIES => { + msr.data = self.kvm_caps.supported_perf_cap; + } + IA32_BIOS_SIGN_ID => { + // MSR_IA32_UCODE_REV + msr.data = unsafe { rdmsr(msr.index) }; + } + _ => { + return x86_kvm_ops().get_msr_feature(msr); + } + } + + return true; + } + + fn get_arch_capabilities(&self) -> u64 { + let cpuid = CpuId::new(); + let extend_feat = cpuid.get_extended_feature_info().unwrap(); + + let mut data = ArchCapabilities::from_bits_truncate(self.host_arch_capabilities) + & ArchCapabilities::KVM_SUPPORTED_ARCH_CAP; + data.insert(ArchCapabilities::ARCH_CAP_PSCHANGE_MC_NO); + + if *L1TF_VMX_MITIGATION.read() != VmxL1dFlushState::FlushNever { + data.insert(ArchCapabilities::ARCH_CAP_SKIP_VMENTRY_L1DFLUSH); + } + + // fixme:这里是直接赋值,这里应该是需要判断cpu是否存在某些bug + + data.insert( + ArchCapabilities::ARCH_CAP_RDCL_NO + | ArchCapabilities::ARCH_CAP_SSB_NO + | ArchCapabilities::ARCH_CAP_MDS_NO + | ArchCapabilities::ARCH_CAP_GDS_NO, + ); + + return data.bits(); + } + + pub fn add_user_return_msr(&mut self, msr: u32) { + assert!(self.kvm_uret_msrs_list.len() < Self::KVM_MAX_NR_USER_RETURN_MSRS); + self.kvm_uret_msrs_list.push(msr) + } + + fn kvm_timer_init(&mut self) -> Result<(), SystemError> { + let cpuid = CpuId::new(); + let cpu_feature = cpuid.get_feature_info().ok_or(SystemError::ENOSYS)?; + if cpu_feature.has_tsc() { + self.max_tsc_khz = TSCManager::tsc_khz(); + } + + // TODO:此处未完成 Ok(()) } } @@ -78,8 +509,76 @@ impl KvmArchManager { /// ### Kvm的功能特性 #[derive(Debug)] pub struct KvmCapabilities { + /// 是否支持控制客户机的 TSC(时间戳计数器)速率 has_tsc_control: bool, + /// 客户机可以使用的 TSC 的最大速率,以khz为单位 max_guest_tsc_khz: u32, + /// TSC 缩放比例的小数部分的位数 tsc_scaling_ratio_frac_bits: u8, - + /// TSC 缩放比例的最大允许值 + max_tsc_scaling_ratio: u64, + /// 默认的 TSC 缩放比例,其值为 1ull << tsc_scaling_ratio_frac_bits + default_tsc_scaling_ratio: u64, + /// 是否支持总线锁定的退出 + has_bus_lock_exit: bool, + /// 是否支持 VM 退出通知 + has_notify_vmexit: bool, + /// 支持的 MCE(机器检查异常)功能的位掩码 + supported_mce_cap: McgCap, + /// 支持的 XCR0 寄存器的位掩码 + supported_xcr0: Xcr0, + /// 支持的 XSS(XSAVE Extended State)寄存器的位掩码 + supported_xss: u64, + /// 支持的性能监控功能的位掩码 + supported_perf_cap: u64, +} + +impl Default for KvmCapabilities { + fn default() -> Self { + Self { + has_tsc_control: Default::default(), + max_guest_tsc_khz: Default::default(), + tsc_scaling_ratio_frac_bits: Default::default(), + max_tsc_scaling_ratio: Default::default(), + default_tsc_scaling_ratio: Default::default(), + has_bus_lock_exit: Default::default(), + has_notify_vmexit: Default::default(), + supported_mce_cap: McgCap::MCG_CTL_P | McgCap::MCG_SER_P, + supported_xcr0: Xcr0::empty(), + supported_xss: Default::default(), + supported_perf_cap: Default::default(), + } + } +} + +bitflags! { + pub struct McgCap: u64 { + const MCG_BANKCNT_MASK = 0xff; /* Number of Banks */ + const MCG_CTL_P = 1 << 8; /* MCG_CTL register available */ + const MCG_EXT_P = 1 << 9; /* Extended registers available */ + const MCG_CMCI_P = 1 << 10; /* CMCI supported */ + const MCG_EXT_CNT_MASK = 0xff0000; /* Number of Extended registers */ + const MCG_EXT_CNT_SHIFT = 16; + const MCG_SER_P = 1 << 24; /* MCA recovery/new status bits */ + const MCG_ELOG_P = 1 << 26; /* Extended error log supported */ + const MCG_LMCE_P = 1 << 27; /* Local machine check supported */ + } +} + +static mut USER_RETURN_MSRS: Option> = None; + +fn user_return_msrs() -> &'static PerCpuVar { + unsafe { USER_RETURN_MSRS.as_ref().unwrap() } +} + +#[derive(Debug, Default, Clone)] +struct KvmUserReturnMsrs { + pub registered: bool, + pub values: [KvmUserReturnMsrsValues; KvmArchManager::KVM_MAX_NR_USER_RETURN_MSRS], +} + +#[derive(Debug, Default, Clone)] +struct KvmUserReturnMsrsValues { + pub host: u64, + pub curr: u64, } diff --git a/kernel/src/arch/x86_64/vm/vmx/capabilities.rs b/kernel/src/arch/x86_64/vm/vmx/capabilities.rs new file mode 100644 index 000000000..2cc81520d --- /dev/null +++ b/kernel/src/arch/x86_64/vm/vmx/capabilities.rs @@ -0,0 +1,509 @@ +use x86::{ + msr::{ + IA32_VMX_BASIC, IA32_VMX_CR0_FIXED0, IA32_VMX_CR0_FIXED1, IA32_VMX_CR4_FIXED0, + IA32_VMX_CR4_FIXED1, IA32_VMX_ENTRY_CTLS, IA32_VMX_EPT_VPID_CAP, IA32_VMX_EXIT_CTLS, + IA32_VMX_MISC, IA32_VMX_PINBASED_CTLS, IA32_VMX_PROCBASED_CTLS, IA32_VMX_PROCBASED_CTLS2, + IA32_VMX_TRUE_ENTRY_CTLS, IA32_VMX_TRUE_EXIT_CTLS, IA32_VMX_TRUE_PINBASED_CTLS, + IA32_VMX_TRUE_PROCBASED_CTLS, IA32_VMX_VMCS_ENUM, IA32_VMX_VMFUNC, + }, + vmx::vmcs::control::{ + EntryControls, ExitControls, PinbasedControls, PrimaryControls, SecondaryControls, + }, +}; + +use crate::arch::vm::{ + CPU_BASED_ALWAYSON_WITHOUT_TRUE_MSR, PIN_BASED_ALWAYSON_WITHOUT_TRUE_MSR, + VM_ENTRY_ALWAYSON_WITHOUT_TRUE_MSR, VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR, +}; + +use super::{vmcs::feat::VmxFeat, Vmx}; + +#[derive(Debug)] +pub struct VmcsConfig { + pub size: u32, + pub basic_cap: u32, + pub revision_id: u32, + pub pin_based_exec_ctrl: PinbasedControls, + pub cpu_based_exec_ctrl: PrimaryControls, + pub cpu_based_2nd_exec_ctrl: SecondaryControls, + pub cpu_based_3rd_exec_ctrl: u32, + pub vmexit_ctrl: ExitControls, + pub vmentry_ctrl: EntryControls, + pub misc: u64, + pub nested: NestedVmxMsrs, +} + +impl Default for VmcsConfig { + fn default() -> Self { + Self { + size: Default::default(), + basic_cap: Default::default(), + revision_id: Default::default(), + pin_based_exec_ctrl: PinbasedControls::empty(), + cpu_based_exec_ctrl: PrimaryControls::empty(), + cpu_based_2nd_exec_ctrl: SecondaryControls::empty(), + cpu_based_3rd_exec_ctrl: Default::default(), + vmexit_ctrl: ExitControls::empty(), + vmentry_ctrl: EntryControls::empty(), + misc: Default::default(), + nested: Default::default(), + } + } +} + +#[derive(Debug, Default)] +pub struct NestedVmxMsrs { + /// 主处理器基于控制,分为低32位和高32位 + pub procbased_ctls_low: u32, + /// 主处理器基于控制,分为低32位和高32位 + pub procbased_ctls_high: u32, + /// 次要处理器控制,分为低32位和高32位 + pub secondary_ctls_low: u32, + /// 次要处理器控制,分为低32位和高32位 + pub secondary_ctls_high: u32, + /// VMX 的针脚基于控制,分为低32位和高32位 + pub pinbased_ctls_low: u32, + /// VMX 的针脚基于控制,分为低32位和高32位 + pub pinbased_ctls_high: u32, + /// VM退出控制,分为低32位和高32位 + pub exit_ctls_low: u32, + /// VM退出控制,分为低32位和高32位 + pub exit_ctls_high: u32, + /// VM进入控制,分为低32位和高32位 + pub entry_ctls_low: u32, + /// VM进入控制,分为低32位和高32位 + pub entry_ctls_high: u32, + /// VMX 的其他杂项控制,分为低32位和高32位 + pub misc_low: u32, + /// VMX 的其他杂项控制,分为低32位和高32位 + pub misc_high: u32, + /// 扩展页表(EPT)的能力信息 + pub ept_caps: u32, + /// 虚拟处理器标识(VPID)的能力信息 + pub vpid_caps: u32, + /// 基本能力 + pub basic: u64, + /// VMX 控制的CR0寄存器的固定位 + pub cr0_fixed0: u64, + /// VMX 控制的CR0寄存器的固定位 + pub cr0_fixed1: u64, + /// VMX 控制的CR4寄存器的固定位 + pub cr4_fixed0: u64, + /// VMX 控制的CR4寄存器的固定位 + pub cr4_fixed1: u64, + /// VMX 控制的VMCS寄存器的编码 + pub vmcs_enum: u64, + /// VM功能控制 + pub vmfunc_controls: u64, +} + +impl NestedVmxMsrs { + pub fn control_msr(low: u32, high: u32) -> u64 { + (high as u64) << 32 | low as u64 + } + + pub fn get_vmx_msr(&self, msr_index: u32) -> Option { + match msr_index { + IA32_VMX_BASIC => { + return Some(self.basic); + } + IA32_VMX_TRUE_PINBASED_CTLS | IA32_VMX_PINBASED_CTLS => { + let mut data = + NestedVmxMsrs::control_msr(self.pinbased_ctls_low, self.pinbased_ctls_high); + if msr_index == IA32_VMX_PINBASED_CTLS { + data |= PIN_BASED_ALWAYSON_WITHOUT_TRUE_MSR; + } + return Some(data); + } + IA32_VMX_TRUE_PROCBASED_CTLS | IA32_VMX_PROCBASED_CTLS => { + let mut data = + NestedVmxMsrs::control_msr(self.procbased_ctls_low, self.procbased_ctls_high); + if msr_index == IA32_VMX_PROCBASED_CTLS { + data |= CPU_BASED_ALWAYSON_WITHOUT_TRUE_MSR; + } + return Some(data); + } + IA32_VMX_TRUE_EXIT_CTLS | IA32_VMX_EXIT_CTLS => { + let mut data = NestedVmxMsrs::control_msr(self.exit_ctls_low, self.exit_ctls_high); + if msr_index == IA32_VMX_EXIT_CTLS { + data |= VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR; + } + return Some(data); + } + IA32_VMX_TRUE_ENTRY_CTLS | IA32_VMX_ENTRY_CTLS => { + let mut data = + NestedVmxMsrs::control_msr(self.entry_ctls_low, self.entry_ctls_high); + if msr_index == IA32_VMX_ENTRY_CTLS { + data |= VM_ENTRY_ALWAYSON_WITHOUT_TRUE_MSR; + } + return Some(data); + } + IA32_VMX_MISC => { + return Some(NestedVmxMsrs::control_msr(self.misc_low, self.misc_high)); + } + IA32_VMX_CR0_FIXED0 => { + return Some(self.cr0_fixed0); + } + IA32_VMX_CR0_FIXED1 => { + return Some(self.cr0_fixed1); + } + IA32_VMX_CR4_FIXED0 => { + return Some(self.cr4_fixed0); + } + IA32_VMX_CR4_FIXED1 => { + return Some(self.cr4_fixed1); + } + IA32_VMX_VMCS_ENUM => { + return Some(self.vmcs_enum); + } + IA32_VMX_PROCBASED_CTLS2 => { + return Some(NestedVmxMsrs::control_msr( + self.secondary_ctls_low, + self.secondary_ctls_high, + )); + } + IA32_VMX_EPT_VPID_CAP => { + return Some(self.ept_caps as u64 | ((self.vpid_caps as u64) << 32)); + } + IA32_VMX_VMFUNC => { + return Some(self.vmfunc_controls); + } + _ => { + return None; + } + } + } +} + +#[derive(Debug, Default)] +pub struct VmxCapability { + pub ept: EptFlag, + pub vpid: VpidFlag, +} + +#[derive(Debug)] +pub enum ProcessorTraceMode { + System, + HostGuest, +} + +bitflags! { + #[derive(Default)] + pub struct VpidFlag: u32 { + /// 表示处理器支持 INVVPID 指令 + const INVVPID = 1 << 0; /* (32 - 32) */ + /// 表示 VPID 支持以单独地址方式进行范围 + const EXTENT_INDIVIDUAL_ADDR = 1 << 8; /* (40 - 32) */ + /// 表示 VPID 支持以单个上下文方式进行范围 + const EXTENT_SINGLE_CONTEXT = 1 << 9; /* (41 - 32) */ + /// 表示 VPID 支持以全局上下文方式进行范围 + const EXTENT_GLOBAL_CONTEXT = 1 << 10; /* (42 - 32) */ + /// 表示 VPID 支持以单个非全局方式进行范围 + const EXTENT_SINGLE_NON_GLOBAL = 1 << 11; /* (43 - 32) */ + } + + #[derive(Default)] + pub struct EptFlag: u32 { + /// EPT 条目是否允许执行 + const EPT_EXECUTE_ONLY = 1; + /// 处理器是否支持 4 级页表 + const EPT_PAGE_WALK_4 = 1 << 6; + /// 处理器是否支持 5 级页表 + const EPT_PAGE_WALK_5 = 1 << 7; + /// EPT 表的内存类型是否为不可缓存(uncached) + const EPTP_UC = 1 << 8; + /// EPT 表的内存类型是否为写回(write-back) + const EPTP_WB = 1 << 14; + /// 处理器是否支持 2MB 大页 + const EPT_2MB_PAGE = 1 << 16; + /// 处理器是否支持 1GB 大页 + const EPT_1GB_PAGE = 1 << 17; + /// 处理器是否支持 INV-EPT 指令,用于刷新 EPT TLB + const EPT_INVEPT = 1 << 20; + /// EPT 表是否支持访问位(Access-Dirty) + const EPT_AD = 1 << 21; + /// 处理器是否支持上下文扩展 + const EPT_EXTENT_CONTEXT = 1 << 25; + /// 处理器是否支持全局扩展 + const EPT_EXTENT_GLOBAL = 1 << 26; + } +} + +impl VmxCapability { + pub fn set_val_from_msr_val(&mut self, val: u64) { + self.ept = EptFlag::from_bits_truncate(val as u32); + self.vpid = VpidFlag::from_bits_truncate((val >> 32) as u32); + } +} + +impl Vmx { + /// 检查处理器是否支持VMX基本控制结构的输入输出功能 + #[inline] + pub fn has_basic_inout(&self) -> bool { + return ((self.vmcs_config.basic_cap as u64) << 32) & VmxFeat::VMX_BASIC_INOUT != 0; + } + + /// 检查处理器是否支持虚拟的非屏蔽中断(NMI) + #[inline] + pub fn has_virtual_nmis(&self) -> bool { + return self + .vmcs_config + .pin_based_exec_ctrl + .contains(PinbasedControls::VIRTUAL_NMIS) + && self + .vmcs_config + .cpu_based_exec_ctrl + .contains(PrimaryControls::NMI_WINDOW_EXITING); + } + + /// 检查处理器是否支持VMX的抢占计时器功能 + #[inline] + pub fn has_preemption_timer(&self) -> bool { + return self + .vmcs_config + .pin_based_exec_ctrl + .contains(PinbasedControls::VMX_PREEMPTION_TIMER); + } + + /// 检查处理器是否支持VMX的posted interrupt功能 + #[inline] + pub fn has_posted_intr(&self) -> bool { + return self + .vmcs_config + .pin_based_exec_ctrl + .contains(PinbasedControls::POSTED_INTERRUPTS); + } + + /// 是否支持加载IA32_EFER寄存器 + #[inline] + pub fn has_load_ia32_efer(&self) -> bool { + return self + .vmcs_config + .vmentry_ctrl + .contains(EntryControls::LOAD_IA32_EFER); + } + + /// 是否支持加载IA32_PERF_GLOBAL_CTRL寄存器 + #[inline] + pub fn has_load_perf_global_ctrl(&self) -> bool { + return self + .vmcs_config + .vmentry_ctrl + .contains(EntryControls::LOAD_IA32_PERF_GLOBAL_CTRL); + } + + /// 是否支持加载边界检查配置寄存器(MPX) + #[inline] + pub fn has_mpx(&self) -> bool { + return self + .vmcs_config + .vmentry_ctrl + .contains(EntryControls::LOAD_IA32_BNDCFGS); + } + + /// 是否支持虚拟处理器的任务优先级(TPR)影子 + #[inline] + pub fn has_tpr_shadow(&self) -> bool { + return self + .vmcs_config + .cpu_based_exec_ctrl + .contains(PrimaryControls::USE_TPR_SHADOW); + } + + /// 检查处理器是否支持 VMX中的 VPID(Virtual Processor ID)功能 + /// + /// VPID 允许虚拟机监视器为每个虚拟处理器分配唯一的标识符,从而使得在不同的虚拟机之间进行快速的上下文切换和恢复成为可能。 + /// + /// 通过使用 VPID,VMM 可以更快速地识别和恢复之前保存的虚拟处理器的状态,从而提高了虚拟化性能和效率。 + #[inline] + pub fn has_vpid(&self) -> bool { + return self + .vmcs_config + .cpu_based_2nd_exec_ctrl + .contains(SecondaryControls::ENABLE_VPID); + } + + /// 是否支持invvpid + /// + /// INVVPID 指令用于通知处理器无效化指定虚拟处理器标识符(VPID)相关的 TLB(Translation Lookaside Buffer)条目 + #[inline] + pub fn has_invvpid(&self) -> bool { + return self.vmx_cap.vpid.contains(VpidFlag::INVVPID); + } + + /// VPID 是否支持以单独地址方式进行范围 + #[inline] + pub fn has_invvpid_individual_addr(&self) -> bool { + return self.vmx_cap.vpid.contains(VpidFlag::EXTENT_INDIVIDUAL_ADDR); + } + + /// VPID 是否支持以单个上下文方式进行范围 + #[inline] + pub fn has_invvpid_single(&self) -> bool { + return self.vmx_cap.vpid.contains(VpidFlag::EXTENT_SINGLE_CONTEXT); + } + + /// VPID 是否支持以全局上下文方式进行范围 + #[inline] + pub fn has_invvpid_global(&self) -> bool { + return self.vmx_cap.vpid.contains(VpidFlag::EXTENT_GLOBAL_CONTEXT); + } + + /// 是否启用EPT(Extended Page Tables) + /// + /// EPT:EPT 是一种硬件虚拟化技术,允许虚拟机管理程序(例如 Hypervisor) 控制客户操作系统中虚拟地址和物理地址之间的映射。 + /// + /// 通过启用 EPT,处理器可以将虚拟地址直接映射到物理地址,从而提高虚拟机的性能和安全性。 + #[inline] + pub fn has_ept(&self) -> bool { + return self + .vmcs_config + .cpu_based_2nd_exec_ctrl + .contains(SecondaryControls::ENABLE_EPT); + } + + /// 是否支持4级页表 + #[inline] + pub fn has_ept_4levels(&self) -> bool { + return self.vmx_cap.ept.contains(EptFlag::EPT_PAGE_WALK_4); + } + + /// 判断mt(Memory type)是否为write back + #[inline] + pub fn has_ept_mt_wb(&self) -> bool { + return self.vmx_cap.ept.contains(EptFlag::EPTP_WB); + } + + /// EPT是否支持全局拓展 + #[inline] + pub fn has_invept_global(&self) -> bool { + return self.vmx_cap.ept.contains(EptFlag::EPT_EXTENT_GLOBAL); + } + + /// EPT是否支持访问位 + #[inline] + pub fn has_ept_ad_bits(&self) -> bool { + return self.vmx_cap.ept.contains(EptFlag::EPT_AD); + } + + /// 是否支持 VMX 中的无限制客户(unrestricted guest)功能 + /// + /// 无限制客户功能允许客户操作系统在未受到主机操作系统干预的情况下运行 + #[inline] + pub fn has_unrestricted_guest(&self) -> bool { + return self + .vmcs_config + .cpu_based_2nd_exec_ctrl + .contains(SecondaryControls::UNRESTRICTED_GUEST); + } + + /// 是否支持 VMX 中的 FlexPriority 功能 + /// + /// FlexPriority 是一种功能,可以在 TPR shadow 和虚拟化 APIC 访问同时可用时启用。 + /// + /// TPR shadow 允许虚拟机管理程序(VMM)跟踪虚拟机中处理器的 TPR 值,并在需要时拦截和修改。 + /// + /// 虚拟化 APIC 访问允许 VMM 控制虚拟机中的 APIC 寄存器访问。 + #[inline] + pub fn has_flexproirity(&self) -> bool { + return self.has_tpr_shadow() && self.has_virtualize_apic_accesses(); + } + + /// 是否支持 VMX 中的虚拟化 APIC 访问功能。 + /// + /// 当启用此功能时,虚拟机管理程序(VMM)可以控制虚拟机中的 APIC 寄存器访问。 + #[inline] + pub fn has_virtualize_apic_accesses(&self) -> bool { + return self + .vmcs_config + .cpu_based_2nd_exec_ctrl + .contains(SecondaryControls::VIRTUALIZE_APIC); + } + + /// 是否支持 VMX 中的 ENCLS 指令导致的 VM 退出功能 + #[inline] + pub fn has_encls_vmexit(&self) -> bool { + return self + .vmcs_config + .cpu_based_2nd_exec_ctrl + .contains(SecondaryControls::ENCLS_EXITING); + } + + /// 是否支持 VMX 中的 PLE (Pause Loop Exiting) 功能。 + #[inline] + pub fn has_ple(&self) -> bool { + return self + .vmcs_config + .cpu_based_2nd_exec_ctrl + .contains(SecondaryControls::PAUSE_LOOP_EXITING); + } + + /// 是否支持 VMX 中的 APICv 功能 + #[inline] + pub fn has_apicv(&self) -> bool { + return self.has_apic_register_virt() + && self.has_posted_intr() + && self.has_virtual_intr_delivery(); + } + + /// 是否支持虚拟化的 APIC 寄存器功能 + #[inline] + pub fn has_apic_register_virt(&self) -> bool { + return self + .vmcs_config + .cpu_based_2nd_exec_ctrl + .contains(SecondaryControls::VIRTUALIZE_APIC_REGISTER); + } + + /// 是否支持虚拟化的中断传递功能 + #[inline] + pub fn has_virtual_intr_delivery(&self) -> bool { + return self + .vmcs_config + .cpu_based_2nd_exec_ctrl + .contains(SecondaryControls::VIRTUAL_INTERRUPT_DELIVERY); + } + + /// 是否支持虚拟化的中断注入(Inter-Processor Interrupt Virtualization,IPIV) + #[inline] + pub fn has_ipiv(&self) -> bool { + return false; + } + + /// 是否支持虚拟化的 TSC 缩放功能 + #[inline] + pub fn has_tsc_scaling(&self) -> bool { + return self + .vmcs_config + .cpu_based_2nd_exec_ctrl + .contains(SecondaryControls::USE_TSC_SCALING); + } + + /// 是否支持虚拟化的页修改日志(Page Modification Logging) + #[inline] + pub fn has_pml(&self) -> bool { + return self + .vmcs_config + .cpu_based_2nd_exec_ctrl + .contains(SecondaryControls::ENABLE_PML); + } + + /// 检查 CPU 是否支持使用 MSR 位图来控制 VMX + #[inline] + pub fn has_msr_bitmap(&self) -> bool { + return self + .vmcs_config + .cpu_based_exec_ctrl + .contains(PrimaryControls::USE_MSR_BITMAPS); + } + + #[inline] + pub fn has_bus_lock_detection(&self) -> bool { + false + } + + #[inline] + pub fn has_notify_vmexit(&self) -> bool { + false + } +} diff --git a/kernel/src/arch/x86_64/vm/vmx/mod.rs b/kernel/src/arch/x86_64/vm/vmx/mod.rs index e9921ec71..b6c4b4349 100644 --- a/kernel/src/arch/x86_64/vm/vmx/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/mod.rs @@ -1,10 +1,614 @@ +use core::{ + mem::MaybeUninit, + sync::atomic::{AtomicBool, Ordering}, +}; + +use crate::{ + arch::{ + vm::{ + asm::KvmX86Asm, + kvm_host::{vcpu::VirCpuRequest, X86KvmArch}, + vmx::vmcs::vmx_area, + }, + CurrentIrqArch, VirtCpuArch, + }, + exception::InterruptArch, + kdebug, + libs::{once::Once, spinlock::SpinLock}, + mm::{ + percpu::{PerCpu, PerCpuVar}, + virt_2_phys, PhysAddr, + }, + smp::{core::smp_get_processor_id, cpu::ProcessorId}, + virt::vm::{kvm_dev::kvm_init, kvm_host::vcpu::VirtCpu}, +}; +use alloc::{alloc::Global, boxed::Box, collections::LinkedList, sync::Arc, vec::Vec}; +use bitmap::{traits::BitMapOps, AllocBitmap, StaticBitmap}; use raw_cpuid::CpuId; +use system_error::SystemError; +use x86::{ + controlregs::Xcr0, + msr::{ + rdmsr, IA32_CSTAR, IA32_EFER, IA32_FMASK, IA32_FS_BASE, IA32_GS_BASE, IA32_KERNEL_GSBASE, + IA32_LSTAR, IA32_SMBASE, IA32_STAR, IA32_SYSENTER_CS, IA32_SYSENTER_EIP, IA32_SYSENTER_ESP, + IA32_TIME_STAMP_COUNTER, IA32_TSC_AUX, IA32_VMX_BASIC, IA32_VMX_CR0_FIXED0, + IA32_VMX_CR0_FIXED1, IA32_VMX_CR4_FIXED0, IA32_VMX_CR4_FIXED1, IA32_VMX_ENTRY_CTLS, + IA32_VMX_EPT_VPID_CAP, IA32_VMX_EXIT_CTLS, IA32_VMX_MISC, IA32_VMX_PINBASED_CTLS, + IA32_VMX_PROCBASED_CTLS, IA32_VMX_PROCBASED_CTLS2, IA32_VMX_TRUE_ENTRY_CTLS, + IA32_VMX_TRUE_EXIT_CTLS, IA32_VMX_TRUE_PINBASED_CTLS, IA32_VMX_TRUE_PROCBASED_CTLS, + IA32_VMX_VMCS_ENUM, IA32_VMX_VMFUNC, MSR_CORE_C1_RESIDENCY, MSR_CORE_C3_RESIDENCY, + MSR_CORE_C6_RESIDENCY, MSR_CORE_C7_RESIDENCY, MSR_IA32_ADDR0_START, MSR_IA32_ADDR3_END, + MSR_IA32_CR3_MATCH, MSR_IA32_RTIT_OUTPUT_BASE, MSR_IA32_RTIT_OUTPUT_MASK_PTRS, + MSR_IA32_RTIT_STATUS, MSR_IA32_TSX_CTRL, MSR_LASTBRANCH_TOS, MSR_LBR_SELECT, + }, + vmx::vmcs::{ + control::{ + EntryControls, ExitControls, PrimaryControls, SecondaryControls, PINBASED_EXEC_CONTROLS, + }, + host, + }, +}; +use x86_64::instructions::tables::sidt; + +use crate::{ + arch::{ + vm::{vmx::vmcs::feat::VmxFeat, x86_kvm_manager_mut, McgCap}, + KvmArch, + }, + kerror, kwarn, + libs::{lazy_init::Lazy, rwlock::RwLock}, + virt::vm::kvm_host::Vm, +}; + +use self::{ + capabilities::{NestedVmxMsrs, ProcessorTraceMode, VmcsConfig, VmxCapability}, + vmcs::{ + current_loaded_vmcs_list_mut, current_vmcs, current_vmcs_mut, LockedLoadedVmcs, + VMControlStructure, VmxMsrBitmapAccess, VmxMsrBitmapAction, PERCPU_LOADED_VMCS_LIST, + PERCPU_VMCS, VMXAREA, + }, +}; + +use super::{ + asm::VmxAsm, + init_kvm_arch, + kvm_host::{KvmFunc, KvmInitFunc, MsrFilterType}, + x86_kvm_manager, KvmArchManager, CPU_BASED_ALWAYSON_WITHOUT_TRUE_MSR, + PIN_BASED_ALWAYSON_WITHOUT_TRUE_MSR, VM_ENTRY_ALWAYSON_WITHOUT_TRUE_MSR, + VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR, +}; + +pub mod capabilities; +pub mod vmcs; +pub struct VmxKvmInitFunc; + +impl VmxKvmInitFunc { + pub fn setup_per_cpu(&self) { + let mut vmcs_areas = Vec::new(); + vmcs_areas.resize(PerCpu::MAX_CPU_NUM as usize, VMControlStructure::new()); + unsafe { VMXAREA = PerCpuVar::new(vmcs_areas) }; + + let mut percpu_current_vmcs = Vec::new(); + percpu_current_vmcs.resize(PerCpu::MAX_CPU_NUM as usize, None); + unsafe { PERCPU_VMCS = PerCpuVar::new(percpu_current_vmcs) } + + let mut percpu_loaded_vmcs_lists = Vec::new(); + percpu_loaded_vmcs_lists.resize(PerCpu::MAX_CPU_NUM as usize, LinkedList::new()); + unsafe { PERCPU_LOADED_VMCS_LIST = PerCpuVar::new(percpu_loaded_vmcs_lists) } + } +} + +impl KvmInitFunc for VmxKvmInitFunc { + #[inline(never)] + fn hardware_setup(&self) -> Result<(), SystemError> { + let idt = sidt(); + let cpuid = CpuId::new(); + let cpu_extend_feature = cpuid + .get_extended_processor_and_feature_identifiers() + .ok_or(SystemError::ENOSYS)?; + + let mut vmx_init: Box = unsafe { + Box::try_new_zeroed_in(Global) + .map_err(|_| SystemError::ENOMEM)? + .assume_init() + }; + vmx_init.host_idt_base = idt.base.as_u64(); + Vmx::set_up_user_return_msrs(); + + Vmx::setup_vmcs_config(&mut vmx_init.vmcs_config, &mut vmx_init.vmx_cap)?; + + let manager = x86_kvm_manager_mut(); + let kvm_cap = &mut manager.kvm_caps; + + if vmx_init.has_mpx() { + kvm_cap.supported_xcr0 &= !(Xcr0::XCR0_BNDREG_STATE | Xcr0::XCR0_BNDCSR_STATE); + } + + // 判断是否启用vpid + if !vmx_init.has_vpid() + || !vmx_init.has_invvpid() + || !vmx_init.has_invvpid_single() + || !vmx_init.has_invvpid_global() + { + vmx_init.enable_vpid = false; + } + + if !vmx_init.has_ept() + || !vmx_init.has_ept_4levels() + || !vmx_init.has_ept_mt_wb() + || !vmx_init.has_invept_global() + { + vmx_init.enable_ept = false; + } + + // 是否启用了 EPT 并且检查 CPU 是否支持 Execute Disable(NX)功能 + // Execute Disable 是一种 CPU 功能,可以防止代码在数据内存区域上执行 + if !vmx_init.enable_ept && !cpu_extend_feature.has_execute_disable() { + kerror!("[KVM] NX (Execute Disable) not supported"); + return Err(SystemError::ENOSYS); + } + + if !vmx_init.has_ept_ad_bits() || !vmx_init.enable_ept { + vmx_init.enable_ept_ad = false; + } + + if !vmx_init.has_unrestricted_guest() || !vmx_init.enable_ept { + vmx_init.enable_unrestricted_guest = false; + } + + if !vmx_init.has_flexproirity() { + vmx_init.enable_flexpriority = false; + } + + if !vmx_init.has_virtual_nmis() { + vmx_init.enable_vnmi = false; + } + + if !vmx_init.has_encls_vmexit() { + vmx_init.enable_sgx = false; + } + + if !vmx_init.enable_flexpriority { + VmxKvmFunc::CONFIG.write().have_set_apic_access_page_addr = false; + } + + if !vmx_init.has_tpr_shadow() { + VmxKvmFunc::CONFIG.write().have_update_cr8_intercept = false; + } + + // TODO:https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/vmx/vmx.c#8501 - 8513 + + if !vmx_init.has_ple() { + vmx_init.ple_gap = 0; + vmx_init.ple_window = 0; + vmx_init.ple_window_grow = 0; + vmx_init.ple_window_max = 0; + vmx_init.ple_window_shrink = 0; + } + + if !vmx_init.has_apicv() { + vmx_init.enable_apicv = false; + } + + if !vmx_init.enable_apicv { + // TODO: 设置sync_pir_to_irr + } + + if !vmx_init.enable_apicv || !vmx_init.has_ipiv() { + vmx_init.enable_ipiv = false; + } + + if vmx_init.has_tsc_scaling() { + kvm_cap.has_tsc_control = true; + } + + kvm_cap.max_tsc_scaling_ratio = 0xffffffffffffffff; + kvm_cap.tsc_scaling_ratio_frac_bits = 48; + kvm_cap.has_bus_lock_exit = vmx_init.has_bus_lock_detection(); + kvm_cap.has_notify_vmexit = vmx_init.has_notify_vmexit(); + + vmx_init.vpid_bitmap.lock().set_all(false); + + if vmx_init.enable_ept { + // TODO: mmu_set_ept_masks + kwarn!("mmu_set_ept_masks TODO!"); + } + + kwarn!("vmx_setup_me_spte_mask TODO!"); + + kwarn!("kvm_configure_mmu TODO!"); + + if !vmx_init.enable_ept || !vmx_init.enable_ept_ad || !vmx_init.has_pml() { + vmx_init.enable_pml = false; + } + + if !vmx_init.enable_pml { + // TODO: Set cpu dirty log size + } + + if !vmx_init.has_preemption_timer() { + vmx_init.enable_preemption_timer = false; + } + + if vmx_init.enable_preemption_timer { + // TODO + } + + if !vmx_init.enable_preemption_timer { + // TODO + } + + kvm_cap + .supported_mce_cap + .insert(McgCap::MCG_LMCE_P | McgCap::MCG_CMCI_P); + + // TODO: pt_mode + + // TODO: setup_default_sgx_lepubkeyhash + + // TODO: nested + + // TODO: vmx_set_cpu_caps + init_vmx(vmx_init); + self.setup_per_cpu(); + + Ok(()) + } + + fn handle_intel_pt_intr(&self) -> u32 { + todo!() + } + + fn runtime_funcs(&self) -> &'static dyn super::kvm_host::KvmFunc { + &VmxKvmFunc + } +} + +#[derive(Debug)] +pub struct VmxKvmFunc; + +pub struct VmxKvmFuncConfig { + pub have_set_apic_access_page_addr: bool, + pub have_update_cr8_intercept: bool, +} + +impl VmxKvmFunc { + pub const CONFIG: RwLock = RwLock::new(VmxKvmFuncConfig { + have_set_apic_access_page_addr: true, + have_update_cr8_intercept: true, + }); + + pub fn vcpu_load_vmcs( + vcpu: &mut VirtCpu, + cpu: ProcessorId, + _buddy: Option>, + ) { + let vmx = vcpu.vmx(); + let already_loaded = vmx.loaded_vmcs.lock().cpu == cpu; + + if !already_loaded { + Self::loaded_vmcs_clear(&vmx.loaded_vmcs); + let _irq_guard = unsafe { CurrentIrqArch::save_and_disable_irq() }; + + current_loaded_vmcs_list_mut().push_back(vmx.loaded_vmcs.clone()); + } + + if let Some(prev) = current_vmcs() { + let vmcs = vmx.loaded_vmcs.lock().vmcs.clone(); + if !Arc::ptr_eq(&vmcs, prev) { + VmxAsm::vmcs_load(vmcs.phys_addr()); + *current_vmcs_mut() = Some(vmcs); + + // TODO:buddy barrier? + } + } else { + let vmcs = vmx.loaded_vmcs.lock().vmcs.clone(); + VmxAsm::vmcs_load(vmcs.phys_addr()); + *current_vmcs_mut() = Some(vmcs); + + // TODO:buddy barrier? + } + + if !already_loaded { + let mut pseudo_descriptpr: x86::dtables::DescriptorTablePointer = + Default::default(); + unsafe { + x86::dtables::sgdt(&mut pseudo_descriptpr); + }; + + vmx.loaded_vmcs.lock().cpu = cpu; + let id = vmx.loaded_vmcs.lock().vmcs.lock().revision_id(); + kdebug!("revision_id {id}"); + vcpu.request(VirCpuRequest::KVM_REQ_TLB_FLUSH); + + VmxAsm::vmx_vmwrite( + host::TR_BASE, + KvmX86Asm::get_segment_base( + pseudo_descriptpr.base, + pseudo_descriptpr.limit, + unsafe { x86::task::tr().bits() }, + ), + ); + + VmxAsm::vmx_vmwrite(host::GDTR_BASE, pseudo_descriptpr.base as usize as u64); + + VmxAsm::vmx_vmwrite(host::IA32_SYSENTER_ESP, unsafe { rdmsr(IA32_SYSENTER_ESP) }); + } + } + + pub fn loaded_vmcs_clear(loaded_vmcs: &Arc) { + let mut guard = loaded_vmcs.lock(); + if guard.cpu == ProcessorId::INVALID { + return; + } + + if guard.cpu == smp_get_processor_id() { + if let Some(vmcs) = current_vmcs() { + if Arc::ptr_eq(vmcs, &guard.vmcs) { + *current_vmcs_mut() = None; + } + } + + VmxAsm::vmclear(guard.vmcs.phys_addr()); + + if let Some(shadow) = &guard.shadow_vmcs { + if guard.launched { + VmxAsm::vmclear(shadow.phys_addr()); + } + } + + let _ = current_loaded_vmcs_list_mut().extract_if(|x| Arc::ptr_eq(&x, loaded_vmcs)); + + guard.cpu = ProcessorId::INVALID; + guard.launched = false; + } else { + // 交由对应cpu处理 + todo!() + } + } +} + +impl KvmFunc for VmxKvmFunc { + fn name(&self) -> &'static str { + "VMX" + } + + fn hardware_enable(&self) -> Result<(), SystemError> { + let vmcs = vmx_area().get().as_ref(); + + kdebug!("vmcs idx {}", vmcs.abort); + + let phys_addr = virt_2_phys(vmcs as *const _ as usize); + + // TODO: intel_pt_handle_vmx(1); + + VmxAsm::kvm_cpu_vmxon(PhysAddr::new(phys_addr))?; + + Ok(()) + } + + fn vm_init(&self) -> X86KvmArch { + let vmx_init = vmx_info(); + + let mut arch = X86KvmArch::default(); + if vmx_init.ple_gap == 0 { + arch.pause_in_guest = true; + } + + return arch; + } + + fn vcpu_create(&self, vcpu: &mut VirtCpu, vm: &Vm) { + VmxVCpuPriv::init(vcpu, vm); + } + + fn vcpu_load(&self, vcpu: &mut VirtCpu, cpu: crate::smp::cpu::ProcessorId) { + Self::vcpu_load_vmcs(vcpu, cpu, None); + // TODO: vmx_vcpu_pi_load + } + + fn cache_reg(&self, vcpu: &VirtCpuArch, reg: super::kvm_host::KvmReg) { + todo!() + } + + fn apicv_pre_state_restore(&self, vcpu: &mut VirtCpu) { + // https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/vmx/vmx.c#6924 + // TODO: pi + // todo!() + } + + fn set_msr(&self, vcpu: &mut VirtCpuArch, msr: super::asm::MsrData) { + todo!() + } + + fn vcpu_reset(&self, vcpu: &mut VirtCpu, init_event: bool) { + todo!() + } + + fn set_rflags(&self, vcpu: &mut VirtCpu, rflags: x86::bits64::rflags::RFlags) { + todo!() + } + + fn set_cr0(&self, vcpu: &mut VirtCpu, cr0: x86::controlregs::Cr0) { + todo!() + } + + fn set_cr4(&self, vcpu: &mut VirtCpu, cr4: x86::controlregs::Cr4) { + todo!() + } + + fn set_efer(&self, vcpu: &mut VirtCpu, efer: x86_64::registers::control::EferFlags) { + todo!() + } + + fn update_exception_bitmap(&self, vcpu: &mut VirtCpu) { + todo!() + } + + fn has_emulated_msr(&self, msr: u32) -> bool { + match msr { + IA32_SMBASE => { + return vmx_info().enable_unrestricted_guest + || vmx_info().emulate_invalid_guest_state; + } + + IA32_VMX_BASIC..=IA32_VMX_VMFUNC => { + return vmx_info().nested; + } + + 0xc001011f | 0xc0000104 => { + // MSR_AMD64_VIRT_SPEC_CTRL | MSR_AMD64_TSC_RATIO + return false; + } + + _ => { + return true; + } + } + } + + fn get_msr_feature(&self, msr: &mut super::asm::KvmMsrEntry) -> bool { + match msr.index { + IA32_VMX_BASIC..=IA32_VMX_VMFUNC => { + if !vmx_info().nested { + return false; + } + + match vmx_info().vmcs_config.nested.get_vmx_msr(msr.index) { + Some(data) => { + msr.data = data; + return true; + } + None => { + return false; + } + } + } + _ => { + return false; + } + } + } + + fn get_rflags(&self, vcpu: &VirtCpu) -> x86::bits64::rflags::RFlags { + todo!() + } +} + +static mut VMX: Option = None; + +#[inline] +pub fn vmx_info() -> &'static Vmx { + unsafe { VMX.as_ref().unwrap() } +} -pub struct Vmx; +#[inline(never)] +pub fn init_vmx(vmx: Box) { + static INIT_ONCE: AtomicBool = AtomicBool::new(false); + if INIT_ONCE + .compare_exchange(false, true, Ordering::SeqCst, Ordering::SeqCst) + .is_ok() + { + unsafe { VMX = Some(*vmx) }; + } else { + panic!("init_vmx can only be called once"); + } +} + +#[derive(Debug)] +pub struct Vmx { + pub host_idt_base: u64, + pub vmcs_config: VmcsConfig, + pub vmx_cap: VmxCapability, + pub vpid_bitmap: SpinLock>, + pub enable_vpid: bool, + pub enable_ept: bool, + pub enable_ept_ad: bool, + pub enable_unrestricted_guest: bool, + pub emulate_invalid_guest_state: bool, + pub enable_flexpriority: bool, + pub enable_vnmi: bool, + pub enable_sgx: bool, + pub enable_apicv: bool, + pub enable_ipiv: bool, + pub enable_pml: bool, + pub enable_preemption_timer: bool, + + pub nested: bool, + + pub ple_gap: u32, + pub ple_window: u32, + pub ple_window_grow: u32, + pub ple_window_max: u32, + pub ple_window_shrink: u32, + + pub pt_mode: ProcessorTraceMode, +} + +impl Default for Vmx { + fn default() -> Self { + Self { + host_idt_base: Default::default(), + vmcs_config: Default::default(), + vmx_cap: Default::default(), + vpid_bitmap: SpinLock::new(StaticBitmap::new()), + enable_vpid: true, + enable_ept: true, + enable_ept_ad: true, + enable_unrestricted_guest: true, + enable_flexpriority: true, + enable_vnmi: true, + enable_sgx: true, + ple_gap: 128, + ple_window: 4096, + ple_window_grow: 2, + ple_window_max: u32::MAX, + ple_window_shrink: 0, + enable_apicv: true, + enable_ipiv: true, + enable_pml: true, + enable_preemption_timer: true, + pt_mode: ProcessorTraceMode::System, + emulate_invalid_guest_state: true, + + // 目前先不管嵌套虚拟化,后续再实现 + nested: true, + } + } +} impl Vmx { - /// @brief 查看CPU是否支持虚拟化 - pub fn kvm_arch_cpu_supports_vm() -> bool { + /* + * Internal error codes that are used to indicate that MSR emulation encountered + * an error that should result in #GP in the guest, unless userspace + * handles it. + */ + pub const KVM_MSR_RET_INVALID: u32 = 2; /* in-kernel MSR emulation #GP condition */ + pub const KVM_MSR_RET_FILTERED: u32 = 3; /* #GP due to userspace MSR filter */ + + pub const MAX_POSSIBLE_PASSTHROUGH_MSRS: usize = 16; + + pub const VMX_POSSIBLE_PASSTHROUGH_MSRS: [u32; Self::MAX_POSSIBLE_PASSTHROUGH_MSRS] = [ + 0x48, // MSR_IA32_SPEC_CTRL + 0x49, // MSR_IA32_PRED_CMD + 0x10b, // MSR_IA32_FLUSH_CMD + IA32_TIME_STAMP_COUNTER, + IA32_FS_BASE, + IA32_GS_BASE, + IA32_KERNEL_GSBASE, + 0x1c4, // MSR_IA32_XFD + 0x1c5, // MSR_IA32_XFD_ERR + IA32_SYSENTER_CS, + IA32_SYSENTER_ESP, + IA32_SYSENTER_EIP, + MSR_CORE_C1_RESIDENCY, + MSR_CORE_C3_RESIDENCY, + MSR_CORE_C6_RESIDENCY, + MSR_CORE_C7_RESIDENCY, + ]; + + /// ### 查看CPU是否支持虚拟化 + pub fn check_vmx_support() -> bool { let cpuid = CpuId::new(); // Check to see if CPU is Intel (“GenuineIntel”). if let Some(vi) = cpuid.get_vendor_info() { @@ -21,6 +625,460 @@ impl Vmx { } return true; } + + #[inline(never)] + pub fn set_up_user_return_msrs() { + const VMX_URET_MSRS_LIST: &'static [u32] = &[ + IA32_FMASK, + IA32_LSTAR, + IA32_CSTAR, + IA32_EFER, + IA32_TSC_AUX, + IA32_STAR, + // 这个寄存器会出错<,先注释掉 + // MSR_IA32_TSX_CTRL, + ]; + + let manager = x86_kvm_manager_mut(); + for msr in VMX_URET_MSRS_LIST { + manager.add_user_return_msr(*msr); + } + } + + /// 初始化设置vmcs的config + #[inline(never)] + pub fn setup_vmcs_config( + vmcs_config: &mut VmcsConfig, + vmx_cap: &mut VmxCapability, + ) -> Result<(), SystemError> { + const VMCS_ENTRY_EXIT_PAIRS: &'static [VmcsEntryExitPair] = &[ + VmcsEntryExitPair::new( + EntryControls::LOAD_IA32_PERF_GLOBAL_CTRL, + ExitControls::LOAD_IA32_PERF_GLOBAL_CTRL, + ), + VmcsEntryExitPair::new(EntryControls::LOAD_IA32_PAT, ExitControls::LOAD_IA32_PAT), + VmcsEntryExitPair::new(EntryControls::LOAD_IA32_EFER, ExitControls::LOAD_IA32_EFER), + VmcsEntryExitPair::new( + EntryControls::LOAD_IA32_BNDCFGS, + ExitControls::CLEAR_IA32_BNDCFGS, + ), + VmcsEntryExitPair::new( + EntryControls::LOAD_IA32_RTIT_CTL, + ExitControls::CLEAR_IA32_RTIT_CTL, + ), + ]; + + let mut cpu_based_exec_control = VmxFeat::adjust_primary_controls()?; + + let mut cpu_based_2nd_exec_control = + if cpu_based_exec_control.contains(PrimaryControls::SECONDARY_CONTROLS) { + VmxFeat::adjust_secondary_controls()? + } else { + SecondaryControls::empty() + }; + + if cpu_based_2nd_exec_control.contains(SecondaryControls::VIRTUALIZE_APIC) { + cpu_based_exec_control.remove(PrimaryControls::USE_TPR_SHADOW) + } + + if !cpu_based_exec_control.contains(PrimaryControls::USE_TPR_SHADOW) { + cpu_based_2nd_exec_control.remove( + SecondaryControls::VIRTUALIZE_APIC_REGISTER + | SecondaryControls::VIRTUALIZE_X2APIC + | SecondaryControls::VIRTUAL_INTERRUPT_DELIVERY, + ) + } + + let cap = unsafe { rdmsr(IA32_VMX_EPT_VPID_CAP) }; + vmx_cap.set_val_from_msr_val(cap); + + // 不支持ept但是读取到了值 + if !cpu_based_2nd_exec_control.contains(SecondaryControls::ENABLE_EPT) + && !vmx_cap.ept.is_empty() + { + kwarn!("EPT CAP should not exist if not support. 1-setting enable EPT VM-execution control"); + return Err(SystemError::EIO); + } + + if !cpu_based_2nd_exec_control.contains(SecondaryControls::ENABLE_VPID) + && !vmx_cap.vpid.is_empty() + { + kwarn!("VPID CAP should not exist if not support. 1-setting enable VPID VM-execution control"); + return Err(SystemError::EIO); + } + + let cpuid = CpuId::new(); + let cpu_extend_feat = cpuid + .get_extended_feature_info() + .ok_or(SystemError::ENOSYS)?; + if !cpu_extend_feat.has_sgx() { + cpu_based_2nd_exec_control.remove(SecondaryControls::ENCLS_EXITING); + } + + let cpu_based_3rd_exec_control = 0; + // if cpu_based_exec_control.contains(SecondaryControls::TERTIARY_CONTROLS) { + // // Self::adjust_vmx_controls64(VmxFeature::IPI_VIRT, IA32_CTLS3) + // todo!() + // } else { + // 0 + // }; + + let vmxexit_control = VmxFeat::adjust_exit_controls()?; + + let pin_based_exec_control = VmxFeat::adjust_pin_based_controls()?; + + // TODO: broken timer? + // https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/vmx/vmx.c#2676 + + let vmentry_control = VmxFeat::adjust_entry_controls()?; + + for pair in VMCS_ENTRY_EXIT_PAIRS { + let n_ctrl = pair.entry; + let x_ctrl = pair.exit; + + // if !(vmentry_control.bits() & n_ctrl.bits) == !(vmxexit_control.bits() & x_ctrl.bits) { + // continue; + // } + if !(vmentry_control.contains(n_ctrl)) == !(vmxexit_control.contains(x_ctrl)) { + continue; + } + + kwarn!( + "Inconsistent VM-Entry/VM-Exit pair, entry = {:?}, exit = {:?}", + vmentry_control & n_ctrl, + vmxexit_control & x_ctrl, + ); + + return Err(SystemError::EIO); + } + + let basic = unsafe { rdmsr(IA32_VMX_BASIC) }; + let vmx_msr_high = (basic >> 32) as u32; + let vmx_msr_low = basic as u32; + + // 64位cpu,VMX_BASIC[48] == 0 + if vmx_msr_high & (1 << 16) != 0 { + return Err(SystemError::EIO); + } + + // 判断是否为写回(WB) + if (vmx_msr_high >> 18) & 15 != 6 { + return Err(SystemError::EIO); + } + + let misc_msr = unsafe { rdmsr(IA32_VMX_MISC) }; + + vmcs_config.size = vmx_msr_high & 0x1fff; + vmcs_config.basic_cap = vmx_msr_high & !0x1fff; + vmcs_config.revision_id = vmx_msr_low; + vmcs_config.pin_based_exec_ctrl = pin_based_exec_control; + vmcs_config.cpu_based_exec_ctrl = cpu_based_exec_control; + vmcs_config.cpu_based_2nd_exec_ctrl = cpu_based_2nd_exec_control; + vmcs_config.cpu_based_3rd_exec_ctrl = cpu_based_3rd_exec_control; + vmcs_config.vmentry_ctrl = vmentry_control; + vmcs_config.vmexit_ctrl = vmxexit_control; + vmcs_config.misc = misc_msr; + + Ok(()) + } + + fn adjust_vmx_controls(ctl_min: u32, ctl_opt: u32, msr: u32) -> Result { + let mut ctl = ctl_min | ctl_opt; + let val = unsafe { rdmsr(msr) }; + let low = val as u32; + let high = (val >> 32) as u32; + + ctl &= high; + ctl |= low; + + if ctl_min & !ctl != 0 { + return Err(SystemError::EIO); + } + + return Ok(ctl); + } + + fn adjust_vmx_controls64(ctl_opt: u32, msr: u32) -> u32 { + let allow = unsafe { rdmsr(msr) } as u32; + ctl_opt & allow + } + + pub fn alloc_vpid(&self) -> Option { + if !self.enable_vpid { + return None; + } + + let mut bitmap_guard = self.vpid_bitmap.lock(); + + let idx = bitmap_guard.first_false_index(); + if let Some(idx) = idx { + bitmap_guard.set(idx, true); + } + + return idx; + } + + pub fn free_vpid(&self, vpid: Option) { + if !self.enable_vpid || vpid.is_none() { + return; + } + + self.vpid_bitmap.lock().set(vpid.unwrap(), false); + } + + pub fn is_valid_passthrough_msr(msr: u32) -> bool { + match msr { + 0x800..0x8ff => { + // x2Apic msr寄存器 + return true; + } + MSR_IA32_RTIT_STATUS + | MSR_IA32_RTIT_OUTPUT_BASE + | MSR_IA32_RTIT_OUTPUT_MASK_PTRS + | MSR_IA32_CR3_MATCH + | MSR_LBR_SELECT + | MSR_LASTBRANCH_TOS => { + return true; + } + MSR_IA32_ADDR0_START..MSR_IA32_ADDR3_END => { + return true; + } + 0xdc0..0xddf => { + // MSR_LBR_INFO_0 ... MSR_LBR_INFO_0 + 31 + return true; + } + 0x680..0x69f => { + // MSR_LBR_NHM_FROM ... MSR_LBR_NHM_FROM + 31 + return true; + } + 0x6c0..0x6df => { + // MSR_LBR_NHM_TO ... MSR_LBR_NHM_TO + 31 + return true; + } + 0x40..0x48 => { + // MSR_LBR_CORE_FROM ... MSR_LBR_CORE_FROM + 8 + return true; + } + 0x60..0x68 => { + // MSR_LBR_CORE_TO ... MSR_LBR_CORE_TO + 8 + return true; + } + _ => { + return Self::possible_passthrough_msr_slot(msr).is_some(); + } + } + } + + pub fn possible_passthrough_msr_slot(msr: u32) -> Option { + for (idx, val) in Self::VMX_POSSIBLE_PASSTHROUGH_MSRS.iter().enumerate() { + if *val == msr { + return Some(idx); + } + } + + return None; + } + + pub fn tdp_enabled(&self) -> bool { + self.enable_ept + } + + fn setup_l1d_flush(&self) { + // TODO:先这样写 + *L1TF_VMX_MITIGATION.write() = VmxL1dFlushState::FlushNotRequired; + } +} + +struct VmcsEntryExitPair { + entry: EntryControls, + exit: ExitControls, +} + +impl VmcsEntryExitPair { + pub const fn new(entry: EntryControls, exit: ExitControls) -> Self { + Self { entry, exit } + } +} + +#[derive(Debug, Default, Clone, Copy)] +pub struct VmxUretMsr { + load_into_hardware: bool, + data: u64, + mask: u64, +} + +#[derive(Debug)] +pub struct VmxVCpuPriv { + vpid: Option, + vmcs01: Arc, + loaded_vmcs: Arc, + guest_uret_msrs: [VmxUretMsr; KvmArchManager::KVM_MAX_NR_USER_RETURN_MSRS], + + shadow_msr_intercept_read: AllocBitmap, + shadow_msr_intercept_write: AllocBitmap, +} + +impl VmxVCpuPriv { + /// 参考:https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/vmx/vmx.c#7452 + pub fn init(vcpu: &mut VirtCpu, vm: &Vm) { + let vmcs = LockedLoadedVmcs::new(); + let mut vmx = Self { + vpid: None, + vmcs01: vmcs.clone(), + loaded_vmcs: vmcs, + guest_uret_msrs: [VmxUretMsr::default(); KvmArchManager::KVM_MAX_NR_USER_RETURN_MSRS], + shadow_msr_intercept_read: AllocBitmap::new(16), + shadow_msr_intercept_write: AllocBitmap::new(16), + }; + + vmx.vpid = vmx_info().alloc_vpid(); + + for i in 0..x86_kvm_manager().kvm_uret_msrs_list.len() { + vmx.guest_uret_msrs[i].mask = u64::MAX; + } + + if CpuId::new().get_extended_feature_info().unwrap().has_rtm() { + let tsx_ctrl = vmx.find_uret_msr_mut(MSR_IA32_TSX_CTRL); + if let Some(tsx_ctrl) = tsx_ctrl { + // Disable TSX enumeration + tsx_ctrl.mask = !(1 << 1); + } + } + + vmx.shadow_msr_intercept_read.set_all(true); + vmx.shadow_msr_intercept_write.set_all(true); + + let arch = &vm.arch; + + vmx.disable_intercept_for_msr(arch, IA32_TIME_STAMP_COUNTER, MsrType::READ); + vmx.disable_intercept_for_msr(arch, IA32_FS_BASE, MsrType::RW); + vmx.disable_intercept_for_msr(arch, IA32_GS_BASE, MsrType::RW); + vmx.disable_intercept_for_msr(arch, IA32_KERNEL_GSBASE, MsrType::RW); + + vmx.disable_intercept_for_msr(arch, IA32_SYSENTER_CS, MsrType::RW); + vmx.disable_intercept_for_msr(arch, IA32_SYSENTER_ESP, MsrType::RW); + vmx.disable_intercept_for_msr(arch, IA32_SYSENTER_EIP, MsrType::RW); + + if arch.pause_in_guest { + vmx.disable_intercept_for_msr(arch, MSR_CORE_C1_RESIDENCY, MsrType::READ); + vmx.disable_intercept_for_msr(arch, MSR_CORE_C3_RESIDENCY, MsrType::READ); + vmx.disable_intercept_for_msr(arch, MSR_CORE_C6_RESIDENCY, MsrType::READ); + vmx.disable_intercept_for_msr(arch, MSR_CORE_C7_RESIDENCY, MsrType::READ); + } + + if vmx_info().enable_flexpriority && vcpu.arch.lapic_in_kernel() { + todo!() + } + + if vmx_info().enable_ept && !vmx_info().enable_unrestricted_guest { + todo!() + } + + if vcpu.arch.lapic_in_kernel() && vmx_info().enable_ipiv { + todo!() + } + + // 初始化vmx私有信息 + vcpu.private = Some(vmx); + } + + pub fn find_uret_msr(&self, msr: u32) -> Option<&VmxUretMsr> { + let idx = x86_kvm_manager().find_user_return_msr_idx(msr); + if let Some(index) = idx { + return Some(&self.guest_uret_msrs[index]); + } else { + return None; + } + } + + pub fn find_uret_msr_mut(&mut self, msr: u32) -> Option<&mut VmxUretMsr> { + let idx = x86_kvm_manager().find_user_return_msr_idx(msr); + if let Some(index) = idx { + return Some(&mut self.guest_uret_msrs[index]); + } else { + return None; + } + } + + /// ## 禁用对特定的 MSR 的拦截 + fn disable_intercept_for_msr(&mut self, arch: &KvmArch, msr: u32, mut msr_type: MsrType) { + if !vmx_info().has_msr_bitmap() { + return; + } + + let msr_bitmap = &mut self.vmcs01.lock().msr_bitmap; + + // TODO: https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/vmx/vmx.c#3974 + // 嵌套vmx处理 + + if Vmx::is_valid_passthrough_msr(msr) { + if let Some(idx) = Vmx::possible_passthrough_msr_slot(msr) { + if msr_type.contains(MsrType::READ) { + self.shadow_msr_intercept_read.set(idx, false); + } + if msr_type.contains(MsrType::WRITE) { + self.shadow_msr_intercept_write.set(idx, false); + } + } + } + + if msr_type.contains(MsrType::READ) + && !arch.msr_allowed(msr, MsrFilterType::KVM_MSR_FILTER_READ) + { + msr_bitmap.ctl(msr, VmxMsrBitmapAction::Set, VmxMsrBitmapAccess::Read); + msr_type.remove(MsrType::READ); + } + + if msr_type.contains(MsrType::WRITE) + && !arch.msr_allowed(msr, MsrFilterType::KVM_MSR_FILTER_WRITE) + { + msr_bitmap.ctl(msr, VmxMsrBitmapAction::Set, VmxMsrBitmapAccess::Write); + msr_type.remove(MsrType::WRITE); + } + + if msr_type.contains(MsrType::READ) { + msr_bitmap.ctl(msr, VmxMsrBitmapAction::Clear, VmxMsrBitmapAccess::Read); + } + + if msr_type.contains(MsrType::WRITE) { + msr_bitmap.ctl(msr, VmxMsrBitmapAction::Clear, VmxMsrBitmapAccess::Write); + } + } +} + +bitflags! { + pub struct MsrType: u8 { + const READ = 1; + const WRITE = 2; + const RW = 3; + } +} + +#[derive(Debug, PartialEq)] +pub enum VmxL1dFlushState { + FlushAuto, + FlushNever, + FlushCond, + FlushAlways, + FlushEptDisabled, + FlushNotRequired, } -pub fn vmx_init() {} +pub static L1TF_VMX_MITIGATION: RwLock = RwLock::new(VmxL1dFlushState::FlushAuto); + +pub fn vmx_init() -> Result<(), SystemError> { + let cpuid = CpuId::new(); + let cpu_feat = cpuid.get_feature_info().ok_or(SystemError::ENOSYS)?; + if !cpu_feat.has_vmx() { + return Err(SystemError::ENOSYS); + } + + init_kvm_arch(); + + x86_kvm_manager_mut().vendor_init(&VmxKvmInitFunc)?; + + vmx_info().setup_l1d_flush(); + + kvm_init()?; + Ok(()) +} diff --git a/kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs b/kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs new file mode 100644 index 000000000..cd16f6c6a --- /dev/null +++ b/kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs @@ -0,0 +1,158 @@ +use system_error::SystemError; +use x86::{ + msr::{ + IA32_VMX_ENTRY_CTLS, IA32_VMX_EXIT_CTLS, IA32_VMX_PINBASED_CTLS, IA32_VMX_PROCBASED_CTLS, + IA32_VMX_PROCBASED_CTLS2, + }, + vmx::vmcs::control::{ + EntryControls, ExitControls, PinbasedControls, PrimaryControls, SecondaryControls, + }, +}; + +use crate::arch::vm::vmx::Vmx; + +pub struct VmxFeat; + +impl VmxFeat { + pub const KVM_REQUIRED_VMX_CPU_BASED_VM_EXEC_CONTROL: u32 = PrimaryControls::HLT_EXITING.bits() + | PrimaryControls::CR3_LOAD_EXITING.bits() + | PrimaryControls::CR3_STORE_EXITING.bits() + | PrimaryControls::UNCOND_IO_EXITING.bits() + | PrimaryControls::MOV_DR_EXITING.bits() + | PrimaryControls::USE_TSC_OFFSETTING.bits() + | PrimaryControls::MWAIT_EXITING.bits() + | PrimaryControls::MONITOR_EXITING.bits() + | PrimaryControls::INVLPG_EXITING.bits() + | PrimaryControls::RDPMC_EXITING.bits() + | PrimaryControls::INTERRUPT_WINDOW_EXITING.bits() + | PrimaryControls::CR8_LOAD_EXITING.bits() + | PrimaryControls::CR8_STORE_EXITING.bits(); + + pub const KVM_OPTIONAL_VMX_CPU_BASED_VM_EXEC_CONTROL: u32 = PrimaryControls::RDTSC_EXITING + .bits() + | PrimaryControls::USE_TPR_SHADOW.bits() + | PrimaryControls::USE_IO_BITMAPS.bits() + | PrimaryControls::MONITOR_TRAP_FLAG.bits() + | PrimaryControls::USE_MSR_BITMAPS.bits() + | PrimaryControls::NMI_WINDOW_EXITING.bits() + | PrimaryControls::PAUSE_EXITING.bits() + | PrimaryControls::SECONDARY_CONTROLS.bits(); + + pub const KVM_REQUIRED_VMX_SECONDARY_VM_EXEC_CONTROL: u32 = 0; + + pub const KVM_OPTIONAL_VMX_SECONDARY_VM_EXEC_CONTROL: u32 = SecondaryControls::VIRTUALIZE_APIC + .bits() + | SecondaryControls::VIRTUALIZE_X2APIC.bits() + | SecondaryControls::WBINVD_EXITING.bits() + | SecondaryControls::ENABLE_VPID.bits() + | SecondaryControls::ENABLE_EPT.bits() + | SecondaryControls::UNRESTRICTED_GUEST.bits() + | SecondaryControls::PAUSE_LOOP_EXITING.bits() + | SecondaryControls::DTABLE_EXITING.bits() + | SecondaryControls::ENABLE_RDTSCP.bits() + | SecondaryControls::ENABLE_INVPCID.bits() + | SecondaryControls::VIRTUALIZE_APIC_REGISTER.bits() + | SecondaryControls::VIRTUAL_INTERRUPT_DELIVERY.bits() + | SecondaryControls::VMCS_SHADOWING.bits() + | SecondaryControls::ENABLE_XSAVES_XRSTORS.bits() + | SecondaryControls::RDSEED_EXITING.bits() + | SecondaryControls::RDRAND_EXITING.bits() + | SecondaryControls::ENABLE_PML.bits() + | SecondaryControls::USE_TSC_SCALING.bits() + | SecondaryControls::ENABLE_USER_WAIT_PAUSE.bits() + | SecondaryControls::INTEL_PT_GUEST_PHYSICAL.bits() + | SecondaryControls::CONCEAL_VMX_FROM_PT.bits() + | SecondaryControls::ENABLE_VM_FUNCTIONS.bits() + | SecondaryControls::ENCLS_EXITING.bits(); + // | SecondaryControls::BUS_LOCK_DETECTION.bits() + // | SecondaryControls::NOTIFY_VM_EXITING.bits() + + pub const KVM_REQUIRED_VMX_VM_EXIT_CONTROLS: u32 = ExitControls::SAVE_DEBUG_CONTROLS.bits() + | ExitControls::ACK_INTERRUPT_ON_EXIT.bits() + | ExitControls::HOST_ADDRESS_SPACE_SIZE.bits(); + + pub const KVM_OPTIONAL_VMX_VM_EXIT_CONTROLS: u32 = ExitControls::LOAD_IA32_PERF_GLOBAL_CTRL + .bits() + | ExitControls::SAVE_IA32_PAT.bits() + | ExitControls::LOAD_IA32_PAT.bits() + | ExitControls::SAVE_IA32_EFER.bits() + | ExitControls::SAVE_VMX_PREEMPTION_TIMER.bits() + | ExitControls::LOAD_IA32_EFER.bits() + | ExitControls::CLEAR_IA32_BNDCFGS.bits() + | ExitControls::CONCEAL_VMX_FROM_PT.bits() + | ExitControls::CLEAR_IA32_RTIT_CTL.bits(); + + pub const KVM_REQUIRED_VMX_PIN_BASED_VM_EXEC_CONTROL: u32 = + PinbasedControls::EXTERNAL_INTERRUPT_EXITING.bits() | PinbasedControls::NMI_EXITING.bits(); + + pub const KVM_OPTIONAL_VMX_PIN_BASED_VM_EXEC_CONTROL: u32 = PinbasedControls::VIRTUAL_NMIS + .bits() + | PinbasedControls::POSTED_INTERRUPTS.bits() + | PinbasedControls::VMX_PREEMPTION_TIMER.bits(); + + pub const KVM_REQUIRED_VMX_VM_ENTRY_CONTROLS: u32 = + EntryControls::LOAD_DEBUG_CONTROLS.bits() | EntryControls::IA32E_MODE_GUEST.bits(); + + pub const KVM_OPTIONAL_VMX_VM_ENTRY_CONTROLS: u32 = EntryControls::LOAD_IA32_PERF_GLOBAL_CTRL + .bits() + | EntryControls::LOAD_IA32_PAT.bits() + | EntryControls::LOAD_IA32_EFER.bits() + | EntryControls::LOAD_IA32_BNDCFGS.bits() + | EntryControls::CONCEAL_VMX_FROM_PT.bits() + | EntryControls::LOAD_IA32_RTIT_CTL.bits(); + + /* VMX_BASIC bits and bitmasks */ + pub const VMX_BASIC_VMCS_SIZE_SHIFT: u64 = 32; + pub const VMX_BASIC_TRUE_CTLS: u64 = 1 << 55; + pub const VMX_BASIC_64: u64 = 0x0001000000000000; + pub const VMX_BASIC_MEM_TYPE_SHIFT: u64 = 50; + pub const VMX_BASIC_MEM_TYPE_MASK: u64 = 0x003c000000000000; + pub const VMX_BASIC_MEM_TYPE_WB: u64 = 6; + pub const VMX_BASIC_INOUT: u64 = 0x0040000000000000; + + pub fn adjust_primary_controls() -> Result { + Ok(PrimaryControls::from_bits_truncate( + Vmx::adjust_vmx_controls( + Self::KVM_REQUIRED_VMX_CPU_BASED_VM_EXEC_CONTROL, + Self::KVM_OPTIONAL_VMX_CPU_BASED_VM_EXEC_CONTROL, + IA32_VMX_PROCBASED_CTLS, + )?, + )) + } + + pub fn adjust_secondary_controls() -> Result { + Ok(SecondaryControls::from_bits_truncate( + Vmx::adjust_vmx_controls( + Self::KVM_REQUIRED_VMX_SECONDARY_VM_EXEC_CONTROL, + Self::KVM_OPTIONAL_VMX_SECONDARY_VM_EXEC_CONTROL, + IA32_VMX_PROCBASED_CTLS2, + )?, + )) + } + + pub fn adjust_exit_controls() -> Result { + Ok(ExitControls::from_bits_truncate(Vmx::adjust_vmx_controls( + Self::KVM_REQUIRED_VMX_VM_EXIT_CONTROLS, + Self::KVM_OPTIONAL_VMX_VM_EXIT_CONTROLS, + IA32_VMX_EXIT_CTLS, + )?)) + } + + pub fn adjust_entry_controls() -> Result { + Ok(EntryControls::from_bits_truncate(Vmx::adjust_vmx_controls( + Self::KVM_REQUIRED_VMX_VM_ENTRY_CONTROLS, + Self::KVM_OPTIONAL_VMX_VM_ENTRY_CONTROLS, + IA32_VMX_ENTRY_CTLS, + )?)) + } + + pub fn adjust_pin_based_controls() -> Result { + Ok(PinbasedControls::from_bits_truncate( + Vmx::adjust_vmx_controls( + Self::KVM_REQUIRED_VMX_PIN_BASED_VM_EXEC_CONTROL, + Self::KVM_OPTIONAL_VMX_PIN_BASED_VM_EXEC_CONTROL, + IA32_VMX_PINBASED_CTLS, + )?, + )) + } +} diff --git a/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs b/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs new file mode 100644 index 000000000..c3318f209 --- /dev/null +++ b/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs @@ -0,0 +1,265 @@ +use alloc::{boxed::Box, collections::LinkedList, sync::Arc, vec::Vec}; +use bitmap::{traits::BitMapOps, AllocBitmap}; +use system_error::SystemError; + +use crate::{ + arch::{vm::asm::VmxAsm, MMArch}, + kdebug, + libs::spinlock::{SpinLock, SpinLockGuard}, + mm::{percpu::PerCpuVar, virt_2_phys, MemoryManagementArch, PhysAddr}, + smp::cpu::ProcessorId, +}; + +use super::vmx_info; + +pub mod feat; + +pub static mut PERCPU_VMCS: Option>>> = None; +pub static mut PERCPU_LOADED_VMCS_LIST: Option>>> = None; +pub static mut VMXAREA: Option>> = None; + +pub fn current_vmcs() -> &'static Option> { + unsafe { PERCPU_VMCS.as_ref().unwrap().get() } +} + +pub fn current_vmcs_mut() -> &'static mut Option> { + unsafe { PERCPU_VMCS.as_ref().unwrap().get_mut() } +} + +pub fn current_loaded_vmcs_list_mut() -> &'static mut LinkedList> { + unsafe { PERCPU_LOADED_VMCS_LIST.as_ref().unwrap().get_mut() } +} + +pub fn current_loaded_vmcs_list() -> &'static LinkedList> { + unsafe { PERCPU_LOADED_VMCS_LIST.as_ref().unwrap().get() } +} + +pub fn vmx_area() -> &'static PerCpuVar> { + unsafe { VMXAREA.as_ref().unwrap() } +} + +#[repr(C, align(4096))] +#[derive(Debug, Clone)] +pub struct VMControlStructure { + pub header: u32, + pub abort: u32, + pub data: [u8; MMArch::PAGE_SIZE - core::mem::size_of::() - core::mem::size_of::()], +} + +impl VMControlStructure { + pub fn new() -> Box { + let mut vmcs: Box = unsafe { + Box::try_new_zeroed() + .expect("alloc vmcs failed") + .assume_init() + }; + + vmcs.set_revision_id(vmx_info().vmcs_config.revision_id); + vmcs + } + + pub fn revision_id(&self) -> u32 { + self.header & 0x7FFF_FFFF + } + + pub fn is_shadow_vmcs(&self) -> bool { + self.header & 0x8000_0000 == 1 + } + + pub fn set_shadow_vmcs(&mut self, shadow: bool) { + self.header |= (shadow as u32) << 31; + } + + pub fn set_revision_id(&mut self, id: u32) { + self.header = self.header & 0x8000_0000 | (id & 0x7FFF_FFFF); + } +} + +#[derive(Debug)] +pub struct LockedVMControlStructure { + /// 记录内部的vmcs的物理地址 + phys_addr: PhysAddr, + inner: SpinLock>, +} + +impl LockedVMControlStructure { + #[inline(never)] + pub fn new(shadow: bool) -> Arc { + let mut vmcs = VMControlStructure::new(); + + let phys_addr = PhysAddr::new(virt_2_phys(vmcs.as_ref() as *const _ as usize)); + + vmcs.set_shadow_vmcs(shadow); + + Arc::new(Self { + phys_addr, + inner: SpinLock::new(vmcs), + }) + } + + pub fn lock(&self) -> SpinLockGuard> { + self.inner.lock() + } + + pub fn phys_addr(&self) -> PhysAddr { + self.phys_addr + } +} + +#[derive(Debug, Default)] +pub struct VmcsHostState { + pub cr3: usize, + pub cr4: usize, + pub gs_base: usize, + pub fs_base: usize, + pub rsp: usize, + pub fs_sel: u16, + pub gs_sel: u16, + pub ldt_sel: u16, + pub ds_sel: u16, + pub rs_sel: u16, +} + +#[derive(Debug, Default)] +pub struct VmcsControlsShadow { + vm_entry: u32, + vm_exit: u32, + pin: u32, + exec: u32, + secondary_exec: u32, + tertiary_exec: u32, +} + +#[derive(Debug)] +pub struct LoadedVmcs { + pub vmcs: Arc, + pub shadow_vmcs: Option>, + pub cpu: ProcessorId, + /// 是否已经执行了 VMLAUNCH 指令 + pub launched: bool, + /// NMI 是否已知未被屏蔽 + nmi_known_unmasked: bool, + /// Hypervisor 定时器是否被软禁用 + hv_timer_soft_disabled: bool, + /// 支持 vnmi-less CPU 的字段,指示 VNMI 是否被软阻止 + soft_vnmi_blocked: bool, + /// 记录 VM 进入时间 + entry_time: u64, + /// 记录 VNMI 被阻止的时间 + vnmi_blocked_time: u64, + /// msr位图 + pub msr_bitmap: VmxMsrBitmap, + /// 保存 VMCS 主机状态的结构体 + host_state: VmcsHostState, + /// 保存 VMCS 控制字段的shadow状态的结构体。 + controls_shadow: VmcsControlsShadow, +} + +#[derive(Debug)] +pub struct LockedLoadedVmcs { + inner: SpinLock, +} + +impl LockedLoadedVmcs { + pub fn new() -> Arc { + let bitmap = if vmx_info().has_msr_bitmap() { + let bitmap = VmxMsrBitmap::new(true, MMArch::PAGE_SIZE * u8::BITS as usize); + bitmap + } else { + VmxMsrBitmap::new(true, 0) + }; + let vmcs = LockedVMControlStructure::new(false); + + VmxAsm::vmclear(vmcs.phys_addr); + + Arc::new(Self { + inner: SpinLock::new(LoadedVmcs { + vmcs, + shadow_vmcs: None, + cpu: ProcessorId::INVALID, + launched: false, + hv_timer_soft_disabled: false, + msr_bitmap: bitmap, + host_state: VmcsHostState::default(), + controls_shadow: VmcsControlsShadow::default(), + nmi_known_unmasked: false, + soft_vnmi_blocked: false, + entry_time: 0, + vnmi_blocked_time: 0, + }), + }) + } + + pub fn lock(&self) -> SpinLockGuard { + self.inner.lock() + } +} + +#[derive(Debug)] +pub struct VmxMsrBitmap { + data: AllocBitmap, +} + +pub enum VmxMsrBitmapAction { + Test, + Set, + Clear, +} + +pub enum VmxMsrBitmapAccess { + Write, + Read, +} + +impl VmxMsrBitmapAccess { + pub const fn base(&self) -> usize { + match self { + VmxMsrBitmapAccess::Write => 0x800 * core::mem::size_of::(), + VmxMsrBitmapAccess::Read => 0, + } + } +} + +impl VmxMsrBitmap { + pub fn new(init_val: bool, size: usize) -> Self { + let mut data = AllocBitmap::new(size); + data.set_all(init_val); + Self { data } + } + + pub fn ctl( + &mut self, + msr: u32, + action: VmxMsrBitmapAction, + access: VmxMsrBitmapAccess, + ) -> bool { + if msr <= 0x1fff { + return self.bit_op(msr as usize, access.base(), action); + } else if msr >= 0xc0000000 && msr <= 0xc0001fff { + return self.bit_op(msr as usize, access.base(), action); + } else { + return true; + } + } + + fn bit_op(&mut self, msr: usize, base: usize, action: VmxMsrBitmapAction) -> bool { + match action { + VmxMsrBitmapAction::Test => { + let ret = self.data.get(msr + base); + if let Some(ret) = ret { + ret + } else { + false + } + } + VmxMsrBitmapAction::Set => { + self.data.set(msr + base, true); + true + } + VmxMsrBitmapAction::Clear => { + self.data.set(msr + base, false); + true + } + } + } +} diff --git a/kernel/src/init/init.rs b/kernel/src/init/init.rs index c1f2f602f..6dfb1d5fe 100644 --- a/kernel/src/init/init.rs +++ b/kernel/src/init/init.rs @@ -2,6 +2,7 @@ use crate::{ arch::{ init::{early_setup_arch, setup_arch, setup_arch_post}, time::time_init, + vm::vmx::vmx_init, CurrentIrqArch, CurrentSMPArch, CurrentSchedArch, }, driver::{base::init::driver_init, serial::serial_early_init, video::VideoRefreshManager}, @@ -80,8 +81,10 @@ fn do_start_kernel() { setup_arch_post().expect("setup_arch_post failed"); + // #[cfg(all(target_arch = "x86_64", feature = "kvm"))] + // crate::virt::kvm::kvm_init(); #[cfg(all(target_arch = "x86_64", feature = "kvm"))] - crate::virt::kvm::kvm_init(); + vmx_init().unwrap(); } /// 在内存管理初始化之前,执行的初始化 diff --git a/kernel/src/lib.rs b/kernel/src/lib.rs index 71a7a4ff5..81cf7b78d 100644 --- a/kernel/src/lib.rs +++ b/kernel/src/lib.rs @@ -22,6 +22,8 @@ #![feature(trait_upcasting)] #![feature(slice_ptr_get)] #![feature(vec_into_raw_parts)] +// match语句中能够使用范围 +#![feature(exclusive_range_pattern)] #![cfg_attr(target_os = "none", no_std)] // clippy的配置 #![deny(clippy::all)] diff --git a/kernel/src/libs/rbtree.rs b/kernel/src/libs/rbtree.rs index aed58744f..cddc8d7e4 100644 --- a/kernel/src/libs/rbtree.rs +++ b/kernel/src/libs/rbtree.rs @@ -831,6 +831,15 @@ impl IntoIterator for RBTree { } } +impl Default for RBTree { + fn default() -> Self { + RBTree { + root: NodePtr::null(), + len: 0, + } + } +} + impl RBTree { /// Creates an empty `RBTree`. pub fn new() -> RBTree { diff --git a/kernel/src/mm/mod.rs b/kernel/src/mm/mod.rs index c2dae1705..3b95f7c2b 100644 --- a/kernel/src/mm/mod.rs +++ b/kernel/src/mm/mod.rs @@ -246,7 +246,7 @@ impl core::ops::SubAssign for PhysAddr { } /// 虚拟内存地址 -#[derive(Clone, Copy, Eq, Ord, PartialEq, PartialOrd, Hash)] +#[derive(Clone, Copy, Eq, Ord, PartialEq, PartialOrd, Hash, Default)] #[repr(transparent)] pub struct VirtAddr(usize); diff --git a/kernel/src/virt/mod.rs b/kernel/src/virt/mod.rs index 937d3d510..0f2205dd6 100644 --- a/kernel/src/virt/mod.rs +++ b/kernel/src/virt/mod.rs @@ -1 +1,2 @@ pub mod kvm; +pub mod vm; diff --git a/kernel/src/virt/vm/kvm_dev.rs b/kernel/src/virt/vm/kvm_dev.rs new file mode 100644 index 000000000..d42c319f6 --- /dev/null +++ b/kernel/src/virt/vm/kvm_dev.rs @@ -0,0 +1,428 @@ +use core::{ + intrinsics::unlikely, + sync::atomic::{AtomicUsize, Ordering}, +}; + +use alloc::sync::{Arc, Weak}; +use system_error::SystemError; + +use crate::{ + arch::{ + vm::{kvm_host::KvmCommonRegs, x86_kvm_manager}, + MMArch, + }, + driver::base::device::device_number::DeviceNumber, + filesystem::{ + devfs::{devfs_register, DevFS, DeviceINode}, + vfs::{ + core::generate_inode_id, + file::{File, FileMode}, + syscall::ModeType, + FileType, IndexNode, Metadata, + }, + }, + libs::spinlock::SpinLock, + mm::MemoryManagementArch, + process::ProcessManager, + syscall::user_access::{UserBufferReader, UserBufferWriter}, + time::PosixTimeSpec, + virt::vm::{ + kvm_host::check_stack_usage, + user_api::{KvmUserspaceMemoryRegion, PosixKvmUserspaceMemoryRegion}, + }, +}; + +use super::kvm_host::{ + vcpu::{LockedVirtCpu, VirtCpu}, + LockedVm, Vm, +}; + +#[derive(Debug)] +pub struct KvmInode { + /// 指向自身的弱引用 + self_ref: Weak, + /// 指向inode所在的文件系统对象的指针 + fs: Weak, + /// INode 元数据 + metadata: Metadata, +} + +#[derive(Debug)] +pub struct LockedKvmInode { + inner: SpinLock, +} + +impl LockedKvmInode { + const KVM_CREATE_VM: u32 = 0xAE01; + const KVM_GET_VCPU_MMAP_SIZE: u32 = 0xAE04; + + pub fn new() -> Arc { + let inode = KvmInode { + self_ref: Weak::default(), + fs: Weak::default(), + metadata: Metadata { + dev_id: 1, + inode_id: generate_inode_id(), + size: 0, + blk_size: 0, + blocks: 0, + atime: PosixTimeSpec::default(), + mtime: PosixTimeSpec::default(), + ctime: PosixTimeSpec::default(), + file_type: FileType::KvmDevice, // 文件夹,block设备,char设备 + mode: ModeType::S_IALLUGO, + nlinks: 1, + uid: 0, + gid: 0, + raw_dev: DeviceNumber::default(), // 这里用来作为device number + }, + }; + + let result = Arc::new(LockedKvmInode { + inner: SpinLock::new(inode), + }); + result.inner.lock().self_ref = Arc::downgrade(&result); + + return result; + } + + fn create_vm(&self, vm_type: usize) -> Result { + let kvm = LockedVm::create(vm_type)?; + + let instance = KvmInstance::new(kvm); + + let current = ProcessManager::current_pcb(); + + let file = File::new(instance, FileMode::O_RDWR)?; + let fd = current.fd_table().write().alloc_fd(file, None)?; + return Ok(fd as usize); + } +} + +impl DeviceINode for LockedKvmInode { + fn set_fs(&self, fs: Weak) { + self.inner.lock().fs = fs; + } +} + +impl IndexNode for LockedKvmInode { + fn open( + &self, + _data: crate::libs::spinlock::SpinLockGuard, + _mode: &FileMode, + ) -> Result<(), SystemError> { + Ok(()) + } + fn read_at( + &self, + _offset: usize, + _len: usize, + _buf: &mut [u8], + _data: crate::libs::spinlock::SpinLockGuard, + ) -> Result { + Err(SystemError::ENOSYS) + } + + fn write_at( + &self, + _offset: usize, + _len: usize, + _buf: &[u8], + _data: crate::libs::spinlock::SpinLockGuard, + ) -> Result { + Err(SystemError::ENOSYS) + } + + fn fs(&self) -> Arc { + self.inner.lock().fs.upgrade().unwrap() + } + + fn as_any_ref(&self) -> &dyn core::any::Any { + self + } + + fn list(&self) -> Result, system_error::SystemError> { + Err(SystemError::ENOSYS) + } + + fn metadata(&self) -> Result { + Ok(self.inner.lock().metadata.clone()) + } + + fn ioctl( + &self, + cmd: u32, + arg: usize, + _private_data: &crate::filesystem::vfs::FilePrivateData, + ) -> Result { + match cmd { + Self::KVM_CREATE_VM => { + let ret = self.create_vm(arg); + kwarn!("[KVM]: KVM_CREATE_VM {ret:?}"); + + return ret; + } + + Self::KVM_GET_VCPU_MMAP_SIZE => { + if arg != 0 { + return Err(SystemError::EINVAL); + } + kdebug!("[KVM] KVM_GET_VCPU_MMAP_SIZE"); + return Ok(MMArch::PAGE_SIZE); + } + + _ => { + // TODO: arch_ioctl + kwarn!("[KVM]: unknown iooctl cmd {cmd:x}"); + } + } + + Ok(0) + } + + fn close( + &self, + _data: crate::libs::spinlock::SpinLockGuard, + ) -> Result<(), SystemError> { + Ok(()) + } +} + +#[derive(Debug)] +pub struct KvmInstance { + kvm: Arc, + metadata: Metadata, +} + +impl KvmInstance { + const KVM_CREATE_VCPU: u32 = 0xAE41; + const KVM_SET_USER_MEMORY_REGION: u32 = 0xAE46; + + pub fn new(vm: Arc) -> Arc { + Arc::new(Self { + kvm: vm, + metadata: Metadata { + dev_id: 1, + inode_id: generate_inode_id(), + size: 0, + blk_size: 0, + blocks: 0, + atime: PosixTimeSpec::default(), + mtime: PosixTimeSpec::default(), + ctime: PosixTimeSpec::default(), + file_type: FileType::KvmDevice, + mode: ModeType::S_IALLUGO, + nlinks: 1, + uid: 0, + gid: 0, + raw_dev: DeviceNumber::default(), // 这里用来作为device number + }, + }) + } +} + +impl IndexNode for KvmInstance { + fn open( + &self, + _data: crate::libs::spinlock::SpinLockGuard, + _mode: &crate::filesystem::vfs::file::FileMode, + ) -> Result<(), SystemError> { + Ok(()) + } + + #[inline(never)] + fn ioctl( + &self, + cmd: u32, + arg: usize, + _private_data: &crate::filesystem::vfs::FilePrivateData, + ) -> Result { + kdebug!("ioctl"); + check_stack_usage(); + match cmd { + Self::KVM_CREATE_VCPU => { + let ret = self.kvm.lock().create_vcpu(arg); + kwarn!("!!!###$$"); + return ret; + } + + Self::KVM_SET_USER_MEMORY_REGION => { + kdebug!("[KVM-INSTANCE] KVM_SET_USER_MEMORY_REGION"); + let user_reader = UserBufferReader::new( + arg as *const PosixKvmUserspaceMemoryRegion, + core::mem::size_of::(), + true, + )?; + + let region = user_reader.read_one_from_user::(0)?; + + self.kvm + .lock() + .set_memory_region(KvmUserspaceMemoryRegion::from_posix(region)?)?; + + return Ok(0); + } + + _ => { + // arch_ioctl + } + } + + todo!() + } + + fn read_at( + &self, + offset: usize, + len: usize, + buf: &mut [u8], + _data: crate::libs::spinlock::SpinLockGuard, + ) -> Result { + todo!() + } + + fn write_at( + &self, + offset: usize, + len: usize, + buf: &[u8], + _data: crate::libs::spinlock::SpinLockGuard, + ) -> Result { + todo!() + } + + fn fs(&self) -> Arc { + todo!() + } + + fn as_any_ref(&self) -> &dyn core::any::Any { + todo!() + } + + fn list(&self) -> Result, SystemError> { + todo!() + } + + fn metadata(&self) -> Result { + Ok(self.metadata.clone()) + } + + fn close( + &self, + _data: crate::libs::spinlock::SpinLockGuard, + ) -> Result<(), SystemError> { + Ok(()) + } +} + +#[derive(Debug)] +pub struct KvmVcpuDev { + vcpu: Arc, +} + +impl KvmVcpuDev { + const KVM_RUN: u32 = 0xAE80; + const KVM_GET_REGS: u32 = 0xAE81; + const KVM_SET_REGS: u32 = 0xAE82; + const KVM_GET_SREGS: u32 = 0xAE83; + const KVM_SET_SREGS: u32 = 0xAE84; + + pub fn new(vcpu: Arc) -> Arc { + Arc::new(Self { vcpu }) + } +} + +impl IndexNode for KvmVcpuDev { + fn open( + &self, + _data: crate::libs::spinlock::SpinLockGuard, + _mode: &FileMode, + ) -> Result<(), SystemError> { + Ok(()) + } + + fn close( + &self, + _data: crate::libs::spinlock::SpinLockGuard, + ) -> Result<(), SystemError> { + Ok(()) + } + + fn ioctl( + &self, + cmd: u32, + arg: usize, + _private_data: &crate::filesystem::vfs::FilePrivateData, + ) -> Result { + match cmd { + Self::KVM_RUN => { + let mut vcpu = self.vcpu.lock(); + let oldpid = vcpu.pid; + if unlikely(oldpid != Some(ProcessManager::current_pid())) { + vcpu.pid = Some(ProcessManager::current_pid()); + } + + return vcpu.run(); + } + Self::KVM_GET_REGS => { + kdebug!("KVM_GET_REGS"); + let kvm_regs = self.vcpu.lock().get_regs(); + kdebug!("get regs {kvm_regs:?}"); + let mut user_writer = UserBufferWriter::new( + arg as *const KvmCommonRegs as *mut KvmCommonRegs, + core::mem::size_of::(), + true, + )?; + + user_writer.copy_one_to_user(&kvm_regs, 0)?; + return Ok(0); + } + _ => { + // arch ioctl + kwarn!("[KVM-VCPU] unknown ioctl cmd {cmd:x}"); + } + } + + Ok(0) + } + + fn read_at( + &self, + offset: usize, + len: usize, + buf: &mut [u8], + _data: crate::libs::spinlock::SpinLockGuard, + ) -> Result { + todo!() + } + + fn write_at( + &self, + offset: usize, + len: usize, + buf: &[u8], + _data: crate::libs::spinlock::SpinLockGuard, + ) -> Result { + todo!() + } + + fn fs(&self) -> Arc { + todo!() + } + + fn as_any_ref(&self) -> &dyn core::any::Any { + todo!() + } + + fn list(&self) -> Result, SystemError> { + todo!() + } +} + +pub fn kvm_init() -> Result<(), SystemError> { + let kvm_inode = LockedKvmInode::new(); + + devfs_register("kvm", kvm_inode)?; + + Ok(()) +} diff --git a/kernel/src/virt/vm/kvm_host/mem.rs b/kernel/src/virt/vm/kvm_host/mem.rs new file mode 100644 index 000000000..bf5180073 --- /dev/null +++ b/kernel/src/virt/vm/kvm_host/mem.rs @@ -0,0 +1,502 @@ +use alloc::{ + boxed::Box, + sync::{Arc, Weak}, +}; +use bitmap::AllocBitmap; +use hashbrown::HashMap; +use system_error::SystemError; +use x86::bits64::registers::rbp; + +use crate::{ + arch::{kvm_arch_ops, MMArch}, + libs::{ + rbtree::RBTree, + rwlock::{RwLock, RwLockReadGuard, RwLockWriteGuard}, + spinlock::{SpinLock, SpinLockGuard}, + }, + mm::{MemoryManagementArch, PhysAddr, VirtAddr}, + virt::vm::{kvm_host::KVM_ADDRESS_SPACE_NUM, user_api::KvmUserspaceMemoryRegion}, +}; + +use super::{check_stack_usage, LockedVm, Vm}; + +pub const KVM_USER_MEM_SLOTS: u16 = u16::MAX; +pub const KVM_INTERNAL_MEM_SLOTS: u16 = 3; +pub const KVM_MEM_SLOTS_NUM: u16 = KVM_USER_MEM_SLOTS - KVM_INTERNAL_MEM_SLOTS; +pub const KVM_MEM_MAX_NR_PAGES: usize = (1 << 31) - 1; + +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Default)] +pub struct AddrRange { + pub start: VirtAddr, + pub last: VirtAddr, +} + +#[derive(Debug, Default)] +pub struct KvmMemSlotSet { + /// 最后一次使用到的内存插槽 + pub last_use: Option>, + /// 存储虚拟地址(hva)和内存插槽之间的映射关系 + hva_tree: RBTree>, + /// 用于存储全局页帧号(gfn)和内存插槽之间的映射关系 + gfn_tree: RBTree>, + /// 将内存插槽的ID映射到对应的内存插槽。 + slots: HashMap>, + + pub node_idx: usize, + pub generation: u64, +} + +impl KvmMemSlotSet { + pub fn get_slot(&self, id: u16) -> Option> { + self.slots.get(&id).cloned() + } +} + +#[derive(Debug)] +pub struct LockedKvmMemSlot { + inner: RwLock, +} + +impl LockedKvmMemSlot { + pub fn new() -> Arc { + Arc::new(Self { + inner: RwLock::new(KvmMemSlot::default()), + }) + } + + #[inline] + pub fn read(&self) -> RwLockReadGuard { + self.inner.read() + } + + #[inline] + pub fn write(&self) -> RwLockWriteGuard { + self.inner.write() + } + + #[inline] + pub fn copy_from(&self, other: &Arc) { + let mut guard = self.write(); + let other = other.read(); + + guard.base_gfn = other.base_gfn; + guard.npages = other.npages; + + guard.dirty_bitmap = other.dirty_bitmap.clone(); + guard.arch = other.arch; + guard.userspace_addr = other.userspace_addr; + guard.flags = other.flags; + guard.id = other.id; + guard.as_id = other.as_id; + } +} + +#[derive(Debug, Default)] +pub struct KvmMemSlot { + /// 首个gfn + base_gfn: u64, + /// 页数量 + npages: usize, + /// 脏页位图 + dirty_bitmap: Option, + /// 架构相关 + arch: (), + userspace_addr: VirtAddr, + flags: UserMemRegionFlag, + id: u16, + as_id: u16, + + hva_node_key: [AddrRange; 2], +} + +#[derive(Debug)] +pub struct LockedVmMemSlotSet { + inner: SpinLock, +} + +impl LockedVmMemSlotSet { + pub fn new(slots: KvmMemSlotSet) -> Arc { + Arc::new(Self { + inner: SpinLock::new(slots), + }) + } + + pub fn lock(&self) -> SpinLockGuard { + self.inner.lock() + } +} + +#[derive(Debug, Default)] +pub struct GfnToHvaCache { + generation: u64, + /// 客户机对应物理地址(Guest Physical Address) + gpa: u64, + /// 主机用户空间虚拟地址(User Host Virtual Address) + uhva: Option, + /// 主机内核空间虚拟地址(Kernel Host Virtual Address) + khva: u64, + /// 对应内存插槽 + memslot: Option>, + /// 对应物理页帧号(Page Frame Number) + pfn: Option, + /// 缓存项的使用情况 + usage: PfnCacheUsage, + /// 是否处于活动状态 + active: bool, + /// 是否有效 + valid: bool, + vm: Option>, +} + +impl GfnToHvaCache { + pub fn init(vm: Weak, usage: PfnCacheUsage) -> Self { + // check_stack_usage(); + // let mut ret: Box = unsafe { Box::new_zeroed().assume_init() }; + // ret.usage = usage; + // ret.vm = Some(vm); + // *ret + Self { + usage, + vm: Some(vm), + ..Default::default() + } + } +} + +bitflags! { + #[derive(Default)] + pub struct PfnCacheUsage: u8 { + const GUEST_USES_PFN = 1 << 0; + const HOST_USES_PFN = 1 << 1; + const GUEST_AND_HOST_USES_PFN = Self::GUEST_USES_PFN.bits | Self::HOST_USES_PFN.bits; + } + + pub struct UserMemRegionFlag: u32 { + /// 用来开启内存脏页 + const LOG_DIRTY_PAGES = 1 << 0; + /// 开启内存只读 + const READONLY = 1 << 1; + /// 标记invalid + const KVM_MEMSLOT_INVALID = 1 << 16; + } +} + +impl Default for UserMemRegionFlag { + fn default() -> Self { + Self::empty() + } +} + +#[derive(PartialEq, Eq, Debug, Clone, Copy)] +pub enum KvmMemoryChangeMode { + Create, + Delete, + Move, + FlagsOnly, +} + +impl Vm { + #[inline(never)] + pub fn set_memory_region(&mut self, mem: KvmUserspaceMemoryRegion) -> Result<(), SystemError> { + if mem.slot >= u16::MAX as u32 { + return Err(SystemError::EINVAL); + } + + let as_id = mem.slot >> 16; + let id = mem.slot as u16; + + // 检查内存对齐以及32位检测(虽然现在没什么用<) + if (mem.memory_size as usize & MMArch::PAGE_SIZE != 0) + || mem.memory_size != mem.memory_size as usize as u64 + { + return Err(SystemError::EINVAL); + } + + if !mem.guest_phys_addr.check_aligned(MMArch::PAGE_SIZE) { + return Err(SystemError::EINVAL); + } + + if !mem.userspace_addr.check_aligned(MMArch::PAGE_SIZE) { + // 这里应该还需要判断从userspace_addr->userspace_addr+memory_size这段区间都是合法的 + return Err(SystemError::EINVAL); + } + + if as_id >= KVM_ADDRESS_SPACE_NUM as u32 || id >= KVM_MEM_SLOTS_NUM { + return Err(SystemError::EINVAL); + } + + if (mem.memory_size >> MMArch::PAGE_SHIFT) > KVM_MEM_MAX_NR_PAGES as u64 { + return Err(SystemError::EINVAL); + } + + let slots = self.memslot_set(as_id as usize).clone(); + + let slots_guard = slots.lock(); + let old = slots_guard.get_slot(id); + if mem.memory_size == 0 { + if let Some(old) = &old { + let old_npages = old.read().npages; + if old_npages == 0 { + return Err(SystemError::EINVAL); + } + + if self.nr_memslot_pages < old_npages { + return Err(SystemError::EIO); + } + drop(slots_guard); + return self.set_memslot(Some(&old), None, KvmMemoryChangeMode::Delete); + } else { + return Err(SystemError::EINVAL); + } + } + + let base_gfn = (mem.guest_phys_addr.data() >> MMArch::PAGE_SHIFT) as u64; + let npages = mem.memory_size >> MMArch::PAGE_SHIFT; + + let change; + if let Some(old) = &old { + let old_guard = old.read(); + if old_guard.npages == 0 { + change = KvmMemoryChangeMode::Create; + // 避免溢出 + if self.nr_memslot_pages + (npages as usize) < self.nr_memslot_pages { + return Err(SystemError::EINVAL); + } + } else { + if mem.userspace_addr != old_guard.userspace_addr + || npages != old_guard.npages as u64 + || (mem.flags ^ old_guard.flags).contains(UserMemRegionFlag::READONLY) + { + return Err(SystemError::EINVAL); + } + + if base_gfn != old_guard.base_gfn { + change = KvmMemoryChangeMode::Move; + } else if mem.flags != old_guard.flags { + change = KvmMemoryChangeMode::FlagsOnly; + } else { + return Ok(()); + } + } + } else { + change = KvmMemoryChangeMode::Create; + // 避免溢出 + if self.nr_memslot_pages + (npages as usize) < self.nr_memslot_pages { + return Err(SystemError::EINVAL); + } + }; + + if change == KvmMemoryChangeMode::Create || change == KvmMemoryChangeMode::Move { + if slots_guard.gfn_tree.contains_key(&base_gfn) { + return Err(SystemError::EEXIST); + } + } + + let new = LockedKvmMemSlot::new(); + let mut new_guard = new.write(); + + new_guard.as_id = as_id as u16; + new_guard.id = id; + new_guard.base_gfn = base_gfn; + new_guard.npages = npages as usize; + new_guard.flags = mem.flags; + new_guard.userspace_addr = mem.userspace_addr; + + drop(new_guard); + drop(slots_guard); + return self.set_memslot(old.as_ref(), Some(&new), change); + } + + #[inline] + /// 获取活动内存插槽 + fn memslot_set(&self, id: usize) -> &Arc { + // 避免越界 + let id = id % KVM_ADDRESS_SPACE_NUM; + &self.memslots[id] + } + + #[inline(never)] + fn set_memslot( + &mut self, + old: Option<&Arc>, + new: Option<&Arc>, + change: KvmMemoryChangeMode, + ) -> Result<(), SystemError> { + let invalid_slot = LockedKvmMemSlot::new(); + if change == KvmMemoryChangeMode::Delete || change == KvmMemoryChangeMode::Move { + self.invalidate_memslot(old.unwrap(), &invalid_slot) + } + + match self.prepare_memory_region(old, new, change) { + Ok(_) => {} + Err(e) => { + if change == KvmMemoryChangeMode::Delete || change == KvmMemoryChangeMode::Move { + self.active_memslot(Some(&invalid_slot), old) + } + return Err(e); + } + } + + match change { + KvmMemoryChangeMode::Create => self.create_memslot(new), + KvmMemoryChangeMode::Delete => self.delete_memslot(old, &invalid_slot), + KvmMemoryChangeMode::Move => self.move_memslot(old, new, &invalid_slot), + KvmMemoryChangeMode::FlagsOnly => self.update_flags_memslot(old, new), + } + + // TODO:kvm_commit_memory_region(kvm, old, new, change); + Ok(()) + } + + fn create_memslot(&mut self, new: Option<&Arc>) { + self.replace_memslot(None, new); + self.active_memslot(None, new); + } + + fn delete_memslot( + &mut self, + old: Option<&Arc>, + invalid_slot: &Arc, + ) { + self.replace_memslot(old, None); + self.active_memslot(Some(invalid_slot), None); + } + + fn move_memslot( + &mut self, + old: Option<&Arc>, + new: Option<&Arc>, + invalid_slot: &Arc, + ) { + self.replace_memslot(old, new); + self.active_memslot(Some(invalid_slot), new); + } + + fn update_flags_memslot( + &mut self, + old: Option<&Arc>, + new: Option<&Arc>, + ) { + self.replace_memslot(old, new); + self.active_memslot(old, new); + } + + fn prepare_memory_region( + &self, + old: Option<&Arc>, + new: Option<&Arc>, + change: KvmMemoryChangeMode, + ) -> Result<(), SystemError> { + if change != KvmMemoryChangeMode::Delete { + let new = new.unwrap(); + let mut new_guard = new.write(); + if !new_guard.flags.contains(UserMemRegionFlag::LOG_DIRTY_PAGES) { + new_guard.dirty_bitmap = None; + } else if old.is_some() { + let old_guard = old.unwrap().read(); + if old_guard.dirty_bitmap.is_some() { + new_guard.dirty_bitmap = old_guard.dirty_bitmap.clone(); + } else { + new_guard.dirty_bitmap = Some(AllocBitmap::new(new_guard.npages * 2)); + } + } + } + + return self.arch_prepare_memory_region(old, new, change); + } + + fn invalidate_memslot( + &mut self, + old: &Arc, + invalid_slot: &Arc, + ) { + invalid_slot.copy_from(old); + + let mut old_guard = old.write(); + let mut invalid_slot_guard = invalid_slot.write(); + invalid_slot_guard + .flags + .insert(UserMemRegionFlag::KVM_MEMSLOT_INVALID); + + self.swap_active_memslots(old_guard.as_id as usize); + + old_guard.arch = invalid_slot_guard.arch; + } + + #[inline(never)] + fn active_memslot( + &mut self, + old: Option<&Arc>, + new: Option<&Arc>, + ) { + let as_id = if let Some(slot) = old.or(new) { + slot.read().as_id + } else { + 0 + }; + + self.swap_active_memslots(as_id as usize); + + self.replace_memslot(old, new); + } + + #[inline(never)] + fn replace_memslot( + &self, + old: Option<&Arc>, + new: Option<&Arc>, + ) { + let as_id = if let Some(slot) = old.or(new) { + slot.read().as_id + } else { + 0 + }; + + let slot_set = self.get_inactive_memslot_set(as_id as usize); + + let mut slots_guard = slot_set.lock(); + let idx = slots_guard.node_idx; + + if let Some(old) = old { + slots_guard.hva_tree.remove(&old.read().hva_node_key[idx]); + + if let Some(last) = &slots_guard.last_use { + if Arc::ptr_eq(last, old) { + slots_guard.last_use = new.map(|x| x.clone()); + } + } + + if new.is_none() { + slots_guard.gfn_tree.remove(&old.read().base_gfn); + return; + } + } + + let new = new.unwrap(); + let mut new_guard = new.write(); + new_guard.hva_node_key[idx].start = new_guard.userspace_addr; + new_guard.hva_node_key[idx].last = + new_guard.userspace_addr + VirtAddr::new((new_guard.npages << MMArch::PAGE_SHIFT) - 1); + + slots_guard + .hva_tree + .insert(new_guard.hva_node_key[idx], new.clone()); + + if let Some(old) = old { + slots_guard.gfn_tree.remove(&old.read().base_gfn); + } + + slots_guard.gfn_tree.insert(new_guard.base_gfn, new.clone()); + } + + fn get_inactive_memslot_set(&self, as_id: usize) -> Arc { + let active = self.memslot_set(as_id); + + let inactive_idx = active.lock().node_idx ^ 1; + return self.memslots_set[as_id][inactive_idx].clone(); + } + + fn swap_active_memslots(&mut self, as_id: usize) { + self.memslots[as_id] = self.get_inactive_memslot_set(as_id); + } +} diff --git a/kernel/src/virt/vm/kvm_host/mod.rs b/kernel/src/virt/vm/kvm_host/mod.rs index 92e915644..2c636c42a 100644 --- a/kernel/src/virt/vm/kvm_host/mod.rs +++ b/kernel/src/virt/vm/kvm_host/mod.rs @@ -1,28 +1,232 @@ -use core::sync::atomic::AtomicUsize; +use core::{ + fmt::Debug, + sync::atomic::{AtomicUsize, Ordering}, +}; -use alloc::string::String; +use alloc::{ + alloc::Global, + boxed::Box, + sync::{Arc, Weak}, + vec::Vec, +}; +use hashbrown::HashMap; +use system_error::SystemError; +use x86::bits64::registers::rsp; -use crate::mm::ucontext::AddressSpace; +use crate::{ + arch::{ + vm::{kvm_host::vcpu::VirCpuRequest, x86_kvm_manager}, + CurrentKvmManager, KvmArch, VirtCpuArch, + }, + filesystem::vfs::file::{File, FileMode}, + libs::spinlock::{SpinLock, SpinLockGuard}, + mm::ucontext::AddressSpace, + process::{KernelStack, ProcessManager}, + smp::cpu::ProcessorId, + virt::vm::{ + kvm_dev::KvmVcpuDev, + kvm_host::vcpu::{LockedVirtCpu, VirtCpu}, + }, +}; +use self::{ + mem::{GfnToHvaCache, KvmMemSlotSet, LockedVmMemSlotSet, PfnCacheUsage}, + vcpu::GuestDebug, +}; + +pub mod mem; pub mod vcpu; const KVM_ADDRESS_SPACE_NUM: usize = 1; +pub const KVM_USERSAPCE_IRQ_SOURCE_ID: usize = 0; +pub const KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID: usize = 1; + +#[derive(Debug)] +pub struct LockedVm { + inner: SpinLock, +} + +static KVM_USAGE_COUNT: AtomicUsize = AtomicUsize::new(0); + +impl LockedVm { + pub fn lock(&self) -> SpinLockGuard { + self.inner.lock() + } + + pub fn create(vm_type: usize) -> Result, SystemError> { + let mut memslots_set = vec![]; + let mut memslots = vec![]; + for i in 0..KVM_ADDRESS_SPACE_NUM { + let mut tmp = vec![]; + for j in 0..2 { + let mut slots = KvmMemSlotSet::default(); + slots.last_use = None; + slots.node_idx = j; + slots.generation = i as u64; + tmp.push(LockedVmMemSlotSet::new(slots)); + } + memslots_set.push(tmp); + memslots.push(memslots_set[i][0].clone()); + } + + let kvm = Vm { + mm: ProcessManager::current_pcb() + .basic() + .user_vm() + .unwrap() + .write() + .try_clone()?, + max_vcpus: CurrentKvmManager::KVM_MAX_VCPUS, + memslots_set, + memslots, + arch: KvmArch::init(vm_type)?, + created_vcpus: 0, + lock_vm_ref: Weak::new(), + nr_memslot_pages: 0, + online_vcpus: 0, + dirty_ring_size: 0, + dirty_ring_with_bitmap: false, + vcpus: HashMap::new(), + }; + + let ret = Arc::new(Self { + inner: SpinLock::new(kvm), + }); + + Self::hardware_enable_all()?; -pub struct KvmMemSlots { - /// 最后一次使用到的内存插槽 - last_use: AtomicUsize, - /// 存储虚拟地址(hva)和内存插槽之间的映射关系 - // Rbt - /// 用于存储全局页帧号(gfn)和内存插槽之间的映射关系 - // Rbt - /// 将内存插槽的ID映射到对应的内存插槽。 - // HashMap - /// 节点索引 - node_idx: usize, + ret.lock().lock_vm_ref = Arc::downgrade(&ret); + return Ok(ret); + } + + fn hardware_enable_all() -> Result<(), SystemError> { + KVM_USAGE_COUNT.fetch_add(1, Ordering::SeqCst); + + // 如果是第一个启动的,则需要对所有cpu都初始化硬件 + if KVM_USAGE_COUNT.load(Ordering::SeqCst) == 1 { + // FIXME!!!! + // 这里是要对每个cpu都进行初始化,目前这里只对当前cpu调用了初始化流程 + x86_kvm_manager().arch_hardware_enable()?; + } + + Ok(()) + } } +#[derive(Debug)] pub struct Vm { - mm: AddressSpace, + lock_vm_ref: Weak, + mm: Arc, max_vcpus: usize, - name: String, + created_vcpus: usize, + online_vcpus: usize, + /// vcpu集合 + vcpus: HashMap>, + // name: String, + /// 对应活动和非活动内存槽,实际为:[[Arc; 2]; KVM_ADDRESS_SPACE_NUM],这里暂时写Vec + memslots_set: Vec>>, + /// 当前活动内存槽,实际为:[Arc; KVM_ADDRESS_SPACE_NUM],这里暂时写Vec + memslots: Vec>, + /// 内存槽对应的页数 + nr_memslot_pages: usize, + + pub arch: KvmArch, + + pub dirty_ring_size: u32, + dirty_ring_with_bitmap: bool, +} + +#[inline] +pub fn check_stack_usage() { + let rsp = rsp() as usize; + let free = rsp & (KernelStack::ALIGN - 1); + let usage = KernelStack::SIZE - free; + kdebug!("current rsp {rsp:x} stack use {usage} free {free}"); +} + +impl Vm { + #[inline(never)] + pub fn create_vcpu(&mut self, id: usize) -> Result { + check_stack_usage(); + if id >= self.max_vcpus { + return Err(SystemError::EINVAL); + } + + if self.created_vcpus >= self.max_vcpus { + return Err(SystemError::EINVAL); + } + + self.created_vcpus += 1; + + let vcpu = self._create_vcpu(id); + if self.dirty_ring_size != 0 { + todo!() + } + + vcpu.lock().vcpu_id = self.online_vcpus; + + self.vcpus.insert(self.online_vcpus, vcpu.clone()); + + self.online_vcpus += 1; + + let vcpu_inode = KvmVcpuDev::new(vcpu); + + let file = File::new(vcpu_inode, FileMode::from_bits_truncate(0x777))?; + + let fd = ProcessManager::current_pcb() + .fd_table() + .write() + .alloc_fd(file, None)?; + + Ok(fd as usize) + } + + /// ### 创建一个vcpu,并且初始化部分数据 + #[inline(never)] + pub fn _create_vcpu(&self, id: usize) -> Arc { + check_stack_usage(); + + let mut vcpu = self.new_vcpu(id); + + vcpu.init_arch(self); + + Arc::new(LockedVirtCpu::new(vcpu)) + } + + #[inline(never)] + pub fn new_vcpu(&self, id: usize) -> VirtCpu { + return VirtCpu { + cpu: ProcessorId::INVALID, + kvm: Some(self.lock_vm_ref.clone()), + vcpu_id: id, + pid: None, + preempted: false, + ready: false, + last_used_slot: None, + stats_id: format!("kvm-{}/vcpu-{}", ProcessManager::current_pid().data(), id), + pv_time: GfnToHvaCache::init(self.lock_vm_ref.clone(), PfnCacheUsage::HOST_USES_PFN), + arch: VirtCpuArch::new(), + private: None, + request: VirCpuRequest::empty(), + guest_debug: GuestDebug::empty(), + run: unsafe { Some(Box::new_zeroed().assume_init()) }, + vcpu_idx: 0, + }; + } +} + +/// ## 多处理器状态(有些状态在某些架构并不合法) +#[derive(Debug, Clone, Copy)] +pub enum MutilProcessorState { + Runnable, + Uninitialized, + InitReceived, + Halted, + SipiReceived, + Stopped, + CheckStop, + Operating, + Load, + ApResetHold, + Suspended, } diff --git a/kernel/src/virt/vm/kvm_host/vcpu.rs b/kernel/src/virt/vm/kvm_host/vcpu.rs index fc54f11a4..d51f4dbbd 100644 --- a/kernel/src/virt/vm/kvm_host/vcpu.rs +++ b/kernel/src/virt/vm/kvm_host/vcpu.rs @@ -1,51 +1,94 @@ -use alloc::{string::String, sync::Arc}; +use core::mem::MaybeUninit; + +use alloc::{ + alloc::Global, + boxed::Box, + string::String, + sync::{Arc, Weak}, +}; use crate::{ + arch::{ + vm::{kvm_host::vcpu::VirCpuRequest, vmx::VmxVCpuPriv}, + VirtCpuArch, + }, + libs::{ + lazy_init::Lazy, + spinlock::{SpinLock, SpinLockGuard}, + }, process::{Pid, ProcessManager}, smp::cpu::ProcessorId, + virt::vm::{kvm_host::check_stack_usage, user_api::UapiKvmRun}, }; -use super::{KvmMemSlots, Vm}; +use super::{ + mem::{GfnToHvaCache, KvmMemSlot, PfnCacheUsage}, + LockedVm, Vm, +}; -pub struct VirtCpu { - cpu: ProcessorId, - kvm: Arc, - vcpu_id: usize, - pid: Option, - preempted: bool, - ready: bool, - last_used_slot: Option>, - stats_id: String, +#[derive(Debug)] +pub struct LockedVirtCpu { + inner: SpinLock, } -impl VirtCpu { - /// ### 创建一个vcpu,并且初始化部分数据 - pub fn create(vm: Arc, id: usize) -> Self { +impl LockedVirtCpu { + pub fn new(vcpu: VirtCpu) -> Self { Self { - cpu: ProcessorId::INVALID, - kvm: vm, - vcpu_id: id, - pid: None, - preempted: false, - ready: false, - last_used_slot: None, - stats_id: format!("kvm-{}/vcpu-{}", ProcessManager::current_pid().data(), id), + inner: SpinLock::new(vcpu), } } + + pub fn lock(&self) -> SpinLockGuard { + self.inner.lock() + } +} + +#[derive(Debug)] +pub struct VirtCpu { + pub cpu: ProcessorId, + pub kvm: Option>, + /// 从用户层获取 + pub vcpu_id: usize, + /// id alloctor获取 + pub vcpu_idx: usize, + pub pid: Option, + pub preempted: bool, + pub ready: bool, + pub last_used_slot: Option>, + pub stats_id: String, + pub pv_time: GfnToHvaCache, + pub arch: VirtCpuArch, + + pub guest_debug: GuestDebug, + + #[cfg(target_arch = "x86_64")] + pub private: Option, + + /// 记录请求 + pub request: VirCpuRequest, + pub run: Option>, +} + +impl VirtCpu { + #[inline] + pub fn kvm(&self) -> Arc { + self.kvm.as_ref().unwrap().upgrade().unwrap() + } + + #[cfg(target_arch = "x86_64")] + pub fn vmx(&self) -> &VmxVCpuPriv { + self.private.as_ref().unwrap() + } + + #[cfg(target_arch = "x86_64")] + pub fn vmx_mut(&mut self) -> &mut VmxVCpuPriv { + self.private.as_mut().unwrap() + } } -/// ## 多处理器状态(有些状态在某些架构并不合法) -#[derive(Debug, Clone, Copy)] -pub enum MutilProcessorState { - Runnable, - Uninitialized, - InitReceived, - Halted, - SipiReceived, - Stopped, - CheckStop, - Operating, - Load, - ApResetHold, - Suspended, +bitflags! { + pub struct GuestDebug: usize { + const ENABLE = 0x00000001; + const SINGLESTEP = 0x00000002; + } } diff --git a/kernel/src/virt/vm/mod.rs b/kernel/src/virt/vm/mod.rs index cf82f0060..048b943e3 100644 --- a/kernel/src/virt/vm/mod.rs +++ b/kernel/src/virt/vm/mod.rs @@ -1 +1,3 @@ -pub mod kvm_host; \ No newline at end of file +pub mod kvm_dev; +pub mod kvm_host; +pub mod user_api; diff --git a/kernel/src/virt/vm/user_api.rs b/kernel/src/virt/vm/user_api.rs new file mode 100644 index 000000000..57a5424f2 --- /dev/null +++ b/kernel/src/virt/vm/user_api.rs @@ -0,0 +1,430 @@ +use core::fmt::Debug; + +/// +/// 该文件定义了暴露给用户空间的结构体 +/// +use system_error::SystemError; + +use crate::mm::{PhysAddr, VirtAddr}; + +use super::kvm_host::mem::UserMemRegionFlag; + +/// 通过这个结构可以将虚拟机的物理地址对应到用户进程的虚拟地址 +/// 用来表示虚拟机的一段物理内存 +#[repr(C)] +#[derive(Default)] +pub struct PosixKvmUserspaceMemoryRegion { + /// 在哪个slot上注册内存区间 + pub slot: u32, + /// flags有两个取值,KVM_MEM_LOG_DIRTY_PAGES和KVM_MEM_READONLY,用来指示kvm针对这段内存应该做的事情。 + /// KVM_MEM_LOG_DIRTY_PAGES用来开启内存脏页,KVM_MEM_READONLY用来开启内存只读。 + pub flags: u32, + /// 虚机内存区间起始物理地址 + pub guest_phys_addr: u64, + /// 虚机内存区间大小 + pub memory_size: u64, + /// 虚机内存区间对应的主机虚拟地址 + pub userspace_addr: u64, +} + +/// PosixKvmUserspaceMemoryRegion对应内核表示 +pub struct KvmUserspaceMemoryRegion { + /// 在哪个slot上注册内存区间 + pub slot: u32, + /// 用来指示kvm针对这段内存应该做的事情。 + /// KVM_MEM_LOG_DIRTY_PAGES用来开启内存脏页,KVM_MEM_READONLY用来开启内存只读。 + pub flags: UserMemRegionFlag, + /// 虚机内存区间起始物理地址 + pub guest_phys_addr: PhysAddr, + /// 虚机内存区间大小 + pub memory_size: u64, + /// 虚机内存区间对应的主机虚拟地址 + pub userspace_addr: VirtAddr, +} + +impl KvmUserspaceMemoryRegion { + pub fn from_posix(posix: &PosixKvmUserspaceMemoryRegion) -> Result { + let flags = UserMemRegionFlag::from_bits(posix.flags).ok_or(SystemError::EINVAL)?; + Ok(Self { + slot: posix.slot, + flags, + guest_phys_addr: PhysAddr::new(posix.guest_phys_addr as usize), + memory_size: posix.memory_size, + userspace_addr: VirtAddr::new(posix.userspace_addr as usize), + }) + } +} + +#[repr(C)] +#[derive(Copy, Clone, Debug)] +pub struct UapiKvmRun { + pub request_interrupt_window: u8, + pub immediate_exit: u8, + pub padding1: [u8; 6usize], + pub exit_reason: u32, + pub ready_for_interrupt_injection: u8, + pub if_flag: u8, + pub flags: u16, + pub cr8: u64, + pub apic_base: u64, + pub __bindgen_anon_1: uapi_kvm_run__bindgen_ty_1, + pub kvm_valid_regs: u64, + pub kvm_dirty_regs: u64, + pub s: uapi_kvm_run__bindgen_ty_2, +} + +#[repr(C)] +#[derive(Copy, Clone)] +pub union uapi_kvm_run__bindgen_ty_2 { + pub regs: UapiKvmSyncRegs, + pub padding: [u8; 2048usize], +} + +impl Debug for uapi_kvm_run__bindgen_ty_2 { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + f.debug_struct("uapi_kvm_run__bindgen_ty_2").finish() + } +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmSyncRegs { + pub device_irq_level: u64, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy1 { + pub hardware_exit_reason: u64, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy2 { + pub hardware_entry_failure_reason: u64, + pub cpu: u32, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy3 { + pub exception: u32, + pub error_code: u32, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy4 { + pub direction: u8, + pub size: u8, + pub port: u16, + pub count: u32, + pub data_offset: u64, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmDebugExitArch { + pub hsr: u32, + pub hsr_high: u32, + pub far: u64, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy5 { + pub arch: UapiKvmDebugExitArch, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy6 { + pub phys_addr: u64, + pub data: [u8; 8usize], + pub len: u32, + pub is_write: u8, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy7 { + pub nr: u64, + pub args: [u64; 6usize], + pub ret: u64, + pub longmode: u32, + pub pad: u32, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy8 { + pub rip: u64, + pub is_write: u32, + pub pad: u32, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy9 { + pub icptcode: u8, + pub ipa: u16, + pub ipb: u32, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy10 { + pub trans_exc_code: u64, + pub pgm_code: u32, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy11 { + pub dcrn: u32, + pub data: u32, + pub is_write: u8, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy12 { + pub suberror: u32, + pub ndata: u32, + pub data: [u64; 16usize], +} + +#[repr(C)] +#[derive(Copy, Clone)] +pub struct UapiKvmRunBindgenTy1BindgenTy13 { + pub suberror: u32, + pub ndata: u32, + pub flags: u64, + pub __bindgen_anon_1: uapi_kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1, +} + +#[repr(C)] +#[derive(Copy, Clone)] +pub union uapi_kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1 { + pub __bindgen_anon_1: UapiKvmRunBindgenTy1BindgenTy13BindgenTy1BindgenTy1, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy13BindgenTy1BindgenTy1 { + pub insn_size: u8, + pub insn_bytes: [u8; 15usize], +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy14 { + pub gprs: [u64; 32usize], +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy15 { + pub nr: u64, + pub ret: u64, + pub args: [u64; 9usize], +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy16 { + pub subchannel_id: u16, + pub subchannel_nr: u16, + pub io_int_parm: u32, + pub io_int_word: u32, + pub ipb: u32, + pub dequeued: u8, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy17 { + pub epr: u32, +} + +#[repr(C)] +#[derive(Copy, Clone)] +pub struct UapiKvmRunBindgenTy1BindgenTy18 { + pub type_: u32, + pub ndata: u32, + pub __bindgen_anon_1: uapi_kvm_run__bindgen_ty_1__bindgen_ty_18__bindgen_ty_1, +} + +#[repr(C)] +#[derive(Copy, Clone)] +pub union uapi_kvm_run__bindgen_ty_1__bindgen_ty_18__bindgen_ty_1 { + pub flags: u64, + pub data: [u64; 16usize], +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy19 { + pub addr: u64, + pub ar: u8, + pub reserved: u8, + pub fc: u8, + pub sel1: u8, + pub sel2: u16, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy20 { + pub vector: u8, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy21 { + pub esr_iss: u64, + pub fault_ipa: u64, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy22 { + pub error: u8, + pub pad: [u8; 7usize], + pub reason: u32, + pub index: u32, + pub data: u64, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy23 { + pub extension_id: usize, + pub function_id: usize, + pub args: [usize; 6usize], + pub ret: [usize; 2usize], +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy24 { + pub csr_num: usize, + pub new_value: usize, + pub write_mask: usize, + pub ret_value: usize, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmRunBindgenTy1BindgenTy25 { + pub flags: u32, +} + +#[repr(C)] +#[derive(Copy, Clone)] +pub union uapi_kvm_run__bindgen_ty_1 { + pub hw: UapiKvmRunBindgenTy1BindgenTy1, + pub fail_entry: UapiKvmRunBindgenTy1BindgenTy2, + pub ex: UapiKvmRunBindgenTy1BindgenTy3, + pub io: UapiKvmRunBindgenTy1BindgenTy4, + pub debug: UapiKvmRunBindgenTy1BindgenTy5, + pub mmio: UapiKvmRunBindgenTy1BindgenTy6, + pub hypercall: UapiKvmRunBindgenTy1BindgenTy7, + pub tpr_access: UapiKvmRunBindgenTy1BindgenTy8, + pub s390_sieic: UapiKvmRunBindgenTy1BindgenTy9, + pub s390_reset_flags: u64, + pub s390_ucontrol: UapiKvmRunBindgenTy1BindgenTy10, + pub dcr: UapiKvmRunBindgenTy1BindgenTy11, + pub internal: UapiKvmRunBindgenTy1BindgenTy12, + pub emulation_failure: UapiKvmRunBindgenTy1BindgenTy13, + pub osi: UapiKvmRunBindgenTy1BindgenTy14, + pub papr_hcall: UapiKvmRunBindgenTy1BindgenTy15, + pub s390_tsch: UapiKvmRunBindgenTy1BindgenTy16, + pub epr: UapiKvmRunBindgenTy1BindgenTy17, + pub system_event: UapiKvmRunBindgenTy1BindgenTy18, + pub s390_stsi: UapiKvmRunBindgenTy1BindgenTy19, + pub eoi: UapiKvmRunBindgenTy1BindgenTy20, + pub hyperv: UapiKvmHypervExit, + pub arm_nisv: UapiKvmRunBindgenTy1BindgenTy21, + pub msr: UapiKvmRunBindgenTy1BindgenTy22, + pub xen: UapiKvmXenExit, + pub riscv_sbi: UapiKvmRunBindgenTy1BindgenTy23, + pub riscv_csr: UapiKvmRunBindgenTy1BindgenTy24, + pub notify: UapiKvmRunBindgenTy1BindgenTy25, + pub padding: [u8; 256usize], +} + +impl Debug for uapi_kvm_run__bindgen_ty_1 { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + f.debug_struct("uapi_kvm_run__bindgen_ty_1").finish() + } +} + +#[repr(C)] +#[derive(Copy, Clone)] +pub struct UapiKvmHypervExit { + pub type_: u32, + pub pad1: u32, + pub u: uapi_kvm_hyperv_exit__bindgen_ty_1, +} + +#[repr(C)] +#[derive(Copy, Clone)] +pub union uapi_kvm_hyperv_exit__bindgen_ty_1 { + pub synic: UapiKvmHypervExitBindgenTy1BindgenTy1, + pub hcall: UapiKvmHypervExitBindgenTy1BindgenTy2, + pub syndbg: UapiKvmHypervExitBindgenTy1BindgenTy3, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmHypervExitBindgenTy1BindgenTy1 { + pub msr: u32, + pub pad2: u32, + pub control: u64, + pub evt_page: u64, + pub msg_page: u64, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmHypervExitBindgenTy1BindgenTy2 { + pub input: u64, + pub result: u64, + pub params: [u64; 2usize], +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmHypervExitBindgenTy1BindgenTy3 { + pub msr: u32, + pub pad2: u32, + pub control: u64, + pub status: u64, + pub send_page: u64, + pub recv_page: u64, + pub pending_page: u64, +} + +#[repr(C)] +#[derive(Copy, Clone)] +pub struct UapiKvmXenExit { + pub type_: u32, + pub u: uapi_kvm_xen_exit__bindgen_ty_1, +} + +#[repr(C)] +#[derive(Copy, Clone)] +pub union uapi_kvm_xen_exit__bindgen_ty_1 { + pub hcall: UapiKvmXenExitBindgenTy1BindgenTy1, +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmXenExitBindgenTy1BindgenTy1 { + pub longmode: u32, + pub cpl: u32, + pub input: u64, + pub result: u64, + pub params: [u64; 6usize], +} diff --git a/user/apps/test_kvm/main.c b/user/apps/test_kvm/main.c index fd60ccb6f..739953568 100644 --- a/user/apps/test_kvm/main.c +++ b/user/apps/test_kvm/main.c @@ -19,11 +19,14 @@ #include #include #include +#include +#include -#define KVM_CREATE_VCPU 0x00 -#define KVM_SET_USER_MEMORY_REGION 0x01 +#define KVM_CREATE_VM 0xAE01 +#define KVM_CREATE_VCPU 0xAE41 +#define KVM_SET_USER_MEMORY_REGION 0xAE46 -#define KVM_RUN 0x00 +#define KVM_RUN 0xAE80 #define KVM_GET_REGS 0x01 #define KVM_SET_REGS 0x02 @@ -64,7 +67,7 @@ int main() printf("Test kvm running...\n"); printf("Open /dev/kvm\n"); int kvm_fd = open("/dev/kvm", O_RDWR|O_CLOEXEC); - int vmfd = ioctl(kvm_fd, 0x01, 0); + int vmfd = ioctl(kvm_fd, KVM_CREATE_VM, 0); printf("vmfd=%d\n", vmfd); /* @@ -84,16 +87,17 @@ int main() 0xf4, /* hlt */ }; - size_t mem_size = 0x4000; // size of user memory you want to assign + size_t mem_size = 0x1000; // size of user memory you want to assign printf("code=%p\n", code); - // void *mem = mmap(0, mem_size, 0x7, -1, 0); - // memcpy(mem, code, sizeof(code)); + void *mem = mmap((void*)65536, mem_size, 0x7, 0x20, 0,0); + memcpy(mem, code, sizeof(code)); + printf("map mem=%p\n", mem); struct kvm_userspace_memory_region region = { .slot = 0, .flags = 0, .guest_phys_addr = 0, .memory_size = mem_size, - .userspace_addr = (size_t)code + .userspace_addr = (size_t)mem }; ioctl(vmfd, KVM_SET_USER_MEMORY_REGION, ®ion); From acd7f16deb583b9673eeccf417486a38089ba66c Mon Sep 17 00:00:00 2001 From: GnoCiYeH Date: Tue, 21 May 2024 01:11:17 +0800 Subject: [PATCH 03/18] =?UTF-8?q?kvm=5Frun=E5=AE=8C=E6=88=90=E4=B8=80?= =?UTF-8?q?=E5=8D=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kernel_build/src/cfiles/arch/x86_64.rs | 1 + kernel/crates/bitmap/src/alloc_bitmap.rs | 4 + kernel/crates/bitmap/src/bitmap_core.rs | 30 +- kernel/crates/bitmap/src/lib.rs | 1 + kernel/src/arch/x86_64/vm/asm.rs | 90 +- kernel/src/arch/x86_64/vm/kvm_host/lapic.rs | 37 +- kernel/src/arch/x86_64/vm/kvm_host/mod.rs | 94 +- kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs | 794 +++++- kernel/src/arch/x86_64/vm/mmu.rs | 43 + kernel/src/arch/x86_64/vm/mod.rs | 79 +- kernel/src/arch/x86_64/vm/uapi.rs | 58 + kernel/src/arch/x86_64/vm/vmx/capabilities.rs | 86 +- kernel/src/arch/x86_64/vm/vmx/mod.rs | 2220 ++++++++++++++++- kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs | 135 +- kernel/src/arch/x86_64/vm/vmx/vmenter.S | 179 ++ kernel/src/virt/vm/kvm_dev.rs | 88 +- kernel/src/virt/vm/kvm_host/mem.rs | 2 +- kernel/src/virt/vm/kvm_host/mod.rs | 38 +- kernel/src/virt/vm/kvm_host/vcpu.rs | 3 +- kernel/src/virt/vm/user_api.rs | 36 + 20 files changed, 3776 insertions(+), 242 deletions(-) create mode 100644 kernel/src/arch/x86_64/vm/uapi.rs create mode 100644 kernel/src/arch/x86_64/vm/vmx/vmenter.S diff --git a/build-scripts/kernel_build/src/cfiles/arch/x86_64.rs b/build-scripts/kernel_build/src/cfiles/arch/x86_64.rs index e473a8a9c..5b7bbec58 100644 --- a/build-scripts/kernel_build/src/cfiles/arch/x86_64.rs +++ b/build-scripts/kernel_build/src/cfiles/arch/x86_64.rs @@ -45,6 +45,7 @@ impl CFilesArch for X86_64CFilesArch { files.push(PathBuf::from("src/arch/x86_64/asm/head.S")); files.push(PathBuf::from("src/arch/x86_64/asm/entry.S")); files.push(PathBuf::from("src/arch/x86_64/asm/apu_boot.S")); + files.push(PathBuf::from("src/arch/x86_64/vm/vmx/vmenter.S")); } fn setup_global_flags(&self, c: &mut Build) { diff --git a/kernel/crates/bitmap/src/alloc_bitmap.rs b/kernel/crates/bitmap/src/alloc_bitmap.rs index 36ee33e3d..1d2d4d311 100644 --- a/kernel/crates/bitmap/src/alloc_bitmap.rs +++ b/kernel/crates/bitmap/src/alloc_bitmap.rs @@ -18,6 +18,10 @@ impl AllocBitmap { core: BitMapCore::new(), } } + + pub fn data(&self) -> &[usize] { + &self.data + } } impl BitMapOps for AllocBitmap { diff --git a/kernel/crates/bitmap/src/bitmap_core.rs b/kernel/crates/bitmap/src/bitmap_core.rs index 20babb274..384e32776 100644 --- a/kernel/crates/bitmap/src/bitmap_core.rs +++ b/kernel/crates/bitmap/src/bitmap_core.rs @@ -3,7 +3,7 @@ use core::{intrinsics::unlikely, marker::PhantomData}; use crate::traits::BitOps; #[derive(Debug, Clone)] -pub(crate) struct BitMapCore { +pub struct BitMapCore { phantom: PhantomData, } @@ -15,7 +15,7 @@ impl BitMapCore { } /// 获取位图中的某一位 - pub(crate) fn get(&self, n: usize, data: &[T], index: usize) -> Option { + pub fn get(&self, n: usize, data: &[T], index: usize) -> Option { if unlikely(index >= n) { return None; } @@ -30,7 +30,7 @@ impl BitMapCore { } /// 设置位图中的某一位 - pub(crate) fn set(&self, n: usize, data: &mut [T], index: usize, value: bool) -> Option { + pub fn set(&self, n: usize, data: &mut [T], index: usize, value: bool) -> Option { if unlikely(index >= n) { return None; } @@ -43,7 +43,7 @@ impl BitMapCore { Some(bit) } - pub(crate) fn set_all(&self, n: usize, data: &mut [T], value: bool) { + pub fn set_all(&self, n: usize, data: &mut [T], value: bool) { let val = if value { T::max() } else { T::zero() }; for element in data.iter_mut() { *element = val; @@ -58,7 +58,7 @@ impl BitMapCore { } /// 获取位图中第一个为1的位 - pub(crate) fn first_index(&self, data: &[T]) -> Option { + pub fn first_index(&self, data: &[T]) -> Option { for (i, element) in data.iter().enumerate() { let bit = ::first_index(element); if let Some(b) = bit { @@ -70,7 +70,7 @@ impl BitMapCore { } /// 获取位图中第一个为0的位 - pub(crate) fn first_false_index(&self, n: usize, data: &[T]) -> Option { + pub fn first_false_index(&self, n: usize, data: &[T]) -> Option { for (i, element) in data.iter().enumerate() { if let Some(bit) = ::first_false_index(element) { return self.make_index(n, i * T::bit_size() + bit); @@ -81,7 +81,7 @@ impl BitMapCore { } /// 获取位图中最后一个为1的位 - pub(crate) fn last_index(&self, n: usize, data: &[T]) -> Option { + pub fn last_index(&self, n: usize, data: &[T]) -> Option { for (i, element) in data.iter().enumerate().rev() { if let Some(bit) = ::last_index(element) { return self.make_index(n, i * T::bit_size() + bit); @@ -97,7 +97,7 @@ impl BitMapCore { /// /// - `data`:位图数据 /// - `n`:位图有效位数 - pub(crate) fn last_false_index(&self, n: usize, data: &[T]) -> Option { + pub fn last_false_index(&self, n: usize, data: &[T]) -> Option { let mut iter = data.iter().rev(); let mut last_element = *iter.next()?; @@ -123,7 +123,7 @@ impl BitMapCore { } /// 获取位图中下一个为1的位 - pub(crate) fn next_index(&self, n: usize, data: &[T], index: usize) -> Option { + pub fn next_index(&self, n: usize, data: &[T], index: usize) -> Option { if unlikely(index >= n) { return None; } @@ -146,7 +146,7 @@ impl BitMapCore { } /// 获取位图中下一个为0的位 - pub(crate) fn next_false_index(&self, n: usize, data: &[T], index: usize) -> Option { + pub fn next_false_index(&self, n: usize, data: &[T], index: usize) -> Option { if unlikely(index >= n) { return None; } @@ -169,7 +169,7 @@ impl BitMapCore { } /// 获取位图中上一个为1的位 - pub(crate) fn prev_index(&self, n: usize, data: &[T], index: usize) -> Option { + pub fn prev_index(&self, n: usize, data: &[T], index: usize) -> Option { if unlikely(index >= n) { return None; } @@ -190,7 +190,7 @@ impl BitMapCore { None } - pub(crate) fn prev_false_index(&self, n: usize, data: &[T], index: usize) -> Option { + pub fn prev_false_index(&self, n: usize, data: &[T], index: usize) -> Option { let element_index = index / T::bit_size(); let bit_index = index % T::bit_size(); @@ -208,7 +208,7 @@ impl BitMapCore { None } - pub(crate) fn invert(&self, n: usize, data: &mut [T]) { + pub fn invert(&self, n: usize, data: &mut [T]) { for element in data.iter_mut() { ::invert(element); } @@ -222,7 +222,7 @@ impl BitMapCore { } } - pub(crate) fn is_full(&self, n: usize, data: &[T]) -> bool { + pub fn is_full(&self, n: usize, data: &[T]) -> bool { let mut iter = data.iter().peekable(); while let Some(element) = iter.next() { if iter.peek().is_none() { @@ -245,7 +245,7 @@ impl BitMapCore { return false; } - pub(crate) fn is_empty(&self, data: &[T]) -> bool { + pub fn is_empty(&self, data: &[T]) -> bool { for element in data.iter() { if element != &T::zero() { return false; diff --git a/kernel/crates/bitmap/src/lib.rs b/kernel/crates/bitmap/src/lib.rs index 7af67331e..90efa492e 100644 --- a/kernel/crates/bitmap/src/lib.rs +++ b/kernel/crates/bitmap/src/lib.rs @@ -12,4 +12,5 @@ mod bitmap_core; mod static_bitmap; pub mod traits; pub use alloc_bitmap::AllocBitmap; +pub use bitmap_core::BitMapCore; pub use static_bitmap::StaticBitmap; diff --git a/kernel/src/arch/x86_64/vm/asm.rs b/kernel/src/arch/x86_64/vm/asm.rs index 92867c616..47271f740 100644 --- a/kernel/src/arch/x86_64/vm/asm.rs +++ b/kernel/src/arch/x86_64/vm/asm.rs @@ -1,6 +1,7 @@ use core::arch::asm; use alloc::slice; +use bitfield_struct::bitfield; use raw_cpuid::CpuId; use system_error::SystemError; use x86::{ @@ -11,10 +12,11 @@ use x86::{ IA32_VMX_CR4_FIXED0, IA32_VMX_CR4_FIXED1, }, }; +use x86_64::registers::xcontrol::XCr0; use crate::{ arch::mm::barrier, - kdebug, + kdebug, kwarn, mm::{phys_2_virt, PhysAddr}, }; @@ -31,6 +33,15 @@ impl KvmX86Asm { return 0; } + pub fn write_pkru(val: u32) { + let cpuid = CpuId::new(); + if let Some(feat) = cpuid.get_extended_feature_info() { + if feat.has_ospke() { + todo!(); + } + } + } + fn rdpkru() -> u32 { let ecx: u32 = 0; let pkru: u32; @@ -102,6 +113,11 @@ impl VmxAsm { } } + /// vmread the current VMCS. + pub fn vmx_vmread(vmcs_field: u32) -> u64 { + unsafe { x86::bits64::vmx::vmread(vmcs_field).expect("vmx_read fail: ") } + } + pub fn kvm_cpu_vmxon(phys_addr: PhysAddr) -> Result<(), SystemError> { unsafe { let mut cr4 = cr4(); @@ -121,6 +137,52 @@ impl VmxAsm { } } + const VMX_VPID_EXTENT_INDIVIDUAL_ADDR: u64 = 0; + const VMX_VPID_EXTENT_SINGLE_CONTEXT: u64 = 1; + const VMX_VPID_EXTENT_ALL_CONTEXT: u64 = 2; + const VMX_VPID_EXTENT_SINGLE_NON_GLOBAL: u64 = 3; + + pub fn sync_vcpu_single(vpid: u16) { + if vpid == 0 { + return; + } + + Self::invvpid(Self::VMX_VPID_EXTENT_SINGLE_CONTEXT, vpid, 0) + } + + pub fn sync_vcpu_global() { + Self::invvpid(Self::VMX_VPID_EXTENT_ALL_CONTEXT, 0, 0); + } + + #[inline(always)] + fn invvpid(ext: u64, vpid: u16, gva: u64) { + // 定义包含指令操作数的结构体 + #[bitfield(u128)] + struct Operand { + #[bits(16)] + vpid: u64, + #[bits(48)] + rsvd: u64, + gva: u64, + } + + // 构造操作数 + let mut operand = Operand::new(); + operand.set_vpid(vpid as u64); + operand.set_gva(gva); + + // 定义嵌入汇编块 + + kwarn!("TODO: asm invvpid"); + // unsafe { + // asm!( + // "invvpid {0} {1}", + // inlateout(reg) ext => _, + // inlateout(reg) &operand => _, + // ); + // } + } + /// Set the mandatory bits in CR4 and clear bits that are mandatory zero /// (Intel Manual: 24.8 Restrictions on VMX Operation) fn vmx_set_cr4_bits() { @@ -274,15 +336,16 @@ bitflags! { } } -#[derive(Debug, Default, Copy, Clone)] +#[derive(Debug, Default, Clone)] pub struct MsrData { pub host_initiated: bool, pub index: u32, pub data: u64, } +#[repr(C, align(16))] #[derive(Debug, Default, Copy, Clone)] -pub struct KvmMsrEntry { +pub struct VmxMsrEntry { pub index: u32, pub reserved: u32, pub data: u64, @@ -434,3 +497,24 @@ pub mod kvm_msr { pub const VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR: u64 = 0x00036dff; pub const VM_ENTRY_ALWAYSON_WITHOUT_TRUE_MSR: u64 = 0x000011ff; } + +#[derive(Debug, PartialEq, Clone, Copy)] +pub enum VcpuSegment { + ES, + CS, + SS, + DS, + FS, + GS, + TR, + LDTR, +} + +#[derive(Debug, PartialEq, Clone, Copy)] +pub enum SegmentCacheField { + SEL = 0, + BASE = 1, + LIMIT = 2, + AR = 3, + NR = 4, +} diff --git a/kernel/src/arch/x86_64/vm/kvm_host/lapic.rs b/kernel/src/arch/x86_64/vm/kvm_host/lapic.rs index dc41c2371..8a995e5c4 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/lapic.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/lapic.rs @@ -1,28 +1,47 @@ -use crate::{arch::kvm_arch_ops, virt::vm::kvm_host::vcpu::VirtCpu}; +use alloc::boxed::Box; + +use crate::{ + arch::{kvm_arch_ops, MMArch}, + kdebug, + mm::MemoryManagementArch, + virt::vm::kvm_host::{vcpu::VirtCpu, Vm}, +}; const APIC_DEFAULT_PHYS_BASE: u64 = 0xfee00000; const MSR_IA32_APICBASE: u64 = 0x0000001b; -const MSR_IA32_APICBASE_BSP: u64 = (1 << 8); -const MSR_IA32_APICBASE_ENABLE: u64 = (1 << 11); -const MSR_IA32_APICBASE_BASE: u64 = (0xfffff << 12); +const MSR_IA32_APICBASE_BSP: u64 = 1 << 8; +const MSR_IA32_APICBASE_ENABLE: u64 = 1 << 11; +const MSR_IA32_APICBASE_BASE: u64 = 0xfffff << 12; + +#[derive(Debug)] +pub struct KvmLapic { + pub apicv_active: bool, + pub regs: Box<[u8]>, +} impl VirtCpu { - pub fn lapic_reset(&mut self, init_event: bool) { - let apic = self.arch.apic; - + pub fn lapic_reset(&mut self, vm: &Vm, init_event: bool) { kvm_arch_ops().apicv_pre_state_restore(self); if !init_event { let mut msr_val = APIC_DEFAULT_PHYS_BASE | MSR_IA32_APICBASE_ENABLE; - if self.kvm().lock().arch.bsp_vcpu_id == self.vcpu_id { + if vm.arch.bsp_vcpu_id == self.vcpu_id { msr_val |= MSR_IA32_APICBASE_BSP; } + + self.lapic_set_base(msr_val); } + + if self.arch.apic.is_none() { + return; + } + + todo!() } fn lapic_set_base(&mut self, value: u64) { let old_val = self.arch.apic_base; - let apic = self.arch.apic; + let apic = self.arch.apic.as_ref(); self.arch.apic_base = value; diff --git a/kernel/src/arch/x86_64/vm/kvm_host/mod.rs b/kernel/src/arch/x86_64/vm/kvm_host/mod.rs index 5b0150e90..0f0ccd7e2 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/mod.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/mod.rs @@ -7,40 +7,59 @@ use system_error::SystemError; use x86::{ bits64::rflags::RFlags, controlregs::{Cr0, Cr4}, + dtables::DescriptorTablePointer, }; use x86_64::registers::control::EferFlags; use crate::{ smp::cpu::ProcessorId, - virt::vm::kvm_host::{ - vcpu::VirtCpu, Vm, KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID, KVM_USERSAPCE_IRQ_SOURCE_ID, + virt::vm::{ + kvm_host::{ + vcpu::VirtCpu, Vm, KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID, KVM_USERSAPCE_IRQ_SOURCE_ID, + }, + user_api::UapiKvmSegment, }, }; use crate::arch::VirtCpuArch; use super::{ - asm::{KvmMsrEntry, MsrData}, - vmx::vmx_info, + asm::{MsrData, VcpuSegment, VmxMsrEntry}, + uapi::UapiKvmDtable, + vmx::{vmx_info, VmxVCpuPriv}, x86_kvm_manager, x86_kvm_ops, }; pub mod lapic; pub mod vcpu; +pub const TSS_IOPB_BASE_OFFSET: usize = 0x66; +pub const TSS_BASE_SIZE: usize = 0x68; +pub const TSS_IOPB_SIZE: usize = (65536 / 8); +pub const TSS_REDIRECTION_SIZE: usize = (256 / 8); +pub const RMODE_TSS_SIZE: usize = (TSS_BASE_SIZE + TSS_REDIRECTION_SIZE + TSS_IOPB_SIZE + 1); + #[derive(Debug, Default)] pub struct X86KvmArch { /// 中断芯片模式 - irqchip_mode: KvmIrqChipMode, + pub irqchip_mode: KvmIrqChipMode, /// 负责引导(bootstrap)kvm的vcpu_id bsp_vcpu_id: usize, pub pause_in_guest: bool, pub cstate_in_guest: bool, + pub mwait_in_guest: bool, + pub hlt_in_guest: bool, + pub bus_lock_detection_enabled: bool, irq_sources_bitmap: u64, default_tsc_khz: u64, guest_can_read_msr_platform_info: bool, apicv_inhibit_reasons: usize, + pub max_vcpu_ids: usize, + + pub notify_vmexit_flags: NotifyVmExitFlags, + pub notify_window: u32, + msr_fliter: Option>, } @@ -129,33 +148,61 @@ pub trait KvmFunc: Send + Sync + Debug { fn vm_init(&self) -> X86KvmArch; + fn vcpu_precreate(&self, vm: &mut Vm) -> Result<(), SystemError>; + fn vcpu_create(&self, vcpu: &mut VirtCpu, vm: &Vm); fn vcpu_load(&self, vcpu: &mut VirtCpu, cpu: ProcessorId); - fn cache_reg(&self, vcpu: &VirtCpuArch, reg: KvmReg); + fn cache_reg(&self, vcpu: &mut VirtCpuArch, reg: KvmReg); fn apicv_pre_state_restore(&self, vcpu: &mut VirtCpu); - fn set_msr(&self, vcpu: &mut VirtCpuArch, msr: MsrData); + fn set_msr(&self, vcpu: &mut VirtCpu, msr: MsrData) -> Result<(), SystemError>; fn set_rflags(&self, vcpu: &mut VirtCpu, rflags: RFlags); - fn get_rflags(&self, vcpu: &VirtCpu) -> RFlags; + fn get_rflags(&self, vcpu: &mut VirtCpu) -> RFlags; - fn set_cr0(&self, vcpu: &mut VirtCpu, cr0: Cr0); + fn set_cr0(&self, vm: &Vm, vcpu: &mut VirtCpu, cr0: Cr0); + + fn is_vaild_cr0(&self, vcpu: &VirtCpu, cr0: Cr0) -> bool; fn set_cr4(&self, vcpu: &mut VirtCpu, cr4: Cr4); + fn post_set_cr3(&self, vcpu: &VirtCpu, cr3: u64); + + fn is_vaild_cr4(&self, vcpu: &VirtCpu, cr4: Cr4) -> bool; + fn set_efer(&self, vcpu: &mut VirtCpu, efer: EferFlags); + fn set_segment(&self, vcpu: &mut VirtCpu, var: &mut UapiKvmSegment, seg: VcpuSegment); + + fn get_segment( + &self, + vcpu: &mut VirtCpu, + var: UapiKvmSegment, + seg: VcpuSegment, + ) -> UapiKvmSegment; + + /// 这个函数不会用到VCPU,这里拿到只是为了确保上一层拿到锁 + fn get_idt(&self, _vcpu: &mut VirtCpu, dt: &mut DescriptorTablePointer); + + fn set_idt(&self, _vcpu: &mut VirtCpu, dt: &DescriptorTablePointer); + + fn get_gdt(&self, _vcpu: &mut VirtCpu, dt: &mut DescriptorTablePointer); + + fn set_gdt(&self, _vcpu: &mut VirtCpu, dt: &DescriptorTablePointer); + fn update_exception_bitmap(&self, vcpu: &mut VirtCpu); - fn vcpu_reset(&self, vcpu: &mut VirtCpu, init_event: bool); + fn vcpu_reset(&self, vcpu: &mut VirtCpu, vm: &Vm, init_event: bool); fn has_emulated_msr(&self, msr: u32) -> bool; - fn get_msr_feature(&self, msr: &mut KvmMsrEntry) -> bool; + fn get_msr_feature(&self, msr: &mut VmxMsrEntry) -> bool; + + fn vcpu_run(&self, vcpu: &mut VirtCpu); } /// ## 中断抑制的原因位 @@ -231,6 +278,17 @@ bitflags! { const KVM_MSR_FILTER_READ = 1 << 0; const KVM_MSR_FILTER_WRITE = 1 << 1; } + + pub struct NotifyVmExitFlags: u8 { + const KVM_X86_NOTIFY_VMEXIT_ENABLED = 1 << 0; + const KVM_X86_NOTIFY_VMEXIT_USER = 1 << 1; + } +} + +impl Default for NotifyVmExitFlags { + fn default() -> Self { + NotifyVmExitFlags::empty() + } } #[derive(Debug, Clone, Copy)] @@ -296,3 +354,17 @@ pub struct KvmCommonRegs { rip: u64, rflags: u64, } + +impl Vm { + pub fn vcpu_precreate(&mut self, id: usize) -> Result<(), SystemError> { + if self.arch.max_vcpu_ids == 0 { + self.arch.max_vcpu_ids = 1024 * 4; + } + + if id >= self.arch.max_vcpu_ids { + return Err(SystemError::EINVAL); + } + + return x86_kvm_ops().vcpu_precreate(self); + } +} diff --git a/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs b/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs index 9d7be8976..bb96f6ec8 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs @@ -1,61 +1,81 @@ -use core::intrinsics::unlikely; +use core::{arch::x86_64::_xsetbv, intrinsics::unlikely}; use alloc::{boxed::Box, sync::Arc, vec::Vec}; -use bitmap::{traits::BitMapOps, AllocBitmap, StaticBitmap}; +use bitmap::{traits::BitMapOps, AllocBitmap, BitMapCore, StaticBitmap}; use raw_cpuid::CpuId; use system_error::SystemError; use x86::{ bits64::rflags::RFlags, - controlregs::{Cr0, Cr4}, + controlregs::{Cr0, Cr4, Xcr0}, + dtables::DescriptorTablePointer, msr::{ - IA32_APIC_BASE, IA32_CSTAR, IA32_FS_BASE, IA32_GS_BASE, IA32_KERNEL_GSBASE, IA32_LSTAR, - IA32_SYSENTER_EIP, IA32_SYSENTER_ESP, IA32_TSC_AUX, + self, wrmsr, IA32_APIC_BASE, IA32_CSTAR, IA32_FS_BASE, IA32_GS_BASE, IA32_KERNEL_GSBASE, + IA32_LSTAR, IA32_SYSENTER_EIP, IA32_SYSENTER_ESP, IA32_TSC_AUX, }, + vmx::vmcs::control::SecondaryControls, }; -use x86_64::registers::control::EferFlags; +use x86_64::registers::{control::EferFlags, xcontrol::XCr0Flags}; use crate::{ arch::{ kvm_arch_ops, vm::{ - asm::{KvmX86Asm, MiscEnable, MsrData}, + asm::{ + hyperv, kvm_msr, KvmX86Asm, MiscEnable, MsrData, SegmentCacheField, VcpuSegment, + }, cpuid::KvmCpuidEntry2, kvm_host::KvmReg, mmu::{KvmMmu, LockedKvmMmu}, - vmx::vmcs::LoadedVmcs, + uapi::{UapiKvmSegmentRegs, KVM_SYNC_X86_VALID_FIELDS}, + vmx::{ + vmcs::{ControlsType, LoadedVmcs}, + vmx_info, VmxVCpuPriv, + }, x86_kvm_manager, x86_kvm_manager_mut, x86_kvm_ops, }, }, kdebug, kerror, mm::{PhysAddr, VirtAddr}, smp::{core::smp_get_processor_id, cpu::ProcessorId}, - virt::vm::kvm_host::{ - mem::GfnToHvaCache, - vcpu::{GuestDebug, VirtCpu}, - LockedVm, MutilProcessorState, Vm, + virt::vm::{ + kvm_host::{ + mem::GfnToHvaCache, + vcpu::{GuestDebug, VirtCpu}, + LockedVm, MutilProcessorState, Vm, + }, + user_api::{UapiKvmRun, UapiKvmSegment}, }, }; -use super::{HFlags, KvmCommonRegs, KvmIrqChipMode}; +use super::{lapic::KvmLapic, HFlags, KvmCommonRegs, KvmIrqChipMode}; #[derive(Debug)] pub struct X86VcpuArch { /// 最近一次尝试进入虚拟机的主机cpu last_vmentry_cpu: ProcessorId, - /// 可用寄存器数量 + /// 可用寄存器位图 regs_avail: AllocBitmap, - /// 脏寄存器数量 + /// 脏寄存器位图 regs_dirty: AllocBitmap, /// 多处理器状态 mp_state: MutilProcessorState, pub apic_base: u64, /// apic - pub apic: Option<()>, + pub apic: Option, /// 主机pkru寄存器 host_pkru: u32, + pkru: u32, /// hflag hflags: HFlags, + pub microcode_version: u64, + + arch_capabilities: u64, + + perf_capabilities: u64, + + ia32_xss: u64, + pub guest_state_protected: bool, pub cpuid_entries: Vec, @@ -64,6 +84,9 @@ pub struct X86VcpuArch { pub exception_vmexit: KvmQueuedException, pub apf: KvmAsyncPageFault, + pub emulate_regs_need_sync_from_vcpu: bool, + pub emulate_regs_need_sync_to_vcpu: bool, + pub smbase: u64, pub interrupt: KvmQueuedInterrupt, @@ -78,18 +101,22 @@ pub struct X86VcpuArch { pub max_phyaddr: usize, + pub pat: u64, + pub regs: [u64; KvmReg::NrVcpuRegs as usize], pub cr0: Cr0, pub cr0_guest_owned_bits: Cr0, - pub cr2: usize, - pub cr3: usize, + pub cr2: u64, + pub cr3: u64, pub cr4: Cr4, pub cr4_guest_owned_bits: Cr4, - pub cr4_guest_rsvd_bits: usize, - pub cr8: usize, + pub cr4_guest_rsvd_bits: Cr4, + pub cr8: u64, pub efer: EferFlags, + pub xcr0: Xcr0, + pub dr6: usize, pub dr7: usize, @@ -105,6 +132,8 @@ pub struct X86VcpuArch { pub nmi_pending: u32, pub nmi_injected: bool, + pub xfd_no_write_intercept: bool, + pub db: [usize; Self::KVM_NR_DB_REGS], } @@ -118,9 +147,19 @@ impl X86VcpuArch { ret.regs_avail = AllocBitmap::new(32); ret.regs_dirty = AllocBitmap::new(32); ret.mp_state = MutilProcessorState::Runnable; + + ret.apic = None; *ret } + pub fn clear_dirty(&mut self) { + self.regs_dirty.set_all(false); + } + + pub fn vcpu_apicv_active(&self) -> bool { + self.lapic_in_kernel() && self.lapic().apicv_active + } + pub fn lapic_in_kernel(&self) -> bool { if x86_kvm_manager().has_noapic_vcpu { return self.apic.is_some(); @@ -128,6 +167,21 @@ impl X86VcpuArch { true } + pub fn is_bsp(&self) -> bool { + return self.apic_base & IA32_APIC_BASE as u64 != 0; + } + + #[inline] + pub fn lapic(&self) -> &KvmLapic { + self.apic.as_ref().unwrap() + } + + pub fn queue_interrupt(&mut self, vec: u8, soft: bool) { + self.interrupt.injected = true; + self.interrupt.soft = soft; + self.interrupt.nr = vec; + } + pub fn read_cr0_bits(&mut self, mask: Cr0) -> Cr0 { let tmask = mask & (Cr0::CR0_TASK_SWITCHED | Cr0::CR0_WRITE_PROTECT); if tmask.contains(self.cr0_guest_owned_bits) @@ -165,6 +219,14 @@ impl X86VcpuArch { return self.cr4 & mask; } + pub fn get_cr8(&self) -> u64 { + if self.lapic_in_kernel() { + todo!() + } else { + return self.cr8; + } + } + #[inline] pub fn is_smm(&self) -> bool { self.hflags.contains(HFlags::HF_SMM_MASK) @@ -175,6 +237,16 @@ impl X86VcpuArch { self.hflags.contains(HFlags::HF_GUEST_MASK) } + #[inline] + pub fn is_long_mode(&self) -> bool { + self.efer.contains(EferFlags::LONG_MODE_ACTIVE) + } + + #[inline] + pub fn is_portected_mode(&mut self) -> bool { + !self.read_cr0_bits(Cr0::CR0_PROTECTED_MODE).is_empty() + } + #[inline] fn clear_interrupt_queue(&mut self) { self.interrupt.injected = false; @@ -187,40 +259,6 @@ impl X86VcpuArch { self.exception_vmexit.pending = false; } - pub fn set_msr(&mut self, index: u32, data: u64, host_initiated: bool) { - match index { - IA32_FS_BASE | IA32_GS_BASE | IA32_KERNEL_GSBASE | IA32_CSTAR | IA32_LSTAR => { - if VirtAddr::new(data as usize).is_canonical() { - return; - } - } - - IA32_SYSENTER_EIP | IA32_SYSENTER_ESP => { - // 需要将Data转为合法地址,但是现在先这样写 - assert!(VirtAddr::new(data as usize).is_canonical()); - } - IA32_TSC_AUX => { - if x86_kvm_manager() - .find_user_return_msr_idx(IA32_TSC_AUX) - .is_none() - { - return; - } - - todo!() - } - _ => {} - } - - let msr_data = MsrData { - host_initiated, - index, - data, - }; - - return kvm_arch_ops().set_msr(self, msr_data); - } - pub fn update_cpuid_runtime(&mut self, entries: &Vec) { let cpuid = CpuId::new(); let feat = cpuid.get_feature_info().unwrap(); @@ -233,29 +271,44 @@ impl X86VcpuArch { } #[inline] - fn mark_register_dirty(&mut self, reg: KvmReg) { + pub fn mark_register_dirty(&mut self, reg: KvmReg) { self.regs_avail.set(reg as usize, true); self.regs_dirty.set(reg as usize, true); } #[inline] - fn write_reg(&mut self, reg: KvmReg, data: u64) { + pub fn mark_register_available(&mut self, reg: KvmReg) { + self.regs_avail.set(reg as usize, true); + } + + #[inline] + pub fn is_register_dirty(&self, reg: KvmReg) -> bool { + self.regs_dirty.get(reg as usize).unwrap() + } + + #[inline] + pub fn is_register_available(&self, reg: KvmReg) -> bool { + self.regs_avail.get(reg as usize).unwrap() + } + + #[inline] + pub fn write_reg(&mut self, reg: KvmReg, data: u64) { self.regs[reg as usize] = data; } #[inline] - fn write_reg_raw(&mut self, reg: KvmReg, data: u64) { + pub fn write_reg_raw(&mut self, reg: KvmReg, data: u64) { self.regs[reg as usize] = data; self.mark_register_dirty(reg); } #[inline] - fn read_reg(&self, reg: KvmReg) -> u64 { + pub fn read_reg(&self, reg: KvmReg) -> u64 { return self.regs[reg as usize]; } #[inline] - fn read_reg_raw(&self, reg: KvmReg) -> u64 { + pub fn read_reg_raw(&mut self, reg: KvmReg) -> u64 { if self.regs_avail.get(reg as usize) == Some(true) { kvm_arch_ops().cache_reg(self, reg); } @@ -270,10 +323,236 @@ impl X86VcpuArch { } return self.read_reg_raw(KvmReg::VcpuRegsRip); } + + pub fn set_msr_common(&mut self, msr_info: &MsrData) { + let msr = msr_info.index; + let data = msr_info.data; + + match msr { + // MSR_AMD64_NB_CFG + 0xc001001f => { + return; + } + // MSR_VM_HSAVE_PA + 0xc0010117 => { + return; + } + // MSR_AMD64_PATCH_LOADER + 0xc0010020 => { + return; + } + // MSR_AMD64_BU_CFG2 + 0xc001102a => { + return; + } + // MSR_AMD64_DC_CFG + 0xc0011022 => { + return; + } + // MSR_AMD64_TW_CFG + 0xc0011023 => { + return; + } + // MSR_F15H_EX_CFG + 0xc001102c => { + return; + } + msr::IA32_BIOS_UPDT_TRIG => { + return; + } + msr::IA32_BIOS_SIGN_ID => { + // MSR_IA32_UCODE_REV + if msr_info.host_initiated { + self.microcode_version = data; + } + return; + } + // MSR_IA32_ARCH_CAPABILITIES + 0x0000010a => { + if !msr_info.host_initiated { + return; + } + + self.arch_capabilities = data; + } + msr::MSR_PERF_CAPABILITIES => { + if !msr_info.host_initiated { + return; + } + + if data & (!x86_kvm_manager().kvm_caps.supported_perf_cap) != 0 { + return; + } + + if self.perf_capabilities == data { + return; + } + + self.perf_capabilities = data; + // todo: kvm_pmu_refresh + return; + } + // MSR_IA32_FLUSH_CMD + 0x0000010b => { + todo!() + } + msr::IA32_EFER => { + todo!() + } + // MSR_K7_HWCR + 0xc0010015 => { + todo!() + } + // MSR_FAM10H_MMIO_CONF_BASE + 0xc0010058 => { + todo!() + } + msr::IA32_PAT => { + todo!() + } + // MTRRphysBase_MSR(0) ... MSR_MTRRfix4K_F8000 | MSR_MTRRdefType + 0x200..=0x26f | 0x2ff => { + todo!() + } + msr::APIC_BASE => { + todo!() + } + // APIC_BASE_MSR ... APIC_BASE_MSR + 0xff + 0x800..=0x8ff => { + todo!() + } + msr::IA32_TSC_DEADLINE => { + todo!() + } + msr::IA32_TSC_ADJUST => { + todo!() + } + msr::IA32_MISC_ENABLE => { + todo!() + } + msr::IA32_SMBASE => { + todo!() + } + msr::TSC => { + todo!() + } + // MSR_IA32_XSS + msr::MSR_C5_PMON_BOX_CTRL => { + if !msr_info.host_initiated { + return; + } + if data & (!x86_kvm_manager().kvm_caps.supported_xss) != 0 { + return; + } + + self.ia32_xss = data; + // TODO:kvm_update_cpuid_runtime + return; + } + msr::MSR_SMI_COUNT => { + todo!() + } + kvm_msr::MSR_KVM_WALL_CLOCK_NEW => { + todo!() + } + kvm_msr::MSR_KVM_WALL_CLOCK => { + todo!() + } + kvm_msr::MSR_KVM_SYSTEM_TIME => { + todo!() + } + kvm_msr::MSR_KVM_ASYNC_PF_EN => { + todo!() + } + kvm_msr::MSR_KVM_ASYNC_PF_INT => { + todo!() + } + kvm_msr::MSR_KVM_ASYNC_PF_ACK => { + todo!() + } + kvm_msr::MSR_KVM_STEAL_TIME => { + todo!() + } + kvm_msr::MSR_KVM_PV_EOI_EN => { + todo!() + } + kvm_msr::MSR_KVM_POLL_CONTROL => { + todo!() + } + msr::MCG_CTL + | msr::MCG_STATUS + | msr::MC0_CTL..=msr::MSR_MC26_MISC + | msr::IA32_MC0_CTL2..=msr::IA32_MC21_CTL2 => { + todo!() + } + // MSR_K7_PERFCTR0 ... MSR_K7_PERFCTR3 + // MSR_K7_PERFCTR0 ... MSR_K7_PERFCTR3 + // MSR_K7_EVNTSEL0 ... MSR_K7_EVNTSEL3 + // MSR_P6_EVNTSEL0 ... MSR_P6_EVNTSEL1 + 0xc0010004..=0xc0010007 + | 0xc1..=0xc2 + | 0xc0010000..=0xc0010003 + | 0x00000186..=0x00000187 => { + todo!() + } + + // MSR_K7_CLK_CTL + 0xc001001b => { + return; + } + + hyperv::HV_X64_MSR_GUEST_OS_ID..=hyperv::HV_REGISTER_SINT15 + | hyperv::HV_X64_MSR_SYNDBG_CONTROL..=hyperv::HV_X64_MSR_SYNDBG_PENDING_BUFFER + | hyperv::HV_X64_MSR_SYNDBG_OPTIONS + | hyperv::HV_REGISTER_CRASH_P0..=hyperv::HV_REGISTER_CRASH_P4 + | hyperv::HV_REGISTER_CRASH_CTL + | hyperv::HV_REGISTER_STIMER0_CONFIG..=hyperv::HV_REGISTER_STIMER3_COUNT + | hyperv::HV_X64_MSR_REENLIGHTENMENT_CONTROL + | hyperv::HV_X64_MSR_TSC_EMULATION_CONTROL + | hyperv::HV_X64_MSR_TSC_EMULATION_STATUS + | hyperv::HV_X64_MSR_TSC_INVARIANT_CONTROL => { + todo!() + } + + msr::MSR_BBL_CR_CTL3 => { + todo!() + } + + // MSR_AMD64_OSVW_ID_LENGTH + 0xc0010140 => { + todo!() + } + // MSR_AMD64_OSVW_STATUS + 0xc0010141 => { + todo!() + } + + msr::MSR_PLATFORM_INFO => { + todo!() + } + // MSR_MISC_FEATURES_ENABLES + 0x00000140 => { + todo!() + } + // MSR_IA32_XFD + 0x000001c4 => { + todo!() + } + // MSR_IA32_XFD_ERR + 0x000001c5 => { + todo!() + } + _ => { + todo!() + } + } + } } impl VirtCpu { - pub fn init_arch(&mut self, vm: &Vm) { + pub fn init_arch(&mut self, vm: &mut Vm, id: usize) -> Result<(), SystemError> { + vm.vcpu_precreate(id)?; + self.arch.last_vmentry_cpu = ProcessorId::INVALID; self.arch.regs_avail.set_all(true); self.arch.regs_dirty.set_all(true); @@ -295,12 +574,31 @@ impl VirtCpu { x86_kvm_ops().vcpu_create(self, vm); self.load(); - self.vcpu_reset(false); + self.vcpu_reset(vm, false)?; self.arch.kvm_init_mmu(); + + Ok(()) + } + + pub fn kvm_run(&self) -> &Box { + self.run.as_ref().unwrap() } pub fn run(&mut self) -> Result { self.load(); + + if unlikely(self.arch.mp_state == MutilProcessorState::Uninitialized) { + todo!() + } + + let kvm_run = self.kvm_run(); + + if kvm_run.kvm_valid_regs & !KVM_SYNC_X86_VALID_FIELDS != 0 + || kvm_run.kvm_dirty_regs & !KVM_SYNC_X86_VALID_FIELDS != 0 + { + return Err(SystemError::EINVAL); + } + todo!() } @@ -331,15 +629,53 @@ impl VirtCpu { self.request.insert(req); } - pub fn vcpu_reset(&mut self, init_event: bool) { + pub fn set_msr( + &mut self, + index: u32, + data: u64, + host_initiated: bool, + ) -> Result<(), SystemError> { + match index { + IA32_FS_BASE | IA32_GS_BASE | IA32_KERNEL_GSBASE | IA32_CSTAR | IA32_LSTAR => { + if VirtAddr::new(data as usize).is_canonical() { + return Ok(()); + } + } + + IA32_SYSENTER_EIP | IA32_SYSENTER_ESP => { + // 需要将Data转为合法地址,但是现在先这样写 + assert!(VirtAddr::new(data as usize).is_canonical()); + } + IA32_TSC_AUX => { + if x86_kvm_manager() + .find_user_return_msr_idx(IA32_TSC_AUX) + .is_none() + { + return Ok(()); + } + + todo!() + } + _ => {} + } + + let msr_data = MsrData { + host_initiated, + index, + data, + }; + + return kvm_arch_ops().set_msr(self, msr_data); + } + + pub fn vcpu_reset(&mut self, vm: &Vm, init_event: bool) -> Result<(), SystemError> { let old_cr0 = self.arch.read_cr0_bits(Cr0::all()); if self.arch.is_guest_mode() { todo!() } - // :TODO - // self.lapic_reset(init_event); + self.lapic_reset(vm, init_event); self.arch.hflags = HFlags::empty(); @@ -395,7 +731,7 @@ impl VirtCpu { // TODO: __kvm_set_xcr(vcpu, 0, XFEATURE_MASK_FP); // 0xda0: MSR_IA32_XSS - self.arch.set_msr(0xda0, 0, true); + self.set_msr(0xda0, 0, true)?; } for reg in &mut self.arch.regs { @@ -412,7 +748,7 @@ impl VirtCpu { }; self.arch.write_reg(KvmReg::VcpuRegsRdx, val as u64); - kvm_arch_ops().vcpu_reset(self, init_event); + kvm_arch_ops().vcpu_reset(self, vm, init_event); self.set_rflags(RFlags::FLAGS_A1); self.arch.write_reg_raw(KvmReg::VcpuRegsRip, 0xfff0); @@ -427,7 +763,7 @@ impl VirtCpu { new_cr0.insert(Cr0::CR0_NOT_WRITE_THROUGH | Cr0::CR0_CACHE_DISABLE); } - kvm_arch_ops().set_cr0(self, new_cr0); + kvm_arch_ops().set_cr0(vm, self, new_cr0); kvm_arch_ops().set_cr4(self, Cr4::empty()); kvm_arch_ops().set_efer(self, EferFlags::empty()); kvm_arch_ops().update_exception_bitmap(self); @@ -440,6 +776,8 @@ impl VirtCpu { if init_event { self.request(VirCpuRequest::KVM_REQ_TLB_FLUSH_GUEST); } + + Ok(()) } fn set_rflags(&mut self, rflags: RFlags) { @@ -457,7 +795,7 @@ impl VirtCpu { kvm_arch_ops().set_rflags(self, rflags); } - fn get_rflags(&self) -> RFlags { + fn get_rflags(&mut self) -> RFlags { let mut rflags = kvm_arch_ops().get_rflags(self); if self.guest_debug.contains(GuestDebug::SINGLESTEP) { rflags.insert(RFlags::FLAGS_TF); @@ -474,7 +812,7 @@ impl VirtCpu { return self._get_regs(); } - fn _get_regs(&self) -> KvmCommonRegs { + fn _get_regs(&mut self) -> KvmCommonRegs { KvmCommonRegs { rax: self.arch.read_reg(KvmReg::VcpuRegsRax), rbx: self.arch.read_reg(KvmReg::VcpuRegsRbx), @@ -496,6 +834,323 @@ impl VirtCpu { rflags: self.get_rflags().bits(), } } + + pub fn get_segment_regs(&mut self) -> UapiKvmSegmentRegs { + self.load(); + return self._get_segment_regs(); + } + + fn _get_segment_regs(&mut self) -> UapiKvmSegmentRegs { + let mut sregs = self._get_segment_regs_common(); + + if self.arch.guest_state_protected { + return sregs; + } + + if self.arch.interrupt.injected && !self.arch.interrupt.soft { + BitMapCore::new().set( + sregs.interrupt_bitmap.len() * core::mem::size_of::(), + &mut sregs.interrupt_bitmap, + self.arch.interrupt.nr as usize, + true, + ); + } + + return sregs; + } + + fn read_cr3(&mut self) -> u64 { + if !self.arch.is_register_available(KvmReg::VcpuExregCr3) { + x86_kvm_ops().cache_reg(&mut self.arch, KvmReg::VcpuExregCr3); + } + + return self.arch.cr3; + } + + fn kvm_get_segment(&mut self, segment: &mut UapiKvmSegment, seg: VcpuSegment) { + *segment = x86_kvm_ops().get_segment(self, *segment, seg); + } + + fn _get_segment_regs_common(&mut self) -> UapiKvmSegmentRegs { + let mut sregs = UapiKvmSegmentRegs::default(); + + if !self.arch.guest_state_protected { + let mut dt = DescriptorTablePointer::default(); + + self.kvm_get_segment(&mut sregs.cs, VcpuSegment::CS); + self.kvm_get_segment(&mut sregs.ds, VcpuSegment::DS); + self.kvm_get_segment(&mut sregs.es, VcpuSegment::ES); + self.kvm_get_segment(&mut sregs.fs, VcpuSegment::FS); + self.kvm_get_segment(&mut sregs.gs, VcpuSegment::GS); + self.kvm_get_segment(&mut sregs.ss, VcpuSegment::SS); + + self.kvm_get_segment(&mut sregs.tr, VcpuSegment::TR); + self.kvm_get_segment(&mut sregs.ldt, VcpuSegment::LDTR); + + x86_kvm_ops().get_idt(self, &mut dt); + sregs.idt.limit = dt.limit; + sregs.idt.base = dt.base as usize as u64; + + x86_kvm_ops().get_gdt(self, &mut dt); + sregs.gdt.limit = dt.limit; + sregs.gdt.base = dt.base as usize as u64; + + sregs.cr2 = self.arch.cr2; + sregs.cr3 = self.read_cr3(); + } + + sregs.cr0 = self.arch.read_cr0_bits(Cr0::all()).bits() as u64; + sregs.cr4 = self.arch.read_cr4_bits(Cr4::all()).bits() as u64; + sregs.cr8 = self.arch.get_cr8(); + sregs.efer = self.arch.efer.bits(); + sregs.apic_base = self.arch.apic_base; + + return sregs; + } + + pub fn set_segment_regs(&mut self, sregs: &mut UapiKvmSegmentRegs) -> Result<(), SystemError> { + self.load(); + kdebug!("set_segment_regs sregs{sregs:?}"); + self._set_segmenet_regs(&self.kvm().lock(), sregs)?; + Ok(()) + } + + fn _set_segmenet_regs( + &mut self, + vm: &Vm, + sregs: &mut UapiKvmSegmentRegs, + ) -> Result<(), SystemError> { + let mut mmu_reset_needed = false; + self._set_segmenet_regs_common(vm, sregs, &mut mmu_reset_needed, true)?; + + if mmu_reset_needed { + todo!() + } + + // KVM_NR_INTERRUPTS + let max_bits = 256; + + let pending_vec = BitMapCore::new().first_index(&sregs.interrupt_bitmap); + if let Some(pending) = pending_vec { + if pending < max_bits { + self.arch.queue_interrupt(pending as u8, false); + + self.request(VirCpuRequest::KVM_REQ_EVENT); + } + } + + Ok(()) + } + + /// 设置段寄存器 + fn _set_segmenet_regs_common( + &mut self, + vm: &Vm, + sregs: &mut UapiKvmSegmentRegs, + mmu_reset_needed: &mut bool, + update_pdptrs: bool, + ) -> Result<(), SystemError> { + let mut apic_base_msr = MsrData::default(); + + if !self.is_valid_segment_regs(sregs) { + return Err(SystemError::EINVAL); + } + + apic_base_msr.data = sregs.apic_base; + apic_base_msr.host_initiated = true; + + // TODO: kvm_set_apic_base + + if self.arch.guest_state_protected { + return Ok(()); + } + + let mut dt: DescriptorTablePointer = DescriptorTablePointer::default(); + + dt.limit = sregs.idt.limit; + dt.base = sregs.idt.base as usize as *const u8; + x86_kvm_ops().set_idt(self, &dt); + + dt.limit = sregs.gdt.limit; + dt.base = sregs.gdt.base as usize as *const u8; + x86_kvm_ops().set_gdt(self, &dt); + + self.arch.cr2 = sregs.cr2; + *mmu_reset_needed |= self.read_cr3() != sregs.cr3; + + self.arch.cr3 = sregs.cr3; + + self.arch.mark_register_dirty(KvmReg::VcpuExregCr3); + + x86_kvm_ops().post_set_cr3(&self, sregs.cr3); + + self.kvm_set_cr8(sregs.cr8); + + let efer = EferFlags::from_bits_truncate(sregs.efer); + *mmu_reset_needed |= self.arch.efer != efer; + x86_kvm_ops().set_efer(self, efer); + + let cr0 = Cr0::from_bits_truncate(sregs.cr0 as usize); + *mmu_reset_needed |= self.arch.cr0 != cr0; + x86_kvm_ops().set_cr0(vm, self, cr0); + self.arch.cr0 = cr0; + + let cr4 = Cr4::from_bits_truncate(sregs.cr4 as usize); + *mmu_reset_needed |= self.arch.read_cr4_bits(Cr4::all()) != cr4; + x86_kvm_ops().set_cr4(self, cr4); + + if update_pdptrs { + todo!() + } + + x86_kvm_ops().set_segment(self, &mut sregs.cs, VcpuSegment::CS); + x86_kvm_ops().set_segment(self, &mut sregs.ds, VcpuSegment::DS); + x86_kvm_ops().set_segment(self, &mut sregs.es, VcpuSegment::ES); + x86_kvm_ops().set_segment(self, &mut sregs.fs, VcpuSegment::FS); + x86_kvm_ops().set_segment(self, &mut sregs.gs, VcpuSegment::GS); + x86_kvm_ops().set_segment(self, &mut sregs.ss, VcpuSegment::SS); + + x86_kvm_ops().set_segment(self, &mut sregs.tr, VcpuSegment::TR); + x86_kvm_ops().set_segment(self, &mut sregs.ldt, VcpuSegment::LDTR); + + // TODO: update_cr8_intercept + + if self.arch.is_bsp() + && self.arch.read_reg_raw(KvmReg::VcpuRegsRip) == 0xfff0 + && sregs.cs.selector == 0xf000 + && sregs.cs.base == 0xffff0000 + && !self.arch.is_portected_mode() + { + self.arch.mp_state = MutilProcessorState::Runnable; + } + + Ok(()) + } + + pub fn kvm_set_cr8(&mut self, cr8: u64) { + // 先这样写 + self.arch.cr8 = cr8; + } + + fn is_valid_segment_regs(&self, sregs: &UapiKvmSegmentRegs) -> bool { + let efer = EferFlags::from_bits_truncate(sregs.efer); + let cr4 = Cr4::from_bits_truncate(sregs.cr4 as usize); + let cr0 = Cr0::from_bits_truncate(sregs.cr0 as usize); + + if efer.contains(EferFlags::LONG_MODE_ENABLE) && cr0.contains(Cr0::CR0_ENABLE_PAGING) { + if !cr4.contains(Cr4::CR4_ENABLE_PAE) || !efer.contains(EferFlags::LONG_MODE_ACTIVE) { + return false; + } + + // TODO: legal gpa? + } else { + if efer.contains(EferFlags::LONG_MODE_ACTIVE) || sregs.cs.l != 0 { + return false; + } + } + + return self.kvm_is_vaild_cr0(cr0) && self.kvm_is_vaild_cr4(cr4); + } + + fn kvm_is_vaild_cr0(&self, cr0: Cr0) -> bool { + if cr0.contains(Cr0::CR0_NOT_WRITE_THROUGH) && !cr0.contains(Cr0::CR0_CACHE_DISABLE) { + return false; + } + + if cr0.contains(Cr0::CR0_ENABLE_PAGING) && !cr0.contains(Cr0::CR0_PROTECTED_MODE) { + return false; + } + + return x86_kvm_ops().is_vaild_cr0(self, cr0); + } + + fn __kvm_is_valid_cr4(&self, cr4: Cr4) -> bool { + if cr4.contains(self.arch.cr4_guest_rsvd_bits) { + return false; + } + + return true; + } + + fn kvm_is_vaild_cr4(&self, cr4: Cr4) -> bool { + return self.__kvm_is_valid_cr4(cr4) && x86_kvm_ops().is_vaild_cr4(self, cr4); + } + + pub fn is_unrestricted_guest(&self) -> bool { + let guard = self.vmx().loaded_vmcs(); + return vmx_info().enable_unrestricted_guest + && (!self.arch.is_guest_mode() + || SecondaryControls::from_bits_truncate( + guard.controls_get(ControlsType::SecondaryExec) as u32, + ) + .contains(SecondaryControls::UNRESTRICTED_GUEST)); + } + + pub fn set_regs(&mut self, regs: &KvmCommonRegs) -> Result<(), SystemError> { + self.load(); + self._set_regs(regs); + Ok(()) + } + + fn _set_regs(&mut self, regs: &KvmCommonRegs) { + self.arch.emulate_regs_need_sync_from_vcpu = true; + self.arch.emulate_regs_need_sync_to_vcpu = false; + + self.arch.write_reg(KvmReg::VcpuRegsRax, regs.rax); + self.arch.write_reg(KvmReg::VcpuRegsRbx, regs.rbx); + self.arch.write_reg(KvmReg::VcpuRegsRcx, regs.rcx); + self.arch.write_reg(KvmReg::VcpuRegsRdx, regs.rdx); + self.arch.write_reg(KvmReg::VcpuRegsRsi, regs.rsi); + self.arch.write_reg(KvmReg::VcpuRegsRdi, regs.rdi); + self.arch.write_reg(KvmReg::VcpuRegsRsp, regs.rsp); + self.arch.write_reg(KvmReg::VcpuRegsRbp, regs.rbp); + + self.arch.write_reg(KvmReg::VcpuRegsR8, regs.r8); + self.arch.write_reg(KvmReg::VcpuRegsR9, regs.r9); + self.arch.write_reg(KvmReg::VcpuRegsR10, regs.r10); + self.arch.write_reg(KvmReg::VcpuRegsR11, regs.r11); + self.arch.write_reg(KvmReg::VcpuRegsR12, regs.r12); + self.arch.write_reg(KvmReg::VcpuRegsR13, regs.r13); + self.arch.write_reg(KvmReg::VcpuRegsR14, regs.r14); + self.arch.write_reg(KvmReg::VcpuRegsR15, regs.r15); + + self.arch.write_reg_raw(KvmReg::VcpuRegsRip, regs.rip); + + self.set_rflags(RFlags::from_bits_truncate(regs.rflags) | RFlags::FLAGS_A1); + + self.arch.exception.pending = false; + self.arch.exception_vmexit.pending = false; + + self.request(VirCpuRequest::KVM_REQ_EVENT); + } + + pub fn load_guest_xsave_state(&mut self) { + if self.arch.guest_state_protected { + return; + } + + if !self.arch.read_cr4_bits(Cr4::CR4_ENABLE_OS_XSAVE).is_empty() { + if self.arch.xcr0 != x86_kvm_manager().host_xcr0 { + unsafe { _xsetbv(0, self.arch.xcr0.bits()) }; + } + + if self.arch.ia32_xss != x86_kvm_manager().host_xss { + // XSS + unsafe { wrmsr(0xda0, self.arch.ia32_xss) }; + } + } + + if CpuId::new().get_extended_feature_info().unwrap().has_pku() + && self.arch.pkru != self.arch.host_pkru + && (self.arch.xcr0.contains(Xcr0::XCR0_PKRU_STATE) + || !self + .arch + .read_cr4_bits(Cr4::CR4_ENABLE_PROTECTION_KEY) + .is_empty()) + { + KvmX86Asm::write_pkru(self.arch.pkru); + } + } } bitflags! { @@ -505,6 +1160,7 @@ bitflags! { const KVM_REQUEST_NO_ACTION = 1 << 2; const KVM_REQ_EVENT = 1 << 6; const KVM_REQ_STEAL_UPDATE = 1 << 8; + const KVM_REQ_APIC_PAGE_RELOAD = 1 << 17 | Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits; const KVM_REQ_TLB_FLUSH_GUEST = 1 << 27 | Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits; const KVM_REQ_TLB_FLUSH = 1 | Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits; } diff --git a/kernel/src/arch/x86_64/vm/mmu.rs b/kernel/src/arch/x86_64/vm/mmu.rs index 852f7cfe8..a0edddf4b 100644 --- a/kernel/src/arch/x86_64/vm/mmu.rs +++ b/kernel/src/arch/x86_64/vm/mmu.rs @@ -1,5 +1,6 @@ use alloc::{sync::Arc, vec::Vec}; use bitfield_struct::bitfield; +use raw_cpuid::CpuId; use x86::controlregs::{Cr0, Cr4}; use x86_64::registers::control::EferFlags; @@ -17,10 +18,24 @@ const PT32_ROOT_LEVEL: usize = 2; const PT32E_ROOT_LEVEL: usize = 3; static mut TDP_ENABLED: bool = false; +static mut TDP_MMU_ENABLED: bool = true; +static mut TDP_MMU_ALLOWED: bool = unsafe { TDP_MMU_ENABLED }; + static mut TDP_ROOT_LEVEL: usize = 0; static mut MAX_TDP_LEVEL: usize = 0; static mut SHADOW_ACCESSED_MASK: usize = 0; +static mut MAX_HUGE_PAGE_LEVEL: PageLevel = PageLevel::None; + +pub enum PageLevel { + None, + Level4k, + Level2M, + Level1G, + Level512G, + LevelNum, +} + #[derive(Debug)] pub struct LockedKvmMmu { inner: SpinLock, @@ -74,6 +89,34 @@ impl KvmMmu { pub fn ad_enabled() -> bool { unsafe { SHADOW_ACCESSED_MASK != 0 } } + + /// 初始化mmu的配置,因为其是无锁的,所以该函数只能在初始化vmx时调用 + pub fn kvm_configure_mmu( + enable_tdp: bool, + tdp_forced_root_level: usize, + tdp_max_root_level: usize, + tdp_huge_page_level: PageLevel, + ) { + unsafe { + TDP_ENABLED = enable_tdp; + TDP_ROOT_LEVEL = tdp_forced_root_level; + MAX_TDP_LEVEL = tdp_max_root_level; + + TDP_MMU_ENABLED = TDP_MMU_ALLOWED && TDP_ENABLED; + + if TDP_ENABLED { + MAX_HUGE_PAGE_LEVEL = tdp_huge_page_level; + } else if CpuId::new() + .get_extended_processor_and_feature_identifiers() + .unwrap() + .has_1gib_pages() + { + MAX_HUGE_PAGE_LEVEL = PageLevel::Level1G; + } else { + MAX_HUGE_PAGE_LEVEL = PageLevel::Level2M; + } + } + } } #[derive(Debug, Default)] diff --git a/kernel/src/arch/x86_64/vm/mod.rs b/kernel/src/arch/x86_64/vm/mod.rs index 87ad42fcd..c7996265e 100644 --- a/kernel/src/arch/x86_64/vm/mod.rs +++ b/kernel/src/arch/x86_64/vm/mod.rs @@ -1,8 +1,10 @@ +use core::arch::x86_64::{_xgetbv, _XCR_XFEATURE_ENABLED_MASK}; + use alloc::vec::Vec; use raw_cpuid::CpuId; use system_error::SystemError; use x86::{ - controlregs::Xcr0, + controlregs::{xcr0, Cr0, Cr4, Xcr0}, msr::{ rdmsr, IA32_BIOS_SIGN_ID, IA32_CSTAR, IA32_EFER, IA32_FEATURE_CONTROL, IA32_FMASK, IA32_KERNEL_GSBASE, IA32_LSTAR, IA32_MCG_CTL, IA32_MCG_STATUS, IA32_MISC_ENABLE, IA32_PAT, @@ -20,6 +22,10 @@ use x86::{ MSR_PLATFORM_INFO, MSR_POWER_CTL, MSR_SMI_COUNT, }, }; +use x86_64::registers::{ + control::{Efer, EferFlags}, + xcontrol::{XCr0, XCr0Flags}, +}; use crate::{ arch::vm::vmx::{VmxL1dFlushState, L1TF_VMX_MITIGATION}, @@ -29,7 +35,7 @@ use crate::{ }; use self::{ - asm::{hyperv::*, kvm_msr::*, ArchCapabilities, KvmMsrEntry}, + asm::{hyperv::*, kvm_msr::*, ArchCapabilities, VmxMsrEntry}, kvm_host::{KvmFunc, KvmInitFunc}, }; @@ -40,6 +46,7 @@ mod cpuid; pub mod kvm_host; pub mod mem; mod mmu; +pub mod uapi; pub mod vmx; static mut KVM_X86_MANAGER: Option = None; @@ -59,7 +66,7 @@ pub fn x86_kvm_manager_mut() -> &'static mut KvmArchManager { pub fn init_kvm_arch() { static ONCE: Once = Once::new(); ONCE.call_once(|| unsafe { - KVM_X86_MANAGER = Some(KvmArchManager::default()); + KVM_X86_MANAGER = Some(KvmArchManager::init()); let mut user_return_msrs = Vec::new(); user_return_msrs.resize(PerCpu::MAX_CPU_NUM as usize, KvmUserReturnMsrs::default()); @@ -68,11 +75,11 @@ pub fn init_kvm_arch() { } /// fixme:这些成员是否需要加锁呢?? -#[derive(Debug, Default)] +#[derive(Debug)] pub struct KvmArchManager { funcs: Option<&'static dyn KvmFunc>, - host_xcr0: u64, - host_efer: u64, + host_xcr0: Xcr0, + host_efer: EferFlags, host_xss: u64, host_arch_capabilities: u64, kvm_uret_msrs_list: Vec, @@ -85,9 +92,54 @@ pub struct KvmArchManager { has_noapic_vcpu: bool, enable_pmu: bool, + + // 只读 + possible_cr0_guest: Cr0, + possible_cr4_guest: Cr4, + cr4_tlbflush_bits: Cr4, + cr4_pdptr_bits: Cr4, } impl KvmArchManager { + pub fn init() -> Self { + Self { + possible_cr0_guest: Cr0::CR0_TASK_SWITCHED | Cr0::CR0_WRITE_PROTECT, + possible_cr4_guest: Cr4::CR4_VIRTUAL_INTERRUPTS + | Cr4::CR4_DEBUGGING_EXTENSIONS + | Cr4::CR4_ENABLE_PPMC + | Cr4::CR4_ENABLE_SSE + | Cr4::CR4_UNMASKED_SSE + | Cr4::CR4_ENABLE_GLOBAL_PAGES + | Cr4::CR4_TIME_STAMP_DISABLE + | Cr4::CR4_ENABLE_FSGSBASE, + + cr4_tlbflush_bits: Cr4::CR4_ENABLE_GLOBAL_PAGES + | Cr4::CR4_ENABLE_PCID + | Cr4::CR4_ENABLE_PAE + | Cr4::CR4_ENABLE_SMEP, + + cr4_pdptr_bits: Cr4::CR4_ENABLE_GLOBAL_PAGES + | Cr4::CR4_ENABLE_PSE + | Cr4::CR4_ENABLE_PAE + | Cr4::CR4_ENABLE_SMEP, + + host_xcr0: Xcr0::empty(), + + funcs: Default::default(), + host_efer: EferFlags::empty(), + host_xss: Default::default(), + host_arch_capabilities: Default::default(), + kvm_uret_msrs_list: Default::default(), + kvm_caps: Default::default(), + max_tsc_khz: Default::default(), + msrs_to_save: Default::default(), + emulated_msrs: Default::default(), + msr_based_features: Default::default(), + has_noapic_vcpu: Default::default(), + enable_pmu: Default::default(), + } + } + #[inline] pub fn set_runtime_func(&mut self, funcs: &'static dyn KvmFunc) { self.funcs = Some(funcs); @@ -108,6 +160,11 @@ impl KvmArchManager { None } + pub fn mpx_supported(&self) -> bool { + self.kvm_caps.supported_xcr0 & (Xcr0::XCR0_BNDREG_STATE | Xcr0::XCR0_BNDCSR_STATE) + == (Xcr0::XCR0_BNDREG_STATE | Xcr0::XCR0_BNDREG_STATE) + } + pub const KVM_MAX_VCPUS: usize = 1024; pub const KVM_MAX_NR_USER_RETURN_MSRS: usize = 7; @@ -290,11 +347,11 @@ impl KvmArchManager { // TODO:mmu vendor init if cpu_feature.has_xsave() { - // fixme:这里会UD,后续再修 - // self.host_xcr0 = unsafe { _xgetbv(_XCR_XFEATURE_ENABLED_MASK) }; + self.host_xcr0 = unsafe { xcr0() }; + self.kvm_caps.supported_xcr0 = self.host_xcr0; } // 保存efer - self.host_efer = unsafe { rdmsr(IA32_EFER) }; + self.host_efer = Efer::read(); // 保存xss if cpu_extend.has_xsaves_xrstors() { @@ -431,7 +488,7 @@ impl KvmArchManager { } fn kvm_prove_feature_msr(&mut self, index: u32) { - let mut msr = KvmMsrEntry { + let mut msr = VmxMsrEntry { index, reserved: Default::default(), data: Default::default(), @@ -444,7 +501,7 @@ impl KvmArchManager { self.msr_based_features.push(index); } - fn get_msr_feature(&self, msr: &mut KvmMsrEntry) -> bool { + fn get_msr_feature(&self, msr: &mut VmxMsrEntry) -> bool { match msr.index { 0x10a => { // MSR_IA32_ARCH_CAPABILITIES, diff --git a/kernel/src/arch/x86_64/vm/uapi.rs b/kernel/src/arch/x86_64/vm/uapi.rs new file mode 100644 index 000000000..e22b02b76 --- /dev/null +++ b/kernel/src/arch/x86_64/vm/uapi.rs @@ -0,0 +1,58 @@ +use crate::virt::vm::user_api::UapiKvmSegment; + +pub const DE_VECTOR: usize = 0; +pub const DB_VECTOR: usize = 1; +pub const BP_VECTOR: usize = 3; +pub const OF_VECTOR: usize = 4; +pub const BR_VECTOR: usize = 5; +pub const UD_VECTOR: usize = 6; +pub const NM_VECTOR: usize = 7; +pub const DF_VECTOR: usize = 8; +pub const TS_VECTOR: usize = 10; +pub const NP_VECTOR: usize = 11; +pub const SS_VECTOR: usize = 12; +pub const GP_VECTOR: usize = 13; +pub const PF_VECTOR: usize = 14; +pub const MF_VECTOR: usize = 16; +pub const AC_VECTOR: usize = 17; +pub const MC_VECTOR: usize = 18; +pub const XM_VECTOR: usize = 19; +pub const VE_VECTOR: usize = 20; + +pub const KVM_SYNC_X86_REGS: u64 = 1 << 0; +pub const KVM_SYNC_X86_SREGS: u64 = 1 << 1; +pub const KVM_SYNC_X86_EVENTS: u64 = 1 << 2; + +pub const KVM_SYNC_X86_VALID_FIELDS: u64 = + KVM_SYNC_X86_REGS | KVM_SYNC_X86_SREGS | KVM_SYNC_X86_EVENTS; + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmSegmentRegs { + pub cs: UapiKvmSegment, + pub ds: UapiKvmSegment, + pub es: UapiKvmSegment, + pub fs: UapiKvmSegment, + pub gs: UapiKvmSegment, + pub ss: UapiKvmSegment, + pub tr: UapiKvmSegment, + pub ldt: UapiKvmSegment, + pub gdt: UapiKvmDtable, + pub idt: UapiKvmDtable, + pub cr0: u64, + pub cr2: u64, + pub cr3: u64, + pub cr4: u64, + pub cr8: u64, + pub efer: u64, + pub apic_base: u64, + pub interrupt_bitmap: [u64; 4usize], +} + +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmDtable { + pub base: u64, + pub limit: u16, + pub padding: [u16; 3usize], +} diff --git a/kernel/src/arch/x86_64/vm/vmx/capabilities.rs b/kernel/src/arch/x86_64/vm/vmx/capabilities.rs index 2cc81520d..71c947f24 100644 --- a/kernel/src/arch/x86_64/vm/vmx/capabilities.rs +++ b/kernel/src/arch/x86_64/vm/vmx/capabilities.rs @@ -1,3 +1,4 @@ +use raw_cpuid::CpuId; use x86::{ msr::{ IA32_VMX_BASIC, IA32_VMX_CR0_FIXED0, IA32_VMX_CR0_FIXED1, IA32_VMX_CR4_FIXED0, @@ -11,9 +12,12 @@ use x86::{ }, }; -use crate::arch::vm::{ - CPU_BASED_ALWAYSON_WITHOUT_TRUE_MSR, PIN_BASED_ALWAYSON_WITHOUT_TRUE_MSR, - VM_ENTRY_ALWAYSON_WITHOUT_TRUE_MSR, VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR, +use crate::{ + arch::vm::{ + mmu::PageLevel, CPU_BASED_ALWAYSON_WITHOUT_TRUE_MSR, PIN_BASED_ALWAYSON_WITHOUT_TRUE_MSR, + VM_ENTRY_ALWAYSON_WITHOUT_TRUE_MSR, VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR, + }, + virt::vm::kvm_host::vcpu::VirtCpu, }; use super::{vmcs::feat::VmxFeat, Vmx}; @@ -181,7 +185,7 @@ pub struct VmxCapability { pub vpid: VpidFlag, } -#[derive(Debug)] +#[derive(Debug, PartialEq)] pub enum ProcessorTraceMode { System, HostGuest, @@ -368,6 +372,30 @@ impl Vmx { return self.vmx_cap.ept.contains(EptFlag::EPT_PAGE_WALK_4); } + /// 是否支持5级页表 + #[inline] + pub fn has_ept_5levels(&self) -> bool { + return self.vmx_cap.ept.contains(EptFlag::EPT_PAGE_WALK_5); + } + + pub fn get_max_ept_level(&self) -> usize { + if self.has_ept_5levels() { + return 5; + } + return 4; + } + + pub fn ept_cap_to_lpage_level(&self) -> PageLevel { + if self.vmx_cap.ept.contains(EptFlag::EPT_1GB_PAGE) { + return PageLevel::Level1G; + } + if self.vmx_cap.ept.contains(EptFlag::EPT_2MB_PAGE) { + return PageLevel::Level2M; + } + + return PageLevel::Level4k; + } + /// 判断mt(Memory type)是否为write back #[inline] pub fn has_ept_mt_wb(&self) -> bool { @@ -497,6 +525,50 @@ impl Vmx { .contains(PrimaryControls::USE_MSR_BITMAPS); } + #[inline] + pub fn has_sceondary_exec_ctrls(&self) -> bool { + self.vmcs_config + .cpu_based_exec_ctrl + .contains(PrimaryControls::SECONDARY_CONTROLS) + } + + #[inline] + pub fn has_rdtscp(&self) -> bool { + self.vmcs_config + .cpu_based_2nd_exec_ctrl + .contains(SecondaryControls::ENABLE_RDTSCP) + } + + #[inline] + pub fn has_vmfunc(&self) -> bool { + self.vmcs_config + .cpu_based_2nd_exec_ctrl + .contains(SecondaryControls::ENABLE_VM_FUNCTIONS) + } + + #[inline] + pub fn has_xsaves(&self) -> bool { + self.vmcs_config + .cpu_based_2nd_exec_ctrl + .contains(SecondaryControls::ENABLE_XSAVES_XRSTORS) + } + + #[inline] + pub fn vmx_umip_emulated(&self) -> bool { + let feat = CpuId::new().get_extended_feature_info().unwrap().has_umip(); + + return !feat + && (self + .vmcs_config + .cpu_based_2nd_exec_ctrl + .contains(SecondaryControls::DTABLE_EXITING)); + } + + #[inline] + pub fn has_tertiary_exec_ctrls(&self) -> bool { + false + } + #[inline] pub fn has_bus_lock_detection(&self) -> bool { false @@ -506,4 +578,10 @@ impl Vmx { pub fn has_notify_vmexit(&self) -> bool { false } + + /// 是否需要拦截页面故障 + #[inline] + pub fn vmx_need_pf_intercept(&self, _vcpu: &VirtCpu) -> bool { + true + } } diff --git a/kernel/src/arch/x86_64/vm/vmx/mod.rs b/kernel/src/arch/x86_64/vm/vmx/mod.rs index b6c4b4349..fe6b1917e 100644 --- a/kernel/src/arch/x86_64/vm/vmx/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/mod.rs @@ -1,8 +1,12 @@ -use core::{ - mem::MaybeUninit, - sync::atomic::{AtomicBool, Ordering}, -}; +use core::intrinsics::unlikely; +use core::sync::atomic::{AtomicBool, Ordering}; +use crate::arch::vm::mmu::KvmMmu; +use crate::arch::vm::uapi::{ + AC_VECTOR, BP_VECTOR, DB_VECTOR, GP_VECTOR, MC_VECTOR, NM_VECTOR, PF_VECTOR, UD_VECTOR, +}; +use crate::libs::spinlock::SpinLockGuard; +use crate::virt::vm::kvm_host::vcpu::GuestDebug; use crate::{ arch::{ vm::{ @@ -10,45 +14,50 @@ use crate::{ kvm_host::{vcpu::VirCpuRequest, X86KvmArch}, vmx::vmcs::vmx_area, }, - CurrentIrqArch, VirtCpuArch, + CurrentIrqArch, MMArch, VirtCpuArch, }, exception::InterruptArch, kdebug, - libs::{once::Once, spinlock::SpinLock}, + libs::spinlock::SpinLock, mm::{ percpu::{PerCpu, PerCpuVar}, - virt_2_phys, PhysAddr, + virt_2_phys, MemoryManagementArch, PhysAddr, }, smp::{core::smp_get_processor_id, cpu::ProcessorId}, - virt::vm::{kvm_dev::kvm_init, kvm_host::vcpu::VirtCpu}, + virt::vm::{kvm_dev::kvm_init, kvm_host::vcpu::VirtCpu, user_api::UapiKvmSegment}, }; use alloc::{alloc::Global, boxed::Box, collections::LinkedList, sync::Arc, vec::Vec}; +use bitfield_struct::bitfield; use bitmap::{traits::BitMapOps, AllocBitmap, StaticBitmap}; use raw_cpuid::CpuId; use system_error::SystemError; +use x86::controlregs::{cr2, cr2_write}; +use x86::irq::PageFaultError; +use x86::msr::wrmsr; use x86::{ - controlregs::Xcr0, + bits64::rflags::RFlags, + controlregs::{cr0, cr3, cr4, Cr0, Cr4, Xcr0}, msr::{ - rdmsr, IA32_CSTAR, IA32_EFER, IA32_FMASK, IA32_FS_BASE, IA32_GS_BASE, IA32_KERNEL_GSBASE, - IA32_LSTAR, IA32_SMBASE, IA32_STAR, IA32_SYSENTER_CS, IA32_SYSENTER_EIP, IA32_SYSENTER_ESP, - IA32_TIME_STAMP_COUNTER, IA32_TSC_AUX, IA32_VMX_BASIC, IA32_VMX_CR0_FIXED0, - IA32_VMX_CR0_FIXED1, IA32_VMX_CR4_FIXED0, IA32_VMX_CR4_FIXED1, IA32_VMX_ENTRY_CTLS, - IA32_VMX_EPT_VPID_CAP, IA32_VMX_EXIT_CTLS, IA32_VMX_MISC, IA32_VMX_PINBASED_CTLS, - IA32_VMX_PROCBASED_CTLS, IA32_VMX_PROCBASED_CTLS2, IA32_VMX_TRUE_ENTRY_CTLS, - IA32_VMX_TRUE_EXIT_CTLS, IA32_VMX_TRUE_PINBASED_CTLS, IA32_VMX_TRUE_PROCBASED_CTLS, - IA32_VMX_VMCS_ENUM, IA32_VMX_VMFUNC, MSR_CORE_C1_RESIDENCY, MSR_CORE_C3_RESIDENCY, - MSR_CORE_C6_RESIDENCY, MSR_CORE_C7_RESIDENCY, MSR_IA32_ADDR0_START, MSR_IA32_ADDR3_END, - MSR_IA32_CR3_MATCH, MSR_IA32_RTIT_OUTPUT_BASE, MSR_IA32_RTIT_OUTPUT_MASK_PTRS, - MSR_IA32_RTIT_STATUS, MSR_IA32_TSX_CTRL, MSR_LASTBRANCH_TOS, MSR_LBR_SELECT, + self, rdmsr, IA32_CSTAR, IA32_EFER, IA32_FMASK, IA32_FS_BASE, IA32_GS_BASE, + IA32_KERNEL_GSBASE, IA32_LSTAR, IA32_SMBASE, IA32_STAR, IA32_SYSENTER_CS, + IA32_SYSENTER_EIP, IA32_SYSENTER_ESP, IA32_TIME_STAMP_COUNTER, IA32_TSC_AUX, + IA32_VMX_BASIC, IA32_VMX_EPT_VPID_CAP, IA32_VMX_MISC, IA32_VMX_VMFUNC, + MSR_CORE_C1_RESIDENCY, MSR_CORE_C3_RESIDENCY, MSR_CORE_C6_RESIDENCY, MSR_CORE_C7_RESIDENCY, + MSR_IA32_ADDR0_START, MSR_IA32_ADDR3_END, MSR_IA32_CR3_MATCH, MSR_IA32_RTIT_OUTPUT_BASE, + MSR_IA32_RTIT_OUTPUT_MASK_PTRS, MSR_IA32_RTIT_STATUS, MSR_IA32_TSX_CTRL, + MSR_LASTBRANCH_TOS, MSR_LBR_SELECT, }, + segmentation::{self, cs}, vmx::vmcs::{ control::{ - EntryControls, ExitControls, PrimaryControls, SecondaryControls, PINBASED_EXEC_CONTROLS, + self, EntryControls, ExitControls, PinbasedControls, PrimaryControls, SecondaryControls, }, - host, + guest, host, }, }; -use x86_64::instructions::tables::sidt; +use x86_64::registers::control::Cr3; +use x86_64::structures::idt::PageFaultErrorCode; +use x86_64::{instructions::tables::sidt, registers::control::EferFlags}; use crate::{ arch::{ @@ -56,30 +65,39 @@ use crate::{ KvmArch, }, kerror, kwarn, - libs::{lazy_init::Lazy, rwlock::RwLock}, + libs::rwlock::RwLock, virt::vm::kvm_host::Vm, }; +use self::vmcs::LoadedVmcs; use self::{ - capabilities::{NestedVmxMsrs, ProcessorTraceMode, VmcsConfig, VmxCapability}, + capabilities::{ProcessorTraceMode, VmcsConfig, VmxCapability}, vmcs::{ - current_loaded_vmcs_list_mut, current_vmcs, current_vmcs_mut, LockedLoadedVmcs, - VMControlStructure, VmxMsrBitmapAccess, VmxMsrBitmapAction, PERCPU_LOADED_VMCS_LIST, - PERCPU_VMCS, VMXAREA, + current_loaded_vmcs_list_mut, current_vmcs, current_vmcs_mut, ControlsType, + LockedLoadedVmcs, VMControlStructure, VmxMsrBitmapAccess, VmxMsrBitmapAction, + PERCPU_LOADED_VMCS_LIST, PERCPU_VMCS, VMXAREA, }, }; +use super::asm::SegmentCacheField; +use super::kvm_host::RMODE_TSS_SIZE; +use super::x86_kvm_ops; use super::{ - asm::VmxAsm, + asm::{VcpuSegment, VmxAsm, VmxMsrEntry}, init_kvm_arch, - kvm_host::{KvmFunc, KvmInitFunc, MsrFilterType}, - x86_kvm_manager, KvmArchManager, CPU_BASED_ALWAYSON_WITHOUT_TRUE_MSR, - PIN_BASED_ALWAYSON_WITHOUT_TRUE_MSR, VM_ENTRY_ALWAYSON_WITHOUT_TRUE_MSR, - VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR, + kvm_host::{ + vcpu, KvmFunc, KvmInitFunc, KvmIrqChipMode, KvmReg, MsrFilterType, NotifyVmExitFlags, + }, + x86_kvm_manager, KvmArchManager, }; pub mod capabilities; pub mod vmcs; + +extern "C" { + fn vmx_vmexit(); +} + pub struct VmxKvmInitFunc; impl VmxKvmInitFunc { @@ -112,6 +130,9 @@ impl KvmInitFunc for VmxKvmInitFunc { .map_err(|_| SystemError::ENOMEM)? .assume_init() }; + + vmx_init.init(); + vmx_init.host_idt_base = idt.base.as_u64(); Vmx::set_up_user_return_msrs(); @@ -207,7 +228,7 @@ impl KvmInitFunc for VmxKvmInitFunc { kvm_cap.has_bus_lock_exit = vmx_init.has_bus_lock_detection(); kvm_cap.has_notify_vmexit = vmx_init.has_notify_vmexit(); - vmx_init.vpid_bitmap.lock().set_all(false); + // vmx_init.vpid_bitmap.lock().set_all(false); if vmx_init.enable_ept { // TODO: mmu_set_ept_masks @@ -216,7 +237,12 @@ impl KvmInitFunc for VmxKvmInitFunc { kwarn!("vmx_setup_me_spte_mask TODO!"); - kwarn!("kvm_configure_mmu TODO!"); + KvmMmu::kvm_configure_mmu( + vmx_init.enable_ept, + 0, + vmx_init.get_max_ept_level(), + vmx_init.ept_cap_to_lpage_level(), + ); if !vmx_init.enable_ept || !vmx_init.enable_ept_ad || !vmx_init.has_pml() { vmx_init.enable_pml = false; @@ -366,6 +392,21 @@ impl VmxKvmFunc { todo!() } } + + pub fn seg_setup(&self, seg: VcpuSegment) { + let seg_field = &KVM_VMX_SEGMENT_FIELDS[seg as usize]; + + VmxAsm::vmx_vmwrite(seg_field.selector, 0); + VmxAsm::vmx_vmwrite(seg_field.base, 0); + VmxAsm::vmx_vmwrite(seg_field.limit, 0xffff); + + let mut ar = 0x93; + if seg == VcpuSegment::CS { + ar |= 0x08; + } + + VmxAsm::vmx_vmwrite(seg_field.ar_bytes, ar); + } } impl KvmFunc for VmxKvmFunc { @@ -407,8 +448,45 @@ impl KvmFunc for VmxKvmFunc { // TODO: vmx_vcpu_pi_load } - fn cache_reg(&self, vcpu: &VirtCpuArch, reg: super::kvm_host::KvmReg) { - todo!() + fn cache_reg(&self, vcpu: &mut VirtCpuArch, reg: KvmReg) { + vcpu.mark_register_available(reg); + + match reg { + KvmReg::VcpuRegsRsp => { + vcpu.regs[reg as usize] = VmxAsm::vmx_vmread(guest::RSP); + } + KvmReg::VcpuRegsRip => { + vcpu.regs[reg as usize] = VmxAsm::vmx_vmread(guest::RIP); + } + // VCPU_EXREG_PDPTR + KvmReg::NrVcpuRegs => { + if vmx_info().enable_ept { + todo!() + } + } + KvmReg::VcpuExregCr0 => { + let guest_owned = vcpu.cr0_guest_owned_bits; + + vcpu.cr0.remove(guest_owned); + vcpu.cr0.insert( + Cr0::from_bits_truncate(VmxAsm::vmx_vmread(guest::CR0) as usize) & guest_owned, + ); + } + KvmReg::VcpuExregCr3 => { + todo!() + } + KvmReg::VcpuExregCr4 => { + let guest_owned = vcpu.cr4_guest_owned_bits; + + vcpu.cr4.remove(guest_owned); + vcpu.cr4.insert( + Cr4::from_bits_truncate(VmxAsm::vmx_vmread(guest::CR4) as usize) & guest_owned, + ); + } + _ => { + todo!() + } + } } fn apicv_pre_state_restore(&self, vcpu: &mut VirtCpu) { @@ -417,32 +495,387 @@ impl KvmFunc for VmxKvmFunc { // todo!() } - fn set_msr(&self, vcpu: &mut VirtCpuArch, msr: super::asm::MsrData) { - todo!() + fn set_msr(&self, vcpu: &mut VirtCpu, msr: super::asm::MsrData) -> Result<(), SystemError> { + let vmx = vcpu.vmx_mut(); + let msr_index = msr.index; + let data = msr.data; + + match msr_index { + msr::IA32_EFER => { + todo!("IA32_EFER") + } + + msr::IA32_FS_BASE => { + todo!("IA32_FS_BASE") + } + + msr::IA32_GS_BASE => { + todo!("IA32_GS_BASE") + } + + msr::IA32_KERNEL_GSBASE => { + todo!("IA32_KERNEL_GSBASE") + } + + 0x000001c4 => { + todo!("MSR_IA32_XFD") + } + + msr::IA32_SYSENTER_CS => { + todo!("IA32_SYSENTER_CS") + } + + msr::IA32_SYSENTER_EIP => { + todo!("IA32_SYSENTER_EIP") + } + + msr::IA32_SYSENTER_ESP => { + todo!("IA32_SYSENTER_ESP") + } + + msr::IA32_DEBUGCTL => { + todo!("IA32_DEBUGCTL") + } + + msr::MSR_C1_PMON_EVNT_SEL0 => { + todo!("MSR_IA32_BNDCFGS") + } + + 0xe1 => { + todo!("MSR_IA32_UMWAIT_CONTROL ") + } + + 0x48 => { + todo!("MSR_IA32_SPEC_CTRL") + } + + msr::MSR_IA32_TSX_CTRL => { + todo!("MSR_IA32_TSX_CTRL") + } + + msr::IA32_PAT => { + todo!("IA32_PAT") + } + + 0x4d0 => { + todo!("MSR_IA32_MCG_EXT_CTL") + } + + msr::IA32_FEATURE_CONTROL => { + todo!("IA32_FEATURE_CONTROL") + } + + 0x8c..=0x8f => { + todo!("MSR_IA32_SGXLEPUBKEYHASH0 ... MSR_IA32_SGXLEPUBKEYHASH3 {msr_index}") + } + + msr::IA32_VMX_BASIC..=msr::IA32_VMX_VMFUNC => { + todo!("msr::IA32_VMX_BASIC..=msr::IA32_VMX_VMFUNC") + } + + msr::MSR_IA32_RTIT_CTL => { + todo!("MSR_IA32_RTIT_CTL") + } + + msr::MSR_IA32_RTIT_STATUS => { + todo!("MSR_IA32_RTIT_STATUS") + } + + msr::MSR_IA32_RTIT_OUTPUT_BASE => { + todo!("MSR_IA32_RTIT_OUTPUT_BASE") + } + + 0x572 => { + todo!("MSR_IA32_RTIT_CR3_MATCH") + } + + msr::MSR_IA32_RTIT_OUTPUT_MASK_PTRS => { + todo!("MSR_IA32_RTIT_OUTPUT_MASK_PTRS") + } + + msr::MSR_IA32_ADDR0_START..=msr::MSR_IA32_ADDR3_END => { + todo!("msr::MSR_IA32_ADDR0_START..=msr::MSR_IA32_ADDR3_END") + } + + msr::MSR_PERF_CAPABILITIES => { + todo!("MSR_PERF_CAPABILITIES") + } + + _ => { + let uret_msr = vmx.find_uret_msr(msr_index); + + if let Some(msr) = uret_msr { + let mut tmp_msr = VmxUretMsr::from(*msr); + vmx.set_guest_uret_msr(&mut tmp_msr, data)?; + vmx.set_uret_msr(msr_index, data); + } else { + vcpu.arch.set_msr_common(&msr); + }; + } + } + + if msr_index == 0x10a { + // MSR_IA32_ARCH_CAPABILITIES + todo!() + } + + Ok(()) } - fn vcpu_reset(&self, vcpu: &mut VirtCpu, init_event: bool) { - todo!() + fn vcpu_reset(&self, vcpu: &mut VirtCpu, vm: &Vm, init_event: bool) { + if !init_event { + vmx_info_mut().vmx_reset_vcpu(vcpu, vm) + } + vcpu.kvm_set_cr8(0); + + let vmx = vcpu.vmx_mut(); + vmx.rmode.vm86_active = false; + vmx.spec_ctrl = 0; + vmx.msr_ia32_umwait_control = 0; + vmx.hv_deadline_tsc = u64::MAX; + + vmx.segment_cache_clear(); + + vcpu.arch.mark_register_available(KvmReg::VcpuExregSegments); + + self.seg_setup(VcpuSegment::CS); + VmxAsm::vmx_vmwrite(guest::CS_SELECTOR, 0xf000); + VmxAsm::vmx_vmwrite(guest::CS_BASE, 0xffff0000); + + self.seg_setup(VcpuSegment::DS); + self.seg_setup(VcpuSegment::ES); + self.seg_setup(VcpuSegment::FS); + self.seg_setup(VcpuSegment::GS); + self.seg_setup(VcpuSegment::SS); + + VmxAsm::vmx_vmwrite(guest::TR_SELECTOR, 0); + VmxAsm::vmx_vmwrite(guest::TR_BASE, 0); + VmxAsm::vmx_vmwrite(guest::TR_LIMIT, 0xffff); + VmxAsm::vmx_vmwrite(guest::TR_ACCESS_RIGHTS, 0x008b); + + VmxAsm::vmx_vmwrite(guest::LDTR_SELECTOR, 0); + VmxAsm::vmx_vmwrite(guest::LDTR_BASE, 0); + VmxAsm::vmx_vmwrite(guest::LDTR_LIMIT, 0xffff); + VmxAsm::vmx_vmwrite(guest::LDTR_ACCESS_RIGHTS, 0x00082); + + VmxAsm::vmx_vmwrite(guest::GDTR_BASE, 0); + VmxAsm::vmx_vmwrite(guest::GDTR_LIMIT, 0xffff); + + VmxAsm::vmx_vmwrite(guest::IDTR_BASE, 0); + VmxAsm::vmx_vmwrite(guest::IDTR_LIMIT, 0xffff); + + VmxAsm::vmx_vmwrite(guest::ACTIVITY_STATE, 0); + VmxAsm::vmx_vmwrite(guest::INTERRUPTIBILITY_STATE, 0); + VmxAsm::vmx_vmwrite(guest::PENDING_DBG_EXCEPTIONS, 0); + + if x86_kvm_manager().mpx_supported() { + VmxAsm::vmx_vmwrite(guest::IA32_BNDCFGS_FULL, 0); + } + + VmxAsm::vmx_vmwrite(control::VMENTRY_INTERRUPTION_INFO_FIELD, 0); + + vcpu.request(VirCpuRequest::KVM_REQ_APIC_PAGE_RELOAD); + + vmx_info().vpid_sync_context(vcpu.vmx().vpid); + + kwarn!("TODO: vmx_update_fb_clear_dis"); } - fn set_rflags(&self, vcpu: &mut VirtCpu, rflags: x86::bits64::rflags::RFlags) { - todo!() + fn set_rflags(&self, vcpu: &mut VirtCpu, mut rflags: x86::bits64::rflags::RFlags) { + if vcpu.is_unrestricted_guest() { + vcpu.arch.mark_register_available(KvmReg::VcpuExregRflags); + vcpu.vmx_mut().rflags = rflags; + VmxAsm::vmx_vmwrite(guest::RFLAGS, rflags.bits()); + return; + } + + let old_rflags = self.get_rflags(vcpu); + + let vmx = vcpu.vmx_mut(); + + vmx.rflags = rflags; + if vmx.rmode.vm86_active { + vmx.rmode.save_rflags = rflags; + rflags.insert(RFlags::FLAGS_IOPL3 | RFlags::FLAGS_VM); + } + + VmxAsm::vmx_vmwrite(guest::RFLAGS, rflags.bits()); + + if (old_rflags ^ vmx.rflags).contains(RFlags::FLAGS_VM) { + drop(vmx); + let emulation_required = vmx_info().emulation_required(vcpu); + vcpu.vmx_mut().emulation_required = emulation_required; + } } - fn set_cr0(&self, vcpu: &mut VirtCpu, cr0: x86::controlregs::Cr0) { - todo!() + fn set_cr0(&self, vm: &Vm, vcpu: &mut VirtCpu, cr0: x86::controlregs::Cr0) { + let old_cr0_pg = vcpu.arch.read_cr0_bits(Cr0::CR0_ENABLE_PAGING); + let mut hw_cr0 = cr0 & (!(Cr0::CR0_NOT_WRITE_THROUGH | Cr0::CR0_CACHE_DISABLE)); + + if vmx_info().enable_unrestricted_guest { + hw_cr0.insert(Cr0::CR0_NUMERIC_ERROR); + } else { + hw_cr0 + .insert(Cr0::CR0_NUMERIC_ERROR | Cr0::CR0_ENABLE_PAGING | Cr0::CR0_PROTECTED_MODE); + + if !vmx_info().enable_ept { + hw_cr0.insert(Cr0::CR0_WRITE_PROTECT); + } + + if vcpu.vmx().rmode.vm86_active && cr0.contains(Cr0::CR0_PROTECTED_MODE) { + vmx_info().enter_pmode(vcpu); + } + + if !vcpu.vmx().rmode.vm86_active && !cr0.contains(Cr0::CR0_PROTECTED_MODE) { + vmx_info().enter_rmode(vcpu, vm); + } + } + + VmxAsm::vmx_vmwrite(control::CR0_READ_SHADOW, cr0.bits() as u64); + VmxAsm::vmx_vmwrite(guest::CR0, hw_cr0.bits() as u64); + + vcpu.arch.cr0 = cr0; + + vcpu.arch.mark_register_available(KvmReg::VcpuExregCr0); + + if vcpu.arch.efer.contains(EferFlags::LONG_MODE_ENABLE) { + if old_cr0_pg.is_empty() && cr0.contains(Cr0::CR0_ENABLE_PAGING) { + todo!("enter lmode todo"); + } else if !old_cr0_pg.is_empty() && !cr0.contains(Cr0::CR0_ENABLE_PAGING) { + todo!("exit lmode todo"); + } + } + + if vmx_info().enable_ept && !vmx_info().enable_unrestricted_guest { + todo!() + } + + vcpu.vmx_mut().emulation_required = vmx_info().emulation_required(vcpu); } - fn set_cr4(&self, vcpu: &mut VirtCpu, cr4: x86::controlregs::Cr4) { - todo!() + fn set_cr4(&self, vcpu: &mut VirtCpu, cr4_flags: x86::controlregs::Cr4) { + let old_cr4 = vcpu.arch.read_cr4_bits(Cr4::all()); + + let mut hw_cr4 = (unsafe { cr4() } & Cr4::CR4_ENABLE_MACHINE_CHECK) + | (cr4_flags & (!Cr4::CR4_ENABLE_MACHINE_CHECK)); + + if vmx_info().enable_unrestricted_guest { + hw_cr4.insert(Cr4::CR4_ENABLE_VMX); + } else if vcpu.vmx().rmode.vm86_active { + hw_cr4.insert(Cr4::CR4_ENABLE_PAE | Cr4::CR4_ENABLE_VMX | Cr4::CR4_ENABLE_VME); + } else { + hw_cr4.insert(Cr4::CR4_ENABLE_PAE | Cr4::CR4_ENABLE_VMX); + } + + if vmx_info().vmx_umip_emulated() { + if cr4_flags.contains(Cr4::CR4_ENABLE_UMIP) { + vcpu.vmx().loaded_vmcs().controls_set( + ControlsType::SecondaryExec, + SecondaryControls::DTABLE_EXITING.bits() as u64, + ); + hw_cr4.remove(Cr4::CR4_ENABLE_UMIP); + } else if !vcpu.arch.is_guest_mode() { + vcpu.vmx().loaded_vmcs().controls_clearbit( + ControlsType::SecondaryExec, + SecondaryControls::DTABLE_EXITING.bits() as u64, + ); + } + } + + vcpu.arch.cr4 = cr4_flags; + vcpu.arch.mark_register_available(KvmReg::VcpuExregCr4); + + if !vmx_info().enable_unrestricted_guest { + if vmx_info().enable_ept { + if vcpu.arch.read_cr0_bits(Cr0::CR0_ENABLE_PAGING).is_empty() { + hw_cr4.remove(Cr4::CR4_ENABLE_PAE); + hw_cr4.insert(Cr4::CR4_ENABLE_PSE); + } else if !cr4_flags.contains(Cr4::CR4_ENABLE_PAE) { + hw_cr4.remove(Cr4::CR4_ENABLE_PAE); + } + } + + if vcpu.arch.read_cr0_bits(Cr0::CR0_ENABLE_PAGING).is_empty() { + hw_cr4.remove( + Cr4::CR4_ENABLE_SMEP | Cr4::CR4_ENABLE_SMAP | Cr4::CR4_ENABLE_PROTECTION_KEY, + ); + } + } + + VmxAsm::vmx_vmwrite(control::CR4_READ_SHADOW, cr4_flags.bits() as u64); + VmxAsm::vmx_vmwrite(guest::CR4, hw_cr4.bits() as u64); + + if (cr4_flags ^ old_cr4).contains(Cr4::CR4_ENABLE_OS_XSAVE | Cr4::CR4_ENABLE_PROTECTION_KEY) + { + // TODO: update_cpuid_runtime + } } fn set_efer(&self, vcpu: &mut VirtCpu, efer: x86_64::registers::control::EferFlags) { - todo!() + if vcpu.vmx().find_uret_msr(msr::IA32_EFER).is_none() { + return; + } + + vcpu.arch.efer = efer; + if efer.contains(EferFlags::LONG_MODE_ACTIVE) { + vcpu.vmx().loaded_vmcs().controls_setbit( + ControlsType::VmEntry, + EntryControls::IA32E_MODE_GUEST.bits().into(), + ); + } else { + vcpu.vmx().loaded_vmcs().controls_clearbit( + ControlsType::VmEntry, + EntryControls::IA32E_MODE_GUEST.bits().into(), + ); + } + + vmx_info().setup_uret_msrs(vcpu); } fn update_exception_bitmap(&self, vcpu: &mut VirtCpu) { - todo!() + let mut eb = (1u32 << PF_VECTOR) + | (1 << UD_VECTOR) + | (1 << MC_VECTOR) + | (1 << DB_VECTOR) + | (1 << AC_VECTOR); + + if vmx_info().enable_vmware_backdoor { + eb |= 1 << GP_VECTOR; + } + + if vcpu.guest_debug & (GuestDebug::ENABLE | GuestDebug::USE_SW_BP) + == (GuestDebug::ENABLE | GuestDebug::USE_SW_BP) + { + eb |= 1 << BP_VECTOR; + } + + if vcpu.vmx().rmode.vm86_active { + eb = !0; + } + + if !vmx_info().vmx_need_pf_intercept(&vcpu) { + eb &= !(1 << PF_VECTOR); + } + + if vcpu.arch.is_guest_mode() { + todo!() + } else { + let mut mask = PageFaultErr::empty(); + let mut match_code = PageFaultErr::empty(); + if vmx_info().enable_ept && (eb & (1 << PF_VECTOR) != 0) { + mask = PageFaultErr::PFERR_PRESENT | PageFaultErr::PFERR_RSVD; + match_code = PageFaultErr::PFERR_PRESENT; + } + + VmxAsm::vmx_vmwrite(control::PAGE_FAULT_ERR_CODE_MASK, mask.bits); + VmxAsm::vmx_vmwrite(control::PAGE_FAULT_ERR_CODE_MATCH, match_code.bits); + } + + if vcpu.arch.xfd_no_write_intercept { + eb |= 1 << NM_VECTOR; + } + + VmxAsm::vmx_vmwrite(control::EXCEPTION_BITMAP, eb as u64); } fn has_emulated_msr(&self, msr: u32) -> bool { @@ -467,7 +900,7 @@ impl KvmFunc for VmxKvmFunc { } } - fn get_msr_feature(&self, msr: &mut super::asm::KvmMsrEntry) -> bool { + fn get_msr_feature(&self, msr: &mut super::asm::VmxMsrEntry) -> bool { match msr.index { IA32_VMX_BASIC..=IA32_VMX_VMFUNC => { if !vmx_info().nested { @@ -490,7 +923,148 @@ impl KvmFunc for VmxKvmFunc { } } - fn get_rflags(&self, vcpu: &VirtCpu) -> x86::bits64::rflags::RFlags { + fn get_rflags(&self, vcpu: &mut VirtCpu) -> x86::bits64::rflags::RFlags { + if !vcpu.arch.is_register_available(KvmReg::VcpuExregRflags) { + vcpu.arch.mark_register_available(KvmReg::VcpuExregRflags); + let mut rflags = RFlags::from_bits_truncate(VmxAsm::vmx_vmread(guest::RFLAGS)); + if vcpu.vmx_mut().rmode.vm86_active { + rflags.remove(RFlags::FLAGS_IOPL3 | RFlags::FLAGS_VM); + let save_rflags = vcpu.vmx_mut().rmode.save_rflags; + rflags.insert(save_rflags & !(RFlags::FLAGS_IOPL3 | RFlags::FLAGS_VM)); + } + + vcpu.vmx_mut().rflags = rflags; + } + + return vcpu.vmx_mut().rflags; + } + + fn vcpu_precreate(&self, vm: &mut Vm) -> Result<(), SystemError> { + if vm.arch.irqchip_mode != KvmIrqChipMode::None || !vmx_info().enable_ipiv { + return Ok(()); + } + + let kvm_vmx = vm.kvm_vmx_mut(); + + if kvm_vmx.pid_table.is_some() { + return Ok(()); + } + + kvm_vmx.pid_table = Some(unsafe { Box::new_zeroed().assume_init() }); + Ok(()) + } + + fn set_segment(&self, vcpu: &mut VirtCpu, var: &mut UapiKvmSegment, seg: VcpuSegment) { + vcpu.vmx_mut().emulation_required = vmx_info().emulation_required(vcpu); + *var = vmx_info()._vmx_set_segment(vcpu, *var, seg); + } + + fn get_segment( + &self, + vcpu: &mut VirtCpu, + var: UapiKvmSegment, + seg: VcpuSegment, + ) -> UapiKvmSegment { + return vmx_info().vmx_get_segment(vcpu, var, seg); + } + + fn get_idt(&self, _vcpu: &mut VirtCpu, dt: &mut x86::dtables::DescriptorTablePointer) { + dt.limit = VmxAsm::vmx_vmread(guest::IDTR_LIMIT) as u16; + dt.base = VmxAsm::vmx_vmread(guest::IDTR_BASE) as usize as *const _; + } + + fn set_idt(&self, _vcpu: &mut VirtCpu, dt: &x86::dtables::DescriptorTablePointer) { + VmxAsm::vmx_vmwrite(guest::IDTR_LIMIT, dt.limit as u64); + VmxAsm::vmx_vmwrite(guest::IDTR_BASE, dt.base as usize as u64); + } + + fn get_gdt(&self, _vcpu: &mut VirtCpu, dt: &mut x86::dtables::DescriptorTablePointer) { + dt.limit = VmxAsm::vmx_vmread(guest::GDTR_LIMIT) as u16; + dt.base = VmxAsm::vmx_vmread(guest::GDTR_BASE) as usize as *const _; + } + + fn set_gdt(&self, _vcpu: &mut VirtCpu, dt: &x86::dtables::DescriptorTablePointer) { + VmxAsm::vmx_vmwrite(guest::GDTR_LIMIT, dt.limit as u64); + VmxAsm::vmx_vmwrite(guest::GDTR_BASE, dt.base as usize as u64); + } + + fn is_vaild_cr0(&self, vcpu: &VirtCpu, cr0: Cr0) -> bool { + if vcpu.arch.is_guest_mode() { + todo!() + } + + // TODO: 判断vmx->nested->vmxon + + true + } + + fn is_vaild_cr4(&self, vcpu: &VirtCpu, cr4: Cr4) -> bool { + if cr4.contains(Cr4::CR4_ENABLE_VMX) && vcpu.arch.is_smm() { + return false; + } + + // TODO: 判断vmx->nested->vmxon + + return true; + } + + fn post_set_cr3(&self, vcpu: &VirtCpu, cr3: u64) { + // Nothing + } + + fn vcpu_run(&self, vcpu: &mut VirtCpu) { + if unlikely(vmx_info().enable_vnmi && vcpu.vmx().loaded_vmcs().soft_vnmi_blocked) { + todo!() + } + + if unlikely(vcpu.vmx().emulation_required) { + todo!() + } + + if vcpu.vmx().ple_window_dirty { + vcpu.vmx_mut().ple_window_dirty = false; + VmxAsm::vmx_vmwrite(control::PLE_WINDOW, vcpu.vmx().ple_window as u64); + } + + if vcpu.arch.is_register_dirty(KvmReg::VcpuRegsRsp) { + VmxAsm::vmx_vmwrite(guest::RSP, vcpu.arch.regs[KvmReg::VcpuRegsRsp as usize]); + } + if vcpu.arch.is_register_dirty(KvmReg::VcpuRegsRip) { + VmxAsm::vmx_vmwrite(guest::RIP, vcpu.arch.regs[KvmReg::VcpuRegsRip as usize]); + } + + vcpu.arch.clear_dirty(); + + let cr3 = Cr3::read().1; + if unlikely(cr3 != vcpu.vmx().loaded_vmcs().host_state.cr3) { + VmxAsm::vmx_vmwrite(host::CR3, cr3.bits()); + vcpu.vmx().loaded_vmcs().host_state.cr3 = cr3; + } + + let cr4 = unsafe { cr4() }; + if unlikely(cr4 != vcpu.vmx().loaded_vmcs().host_state.cr4) { + VmxAsm::vmx_vmwrite(host::CR4, cr4.bits() as u64); + vcpu.vmx().loaded_vmcs().host_state.cr4 = cr4; + } + + // TODO: set_debugreg + + if vcpu.guest_debug.contains(GuestDebug::SINGLESTEP) { + todo!() + } + + vcpu.load_guest_xsave_state(); + + // TODO: pt_guest_enter + + // TODO: atomic_switch_perf_msrs + + if vmx_info().enable_preemption_timer { + todo!() + } + + Vmx::vmx_vcpu_enter_exit(vcpu, vcpu.vmx().vmx_vcpu_run_flags()); + todo!() } } @@ -502,6 +1076,11 @@ pub fn vmx_info() -> &'static Vmx { unsafe { VMX.as_ref().unwrap() } } +#[inline] +pub fn vmx_info_mut() -> &'static mut Vmx { + unsafe { VMX.as_mut().unwrap() } +} + #[inline(never)] pub fn init_vmx(vmx: Box) { static INIT_ONCE: AtomicBool = AtomicBool::new(false); @@ -520,7 +1099,7 @@ pub struct Vmx { pub host_idt_base: u64, pub vmcs_config: VmcsConfig, pub vmx_cap: VmxCapability, - pub vpid_bitmap: SpinLock>, + pub vpid_bitmap: SpinLock, pub enable_vpid: bool, pub enable_ept: bool, pub enable_ept_ad: bool, @@ -534,6 +1113,8 @@ pub struct Vmx { pub enable_pml: bool, pub enable_preemption_timer: bool, + pub enable_vmware_backdoor: bool, + pub nested: bool, pub ple_gap: u32, @@ -545,35 +1126,39 @@ pub struct Vmx { pub pt_mode: ProcessorTraceMode, } -impl Default for Vmx { - fn default() -> Self { - Self { - host_idt_base: Default::default(), - vmcs_config: Default::default(), - vmx_cap: Default::default(), - vpid_bitmap: SpinLock::new(StaticBitmap::new()), - enable_vpid: true, - enable_ept: true, - enable_ept_ad: true, - enable_unrestricted_guest: true, - enable_flexpriority: true, - enable_vnmi: true, - enable_sgx: true, - ple_gap: 128, - ple_window: 4096, - ple_window_grow: 2, - ple_window_max: u32::MAX, - ple_window_shrink: 0, - enable_apicv: true, - enable_ipiv: true, - enable_pml: true, - enable_preemption_timer: true, - pt_mode: ProcessorTraceMode::System, - emulate_invalid_guest_state: true, - - // 目前先不管嵌套虚拟化,后续再实现 - nested: true, - } +impl Vmx { + fn init(&mut self) { + let mut bitmap = AllocBitmap::new(1 << 16); + + // 0为vpid的非法值 + bitmap.set(0, true); + + self.host_idt_base = Default::default(); + self.vmcs_config = Default::default(); + self.vmx_cap = Default::default(); + self.vpid_bitmap = SpinLock::new(bitmap); + self.enable_vpid = true; + self.enable_ept = true; + self.enable_ept_ad = true; + self.enable_unrestricted_guest = true; + self.enable_flexpriority = true; + self.enable_vnmi = true; + self.enable_sgx = true; + self.ple_gap = 128; + self.ple_window = 4096; + self.ple_window_grow = 2; + self.ple_window_max = u32::MAX; + self.ple_window_shrink = 0; + self.enable_apicv = true; + self.enable_ipiv = true; + self.enable_pml = true; + self.enable_preemption_timer = true; + self.pt_mode = ProcessorTraceMode::System; + self.emulate_invalid_guest_state = true; + + // 目前先不管嵌套虚拟化,后续再实现 + self.nested = false; + self.enable_vmware_backdoor = false; } } @@ -869,6 +1454,14 @@ impl Vmx { } } + pub fn vpid_sync_context(&self, vpid: u16) { + if self.has_invvpid_single() { + VmxAsm::sync_vcpu_single(vpid); + } else if vpid != 0 { + VmxAsm::sync_vcpu_global(); + } + } + pub fn possible_passthrough_msr_slot(msr: u32) -> Option { for (idx, val) in Self::VMX_POSSIBLE_PASSTHROUGH_MSRS.iter().enumerate() { if *val == msr { @@ -887,6 +1480,899 @@ impl Vmx { // TODO:先这样写 *L1TF_VMX_MITIGATION.write() = VmxL1dFlushState::FlushNotRequired; } + + fn vmx_reset_vcpu(&mut self, vcpu: &mut VirtCpu, vm: &Vm) { + self.init_vmcs(vcpu, vm); + + if self.nested { + todo!() + } + + // TODO: vcpu_setup_sgx_lepubkeyhash + + // TODO: nested + + vcpu.arch.microcode_version = 0x100000000; + + let vmx = vcpu.vmx_mut(); + vmx.msr_ia32_feature_control_valid_bits = 1 << 0; + + vmx.post_intr_desc.control.set_nv(0xf2); + vmx.post_intr_desc.control.set_sn(true); + } + + fn init_vmcs(&mut self, vcpu: &mut VirtCpu, vm: &Vm) { + let kvm_vmx = vm.kvm_vmx(); + if vmx_info().nested { + todo!() + } + + if vmx_info().has_msr_bitmap() { + VmxAsm::vmx_vmwrite( + control::MSR_BITMAPS_ADDR_FULL, + vcpu.vmx().vmcs01.lock().msr_bitmap.phys_addr() as u64, + ) + } + + VmxAsm::vmx_vmwrite(guest::LINK_PTR_FULL, u64::MAX); + + let mut loaded_vmcs = vcpu.vmx().loaded_vmcs.lock(); + + loaded_vmcs.controls_set( + ControlsType::Pin, + self.get_pin_based_exec_controls(vcpu).bits() as u64, + ); + + loaded_vmcs.controls_set( + ControlsType::Exec, + self.get_exec_controls(vcpu, &vm.arch).bits() as u64, + ); + + if self.has_sceondary_exec_ctrls() { + loaded_vmcs.controls_set( + ControlsType::SecondaryExec, + self.get_secondary_exec_controls(vcpu, vm).bits() as u64, + ) + } + + if self.has_tertiary_exec_ctrls() { + todo!() + } + + drop(loaded_vmcs); + + if self.enable_apicv && vcpu.arch.lapic_in_kernel() { + VmxAsm::vmx_vmwrite(control::EOI_EXIT0_FULL, 0); + VmxAsm::vmx_vmwrite(control::EOI_EXIT1_FULL, 0); + VmxAsm::vmx_vmwrite(control::EOI_EXIT2_FULL, 0); + VmxAsm::vmx_vmwrite(control::EOI_EXIT3_FULL, 0); + + VmxAsm::vmx_vmwrite(guest::INTERRUPT_STATUS, 0); + + VmxAsm::vmx_vmwrite(control::POSTED_INTERRUPT_NOTIFICATION_VECTOR, 0xf2); + VmxAsm::vmx_vmwrite( + control::POSTED_INTERRUPT_DESC_ADDR_FULL, + virt_2_phys(&vcpu.vmx().post_intr_desc as *const _ as usize) as u64, + ) + } + + if self.enable_apicv && vcpu.arch.lapic_in_kernel() { + // PID_POINTER_TABLE + VmxAsm::vmx_vmwrite( + 0x2042, + virt_2_phys(kvm_vmx.pid_table().as_ptr() as usize) as u64, + ); + // LAST_PID_POINTER_INDEX + VmxAsm::vmx_vmwrite(0x08, vm.arch.max_vcpu_ids as u64 - 1); + } + + if !vm.arch.pause_in_guest { + VmxAsm::vmx_vmwrite(control::PLE_GAP, self.ple_gap as u64); + vcpu.vmx_mut().ple_window = self.ple_window; + vcpu.vmx_mut().ple_window_dirty = true; + } + + if vm + .arch + .notify_vmexit_flags + .contains(NotifyVmExitFlags::KVM_X86_NOTIFY_VMEXIT_ENABLED) + { + // NOTIFY_WINDOW + VmxAsm::vmx_vmwrite(0x4024, vm.arch.notify_window as u64); + } + + VmxAsm::vmx_vmwrite(control::PAGE_FAULT_ERR_CODE_MASK, 0); + VmxAsm::vmx_vmwrite(control::PAGE_FAULT_ERR_CODE_MATCH, 0); + VmxAsm::vmx_vmwrite(control::CR3_TARGET_COUNT, 0); + + VmxAsm::vmx_vmwrite(host::FS_SELECTOR, 0); + VmxAsm::vmx_vmwrite(host::GS_SELECTOR, 0); + self.set_constant_host_state(vcpu); + + VmxAsm::vmx_vmwrite(host::FS_BASE, 0); + VmxAsm::vmx_vmwrite(host::GS_BASE, 0); + + if self.has_vmfunc() { + VmxAsm::vmx_vmwrite(control::VM_FUNCTION_CONTROLS_FULL, 0); + } + + VmxAsm::vmx_vmwrite(control::VMEXIT_MSR_STORE_COUNT, 0); + VmxAsm::vmx_vmwrite(control::VMEXIT_MSR_LOAD_COUNT, 0); + VmxAsm::vmx_vmwrite( + control::VMEXIT_MSR_LOAD_ADDR_FULL, + virt_2_phys(vcpu.vmx().msr_autoload.host.val.as_ptr() as *const _ as usize) as u64, + ); + VmxAsm::vmx_vmwrite(control::VMENTRY_MSR_LOAD_COUNT, 0); + VmxAsm::vmx_vmwrite( + control::VMENTRY_MSR_LOAD_ADDR_FULL, + virt_2_phys(vcpu.vmx().msr_autoload.guest.val.as_ptr() as usize) as u64, + ); + + if self + .vmcs_config + .vmentry_ctrl + .contains(EntryControls::LOAD_IA32_PAT) + { + VmxAsm::vmx_vmwrite(guest::IA32_PAT_FULL, vcpu.arch.pat) + } + + let mut loaded_vmcs = vcpu.vmx().loaded_vmcs.lock(); + loaded_vmcs.controls_set( + ControlsType::VmExit, + self.get_vmexit_controls().bits() as u64, + ); + + loaded_vmcs.controls_set( + ControlsType::VmEntry, + self.get_vmentry_controls().bits() as u64, + ); + + drop(loaded_vmcs); + + vcpu.arch.cr0_guest_owned_bits = self.l1_guest_owned_cr0_bits(); + VmxAsm::vmx_vmwrite( + control::CR0_GUEST_HOST_MASK, + (!vcpu.arch.cr0_guest_owned_bits).bits() as u64, + ); + + self.set_cr4_guest_host_mask(&mut vcpu.arch); + + if vcpu.vmx().vpid != 0 { + VmxAsm::vmx_vmwrite(control::VPID, vcpu.vmx().vpid as u64); + } + + if self.has_xsaves() { + VmxAsm::vmx_vmwrite(control::XSS_EXITING_BITMAP_FULL, 0); + } + + if self.enable_pml { + VmxAsm::vmx_vmwrite( + control::PML_ADDR_FULL, + virt_2_phys(vcpu.vmx().pml_pg.as_ref().as_ptr() as usize) as u64, + ); + + VmxAsm::vmx_vmwrite(guest::PML_INDEX, VmxVCpuPriv::PML_ENTITY_NUM as u64 - 1); + } + + // TODO: vmx_write_encls_bitmap + + if self.pt_mode == ProcessorTraceMode::HostGuest { + todo!() + } + + VmxAsm::vmx_vmwrite(guest::IA32_SYSENTER_CS, 0); + VmxAsm::vmx_vmwrite(guest::IA32_SYSENTER_ESP, 0); + VmxAsm::vmx_vmwrite(guest::IA32_SYSENTER_EIP, 0); + VmxAsm::vmx_vmwrite(guest::IA32_DEBUGCTL_FULL, 0); + + if self.has_tpr_shadow() { + VmxAsm::vmx_vmwrite(control::VIRT_APIC_ADDR_FULL, 0); + if vcpu.arch.lapic_in_kernel() { + VmxAsm::vmx_vmwrite( + control::VIRT_APIC_ADDR_FULL, + virt_2_phys(vcpu.arch.lapic().regs.as_ptr() as usize) as u64, + ); + } + + VmxAsm::vmx_vmwrite(control::TPR_THRESHOLD, 0); + } + + self.setup_uret_msrs(vcpu); + } + + fn setup_uret_msrs(&self, vcpu: &mut VirtCpu) { + // 是否加载syscall相关msr + let load_syscall_msrs = + vcpu.arch.is_long_mode() && vcpu.arch.efer.contains(EferFlags::SYSTEM_CALL_EXTENSIONS); + + self.setup_uret_msr(vcpu, msr::IA32_STAR, load_syscall_msrs); + self.setup_uret_msr(vcpu, msr::IA32_LSTAR, load_syscall_msrs); + self.setup_uret_msr(vcpu, msr::IA32_FMASK, load_syscall_msrs); + + let load_efer = self.update_transition_efer(vcpu); + self.setup_uret_msr(vcpu, msr::IA32_EFER, load_efer); + + // TODO: MSR_TSC_AUX + + self.setup_uret_msr( + vcpu, + msr::MSR_IA32_TSX_CTRL, + CpuId::default() + .get_extended_feature_info() + .unwrap() + .has_rtm(), + ); + + vcpu.vmx_mut().guest_uret_msrs_loaded = false; + } + + fn setup_uret_msr(&self, vcpu: &mut VirtCpu, msr: u32, load_into_hardware: bool) { + let uret_msr = vcpu.vmx_mut().find_uret_msr_mut(msr); + + if let Some(msr) = uret_msr { + msr.load_into_hardware = load_into_hardware; + } + } + + fn update_transition_efer(&self, vcpu: &mut VirtCpu) -> bool { + let mut guest_efer = vcpu.arch.efer; + let mut ignore_efer = EferFlags::empty(); + if !self.enable_ept { + guest_efer.insert(EferFlags::NO_EXECUTE_ENABLE); + } + + ignore_efer.insert(EferFlags::SYSTEM_CALL_EXTENSIONS); + + ignore_efer.insert(EferFlags::LONG_MODE_ACTIVE | EferFlags::LONG_MODE_ENABLE); + + if guest_efer.contains(EferFlags::LONG_MODE_ACTIVE) { + ignore_efer.remove(EferFlags::SYSTEM_CALL_EXTENSIONS); + } + + if self.has_load_ia32_efer() + || (self.enable_ept + && (vcpu.arch.efer ^ x86_kvm_manager().host_efer) + .contains(EferFlags::NO_EXECUTE_ENABLE)) + { + if !guest_efer.contains(EferFlags::LONG_MODE_ACTIVE) { + guest_efer.remove(EferFlags::LONG_MODE_ENABLE); + } + + if guest_efer != x86_kvm_manager().host_efer { + vcpu.vmx_mut().add_atomic_switch_msr( + msr::IA32_EFER, + guest_efer.bits().into(), + x86_kvm_manager().host_efer.bits().into(), + false, + ); + } else { + vcpu.vmx_mut().clear_atomic_switch_msr(msr::IA32_EFER); + } + + return false; + } + + let idx = x86_kvm_manager().find_user_return_msr_idx(msr::IA32_EFER); + if let Some(i) = idx { + vcpu.vmx_mut().clear_atomic_switch_msr(msr::IA32_EFER); + + guest_efer.remove(ignore_efer); + guest_efer.insert(x86_kvm_manager().host_efer & ignore_efer); + + vcpu.vmx_mut().guest_uret_msrs[i].data = guest_efer.bits().into(); + vcpu.vmx_mut().guest_uret_msrs[i].mask = (!ignore_efer).bits().into(); + return true; + } else { + return false; + } + } + + fn set_cr4_guest_host_mask(&self, arch: &mut VirtCpuArch) { + arch.cr4_guest_owned_bits = + x86_kvm_manager().possible_cr4_guest & (!arch.cr4_guest_rsvd_bits); + + if !self.enable_ept { + arch.cr4_guest_owned_bits + .remove(x86_kvm_manager().cr4_tlbflush_bits); + arch.cr4_guest_owned_bits + .remove(x86_kvm_manager().cr4_pdptr_bits); + } + + if arch.is_guest_mode() { + // 嵌套todo + todo!() + } + + VmxAsm::vmx_vmwrite( + control::CR4_GUEST_HOST_MASK, + (!arch.cr4_guest_owned_bits).bits() as u64, + ); + } + + fn l1_guest_owned_cr0_bits(&self) -> Cr0 { + let mut cr0 = x86_kvm_manager().possible_cr0_guest; + + if !self.enable_ept { + cr0.remove(Cr0::CR0_WRITE_PROTECT) + } + + return cr0; + } + + /// 设置在guest生命周期中host不变的部分 + fn set_constant_host_state(&self, vcpu: &mut VirtCpu) { + let loaded_vmcs_host_state = &mut vcpu.vmx().loaded_vmcs.lock().host_state; + + VmxAsm::vmx_vmwrite(host::CR0, unsafe { cr0() }.bits() as u64); + + let cr3 = Cr3::read().1; + VmxAsm::vmx_vmwrite(host::CR3, cr3.bits()); + loaded_vmcs_host_state.cr3 = cr3; + + let cr4 = unsafe { cr4() }; + VmxAsm::vmx_vmwrite(host::CR4, cr4.bits() as u64); + loaded_vmcs_host_state.cr4 = cr4; + + VmxAsm::vmx_vmwrite( + host::CS_SELECTOR, + (segmentation::cs().bits() & (!0x07)).into(), + ); + + VmxAsm::vmx_vmwrite(host::DS_SELECTOR, 0); + VmxAsm::vmx_vmwrite(host::ES_SELECTOR, 0); + + VmxAsm::vmx_vmwrite( + host::SS_SELECTOR, + (segmentation::ds().bits() & (!0x07)).into(), + ); + VmxAsm::vmx_vmwrite( + host::TR_SELECTOR, + (unsafe { x86::task::tr().bits() } & (!0x07)).into(), + ); + + VmxAsm::vmx_vmwrite(host::IDTR_BASE, self.host_idt_base); + VmxAsm::vmx_vmwrite(host::RIP, vmx_vmexit as u64); + + let val = unsafe { rdmsr(msr::IA32_SYSENTER_CS) }; + + // low32 + VmxAsm::vmx_vmwrite(host::IA32_SYSENTER_CS, (val << 32) >> 32); + + // VmxAsm::vmx_vmwrite(host::IA32_SYSENTER_ESP, 0); + + let tmp = unsafe { rdmsr(msr::IA32_SYSENTER_EIP) }; + VmxAsm::vmx_vmwrite(host::IA32_SYSENTER_EIP, (tmp << 32) >> 32); + + if self + .vmcs_config + .vmexit_ctrl + .contains(ExitControls::LOAD_IA32_PAT) + { + VmxAsm::vmx_vmwrite(host::IA32_PAT_FULL, unsafe { rdmsr(msr::IA32_PAT) }); + } + + if self.has_load_ia32_efer() { + VmxAsm::vmx_vmwrite( + host::IA32_EFER_FULL, + x86_kvm_manager().host_efer.bits() as u64, + ); + } + } + + fn get_pin_based_exec_controls(&self, vcpu: &VirtCpu) -> PinbasedControls { + let mut ctrls = self.vmcs_config.pin_based_exec_ctrl; + + if vcpu.arch.vcpu_apicv_active() { + ctrls.remove(PinbasedControls::POSTED_INTERRUPTS); + } + + if !self.enable_vnmi { + ctrls.remove(PinbasedControls::VIRTUAL_NMIS); + } + + if !self.enable_preemption_timer { + ctrls.remove(PinbasedControls::VMX_PREEMPTION_TIMER); + } + + return ctrls; + } + + fn get_exec_controls(&self, vcpu: &VirtCpu, vmarch: &KvmArch) -> PrimaryControls { + let mut ctrls = self.vmcs_config.cpu_based_exec_ctrl; + + ctrls.remove( + PrimaryControls::RDTSC_EXITING + | PrimaryControls::USE_IO_BITMAPS + | PrimaryControls::MONITOR_TRAP_FLAG + | PrimaryControls::PAUSE_EXITING, + ); + + ctrls.remove( + PrimaryControls::NMI_WINDOW_EXITING | PrimaryControls::INTERRUPT_WINDOW_EXITING, + ); + + ctrls.remove(PrimaryControls::MOV_DR_EXITING); + + if vcpu.arch.lapic_in_kernel() && self.has_tpr_shadow() { + ctrls.remove(PrimaryControls::USE_TPR_SHADOW); + } + + if ctrls.contains(PrimaryControls::USE_TPR_SHADOW) { + ctrls.remove(PrimaryControls::CR8_LOAD_EXITING | PrimaryControls::CR8_STORE_EXITING); + } else { + ctrls.insert(PrimaryControls::CR8_LOAD_EXITING | PrimaryControls::CR8_STORE_EXITING); + } + + if self.enable_ept { + ctrls.remove( + PrimaryControls::CR3_LOAD_EXITING + | PrimaryControls::CR3_STORE_EXITING + | PrimaryControls::INVLPG_EXITING, + ); + } + + if vmarch.mwait_in_guest { + ctrls.remove(PrimaryControls::MWAIT_EXITING | PrimaryControls::MONITOR_EXITING); + } + + if vmarch.hlt_in_guest { + ctrls.remove(PrimaryControls::HLT_EXITING); + } + + return ctrls; + } + + fn get_secondary_exec_controls(&mut self, vcpu: &VirtCpu, vm: &Vm) -> SecondaryControls { + let mut ctrls = self.vmcs_config.cpu_based_2nd_exec_ctrl; + + if self.pt_mode == ProcessorTraceMode::System { + ctrls.remove( + SecondaryControls::INTEL_PT_GUEST_PHYSICAL | SecondaryControls::CONCEAL_VMX_FROM_PT, + ); + } + + if !(self.enable_flexpriority && vcpu.arch.lapic_in_kernel()) { + ctrls.remove(SecondaryControls::VIRTUALIZE_APIC) + } + + if vcpu.vmx().vpid == 0 { + ctrls.remove(SecondaryControls::ENABLE_VPID); + } + + if !self.enable_ept { + ctrls.remove(SecondaryControls::ENABLE_EPT); + self.enable_unrestricted_guest = false; + } + + if !self.enable_unrestricted_guest { + ctrls.remove(SecondaryControls::UNRESTRICTED_GUEST); + } + + if vm.arch.pause_in_guest { + ctrls.remove(SecondaryControls::PAUSE_LOOP_EXITING); + } + if !vcpu.arch.vcpu_apicv_active() { + ctrls.remove( + SecondaryControls::VIRTUALIZE_APIC_REGISTER + | SecondaryControls::VIRTUAL_INTERRUPT_DELIVERY, + ); + } + + ctrls.remove(SecondaryControls::VIRTUALIZE_X2APIC); + + ctrls.remove(SecondaryControls::ENABLE_VM_FUNCTIONS); + + ctrls.remove(SecondaryControls::DTABLE_EXITING); + + ctrls.remove(SecondaryControls::VMCS_SHADOWING); + + if !self.enable_pml || vm.nr_memslots_dirty_logging == 0 { + ctrls.remove(SecondaryControls::ENABLE_PML); + } + + // TODO: vmx_adjust_sec_exec_feature + + if self.has_rdtscp() { + kwarn!("adjust RDTSCP todo!"); + // todo!() + } + + return ctrls; + } + + fn get_vmexit_controls(&self) -> ExitControls { + let mut ctrls = self.vmcs_config.vmexit_ctrl; + + ctrls.remove( + ExitControls::SAVE_IA32_PAT + | ExitControls::SAVE_IA32_EFER + | ExitControls::SAVE_VMX_PREEMPTION_TIMER, + ); + + if self.pt_mode == ProcessorTraceMode::System { + ctrls.remove(ExitControls::CONCEAL_VMX_FROM_PT | ExitControls::CLEAR_IA32_RTIT_CTL); + } + + // todo: cpu_has_perf_global_ctrl_bug + + ctrls.remove(ExitControls::LOAD_IA32_PERF_GLOBAL_CTRL | ExitControls::LOAD_IA32_EFER); + + ctrls + } + + fn get_vmentry_controls(&self) -> EntryControls { + let mut ctrls = self.vmcs_config.vmentry_ctrl; + + if self.pt_mode == ProcessorTraceMode::System { + ctrls.remove(EntryControls::CONCEAL_VMX_FROM_PT | EntryControls::LOAD_IA32_RTIT_CTL); + } + + ctrls.remove( + EntryControls::LOAD_IA32_PERF_GLOBAL_CTRL + | EntryControls::LOAD_IA32_EFER + | EntryControls::IA32E_MODE_GUEST, + ); + + // todo: cpu_has_perf_global_ctrl_bug + + ctrls + } + + pub fn emulation_required(&self, vcpu: &mut VirtCpu) -> bool { + return self.emulate_invalid_guest_state && !self.guest_state_valid(vcpu); + } + + pub fn guest_state_valid(&self, vcpu: &mut VirtCpu) -> bool { + return vcpu.is_unrestricted_guest() || self.__guest_state_valid(vcpu); + } + + pub fn __guest_state_valid(&self, vcpu: &mut VirtCpu) -> bool { + if vcpu.arch.is_portected_mode() + || x86_kvm_ops().get_rflags(vcpu).contains(RFlags::FLAGS_VM) + { + if !self.rmode_segment_valid(vcpu, VcpuSegment::CS) { + return false; + } + if !self.rmode_segment_valid(vcpu, VcpuSegment::SS) { + return false; + } + if !self.rmode_segment_valid(vcpu, VcpuSegment::DS) { + return false; + } + if !self.rmode_segment_valid(vcpu, VcpuSegment::ES) { + return false; + } + if !self.rmode_segment_valid(vcpu, VcpuSegment::FS) { + return false; + } + if !self.rmode_segment_valid(vcpu, VcpuSegment::GS) { + return false; + } + } else { + todo!("protected mode guest state checks todo"); + } + + return true; + } + + pub fn vmx_get_segment( + &self, + vcpu: &mut VirtCpu, + mut var: UapiKvmSegment, + seg: VcpuSegment, + ) -> UapiKvmSegment { + if vcpu.vmx().rmode.vm86_active && seg != VcpuSegment::LDTR { + var = vcpu.vmx().rmode.segs[seg as usize]; + if seg == VcpuSegment::TR || var.selector == Vmx::vmx_read_guest_seg_selector(vcpu, seg) + { + return var; + } + + var.base = Vmx::vmx_read_guest_seg_base(vcpu, seg); + var.selector = Vmx::vmx_read_guest_seg_selector(vcpu, seg); + return var; + } + + var.base = Vmx::vmx_read_guest_seg_base(vcpu, seg); + var.limit = Vmx::vmx_read_guest_seg_limit(vcpu, seg); + var.selector = Vmx::vmx_read_guest_seg_selector(vcpu, seg); + + let ar = Vmx::vmx_read_guest_seg_ar(vcpu, seg); + + var.unusable = ((ar >> 16) & 1) as u8; + var.type_ = (ar & 15) as u8; + var.s = ((ar >> 4) & 1) as u8; + var.dpl = ((ar >> 5) & 3) as u8; + + var.present = !var.unusable; + var.avl = ((ar >> 12) & 1) as u8; + var.l = ((ar >> 13) & 1) as u8; + var.db = ((ar >> 14) & 1) as u8; + var.g = ((ar >> 15) & 1) as u8; + + return var; + } + + pub fn _vmx_set_segment( + &self, + vcpu: &mut VirtCpu, + mut var: UapiKvmSegment, + seg: VcpuSegment, + ) -> UapiKvmSegment { + let sf = &KVM_VMX_SEGMENT_FIELDS[seg as usize]; + + vcpu.vmx_mut().segment_cache_clear(); + + if vcpu.vmx().rmode.vm86_active && seg != VcpuSegment::LDTR { + vcpu.vmx_mut().rmode.segs[seg as usize] = var; + if seg == VcpuSegment::TR { + VmxAsm::vmx_vmwrite(sf.selector, var.selector as u64); + } else if var.s != 0 { + Vmx::fix_rmode_seg(seg, &vcpu.vmx().rmode.segs[seg as usize]); + } + return var; + } + + VmxAsm::vmx_vmwrite(sf.base, var.base); + VmxAsm::vmx_vmwrite(sf.limit, var.limit as u64); + VmxAsm::vmx_vmwrite(sf.selector, var.selector as u64); + + if vcpu.is_unrestricted_guest() && seg != VcpuSegment::LDTR { + var.type_ |= 0x1; + } + + VmxAsm::vmx_vmwrite(sf.ar_bytes, var.vmx_segment_access_rights() as u64); + return var; + } + + pub fn rmode_segment_valid(&self, vcpu: &mut VirtCpu, seg: VcpuSegment) -> bool { + let mut var = UapiKvmSegment::default(); + var = self.vmx_get_segment(vcpu, var, seg); + + var.dpl = 0x3; + + if seg == VcpuSegment::CS { + var.type_ = 0x3; + } + + let ar = var.vmx_segment_access_rights(); + + if var.base != ((var.selector as u64) << 4) { + return false; + } + + if var.limit != 0xffff { + return false; + } + + if ar != 0xf3 { + return false; + } + + true + } + + pub fn fix_rmode_seg(seg: VcpuSegment, save: &UapiKvmSegment) { + let sf = &KVM_VMX_SEGMENT_FIELDS[seg as usize]; + + let mut var = *save; + var.dpl = 0x3; + if seg == VcpuSegment::CS { + var.type_ = 0x3; + } + + if !vmx_info().emulate_invalid_guest_state { + var.selector = (var.base >> 4) as u16; + var.base = var.base & 0xffff0; + var.limit = 0xffff; + var.g = 0; + var.db = 0; + var.present = 1; + var.s = 1; + var.l = 0; + var.unusable = 0; + var.type_ = 0x3; + var.avl = 0; + if save.base & 0xf != 0 { + kwarn!("segment base is not paragraph aligned when entering protected mode (seg={seg:?})"); + } + } + + VmxAsm::vmx_vmwrite(sf.selector, var.selector as u64); + VmxAsm::vmx_vmwrite(sf.base, var.base); + VmxAsm::vmx_vmwrite(sf.limit, var.limit as u64); + VmxAsm::vmx_vmwrite(sf.ar_bytes, var.vmx_segment_access_rights() as u64); + } + + pub fn fix_pmode_seg( + &self, + vcpu: &mut VirtCpu, + seg: VcpuSegment, + mut save: UapiKvmSegment, + ) -> UapiKvmSegment { + if self.emulate_invalid_guest_state { + if seg == VcpuSegment::CS || seg == VcpuSegment::SS { + save.selector &= !0x3; + } + + save.dpl = (save.selector & 0x3) as u8; + save.s = 1; + } + + self._vmx_set_segment(vcpu, save, seg); + + return save; + } + + pub fn enter_pmode(&self, vcpu: &mut VirtCpu) { + self.get_segment_with_rmode(vcpu, VcpuSegment::ES); + self.get_segment_with_rmode(vcpu, VcpuSegment::DS); + self.get_segment_with_rmode(vcpu, VcpuSegment::FS); + self.get_segment_with_rmode(vcpu, VcpuSegment::GS); + self.get_segment_with_rmode(vcpu, VcpuSegment::SS); + self.get_segment_with_rmode(vcpu, VcpuSegment::CS); + + vcpu.vmx_mut().rmode.vm86_active = false; + + self.set_segment_with_rmode(vcpu, VcpuSegment::TR); + + let mut flags = RFlags::from_bits_truncate(VmxAsm::vmx_vmread(guest::RFLAGS)); + + flags.remove(RFlags::FLAGS_IOPL3 | RFlags::FLAGS_VM); + + flags.insert(vcpu.vmx().rmode.save_rflags & (RFlags::FLAGS_IOPL3 | RFlags::FLAGS_VM)); + + VmxAsm::vmx_vmwrite(guest::RFLAGS, flags.bits()); + + let cr4 = (Cr4::from_bits_truncate(VmxAsm::vmx_vmread(guest::CR4) as usize) + & (!Cr4::CR4_ENABLE_VME)) + | (Cr4::from_bits_truncate(VmxAsm::vmx_vmread(control::CR4_READ_SHADOW) as usize) + & Cr4::CR4_ENABLE_VME); + VmxAsm::vmx_vmwrite(guest::CR4, cr4.bits() as u64); + + VmxKvmFunc.update_exception_bitmap(vcpu); + + self.fix_pmode_seg_with_rmode(vcpu, VcpuSegment::CS); + self.fix_pmode_seg_with_rmode(vcpu, VcpuSegment::SS); + self.fix_pmode_seg_with_rmode(vcpu, VcpuSegment::ES); + self.fix_pmode_seg_with_rmode(vcpu, VcpuSegment::DS); + self.fix_pmode_seg_with_rmode(vcpu, VcpuSegment::FS); + self.fix_pmode_seg_with_rmode(vcpu, VcpuSegment::GS); + } + + fn fix_pmode_seg_with_rmode(&self, vcpu: &mut VirtCpu, seg: VcpuSegment) { + let segment = vcpu.vmx().rmode.segs[seg as usize]; + vcpu.vmx_mut().rmode.segs[seg as usize] = self.fix_pmode_seg(vcpu, seg, segment); + } + + fn get_segment_with_rmode(&self, vcpu: &mut VirtCpu, seg: VcpuSegment) { + let segment = vcpu.vmx().rmode.segs[seg as usize]; + vcpu.vmx_mut().rmode.segs[seg as usize] = self.vmx_get_segment(vcpu, segment, seg); + } + + fn set_segment_with_rmode(&self, vcpu: &mut VirtCpu, seg: VcpuSegment) { + let segment = vcpu.vmx().rmode.segs[seg as usize]; + vcpu.vmx_mut().rmode.segs[seg as usize] = self._vmx_set_segment(vcpu, segment, seg); + } + + pub fn enter_rmode(&self, vcpu: &mut VirtCpu, vm: &Vm) { + let kvm_vmx = vm.kvm_vmx(); + + self.get_segment_with_rmode(vcpu, VcpuSegment::TR); + self.get_segment_with_rmode(vcpu, VcpuSegment::ES); + self.get_segment_with_rmode(vcpu, VcpuSegment::DS); + self.get_segment_with_rmode(vcpu, VcpuSegment::FS); + self.get_segment_with_rmode(vcpu, VcpuSegment::GS); + self.get_segment_with_rmode(vcpu, VcpuSegment::SS); + self.get_segment_with_rmode(vcpu, VcpuSegment::CS); + + vcpu.vmx_mut().rmode.vm86_active = true; + + vcpu.vmx_mut().segment_cache_clear(); + + VmxAsm::vmx_vmwrite(guest::TR_BASE, kvm_vmx.tss_addr as u64); + VmxAsm::vmx_vmwrite(guest::TR_LIMIT, RMODE_TSS_SIZE as u64 - 1); + VmxAsm::vmx_vmwrite(guest::TR_ACCESS_RIGHTS, 0x008b); + + let mut flags = RFlags::from_bits_truncate(VmxAsm::vmx_vmread(guest::RFLAGS)); + vcpu.vmx_mut().rmode.save_rflags = flags; + + flags.insert(RFlags::FLAGS_IOPL3 | RFlags::FLAGS_VM); + + VmxAsm::vmx_vmwrite(guest::RFLAGS, flags.bits()); + VmxAsm::vmx_vmwrite( + guest::CR4, + VmxAsm::vmx_vmread(guest::CR4) | Cr4::CR4_ENABLE_VME.bits() as u64, + ); + + VmxKvmFunc.update_exception_bitmap(vcpu); + + self.fix_rmode_seg_with_rmode(vcpu, VcpuSegment::SS); + self.fix_rmode_seg_with_rmode(vcpu, VcpuSegment::CS); + self.fix_rmode_seg_with_rmode(vcpu, VcpuSegment::ES); + self.fix_rmode_seg_with_rmode(vcpu, VcpuSegment::DS); + self.fix_rmode_seg_with_rmode(vcpu, VcpuSegment::GS); + self.fix_rmode_seg_with_rmode(vcpu, VcpuSegment::FS); + } + + fn fix_rmode_seg_with_rmode(&self, vcpu: &VirtCpu, seg: VcpuSegment) { + Vmx::fix_rmode_seg(seg, &vcpu.vmx().rmode.segs[seg as usize]); + } + + pub fn vmx_read_guest_seg_ar(vcpu: &mut VirtCpu, seg: VcpuSegment) -> u32 { + if !Vmx::vmx_segment_cache_test_set(vcpu, seg, SegmentCacheField::AR) { + vcpu.vmx_mut().segment_cache.seg[seg as usize].ar = + VmxAsm::vmx_vmread(KVM_VMX_SEGMENT_FIELDS[seg as usize].ar_bytes) as u32; + } + + return vcpu.vmx().segment_cache.seg[seg as usize].ar; + } + + pub fn vmx_read_guest_seg_selector(vcpu: &mut VirtCpu, seg: VcpuSegment) -> u16 { + if !Vmx::vmx_segment_cache_test_set(vcpu, seg, SegmentCacheField::SEL) { + vcpu.vmx_mut().segment_cache.seg[seg as usize].selector = + VmxAsm::vmx_vmread(KVM_VMX_SEGMENT_FIELDS[seg as usize].selector) as u16; + } + + return vcpu.vmx().segment_cache.seg[seg as usize].selector; + } + + pub fn vmx_read_guest_seg_base(vcpu: &mut VirtCpu, seg: VcpuSegment) -> u64 { + if !Vmx::vmx_segment_cache_test_set(vcpu, seg, SegmentCacheField::BASE) { + vcpu.vmx_mut().segment_cache.seg[seg as usize].base = + VmxAsm::vmx_vmread(KVM_VMX_SEGMENT_FIELDS[seg as usize].base); + } + + return vcpu.vmx().segment_cache.seg[seg as usize].base; + } + + pub fn vmx_read_guest_seg_limit(vcpu: &mut VirtCpu, seg: VcpuSegment) -> u32 { + if !Vmx::vmx_segment_cache_test_set(vcpu, seg, SegmentCacheField::LIMIT) { + vcpu.vmx_mut().segment_cache.seg[seg as usize].limit = + VmxAsm::vmx_vmread(KVM_VMX_SEGMENT_FIELDS[seg as usize].limit) as u32; + } + + return vcpu.vmx().segment_cache.seg[seg as usize].limit; + } + + fn vmx_segment_cache_test_set( + vcpu: &mut VirtCpu, + seg: VcpuSegment, + field: SegmentCacheField, + ) -> bool { + let mask = 1u32 << (seg as usize * SegmentCacheField::NR as usize + field as usize); + + if !vcpu.arch.is_register_available(KvmReg::VcpuExregSegments) { + vcpu.arch.mark_register_available(KvmReg::VcpuExregSegments); + vcpu.vmx_mut().segment_cache_clear(); + } + + let ret = vcpu.vmx().segment_cache.bitmask & mask; + + vcpu.vmx_mut().segment_cache.bitmask |= mask; + + return ret != 0; + } + + pub fn vmx_vcpu_enter_exit(vcpu: &mut VirtCpu, flags: VmxRunFlag) { + // TODO: vmx_l1d_should_flush and mmio_stale_data_clear + + // TODO: vmx_disable_fb_clear + + if vcpu.arch.cr2 != unsafe { cr2() } as u64 { + unsafe { cr2_write(vcpu.arch.cr2) }; + } + + let fail = + unsafe { __vmx_vcpu_run(vcpu.vmx(), vcpu.arch.regs.as_ptr(), flags.bits as u32) }; + vcpu.vmx_mut().fail = fail as u8; + + todo!() + } +} + +extern "C" { + fn __vmx_vcpu_run(vmx: &VmxVCpuPriv, regs: *const u64, flags: u32) -> i32; } struct VmcsEntryExitPair { @@ -900,6 +2386,28 @@ impl VmcsEntryExitPair { } } +#[derive(Debug, Default)] +#[repr(C, align(64))] +pub struct PostedIntrDesc { + pir: [u32; 8], + control: PostedIntrDescControl, + // 保留位 + rsvd: [u32; 6], +} + +#[bitfield(u64)] +pub struct PostedIntrDescControl { + #[bits(1)] + on: bool, + #[bits(1)] + sn: bool, + #[bits(14)] + rsvd_1: u16, + nv: u8, + rsvd_2: u8, + ndst: u32, +} + #[derive(Debug, Default, Clone, Copy)] pub struct VmxUretMsr { load_into_hardware: bool, @@ -907,31 +2415,154 @@ pub struct VmxUretMsr { mask: u64, } +#[derive(Debug, Default)] +pub struct VmxMsrs { + nr: usize, + val: [VmxMsrEntry; Self::MAX_NR_LOADSTORE_MSRS], +} + +impl VmxMsrs { + pub const MAX_NR_LOADSTORE_MSRS: usize = 8; + + pub fn find_loadstore_msr_slot(&self, msr: u32) -> Option { + for i in 0..self.nr { + if self.val[i].index == msr { + return Some(i); + } + } + + None + } +} + +#[derive(Debug, Default)] +pub struct VmxMsrAutoLoad { + guest: VmxMsrs, + host: VmxMsrs, +} + +#[derive(Debug)] +pub struct VmxRMode { + pub vm86_active: bool, + pub save_rflags: RFlags, + pub segs: [UapiKvmSegment; 8], +} + +impl Default for VmxRMode { + fn default() -> Self { + Self { + vm86_active: false, + save_rflags: RFlags::empty(), + segs: [UapiKvmSegment::default(); 8], + } + } +} + +#[derive(Debug, Clone, Copy, Default)] +pub struct VmxSaveSegment { + selector: u16, + base: u64, + limit: u32, + ar: u32, +} + +#[derive(Debug, Default)] +pub struct VmxSegmentCache { + pub bitmask: u32, + pub seg: [VmxSaveSegment; 8], +} + #[derive(Debug)] pub struct VmxVCpuPriv { - vpid: Option, + vpid: u16, + + fail: u8, + vmcs01: Arc, loaded_vmcs: Arc, guest_uret_msrs: [VmxUretMsr; KvmArchManager::KVM_MAX_NR_USER_RETURN_MSRS], + guest_uret_msrs_loaded: bool, + + post_intr_desc: PostedIntrDesc, shadow_msr_intercept_read: AllocBitmap, shadow_msr_intercept_write: AllocBitmap, + + msr_ia32_feature_control: u64, + msr_ia32_feature_control_valid_bits: u64, + + emulation_required: bool, + + rflags: RFlags, + + ple_window: u32, + ple_window_dirty: bool, + + msr_autoload: VmxMsrAutoLoad, + + pml_pg: Box<[u8; MMArch::PAGE_SIZE]>, + + rmode: VmxRMode, + + spec_ctrl: u64, + msr_ia32_umwait_control: u32, + hv_deadline_tsc: u64, + + segment_cache: VmxSegmentCache, +} + +#[derive(Debug, Default)] +pub struct KvmVmx { + tss_addr: usize, + ept_identity_pagetable_done: bool, + ept_identity_map_addr: u64, + pid_table: Option>, +} + +impl KvmVmx { + pub fn pid_table(&self) -> &[u64; MMArch::PAGE_SIZE] { + self.pid_table.as_ref().unwrap().as_ref() + } } impl VmxVCpuPriv { + pub const PML_ENTITY_NUM: usize = 512; + + pub fn loaded_vmcs(&self) -> SpinLockGuard { + self.loaded_vmcs.lock() + } + /// 参考:https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/vmx/vmx.c#7452 pub fn init(vcpu: &mut VirtCpu, vm: &Vm) { let vmcs = LockedLoadedVmcs::new(); + + // TODO: 改堆分配 let mut vmx = Self { - vpid: None, + vpid: 0, + fail: 0, vmcs01: vmcs.clone(), loaded_vmcs: vmcs, guest_uret_msrs: [VmxUretMsr::default(); KvmArchManager::KVM_MAX_NR_USER_RETURN_MSRS], shadow_msr_intercept_read: AllocBitmap::new(16), shadow_msr_intercept_write: AllocBitmap::new(16), + post_intr_desc: PostedIntrDesc::default(), + ple_window: 0, + ple_window_dirty: false, + msr_autoload: VmxMsrAutoLoad::default(), + pml_pg: unsafe { Box::new_zeroed().assume_init() }, + guest_uret_msrs_loaded: false, + msr_ia32_feature_control: 0, + msr_ia32_feature_control_valid_bits: 0, + rmode: VmxRMode::default(), + spec_ctrl: 0, + msr_ia32_umwait_control: 0, + hv_deadline_tsc: u64::MAX, + segment_cache: VmxSegmentCache::default(), + emulation_required: false, + rflags: RFlags::empty(), }; - vmx.vpid = vmx_info().alloc_vpid(); + vmx.vpid = vmx_info().alloc_vpid().unwrap_or_default() as u16; for i in 0..x86_kvm_manager().kvm_uret_msrs_list.len() { vmx.guest_uret_msrs[i].mask = u64::MAX; @@ -991,6 +2622,12 @@ impl VmxVCpuPriv { } } + fn set_uret_msr(&mut self, msr: u32, data: u64) { + if let Some(msr) = self.find_uret_msr_mut(msr) { + msr.data = data; + } + } + pub fn find_uret_msr_mut(&mut self, msr: u32) -> Option<&mut VmxUretMsr> { let idx = x86_kvm_manager().find_user_return_msr_idx(msr); if let Some(index) = idx { @@ -1000,6 +2637,14 @@ impl VmxVCpuPriv { } } + fn set_guest_uret_msr(&mut self, msr: &VmxUretMsr, data: u64) -> Result<(), SystemError> { + if msr.load_into_hardware { + todo!() + } + + Ok(()) + } + /// ## 禁用对特定的 MSR 的拦截 fn disable_intercept_for_msr(&mut self, arch: &KvmArch, msr: u32, mut msr_type: MsrType) { if !vmx_info().has_msr_bitmap() { @@ -1044,6 +2689,175 @@ impl VmxVCpuPriv { msr_bitmap.ctl(msr, VmxMsrBitmapAction::Clear, VmxMsrBitmapAccess::Write); } } + + #[inline] + pub fn segment_cache_clear(&mut self) { + self.segment_cache.bitmask = 0; + } + + pub fn clear_atomic_switch_msr(&mut self, msr: u32) { + match msr { + msr::IA32_EFER => { + if vmx_info().has_load_ia32_efer() { + self.clear_stomic_switch_msr_special( + EntryControls::LOAD_IA32_EFER.bits().into(), + ExitControls::LOAD_IA32_EFER.bits().into(), + ); + return; + } + } + + msr::MSR_PERF_GLOBAL_CTRL => { + if vmx_info().has_load_perf_global_ctrl() { + self.clear_stomic_switch_msr_special( + EntryControls::LOAD_IA32_PERF_GLOBAL_CTRL.bits().into(), + ExitControls::LOAD_IA32_PERF_GLOBAL_CTRL.bits().into(), + ); + return; + } + } + _ => {} + } + + let m = &mut self.msr_autoload; + let i = m.guest.find_loadstore_msr_slot(msr); + + if let Some(i) = i { + m.guest.nr -= 1; + m.guest.val[i] = m.guest.val[m.guest.nr]; + VmxAsm::vmx_vmwrite(control::VMENTRY_MSR_LOAD_COUNT, m.guest.nr as u64); + } + + let i = m.host.find_loadstore_msr_slot(msr); + if let Some(i) = i { + m.host.nr -= 1; + m.host.val[i] = m.host.val[m.host.nr]; + VmxAsm::vmx_vmwrite(control::VMEXIT_MSR_LOAD_COUNT, m.host.nr as u64); + } + } + + fn clear_stomic_switch_msr_special(&self, entry: u64, exit: u64) { + let mut guard = self.loaded_vmcs.lock(); + guard.controls_clearbit(ControlsType::VmEntry, entry); + guard.controls_clearbit(ControlsType::VmExit, exit); + } + + pub fn add_atomic_switch_msr( + &mut self, + msr: u32, + guest_val: u64, + host_val: u64, + entry_only: bool, + ) { + match msr { + msr::IA32_EFER => { + if vmx_info().has_load_ia32_efer() { + self.add_atomic_switch_msr_special( + EntryControls::LOAD_IA32_EFER.bits() as u64, + ExitControls::LOAD_IA32_EFER.bits() as u64, + guest::IA32_EFER_FULL, + host::IA32_EFER_FULL, + guest_val, + host_val, + ); + return; + } + } + msr::MSR_PERF_GLOBAL_CTRL => { + if vmx_info().has_load_perf_global_ctrl() { + self.add_atomic_switch_msr_special( + EntryControls::LOAD_IA32_PERF_GLOBAL_CTRL.bits().into(), + ExitControls::LOAD_IA32_PERF_GLOBAL_CTRL.bits().into(), + guest::IA32_PERF_GLOBAL_CTRL_FULL, + host::IA32_PERF_GLOBAL_CTRL_FULL, + guest_val, + host_val, + ); + return; + } + } + msr::MSR_PEBS_ENABLE => { + unsafe { wrmsr(msr::MSR_PEBS_ENABLE, 0) }; + } + + _ => {} + } + + let m = &mut self.msr_autoload; + let mut i = m.guest.find_loadstore_msr_slot(msr); + let j = if !entry_only { + m.host.find_loadstore_msr_slot(msr) + } else { + Some(0) + }; + + if (i.is_none() && m.guest.nr == VmxMsrs::MAX_NR_LOADSTORE_MSRS) + || (j.is_none() && m.host.nr == VmxMsrs::MAX_NR_LOADSTORE_MSRS) + { + kwarn!("Not enough msr switch entries. Can't add msr {:x}", msr); + return; + } + + let i = if i.is_none() { + m.guest.nr += 1; + VmxAsm::vmx_vmwrite(control::VMENTRY_MSR_LOAD_COUNT, m.guest.nr as u64); + m.guest.nr + } else { + i.unwrap() + }; + + m.guest.val[i].index = msr; + m.guest.val[i].data = guest_val; + + if entry_only { + return; + } + + let j = if j.is_none() { + m.host.nr += 1; + VmxAsm::vmx_vmwrite(control::VMEXIT_MSR_LOAD_COUNT, m.host.nr as u64); + m.host.nr + } else { + j.unwrap() + }; + + m.host.val[i].index = msr; + m.host.val[i].data = host_val; + } + + fn add_atomic_switch_msr_special( + &self, + entry: u64, + exit: u64, + guest_val_vmcs: u32, + host_val_vmcs: u32, + guest_val: u64, + host_val: u64, + ) { + VmxAsm::vmx_vmwrite(guest_val_vmcs, guest_val); + if host_val_vmcs != host::IA32_EFER_FULL { + VmxAsm::vmx_vmwrite(host_val_vmcs, host_val); + } + + let mut guard = self.loaded_vmcs.lock(); + guard.controls_setbit(ControlsType::VmEntry, entry); + guard.controls_setbit(ControlsType::VmExit, exit); + } + + pub fn vmx_vcpu_run_flags(&self) -> VmxRunFlag { + let mut flags = VmxRunFlag::empty(); + + if self.loaded_vmcs().launched { + flags.insert(VmxRunFlag::VMRESUME); + } + + // MSR_IA32_SPEC_CTRL + if !self.loaded_vmcs().msr_write_intercepted(0x48) { + flags.insert(VmxRunFlag::SAVE_SPEC_CTRL); + } + + flags + } } bitflags! { @@ -1052,6 +2866,24 @@ bitflags! { const WRITE = 2; const RW = 3; } + + pub struct PageFaultErr: u64 { + const PFERR_PRESENT = 1 << 0; + const PFERR_WRITE = 1 << 1; + const PFERR_USER = 1 << 2; + const PFERR_RSVD = 1 << 3; + const PFERR_FETCH = 1 << 4; + const PFERR_PK = 1 << 5; + const PFERR_SGX = 1 << 15; + const PFERR_GUEST_FINAL = 1 << 32; + const PFERR_GUEST_PAGE = 1 << 33; + const PFERR_IMPLICIT_ACCESS = 1 << 48; + } + + pub struct VmxRunFlag: u8 { + const VMRESUME = 1 << 0; + const SAVE_SPEC_CTRL = 1 << 1; + } } #[derive(Debug, PartialEq)] @@ -1064,6 +2896,209 @@ pub enum VmxL1dFlushState { FlushNotRequired, } +pub struct VmxSegmentField { + selector: u32, + base: u32, + limit: u32, + ar_bytes: u32, +} + +pub const KVM_VMX_SEGMENT_FIELDS: &'static [VmxSegmentField] = &[ + // CS + VmxSegmentField { + selector: guest::CS_SELECTOR, + base: guest::CS_BASE, + limit: guest::CS_LIMIT, + ar_bytes: guest::CS_ACCESS_RIGHTS, + }, + // DS + VmxSegmentField { + selector: guest::DS_SELECTOR, + base: guest::DS_BASE, + limit: guest::DS_LIMIT, + ar_bytes: guest::DS_ACCESS_RIGHTS, + }, + // ES + VmxSegmentField { + selector: guest::ES_SELECTOR, + base: guest::ES_BASE, + limit: guest::ES_LIMIT, + ar_bytes: guest::ES_ACCESS_RIGHTS, + }, + // FS + VmxSegmentField { + selector: guest::FS_SELECTOR, + base: guest::FS_BASE, + limit: guest::FS_LIMIT, + ar_bytes: guest::FS_ACCESS_RIGHTS, + }, + // GS + VmxSegmentField { + selector: guest::GS_SELECTOR, + base: guest::GS_BASE, + limit: guest::GS_LIMIT, + ar_bytes: guest::GS_ACCESS_RIGHTS, + }, + // SS + VmxSegmentField { + selector: guest::SS_SELECTOR, + base: guest::SS_BASE, + limit: guest::SS_LIMIT, + ar_bytes: guest::SS_ACCESS_RIGHTS, + }, + // TR + VmxSegmentField { + selector: guest::TR_SELECTOR, + base: guest::TR_BASE, + limit: guest::TR_LIMIT, + ar_bytes: guest::TR_ACCESS_RIGHTS, + }, + // LDTR + VmxSegmentField { + selector: guest::LDTR_SELECTOR, + base: guest::LDTR_BASE, + limit: guest::LDTR_LIMIT, + ar_bytes: guest::LDTR_ACCESS_RIGHTS, + }, +]; + +#[derive(FromPrimitive)] +#[allow(non_camel_case_types)] +pub enum VmxExitReason { + EXCEPTION_OR_NMI = 0, + EXTERNAL_INTERRUPT = 1, + TRIPLE_FAULT = 2, + INIT_SIGNAL = 3, + SIPI = 4, + IO_SMI = 5, + OTHER_SMI = 6, + INTERRUPT_WINDOW = 7, + NMI_WINDOW = 8, + TASK_SWITCH = 9, + CPUID = 10, + GETSEC = 11, + HLT = 12, + INVD = 13, + INVLPG = 14, + RDPMC = 15, + RDTSC = 16, + RSM = 17, + VMCALL = 18, + VMCLEAR = 19, + VMLAUNCH = 20, + VMPTRLD = 21, + VMPTRST = 22, + VMREAD = 23, + VMRESUME = 24, + VMWRITE = 25, + VMXOFF = 26, + VMXON = 27, + CR_ACCESS = 28, + DR_ACCESS = 29, + IO_INSTRUCTION = 30, + RDMSR = 31, + WRMSR = 32, + VM_ENTRY_FAILURE_INVALID_GUEST_STATE = 33, + VM_ENTRY_FAILURE_MSR_LOADING = 34, + MWAIT = 36, + MONITOR_TRAP_FLAG = 37, + MONITOR = 39, + PAUSE = 40, + VM_ENTRY_FAILURE_MACHINE_CHECK_EVENT = 41, + TPR_BELOW_THRESHOLD = 43, + APIC_ACCESS = 44, + VIRTUALIZED_EOI = 45, + ACCESS_GDTR_OR_IDTR = 46, + ACCESS_LDTR_OR_TR = 47, + EPT_VIOLATION = 48, + EPT_MISCONFIG = 49, + INVEPT = 50, + RDTSCP = 51, + VMX_PREEMPTION_TIMER_EXPIRED = 52, + INVVPID = 53, + WBINVD = 54, + XSETBV = 55, + APIC_WRITE = 56, + RDRAND = 57, + INVPCID = 58, + VMFUNC = 59, + ENCLS = 60, + RDSEED = 61, + PML_FULL = 62, + XSAVES = 63, + XRSTORS = 64, +} + +impl From for VmxExitReason { + fn from(num: i32) -> Self { + match num { + 0 => VmxExitReason::EXCEPTION_OR_NMI, + 1 => VmxExitReason::EXTERNAL_INTERRUPT, + 2 => VmxExitReason::TRIPLE_FAULT, + 3 => VmxExitReason::INIT_SIGNAL, + 4 => VmxExitReason::SIPI, + 5 => VmxExitReason::IO_SMI, + 6 => VmxExitReason::OTHER_SMI, + 7 => VmxExitReason::INTERRUPT_WINDOW, + 8 => VmxExitReason::NMI_WINDOW, + 9 => VmxExitReason::TASK_SWITCH, + 10 => VmxExitReason::CPUID, + 11 => VmxExitReason::GETSEC, + 12 => VmxExitReason::HLT, + 13 => VmxExitReason::INVD, + 14 => VmxExitReason::INVLPG, + 15 => VmxExitReason::RDPMC, + 16 => VmxExitReason::RDTSC, + 17 => VmxExitReason::RSM, + 18 => VmxExitReason::VMCALL, + 19 => VmxExitReason::VMCLEAR, + 20 => VmxExitReason::VMLAUNCH, + 21 => VmxExitReason::VMPTRLD, + 22 => VmxExitReason::VMPTRST, + 23 => VmxExitReason::VMREAD, + 24 => VmxExitReason::VMRESUME, + 25 => VmxExitReason::VMWRITE, + 26 => VmxExitReason::VMXOFF, + 27 => VmxExitReason::VMXON, + 28 => VmxExitReason::CR_ACCESS, + 29 => VmxExitReason::DR_ACCESS, + 30 => VmxExitReason::IO_INSTRUCTION, + 31 => VmxExitReason::RDMSR, + 32 => VmxExitReason::WRMSR, + 33 => VmxExitReason::VM_ENTRY_FAILURE_INVALID_GUEST_STATE, + 34 => VmxExitReason::VM_ENTRY_FAILURE_MSR_LOADING, + 36 => VmxExitReason::MWAIT, + 37 => VmxExitReason::MONITOR_TRAP_FLAG, + 39 => VmxExitReason::MONITOR, + 40 => VmxExitReason::PAUSE, + 41 => VmxExitReason::VM_ENTRY_FAILURE_MACHINE_CHECK_EVENT, + 43 => VmxExitReason::TPR_BELOW_THRESHOLD, + 44 => VmxExitReason::APIC_ACCESS, + 45 => VmxExitReason::VIRTUALIZED_EOI, + 46 => VmxExitReason::ACCESS_GDTR_OR_IDTR, + 47 => VmxExitReason::ACCESS_LDTR_OR_TR, + 48 => VmxExitReason::EPT_VIOLATION, + 49 => VmxExitReason::EPT_MISCONFIG, + 50 => VmxExitReason::INVEPT, + 51 => VmxExitReason::RDTSCP, + 52 => VmxExitReason::VMX_PREEMPTION_TIMER_EXPIRED, + 53 => VmxExitReason::INVVPID, + 54 => VmxExitReason::WBINVD, + 55 => VmxExitReason::XSETBV, + 56 => VmxExitReason::APIC_WRITE, + 57 => VmxExitReason::RDRAND, + 58 => VmxExitReason::INVPCID, + 59 => VmxExitReason::VMFUNC, + 60 => VmxExitReason::ENCLS, + 61 => VmxExitReason::RDSEED, + 62 => VmxExitReason::PML_FULL, + 63 => VmxExitReason::XSAVES, + 64 => VmxExitReason::XRSTORS, + _ => panic!("Invalid VmxExitReason number: {}", num), + } + } +} + pub static L1TF_VMX_MITIGATION: RwLock = RwLock::new(VmxL1dFlushState::FlushAuto); pub fn vmx_init() -> Result<(), SystemError> { @@ -1082,3 +3117,20 @@ pub fn vmx_init() -> Result<(), SystemError> { kvm_init()?; Ok(()) } + +#[no_mangle] +unsafe extern "C" fn vmx_update_host_rsp(vcpu_vmx: &VmxVCpuPriv, host_rsp: usize) { + let mut guard = vcpu_vmx.loaded_vmcs.lock(); + if unlikely(host_rsp != guard.host_state.rsp) { + guard.host_state.rsp = host_rsp; + VmxAsm::vmx_vmwrite(host::RSP, host_rsp as u64); + } + + return; +} + +#[no_mangle] +unsafe extern "C" fn vmx_spec_ctrl_restore_host(vcpu_vmx: &VmxVCpuPriv, flags: u32) { + // TODO + return; +} diff --git a/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs b/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs index c3318f209..fac1a0504 100644 --- a/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs @@ -1,6 +1,14 @@ use alloc::{boxed::Box, collections::LinkedList, sync::Arc, vec::Vec}; use bitmap::{traits::BitMapOps, AllocBitmap}; use system_error::SystemError; +use x86::{ + controlregs::Cr4, + vmx::vmcs::{ + control::{self, PrimaryControls}, + guest, + }, +}; +use x86_64::registers::control::{Cr3, Cr3Flags}; use crate::{ arch::{vm::asm::VmxAsm, MMArch}, @@ -106,10 +114,10 @@ impl LockedVMControlStructure { } } -#[derive(Debug, Default)] +#[derive(Debug)] pub struct VmcsHostState { - pub cr3: usize, - pub cr4: usize, + pub cr3: Cr3Flags, + pub cr4: Cr4, pub gs_base: usize, pub fs_base: usize, pub rsp: usize, @@ -120,6 +128,23 @@ pub struct VmcsHostState { pub rs_sel: u16, } +impl Default for VmcsHostState { + fn default() -> Self { + Self { + cr3: Cr3Flags::empty(), + cr4: Cr4::empty(), + gs_base: 0, + fs_base: 0, + rsp: 0, + fs_sel: 0, + gs_sel: 0, + ldt_sel: 0, + ds_sel: 0, + rs_sel: 0, + } + } +} + #[derive(Debug, Default)] pub struct VmcsControlsShadow { vm_entry: u32, @@ -127,7 +152,7 @@ pub struct VmcsControlsShadow { pin: u32, exec: u32, secondary_exec: u32, - tertiary_exec: u32, + tertiary_exec: u64, } #[derive(Debug)] @@ -142,7 +167,7 @@ pub struct LoadedVmcs { /// Hypervisor 定时器是否被软禁用 hv_timer_soft_disabled: bool, /// 支持 vnmi-less CPU 的字段,指示 VNMI 是否被软阻止 - soft_vnmi_blocked: bool, + pub soft_vnmi_blocked: bool, /// 记录 VM 进入时间 entry_time: u64, /// 记录 VNMI 被阻止的时间 @@ -150,16 +175,102 @@ pub struct LoadedVmcs { /// msr位图 pub msr_bitmap: VmxMsrBitmap, /// 保存 VMCS 主机状态的结构体 - host_state: VmcsHostState, + pub host_state: VmcsHostState, /// 保存 VMCS 控制字段的shadow状态的结构体。 controls_shadow: VmcsControlsShadow, } +impl LoadedVmcs { + pub fn controls_set(&mut self, ctl_type: ControlsType, value: u64) { + match ctl_type { + ControlsType::VmEntry => { + if self.controls_shadow.vm_entry != value as u32 { + VmxAsm::vmx_vmwrite(control::VMENTRY_CONTROLS, value); + self.controls_shadow.vm_entry = value as u32; + } + } + ControlsType::VmExit => { + if self.controls_shadow.vm_exit != value as u32 { + VmxAsm::vmx_vmwrite(control::VMEXIT_CONTROLS, value); + self.controls_shadow.vm_exit = value as u32; + } + } + ControlsType::Pin => { + if self.controls_shadow.pin != value as u32 { + VmxAsm::vmx_vmwrite(control::PINBASED_EXEC_CONTROLS, value); + self.controls_shadow.pin = value as u32; + } + } + ControlsType::Exec => { + if self.controls_shadow.exec != value as u32 { + VmxAsm::vmx_vmwrite(control::PRIMARY_PROCBASED_EXEC_CONTROLS, value); + self.controls_shadow.exec = value as u32; + } + } + ControlsType::SecondaryExec => { + if self.controls_shadow.secondary_exec != value as u32 { + VmxAsm::vmx_vmwrite(control::SECONDARY_PROCBASED_EXEC_CONTROLS, value); + self.controls_shadow.secondary_exec = value as u32; + } + } + ControlsType::TertiaryExec => { + if self.controls_shadow.tertiary_exec != value { + VmxAsm::vmx_vmwrite(0x2034, value); + self.controls_shadow.tertiary_exec = value; + } + } + } + } + + pub fn controls_get(&self, ctl_type: ControlsType) -> u64 { + match ctl_type { + ControlsType::VmEntry => self.controls_shadow.vm_entry as u64, + ControlsType::VmExit => self.controls_shadow.vm_exit as u64, + ControlsType::Pin => self.controls_shadow.pin as u64, + ControlsType::Exec => self.controls_shadow.exec as u64, + ControlsType::SecondaryExec => self.controls_shadow.secondary_exec as u64, + ControlsType::TertiaryExec => self.controls_shadow.tertiary_exec, + } + } + + pub fn controls_setbit(&mut self, ctl_type: ControlsType, value: u64) { + let val = self.controls_get(ctl_type) | value; + self.controls_set(ctl_type, val) + } + + pub fn controls_clearbit(&mut self, ctl_type: ControlsType, value: u64) { + let val = self.controls_get(ctl_type) & (!value); + self.controls_set(ctl_type, val) + } + + pub fn msr_write_intercepted(&mut self, msr: u32) -> bool { + if PrimaryControls::from_bits_truncate(self.controls_get(ControlsType::Exec) as u32) + .contains(PrimaryControls::USE_MSR_BITMAPS) + { + return true; + } + + return self + .msr_bitmap + .ctl(msr, VmxMsrBitmapAction::Test, VmxMsrBitmapAccess::Write); + } +} + #[derive(Debug)] pub struct LockedLoadedVmcs { inner: SpinLock, } +#[derive(Debug, Clone, Copy)] +pub enum ControlsType { + VmEntry, + VmExit, + Pin, + Exec, + SecondaryExec, + TertiaryExec, +} + impl LockedLoadedVmcs { pub fn new() -> Arc { let bitmap = if vmx_info().has_msr_bitmap() { @@ -198,6 +309,7 @@ impl LockedLoadedVmcs { #[derive(Debug)] pub struct VmxMsrBitmap { data: AllocBitmap, + phys_addr: usize, } pub enum VmxMsrBitmapAction { @@ -224,7 +336,16 @@ impl VmxMsrBitmap { pub fn new(init_val: bool, size: usize) -> Self { let mut data = AllocBitmap::new(size); data.set_all(init_val); - Self { data } + + let addr = data.data() as *const [usize] as *const usize as usize; + Self { + data, + phys_addr: virt_2_phys(addr), + } + } + + pub fn phys_addr(&self) -> usize { + self.phys_addr } pub fn ctl( diff --git a/kernel/src/arch/x86_64/vm/vmx/vmenter.S b/kernel/src/arch/x86_64/vm/vmx/vmenter.S new file mode 100644 index 000000000..b1119e76b --- /dev/null +++ b/kernel/src/arch/x86_64/vm/vmx/vmenter.S @@ -0,0 +1,179 @@ +#include "common/asm.h" + +#define __VCPU_REGS_RAX 0 +#define __VCPU_REGS_RCX 1 +#define __VCPU_REGS_RDX 2 +#define __VCPU_REGS_RBX 3 +#define __VCPU_REGS_RSP 4 +#define __VCPU_REGS_RBP 5 +#define __VCPU_REGS_RSI 6 +#define __VCPU_REGS_RDI 7 + +#define __VCPU_REGS_R8 8 +#define __VCPU_REGS_R9 9 +#define __VCPU_REGS_R10 10 +#define __VCPU_REGS_R11 11 +#define __VCPU_REGS_R12 12 +#define __VCPU_REGS_R13 13 +#define __VCPU_REGS_R14 14 +#define __VCPU_REGS_R15 15 + +#define VCPU_RAX __VCPU_REGS_RAX * 8 +#define VCPU_RCX __VCPU_REGS_RCX * 8 +#define VCPU_RDX __VCPU_REGS_RDX * 8 +#define VCPU_RBX __VCPU_REGS_RBX * 8 +#define VCPU_RBP __VCPU_REGS_RBP * 8 +#define VCPU_RSI __VCPU_REGS_RSI * 8 +#define VCPU_RDI __VCPU_REGS_RDI * 8 + +#define VCPU_R8 __VCPU_REGS_R8 * 8 +#define VCPU_R9 __VCPU_REGS_R9 * 8 +#define VCPU_R10 __VCPU_REGS_R10 * 8 +#define VCPU_R11 __VCPU_REGS_R11 * 8 +#define VCPU_R12 __VCPU_REGS_R12 * 8 +#define VCPU_R13 __VCPU_REGS_R13 * 8 +#define VCPU_R14 __VCPU_REGS_R14 * 8 +#define VCPU_R15 __VCPU_REGS_R15 * 8 + +#define VMX_RUN_VMRESUME_SHIFT 0 +#define VMX_RUN_SAVE_SPEC_CTRL_SHIFT 1 + +#define VMX_RUN_VMRESUME 1 << VMX_RUN_VMRESUME_SHIFT +#define VMX_RUN_SAVE_SPEC_CTRL 1 << VMX_RUN_SAVE_SPEC_CTRL_SHIFT + +// 将VCPU运行在guest模式 +ENTRY(__vmx_vcpu_run) + pushq %rbp + movq %rsp, %rbp + + pushq %r15 + pushq %r14 + pushq %r13 + pushq %r12 + + push %rbx + + // 参数一 + push %rdi + // 参数三 + push %rdx + // 参数二 + push %rsi + + mov %edx, %ebx + + lea (%rsp), %rsi + + call vmx_update_host_rsp + + // TODO: spec_ctrl + +.Lspec_ctrl_done: + mov %rsp, %rax + + bt $VMX_RUN_VMRESUME_SHIFT, %ebx + + mov VCPU_RCX(%rax), %rcx + mov VCPU_RDX(%rax), %rdx + mov VCPU_RBX(%rax), %rbx + mov VCPU_RBP(%rax), %rbp + mov VCPU_RSI(%rax), %rsi + mov VCPU_RDI(%rax), %rdi + + mov VCPU_R8(%rax), %R8 + mov VCPU_R9(%rax), %r9 + mov VCPU_R10(%rax), %r10 + mov VCPU_R11(%rax), %r11 + mov VCPU_R12(%rax), %r12 + mov VCPU_R13(%rax), %r13 + mov VCPU_R14(%rax), %r14 + mov VCPU_R15(%rax), %r15 + + mov VCPU_RAX(%rax), %rax + + // TODO: clear cpu buffer + + jnc .Lvmlaunch + +.Lvmresume: + vmresume + jmp .Lvmfail + +.Lvmlaunch: + vmlaunch + jmp .Lvmfail + +// 从guest模式退出 +ENTRY(vmx_vmexit) + // TODO: unwind hint restore + + // 临时保存guest RAX + push %rax + + // 拿到regs头指针,存入rax + mov 8(%rsp), %rax + + // 保存所有guest寄存器 + pop VCPU_RAX(%rax) + mov %rcx, VCPU_RCX(%rax) + mov %rdx, VCPU_RDX(%rax) + mov %rbx, VCPU_RBX(%rax) + mov %rbp, VCPU_RBP(%rax) + mov %rsi, VCPU_RSI(%rax) + mov %rdi, VCPU_RDI(%rax) + + mov %r8, VCPU_R8(%rax) + mov %r9, VCPU_R9(%rax) + mov %r10, VCPU_R10(%rax) + mov %r11, VCPU_R11(%rax) + mov %r12, VCPU_R12(%rax) + mov %r13, VCPU_R13(%rax) + mov %r14, VCPU_R14(%rax) + mov %r15, VCPU_R15(%rax) + + xor %ebx, %ebx + +.Lclear_regs: + pop %rax + + xor %eax, %eax + xor %ecx, %ecx + xor %edx, %edx + xor %ebp, %ebp + xor %esi, %esi + xor %edi, %edi + + xor %r8d, %r8d + xor %r9d, %r9d + xor %r10d, %r10d + xor %r11d, %r11d + xor %r12d, %r12d + xor %r13d, %r13d + xor %r14d, %r14d + xor %r15d, %r15d + + // todo: https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/vmx/vmenter.S#270 + + pop %rsi + pop %rdi + + call vmx_spec_ctrl_restore_host + + mov %rbx, %rax + + pop %rbx + + pop %r12 + pop %r13 + pop %r14 + pop %r15 + + pop %rbp + ret + +.Lvmfail: + mov $1, %rbx + jmp .Lclear_regs + + + diff --git a/kernel/src/virt/vm/kvm_dev.rs b/kernel/src/virt/vm/kvm_dev.rs index d42c319f6..9435fd8f1 100644 --- a/kernel/src/virt/vm/kvm_dev.rs +++ b/kernel/src/virt/vm/kvm_dev.rs @@ -8,7 +8,7 @@ use system_error::SystemError; use crate::{ arch::{ - vm::{kvm_host::KvmCommonRegs, x86_kvm_manager}, + vm::{kvm_host::KvmCommonRegs, uapi::UapiKvmSegmentRegs, x86_kvm_manager}, MMArch, }, driver::base::device::device_number::DeviceNumber, @@ -26,10 +26,7 @@ use crate::{ process::ProcessManager, syscall::user_access::{UserBufferReader, UserBufferWriter}, time::PosixTimeSpec, - virt::vm::{ - kvm_host::check_stack_usage, - user_api::{KvmUserspaceMemoryRegion, PosixKvmUserspaceMemoryRegion}, - }, + virt::vm::user_api::{KvmUserspaceMemoryRegion, PosixKvmUserspaceMemoryRegion}, }; use super::kvm_host::{ @@ -237,12 +234,11 @@ impl IndexNode for KvmInstance { arg: usize, _private_data: &crate::filesystem::vfs::FilePrivateData, ) -> Result { - kdebug!("ioctl"); - check_stack_usage(); + kdebug!("kvm instance ioctl cmd {cmd:x}"); match cmd { Self::KVM_CREATE_VCPU => { let ret = self.kvm.lock().create_vcpu(arg); - kwarn!("!!!###$$"); + kdebug!("[KVM] create vcpu fd {ret:?}"); return ret; } @@ -318,6 +314,8 @@ impl IndexNode for KvmInstance { #[derive(Debug)] pub struct KvmVcpuDev { vcpu: Arc, + /// INode 元数据 + metadata: Metadata, } impl KvmVcpuDev { @@ -328,7 +326,25 @@ impl KvmVcpuDev { const KVM_SET_SREGS: u32 = 0xAE84; pub fn new(vcpu: Arc) -> Arc { - Arc::new(Self { vcpu }) + Arc::new(Self { + vcpu, + metadata: Metadata { + dev_id: 1, + inode_id: generate_inode_id(), + size: 0, + blk_size: 0, + blocks: 0, + atime: PosixTimeSpec::default(), + mtime: PosixTimeSpec::default(), + ctime: PosixTimeSpec::default(), + file_type: FileType::KvmDevice, // 文件夹,block设备,char设备 + mode: ModeType::S_IALLUGO, + nlinks: 1, + uid: 0, + gid: 0, + raw_dev: DeviceNumber::default(), // 这里用来作为device number + }, + }) } } @@ -354,8 +370,12 @@ impl IndexNode for KvmVcpuDev { arg: usize, _private_data: &crate::filesystem::vfs::FilePrivateData, ) -> Result { + kdebug!("vcpu ioctl cmd {cmd:x}"); match cmd { Self::KVM_RUN => { + if arg != 0 { + return Err(SystemError::EINVAL); + } let mut vcpu = self.vcpu.lock(); let oldpid = vcpu.pid; if unlikely(oldpid != Some(ProcessManager::current_pid())) { @@ -365,9 +385,7 @@ impl IndexNode for KvmVcpuDev { return vcpu.run(); } Self::KVM_GET_REGS => { - kdebug!("KVM_GET_REGS"); let kvm_regs = self.vcpu.lock().get_regs(); - kdebug!("get regs {kvm_regs:?}"); let mut user_writer = UserBufferWriter::new( arg as *const KvmCommonRegs as *mut KvmCommonRegs, core::mem::size_of::(), @@ -377,6 +395,50 @@ impl IndexNode for KvmVcpuDev { user_writer.copy_one_to_user(&kvm_regs, 0)?; return Ok(0); } + + Self::KVM_SET_REGS => { + let user_reader = UserBufferReader::new( + arg as *const KvmCommonRegs, + core::mem::size_of::(), + true, + )?; + + let regs = user_reader.read_one_from_user::(0)?; + + self.vcpu.lock().set_regs(regs)?; + + return Ok(0); + } + + Self::KVM_GET_SREGS => { + let sregs = self.vcpu.lock().get_segment_regs(); + + let mut writer = UserBufferWriter::new( + arg as *const UapiKvmSegmentRegs as *mut UapiKvmSegmentRegs, + core::mem::size_of::(), + true, + )?; + + writer.copy_one_to_user(&sregs, 0)?; + + return Ok(0); + } + + Self::KVM_SET_SREGS => { + let user_reader = UserBufferReader::new( + arg as *const UapiKvmSegmentRegs, + core::mem::size_of::(), + true, + )?; + + let mut sreg = UapiKvmSegmentRegs::default(); + user_reader.copy_one_from_user(&mut sreg, 0)?; + + self.vcpu.lock().set_segment_regs(&mut sreg)?; + + return Ok(0); + } + _ => { // arch ioctl kwarn!("[KVM-VCPU] unknown ioctl cmd {cmd:x}"); @@ -386,6 +448,10 @@ impl IndexNode for KvmVcpuDev { Ok(0) } + fn metadata(&self) -> Result { + Ok(self.metadata.clone()) + } + fn read_at( &self, offset: usize, diff --git a/kernel/src/virt/vm/kvm_host/mem.rs b/kernel/src/virt/vm/kvm_host/mem.rs index bf5180073..fddca79be 100644 --- a/kernel/src/virt/vm/kvm_host/mem.rs +++ b/kernel/src/virt/vm/kvm_host/mem.rs @@ -18,7 +18,7 @@ use crate::{ virt::vm::{kvm_host::KVM_ADDRESS_SPACE_NUM, user_api::KvmUserspaceMemoryRegion}, }; -use super::{check_stack_usage, LockedVm, Vm}; +use super::{LockedVm, Vm}; pub const KVM_USER_MEM_SLOTS: u16 = u16::MAX; pub const KVM_INTERNAL_MEM_SLOTS: u16 = 3; diff --git a/kernel/src/virt/vm/kvm_host/mod.rs b/kernel/src/virt/vm/kvm_host/mod.rs index 2c636c42a..bdba71ebb 100644 --- a/kernel/src/virt/vm/kvm_host/mod.rs +++ b/kernel/src/virt/vm/kvm_host/mod.rs @@ -15,7 +15,7 @@ use x86::bits64::registers::rsp; use crate::{ arch::{ - vm::{kvm_host::vcpu::VirCpuRequest, x86_kvm_manager}, + vm::{kvm_host::vcpu::VirCpuRequest, vmx::KvmVmx, x86_kvm_manager}, CurrentKvmManager, KvmArch, VirtCpuArch, }, filesystem::vfs::file::{File, FileMode}, @@ -87,6 +87,9 @@ impl LockedVm { dirty_ring_size: 0, dirty_ring_with_bitmap: false, vcpus: HashMap::new(), + #[cfg(target_arch = "x86_64")] + kvm_vmx: KvmVmx::default(), + nr_memslots_dirty_logging: 0, }; let ret = Arc::new(Self { @@ -133,21 +136,16 @@ pub struct Vm { pub arch: KvmArch, pub dirty_ring_size: u32, + pub nr_memslots_dirty_logging: u32, dirty_ring_with_bitmap: bool, -} -#[inline] -pub fn check_stack_usage() { - let rsp = rsp() as usize; - let free = rsp & (KernelStack::ALIGN - 1); - let usage = KernelStack::SIZE - free; - kdebug!("current rsp {rsp:x} stack use {usage} free {free}"); + #[cfg(target_arch = "x86_64")] + pub kvm_vmx: KvmVmx, } impl Vm { #[inline(never)] pub fn create_vcpu(&mut self, id: usize) -> Result { - check_stack_usage(); if id >= self.max_vcpus { return Err(SystemError::EINVAL); } @@ -158,7 +156,7 @@ impl Vm { self.created_vcpus += 1; - let vcpu = self._create_vcpu(id); + let vcpu = self._create_vcpu(id)?; if self.dirty_ring_size != 0 { todo!() } @@ -183,14 +181,12 @@ impl Vm { /// ### 创建一个vcpu,并且初始化部分数据 #[inline(never)] - pub fn _create_vcpu(&self, id: usize) -> Arc { - check_stack_usage(); - + pub fn _create_vcpu(&mut self, id: usize) -> Result, SystemError> { let mut vcpu = self.new_vcpu(id); - vcpu.init_arch(self); + vcpu.init_arch(self, id)?; - Arc::new(LockedVirtCpu::new(vcpu)) + Ok(Arc::new(LockedVirtCpu::new(vcpu))) } #[inline(never)] @@ -213,10 +209,20 @@ impl Vm { vcpu_idx: 0, }; } + + #[cfg(target_arch = "x86_64")] + pub fn kvm_vmx_mut(&mut self) -> &mut KvmVmx { + &mut self.kvm_vmx + } + + #[cfg(target_arch = "x86_64")] + pub fn kvm_vmx(&self) -> &KvmVmx { + &self.kvm_vmx + } } /// ## 多处理器状态(有些状态在某些架构并不合法) -#[derive(Debug, Clone, Copy)] +#[derive(Debug, Clone, Copy, PartialEq)] pub enum MutilProcessorState { Runnable, Uninitialized, diff --git a/kernel/src/virt/vm/kvm_host/vcpu.rs b/kernel/src/virt/vm/kvm_host/vcpu.rs index d51f4dbbd..16a1282c1 100644 --- a/kernel/src/virt/vm/kvm_host/vcpu.rs +++ b/kernel/src/virt/vm/kvm_host/vcpu.rs @@ -18,7 +18,7 @@ use crate::{ }, process::{Pid, ProcessManager}, smp::cpu::ProcessorId, - virt::vm::{kvm_host::check_stack_usage, user_api::UapiKvmRun}, + virt::vm::user_api::UapiKvmRun, }; use super::{ @@ -90,5 +90,6 @@ bitflags! { pub struct GuestDebug: usize { const ENABLE = 0x00000001; const SINGLESTEP = 0x00000002; + const USE_SW_BP = 0x00010000; } } diff --git a/kernel/src/virt/vm/user_api.rs b/kernel/src/virt/vm/user_api.rs index 57a5424f2..90a17e3e9 100644 --- a/kernel/src/virt/vm/user_api.rs +++ b/kernel/src/virt/vm/user_api.rs @@ -9,6 +9,42 @@ use crate::mm::{PhysAddr, VirtAddr}; use super::kvm_host::mem::UserMemRegionFlag; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct UapiKvmSegment { + pub base: u64, + pub limit: u32, + pub selector: u16, + pub type_: u8, + pub present: u8, + pub dpl: u8, + pub db: u8, + pub s: u8, + pub l: u8, + pub g: u8, + pub avl: u8, + pub unusable: u8, + pub padding: u8, +} + +impl UapiKvmSegment { + pub fn vmx_segment_access_rights(&self) -> u32 { + let mut ar = self.type_ as u32 & 15; + ar |= (self.s as u32 & 1) << 4; + ar |= (self.dpl as u32 & 3) << 5; + ar |= (self.present as u32 & 1) << 7; + ar |= (self.avl as u32 & 1) << 12; + ar |= (self.l as u32 & 1) << 13; + ar |= (self.db as u32 & 1) << 14; + ar |= (self.g as u32 & 1) << 15; + + let b = self.unusable != 0 || self.present == 0; + ar |= (b as u32) << 16; + + return ar; + } +} + /// 通过这个结构可以将虚拟机的物理地址对应到用户进程的虚拟地址 /// 用来表示虚拟机的一段物理内存 #[repr(C)] From 11cea4783c67a2ca4ba16a10f6d813913c71580b Mon Sep 17 00:00:00 2001 From: GnoCiYeH Date: Sun, 16 Jun 2024 00:48:23 +0800 Subject: [PATCH 04/18] =?UTF-8?q?=E8=83=BD=E5=A4=9F=E6=88=90=E5=8A=9Fvmlau?= =?UTF-8?q?nch=EF=BC=8C=E4=BD=86=E6=98=AF=E5=9C=A8vmexit=E6=97=B6=E5=80=99?= =?UTF-8?q?=E8=BF=98=E6=9C=89=E4=BA=9B=E9=97=AE=E9=A2=98=E6=9C=AA=E6=8E=92?= =?UTF-8?q?=E6=9F=A5=E5=87=BA=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/src/arch/x86_64/vm/asm.rs | 126 +- kernel/src/arch/x86_64/vm/cpuid.rs | 1 + kernel/src/arch/x86_64/vm/exit.rs | 1 + kernel/src/arch/x86_64/vm/kvm_host/lapic.rs | 6 +- kernel/src/arch/x86_64/vm/kvm_host/mod.rs | 30 +- kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs | 512 +++++++- kernel/src/arch/x86_64/vm/mem.rs | 17 +- kernel/src/arch/x86_64/vm/mmu.rs | 114 +- kernel/src/arch/x86_64/vm/mod.rs | 192 ++- kernel/src/arch/x86_64/vm/uapi.rs | 44 + kernel/src/arch/x86_64/vm/vmx/asm.rs | 19 + kernel/src/arch/x86_64/vm/vmx/capabilities.rs | 50 +- kernel/src/arch/x86_64/vm/vmx/exit.rs | 204 ++++ kernel/src/arch/x86_64/vm/vmx/mod.rs | 1033 +++++++++++++---- kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs | 50 +- kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs | 72 +- kernel/src/arch/x86_64/vm/vmx/vmenter.S | 4 +- kernel/src/virt/vm/kvm_dev.rs | 39 +- kernel/src/virt/vm/kvm_host/mem.rs | 45 +- kernel/src/virt/vm/kvm_host/mod.rs | 13 +- kernel/src/virt/vm/kvm_host/vcpu.rs | 29 +- kernel/src/virt/vm/user_api.rs | 4 +- 22 files changed, 2069 insertions(+), 536 deletions(-) create mode 100644 kernel/src/arch/x86_64/vm/exit.rs create mode 100644 kernel/src/arch/x86_64/vm/vmx/asm.rs create mode 100644 kernel/src/arch/x86_64/vm/vmx/exit.rs diff --git a/kernel/src/arch/x86_64/vm/asm.rs b/kernel/src/arch/x86_64/vm/asm.rs index 47271f740..c3cb826ee 100644 --- a/kernel/src/arch/x86_64/vm/asm.rs +++ b/kernel/src/arch/x86_64/vm/asm.rs @@ -1,7 +1,6 @@ use core::arch::asm; use alloc::slice; -use bitfield_struct::bitfield; use raw_cpuid::CpuId; use system_error::SystemError; use x86::{ @@ -11,15 +10,17 @@ use x86::{ rdmsr, wrmsr, IA32_FEATURE_CONTROL, IA32_VMX_CR0_FIXED0, IA32_VMX_CR0_FIXED1, IA32_VMX_CR4_FIXED0, IA32_VMX_CR4_FIXED1, }, + vmx::vmcs::ro, }; -use x86_64::registers::xcontrol::XCr0; use crate::{ arch::mm::barrier, - kdebug, kwarn, + kdebug, kerror, mm::{phys_2_virt, PhysAddr}, }; +use super::vmx::vmx_info; + pub struct KvmX86Asm; impl KvmX86Asm { @@ -33,7 +34,7 @@ impl KvmX86Asm { return 0; } - pub fn write_pkru(val: u32) { + pub fn write_pkru(_val: u32) { let cpuid = CpuId::new(); if let Some(feat) = cpuid.get_extended_feature_info() { if feat.has_ospke() { @@ -45,13 +46,13 @@ impl KvmX86Asm { fn rdpkru() -> u32 { let ecx: u32 = 0; let pkru: u32; - let edx: u32; + let _edx: u32; unsafe { asm!( "rdpkru", out("eax") pkru, - out("edx") edx, + out("edx") _edx, in("ecx") ecx, ); } @@ -137,11 +138,29 @@ impl VmxAsm { } } + #[allow(dead_code)] const VMX_VPID_EXTENT_INDIVIDUAL_ADDR: u64 = 0; const VMX_VPID_EXTENT_SINGLE_CONTEXT: u64 = 1; + #[allow(dead_code)] const VMX_VPID_EXTENT_ALL_CONTEXT: u64 = 2; const VMX_VPID_EXTENT_SINGLE_NON_GLOBAL: u64 = 3; + const VMX_EPT_EXTENT_CONTEXT: u64 = 1; + const VMX_EPT_EXTENT_GLOBAL: u64 = 2; + const VMX_EPT_EXTENT_SHIFT: u64 = 24; + + pub fn ept_sync_global() { + Self::invept(Self::VMX_EPT_EXTENT_GLOBAL, 0, 0); + } + + pub fn ept_sync_context(eptp: u64) { + if vmx_info().has_vmx_invept_context() { + Self::invept(Self::VMX_EPT_EXTENT_CONTEXT, eptp, 0); + } else { + Self::ept_sync_global(); + } + } + pub fn sync_vcpu_single(vpid: u16) { if vpid == 0 { return; @@ -154,33 +173,45 @@ impl VmxAsm { Self::invvpid(Self::VMX_VPID_EXTENT_ALL_CONTEXT, 0, 0); } + #[inline(always)] + fn invept(ext: u64, eptp: u64, gpa: u64) { + #[repr(C)] + struct InveptDescriptor { + eptp: u64, + gpa: u64, + } + + let descriptor = InveptDescriptor { eptp, gpa }; + + unsafe { + asm!( + "invept {0}, [{1}]", + in(reg) ext, + in(reg) &descriptor, + options(nostack) + ); + } + } + #[inline(always)] fn invvpid(ext: u64, vpid: u16, gva: u64) { - // 定义包含指令操作数的结构体 - #[bitfield(u128)] - struct Operand { - #[bits(16)] - vpid: u64, - #[bits(48)] + #[repr(C)] + struct InvvpidDescriptor { + vpid: u16, rsvd: u64, gva: u64, } - // 构造操作数 - let mut operand = Operand::new(); - operand.set_vpid(vpid as u64); - operand.set_gva(gva); - - // 定义嵌入汇编块 - - kwarn!("TODO: asm invvpid"); - // unsafe { - // asm!( - // "invvpid {0} {1}", - // inlateout(reg) ext => _, - // inlateout(reg) &operand => _, - // ); - // } + let descriptor = InvvpidDescriptor { vpid, rsvd: 0, gva }; + + unsafe { + asm!( + "invvpid {0}, [{1}]", + in(reg) ext, + in(reg) &descriptor, + options(nostack) + ); + } } /// Set the mandatory bits in CR4 and clear bits that are mandatory zero @@ -234,7 +265,46 @@ impl VmxAsm { } } +#[no_mangle] +unsafe extern "C" fn vmx_vmlaunch() { + if let Err(e) = x86::bits64::vmx::vmlaunch() { + kerror!( + "vmx_launch fail: {:?}, err code {}", + e, + VmxAsm::vmx_vmread(ro::VM_INSTRUCTION_ERROR) + ); + } +} + bitflags! { + pub struct IntrInfo: u32 { + const INTR_INFO_VECTOR_MASK = 0xff; + const INTR_INFO_INTR_TYPE_MASK = 0x700; + const INTR_INFO_DELIVER_CODE_MASK = 0x800; + const INTR_INFO_UNBLOCK_NMI = 0x1000; + const INTR_INFO_VALID_MASK = 0x80000000; + const INTR_INFO_RESVD_BITS_MASK = 0x7ffff000; + } + + pub struct IntrType: u32 { + /// external interrupt + const INTR_TYPE_EXT_INTR = (0 << 8); + /// reserved + const INTR_TYPE_RESERVED = (1 << 8); + /// NMI + const INTR_TYPE_NMI_INTR = (2 << 8); + /// processor exception + const INTR_TYPE_HARD_EXCEPTION = (3 << 8); + /// software interrupt + const INTR_TYPE_SOFT_INTR = (4 << 8); + /// ICE breakpoint - undocumented + const INTR_TYPE_PRIV_SW_EXCEPTION = (5 << 8); + /// software exception + const INTR_TYPE_SOFT_EXCEPTION = (6 << 8); + /// other even + const INTR_TYPE_OTHER_EVENT = (7 << 8); + } + pub struct MiscEnable: u64 { const MSR_IA32_MISC_ENABLE_FAST_STRING = 1 << 0; const MSR_IA32_MISC_ENABLE_TCC = 1 << 1; @@ -351,6 +421,7 @@ pub struct VmxMsrEntry { pub data: u64, } +#[allow(dead_code)] pub mod hyperv { /* Hyper-V specific model specific registers (MSRs) */ @@ -477,6 +548,7 @@ pub mod hyperv { pub const HV_X64_MSR_SYNDBG_OPTIONS: u32 = 0x400000FF; } +#[allow(dead_code)] pub mod kvm_msr { pub const MSR_KVM_WALL_CLOCK: u32 = 0x11; pub const MSR_KVM_SYSTEM_TIME: u32 = 0x12; diff --git a/kernel/src/arch/x86_64/vm/cpuid.rs b/kernel/src/arch/x86_64/vm/cpuid.rs index 28e91d6a9..4fd447a65 100644 --- a/kernel/src/arch/x86_64/vm/cpuid.rs +++ b/kernel/src/arch/x86_64/vm/cpuid.rs @@ -1,6 +1,7 @@ use alloc::vec::Vec; #[derive(Debug, Default, Clone, Copy)] +#[allow(dead_code)] pub struct KvmCpuidEntry2 { pub function: u32, pub index: u32, diff --git a/kernel/src/arch/x86_64/vm/exit.rs b/kernel/src/arch/x86_64/vm/exit.rs new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/kernel/src/arch/x86_64/vm/exit.rs @@ -0,0 +1 @@ + diff --git a/kernel/src/arch/x86_64/vm/kvm_host/lapic.rs b/kernel/src/arch/x86_64/vm/kvm_host/lapic.rs index 8a995e5c4..c71d1cd9f 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/lapic.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/lapic.rs @@ -1,16 +1,16 @@ use alloc::boxed::Box; use crate::{ - arch::{kvm_arch_ops, MMArch}, - kdebug, - mm::MemoryManagementArch, + arch::kvm_arch_ops, virt::vm::kvm_host::{vcpu::VirtCpu, Vm}, }; const APIC_DEFAULT_PHYS_BASE: u64 = 0xfee00000; +#[allow(dead_code)] const MSR_IA32_APICBASE: u64 = 0x0000001b; const MSR_IA32_APICBASE_BSP: u64 = 1 << 8; const MSR_IA32_APICBASE_ENABLE: u64 = 1 << 11; +#[allow(dead_code)] const MSR_IA32_APICBASE_BASE: u64 = 0xfffff << 12; #[derive(Debug)] diff --git a/kernel/src/arch/x86_64/vm/kvm_host/mod.rs b/kernel/src/arch/x86_64/vm/kvm_host/mod.rs index 0f0ccd7e2..e61cb5047 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/mod.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/mod.rs @@ -25,19 +25,18 @@ use crate::arch::VirtCpuArch; use super::{ asm::{MsrData, VcpuSegment, VmxMsrEntry}, - uapi::UapiKvmDtable, - vmx::{vmx_info, VmxVCpuPriv}, + vmx::{exit::ExitFastpathCompletion, vmx_info}, x86_kvm_manager, x86_kvm_ops, }; pub mod lapic; pub mod vcpu; - +#[allow(dead_code)] pub const TSS_IOPB_BASE_OFFSET: usize = 0x66; pub const TSS_BASE_SIZE: usize = 0x68; -pub const TSS_IOPB_SIZE: usize = (65536 / 8); -pub const TSS_REDIRECTION_SIZE: usize = (256 / 8); -pub const RMODE_TSS_SIZE: usize = (TSS_BASE_SIZE + TSS_REDIRECTION_SIZE + TSS_IOPB_SIZE + 1); +pub const TSS_IOPB_SIZE: usize = 65536 / 8; +pub const TSS_REDIRECTION_SIZE: usize = 256 / 8; +pub const RMODE_TSS_SIZE: usize = TSS_BASE_SIZE + TSS_REDIRECTION_SIZE + TSS_IOPB_SIZE + 1; #[derive(Debug, Default)] pub struct X86KvmArch { @@ -121,6 +120,7 @@ impl X86KvmArch { } #[derive(Debug, Clone, Copy, PartialEq)] +#[allow(dead_code)] pub enum KvmIrqChipMode { None, Kernel, @@ -154,6 +154,8 @@ pub trait KvmFunc: Send + Sync + Debug { fn vcpu_load(&self, vcpu: &mut VirtCpu, cpu: ProcessorId); + fn load_mmu_pgd(&self, vcpu: &mut VirtCpu, vm: &Vm, root_hpa: u64, root_level: u32); + fn cache_reg(&self, vcpu: &mut VirtCpuArch, reg: KvmReg); fn apicv_pre_state_restore(&self, vcpu: &mut VirtCpu); @@ -202,13 +204,26 @@ pub trait KvmFunc: Send + Sync + Debug { fn get_msr_feature(&self, msr: &mut VmxMsrEntry) -> bool; - fn vcpu_run(&self, vcpu: &mut VirtCpu); + fn prepare_switch_to_guest(&self, vcpu: &mut VirtCpu); + + fn flush_tlb_all(&self, vcpu: &mut VirtCpu); + + fn vcpu_run(&self, vcpu: &mut VirtCpu) -> ExitFastpathCompletion; + + fn handle_exit_irqoff(&self, vcpu: &mut VirtCpu); + + fn handle_exit( + &self, + vcpu: &mut VirtCpu, + fastpath: ExitFastpathCompletion, + ) -> Result<(), SystemError>; } /// ## 中断抑制的原因位 #[derive(Debug)] pub struct KvmApicvInhibit; +#[allow(dead_code)] impl KvmApicvInhibit { // Intel与AMD共用 @@ -266,6 +281,7 @@ pub struct KernelMsrRange { } #[repr(C)] +#[allow(dead_code)] pub struct PosixMsrFilterRange { pub flags: u32, pub nmsrs: u32, diff --git a/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs b/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs index bb96f6ec8..e640fc3b4 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs @@ -1,47 +1,44 @@ +use core::intrinsics::likely; use core::{arch::x86_64::_xsetbv, intrinsics::unlikely}; use alloc::{boxed::Box, sync::Arc, vec::Vec}; -use bitmap::{traits::BitMapOps, AllocBitmap, BitMapCore, StaticBitmap}; +use bitmap::{traits::BitMapOps, AllocBitmap, BitMapCore}; use raw_cpuid::CpuId; use system_error::SystemError; use x86::{ bits64::rflags::RFlags, controlregs::{Cr0, Cr4, Xcr0}, dtables::DescriptorTablePointer, - msr::{ - self, wrmsr, IA32_APIC_BASE, IA32_CSTAR, IA32_FS_BASE, IA32_GS_BASE, IA32_KERNEL_GSBASE, - IA32_LSTAR, IA32_SYSENTER_EIP, IA32_SYSENTER_ESP, IA32_TSC_AUX, - }, + msr::{self, wrmsr}, vmx::vmcs::control::SecondaryControls, }; -use x86_64::registers::{control::EferFlags, xcontrol::XCr0Flags}; +use x86_64::registers::control::EferFlags; +use crate::arch::vm::vmx::exit::ExitFastpathCompletion; +use crate::kwarn; +use crate::virt::vm::kvm_host::mem::KvmMmuMemoryCache; +use crate::virt::vm::kvm_host::vcpu::VcpuMode; use crate::{ arch::{ kvm_arch_ops, + mm::barrier, vm::{ - asm::{ - hyperv, kvm_msr, KvmX86Asm, MiscEnable, MsrData, SegmentCacheField, VcpuSegment, - }, + asm::{hyperv, kvm_msr, KvmX86Asm, MiscEnable, MsrData, VcpuSegment}, cpuid::KvmCpuidEntry2, kvm_host::KvmReg, - mmu::{KvmMmu, LockedKvmMmu}, + mmu::LockedKvmMmu, uapi::{UapiKvmSegmentRegs, KVM_SYNC_X86_VALID_FIELDS}, - vmx::{ - vmcs::{ControlsType, LoadedVmcs}, - vmx_info, VmxVCpuPriv, - }, + vmx::{vmcs::ControlsType, vmx_info}, x86_kvm_manager, x86_kvm_manager_mut, x86_kvm_ops, }, }, - kdebug, kerror, - mm::{PhysAddr, VirtAddr}, + mm::VirtAddr, smp::{core::smp_get_processor_id, cpu::ProcessorId}, virt::vm::{ kvm_host::{ mem::GfnToHvaCache, vcpu::{GuestDebug, VirtCpu}, - LockedVm, MutilProcessorState, Vm, + MutilProcessorState, Vm, }, user_api::{UapiKvmRun, UapiKvmSegment}, }, @@ -52,11 +49,11 @@ use super::{lapic::KvmLapic, HFlags, KvmCommonRegs, KvmIrqChipMode}; #[derive(Debug)] pub struct X86VcpuArch { /// 最近一次尝试进入虚拟机的主机cpu - last_vmentry_cpu: ProcessorId, + pub last_vmentry_cpu: ProcessorId, /// 可用寄存器位图 - regs_avail: AllocBitmap, + pub regs_avail: AllocBitmap, /// 脏寄存器位图 - regs_dirty: AllocBitmap, + pub regs_dirty: AllocBitmap, /// 多处理器状态 mp_state: MutilProcessorState, pub apic_base: u64, @@ -99,6 +96,11 @@ pub struct X86VcpuArch { pub walk_mmu: Option>, pub nested_mmu: Option>, + pub mmu_pte_list_desc_cache: KvmMmuMemoryCache, + pub mmu_shadow_page_cache: KvmMmuMemoryCache, + pub mmu_shadowed_info_cache: KvmMmuMemoryCache, + pub mmu_page_header_cache: KvmMmuMemoryCache, + pub max_phyaddr: usize, pub pat: u64, @@ -134,6 +136,10 @@ pub struct X86VcpuArch { pub xfd_no_write_intercept: bool, + pub l1tf_flush_l1d: bool, + + pub at_instruction_boundary: bool, + pub db: [usize; Self::KVM_NR_DB_REGS], } @@ -168,7 +174,7 @@ impl X86VcpuArch { } pub fn is_bsp(&self) -> bool { - return self.apic_base & IA32_APIC_BASE as u64 != 0; + return self.apic_base & msr::IA32_APIC_BASE as u64 != 0; } #[inline] @@ -259,17 +265,25 @@ impl X86VcpuArch { self.exception_vmexit.pending = false; } + #[allow(dead_code)] pub fn update_cpuid_runtime(&mut self, entries: &Vec) { let cpuid = CpuId::new(); let feat = cpuid.get_feature_info().unwrap(); let base = KvmCpuidEntry2::find(entries, 1, None); - if let Some(base) = base { + if let Some(_base) = base { if feat.has_xsave() {} } todo!() } + #[inline] + pub fn test_and_mark_available(&mut self, reg: KvmReg) -> bool { + let old = self.regs_avail.get(reg as usize).unwrap_or_default(); + self.regs_avail.set(reg as usize, true); + return old; + } + #[inline] pub fn mark_register_dirty(&mut self, reg: KvmReg) { self.regs_avail.set(reg as usize, true); @@ -580,10 +594,16 @@ impl VirtCpu { Ok(()) } + #[inline] pub fn kvm_run(&self) -> &Box { self.run.as_ref().unwrap() } + #[inline] + pub fn kvm_run_mut(&mut self) -> &mut Box { + self.run.as_mut().unwrap() + } + pub fn run(&mut self) -> Result { self.load(); @@ -591,15 +611,288 @@ impl VirtCpu { todo!() } - let kvm_run = self.kvm_run(); - - if kvm_run.kvm_valid_regs & !KVM_SYNC_X86_VALID_FIELDS != 0 - || kvm_run.kvm_dirty_regs & !KVM_SYNC_X86_VALID_FIELDS != 0 + if self.kvm_run().kvm_valid_regs & !KVM_SYNC_X86_VALID_FIELDS != 0 + || self.kvm_run().kvm_dirty_regs & !KVM_SYNC_X86_VALID_FIELDS != 0 { return Err(SystemError::EINVAL); } - todo!() + if self.kvm_run().kvm_dirty_regs != 0 { + todo!() + } + + if !self.arch.lapic_in_kernel() { + self.kvm_set_cr8(self.kvm_run().cr8); + } + + // TODO: https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/x86.c#11174 - 11196 + + if self.kvm_run().immediate_exit != 0 { + return Err(SystemError::EINTR); + } + + // vmx_vcpu_pre_run + + self.vcpu_run(&self.kvm().lock())?; + + Ok(0) + } + + fn vcpu_run(&mut self, vm: &Vm) -> Result<(), SystemError> { + self.arch.l1tf_flush_l1d = true; + + loop { + self.arch.at_instruction_boundary = false; + if self.can_running() { + self.enter_guest(vm)?; + } else { + todo!() + }; + } + } + + fn enter_guest(&mut self, vm: &Vm) -> Result<(), SystemError> { + let req_immediate_exit = false; + + kwarn!("request {:?}", self.request); + if !self.request.is_empty() { + if self.check_request(VirtCpuRequest::KVM_REQ_VM_DEAD) { + return Err(SystemError::EIO); + } + + // TODO: kvm_dirty_ring_check_request + + if self.check_request(VirtCpuRequest::KVM_REQ_MMU_FREE_OBSOLETE_ROOTS) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_MIGRATE_TIMER) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_MASTERCLOCK_UPDATE) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_GLOBAL_CLOCK_UPDATE) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_CLOCK_UPDATE) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_MMU_SYNC) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_LOAD_MMU_PGD) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_TLB_FLUSH) { + self.flush_tlb_all(); + } + + self.service_local_tlb_flush_requests(); + + // TODO: KVM_REQ_HV_TLB_FLUSH) && kvm_hv_vcpu_flush_tlb(vcpu) + + if self.check_request(VirtCpuRequest::KVM_REQ_REPORT_TPR_ACCESS) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_TRIPLE_FAULT) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_STEAL_UPDATE) { + // todo!() + kwarn!("VirtCpuRequest::KVM_REQ_STEAL_UPDATE TODO!"); + } + + if self.check_request(VirtCpuRequest::KVM_REQ_SMI) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_NMI) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_PMU) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_PMI) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_IOAPIC_EOI_EXIT) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_SCAN_IOAPIC) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_LOAD_EOI_EXITMAP) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_APIC_PAGE_RELOAD) { + // todo!() + kwarn!("VirtCpuRequest::KVM_REQ_APIC_PAGE_RELOAD TODO!"); + } + + if self.check_request(VirtCpuRequest::KVM_REQ_HV_CRASH) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_HV_RESET) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_HV_EXIT) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_HV_STIMER) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_APICV_UPDATE) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_APF_READY) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_MSR_FILTER_CHANGED) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_UPDATE_CPU_DIRTY_LOGGING) { + todo!() + } + } + + // TODO: https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/x86.c#10661 + if self.check_request(VirtCpuRequest::KVM_REQ_EVENT) { + // TODO + } + + self.kvm_mmu_reload(vm)?; + + x86_kvm_ops().prepare_switch_to_guest(self); + // kwarn!( + // "mode {:?} req {:?} mode_cond {} !is_empty {} cond {}", + // self.mode, + // self.request, + // self.mode == VcpuMode::ExitingGuestMode, + // !self.request.is_empty(), + // (self.mode == VcpuMode::ExitingGuestMode) || (!self.request.is_empty()) + // ); + kwarn!( + "req bit {} empty bit {}", + self.request.bits, + VirtCpuRequest::empty().bits + ); + // TODO: https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/x86.c#10730 + if self.mode == VcpuMode::ExitingGuestMode || !self.request.is_empty() { + self.mode = VcpuMode::OutsideGuestMode; + return Err(SystemError::EINVAL); + } + + if req_immediate_exit { + self.request(VirtCpuRequest::KVM_REQ_EVENT); + todo!(); + } + + // TODO: https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/x86.c#10749 - 10766 + + let exit_fastpath; + loop { + exit_fastpath = x86_kvm_ops().vcpu_run(self); + if likely(exit_fastpath != ExitFastpathCompletion::ExitHandled) { + break; + } + + todo!(); + } + + // TODO: https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/x86.c#10799 - 10814 + + self.arch.last_vmentry_cpu = self.cpu; + + // TODO: last_guest_tsc + + self.mode = VcpuMode::OutsideGuestMode; + + barrier::mfence(); + + // TODO: xfd + + x86_kvm_ops().handle_exit_irqoff(self); + + // todo: xfd + + // TODO: 一些中断或者tsc操作 + + return x86_kvm_ops().handle_exit(self, exit_fastpath); + } + + fn flush_tlb_all(&mut self) { + x86_kvm_ops().flush_tlb_all(self); + self.clear_request(VirtCpuRequest::KVM_REQ_TLB_FLUSH_CURRENT); + } + + fn service_local_tlb_flush_requests(&mut self) { + if self.check_request(VirtCpuRequest::KVM_REQ_TLB_FLUSH_CURRENT) { + todo!() + } + + if self.check_request(VirtCpuRequest::KVM_REQ_TLB_FLUSH_GUEST) { + todo!() + } + } + + pub fn request(&mut self, req: VirtCpuRequest) { + // self.request.set( + // (req.bits() & VirtCpuRequest::KVM_REQUEST_MASK.bits()) as usize, + // true, + // ); + self.request.insert(req); + } + + fn check_request(&mut self, req: VirtCpuRequest) -> bool { + if self.test_request(req) { + self.clear_request(req); + + barrier::mfence(); + return true; + } + + return false; + } + + fn test_request(&self, req: VirtCpuRequest) -> bool { + // self.request + // .get((req.bits & VirtCpuRequest::KVM_REQUEST_MASK.bits) as usize) + // .unwrap_or_default() + self.request.contains(req) + } + + fn clear_request(&mut self, req: VirtCpuRequest) { + // self.request.set( + // (req.bits & VirtCpuRequest::KVM_REQUEST_MASK.bits) as usize, + // false, + // ); + self.request.remove(req); + } + + pub fn can_running(&self) -> bool { + return self.arch.mp_state == MutilProcessorState::Runnable && !self.arch.apf.halted; } #[inline] @@ -622,11 +915,7 @@ impl VirtCpu { self.cpu = cpu; } - self.request(VirCpuRequest::KVM_REQ_STEAL_UPDATE) - } - - pub fn request(&mut self, req: VirCpuRequest) { - self.request.insert(req); + self.request(VirtCpuRequest::KVM_REQ_STEAL_UPDATE) } pub fn set_msr( @@ -636,19 +925,23 @@ impl VirtCpu { host_initiated: bool, ) -> Result<(), SystemError> { match index { - IA32_FS_BASE | IA32_GS_BASE | IA32_KERNEL_GSBASE | IA32_CSTAR | IA32_LSTAR => { + msr::IA32_FS_BASE + | msr::IA32_GS_BASE + | msr::IA32_KERNEL_GSBASE + | msr::IA32_CSTAR + | msr::IA32_LSTAR => { if VirtAddr::new(data as usize).is_canonical() { return Ok(()); } } - IA32_SYSENTER_EIP | IA32_SYSENTER_ESP => { + msr::IA32_SYSENTER_EIP | msr::IA32_SYSENTER_ESP => { // 需要将Data转为合法地址,但是现在先这样写 assert!(VirtAddr::new(data as usize).is_canonical()); } - IA32_TSC_AUX => { + msr::IA32_TSC_AUX => { if x86_kvm_manager() - .find_user_return_msr_idx(IA32_TSC_AUX) + .find_user_return_msr_idx(msr::IA32_TSC_AUX) .is_none() { return Ok(()); @@ -703,7 +996,7 @@ impl VirtCpu { self.arch.cr2 = 0; - self.request(VirCpuRequest::KVM_REQ_EVENT); + self.request(VirtCpuRequest::KVM_REQ_EVENT); self.arch.apf.msr_en_val = 0; self.arch.apf.msr_int_val = 0; @@ -769,12 +1062,12 @@ impl VirtCpu { kvm_arch_ops().update_exception_bitmap(self); if old_cr0.contains(Cr0::CR0_ENABLE_PAGING) { - self.request(VirCpuRequest::KVM_REQ_TLB_FLUSH_GUEST); + self.request(VirtCpuRequest::MAKE_KVM_REQ_TLB_FLUSH_GUEST); self.arch.reset_mmu_context(); } if init_event { - self.request(VirCpuRequest::KVM_REQ_TLB_FLUSH_GUEST); + self.request(VirtCpuRequest::MAKE_KVM_REQ_TLB_FLUSH_GUEST); } Ok(()) @@ -782,7 +1075,7 @@ impl VirtCpu { fn set_rflags(&mut self, rflags: RFlags) { self._set_rflags(rflags); - self.request(VirCpuRequest::KVM_REQ_EVENT); + self.request(VirtCpuRequest::KVM_REQ_EVENT); } fn _set_rflags(&mut self, mut rflags: RFlags) { @@ -910,7 +1203,6 @@ impl VirtCpu { pub fn set_segment_regs(&mut self, sregs: &mut UapiKvmSegmentRegs) -> Result<(), SystemError> { self.load(); - kdebug!("set_segment_regs sregs{sregs:?}"); self._set_segmenet_regs(&self.kvm().lock(), sregs)?; Ok(()) } @@ -935,7 +1227,7 @@ impl VirtCpu { if pending < max_bits { self.arch.queue_interrupt(pending as u8, false); - self.request(VirCpuRequest::KVM_REQ_EVENT); + self.request(VirtCpuRequest::KVM_REQ_EVENT); } } @@ -1121,7 +1413,7 @@ impl VirtCpu { self.arch.exception.pending = false; self.arch.exception_vmexit.pending = false; - self.request(VirCpuRequest::KVM_REQ_EVENT); + self.request(VirtCpuRequest::KVM_REQ_EVENT); } pub fn load_guest_xsave_state(&mut self) { @@ -1154,18 +1446,132 @@ impl VirtCpu { } bitflags! { - pub struct VirCpuRequest: u32 { - const KVM_REQUEST_NO_WAKEUP = 1 << 0; - const KVM_REQUEST_WAIT = 1 << 1; - const KVM_REQUEST_NO_ACTION = 1 << 2; - const KVM_REQ_EVENT = 1 << 6; - const KVM_REQ_STEAL_UPDATE = 1 << 8; - const KVM_REQ_APIC_PAGE_RELOAD = 1 << 17 | Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits; - const KVM_REQ_TLB_FLUSH_GUEST = 1 << 27 | Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits; - const KVM_REQ_TLB_FLUSH = 1 | Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits; + // pub struct VirtCpuRequest: u64 { + // const KVM_REQUEST_MASK = 0xFF; + + // const KVM_REQ_TLB_FLUSH = 0 | Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits; + // const KVM_REQ_VM_DEAD = 1 | Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits; + + // const KVM_REQUEST_NO_WAKEUP = 1 << 8; + // const KVM_REQUEST_WAIT = 1 << 9; + // const KVM_REQUEST_NO_ACTION = 1 << 10; + + // const KVM_REQ_MIGRATE_TIMER = kvm_arch_req(0); + // const KVM_REQ_REPORT_TPR_ACCESS = kvm_arch_req(1); + // const KVM_REQ_TRIPLE_FAULT = kvm_arch_req(2); + // const KVM_REQ_MMU_SYNC = kvm_arch_req(3); + // const KVM_REQ_CLOCK_UPDATE = kvm_arch_req(4); + // const KVM_REQ_LOAD_MMU_PGD = kvm_arch_req(5); + // const KVM_REQ_EVENT = kvm_arch_req(6); + // const KVM_REQ_APF_HALT = kvm_arch_req(7); + // const KVM_REQ_STEAL_UPDATE = kvm_arch_req(8); + // const KVM_REQ_NMI = kvm_arch_req(9); + // const KVM_REQ_PMU = kvm_arch_req(10); + // const KVM_REQ_PMI = kvm_arch_req(11); + // const KVM_REQ_SMI = kvm_arch_req(12); + + // const KVM_REQ_MASTERCLOCK_UPDATE = kvm_arch_req(13); + // const KVM_REQ_MCLOCK_INPROGRESS = kvm_arch_req_flags(14, Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits); + // const KVM_REQ_SCAN_IOAPIC = kvm_arch_req_flags(15, Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits); + // const KVM_REQ_GLOBAL_CLOCK_UPDATE = kvm_arch_req(16); + // const KVM_REQ_APIC_PAGE_RELOAD = kvm_arch_req_flags(17, Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits); + // const KVM_REQ_HV_CRASH = kvm_arch_req(18); + // const KVM_REQ_IOAPIC_EOI_EXIT = kvm_arch_req(19); + // const KVM_REQ_HV_RESET = kvm_arch_req(20); + // const KVM_REQ_HV_EXIT = kvm_arch_req(21); + // const KVM_REQ_HV_STIMER = kvm_arch_req(22); + // const KVM_REQ_LOAD_EOI_EXITMAP = kvm_arch_req(23); + // const KVM_REQ_GET_NESTED_STATE_PAGES = kvm_arch_req(24); + // const KVM_REQ_APICV_UPDATE = kvm_arch_req_flags(25, Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits); + // const KVM_REQ_TLB_FLUSH_CURRENT = kvm_arch_req(26); + + // const KVM_REQ_TLB_FLUSH_GUEST = kvm_arch_req_flags(27, Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits); + // const KVM_REQ_APF_READY = kvm_arch_req(28); + // const KVM_REQ_MSR_FILTER_CHANGED = kvm_arch_req(29); + // const KVM_REQ_UPDATE_CPU_DIRTY_LOGGING = kvm_arch_req_flags(30, Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits); + // const KVM_REQ_MMU_FREE_OBSOLETE_ROOTS = kvm_arch_req_flags(31, Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits); + // const KVM_REQ_HV_TLB_FLUSH = kvm_arch_req_flags(32, Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits); + // } + + pub struct VirtCpuRequest: u64 { + // const KVM_REQUEST_MASK = 0xFF; + + const KVM_REQ_TLB_FLUSH = Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits; + const KVM_REQ_VM_DEAD = 1; + + const KVM_REQUEST_NO_WAKEUP = 1 << 8; + const KVM_REQUEST_WAIT = 1 << 9; + const KVM_REQUEST_NO_ACTION = 1 << 10; + + const KVM_REQ_MIGRATE_TIMER = kvm_arch_req(0); + const KVM_REQ_REPORT_TPR_ACCESS = kvm_arch_req(1); + const KVM_REQ_TRIPLE_FAULT = kvm_arch_req(2); + const KVM_REQ_MMU_SYNC = kvm_arch_req(3); + const KVM_REQ_CLOCK_UPDATE = kvm_arch_req(4); + const KVM_REQ_LOAD_MMU_PGD = kvm_arch_req(5); + const KVM_REQ_EVENT = kvm_arch_req(6); + const KVM_REQ_APF_HALT = kvm_arch_req(7); + const KVM_REQ_STEAL_UPDATE = kvm_arch_req(8); + const KVM_REQ_NMI = kvm_arch_req(9); + const KVM_REQ_PMU = kvm_arch_req(10); + const KVM_REQ_PMI = kvm_arch_req(11); + const KVM_REQ_SMI = kvm_arch_req(12); + + const KVM_REQ_MASTERCLOCK_UPDATE = kvm_arch_req(13); + + const KVM_REQ_MCLOCK_INPROGRESS = kvm_arch_req(14); + const MAKE_KVM_REQ_MCLOCK_INPROGRESS = kvm_arch_req_flags(14, Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits); + + const KVM_REQ_SCAN_IOAPIC = kvm_arch_req(15); + const MAKE_KVM_REQ_SCAN_IOAPIC = kvm_arch_req_flags(15, Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits); + + + const KVM_REQ_GLOBAL_CLOCK_UPDATE = kvm_arch_req(16); + + const KVM_REQ_APIC_PAGE_RELOAD = kvm_arch_req(17); + const MAKE_KVM_REQ_APIC_PAGE_RELOAD = kvm_arch_req_flags(17, Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits); + + const KVM_REQ_HV_CRASH = kvm_arch_req(18); + const KVM_REQ_IOAPIC_EOI_EXIT = kvm_arch_req(19); + const KVM_REQ_HV_RESET = kvm_arch_req(20); + const KVM_REQ_HV_EXIT = kvm_arch_req(21); + const KVM_REQ_HV_STIMER = kvm_arch_req(22); + const KVM_REQ_LOAD_EOI_EXITMAP = kvm_arch_req(23); + const KVM_REQ_GET_NESTED_STATE_PAGES = kvm_arch_req(24); + + const KVM_REQ_APICV_UPDATE = kvm_arch_req(25); + const MAKE_KVM_REQ_APICV_UPDATE = kvm_arch_req_flags(25, Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits); + + const KVM_REQ_TLB_FLUSH_CURRENT = kvm_arch_req(26); + + const KVM_REQ_TLB_FLUSH_GUEST = kvm_arch_req(27); + const MAKE_KVM_REQ_TLB_FLUSH_GUEST = kvm_arch_req_flags(27, Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits); + + const KVM_REQ_APF_READY = kvm_arch_req(28); + const KVM_REQ_MSR_FILTER_CHANGED = kvm_arch_req(29); + + const KVM_REQ_UPDATE_CPU_DIRTY_LOGGING = kvm_arch_req(30); + const MAKE_KVM_REQ_UPDATE_CPU_DIRTY_LOGGING = kvm_arch_req_flags(30, Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits); + + const KVM_REQ_MMU_FREE_OBSOLETE_ROOTS = kvm_arch_req(31); + const MAKE_KVM_REQ_MMU_FREE_OBSOLETE_ROOTS = kvm_arch_req_flags(31, Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits); + + const KVM_REQ_HV_TLB_FLUSH = kvm_arch_req(32); + const MAKE_KVM_REQ_HV_TLB_FLUSH = kvm_arch_req_flags(32, Self::KVM_REQUEST_WAIT.bits | Self::KVM_REQUEST_NO_WAKEUP.bits); } } +// const KVM_REQUEST_ARCH_BASE: u64 = 8; +const KVM_REQUEST_ARCH_BASE: u64 = 11; + +const fn kvm_arch_req(nr: u64) -> u64 { + return kvm_arch_req_flags(nr, 0); +} + +const fn kvm_arch_req_flags(nr: u64, flags: u64) -> u64 { + 1 << (nr + KVM_REQUEST_ARCH_BASE) | flags +} + #[derive(Debug, Default)] pub struct KvmQueuedInterrupt { pub injected: bool, @@ -1174,6 +1580,7 @@ pub struct KvmQueuedInterrupt { } #[derive(Debug, Default)] +#[allow(dead_code)] pub struct KvmQueuedException { pending: bool, injected: bool, @@ -1185,6 +1592,7 @@ pub struct KvmQueuedException { } #[derive(Debug)] +#[allow(dead_code)] pub struct KvmAsyncPageFault { /// 是否处于停止状态 halted: bool, diff --git a/kernel/src/arch/x86_64/vm/mem.rs b/kernel/src/arch/x86_64/vm/mem.rs index b3ac5f0f4..fa9488ac0 100644 --- a/kernel/src/arch/x86_64/vm/mem.rs +++ b/kernel/src/arch/x86_64/vm/mem.rs @@ -1,21 +1,26 @@ use alloc::sync::Arc; use system_error::SystemError; -use crate::virt::vm::kvm_host::{ - mem::{KvmMemoryChangeMode, LockedKvmMemSlot}, - Vm, +use crate::{ + kwarn, + virt::vm::kvm_host::{ + mem::{KvmMemoryChangeMode, LockedKvmMemSlot}, + Vm, + }, }; +#[allow(dead_code)] pub struct KvmArchMemorySlot {} impl Vm { pub fn arch_prepare_memory_region( &self, - old: Option<&Arc>, - new: Option<&Arc>, - change: KvmMemoryChangeMode, + _old: Option<&Arc>, + _new: Option<&Arc>, + _change: KvmMemoryChangeMode, ) -> Result<(), SystemError> { // todo + kwarn!("arch_prepare_memory_region TODO"); Ok(()) } } diff --git a/kernel/src/arch/x86_64/vm/mmu.rs b/kernel/src/arch/x86_64/vm/mmu.rs index a0edddf4b..504e9a107 100644 --- a/kernel/src/arch/x86_64/vm/mmu.rs +++ b/kernel/src/arch/x86_64/vm/mmu.rs @@ -1,16 +1,20 @@ +use crate::{arch::mm::X86_64MMArch, kdebug}; use alloc::{sync::Arc, vec::Vec}; use bitfield_struct::bitfield; +use core::intrinsics::likely; use raw_cpuid::CpuId; +use system_error::SystemError; use x86::controlregs::{Cr0, Cr4}; use x86_64::registers::control::EferFlags; use crate::{ - arch::{MMArch, VirtCpuArch}, + arch::{mm::LockedFrameAllocator, MMArch, VirtCpuArch}, libs::spinlock::{SpinLock, SpinLockGuard}, - mm::MemoryManagementArch, + mm::{page::PageMapper, MemoryManagementArch, PageTableKind}, + virt::vm::kvm_host::{vcpu::VirtCpu, Vm}, }; -use super::vmx::vmx_info; +use super::{vmx::vmx_info, x86_kvm_ops}; const PT64_ROOT_5LEVEL: usize = 5; const PT64_ROOT_4LEVEL: usize = 4; @@ -27,6 +31,7 @@ static mut SHADOW_ACCESSED_MASK: usize = 0; static mut MAX_HUGE_PAGE_LEVEL: PageLevel = PageLevel::None; +#[allow(dead_code)] pub enum PageLevel { None, Level4k, @@ -54,10 +59,11 @@ impl LockedKvmMmu { } #[derive(Debug, Default)] +#[allow(dead_code)] pub struct KvmMmu { - root: KvmMmuRootInfo, - cpu_role: KvmCpuRole, - root_role: KvmMmuPageRole, + pub root: KvmMmuRootInfo, + pub cpu_role: KvmCpuRole, + pub root_role: KvmMmuPageRole, pkru_mask: u32, @@ -68,7 +74,7 @@ pub struct KvmMmu { impl KvmMmu { const KVM_MMU_NUM_PREV_ROOTS: usize = 3; - const INVALID_PAGE: u64 = u64::MAX; + pub const INVALID_PAGE: u64 = u64::MAX; #[inline] pub fn tdp_enabled() -> bool { @@ -121,8 +127,8 @@ impl KvmMmu { #[derive(Debug, Default)] pub struct KvmMmuRootInfo { - pgd: u64, - hpa: u64, + pub pgd: u64, + pub hpa: u64, } #[derive(Debug, Default, Clone, Copy)] @@ -381,6 +387,11 @@ impl VirtCpuArch { self.root_mmu.as_ref().unwrap() } + #[inline] + pub fn mmu(&self) -> SpinLockGuard { + self.mmu.as_ref().unwrap().lock() + } + fn calc_tdp_mmu_root_page_role(&self, cpu_role: KvmCpuRole) -> KvmMmuPageRole { let mut role = KvmMmuPageRole::default(); @@ -397,3 +408,88 @@ impl VirtCpuArch { role } } + +impl VirtCpu { + pub fn kvm_mmu_reload(&mut self, vm: &Vm) -> Result<(), SystemError> { + if likely(self.arch.mmu().root.hpa != KvmMmu::INVALID_PAGE) { + return Ok(()); + } + + return self.kvm_mmu_load(vm); + } + + pub fn kvm_mmu_load(&mut self, vm: &Vm) -> Result<(), SystemError> { + let direct = self.arch.mmu().root_role.direct(); + self.mmu_topup_memory_caches(!direct)?; + self.mmu_alloc_special_roots()?; + + if direct { + self.mmu_alloc_direct_roots()?; + } else { + self.mmu_alloc_shadow_roots()?; + } + + // TODO: kvm_mmu_sync_roots + + self.kvm_mmu_load_pgd(vm); + + Ok(()) + } + + pub fn kvm_mmu_load_pgd(&mut self, vm: &Vm) { + let root_hpa = self.arch.mmu().root.hpa; + + if root_hpa == KvmMmu::INVALID_PAGE { + return; + } + + let level = self.arch.mmu().root_role.level(); + x86_kvm_ops().load_mmu_pgd(self, vm, root_hpa, level); + } + + fn mmu_topup_memory_caches(&mut self, _maybe_indirect: bool) -> Result<(), SystemError> { + // TODO + Ok(()) + } + + fn mmu_alloc_special_roots(&mut self) -> Result<(), SystemError> { + // TODO + Ok(()) + } + + fn mmu_alloc_direct_roots(&mut self) -> Result<(), SystemError> { + // let shadow_root_level = self.arch.mmu().root_role.level(); + + // if KvmMmu::tdp_enabled() { + // todo!() + // } else if shadow_root_level >= PT64_ROOT_4LEVEL as u32 { + // todo!() + // } else if shadow_root_level == PT32E_ROOT_LEVEL as u32 { + // todo!() + // } else { + // kerror!("Bad TDP root level = {}", shadow_root_level); + // return Err(SystemError::EIO); + // } + + // self.arch.mmu().root.pgd = 0; + // Ok(()) + + // 申请并创建新的页表 + let mapper: crate::mm::page::PageMapper = unsafe { + PageMapper::create(PageTableKind::EPT, LockedFrameAllocator) + .ok_or(SystemError::ENOMEM)? + }; + + let ept_root_hpa = mapper.table().phys(); + + self.arch.mmu().root.hpa = ept_root_hpa.data() as u64; + + kdebug!("ept_root_hpa:{:x}!", ept_root_hpa.data() as u64); + + Ok(()) + } + + fn mmu_alloc_shadow_roots(&mut self) -> Result<(), SystemError> { + todo!(); + } +} diff --git a/kernel/src/arch/x86_64/vm/mod.rs b/kernel/src/arch/x86_64/vm/mod.rs index c7996265e..4f9af1cc6 100644 --- a/kernel/src/arch/x86_64/vm/mod.rs +++ b/kernel/src/arch/x86_64/vm/mod.rs @@ -1,35 +1,15 @@ -use core::arch::x86_64::{_xgetbv, _XCR_XFEATURE_ENABLED_MASK}; - use alloc::vec::Vec; use raw_cpuid::CpuId; use system_error::SystemError; use x86::{ - controlregs::{xcr0, Cr0, Cr4, Xcr0}, - msr::{ - rdmsr, IA32_BIOS_SIGN_ID, IA32_CSTAR, IA32_EFER, IA32_FEATURE_CONTROL, IA32_FMASK, - IA32_KERNEL_GSBASE, IA32_LSTAR, IA32_MCG_CTL, IA32_MCG_STATUS, IA32_MISC_ENABLE, IA32_PAT, - IA32_PERFEVTSEL0, IA32_PERFEVTSEL7, IA32_PERF_CAPABILITIES, IA32_PMC0, IA32_PMC7, - IA32_SMBASE, IA32_STAR, IA32_SYSENTER_CS, IA32_SYSENTER_EIP, IA32_SYSENTER_ESP, - IA32_TIME_STAMP_COUNTER, IA32_TSC_ADJUST, IA32_TSC_AUX, IA32_TSC_DEADLINE, IA32_VMX_BASIC, - IA32_VMX_CR0_FIXED0, IA32_VMX_CR4_FIXED0, IA32_VMX_EPT_VPID_CAP, IA32_VMX_MISC, - IA32_VMX_PROCBASED_CTLS2, IA32_VMX_TRUE_ENTRY_CTLS, IA32_VMX_TRUE_EXIT_CTLS, - IA32_VMX_TRUE_PINBASED_CTLS, IA32_VMX_TRUE_PROCBASED_CTLS, IA32_VMX_VMCS_ENUM, - IA32_VMX_VMFUNC, MSR_C1_PMON_EVNT_SEL0, MSR_C5_PMON_BOX_CTRL, MSR_IA32_ADDR0_END, - MSR_IA32_ADDR0_START, MSR_IA32_ADDR1_END, MSR_IA32_ADDR1_START, MSR_IA32_ADDR2_END, - MSR_IA32_ADDR2_START, MSR_IA32_ADDR3_END, MSR_IA32_ADDR3_START, MSR_IA32_CR3_MATCH, - MSR_IA32_RTIT_CTL, MSR_IA32_RTIT_OUTPUT_BASE, MSR_IA32_RTIT_OUTPUT_MASK_PTRS, - MSR_IA32_RTIT_STATUS, MSR_IA32_TSX_CTRL, MSR_PERF_FIXED_CTR0, MSR_PERF_FIXED_CTR2, - MSR_PLATFORM_INFO, MSR_POWER_CTL, MSR_SMI_COUNT, - }, -}; -use x86_64::registers::{ - control::{Efer, EferFlags}, - xcontrol::{XCr0, XCr0Flags}, + controlregs::{cr4, xcr0, Cr0, Cr4, Xcr0}, + msr::{self, rdmsr, wrmsr}, }; +use x86_64::registers::control::{Efer, EferFlags}; use crate::{ arch::vm::vmx::{VmxL1dFlushState, L1TF_VMX_MITIGATION}, - kdebug, kerror, + kerror, kwarn, libs::once::Once, mm::percpu::{PerCpu, PerCpuVar}, }; @@ -43,6 +23,7 @@ use super::driver::tsc::TSCManager; mod asm; mod cpuid; +pub(super) mod exit; pub mod kvm_host; pub mod mem; mod mmu; @@ -169,35 +150,35 @@ impl KvmArchManager { pub const KVM_MAX_NR_USER_RETURN_MSRS: usize = 7; const MSRS_TO_SAVE_BASE: &[u32] = &[ - IA32_SYSENTER_CS, - IA32_SYSENTER_ESP, - IA32_SYSENTER_EIP, - IA32_STAR, - IA32_CSTAR, - IA32_KERNEL_GSBASE, - IA32_FMASK, - IA32_LSTAR, - IA32_TIME_STAMP_COUNTER, - IA32_PAT, + msr::IA32_SYSENTER_CS, + msr::IA32_SYSENTER_ESP, + msr::IA32_SYSENTER_EIP, + msr::IA32_STAR, + msr::IA32_CSTAR, + msr::IA32_KERNEL_GSBASE, + msr::IA32_FMASK, + msr::IA32_LSTAR, + msr::IA32_TIME_STAMP_COUNTER, + msr::IA32_PAT, 0xc0010117, // MSR_VM_HSAVE_PA? - IA32_FEATURE_CONTROL, - MSR_C1_PMON_EVNT_SEL0, - IA32_TSC_AUX, + msr::IA32_FEATURE_CONTROL, + msr::MSR_C1_PMON_EVNT_SEL0, + msr::IA32_TSC_AUX, 0x48, // MSR_IA32_SPEC_CTRL - MSR_IA32_TSX_CTRL, - MSR_IA32_RTIT_CTL, - MSR_IA32_RTIT_STATUS, - MSR_IA32_CR3_MATCH, - MSR_IA32_RTIT_OUTPUT_BASE, - MSR_IA32_RTIT_OUTPUT_MASK_PTRS, - MSR_IA32_ADDR0_START, - MSR_IA32_ADDR0_END, - MSR_IA32_ADDR1_START, - MSR_IA32_ADDR1_END, - MSR_IA32_ADDR2_START, - MSR_IA32_ADDR2_END, - MSR_IA32_ADDR3_START, - MSR_IA32_ADDR3_END, + msr::MSR_IA32_TSX_CTRL, + msr::MSR_IA32_RTIT_CTL, + msr::MSR_IA32_RTIT_STATUS, + msr::MSR_IA32_CR3_MATCH, + msr::MSR_IA32_RTIT_OUTPUT_BASE, + msr::MSR_IA32_RTIT_OUTPUT_MASK_PTRS, + msr::MSR_IA32_ADDR0_START, + msr::MSR_IA32_ADDR0_END, + msr::MSR_IA32_ADDR1_START, + msr::MSR_IA32_ADDR1_END, + msr::MSR_IA32_ADDR2_START, + msr::MSR_IA32_ADDR2_END, + msr::MSR_IA32_ADDR3_START, + msr::MSR_IA32_ADDR3_END, 0xe1, // MSR_IA32_UMWAIT_CONTROL 0x1c4, // MSR_IA32_XFD 0x1c5, // MSR_IA32_XFD_ERR @@ -241,22 +222,22 @@ impl KvmArchManager { MSR_KVM_PV_EOI_EN, MSR_KVM_ASYNC_PF_INT, MSR_KVM_ASYNC_PF_ACK, - IA32_TSC_ADJUST, - IA32_TSC_DEADLINE, - IA32_PERF_CAPABILITIES, + msr::IA32_TSC_ADJUST, + msr::IA32_TSC_DEADLINE, + msr::IA32_PERF_CAPABILITIES, 0x10a, // MSR_IA32_ARCH_CAPABILITIES, - IA32_MISC_ENABLE, - IA32_MCG_STATUS, - IA32_MCG_CTL, + msr::IA32_MISC_ENABLE, + msr::IA32_MCG_STATUS, + msr::IA32_MCG_CTL, 0x4d0, // MSR_IA32_MCG_EXT_CTL, - IA32_SMBASE, - MSR_SMI_COUNT, - MSR_PLATFORM_INFO, + msr::IA32_SMBASE, + msr::MSR_SMI_COUNT, + msr::MSR_PLATFORM_INFO, 0x140, // MSR_MISC_FEATURES_ENABLES, 0xc001011f, // MSR_AMD64_VIRT_SPEC_CTRL, 0xc0000104, // MSR_AMD64_TSC_RATIO, - MSR_POWER_CTL, - IA32_BIOS_SIGN_ID, // MSR_IA32_UCODE_REV, + msr::MSR_POWER_CTL, + msr::IA32_BIOS_SIGN_ID, // MSR_IA32_UCODE_REV, /* * KVM always supports the "true" VMX control MSRs, even if the host * does not. The VMX MSRs as a whole are considered "emulated" as KVM @@ -264,27 +245,27 @@ impl KvmArchManager { * KVM would refuse to load in the first place if the core set of MSRs * aren't supported). */ - IA32_VMX_BASIC, - IA32_VMX_TRUE_PINBASED_CTLS, - IA32_VMX_TRUE_PROCBASED_CTLS, - IA32_VMX_TRUE_EXIT_CTLS, - IA32_VMX_TRUE_ENTRY_CTLS, - IA32_VMX_MISC, - IA32_VMX_CR0_FIXED0, - IA32_VMX_CR4_FIXED0, - IA32_VMX_VMCS_ENUM, - IA32_VMX_PROCBASED_CTLS2, - IA32_VMX_EPT_VPID_CAP, - IA32_VMX_VMFUNC, + msr::IA32_VMX_BASIC, + msr::IA32_VMX_TRUE_PINBASED_CTLS, + msr::IA32_VMX_TRUE_PROCBASED_CTLS, + msr::IA32_VMX_TRUE_EXIT_CTLS, + msr::IA32_VMX_TRUE_ENTRY_CTLS, + msr::IA32_VMX_MISC, + msr::IA32_VMX_CR0_FIXED0, + msr::IA32_VMX_CR4_FIXED0, + msr::IA32_VMX_VMCS_ENUM, + msr::IA32_VMX_PROCBASED_CTLS2, + msr::IA32_VMX_EPT_VPID_CAP, + msr::IA32_VMX_VMFUNC, 0xc0010015, // MSR_K7_HWCR, MSR_KVM_POLL_CONTROL, ]; const MSR_BASED_FEATURES_ALL_EXCEPT_VMX: &[u32] = &[ - 0xc0011029, // MSR_AMD64_DE_CFG - IA32_BIOS_SIGN_ID, // MSR_IA32_UCODE_REV - 0x10a, // MSR_IA32_ARCH_CAPABILITIES, - IA32_PERF_CAPABILITIES, + 0xc0011029, // MSR_AMD64_DE_CFG + msr::IA32_BIOS_SIGN_ID, // MSR_IA32_UCODE_REV + 0x10a, // MSR_IA32_ARCH_CAPABILITIES, + msr::IA32_PERF_CAPABILITIES, ]; pub fn arch_hardware_enable(&self) -> Result<(), SystemError> { @@ -338,7 +319,7 @@ impl KvmArchManager { // https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/x86.c#9472 // 读取主机page attribute table(页属性表) - let host_pat = unsafe { rdmsr(IA32_PAT) }; + let host_pat = unsafe { rdmsr(msr::IA32_PAT) }; // PAT[0]是否为write back类型,即判断低三位是否为0b110(0x06) if host_pat & 0b111 != 0b110 { kerror!("[KVM] host PAT[0] is not WB"); @@ -346,16 +327,17 @@ impl KvmArchManager { } // TODO:mmu vendor init - if cpu_feature.has_xsave() { + if cpu_feature.has_xsave() && unsafe { cr4() }.contains(Cr4::CR4_ENABLE_OS_XSAVE) { self.host_xcr0 = unsafe { xcr0() }; self.kvm_caps.supported_xcr0 = self.host_xcr0; } + // 保存efer self.host_efer = Efer::read(); // 保存xss if cpu_extend.has_xsaves_xrstors() { - self.host_xss = unsafe { rdmsr(MSR_C5_PMON_BOX_CTRL) }; + self.host_xss = unsafe { rdmsr(msr::MSR_C5_PMON_BOX_CTRL) }; } // TODO: 初始化性能监视单元(PMU) @@ -389,6 +371,8 @@ impl KvmArchManager { kvm_caps.default_tsc_scaling_ratio = 1 << kvm_caps.tsc_scaling_ratio_frac_bits; self.kvm_init_msr_lists(); + + kwarn!("vendor init over"); Ok(()) } @@ -412,7 +396,7 @@ impl KvmArchManager { self.emulated_msrs.push(*msr); } - for msr in IA32_VMX_BASIC..=IA32_VMX_VMFUNC { + for msr in msr::IA32_VMX_BASIC..=msr::IA32_VMX_VMFUNC { self.kvm_prove_feature_msr(msr) } @@ -427,13 +411,13 @@ impl KvmArchManager { let cpu_extend = cpuid.get_extended_feature_info().unwrap(); match msr { - MSR_C1_PMON_EVNT_SEL0 => { + msr::MSR_C1_PMON_EVNT_SEL0 => { if !cpu_extend.has_mpx() { return; } } - IA32_TSC_AUX => { + msr::IA32_TSC_AUX => { if !cpu_feat.has_tsc() { return; } @@ -444,39 +428,39 @@ impl KvmArchManager { return; } } - MSR_IA32_RTIT_CTL | MSR_IA32_RTIT_STATUS => { + msr::MSR_IA32_RTIT_CTL | msr::MSR_IA32_RTIT_STATUS => { if !cpu_extend.has_processor_trace() { return; } } - MSR_IA32_CR3_MATCH => { + msr::MSR_IA32_CR3_MATCH => { // TODO: 判断intel_pt_validate_hw_cap(PT_CAP_cr3_filtering) if !cpu_extend.has_processor_trace() { return; } } - MSR_IA32_RTIT_OUTPUT_BASE | MSR_IA32_RTIT_OUTPUT_MASK_PTRS => { + msr::MSR_IA32_RTIT_OUTPUT_BASE | msr::MSR_IA32_RTIT_OUTPUT_MASK_PTRS => { // TODO: 判断!intel_pt_validate_hw_cap(PT_CAP_topa_output) &&!intel_pt_validate_hw_cap(PT_CAP_single_range_output) if !cpu_extend.has_processor_trace() { return; } } - MSR_IA32_ADDR0_START..MSR_IA32_ADDR3_END => { + msr::MSR_IA32_ADDR0_START..msr::MSR_IA32_ADDR3_END => { // TODO: 判断msr_index - MSR_IA32_RTIT_ADDR0_A >= intel_pt_validate_hw_cap(PT_CAP_num_address_ranges) * 2) if !cpu_extend.has_processor_trace() { return; } } - IA32_PMC0..IA32_PMC7 => { + msr::IA32_PMC0..msr::IA32_PMC7 => { // TODO: 判断msr是否符合配置 } - IA32_PERFEVTSEL0..IA32_PERFEVTSEL7 => { + msr::IA32_PERFEVTSEL0..msr::IA32_PERFEVTSEL7 => { // TODO: 判断msr是否符合配置 } - MSR_PERF_FIXED_CTR0..MSR_PERF_FIXED_CTR2 => { + msr::MSR_PERF_FIXED_CTR0..msr::MSR_PERF_FIXED_CTR2 => { // TODO: 判断msr是否符合配置 } - MSR_IA32_TSX_CTRL => { + msr::MSR_IA32_TSX_CTRL => { // TODO: !(kvm_get_arch_capabilities() & ARCH_CAP_TSX_CTRL_MSR) // 这个寄存器目前不支持,现在先return // return; @@ -507,10 +491,10 @@ impl KvmArchManager { // MSR_IA32_ARCH_CAPABILITIES, msr.data = self.get_arch_capabilities(); } - IA32_PERF_CAPABILITIES => { + msr::IA32_PERF_CAPABILITIES => { msr.data = self.kvm_caps.supported_perf_cap; } - IA32_BIOS_SIGN_ID => { + msr::IA32_BIOS_SIGN_ID => { // MSR_IA32_UCODE_REV msr.data = unsafe { rdmsr(msr.index) }; } @@ -523,9 +507,6 @@ impl KvmArchManager { } fn get_arch_capabilities(&self) -> u64 { - let cpuid = CpuId::new(); - let extend_feat = cpuid.get_extended_feature_info().unwrap(); - let mut data = ArchCapabilities::from_bits_truncate(self.host_arch_capabilities) & ArchCapabilities::KVM_SUPPORTED_ARCH_CAP; data.insert(ArchCapabilities::ARCH_CAP_PSCHANGE_MC_NO); @@ -561,6 +542,23 @@ impl KvmArchManager { // TODO:此处未完成 Ok(()) } + + pub fn kvm_set_user_return_msr(&self, slot: usize, mut value: u64, mask: u64) { + let msrs = user_return_msrs().get_mut(); + + value = (value & mask) | (msrs.values[slot].host & !mask); + if value == msrs.values[slot].curr { + return; + } + + unsafe { wrmsr(self.kvm_uret_msrs_list[slot], value) }; + + msrs.values[slot].curr = value; + + if !msrs.registered { + msrs.registered = true; + } + } } /// ### Kvm的功能特性 diff --git a/kernel/src/arch/x86_64/vm/uapi.rs b/kernel/src/arch/x86_64/vm/uapi.rs index e22b02b76..c7a8ccc24 100644 --- a/kernel/src/arch/x86_64/vm/uapi.rs +++ b/kernel/src/arch/x86_64/vm/uapi.rs @@ -1,3 +1,5 @@ +#![allow(dead_code)] + use crate::virt::vm::user_api::UapiKvmSegment; pub const DE_VECTOR: usize = 0; @@ -56,3 +58,45 @@ pub struct UapiKvmDtable { pub limit: u16, pub padding: [u16; 3usize], } + +#[allow(dead_code)] +pub mod kvm_exit { + pub const KVM_EXIT_UNKNOWN: u32 = 0; + pub const KVM_EXIT_EXCEPTION: u32 = 1; + pub const KVM_EXIT_IO: u32 = 2; + pub const KVM_EXIT_HYPERCALL: u32 = 3; + pub const KVM_EXIT_DEBUG: u32 = 4; + pub const KVM_EXIT_HLT: u32 = 5; + pub const KVM_EXIT_MMIO: u32 = 6; + pub const KVM_EXIT_IRQ_WINDOW_OPEN: u32 = 7; + pub const KVM_EXIT_SHUTDOWN: u32 = 8; + pub const KVM_EXIT_FAIL_ENTRY: u32 = 9; + pub const KVM_EXIT_INTR: u32 = 10; + pub const KVM_EXIT_SET_TPR: u32 = 11; + pub const KVM_EXIT_TPR_ACCESS: u32 = 12; + pub const KVM_EXIT_S390_SIEIC: u32 = 13; + pub const KVM_EXIT_S390_RESET: u32 = 14; + pub const KVM_EXIT_DCR: u32 = 15; + pub const KVM_EXIT_NMI: u32 = 16; + pub const KVM_EXIT_INTERNAL_ERROR: u32 = 17; + pub const KVM_EXIT_OSI: u32 = 18; + pub const KVM_EXIT_PAPR_HCALL: u32 = 19; + pub const KVM_EXIT_S390_UCONTROL: u32 = 20; + pub const KVM_EXIT_WATCHDOG: u32 = 21; + pub const KVM_EXIT_S390_TSCH: u32 = 22; + pub const KVM_EXIT_EPR: u32 = 23; + pub const KVM_EXIT_SYSTEM_EVENT: u32 = 24; + pub const KVM_EXIT_S390_STSI: u32 = 25; + pub const KVM_EXIT_IOAPIC_EOI: u32 = 26; + pub const KVM_EXIT_HYPERV: u32 = 27; + pub const KVM_EXIT_ARM_NISV: u32 = 28; + pub const KVM_EXIT_X86_RDMSR: u32 = 29; + pub const KVM_EXIT_X86_WRMSR: u32 = 30; + pub const KVM_EXIT_DIRTY_RING_FULL: u32 = 31; + pub const KVM_EXIT_AP_RESET_HOLD: u32 = 32; + pub const KVM_EXIT_X86_BUS_LOCK: u32 = 33; + pub const KVM_EXIT_XEN: u32 = 34; + pub const KVM_EXIT_RISCV_SBI: u32 = 35; + pub const KVM_EXIT_RISCV_CSR: u32 = 36; + pub const KVM_EXIT_NOTIFY: u32 = 37; +} diff --git a/kernel/src/arch/x86_64/vm/vmx/asm.rs b/kernel/src/arch/x86_64/vm/vmx/asm.rs new file mode 100644 index 000000000..92d857507 --- /dev/null +++ b/kernel/src/arch/x86_64/vm/vmx/asm.rs @@ -0,0 +1,19 @@ +#![allow(dead_code)] + +pub const VMX_EPT_MT_EPTE_SHIFT: u64 = 3; +pub const VMX_EPTP_PWL_MASK: u64 = 0x38; +pub const VMX_EPTP_PWL_4: u64 = 0x18; +pub const VMX_EPTP_PWL_5: u64 = 0x20; +pub const VMX_EPTP_AD_ENABLE_BIT: u64 = 1 << 6; +pub const VMX_EPTP_MT_MASK: u64 = 0x7; +pub const VMX_EPTP_MT_WB: u64 = 0x6; +pub const VMX_EPTP_MT_UC: u64 = 0x0; +pub const VMX_EPT_READABLE_MASK: u64 = 0x1; +pub const VMX_EPT_WRITABLE_MASK: u64 = 0x2; +pub const VMX_EPT_EXECUTABLE_MASK: u64 = 0x4; +pub const VMX_EPT_IPAT_BIT: u64 = 1 << 6; +pub const VMX_EPT_ACCESS_BIT: u64 = 1 << 8; +pub const VMX_EPT_DIRTY_BIT: u64 = 1 << 9; +pub const VMX_EPT_RWX_MASK: u64 = + VMX_EPT_READABLE_MASK | VMX_EPT_WRITABLE_MASK | VMX_EPT_EXECUTABLE_MASK; +pub const VMX_EPT_MT_MASK: u64 = 7 << VMX_EPT_MT_EPTE_SHIFT; diff --git a/kernel/src/arch/x86_64/vm/vmx/capabilities.rs b/kernel/src/arch/x86_64/vm/vmx/capabilities.rs index 71c947f24..3e33ba7bb 100644 --- a/kernel/src/arch/x86_64/vm/vmx/capabilities.rs +++ b/kernel/src/arch/x86_64/vm/vmx/capabilities.rs @@ -1,12 +1,6 @@ use raw_cpuid::CpuId; use x86::{ - msr::{ - IA32_VMX_BASIC, IA32_VMX_CR0_FIXED0, IA32_VMX_CR0_FIXED1, IA32_VMX_CR4_FIXED0, - IA32_VMX_CR4_FIXED1, IA32_VMX_ENTRY_CTLS, IA32_VMX_EPT_VPID_CAP, IA32_VMX_EXIT_CTLS, - IA32_VMX_MISC, IA32_VMX_PINBASED_CTLS, IA32_VMX_PROCBASED_CTLS, IA32_VMX_PROCBASED_CTLS2, - IA32_VMX_TRUE_ENTRY_CTLS, IA32_VMX_TRUE_EXIT_CTLS, IA32_VMX_TRUE_PINBASED_CTLS, - IA32_VMX_TRUE_PROCBASED_CTLS, IA32_VMX_VMCS_ENUM, IA32_VMX_VMFUNC, - }, + msr, vmx::vmcs::control::{ EntryControls, ExitControls, PinbasedControls, PrimaryControls, SecondaryControls, }, @@ -108,68 +102,68 @@ impl NestedVmxMsrs { pub fn get_vmx_msr(&self, msr_index: u32) -> Option { match msr_index { - IA32_VMX_BASIC => { + msr::IA32_VMX_BASIC => { return Some(self.basic); } - IA32_VMX_TRUE_PINBASED_CTLS | IA32_VMX_PINBASED_CTLS => { + msr::IA32_VMX_TRUE_PINBASED_CTLS | msr::IA32_VMX_PINBASED_CTLS => { let mut data = NestedVmxMsrs::control_msr(self.pinbased_ctls_low, self.pinbased_ctls_high); - if msr_index == IA32_VMX_PINBASED_CTLS { + if msr_index == msr::IA32_VMX_PINBASED_CTLS { data |= PIN_BASED_ALWAYSON_WITHOUT_TRUE_MSR; } return Some(data); } - IA32_VMX_TRUE_PROCBASED_CTLS | IA32_VMX_PROCBASED_CTLS => { + msr::IA32_VMX_TRUE_PROCBASED_CTLS | msr::IA32_VMX_PROCBASED_CTLS => { let mut data = NestedVmxMsrs::control_msr(self.procbased_ctls_low, self.procbased_ctls_high); - if msr_index == IA32_VMX_PROCBASED_CTLS { + if msr_index == msr::IA32_VMX_PROCBASED_CTLS { data |= CPU_BASED_ALWAYSON_WITHOUT_TRUE_MSR; } return Some(data); } - IA32_VMX_TRUE_EXIT_CTLS | IA32_VMX_EXIT_CTLS => { + msr::IA32_VMX_TRUE_EXIT_CTLS | msr::IA32_VMX_EXIT_CTLS => { let mut data = NestedVmxMsrs::control_msr(self.exit_ctls_low, self.exit_ctls_high); - if msr_index == IA32_VMX_EXIT_CTLS { + if msr_index == msr::IA32_VMX_EXIT_CTLS { data |= VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR; } return Some(data); } - IA32_VMX_TRUE_ENTRY_CTLS | IA32_VMX_ENTRY_CTLS => { + msr::IA32_VMX_TRUE_ENTRY_CTLS | msr::IA32_VMX_ENTRY_CTLS => { let mut data = NestedVmxMsrs::control_msr(self.entry_ctls_low, self.entry_ctls_high); - if msr_index == IA32_VMX_ENTRY_CTLS { + if msr_index == msr::IA32_VMX_ENTRY_CTLS { data |= VM_ENTRY_ALWAYSON_WITHOUT_TRUE_MSR; } return Some(data); } - IA32_VMX_MISC => { + msr::IA32_VMX_MISC => { return Some(NestedVmxMsrs::control_msr(self.misc_low, self.misc_high)); } - IA32_VMX_CR0_FIXED0 => { + msr::IA32_VMX_CR0_FIXED0 => { return Some(self.cr0_fixed0); } - IA32_VMX_CR0_FIXED1 => { + msr::IA32_VMX_CR0_FIXED1 => { return Some(self.cr0_fixed1); } - IA32_VMX_CR4_FIXED0 => { + msr::IA32_VMX_CR4_FIXED0 => { return Some(self.cr4_fixed0); } - IA32_VMX_CR4_FIXED1 => { + msr::IA32_VMX_CR4_FIXED1 => { return Some(self.cr4_fixed1); } - IA32_VMX_VMCS_ENUM => { + msr::IA32_VMX_VMCS_ENUM => { return Some(self.vmcs_enum); } - IA32_VMX_PROCBASED_CTLS2 => { + msr::IA32_VMX_PROCBASED_CTLS2 => { return Some(NestedVmxMsrs::control_msr( self.secondary_ctls_low, self.secondary_ctls_high, )); } - IA32_VMX_EPT_VPID_CAP => { + msr::IA32_VMX_EPT_VPID_CAP => { return Some(self.ept_caps as u64 | ((self.vpid_caps as u64) << 32)); } - IA32_VMX_VMFUNC => { + msr::IA32_VMX_VMFUNC => { return Some(self.vmfunc_controls); } _ => { @@ -243,6 +237,7 @@ impl VmxCapability { impl Vmx { /// 检查处理器是否支持VMX基本控制结构的输入输出功能 #[inline] + #[allow(dead_code)] pub fn has_basic_inout(&self) -> bool { return ((self.vmcs_config.basic_cap as u64) << 32) & VmxFeat::VMX_BASIC_INOUT != 0; } @@ -402,6 +397,11 @@ impl Vmx { return self.vmx_cap.ept.contains(EptFlag::EPTP_WB); } + #[inline] + pub fn has_vmx_invept_context(&self) -> bool { + self.vmx_cap.ept.contains(EptFlag::EPT_EXTENT_CONTEXT) + } + /// EPT是否支持全局拓展 #[inline] pub fn has_invept_global(&self) -> bool { diff --git a/kernel/src/arch/x86_64/vm/vmx/exit.rs b/kernel/src/arch/x86_64/vm/vmx/exit.rs new file mode 100644 index 000000000..d32168ff7 --- /dev/null +++ b/kernel/src/arch/x86_64/vm/vmx/exit.rs @@ -0,0 +1,204 @@ +use bitfield_struct::bitfield; +use system_error::SystemError; + +use crate::virt::vm::kvm_host::vcpu::VirtCpu; + +#[bitfield(u32)] +pub struct VmxExitReason { + pub basic: u16, + pub reserved16: bool, + pub reserved17: bool, + pub reserved18: bool, + pub reserved19: bool, + pub reserved20: bool, + pub reserved21: bool, + pub reserved22: bool, + pub reserved23: bool, + pub reserved24: bool, + pub reserved25: bool, + pub bus_lock_detected: bool, + pub enclave_mode: bool, + pub smi_pending_mtf: bool, + pub smi_from_vmx_root: bool, + pub reserved30: bool, + pub failed_vmentry: bool, +} + +#[derive(FromPrimitive, PartialEq)] +#[allow(non_camel_case_types)] +pub enum VmxExitReasonBasic { + EXCEPTION_OR_NMI = 0, + EXTERNAL_INTERRUPT = 1, + TRIPLE_FAULT = 2, + INIT_SIGNAL = 3, + SIPI = 4, + IO_SMI = 5, + OTHER_SMI = 6, + INTERRUPT_WINDOW = 7, + NMI_WINDOW = 8, + TASK_SWITCH = 9, + CPUID = 10, + GETSEC = 11, + HLT = 12, + INVD = 13, + INVLPG = 14, + RDPMC = 15, + RDTSC = 16, + RSM = 17, + VMCALL = 18, + VMCLEAR = 19, + VMLAUNCH = 20, + VMPTRLD = 21, + VMPTRST = 22, + VMREAD = 23, + VMRESUME = 24, + VMWRITE = 25, + VMXOFF = 26, + VMXON = 27, + CR_ACCESS = 28, + DR_ACCESS = 29, + IO_INSTRUCTION = 30, + RDMSR = 31, + WRMSR = 32, + VM_ENTRY_FAILURE_INVALID_GUEST_STATE = 33, + VM_ENTRY_FAILURE_MSR_LOADING = 34, + MWAIT = 36, + MONITOR_TRAP_FLAG = 37, + MONITOR = 39, + PAUSE = 40, + VM_ENTRY_FAILURE_MACHINE_CHECK_EVENT = 41, + TPR_BELOW_THRESHOLD = 43, + APIC_ACCESS = 44, + VIRTUALIZED_EOI = 45, + ACCESS_GDTR_OR_IDTR = 46, + ACCESS_LDTR_OR_TR = 47, + EPT_VIOLATION = 48, + EPT_MISCONFIG = 49, + INVEPT = 50, + RDTSCP = 51, + VMX_PREEMPTION_TIMER_EXPIRED = 52, + INVVPID = 53, + WBINVD = 54, + XSETBV = 55, + APIC_WRITE = 56, + RDRAND = 57, + INVPCID = 58, + VMFUNC = 59, + ENCLS = 60, + RDSEED = 61, + PML_FULL = 62, + XSAVES = 63, + XRSTORS = 64, + + UMWAIT = 67, + TPAUSE = 68, + BUS_LOCK = 74, + NOTIFY = 75, + + UNKNOWN, +} + +impl From for VmxExitReasonBasic { + fn from(num: u16) -> Self { + match num { + 0 => VmxExitReasonBasic::EXCEPTION_OR_NMI, + 1 => VmxExitReasonBasic::EXTERNAL_INTERRUPT, + 2 => VmxExitReasonBasic::TRIPLE_FAULT, + 3 => VmxExitReasonBasic::INIT_SIGNAL, + 4 => VmxExitReasonBasic::SIPI, + 5 => VmxExitReasonBasic::IO_SMI, + 6 => VmxExitReasonBasic::OTHER_SMI, + 7 => VmxExitReasonBasic::INTERRUPT_WINDOW, + 8 => VmxExitReasonBasic::NMI_WINDOW, + 9 => VmxExitReasonBasic::TASK_SWITCH, + 10 => VmxExitReasonBasic::CPUID, + 11 => VmxExitReasonBasic::GETSEC, + 12 => VmxExitReasonBasic::HLT, + 13 => VmxExitReasonBasic::INVD, + 14 => VmxExitReasonBasic::INVLPG, + 15 => VmxExitReasonBasic::RDPMC, + 16 => VmxExitReasonBasic::RDTSC, + 17 => VmxExitReasonBasic::RSM, + 18 => VmxExitReasonBasic::VMCALL, + 19 => VmxExitReasonBasic::VMCLEAR, + 20 => VmxExitReasonBasic::VMLAUNCH, + 21 => VmxExitReasonBasic::VMPTRLD, + 22 => VmxExitReasonBasic::VMPTRST, + 23 => VmxExitReasonBasic::VMREAD, + 24 => VmxExitReasonBasic::VMRESUME, + 25 => VmxExitReasonBasic::VMWRITE, + 26 => VmxExitReasonBasic::VMXOFF, + 27 => VmxExitReasonBasic::VMXON, + 28 => VmxExitReasonBasic::CR_ACCESS, + 29 => VmxExitReasonBasic::DR_ACCESS, + 30 => VmxExitReasonBasic::IO_INSTRUCTION, + 31 => VmxExitReasonBasic::RDMSR, + 32 => VmxExitReasonBasic::WRMSR, + 33 => VmxExitReasonBasic::VM_ENTRY_FAILURE_INVALID_GUEST_STATE, + 34 => VmxExitReasonBasic::VM_ENTRY_FAILURE_MSR_LOADING, + 36 => VmxExitReasonBasic::MWAIT, + 37 => VmxExitReasonBasic::MONITOR_TRAP_FLAG, + 39 => VmxExitReasonBasic::MONITOR, + 40 => VmxExitReasonBasic::PAUSE, + 41 => VmxExitReasonBasic::VM_ENTRY_FAILURE_MACHINE_CHECK_EVENT, + 43 => VmxExitReasonBasic::TPR_BELOW_THRESHOLD, + 44 => VmxExitReasonBasic::APIC_ACCESS, + 45 => VmxExitReasonBasic::VIRTUALIZED_EOI, + 46 => VmxExitReasonBasic::ACCESS_GDTR_OR_IDTR, + 47 => VmxExitReasonBasic::ACCESS_LDTR_OR_TR, + 48 => VmxExitReasonBasic::EPT_VIOLATION, + 49 => VmxExitReasonBasic::EPT_MISCONFIG, + 50 => VmxExitReasonBasic::INVEPT, + 51 => VmxExitReasonBasic::RDTSCP, + 52 => VmxExitReasonBasic::VMX_PREEMPTION_TIMER_EXPIRED, + 53 => VmxExitReasonBasic::INVVPID, + 54 => VmxExitReasonBasic::WBINVD, + 55 => VmxExitReasonBasic::XSETBV, + 56 => VmxExitReasonBasic::APIC_WRITE, + 57 => VmxExitReasonBasic::RDRAND, + 58 => VmxExitReasonBasic::INVPCID, + 59 => VmxExitReasonBasic::VMFUNC, + 60 => VmxExitReasonBasic::ENCLS, + 61 => VmxExitReasonBasic::RDSEED, + 62 => VmxExitReasonBasic::PML_FULL, + 63 => VmxExitReasonBasic::XSAVES, + 64 => VmxExitReasonBasic::XRSTORS, + + 67 => VmxExitReasonBasic::UMWAIT, + 68 => VmxExitReasonBasic::TPAUSE, + 74 => VmxExitReasonBasic::BUS_LOCK, + 75 => VmxExitReasonBasic::NOTIFY, + _ => VmxExitReasonBasic::UNKNOWN, + } + } +} + +#[derive(Debug, PartialEq)] +#[allow(dead_code)] +pub enum ExitFastpathCompletion { + None, + ReenterGuest, + ExitHandled, +} + +pub struct VmxExitHandler; + +impl VmxExitHandler { + pub fn handle( + vcpu: &mut VirtCpu, + basic: VmxExitReasonBasic, + ) -> Option> { + match basic { + VmxExitReasonBasic::IO_INSTRUCTION => { + return Some(Self::handle_io(vcpu)); + } + _ => { + return None; + } + } + } + + fn handle_io(vcpu: &mut VirtCpu) -> Result<(), SystemError> { + todo!(); + } +} diff --git a/kernel/src/arch/x86_64/vm/vmx/mod.rs b/kernel/src/arch/x86_64/vm/vmx/mod.rs index fe6b1917e..f210ae233 100644 --- a/kernel/src/arch/x86_64/vm/vmx/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/mod.rs @@ -1,17 +1,22 @@ +use core::intrinsics::likely; use core::intrinsics::unlikely; use core::sync::atomic::{AtomicBool, Ordering}; +use crate::arch::process::table::USER_DS; use crate::arch::vm::mmu::KvmMmu; +use crate::arch::vm::uapi::kvm_exit; use crate::arch::vm::uapi::{ AC_VECTOR, BP_VECTOR, DB_VECTOR, GP_VECTOR, MC_VECTOR, NM_VECTOR, PF_VECTOR, UD_VECTOR, }; +use crate::arch::vm::vmx::vmcs::VmcsIntrHelper; use crate::libs::spinlock::SpinLockGuard; +use crate::process::ProcessManager; use crate::virt::vm::kvm_host::vcpu::GuestDebug; use crate::{ arch::{ vm::{ asm::KvmX86Asm, - kvm_host::{vcpu::VirCpuRequest, X86KvmArch}, + kvm_host::{vcpu::VirtCpuRequest, X86KvmArch}, vmx::vmcs::vmx_area, }, CurrentIrqArch, MMArch, VirtCpuArch, @@ -27,27 +32,26 @@ use crate::{ virt::vm::{kvm_dev::kvm_init, kvm_host::vcpu::VirtCpu, user_api::UapiKvmSegment}, }; use alloc::{alloc::Global, boxed::Box, collections::LinkedList, sync::Arc, vec::Vec}; +use asm::VMX_EPTP_AD_ENABLE_BIT; +use asm::VMX_EPTP_MT_WB; +use asm::VMX_EPTP_PWL_4; +use asm::VMX_EPTP_PWL_5; use bitfield_struct::bitfield; -use bitmap::{traits::BitMapOps, AllocBitmap, StaticBitmap}; +use bitmap::{traits::BitMapOps, AllocBitmap}; use raw_cpuid::CpuId; use system_error::SystemError; use x86::controlregs::{cr2, cr2_write}; -use x86::irq::PageFaultError; +use x86::dtables::ldtr; use x86::msr::wrmsr; +use x86::segmentation::load_ds; +use x86::segmentation::load_es; +use x86::segmentation::{ds, es, fs, gs}; +use x86::vmx::vmcs::ro; use x86::{ bits64::rflags::RFlags, - controlregs::{cr0, cr3, cr4, Cr0, Cr4, Xcr0}, - msr::{ - self, rdmsr, IA32_CSTAR, IA32_EFER, IA32_FMASK, IA32_FS_BASE, IA32_GS_BASE, - IA32_KERNEL_GSBASE, IA32_LSTAR, IA32_SMBASE, IA32_STAR, IA32_SYSENTER_CS, - IA32_SYSENTER_EIP, IA32_SYSENTER_ESP, IA32_TIME_STAMP_COUNTER, IA32_TSC_AUX, - IA32_VMX_BASIC, IA32_VMX_EPT_VPID_CAP, IA32_VMX_MISC, IA32_VMX_VMFUNC, - MSR_CORE_C1_RESIDENCY, MSR_CORE_C3_RESIDENCY, MSR_CORE_C6_RESIDENCY, MSR_CORE_C7_RESIDENCY, - MSR_IA32_ADDR0_START, MSR_IA32_ADDR3_END, MSR_IA32_CR3_MATCH, MSR_IA32_RTIT_OUTPUT_BASE, - MSR_IA32_RTIT_OUTPUT_MASK_PTRS, MSR_IA32_RTIT_STATUS, MSR_IA32_TSX_CTRL, - MSR_LASTBRANCH_TOS, MSR_LBR_SELECT, - }, - segmentation::{self, cs}, + controlregs::{cr0, cr4, Cr0, Cr4, Xcr0}, + msr::{self, rdmsr}, + segmentation::{self}, vmx::vmcs::{ control::{ self, EntryControls, ExitControls, PinbasedControls, PrimaryControls, SecondaryControls, @@ -56,7 +60,6 @@ use x86::{ }, }; use x86_64::registers::control::Cr3; -use x86_64::structures::idt::PageFaultErrorCode; use x86_64::{instructions::tables::sidt, registers::control::EferFlags}; use crate::{ @@ -69,6 +72,9 @@ use crate::{ virt::vm::kvm_host::Vm, }; +use self::exit::ExitFastpathCompletion; +use self::exit::VmxExitReason; +use self::exit::VmxExitReasonBasic; use self::vmcs::LoadedVmcs; use self::{ capabilities::{ProcessorTraceMode, VmcsConfig, VmxCapability}, @@ -79,19 +85,20 @@ use self::{ }, }; +use super::asm::IntrInfo; use super::asm::SegmentCacheField; use super::kvm_host::RMODE_TSS_SIZE; use super::x86_kvm_ops; use super::{ asm::{VcpuSegment, VmxAsm, VmxMsrEntry}, init_kvm_arch, - kvm_host::{ - vcpu, KvmFunc, KvmInitFunc, KvmIrqChipMode, KvmReg, MsrFilterType, NotifyVmExitFlags, - }, + kvm_host::{KvmFunc, KvmInitFunc, KvmIrqChipMode, KvmReg, MsrFilterType, NotifyVmExitFlags}, x86_kvm_manager, KvmArchManager, }; +pub mod asm; pub mod capabilities; +pub mod exit; pub mod vmcs; extern "C" { @@ -278,6 +285,7 @@ impl KvmInitFunc for VmxKvmInitFunc { init_vmx(vmx_init); self.setup_per_cpu(); + kwarn!("hardware setup finish"); Ok(()) } @@ -344,8 +352,11 @@ impl VmxKvmFunc { vmx.loaded_vmcs.lock().cpu = cpu; let id = vmx.loaded_vmcs.lock().vmcs.lock().revision_id(); - kdebug!("revision_id {id}"); - vcpu.request(VirCpuRequest::KVM_REQ_TLB_FLUSH); + kdebug!( + "revision_id {id} req {:?}", + VirtCpuRequest::KVM_REQ_TLB_FLUSH + ); + vcpu.request(VirtCpuRequest::KVM_REQ_TLB_FLUSH); VmxAsm::vmx_vmwrite( host::TR_BASE, @@ -358,7 +369,9 @@ impl VmxKvmFunc { VmxAsm::vmx_vmwrite(host::GDTR_BASE, pseudo_descriptpr.base as usize as u64); - VmxAsm::vmx_vmwrite(host::IA32_SYSENTER_ESP, unsafe { rdmsr(IA32_SYSENTER_ESP) }); + VmxAsm::vmx_vmwrite(host::IA32_SYSENTER_ESP, unsafe { + rdmsr(msr::IA32_SYSENTER_ESP) + }); } } @@ -489,7 +502,7 @@ impl KvmFunc for VmxKvmFunc { } } - fn apicv_pre_state_restore(&self, vcpu: &mut VirtCpu) { + fn apicv_pre_state_restore(&self, _vcpu: &mut VirtCpu) { // https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/vmx/vmx.c#6924 // TODO: pi // todo!() @@ -604,9 +617,8 @@ impl KvmFunc for VmxKvmFunc { _ => { let uret_msr = vmx.find_uret_msr(msr_index); - if let Some(msr) = uret_msr { - let mut tmp_msr = VmxUretMsr::from(*msr); - vmx.set_guest_uret_msr(&mut tmp_msr, data)?; + if let Some((idx, _msr)) = uret_msr { + vmx.set_guest_uret_msr(idx, data)?; vmx.set_uret_msr(msr_index, data); } else { vcpu.arch.set_msr_common(&msr); @@ -674,7 +686,7 @@ impl KvmFunc for VmxKvmFunc { VmxAsm::vmx_vmwrite(control::VMENTRY_INTERRUPTION_INFO_FIELD, 0); - vcpu.request(VirCpuRequest::KVM_REQ_APIC_PAGE_RELOAD); + vcpu.request(VirtCpuRequest::MAKE_KVM_REQ_APIC_PAGE_RELOAD); vmx_info().vpid_sync_context(vcpu.vmx().vpid); @@ -702,7 +714,6 @@ impl KvmFunc for VmxKvmFunc { VmxAsm::vmx_vmwrite(guest::RFLAGS, rflags.bits()); if (old_rflags ^ vmx.rflags).contains(RFlags::FLAGS_VM) { - drop(vmx); let emulation_required = vmx_info().emulation_required(vcpu); vcpu.vmx_mut().emulation_required = emulation_required; } @@ -880,12 +891,12 @@ impl KvmFunc for VmxKvmFunc { fn has_emulated_msr(&self, msr: u32) -> bool { match msr { - IA32_SMBASE => { + msr::IA32_SMBASE => { return vmx_info().enable_unrestricted_guest || vmx_info().emulate_invalid_guest_state; } - IA32_VMX_BASIC..=IA32_VMX_VMFUNC => { + msr::IA32_VMX_BASIC..=msr::IA32_VMX_VMFUNC => { return vmx_info().nested; } @@ -902,7 +913,7 @@ impl KvmFunc for VmxKvmFunc { fn get_msr_feature(&self, msr: &mut super::asm::VmxMsrEntry) -> bool { match msr.index { - IA32_VMX_BASIC..=IA32_VMX_VMFUNC => { + msr::IA32_VMX_BASIC..=msr::IA32_VMX_VMFUNC => { if !vmx_info().nested { return false; } @@ -988,7 +999,7 @@ impl KvmFunc for VmxKvmFunc { VmxAsm::vmx_vmwrite(guest::GDTR_BASE, dt.base as usize as u64); } - fn is_vaild_cr0(&self, vcpu: &VirtCpu, cr0: Cr0) -> bool { + fn is_vaild_cr0(&self, vcpu: &VirtCpu, _cr0: Cr0) -> bool { if vcpu.arch.is_guest_mode() { todo!() } @@ -1008,11 +1019,11 @@ impl KvmFunc for VmxKvmFunc { return true; } - fn post_set_cr3(&self, vcpu: &VirtCpu, cr3: u64) { - // Nothing + fn post_set_cr3(&self, _vcpu: &VirtCpu, _cr3: u64) { + // Do Nothing } - fn vcpu_run(&self, vcpu: &mut VirtCpu) { + fn vcpu_run(&self, vcpu: &mut VirtCpu) -> ExitFastpathCompletion { if unlikely(vmx_info().enable_vnmi && vcpu.vmx().loaded_vmcs().soft_vnmi_blocked) { todo!() } @@ -1060,12 +1071,168 @@ impl KvmFunc for VmxKvmFunc { // TODO: atomic_switch_perf_msrs if vmx_info().enable_preemption_timer { - todo!() + // todo!() + kwarn!("vmx_update_hv_timer TODO"); } Vmx::vmx_vcpu_enter_exit(vcpu, vcpu.vmx().vmx_vcpu_run_flags()); - todo!() + unsafe { + load_ds(USER_DS); + load_es(USER_DS); + }; + + // TODO: pt_guest_exit + + // TODO: kvm_load_host_xsave_state + + if vcpu.arch.is_guest_mode() { + todo!() + } + + if unlikely(vcpu.vmx().fail != 0) { + return ExitFastpathCompletion::None; + } + + if unlikely( + vcpu.vmx().exit_reason.basic() + == VmxExitReasonBasic::VM_ENTRY_FAILURE_MACHINE_CHECK_EVENT as u16, + ) { + todo!() + } + + if unlikely(vcpu.vmx().exit_reason.failed_vmentry()) { + return ExitFastpathCompletion::None; + } + + vcpu.vmx().loaded_vmcs().launched = true; + + // TODO: 处理中断 + + if vcpu.arch.is_guest_mode() { + return ExitFastpathCompletion::None; + } + + return Vmx::vmx_exit_handlers_fastpath(vcpu); + } + + fn prepare_switch_to_guest(&self, vcpu: &mut VirtCpu) { + // let cpu = smp_get_processor_id(); + let vmx = vcpu.vmx_mut(); + vmx.req_immediate_exit = false; + + if !vmx.guest_uret_msrs_loaded { + vmx.guest_uret_msrs_loaded = true; + + for (idx, msr) in vmx.guest_uret_msrs.iter().enumerate() { + if msr.load_into_hardware { + x86_kvm_manager().kvm_set_user_return_msr(idx, msr.data, msr.mask); + } + } + } + + // TODO: nested + + if vmx.guest_state_loaded { + return; + } + + // fixme: 这里读的是当前cpu的gsbase,正确安全做法应该为将gsbase设置为percpu变量 + let gs_base = unsafe { rdmsr(msr::IA32_KERNEL_GSBASE) }; + + let current = ProcessManager::current_pcb(); + let mut pcb_arch = current.arch_info_irqsave(); + + let fs_sel = fs().bits(); + let gs_sel = gs().bits(); + + unsafe { + pcb_arch.save_fsbase(); + pcb_arch.save_gsbase(); + } + + let fs_base = pcb_arch.fsbase(); + vmx.msr_host_kernel_gs_base = pcb_arch.gsbase() as u64; + + unsafe { wrmsr(msr::IA32_KERNEL_GSBASE, vmx.msr_guest_kernel_gs_base) }; + + let mut loaded_vmcs = vmx.loaded_vmcs(); + let host_state = &mut loaded_vmcs.host_state; + host_state.ldt_sel = unsafe { ldtr() }.bits(); + + host_state.ds_sel = ds().bits(); + host_state.es_sel = es().bits(); + + host_state.set_host_fsgs(fs_sel, gs_sel, fs_base, gs_base as usize); + drop(loaded_vmcs); + + vmx.guest_state_loaded = true; + } + + fn flush_tlb_all(&self, vcpu: &mut VirtCpu) { + if vmx_info().enable_ept { + VmxAsm::ept_sync_global(); + } else { + if vmx_info().has_invvpid_global() { + VmxAsm::sync_vcpu_global(); + } else { + VmxAsm::sync_vcpu_single(vcpu.vmx().vpid); + // TODO: 嵌套:VmxAsm::sync_vcpu_single(vcpu.vmx().nested.vpid02); + } + } + } + + fn handle_exit_irqoff(&self, vcpu: &mut VirtCpu) { + if vcpu.vmx().emulation_required { + return; + } + + let basic = VmxExitReasonBasic::from(vcpu.vmx().exit_reason.basic()); + + if basic == VmxExitReasonBasic::EXTERNAL_INTERRUPT { + todo!() + } else if basic == VmxExitReasonBasic::EXCEPTION_OR_NMI { + todo!() + } + } + + fn handle_exit( + &self, + vcpu: &mut VirtCpu, + fastpath: ExitFastpathCompletion, + ) -> Result<(), SystemError> { + let r = vmx_info().vmx_handle_exit(vcpu, fastpath); + + if vcpu.vmx().exit_reason.bus_lock_detected() { + todo!() + } + + r + } + + fn load_mmu_pgd(&self, vcpu: &mut VirtCpu, _vm: &Vm, root_hpa: u64, root_level: u32) { + let guest_cr3; + let eptp; + + if vmx_info().enable_ept { + eptp = vmx_info().construct_eptp(vcpu, root_hpa, root_level); + + VmxAsm::vmx_vmwrite(control::EPTP_FULL, eptp); + + if !vmx_info().enable_unrestricted_guest + && !vcpu.arch.cr0.contains(Cr0::CR0_ENABLE_PAGING) + { + todo!() + } else if vcpu.arch.is_register_dirty(KvmReg::VcpuExregCr3) { + guest_cr3 = vcpu.arch.cr3; + } else { + return; + } + } else { + todo!(); + } + + VmxAsm::vmx_vmwrite(guest::CR3, guest_cr3); } } @@ -1168,7 +1335,9 @@ impl Vmx { * an error that should result in #GP in the guest, unless userspace * handles it. */ + #[allow(dead_code)] pub const KVM_MSR_RET_INVALID: u32 = 2; /* in-kernel MSR emulation #GP condition */ + #[allow(dead_code)] pub const KVM_MSR_RET_FILTERED: u32 = 3; /* #GP due to userspace MSR filter */ pub const MAX_POSSIBLE_PASSTHROUGH_MSRS: usize = 16; @@ -1177,19 +1346,19 @@ impl Vmx { 0x48, // MSR_IA32_SPEC_CTRL 0x49, // MSR_IA32_PRED_CMD 0x10b, // MSR_IA32_FLUSH_CMD - IA32_TIME_STAMP_COUNTER, - IA32_FS_BASE, - IA32_GS_BASE, - IA32_KERNEL_GSBASE, + msr::IA32_TIME_STAMP_COUNTER, + msr::IA32_FS_BASE, + msr::IA32_GS_BASE, + msr::IA32_KERNEL_GSBASE, 0x1c4, // MSR_IA32_XFD 0x1c5, // MSR_IA32_XFD_ERR - IA32_SYSENTER_CS, - IA32_SYSENTER_ESP, - IA32_SYSENTER_EIP, - MSR_CORE_C1_RESIDENCY, - MSR_CORE_C3_RESIDENCY, - MSR_CORE_C6_RESIDENCY, - MSR_CORE_C7_RESIDENCY, + msr::IA32_SYSENTER_CS, + msr::IA32_SYSENTER_ESP, + msr::IA32_SYSENTER_EIP, + msr::MSR_CORE_C1_RESIDENCY, + msr::MSR_CORE_C3_RESIDENCY, + msr::MSR_CORE_C6_RESIDENCY, + msr::MSR_CORE_C7_RESIDENCY, ]; /// ### 查看CPU是否支持虚拟化 @@ -1214,12 +1383,12 @@ impl Vmx { #[inline(never)] pub fn set_up_user_return_msrs() { const VMX_URET_MSRS_LIST: &'static [u32] = &[ - IA32_FMASK, - IA32_LSTAR, - IA32_CSTAR, - IA32_EFER, - IA32_TSC_AUX, - IA32_STAR, + msr::IA32_FMASK, + msr::IA32_LSTAR, + msr::IA32_CSTAR, + msr::IA32_EFER, + msr::IA32_TSC_AUX, + msr::IA32_STAR, // 这个寄存器会出错<,先注释掉 // MSR_IA32_TSX_CTRL, ]; @@ -1274,7 +1443,7 @@ impl Vmx { ) } - let cap = unsafe { rdmsr(IA32_VMX_EPT_VPID_CAP) }; + let cap = unsafe { rdmsr(msr::IA32_VMX_EPT_VPID_CAP) }; vmx_cap.set_val_from_msr_val(cap); // 不支持ept但是读取到了值 @@ -1337,7 +1506,7 @@ impl Vmx { return Err(SystemError::EIO); } - let basic = unsafe { rdmsr(IA32_VMX_BASIC) }; + let basic = unsafe { rdmsr(msr::IA32_VMX_BASIC) }; let vmx_msr_high = (basic >> 32) as u32; let vmx_msr_low = basic as u32; @@ -1351,7 +1520,7 @@ impl Vmx { return Err(SystemError::EIO); } - let misc_msr = unsafe { rdmsr(IA32_VMX_MISC) }; + let misc_msr = unsafe { rdmsr(msr::IA32_VMX_MISC) }; vmcs_config.size = vmx_msr_high & 0x1fff; vmcs_config.basic_cap = vmx_msr_high & !0x1fff; @@ -1417,15 +1586,15 @@ impl Vmx { // x2Apic msr寄存器 return true; } - MSR_IA32_RTIT_STATUS - | MSR_IA32_RTIT_OUTPUT_BASE - | MSR_IA32_RTIT_OUTPUT_MASK_PTRS - | MSR_IA32_CR3_MATCH - | MSR_LBR_SELECT - | MSR_LASTBRANCH_TOS => { + msr::MSR_IA32_RTIT_STATUS + | msr::MSR_IA32_RTIT_OUTPUT_BASE + | msr::MSR_IA32_RTIT_OUTPUT_MASK_PTRS + | msr::MSR_IA32_CR3_MATCH + | msr::MSR_LBR_SELECT + | msr::MSR_LASTBRANCH_TOS => { return true; } - MSR_IA32_ADDR0_START..MSR_IA32_ADDR3_END => { + msr::MSR_IA32_ADDR0_START..msr::MSR_IA32_ADDR3_END => { return true; } 0xdc0..0xddf => { @@ -1481,6 +1650,24 @@ impl Vmx { *L1TF_VMX_MITIGATION.write() = VmxL1dFlushState::FlushNotRequired; } + pub fn construct_eptp(&self, vcpu: &mut VirtCpu, root_hpa: u64, root_level: u32) -> u64 { + let mut eptp = VMX_EPTP_MT_WB; + + eptp |= if root_level == 5 { + VMX_EPTP_PWL_5 + } else { + VMX_EPTP_PWL_4 + }; + + if self.enable_ept_ad && !vcpu.arch.is_guest_mode() { + eptp |= VMX_EPTP_AD_ENABLE_BIT; + } + + eptp |= root_hpa; + + return eptp; + } + fn vmx_reset_vcpu(&mut self, vcpu: &mut VirtCpu, vm: &Vm) { self.init_vmcs(vcpu, vm); @@ -1508,6 +1695,10 @@ impl Vmx { } if vmx_info().has_msr_bitmap() { + kdebug!( + "msr_bitmap addr 0x{:x}", + vcpu.vmx().vmcs01.lock().msr_bitmap.phys_addr() as u64 + ); VmxAsm::vmx_vmwrite( control::MSR_BITMAPS_ADDR_FULL, vcpu.vmx().vmcs01.lock().msr_bitmap.phys_addr() as u64, @@ -1680,6 +1871,349 @@ impl Vmx { self.setup_uret_msrs(vcpu); } + /// 打印VMCS信息用于debug + pub fn dump_vmcs(&self, vcpu: &VirtCpu) { + let vmentry_ctl = + EntryControls::from_bits_truncate(self.vmread(control::VMENTRY_CONTROLS) as u32); + + let vmexit_ctl = + ExitControls::from_bits_truncate(self.vmread(control::VMEXIT_CONTROLS) as u32); + + let cpu_based_exec_ctl = PrimaryControls::from_bits_truncate( + self.vmread(control::PRIMARY_PROCBASED_EXEC_CONTROLS) as u32, + ); + + let pin_based_exec_ctl = PinbasedControls::from_bits_truncate( + self.vmread(control::PINBASED_EXEC_CONTROLS) as u32, + ); + + // let cr4 = Cr4::from_bits_truncate(self.vmread(guest::CR4) as usize); + + let secondary_exec_control = if self.has_sceondary_exec_ctrls() { + SecondaryControls::from_bits_truncate( + self.vmread(control::SECONDARY_PROCBASED_EXEC_CONTROLS) as u32, + ) + } else { + SecondaryControls::empty() + }; + + if self.has_tertiary_exec_ctrls() { + todo!() + } + + kerror!( + "VMCS addr: 0x{:x}, last attempted VM-entry on CPU {:?}", + vcpu.vmx().loaded_vmcs().vmcs.lock().as_ref() as *const _ as usize, + vcpu.arch.last_vmentry_cpu + ); + + kerror!("--- GUEST STATE ---"); + kerror!( + "CR0: actual = 0x{:x}, shadow = 0x{:x}, gh_mask = 0x{:x}", + self.vmread(guest::CR0), + self.vmread(control::CR0_READ_SHADOW), + self.vmread(control::CR0_GUEST_HOST_MASK) + ); + kerror!( + "CR4: actual = 0x{:x}, shadow = 0x{:x}, gh_mask = 0x{:x}", + self.vmread(guest::CR4), + self.vmread(control::CR4_READ_SHADOW), + self.vmread(control::CR4_GUEST_HOST_MASK) + ); + kerror!("CR3: actual = 0x{:x}", self.vmread(guest::CR3)); + + if self.has_ept() { + kerror!( + "PDPTR0 = 0x{:x}, PDPTR1 = 0x{:x}", + self.vmread(guest::PDPTE0_FULL), + self.vmread(guest::PDPTE1_FULL) + ); + kerror!( + "PDPTR2 = 0x{:x}, PDPTR3 = 0x{:x}", + self.vmread(guest::PDPTE2_FULL), + self.vmread(guest::PDPTE3_FULL) + ); + } + kerror!( + "RSP = 0x{:x}, RIP = 0x{:x}", + self.vmread(guest::RSP), + self.vmread(guest::RIP) + ); + kerror!( + "RFLAGS = 0x{:x}, DR7 = 0x{:x}", + self.vmread(guest::RFLAGS), + self.vmread(guest::DR7) + ); + kerror!( + "Sysenter RSP = 0x{:x}, CS:RIP = 0x{:x}:0x{:x}", + self.vmread(guest::IA32_SYSENTER_ESP), + self.vmread(guest::IA32_SYSENTER_CS), + self.vmread(guest::IA32_SYSENTER_EIP), + ); + + self.dump_sel("CS: ", guest::CS_SELECTOR); + self.dump_sel("DS: ", guest::DS_SELECTOR); + self.dump_sel("SS: ", guest::SS_SELECTOR); + self.dump_sel("FS: ", guest::FS_SELECTOR); + self.dump_sel("GS: ", guest::GS_SELECTOR); + + self.dump_dtsel("GDTR: ", guest::GDTR_LIMIT); + self.dump_sel("LDTR: ", guest::LDTR_SELECTOR); + self.dump_dtsel("IDTR: ", guest::IDTR_LIMIT); + self.dump_sel("TR: ", guest::TR_SELECTOR); + + let efer_slot = vcpu + .vmx() + .msr_autoload + .guest + .find_loadstore_msr_slot(msr::IA32_EFER); + + if vmentry_ctl.contains(EntryControls::LOAD_IA32_EFER) { + kerror!("EFER = 0x{:x}", self.vmread(guest::IA32_EFER_FULL)); + } else if let Some(slot) = efer_slot { + kerror!( + "EFER = 0x{:x} (autoload)", + vcpu.vmx().msr_autoload.guest.val[slot].data + ); + } else if vmentry_ctl.contains(EntryControls::IA32E_MODE_GUEST) { + kerror!( + "EFER = 0x{:x} (effective)", + vcpu.arch.efer | (EferFlags::LONG_MODE_ACTIVE | EferFlags::LONG_MODE_ENABLE) + ); + } else { + kerror!( + "EFER = 0x{:x} (effective)", + vcpu.arch.efer & !(EferFlags::LONG_MODE_ACTIVE | EferFlags::LONG_MODE_ENABLE) + ); + } + + if vmentry_ctl.contains(EntryControls::LOAD_IA32_PAT) { + kerror!("PAT = 0x{:x}", self.vmread(guest::IA32_PAT_FULL)); + } + + kerror!( + "DebugCtl = 0x{:x}, DebugExceptions = 0x{:x}", + self.vmread(guest::IA32_DEBUGCTL_FULL), + self.vmread(guest::PENDING_DBG_EXCEPTIONS) + ); + + if self.has_load_perf_global_ctrl() + && vmentry_ctl.contains(EntryControls::LOAD_IA32_PERF_GLOBAL_CTRL) + { + kerror!( + "PerfGlobCtl = 0x{:x}", + self.vmread(guest::IA32_PERF_GLOBAL_CTRL_FULL) + ); + } + + if vmentry_ctl.contains(EntryControls::LOAD_IA32_BNDCFGS) { + kerror!("BndCfgS = 0x{:x}", self.vmread(guest::IA32_BNDCFGS_FULL)); + } + + kerror!( + "Interruptibility = 0x{:x}, ActivityState = 0x{:x}", + self.vmread(guest::INTERRUPT_STATUS), + self.vmread(guest::ACTIVITY_STATE) + ); + + if secondary_exec_control.contains(SecondaryControls::VIRTUAL_INTERRUPT_DELIVERY) { + kerror!( + "InterruptStatus = 0x{:x}", + self.vmread(guest::INTERRUPT_STATUS) + ); + } + + if self.vmread(control::VMENTRY_MSR_LOAD_COUNT) > 0 { + self.dump_msrs("guest autoload", &vcpu.vmx().msr_autoload.guest); + } + if self.vmread(control::VMEXIT_MSR_LOAD_COUNT) > 0 { + self.dump_msrs("guest autostore", &vcpu.vmx().msr_autostore); + } + + kerror!("\n--- HOST STATE ---"); + kerror!( + "RIP = 0x{:x}, RSP = 0x{:x}", + self.vmread(host::RIP), + self.vmread(host::RSP) + ); + kerror!( + "CS = 0x{:x}, SS = 0x{:x}, DS = 0x{:x}, ES = 0x{:x}, FS = 0x{:x}, GS = 0x{:x}, TR = 0x{:x}", + self.vmread(host::CS_SELECTOR), + self.vmread(host::SS_SELECTOR), + self.vmread(host::DS_SELECTOR), + self.vmread(host::ES_SELECTOR), + self.vmread(host::FS_SELECTOR), + self.vmread(host::GS_SELECTOR), + self.vmread(host::TR_SELECTOR) + ); + kerror!( + "FSBase = 0x{:x}, GSBase = 0x{:x}, TRBase = 0x{:x}", + self.vmread(host::FS_BASE), + self.vmread(host::GS_BASE), + self.vmread(host::TR_BASE), + ); + kerror!( + "GDTBase = 0x{:x}, IDTBase = 0x{:x}", + self.vmread(host::GDTR_BASE), + self.vmread(host::IDTR_BASE), + ); + kerror!( + "CR0 = 0x{:x}, CR3 = 0x{:x}, CR4 = 0x{:x}", + self.vmread(host::CR0), + self.vmread(host::CR3), + self.vmread(host::CR4), + ); + kerror!( + "Sysenter RSP = 0x{:x}, CS:RIP=0x{:x}:0x{:x}", + self.vmread(host::IA32_SYSENTER_ESP), + self.vmread(host::IA32_SYSENTER_CS), + self.vmread(host::IA32_SYSENTER_EIP), + ); + + if vmexit_ctl.contains(ExitControls::LOAD_IA32_EFER) { + kerror!("EFER = 0x{:x}", self.vmread(host::IA32_EFER_FULL)); + } + + if vmexit_ctl.contains(ExitControls::LOAD_IA32_PAT) { + kerror!("PAT = 0x{:x}", self.vmread(host::IA32_PAT_FULL)); + } + + if self.has_load_perf_global_ctrl() + && vmexit_ctl.contains(ExitControls::LOAD_IA32_PERF_GLOBAL_CTRL) + { + kerror!( + "PerfGlobCtl = 0x{:x}", + self.vmread(host::IA32_PERF_GLOBAL_CTRL_FULL) + ); + } + + if self.vmread(control::VMEXIT_MSR_LOAD_COUNT) > 0 { + self.dump_msrs("host autoload", &vcpu.vmx().msr_autoload.host); + } + + kerror!("\n--- CONTROL STATE ---"); + kerror!( + "\nCPUBased = {:?},\nSecondaryExec = 0x{:x},\nTertiaryExec = 0(Unused)", + cpu_based_exec_ctl, + secondary_exec_control, + ); + kerror!( + "\nPinBased = {:?},\nEntryControls = {:?},\nExitControls = {:?}", + pin_based_exec_ctl, + vmentry_ctl, + vmexit_ctl, + ); + kerror!( + "ExceptionBitmap = 0x{:x}, PFECmask = 0x{:x}, PFECmatch = 0x{:x}", + self.vmread(control::EXCEPTION_BITMAP), + self.vmread(control::PAGE_FAULT_ERR_CODE_MASK), + self.vmread(control::PAGE_FAULT_ERR_CODE_MATCH), + ); + kerror!( + "VMEntry: intr_info = 0x{:x}, errcode = 0x{:x}, ilen = 0x{:x}", + self.vmread(control::VMENTRY_INTERRUPTION_INFO_FIELD), + self.vmread(control::VMENTRY_EXCEPTION_ERR_CODE), + self.vmread(control::VMENTRY_INSTRUCTION_LEN), + ); + kerror!( + "VMExit: intr_info = 0x{:x}, errcode = 0x{:x}, ilen = 0x{:x}", + self.vmread(ro::VMEXIT_INSTRUCTION_INFO), + self.vmread(ro::VMEXIT_INTERRUPTION_ERR_CODE), + self.vmread(ro::VMEXIT_INSTRUCTION_LEN), + ); + kerror!( + " reason = 0x{:x}, qualification = 0x{:x}", + self.vmread(ro::EXIT_REASON), + self.vmread(ro::EXIT_QUALIFICATION), + ); + kerror!( + "IDTVectoring: info = 0x{:x}, errcode = 0x{:x}", + self.vmread(ro::IDT_VECTORING_INFO), + self.vmread(ro::IDT_VECTORING_ERR_CODE), + ); + kerror!("TSC Offset = 0x{:x}", self.vmread(control::TSC_OFFSET_FULL)); + + if secondary_exec_control.contains(SecondaryControls::USE_TSC_SCALING) { + kerror!( + "TSC Multiplier = 0x{:x}", + self.vmread(control::TSC_MULTIPLIER_FULL) + ); + } + + if cpu_based_exec_ctl.contains(PrimaryControls::USE_TPR_SHADOW) { + if secondary_exec_control.contains(SecondaryControls::VIRTUAL_INTERRUPT_DELIVERY) { + let status = self.vmread(guest::INTERRUPT_STATUS); + kerror!("SVI|RVI = 0x{:x}|0x{:x}", status >> 8, status & 0xff); + } + + kerror!( + "TPR Threshold = 0x{:x}", + self.vmread(control::TPR_THRESHOLD) + ); + if secondary_exec_control.contains(SecondaryControls::VIRTUALIZE_APIC) { + kerror!( + "APIC-access addr = 0x{:x}", + self.vmread(control::APIC_ACCESS_ADDR_FULL) + ); + } + kerror!( + "virt-APIC addr = 0x{:x}", + self.vmread(control::VIRT_APIC_ADDR_FULL) + ); + } + + if pin_based_exec_ctl.contains(PinbasedControls::POSTED_INTERRUPTS) { + kerror!( + "PostedIntrVec = 0x{:x}", + self.vmread(control::POSTED_INTERRUPT_NOTIFICATION_VECTOR) + ); + } + + if secondary_exec_control.contains(SecondaryControls::ENABLE_EPT) { + kerror!("EPT pointer = 0x{:x}", self.vmread(control::EPTP_FULL)); + } + if secondary_exec_control.contains(SecondaryControls::PAUSE_LOOP_EXITING) { + kerror!( + "PLE Gap = 0x{:x}, Window = 0x{:x}", + self.vmread(control::PLE_GAP), + self.vmread(control::PLE_WINDOW) + ); + } + if secondary_exec_control.contains(SecondaryControls::ENABLE_VPID) { + kerror!("Virtual processor ID = 0x{:x}", self.vmread(control::VPID)); + } + } + + pub fn dump_sel(&self, name: &'static str, sel: u32) { + kerror!( + "{name} sel = 0x{:x}, attr = 0x{:x}, limit = 0x{:x}, base = 0x{:x}", + self.vmread(sel), + self.vmread(sel + guest::ES_ACCESS_RIGHTS - guest::ES_SELECTOR), + self.vmread(sel + guest::ES_LIMIT - guest::ES_SELECTOR), + self.vmread(sel + guest::ES_BASE - guest::ES_SELECTOR), + ); + } + + pub fn dump_dtsel(&self, name: &'static str, limit: u32) { + kerror!( + "{name} limit = 0x{:x}, base = 0x{:x}", + self.vmread(limit), + self.vmread(limit + guest::GDTR_BASE - guest::GDTR_LIMIT) + ); + } + + pub fn dump_msrs(&self, name: &'static str, msr: &VmxMsrs) { + kerror!("MSR {name}:"); + for (idx, msr) in msr.val.iter().enumerate() { + kerror!("{idx}: msr = 0x{:x}, value = 0x{:x}", msr.index, msr.data); + } + } + + #[inline] + pub fn vmread(&self, field: u32) -> u64 { + VmxAsm::vmx_vmread(field) + } + fn setup_uret_msrs(&self, vcpu: &mut VirtCpu) { // 是否加载syscall相关msr let load_syscall_msrs = @@ -1709,7 +2243,7 @@ impl Vmx { fn setup_uret_msr(&self, vcpu: &mut VirtCpu, msr: u32, load_into_hardware: bool) { let uret_msr = vcpu.vmx_mut().find_uret_msr_mut(msr); - if let Some(msr) = uret_msr { + if let Some((_idx, msr)) = uret_msr { msr.load_into_hardware = load_into_hardware; } } @@ -1862,7 +2396,7 @@ impl Vmx { fn get_pin_based_exec_controls(&self, vcpu: &VirtCpu) -> PinbasedControls { let mut ctrls = self.vmcs_config.pin_based_exec_ctrl; - if vcpu.arch.vcpu_apicv_active() { + if !vcpu.arch.vcpu_apicv_active() { ctrls.remove(PinbasedControls::POSTED_INTERRUPTS); } @@ -2365,13 +2899,161 @@ impl Vmx { let fail = unsafe { __vmx_vcpu_run(vcpu.vmx(), vcpu.arch.regs.as_ptr(), flags.bits as u32) }; + vcpu.vmx_mut().fail = fail as u8; + vcpu.arch.cr2 = unsafe { cr2() } as u64; + vcpu.arch.regs_avail.set_all(true); + + // 这些寄存器需要更新缓存 + for reg_idx in Vmx::VMX_REGS_LAZY_LOAD_SET { + vcpu.arch.regs_avail.set(*reg_idx, false); + } + + vcpu.vmx_mut().idt_vectoring_info = IntrInfo::empty(); + + // TODO: enable_fb_clear + + if unlikely(vcpu.vmx().fail != 0) { + vcpu.vmx_mut().exit_reason = VmxExitReason::from(0xdead); + return; + } + + vcpu.vmx_mut().exit_reason = + VmxExitReason::from(VmxAsm::vmx_vmread(ro::EXIT_REASON) as u32); + + if likely(!vcpu.vmx().exit_reason.failed_vmentry()) { + vcpu.vmx_mut().idt_vectoring_info = + IntrInfo::from_bits_truncate(VmxAsm::vmx_vmread(ro::IDT_VECTORING_INFO) as u32); + } + + if VmxExitReasonBasic::from(vcpu.vmx().exit_reason.basic()) + == VmxExitReasonBasic::EXCEPTION_OR_NMI + && VmcsIntrHelper::is_nmi(Vmx::vmx_get_intr_info(vcpu)) + { + todo!() + } + } + + fn vmx_get_intr_info(vcpu: &mut VirtCpu) -> IntrInfo { + if !vcpu + .arch + .test_and_mark_available(KvmReg::VcpuExregExitInfo2) + { + vcpu.vmx_mut().exit_intr_info = IntrInfo::from_bits_truncate(VmxAsm::vmx_vmread( + ro::VMEXIT_INTERRUPTION_INFO, + ) as u32); + } + + return vcpu.vmx_mut().exit_intr_info; + } + + pub fn vmx_exit_handlers_fastpath(vcpu: &mut VirtCpu) -> ExitFastpathCompletion { + match VmxExitReasonBasic::from(vcpu.vmx().exit_reason.basic()) { + VmxExitReasonBasic::WRMSR => { + todo!() + } + VmxExitReasonBasic::VMX_PREEMPTION_TIMER_EXPIRED => { + todo!() + } + _ => ExitFastpathCompletion::None, + } + } + + pub fn vmx_handle_exit( + &self, + vcpu: &mut VirtCpu, + exit_fastpath: ExitFastpathCompletion, + ) -> Result<(), SystemError> { + let exit_reason = vcpu.vmx().exit_reason; + + let unexpected_vmexit = |vcpu: &mut VirtCpu| -> Result<(), SystemError> { + kerror!("vmx: unexpected exit reason {:?}\n", exit_reason); + + self.dump_vmcs(vcpu); + + let cpu = vcpu.arch.last_vmentry_cpu.into() as u64; + let run = vcpu.kvm_run_mut(); + run.exit_reason = kvm_exit::KVM_EXIT_INTERNAL_ERROR; + + unsafe { + run.__bindgen_anon_1.internal.ndata = 2; + run.__bindgen_anon_1.internal.data[0] = Into::::into(exit_reason) as u64; + run.__bindgen_anon_1.internal.data[1] = cpu; + } + + return Ok(()); + }; + + let vectoring_info = vcpu.vmx().idt_vectoring_info; + + if self.enable_pml && !vcpu.arch.is_guest_mode() { + todo!() + } + + if vcpu.arch.is_guest_mode() { + if exit_reason.basic() == VmxExitReasonBasic::PML_FULL as u16 { + return unexpected_vmexit(vcpu); + } + + todo!() + } + + if vcpu.vmx().emulation_required { + todo!() + } + + if exit_reason.failed_vmentry() { + self.dump_vmcs(vcpu); + todo!() + } + + if unlikely(vcpu.vmx().fail != 0) { + self.dump_vmcs(vcpu); + todo!() + } + + let basic = VmxExitReasonBasic::from(exit_reason.basic()); + if vectoring_info.contains(IntrInfo::INTR_INFO_VALID_MASK) + && basic != VmxExitReasonBasic::EXCEPTION_OR_NMI + && basic != VmxExitReasonBasic::EPT_VIOLATION + && basic != VmxExitReasonBasic::PML_FULL + && basic != VmxExitReasonBasic::APIC_ACCESS + && basic != VmxExitReasonBasic::TASK_SWITCH + && basic != VmxExitReasonBasic::NOTIFY + { + todo!() + } + + if unlikely(!self.enable_pml && vcpu.vmx().loaded_vmcs().soft_vnmi_blocked) { + todo!() + } + + if exit_fastpath != ExitFastpathCompletion::None { + return Err(SystemError::EINVAL); + } + todo!() } + + /// 需要在缓存中更新的寄存器集。此处未列出的其他寄存器在 VM 退出后立即同步到缓存。 + pub const VMX_REGS_LAZY_LOAD_SET: &'static [usize] = &[ + KvmReg::VcpuRegsRip as usize, + KvmReg::VcpuRegsRsp as usize, + KvmReg::VcpuExregRflags as usize, + KvmReg::NrVcpuRegs as usize, + KvmReg::VcpuExregSegments as usize, + KvmReg::VcpuExregCr0 as usize, + KvmReg::VcpuExregCr3 as usize, + KvmReg::VcpuExregCr4 as usize, + KvmReg::VcpuExregExitInfo1 as usize, + KvmReg::VcpuExregExitInfo2 as usize, + ]; } extern "C" { + /// #[allow(improper_ctypes)]因为只需要在内部调用而无需与C交互 + #[allow(improper_ctypes)] fn __vmx_vcpu_run(vmx: &VmxVCpuPriv, regs: *const u64, flags: u32) -> i32; } @@ -2473,11 +3155,18 @@ pub struct VmxSegmentCache { } #[derive(Debug)] +#[allow(dead_code)] pub struct VmxVCpuPriv { vpid: u16, fail: u8, + exit_reason: VmxExitReason, + + exit_intr_info: IntrInfo, + + idt_vectoring_info: IntrInfo, + vmcs01: Arc, loaded_vmcs: Arc, guest_uret_msrs: [VmxUretMsr; KvmArchManager::KVM_MAX_NR_USER_RETURN_MSRS], @@ -2491,6 +3180,9 @@ pub struct VmxVCpuPriv { msr_ia32_feature_control: u64, msr_ia32_feature_control_valid_bits: u64, + msr_host_kernel_gs_base: u64, + msr_guest_kernel_gs_base: u64, + emulation_required: bool, rflags: RFlags, @@ -2499,6 +3191,7 @@ pub struct VmxVCpuPriv { ple_window_dirty: bool, msr_autoload: VmxMsrAutoLoad, + msr_autostore: VmxMsrs, pml_pg: Box<[u8; MMArch::PAGE_SIZE]>, @@ -2509,9 +3202,13 @@ pub struct VmxVCpuPriv { hv_deadline_tsc: u64, segment_cache: VmxSegmentCache, + + req_immediate_exit: bool, + guest_state_loaded: bool, } #[derive(Debug, Default)] +#[allow(dead_code)] pub struct KvmVmx { tss_addr: usize, ept_identity_pagetable_done: bool, @@ -2560,6 +3257,14 @@ impl VmxVCpuPriv { segment_cache: VmxSegmentCache::default(), emulation_required: false, rflags: RFlags::empty(), + req_immediate_exit: false, + guest_state_loaded: false, + msr_host_kernel_gs_base: 0, + msr_guest_kernel_gs_base: 0, + idt_vectoring_info: IntrInfo::empty(), + exit_reason: VmxExitReason::new(), + exit_intr_info: IntrInfo::empty(), + msr_autostore: VmxMsrs::default(), }; vmx.vpid = vmx_info().alloc_vpid().unwrap_or_default() as u16; @@ -2569,8 +3274,8 @@ impl VmxVCpuPriv { } if CpuId::new().get_extended_feature_info().unwrap().has_rtm() { - let tsx_ctrl = vmx.find_uret_msr_mut(MSR_IA32_TSX_CTRL); - if let Some(tsx_ctrl) = tsx_ctrl { + let tsx_ctrl = vmx.find_uret_msr_mut(msr::MSR_IA32_TSX_CTRL); + if let Some((_idx, tsx_ctrl)) = tsx_ctrl { // Disable TSX enumeration tsx_ctrl.mask = !(1 << 1); } @@ -2581,20 +3286,20 @@ impl VmxVCpuPriv { let arch = &vm.arch; - vmx.disable_intercept_for_msr(arch, IA32_TIME_STAMP_COUNTER, MsrType::READ); - vmx.disable_intercept_for_msr(arch, IA32_FS_BASE, MsrType::RW); - vmx.disable_intercept_for_msr(arch, IA32_GS_BASE, MsrType::RW); - vmx.disable_intercept_for_msr(arch, IA32_KERNEL_GSBASE, MsrType::RW); + vmx.disable_intercept_for_msr(arch, msr::IA32_TIME_STAMP_COUNTER, MsrType::READ); + vmx.disable_intercept_for_msr(arch, msr::IA32_FS_BASE, MsrType::RW); + vmx.disable_intercept_for_msr(arch, msr::IA32_GS_BASE, MsrType::RW); + vmx.disable_intercept_for_msr(arch, msr::IA32_KERNEL_GSBASE, MsrType::RW); - vmx.disable_intercept_for_msr(arch, IA32_SYSENTER_CS, MsrType::RW); - vmx.disable_intercept_for_msr(arch, IA32_SYSENTER_ESP, MsrType::RW); - vmx.disable_intercept_for_msr(arch, IA32_SYSENTER_EIP, MsrType::RW); + vmx.disable_intercept_for_msr(arch, msr::IA32_SYSENTER_CS, MsrType::RW); + vmx.disable_intercept_for_msr(arch, msr::IA32_SYSENTER_ESP, MsrType::RW); + vmx.disable_intercept_for_msr(arch, msr::IA32_SYSENTER_EIP, MsrType::RW); if arch.pause_in_guest { - vmx.disable_intercept_for_msr(arch, MSR_CORE_C1_RESIDENCY, MsrType::READ); - vmx.disable_intercept_for_msr(arch, MSR_CORE_C3_RESIDENCY, MsrType::READ); - vmx.disable_intercept_for_msr(arch, MSR_CORE_C6_RESIDENCY, MsrType::READ); - vmx.disable_intercept_for_msr(arch, MSR_CORE_C7_RESIDENCY, MsrType::READ); + vmx.disable_intercept_for_msr(arch, msr::MSR_CORE_C1_RESIDENCY, MsrType::READ); + vmx.disable_intercept_for_msr(arch, msr::MSR_CORE_C3_RESIDENCY, MsrType::READ); + vmx.disable_intercept_for_msr(arch, msr::MSR_CORE_C6_RESIDENCY, MsrType::READ); + vmx.disable_intercept_for_msr(arch, msr::MSR_CORE_C7_RESIDENCY, MsrType::READ); } if vmx_info().enable_flexpriority && vcpu.arch.lapic_in_kernel() { @@ -2613,35 +3318,38 @@ impl VmxVCpuPriv { vcpu.private = Some(vmx); } - pub fn find_uret_msr(&self, msr: u32) -> Option<&VmxUretMsr> { + pub fn find_uret_msr(&self, msr: u32) -> Option<(usize, &VmxUretMsr)> { let idx = x86_kvm_manager().find_user_return_msr_idx(msr); if let Some(index) = idx { - return Some(&self.guest_uret_msrs[index]); + return Some((index, &self.guest_uret_msrs[index])); } else { return None; } } fn set_uret_msr(&mut self, msr: u32, data: u64) { - if let Some(msr) = self.find_uret_msr_mut(msr) { + if let Some((_idx, msr)) = self.find_uret_msr_mut(msr) { msr.data = data; } } - pub fn find_uret_msr_mut(&mut self, msr: u32) -> Option<&mut VmxUretMsr> { + pub fn find_uret_msr_mut(&mut self, msr: u32) -> Option<(usize, &mut VmxUretMsr)> { let idx = x86_kvm_manager().find_user_return_msr_idx(msr); if let Some(index) = idx { - return Some(&mut self.guest_uret_msrs[index]); + return Some((index, &mut self.guest_uret_msrs[index])); } else { return None; } } - fn set_guest_uret_msr(&mut self, msr: &VmxUretMsr, data: u64) -> Result<(), SystemError> { + fn set_guest_uret_msr(&mut self, slot: usize, data: u64) -> Result<(), SystemError> { + let msr = &mut self.guest_uret_msrs[slot]; if msr.load_into_hardware { - todo!() + x86_kvm_manager().kvm_set_user_return_msr(slot, data, msr.mask); } + msr.data = data; + Ok(()) } @@ -2784,7 +3492,7 @@ impl VmxVCpuPriv { } let m = &mut self.msr_autoload; - let mut i = m.guest.find_loadstore_msr_slot(msr); + let i = m.guest.find_loadstore_msr_slot(msr); let j = if !entry_only { m.host.find_loadstore_msr_slot(msr) } else { @@ -2794,7 +3502,7 @@ impl VmxVCpuPriv { if (i.is_none() && m.guest.nr == VmxMsrs::MAX_NR_LOADSTORE_MSRS) || (j.is_none() && m.host.nr == VmxMsrs::MAX_NR_LOADSTORE_MSRS) { - kwarn!("Not enough msr switch entries. Can't add msr {:x}", msr); + kwarn!("Not enough msr switch entries. Can't add msr 0x{:x}", msr); return; } @@ -2821,8 +3529,8 @@ impl VmxVCpuPriv { j.unwrap() }; - m.host.val[i].index = msr; - m.host.val[i].data = host_val; + m.host.val[j].index = msr; + m.host.val[j].data = host_val; } fn add_atomic_switch_msr_special( @@ -2887,6 +3595,7 @@ bitflags! { } #[derive(Debug, PartialEq)] +#[allow(dead_code)] pub enum VmxL1dFlushState { FlushAuto, FlushNever, @@ -2962,143 +3671,6 @@ pub const KVM_VMX_SEGMENT_FIELDS: &'static [VmxSegmentField] = &[ }, ]; -#[derive(FromPrimitive)] -#[allow(non_camel_case_types)] -pub enum VmxExitReason { - EXCEPTION_OR_NMI = 0, - EXTERNAL_INTERRUPT = 1, - TRIPLE_FAULT = 2, - INIT_SIGNAL = 3, - SIPI = 4, - IO_SMI = 5, - OTHER_SMI = 6, - INTERRUPT_WINDOW = 7, - NMI_WINDOW = 8, - TASK_SWITCH = 9, - CPUID = 10, - GETSEC = 11, - HLT = 12, - INVD = 13, - INVLPG = 14, - RDPMC = 15, - RDTSC = 16, - RSM = 17, - VMCALL = 18, - VMCLEAR = 19, - VMLAUNCH = 20, - VMPTRLD = 21, - VMPTRST = 22, - VMREAD = 23, - VMRESUME = 24, - VMWRITE = 25, - VMXOFF = 26, - VMXON = 27, - CR_ACCESS = 28, - DR_ACCESS = 29, - IO_INSTRUCTION = 30, - RDMSR = 31, - WRMSR = 32, - VM_ENTRY_FAILURE_INVALID_GUEST_STATE = 33, - VM_ENTRY_FAILURE_MSR_LOADING = 34, - MWAIT = 36, - MONITOR_TRAP_FLAG = 37, - MONITOR = 39, - PAUSE = 40, - VM_ENTRY_FAILURE_MACHINE_CHECK_EVENT = 41, - TPR_BELOW_THRESHOLD = 43, - APIC_ACCESS = 44, - VIRTUALIZED_EOI = 45, - ACCESS_GDTR_OR_IDTR = 46, - ACCESS_LDTR_OR_TR = 47, - EPT_VIOLATION = 48, - EPT_MISCONFIG = 49, - INVEPT = 50, - RDTSCP = 51, - VMX_PREEMPTION_TIMER_EXPIRED = 52, - INVVPID = 53, - WBINVD = 54, - XSETBV = 55, - APIC_WRITE = 56, - RDRAND = 57, - INVPCID = 58, - VMFUNC = 59, - ENCLS = 60, - RDSEED = 61, - PML_FULL = 62, - XSAVES = 63, - XRSTORS = 64, -} - -impl From for VmxExitReason { - fn from(num: i32) -> Self { - match num { - 0 => VmxExitReason::EXCEPTION_OR_NMI, - 1 => VmxExitReason::EXTERNAL_INTERRUPT, - 2 => VmxExitReason::TRIPLE_FAULT, - 3 => VmxExitReason::INIT_SIGNAL, - 4 => VmxExitReason::SIPI, - 5 => VmxExitReason::IO_SMI, - 6 => VmxExitReason::OTHER_SMI, - 7 => VmxExitReason::INTERRUPT_WINDOW, - 8 => VmxExitReason::NMI_WINDOW, - 9 => VmxExitReason::TASK_SWITCH, - 10 => VmxExitReason::CPUID, - 11 => VmxExitReason::GETSEC, - 12 => VmxExitReason::HLT, - 13 => VmxExitReason::INVD, - 14 => VmxExitReason::INVLPG, - 15 => VmxExitReason::RDPMC, - 16 => VmxExitReason::RDTSC, - 17 => VmxExitReason::RSM, - 18 => VmxExitReason::VMCALL, - 19 => VmxExitReason::VMCLEAR, - 20 => VmxExitReason::VMLAUNCH, - 21 => VmxExitReason::VMPTRLD, - 22 => VmxExitReason::VMPTRST, - 23 => VmxExitReason::VMREAD, - 24 => VmxExitReason::VMRESUME, - 25 => VmxExitReason::VMWRITE, - 26 => VmxExitReason::VMXOFF, - 27 => VmxExitReason::VMXON, - 28 => VmxExitReason::CR_ACCESS, - 29 => VmxExitReason::DR_ACCESS, - 30 => VmxExitReason::IO_INSTRUCTION, - 31 => VmxExitReason::RDMSR, - 32 => VmxExitReason::WRMSR, - 33 => VmxExitReason::VM_ENTRY_FAILURE_INVALID_GUEST_STATE, - 34 => VmxExitReason::VM_ENTRY_FAILURE_MSR_LOADING, - 36 => VmxExitReason::MWAIT, - 37 => VmxExitReason::MONITOR_TRAP_FLAG, - 39 => VmxExitReason::MONITOR, - 40 => VmxExitReason::PAUSE, - 41 => VmxExitReason::VM_ENTRY_FAILURE_MACHINE_CHECK_EVENT, - 43 => VmxExitReason::TPR_BELOW_THRESHOLD, - 44 => VmxExitReason::APIC_ACCESS, - 45 => VmxExitReason::VIRTUALIZED_EOI, - 46 => VmxExitReason::ACCESS_GDTR_OR_IDTR, - 47 => VmxExitReason::ACCESS_LDTR_OR_TR, - 48 => VmxExitReason::EPT_VIOLATION, - 49 => VmxExitReason::EPT_MISCONFIG, - 50 => VmxExitReason::INVEPT, - 51 => VmxExitReason::RDTSCP, - 52 => VmxExitReason::VMX_PREEMPTION_TIMER_EXPIRED, - 53 => VmxExitReason::INVVPID, - 54 => VmxExitReason::WBINVD, - 55 => VmxExitReason::XSETBV, - 56 => VmxExitReason::APIC_WRITE, - 57 => VmxExitReason::RDRAND, - 58 => VmxExitReason::INVPCID, - 59 => VmxExitReason::VMFUNC, - 60 => VmxExitReason::ENCLS, - 61 => VmxExitReason::RDSEED, - 62 => VmxExitReason::PML_FULL, - 63 => VmxExitReason::XSAVES, - 64 => VmxExitReason::XRSTORS, - _ => panic!("Invalid VmxExitReason number: {}", num), - } - } -} - pub static L1TF_VMX_MITIGATION: RwLock = RwLock::new(VmxL1dFlushState::FlushAuto); pub fn vmx_init() -> Result<(), SystemError> { @@ -3120,17 +3692,16 @@ pub fn vmx_init() -> Result<(), SystemError> { #[no_mangle] unsafe extern "C" fn vmx_update_host_rsp(vcpu_vmx: &VmxVCpuPriv, host_rsp: usize) { + kwarn!("vmx_update_host_rsp"); let mut guard = vcpu_vmx.loaded_vmcs.lock(); if unlikely(host_rsp != guard.host_state.rsp) { guard.host_state.rsp = host_rsp; VmxAsm::vmx_vmwrite(host::RSP, host_rsp as u64); } - - return; } #[no_mangle] -unsafe extern "C" fn vmx_spec_ctrl_restore_host(vcpu_vmx: &VmxVCpuPriv, flags: u32) { +unsafe extern "C" fn vmx_spec_ctrl_restore_host(_vcpu_vmx: &VmxVCpuPriv, _flags: u32) { // TODO - return; + kwarn!("vmx_spec_ctrl_restore_host todo!"); } diff --git a/kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs b/kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs index cd16f6c6a..3023deaf3 100644 --- a/kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs +++ b/kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs @@ -12,7 +12,7 @@ use x86::{ use crate::arch::vm::vmx::Vmx; pub struct VmxFeat; - +#[allow(dead_code)] impl VmxFeat { pub const KVM_REQUIRED_VMX_CPU_BASED_VM_EXEC_CONTROL: u32 = PrimaryControls::HLT_EXITING.bits() | PrimaryControls::CR3_LOAD_EXITING.bits() @@ -111,48 +111,52 @@ impl VmxFeat { pub const VMX_BASIC_INOUT: u64 = 0x0040000000000000; pub fn adjust_primary_controls() -> Result { - Ok(PrimaryControls::from_bits_truncate( - Vmx::adjust_vmx_controls( + Ok(unsafe { + PrimaryControls::from_bits_unchecked(Vmx::adjust_vmx_controls( Self::KVM_REQUIRED_VMX_CPU_BASED_VM_EXEC_CONTROL, Self::KVM_OPTIONAL_VMX_CPU_BASED_VM_EXEC_CONTROL, IA32_VMX_PROCBASED_CTLS, - )?, - )) + )?) + }) } pub fn adjust_secondary_controls() -> Result { - Ok(SecondaryControls::from_bits_truncate( - Vmx::adjust_vmx_controls( + Ok(unsafe { + SecondaryControls::from_bits_unchecked(Vmx::adjust_vmx_controls( Self::KVM_REQUIRED_VMX_SECONDARY_VM_EXEC_CONTROL, Self::KVM_OPTIONAL_VMX_SECONDARY_VM_EXEC_CONTROL, IA32_VMX_PROCBASED_CTLS2, - )?, - )) + )?) + }) } pub fn adjust_exit_controls() -> Result { - Ok(ExitControls::from_bits_truncate(Vmx::adjust_vmx_controls( - Self::KVM_REQUIRED_VMX_VM_EXIT_CONTROLS, - Self::KVM_OPTIONAL_VMX_VM_EXIT_CONTROLS, - IA32_VMX_EXIT_CTLS, - )?)) + Ok(unsafe { + ExitControls::from_bits_unchecked(Vmx::adjust_vmx_controls( + Self::KVM_REQUIRED_VMX_VM_EXIT_CONTROLS, + Self::KVM_OPTIONAL_VMX_VM_EXIT_CONTROLS, + IA32_VMX_EXIT_CTLS, + )?) + }) } pub fn adjust_entry_controls() -> Result { - Ok(EntryControls::from_bits_truncate(Vmx::adjust_vmx_controls( - Self::KVM_REQUIRED_VMX_VM_ENTRY_CONTROLS, - Self::KVM_OPTIONAL_VMX_VM_ENTRY_CONTROLS, - IA32_VMX_ENTRY_CTLS, - )?)) + Ok(unsafe { + EntryControls::from_bits_unchecked(Vmx::adjust_vmx_controls( + Self::KVM_REQUIRED_VMX_VM_ENTRY_CONTROLS, + Self::KVM_OPTIONAL_VMX_VM_ENTRY_CONTROLS, + IA32_VMX_ENTRY_CTLS, + )?) + }) } pub fn adjust_pin_based_controls() -> Result { - Ok(PinbasedControls::from_bits_truncate( - Vmx::adjust_vmx_controls( + Ok(unsafe { + PinbasedControls::from_bits_unchecked(Vmx::adjust_vmx_controls( Self::KVM_REQUIRED_VMX_PIN_BASED_VM_EXEC_CONTROL, Self::KVM_OPTIONAL_VMX_PIN_BASED_VM_EXEC_CONTROL, IA32_VMX_PINBASED_CTLS, - )?, - )) + )?) + }) } } diff --git a/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs b/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs index fac1a0504..f4af66611 100644 --- a/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs @@ -1,18 +1,21 @@ -use alloc::{boxed::Box, collections::LinkedList, sync::Arc, vec::Vec}; +use core::intrinsics::unlikely; + +use alloc::{boxed::Box, collections::LinkedList, sync::Arc}; use bitmap::{traits::BitMapOps, AllocBitmap}; -use system_error::SystemError; use x86::{ controlregs::Cr4, vmx::vmcs::{ control::{self, PrimaryControls}, - guest, + host, }, }; -use x86_64::registers::control::{Cr3, Cr3Flags}; +use x86_64::registers::control::Cr3Flags; use crate::{ - arch::{vm::asm::VmxAsm, MMArch}, - kdebug, + arch::{ + vm::asm::{IntrInfo, IntrType, VmxAsm}, + MMArch, + }, libs::spinlock::{SpinLock, SpinLockGuard}, mm::{percpu::PerCpuVar, virt_2_phys, MemoryManagementArch, PhysAddr}, smp::cpu::ProcessorId, @@ -38,6 +41,7 @@ pub fn current_loaded_vmcs_list_mut() -> &'static mut LinkedList &'static LinkedList> { unsafe { PERCPU_LOADED_VMCS_LIST.as_ref().unwrap().get() } } @@ -70,6 +74,7 @@ impl VMControlStructure { self.header & 0x7FFF_FFFF } + #[allow(dead_code)] pub fn is_shadow_vmcs(&self) -> bool { self.header & 0x8000_0000 == 1 } @@ -125,7 +130,41 @@ pub struct VmcsHostState { pub gs_sel: u16, pub ldt_sel: u16, pub ds_sel: u16, - pub rs_sel: u16, + pub es_sel: u16, +} + +impl VmcsHostState { + pub fn set_host_fsgs(&mut self, fs_sel: u16, gs_sel: u16, fs_base: usize, gs_base: usize) { + if unlikely(self.fs_sel != fs_sel) { + if (fs_sel & 7) == 0 { + VmxAsm::vmx_vmwrite(host::FS_SELECTOR, fs_sel as u64); + } else { + VmxAsm::vmx_vmwrite(host::FS_SELECTOR, 0); + } + + self.fs_sel = fs_sel; + } + + if unlikely(self.gs_sel != gs_sel) { + if (gs_sel & 7) == 0 { + VmxAsm::vmx_vmwrite(host::GS_SELECTOR, gs_sel as u64); + } else { + VmxAsm::vmx_vmwrite(host::GS_SELECTOR, 0); + } + + self.gs_sel = gs_sel; + } + + if unlikely(fs_base != self.fs_base) { + VmxAsm::vmx_vmwrite(host::FS_BASE, fs_base as u64); + self.fs_base = fs_base; + } + + if unlikely(self.gs_base != gs_base) { + VmxAsm::vmx_vmwrite(host::GS_BASE, gs_base as u64); + self.gs_base = gs_base; + } + } } impl Default for VmcsHostState { @@ -140,7 +179,7 @@ impl Default for VmcsHostState { gs_sel: 0, ldt_sel: 0, ds_sel: 0, - rs_sel: 0, + es_sel: 0, } } } @@ -156,6 +195,7 @@ pub struct VmcsControlsShadow { } #[derive(Debug)] +#[allow(dead_code)] pub struct LoadedVmcs { pub vmcs: Arc, pub shadow_vmcs: Option>, @@ -262,6 +302,7 @@ pub struct LockedLoadedVmcs { } #[derive(Debug, Clone, Copy)] +#[allow(dead_code)] pub enum ControlsType { VmEntry, VmExit, @@ -384,3 +425,18 @@ impl VmxMsrBitmap { } } } + +/// 中断相关辅助函数载体 +pub struct VmcsIntrHelper; + +impl VmcsIntrHelper { + pub fn is_nmi(intr_info: IntrInfo) -> bool { + return Self::is_intr_type(intr_info, IntrType::INTR_TYPE_NMI_INTR); + } + + pub fn is_intr_type(intr_info: IntrInfo, intr_type: IntrType) -> bool { + return (intr_info & (IntrInfo::INTR_INFO_VALID_MASK | IntrInfo::INTR_INFO_INTR_TYPE_MASK)) + .bits() + == IntrInfo::INTR_INFO_VALID_MASK.bits() | intr_type.bits() as u32; + } +} diff --git a/kernel/src/arch/x86_64/vm/vmx/vmenter.S b/kernel/src/arch/x86_64/vm/vmx/vmenter.S index b1119e76b..10f3fca2a 100644 --- a/kernel/src/arch/x86_64/vm/vmx/vmenter.S +++ b/kernel/src/arch/x86_64/vm/vmx/vmenter.S @@ -100,13 +100,12 @@ ENTRY(__vmx_vcpu_run) jmp .Lvmfail .Lvmlaunch: - vmlaunch + call vmx_vmlaunch jmp .Lvmfail // 从guest模式退出 ENTRY(vmx_vmexit) // TODO: unwind hint restore - // 临时保存guest RAX push %rax @@ -172,6 +171,7 @@ ENTRY(vmx_vmexit) ret .Lvmfail: + // 失败,设置返回值为1 mov $1, %rbx jmp .Lclear_regs diff --git a/kernel/src/virt/vm/kvm_dev.rs b/kernel/src/virt/vm/kvm_dev.rs index 9435fd8f1..9214faf5d 100644 --- a/kernel/src/virt/vm/kvm_dev.rs +++ b/kernel/src/virt/vm/kvm_dev.rs @@ -1,14 +1,11 @@ -use core::{ - intrinsics::unlikely, - sync::atomic::{AtomicUsize, Ordering}, -}; +use core::intrinsics::unlikely; use alloc::sync::{Arc, Weak}; use system_error::SystemError; use crate::{ arch::{ - vm::{kvm_host::KvmCommonRegs, uapi::UapiKvmSegmentRegs, x86_kvm_manager}, + vm::{kvm_host::KvmCommonRegs, uapi::UapiKvmSegmentRegs}, MMArch, }, driver::base::device::device_number::DeviceNumber, @@ -29,10 +26,7 @@ use crate::{ virt::vm::user_api::{KvmUserspaceMemoryRegion, PosixKvmUserspaceMemoryRegion}, }; -use super::kvm_host::{ - vcpu::{LockedVirtCpu, VirtCpu}, - LockedVm, Vm, -}; +use super::kvm_host::{vcpu::LockedVirtCpu, LockedVm}; #[derive(Debug)] pub struct KvmInode { @@ -269,9 +263,9 @@ impl IndexNode for KvmInstance { fn read_at( &self, - offset: usize, - len: usize, - buf: &mut [u8], + _offset: usize, + _len: usize, + _buf: &mut [u8], _data: crate::libs::spinlock::SpinLockGuard, ) -> Result { todo!() @@ -279,9 +273,9 @@ impl IndexNode for KvmInstance { fn write_at( &self, - offset: usize, - len: usize, - buf: &[u8], + _offset: usize, + _len: usize, + _buf: &[u8], _data: crate::libs::spinlock::SpinLockGuard, ) -> Result { todo!() @@ -370,10 +364,9 @@ impl IndexNode for KvmVcpuDev { arg: usize, _private_data: &crate::filesystem::vfs::FilePrivateData, ) -> Result { - kdebug!("vcpu ioctl cmd {cmd:x}"); match cmd { Self::KVM_RUN => { - if arg != 0 { + if arg != 0 { return Err(SystemError::EINVAL); } let mut vcpu = self.vcpu.lock(); @@ -454,9 +447,9 @@ impl IndexNode for KvmVcpuDev { fn read_at( &self, - offset: usize, - len: usize, - buf: &mut [u8], + _offset: usize, + _len: usize, + _buf: &mut [u8], _data: crate::libs::spinlock::SpinLockGuard, ) -> Result { todo!() @@ -464,9 +457,9 @@ impl IndexNode for KvmVcpuDev { fn write_at( &self, - offset: usize, - len: usize, - buf: &[u8], + _offset: usize, + _len: usize, + _buf: &[u8], _data: crate::libs::spinlock::SpinLockGuard, ) -> Result { todo!() diff --git a/kernel/src/virt/vm/kvm_host/mem.rs b/kernel/src/virt/vm/kvm_host/mem.rs index fddca79be..f284244e6 100644 --- a/kernel/src/virt/vm/kvm_host/mem.rs +++ b/kernel/src/virt/vm/kvm_host/mem.rs @@ -1,20 +1,20 @@ use alloc::{ boxed::Box, sync::{Arc, Weak}, + vec::Vec, }; use bitmap::AllocBitmap; use hashbrown::HashMap; use system_error::SystemError; -use x86::bits64::registers::rbp; use crate::{ - arch::{kvm_arch_ops, MMArch}, + arch::MMArch, libs::{ rbtree::RBTree, rwlock::{RwLock, RwLockReadGuard, RwLockWriteGuard}, spinlock::{SpinLock, SpinLockGuard}, }, - mm::{MemoryManagementArch, PhysAddr, VirtAddr}, + mm::{MemoryManagementArch, VirtAddr}, virt::vm::{kvm_host::KVM_ADDRESS_SPACE_NUM, user_api::KvmUserspaceMemoryRegion}, }; @@ -25,6 +25,44 @@ pub const KVM_INTERNAL_MEM_SLOTS: u16 = 3; pub const KVM_MEM_SLOTS_NUM: u16 = KVM_USER_MEM_SLOTS - KVM_INTERNAL_MEM_SLOTS; pub const KVM_MEM_MAX_NR_PAGES: usize = (1 << 31) - 1; +#[derive(Debug, Default)] +#[allow(dead_code)] +pub struct KvmMmuMemoryCache { + gfp_zero: u32, + gfp_custom: u32, + capacity: usize, + nobjs: usize, + objects: Option>>, +} +impl KvmMmuMemoryCache { + #[allow(dead_code)] + pub fn kvm_mmu_totup_memory_cache( + &mut self, + _capacity: usize, + _min: usize, + ) -> Result<(), SystemError> { + // let gfp = if self.gfp_custom != 0 { + // self.gfp_custom + // } else { + // todo!(); + // }; + + // if self.nobjs >= min { + // return Ok(()); + // } + + // if unlikely(self.objects.is_none()) { + // if self.capacity == 0 { + // return Err(SystemError::EIO); + // } + + // // self.objects = Some(Box::new) + // } + + Ok(()) + } +} + #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Default)] pub struct AddrRange { pub start: VirtAddr, @@ -127,6 +165,7 @@ impl LockedVmMemSlotSet { } #[derive(Debug, Default)] +#[allow(dead_code)] pub struct GfnToHvaCache { generation: u64, /// 客户机对应物理地址(Guest Physical Address) diff --git a/kernel/src/virt/vm/kvm_host/mod.rs b/kernel/src/virt/vm/kvm_host/mod.rs index bdba71ebb..29aa746ef 100644 --- a/kernel/src/virt/vm/kvm_host/mod.rs +++ b/kernel/src/virt/vm/kvm_host/mod.rs @@ -4,24 +4,22 @@ use core::{ }; use alloc::{ - alloc::Global, boxed::Box, sync::{Arc, Weak}, vec::Vec, }; use hashbrown::HashMap; use system_error::SystemError; -use x86::bits64::registers::rsp; use crate::{ arch::{ - vm::{kvm_host::vcpu::VirCpuRequest, vmx::KvmVmx, x86_kvm_manager}, + vm::{kvm_host::vcpu::VirtCpuRequest, vmx::KvmVmx, x86_kvm_manager}, CurrentKvmManager, KvmArch, VirtCpuArch, }, filesystem::vfs::file::{File, FileMode}, libs::spinlock::{SpinLock, SpinLockGuard}, mm::ucontext::AddressSpace, - process::{KernelStack, ProcessManager}, + process::ProcessManager, smp::cpu::ProcessorId, virt::vm::{ kvm_dev::KvmVcpuDev, @@ -31,7 +29,7 @@ use crate::{ use self::{ mem::{GfnToHvaCache, KvmMemSlotSet, LockedVmMemSlotSet, PfnCacheUsage}, - vcpu::GuestDebug, + vcpu::{GuestDebug, VcpuMode}, }; pub mod mem; @@ -117,6 +115,7 @@ impl LockedVm { } #[derive(Debug)] +#[allow(dead_code)] pub struct Vm { lock_vm_ref: Weak, mm: Arc, @@ -203,10 +202,11 @@ impl Vm { pv_time: GfnToHvaCache::init(self.lock_vm_ref.clone(), PfnCacheUsage::HOST_USES_PFN), arch: VirtCpuArch::new(), private: None, - request: VirCpuRequest::empty(), + request: VirtCpuRequest::empty(), guest_debug: GuestDebug::empty(), run: unsafe { Some(Box::new_zeroed().assume_init()) }, vcpu_idx: 0, + mode: VcpuMode::OutsideGuestMode, }; } @@ -223,6 +223,7 @@ impl Vm { /// ## 多处理器状态(有些状态在某些架构并不合法) #[derive(Debug, Clone, Copy, PartialEq)] +#[allow(dead_code)] pub enum MutilProcessorState { Runnable, Uninitialized, diff --git a/kernel/src/virt/vm/kvm_host/vcpu.rs b/kernel/src/virt/vm/kvm_host/vcpu.rs index 16a1282c1..56d71c2c5 100644 --- a/kernel/src/virt/vm/kvm_host/vcpu.rs +++ b/kernel/src/virt/vm/kvm_host/vcpu.rs @@ -1,7 +1,4 @@ -use core::mem::MaybeUninit; - use alloc::{ - alloc::Global, boxed::Box, string::String, sync::{Arc, Weak}, @@ -9,21 +6,18 @@ use alloc::{ use crate::{ arch::{ - vm::{kvm_host::vcpu::VirCpuRequest, vmx::VmxVCpuPriv}, + vm::{kvm_host::vcpu::VirtCpuRequest, vmx::VmxVCpuPriv}, VirtCpuArch, }, - libs::{ - lazy_init::Lazy, - spinlock::{SpinLock, SpinLockGuard}, - }, - process::{Pid, ProcessManager}, + libs::spinlock::{SpinLock, SpinLockGuard}, + process::Pid, smp::cpu::ProcessorId, virt::vm::user_api::UapiKvmRun, }; use super::{ - mem::{GfnToHvaCache, KvmMemSlot, PfnCacheUsage}, - LockedVm, Vm, + mem::{GfnToHvaCache, KvmMemSlot}, + LockedVm, }; #[derive(Debug)] @@ -43,6 +37,15 @@ impl LockedVirtCpu { } } +#[derive(Debug, PartialEq)] +#[allow(dead_code)] +pub enum VcpuMode { + OutsideGuestMode, + InGuestMode, + ExitingGuestMode, + ReadingShadowPageTables, +} + #[derive(Debug)] pub struct VirtCpu { pub cpu: ProcessorId, @@ -59,13 +62,15 @@ pub struct VirtCpu { pub pv_time: GfnToHvaCache, pub arch: VirtCpuArch, + pub mode: VcpuMode, + pub guest_debug: GuestDebug, #[cfg(target_arch = "x86_64")] pub private: Option, /// 记录请求 - pub request: VirCpuRequest, + pub request: VirtCpuRequest, pub run: Option>, } diff --git a/kernel/src/virt/vm/user_api.rs b/kernel/src/virt/vm/user_api.rs index 90a17e3e9..e7d078c2b 100644 --- a/kernel/src/virt/vm/user_api.rs +++ b/kernel/src/virt/vm/user_api.rs @@ -1,8 +1,8 @@ -use core::fmt::Debug; - /// /// 该文件定义了暴露给用户空间的结构体 /// +use core::fmt::Debug; + use system_error::SystemError; use crate::mm::{PhysAddr, VirtAddr}; From 9e0e8636feb889cd74bdcadb87c74ff1b2b83911 Mon Sep 17 00:00:00 2001 From: BrahmaMantra <2033552517@qq.com> Date: Mon, 26 Aug 2024 14:45:03 +0800 Subject: [PATCH 05/18] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=BA=86vmlaunch?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E7=9A=84cpu=5Freset=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/src/arch/x86_64/vm/vmx/mod.rs | 12 +- kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs | 3 +- kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs | 6 +- user/apps/test_kvm/main.c | 569 ++++++++++++++++++--- 4 files changed, 497 insertions(+), 93 deletions(-) diff --git a/kernel/src/arch/x86_64/vm/vmx/mod.rs b/kernel/src/arch/x86_64/vm/vmx/mod.rs index f210ae233..cd618ca51 100644 --- a/kernel/src/arch/x86_64/vm/vmx/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/mod.rs @@ -1,6 +1,8 @@ use core::intrinsics::likely; use core::intrinsics::unlikely; use core::sync::atomic::{AtomicBool, Ordering}; +use x86_64::registers::control::Cr3Flags; +use x86_64::structures::paging::PhysFrame; use crate::arch::process::table::USER_DS; use crate::arch::vm::mmu::KvmMmu; @@ -1046,9 +1048,10 @@ impl KvmFunc for VmxKvmFunc { vcpu.arch.clear_dirty(); - let cr3 = Cr3::read().1; + let cr3: (PhysFrame,Cr3Flags) = Cr3::read(); if unlikely(cr3 != vcpu.vmx().loaded_vmcs().host_state.cr3) { - VmxAsm::vmx_vmwrite(host::CR3, cr3.bits()); + let cr3_combined: u64 = (cr3.0.start_address().as_u64() & 0xFFFF_FFFF_FFFF_F000) | (cr3.1.bits() & 0xFFF); + VmxAsm::vmx_vmwrite(host::CR3, cr3_combined); vcpu.vmx().loaded_vmcs().host_state.cr3 = cr3; } @@ -2339,8 +2342,9 @@ impl Vmx { VmxAsm::vmx_vmwrite(host::CR0, unsafe { cr0() }.bits() as u64); - let cr3 = Cr3::read().1; - VmxAsm::vmx_vmwrite(host::CR3, cr3.bits()); + let cr3: (PhysFrame, Cr3Flags) = Cr3::read(); + let cr3_combined: u64 = (cr3.0.start_address().as_u64() & 0xFFFF_FFFF_FFFF_F000) | (cr3.1.bits() & 0xFFF); + VmxAsm::vmx_vmwrite(host::CR3, cr3_combined); loaded_vmcs_host_state.cr3 = cr3; let cr4 = unsafe { cr4() }; diff --git a/kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs b/kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs index 3023deaf3..7533bf650 100644 --- a/kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs +++ b/kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs @@ -87,8 +87,7 @@ impl VmxFeat { pub const KVM_OPTIONAL_VMX_PIN_BASED_VM_EXEC_CONTROL: u32 = PinbasedControls::VIRTUAL_NMIS .bits() - | PinbasedControls::POSTED_INTERRUPTS.bits() - | PinbasedControls::VMX_PREEMPTION_TIMER.bits(); + | PinbasedControls::POSTED_INTERRUPTS.bits(); pub const KVM_REQUIRED_VMX_VM_ENTRY_CONTROLS: u32 = EntryControls::LOAD_DEBUG_CONTROLS.bits() | EntryControls::IA32E_MODE_GUEST.bits(); diff --git a/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs b/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs index f4af66611..bff5b0d09 100644 --- a/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs @@ -9,7 +9,7 @@ use x86::{ host, }, }; -use x86_64::registers::control::Cr3Flags; +use x86_64::{registers::control::Cr3Flags, structures::paging::PhysFrame}; use crate::{ arch::{ @@ -121,7 +121,7 @@ impl LockedVMControlStructure { #[derive(Debug)] pub struct VmcsHostState { - pub cr3: Cr3Flags, + pub cr3:(PhysFrame,Cr3Flags), pub cr4: Cr4, pub gs_base: usize, pub fs_base: usize, @@ -170,7 +170,7 @@ impl VmcsHostState { impl Default for VmcsHostState { fn default() -> Self { Self { - cr3: Cr3Flags::empty(), + cr3: (PhysFrame::containing_address(x86_64::PhysAddr::new(0)), Cr3Flags::empty()), cr4: Cr4::empty(), gs_base: 0, fs_base: 0, diff --git a/user/apps/test_kvm/main.c b/user/apps/test_kvm/main.c index 739953568..e1c8c6f67 100644 --- a/user/apps/test_kvm/main.c +++ b/user/apps/test_kvm/main.c @@ -1,19 +1,4 @@ -/** - * @file main.c - * @author xiaoyez (xiaoyez@zju.edu.cn) - * @brief 测试kvm的程序 - * @version 0.1 - * @date 2023-07-13 - * - * @copyright Copyright (c) 2023 - * - */ - -/** - * 测试kvm命令的方法: - * 1.在DragonOS的控制台输入 exec bin/test_kvm.elf - * - */ + #include #include #include @@ -21,14 +6,64 @@ #include #include #include +// #include -#define KVM_CREATE_VM 0xAE01 -#define KVM_CREATE_VCPU 0xAE41 -#define KVM_SET_USER_MEMORY_REGION 0xAE46 +#define KVM_S390_GET_SKEYS_NONE 1 +#define KVM_S390_SKEYS_MAX 1048576 -#define KVM_RUN 0xAE80 -#define KVM_GET_REGS 0x01 -#define KVM_SET_REGS 0x02 +#define KVM_EXIT_UNKNOWN 0 +#define KVM_EXIT_EXCEPTION 1 +#define KVM_EXIT_IO 2 +#define KVM_EXIT_HYPERCALL 3 +#define KVM_EXIT_DEBUG 4 +#define KVM_EXIT_HLT 5 +#define KVM_EXIT_MMIO 6 +#define KVM_EXIT_IRQ_WINDOW_OPEN 7 +#define KVM_EXIT_SHUTDOWN 8 +#define KVM_EXIT_FAIL_ENTRY 9 +#define KVM_EXIT_INTR 10 +#define KVM_EXIT_SET_TPR 11 +#define KVM_EXIT_TPR_ACCESS 12 +#define KVM_EXIT_S390_SIEIC 13 +#define KVM_EXIT_S390_RESET 14 +#define KVM_EXIT_DCR 15 /* deprecated */ +#define KVM_EXIT_NMI 16 +#define KVM_EXIT_INTERNAL_ERROR 17 +#define KVM_EXIT_OSI 18 +#define KVM_EXIT_PAPR_HCALL 19 +#define KVM_EXIT_S390_UCONTROL 20 +#define KVM_EXIT_WATCHDOG 21 +#define KVM_EXIT_S390_TSCH 22 +#define KVM_EXIT_EPR 23 +#define KVM_EXIT_SYSTEM_EVENT 24 +#define KVM_EXIT_S390_STSI 25 +#define KVM_EXIT_IOAPIC_EOI 26 +#define KVM_EXIT_HYPERV 27 +#define KVM_EXIT_ARM_NISV 28 +#define KVM_EXIT_X86_RDMSR 29 +#define KVM_EXIT_X86_WRMSR 30 +#define KVM_EXIT_DIRTY_RING_FULL 31 +#define KVM_EXIT_AP_RESET_HOLD 32 +#define KVM_EXIT_X86_BUS_LOCK 33 +#define KVM_EXIT_XEN 34 + +/* For KVM_EXIT_INTERNAL_ERROR */ +/* Emulate instruction failed. */ +#define KVM_INTERNAL_ERROR_EMULATION 1 +/* Encounter unexpected simultaneous exceptions. */ +#define KVM_INTERNAL_ERROR_SIMUL_EX 2 +/* Encounter unexpected vm-exit due to delivery event. */ +#define KVM_INTERNAL_ERROR_DELIVERY_EV 3 +/* Encounter unexpected vm-exit reason */ +#define KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON 4 + +/* Flags that describe what fields in emulation_failure hold valid data. */ +#define KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES (1ULL << 0) + +typedef uint32_t __u32; +typedef uint16_t __u16; +typedef uint8_t __u8; +typedef uint64_t __u64; struct kvm_userspace_memory_region { uint32_t slot; // 要在哪个slot上注册内存区间 @@ -49,71 +84,437 @@ struct kvm_regs { uint64_t rip, rflags; }; -int guest_code(){ - while (1) - { - // printf("guest code\n"); - __asm__ __volatile__ ( - "mov %rax, 0\n\t" - "mov %rcx, 0\n\t" - "cpuid\n\t" - ); - } - return 0; -} +struct kvm_segment { + uint64_t base; + uint32_t limit; + uint16_t selector; + uint8_t type; + uint8_t present, dpl, db, s, l, g, avl; + uint8_t unusable; + uint8_t padding; +}; + +struct kvm_dtable { + uint64_t base; + uint16_t limit; + uint16_t padding[3]; +}; + +struct kvm_sregs { + /* out (KVM_GET_SREGS) / in (KVM_SET_SREGS) */ + struct kvm_segment cs, ds, es, fs, gs, ss; + struct kvm_segment tr, ldt; + struct kvm_dtable gdt, idt; + uint64_t cr0, cr2, cr3, cr4, cr8; + uint64_t efer; + uint64_t apic_base; + uint64_t interrupt_bitmap[(256 + 63) / 64]; +}; + +struct kvm_hyperv_exit { +#define KVM_EXIT_HYPERV_SYNIC 1 +#define KVM_EXIT_HYPERV_HCALL 2 +#define KVM_EXIT_HYPERV_SYNDBG 3 + __u32 type; + __u32 pad1; + union { + struct { + __u32 msr; + __u32 pad2; + __u64 control; + __u64 evt_page; + __u64 msg_page; + } synic; + struct { + __u64 input; + __u64 result; + __u64 params[2]; + } hcall; + struct { + __u32 msr; + __u32 pad2; + __u64 control; + __u64 status; + __u64 send_page; + __u64 recv_page; + __u64 pending_page; + } syndbg; + } u; +}; + +struct kvm_xen_exit { +#define KVM_EXIT_XEN_HCALL 1 + __u32 type; + union { + struct { + __u32 longmode; + __u32 cpl; + __u64 input; + __u64 result; + __u64 params[6]; + } hcall; + } u; +}; + +/* for KVM_GET/SET_VCPU_EVENTS */ +struct kvm_vcpu_events { + struct { + __u8 injected; + __u8 nr; + __u8 has_error_code; + __u8 pending; + __u32 error_code; + } exception; + struct { + __u8 injected; + __u8 nr; + __u8 soft; + __u8 shadow; + } interrupt; + struct { + __u8 injected; + __u8 pending; + __u8 masked; + __u8 pad; + } nmi; + __u32 sipi_vector; + __u32 flags; + struct { + __u8 smm; + __u8 pending; + __u8 smm_inside_nmi; + __u8 latched_init; + } smi; + __u8 reserved[27]; + __u8 exception_has_payload; + __u64 exception_payload; +}; + +/* kvm_sync_regs struct included by kvm_run struct */ +struct kvm_sync_regs { + /* Members of this structure are potentially malicious. + * Care must be taken by code reading, esp. interpreting, + * data fields from them inside KVM to prevent TOCTOU and + * double-fetch types of vulnerabilities. + */ + struct kvm_regs regs; + struct kvm_sregs sregs; + struct kvm_vcpu_events events; +}; -int main() -{ - printf("Test kvm running...\n"); - printf("Open /dev/kvm\n"); - int kvm_fd = open("/dev/kvm", O_RDWR|O_CLOEXEC); - int vmfd = ioctl(kvm_fd, KVM_CREATE_VM, 0); - printf("vmfd=%d\n", vmfd); - - /* - __asm__ __volatile__ ( - "mov %rax, 0\n\t" - "mov %rcx, 0\n\t" - "cpuid\n\t" - ); - */ - const uint8_t code[] = { - 0xba, 0xf8, 0x03, /* mov $0x3f8, %dx */ - 0x00, 0xd8, /* add %bl, %al */ - 0x04, '0', /* add $'0', %al */ - 0xee, /* out %al, (%dx) */ - 0xb0, '\n', /* mov $'\n', %al */ - 0xee, /* out %al, (%dx) */ - 0xf4, /* hlt */ - }; - - size_t mem_size = 0x1000; // size of user memory you want to assign - printf("code=%p\n", code); - void *mem = mmap((void*)65536, mem_size, 0x7, 0x20, 0,0); - memcpy(mem, code, sizeof(code)); - printf("map mem=%p\n", mem); - struct kvm_userspace_memory_region region = { - .slot = 0, - .flags = 0, - .guest_phys_addr = 0, - .memory_size = mem_size, - .userspace_addr = (size_t)mem - }; - ioctl(vmfd, KVM_SET_USER_MEMORY_REGION, ®ion); - - int vcpufd = ioctl(vmfd, KVM_CREATE_VCPU, 0); - printf("vcpufd=%d\n", vcpufd); - int user_entry = 0x0; - - struct kvm_regs regs = {0}; - regs.rip = user_entry; - regs.rsp = 0x3000; // stack address - regs.rflags = 0x2; // in x86 the 0x2 bit should always be set - ioctl(vcpufd, KVM_SET_REGS, ®s); // set registers - - ioctl(vcpufd, KVM_RUN, 0); +struct kvm_debug_exit_arch { + __u32 exception; + __u32 pad; + __u64 pc; + __u64 dr6; + __u64 dr7; +}; + +/* for KVM_RUN, returned by mmap(vcpu_fd, offset=0) */ +struct kvm_run { + /* in */ + uint8_t request_interrupt_window; + uint8_t immediate_exit; + uint8_t padding1[6]; + + /* out */ + uint32_t exit_reason; + uint8_t ready_for_interrupt_injection; + uint8_t if_flag; + uint16_t flags; + + /* in (pre_kvm_run), out (post_kvm_run) */ + uint64_t cr8; + uint64_t apic_base; + +#ifdef __KVM_S390 + /* the processor status word for s390 */ + uint64_t psw_mask; /* psw upper half */ + uint64_t psw_addr; /* psw lower half */ +#endif + union { + /* KVM_EXIT_UNKNOWN */ + struct { + uint64_t hardware_exit_reason; + } hw; + /* KVM_EXIT_FAIL_ENTRY */ + struct { + uint64_t hardware_entry_failure_reason; + uint32_t cpu; + } fail_entry; + /* KVM_EXIT_EXCEPTION */ + struct { + uint32_t exception; + uint32_t error_code; + } ex; + /* KVM_EXIT_IO */ + struct { +#define KVM_EXIT_IO_IN 0 +#define KVM_EXIT_IO_OUT 1 + uint8_t direction; + uint8_t size; /* bytes */ + uint16_t port; + uint32_t count; + uint64_t data_offset; /* relative to kvm_run start */ + } io; + /* KVM_EXIT_DEBUG */ + struct { + struct kvm_debug_exit_arch arch; + } debug; + /* KVM_EXIT_MMIO */ + struct { + uint64_t phys_addr; + uint8_t data[8]; + uint32_t len; + uint8_t is_write; + } mmio; + /* KVM_EXIT_HYPERCALL */ + struct { + uint64_t nr; + uint64_t args[6]; + uint64_t ret; + uint32_t longmode; + uint32_t pad; + } hypercall; + /* KVM_EXIT_TPR_ACCESS */ + struct { + uint64_t rip; + uint32_t is_write; + uint32_t pad; + } tpr_access; + /* KVM_EXIT_S390_SIEIC */ + struct { + uint8_t icptcode; + uint16_t ipa; + uint32_t ipb; + } s390_sieic; + /* KVM_EXIT_S390_RESET */ +#define KVM_S390_RESET_POR 1 +#define KVM_S390_RESET_CLEAR 2 +#define KVM_S390_RESET_SUBSYSTEM 4 +#define KVM_S390_RESET_CPU_INIT 8 +#define KVM_S390_RESET_IPL 16 + uint64_t s390_reset_flags; + /* KVM_EXIT_S390_UCONTROL */ + struct { + uint64_t trans_exc_code; + uint32_t pgm_code; + } s390_ucontrol; + /* KVM_EXIT_DCR (deprecated) */ + struct { + uint32_t dcrn; + uint32_t data; + uint8_t is_write; + } dcr; + /* KVM_EXIT_INTERNAL_ERROR */ + struct { + uint32_t suberror; + /* Available with KVM_CAP_INTERNAL_ERROR_DATA: */ + uint32_t ndata; + uint64_t data[16]; + } internal; + /* + * KVM_INTERNAL_ERROR_EMULATION + * + * "struct emulation_failure" is an overlay of "struct internal" + * that is used for the KVM_INTERNAL_ERROR_EMULATION sub-type of + * KVM_EXIT_INTERNAL_ERROR. Note, unlike other internal error + * sub-types, this struct is ABI! It also needs to be backwards + * compatible with "struct internal". Take special care that + * "ndata" is correct, that new fields are enumerated in "flags", + * and that each flag enumerates fields that are 64-bit aligned + * and sized (so that ndata+internal.data[] is valid/accurate). + */ + struct { + uint32_t suberror; + uint32_t ndata; + uint64_t flags; + uint8_t insn_size; + uint8_t insn_bytes[15]; + } emulation_failure; + /* KVM_EXIT_OSI */ + struct { + uint64_t gprs[32]; + } osi; + /* KVM_EXIT_PAPR_HCALL */ + struct { + uint64_t nr; + uint64_t ret; + uint64_t args[9]; + } papr_hcall; + /* KVM_EXIT_S390_TSCH */ + struct { + uint16_t subchannel_id; + uint16_t subchannel_nr; + uint32_t io_int_parm; + uint32_t io_int_word; + uint32_t ipb; + uint8_t dequeued; + } s390_tsch; + /* KVM_EXIT_EPR */ + struct { + uint32_t epr; + } epr; + /* KVM_EXIT_SYSTEM_EVENT */ + struct { +#define KVM_SYSTEM_EVENT_SHUTDOWN 1 +#define KVM_SYSTEM_EVENT_RESET 2 +#define KVM_SYSTEM_EVENT_CRASH 3 + uint32_t type; + uint64_t flags; + } system_event; + /* KVM_EXIT_S390_STSI */ + struct { + uint64_t addr; + uint8_t ar; + uint8_t reserved; + uint8_t fc; + uint8_t sel1; + uint16_t sel2; + } s390_stsi; + /* KVM_EXIT_IOAPIC_EOI */ + struct { + uint8_t vector; + } eoi; + /* KVM_EXIT_HYPERV */ + struct kvm_hyperv_exit hyperv; + /* KVM_EXIT_ARM_NISV */ + struct { + uint64_t esr_iss; + uint64_t fault_ipa; + } arm_nisv; + /* KVM_EXIT_X86_RDMSR / KVM_EXIT_X86_WRMSR */ + struct { + uint8_t error; /* user -> kernel */ + uint8_t pad[7]; +#define KVM_MSR_EXIT_REASON_INVAL (1 << 0) +#define KVM_MSR_EXIT_REASON_UNKNOWN (1 << 1) +#define KVM_MSR_EXIT_REASON_FILTER (1 << 2) + uint32_t reason; /* kernel -> user */ + uint32_t index; /* kernel -> user */ + uint64_t data; /* kernel <-> user */ + } msr; + /* KVM_EXIT_XEN */ + struct kvm_xen_exit xen; + /* Fix the size of the union. */ + char padding[256]; + }; + + /* 2048 is the size of the char array used to bound/pad the size + * of the union that holds sync regs. + */ + #define SYNC_REGS_SIZE_BYTES 2048 + /* + * shared registers between kvm and userspace. + * kvm_valid_regs specifies the register classes set by the host + * kvm_dirty_regs specified the register classes dirtied by userspace + * struct kvm_sync_regs is architecture specific, as well as the + * bits for kvm_valid_regs and kvm_dirty_regs + */ + uint64_t kvm_valid_regs; + uint64_t kvm_dirty_regs; + union { + struct kvm_sync_regs regs; + char padding[SYNC_REGS_SIZE_BYTES]; + } s; +}; + +#define KVM_CREATE_VM 0xAE01 +#define KVM_CREATE_VCPU 0xAE41 +#define KVM_SET_USER_MEMORY_REGION 0xAE46 +#define KVM_GET_VCPU_MMAP_SIZE 0xAE04 +#define KVM_GET_REGS 0xAE81 +#define KVM_SET_REGS 0xAE82 +#define KVM_GET_SREGS 0xAE83 +#define KVM_SET_SREGS 0xAE84 + +#define KVM_RUN 0xAE80 + +int kvm(uint8_t code[], size_t code_len) { + // step 1, open /dev/kvm + int kvmfd = open("/dev/kvm", O_RDWR|O_CLOEXEC); + if(kvmfd == -1) { + printf("failed to open /dev/kvm\n"); return 0; + } + + // step 2, create VM + int vmfd = ioctl(kvmfd, KVM_CREATE_VM, 0); + printf("vmfd %d\n",vmfd); + // step 3, set up user memory region + size_t mem_size = 0x4000; // size of user memory you want to assign + void *mem = mmap(0, mem_size, PROT_READ|PROT_WRITE, + MAP_SHARED|MAP_ANONYMOUS, -1, 0); + + printf("map mem %p\n",mem); + int user_entry = 0x0; + memcpy((void*)((size_t)mem + user_entry), code, code_len); + struct kvm_userspace_memory_region region = { + .slot = 0, + .flags = 0, + .guest_phys_addr = 0, + .memory_size = mem_size, + .userspace_addr = (size_t)mem + }; + ioctl(vmfd, KVM_SET_USER_MEMORY_REGION, ®ion); + /* end of step 3 */ + + // step 4, create vCPU + int vcpufd = ioctl(vmfd, KVM_CREATE_VCPU, 0); + + // step 5, set up memory for vCPU + size_t vcpu_mmap_size = ioctl(kvmfd, KVM_GET_VCPU_MMAP_SIZE, NULL); + struct kvm_run* run = (struct kvm_run*) mmap(0, vcpu_mmap_size, PROT_READ | PROT_WRITE, MAP_SHARED, vcpufd, 0); + + // step 6, set up vCPU's registers + /* standard registers include general-purpose registers and flags */ + struct kvm_regs regs; + ioctl(vcpufd, KVM_GET_REGS, ®s); + regs.rip = user_entry; + regs.rsp = 0x200000; // stack address + regs.rflags = 0x2; // in x86 the 0x2 bit should always be set + ioctl(vcpufd, KVM_SET_REGS, ®s); // set registers + + /* special registers include segment registers */ + struct kvm_sregs sregs; + ioctl(vcpufd, KVM_GET_SREGS, &sregs); + sregs.cs.base = sregs.cs.selector = 0; // let base of code segment equal to zero + ioctl(vcpufd, KVM_SET_SREGS, &sregs); + + // step 7, execute vm and handle exit reason + while (1) { + ioctl(vcpufd, KVM_RUN, NULL); + switch (run->exit_reason) { + case KVM_EXIT_HLT: + fputs("KVM_EXIT_HLT", stderr); + return 0; + case KVM_EXIT_IO: + /* TODO: check port and direction here */ + putchar(*(((char *)run) + run->io.data_offset)); + break; + case KVM_EXIT_FAIL_ENTRY: + printf("KVM_EXIT_FAIL_ENTRY: hardware_entry_failure_reason = 0x%lx", + run->fail_entry.hardware_entry_failure_reason); + return 0; + case KVM_EXIT_INTERNAL_ERROR: + printf("KVM_EXIT_INTERNAL_ERROR: suberror = 0x%x", + run->internal.suberror); + return 0; + case KVM_EXIT_SHUTDOWN: + printf("KVM_EXIT_SHUTDOWN"); + return 0; + default: + printf("Unhandled reason: %d", run->exit_reason); + return 0; + } + } } +int main() { + uint8_t code[] = "\xB0\x61\xBA\x17\x02\xEE\xB0\n\xEE\xF4"; + kvm(code, sizeof(code)); + return 0; +} + \ No newline at end of file From 53f72aa9fac96df904cd54b6db78fea163e54393 Mon Sep 17 00:00:00 2001 From: GnoCiYeH Date: Fri, 30 Aug 2024 17:42:55 +0800 Subject: [PATCH 06/18] =?UTF-8?q?=E6=95=B4=E7=90=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/src/arch/x86_64/vm/asm.rs | 2 +- kernel/src/arch/x86_64/vm/kvm_host/lapic.rs | 2 +- kernel/src/arch/x86_64/vm/kvm_host/mod.rs | 2 +- kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs | 39 ++++++-- kernel/src/arch/x86_64/vm/mmu.rs | 5 +- kernel/src/arch/x86_64/vm/mod.rs | 4 +- kernel/src/arch/x86_64/vm/vmx/mod.rs | 103 +++++++++++--------- kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs | 5 +- kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs | 26 +++-- kernel/src/virt/vm/kvm_host/mem.rs | 16 +-- 10 files changed, 125 insertions(+), 79 deletions(-) diff --git a/kernel/src/arch/x86_64/vm/asm.rs b/kernel/src/arch/x86_64/vm/asm.rs index c3cb826ee..2a299e17d 100644 --- a/kernel/src/arch/x86_64/vm/asm.rs +++ b/kernel/src/arch/x86_64/vm/asm.rs @@ -110,7 +110,7 @@ impl VmxAsm { pub fn vmx_vmwrite(vmcs_field: u32, value: u64) { unsafe { x86::bits64::vmx::vmwrite(vmcs_field, value) - .expect(&format!("vmcs_field: {:x} vmx_write fail", vmcs_field)) + .unwrap_or_else(|_| panic!("vmcs_field: {:x} vmx_write fail", vmcs_field)) } } diff --git a/kernel/src/arch/x86_64/vm/kvm_host/lapic.rs b/kernel/src/arch/x86_64/vm/kvm_host/lapic.rs index c71d1cd9f..90a4bbda9 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/lapic.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/lapic.rs @@ -54,7 +54,7 @@ impl VirtCpu { } if (old_val ^ value) & MSR_IA32_APICBASE_ENABLE != 0 { - if value & MSR_IA32_APICBASE_ENABLE != 0 {} + // if value & MSR_IA32_APICBASE_ENABLE != 0 {} } todo!() diff --git a/kernel/src/arch/x86_64/vm/kvm_host/mod.rs b/kernel/src/arch/x86_64/vm/kvm_host/mod.rs index e61cb5047..6f8445048 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/mod.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/mod.rs @@ -93,7 +93,7 @@ impl X86KvmArch { pub fn msr_allowed(&self, msr: u32, ftype: MsrFilterType) -> bool { // x2APIC MSRs - if msr >= 0x800 && msr <= 0x8ff { + if (0x800..=0x8ff).contains(&msr) { return true; } diff --git a/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs b/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs index e640fc3b4..8269a8776 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs @@ -134,6 +134,8 @@ pub struct X86VcpuArch { pub nmi_pending: u32, pub nmi_injected: bool, + pub handling_intr_from_guest: KvmIntrType, + pub xfd_no_write_intercept: bool, pub l1tf_flush_l1d: bool, @@ -561,6 +563,18 @@ impl X86VcpuArch { } } } + + pub fn kvm_before_interrupt(&mut self, intr: KvmIntrType) { + barrier::mfence(); + self.handling_intr_from_guest = intr; + barrier::mfence(); + } + + pub fn kvm_after_interrupt(&mut self) { + barrier::mfence(); + self.handling_intr_from_guest = KvmIntrType::None; + barrier::mfence(); + } } impl VirtCpu { @@ -595,7 +609,7 @@ impl VirtCpu { } #[inline] - pub fn kvm_run(&self) -> &Box { + pub fn kvm_run(&self) -> &UapiKvmRun { self.run.as_ref().unwrap() } @@ -1257,10 +1271,11 @@ impl VirtCpu { return Ok(()); } - let mut dt: DescriptorTablePointer = DescriptorTablePointer::default(); + let mut dt: DescriptorTablePointer = DescriptorTablePointer { + limit: sregs.idt.limit, + base: sregs.idt.base as usize as *const u8, + }; - dt.limit = sregs.idt.limit; - dt.base = sregs.idt.base as usize as *const u8; x86_kvm_ops().set_idt(self, &dt); dt.limit = sregs.gdt.limit; @@ -1274,7 +1289,7 @@ impl VirtCpu { self.arch.mark_register_dirty(KvmReg::VcpuExregCr3); - x86_kvm_ops().post_set_cr3(&self, sregs.cr3); + x86_kvm_ops().post_set_cr3(self, sregs.cr3); self.kvm_set_cr8(sregs.cr8); @@ -1335,12 +1350,9 @@ impl VirtCpu { } // TODO: legal gpa? - } else { - if efer.contains(EferFlags::LONG_MODE_ACTIVE) || sregs.cs.l != 0 { - return false; - } + } else if efer.contains(EferFlags::LONG_MODE_ACTIVE) || sregs.cs.l != 0 { + return false; } - return self.kvm_is_vaild_cr0(cr0) && self.kvm_is_vaild_cr4(cr4); } @@ -1621,3 +1633,10 @@ pub struct KvmAsyncPageFault { impl KvmAsyncPageFault { pub const ASYNC_PF_PER_VCPU: usize = 64; } + +#[derive(Debug)] +pub enum KvmIntrType { + None, + Irq, + Nmi, +} diff --git a/kernel/src/arch/x86_64/vm/mmu.rs b/kernel/src/arch/x86_64/vm/mmu.rs index 504e9a107..c250dade1 100644 --- a/kernel/src/arch/x86_64/vm/mmu.rs +++ b/kernel/src/arch/x86_64/vm/mmu.rs @@ -1,4 +1,4 @@ -use crate::{arch::mm::X86_64MMArch, kdebug}; +use crate::{arch::mm::X86_64MMArch, kdebug, kwarn}; use alloc::{sync::Arc, vec::Vec}; use bitfield_struct::bitfield; use core::intrinsics::likely; @@ -371,10 +371,13 @@ impl VirtCpuArch { if !context.cpu_role.base.is_cr0_pg() { // todo: context->gva_to_gpa = nonpaging_gva_to_gpa; + kwarn!("context->gva_to_gpa = nonpaging_gva_to_gpa todo!"); } else if context.cpu_role.base.is_cr4_pae() { // todo: context->gva_to_gpa = paging64_gva_to_gpa; + kwarn!("context->gva_to_gpa = paging64_gva_to_gpa todo!"); } else { // todo: context->gva_to_gpa = paging32_gva_to_gpa; + kwarn!("context->gva_to_gpa = paging32_gva_to_gpa todo!"); } // todo: diff --git a/kernel/src/arch/x86_64/vm/mod.rs b/kernel/src/arch/x86_64/vm/mod.rs index 4f9af1cc6..634b1561b 100644 --- a/kernel/src/arch/x86_64/vm/mod.rs +++ b/kernel/src/arch/x86_64/vm/mod.rs @@ -143,7 +143,7 @@ impl KvmArchManager { pub fn mpx_supported(&self) -> bool { self.kvm_caps.supported_xcr0 & (Xcr0::XCR0_BNDREG_STATE | Xcr0::XCR0_BNDCSR_STATE) - == (Xcr0::XCR0_BNDREG_STATE | Xcr0::XCR0_BNDREG_STATE) + == (Xcr0::XCR0_BNDREG_STATE | Xcr0::XCR0_BNDCSR_STATE) } pub const KVM_MAX_VCPUS: usize = 1024; @@ -511,7 +511,7 @@ impl KvmArchManager { & ArchCapabilities::KVM_SUPPORTED_ARCH_CAP; data.insert(ArchCapabilities::ARCH_CAP_PSCHANGE_MC_NO); - if *L1TF_VMX_MITIGATION.read() != VmxL1dFlushState::FlushNever { + if *L1TF_VMX_MITIGATION.read() != VmxL1dFlushState::Never { data.insert(ArchCapabilities::ARCH_CAP_SKIP_VMENTRY_L1DFLUSH); } diff --git a/kernel/src/arch/x86_64/vm/vmx/mod.rs b/kernel/src/arch/x86_64/vm/vmx/mod.rs index cd618ca51..eea64ea7a 100644 --- a/kernel/src/arch/x86_64/vm/vmx/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/mod.rs @@ -1,6 +1,7 @@ use core::intrinsics::likely; use core::intrinsics::unlikely; use core::sync::atomic::{AtomicBool, Ordering}; +use x86::segmentation::GateDescriptorBuilder; use x86_64::registers::control::Cr3Flags; use x86_64::structures::paging::PhysFrame; @@ -89,6 +90,7 @@ use self::{ use super::asm::IntrInfo; use super::asm::SegmentCacheField; +use super::kvm_host::vcpu::KvmIntrType; use super::kvm_host::RMODE_TSS_SIZE; use super::x86_kvm_ops; use super::{ @@ -126,6 +128,7 @@ impl VmxKvmInitFunc { } impl KvmInitFunc for VmxKvmInitFunc { + #[allow(clippy::borrow_interior_mutable_const)] #[inline(never)] fn hardware_setup(&self) -> Result<(), SystemError> { let idt = sidt(); @@ -309,6 +312,7 @@ pub struct VmxKvmFuncConfig { } impl VmxKvmFunc { + #[allow(clippy::declare_interior_mutable_const)] pub const CONFIG: RwLock = RwLock::new(VmxKvmFuncConfig { have_set_apic_access_page_addr: true, have_update_cr8_intercept: true, @@ -398,7 +402,7 @@ impl VmxKvmFunc { } } - let _ = current_loaded_vmcs_list_mut().extract_if(|x| Arc::ptr_eq(&x, loaded_vmcs)); + let _ = current_loaded_vmcs_list_mut().extract_if(|x| Arc::ptr_eq(x, loaded_vmcs)); guard.cpu = ProcessorId::INVALID; guard.launched = false; @@ -866,7 +870,7 @@ impl KvmFunc for VmxKvmFunc { eb = !0; } - if !vmx_info().vmx_need_pf_intercept(&vcpu) { + if !vmx_info().vmx_need_pf_intercept(vcpu) { eb &= !(1 << PF_VECTOR); } @@ -1048,9 +1052,10 @@ impl KvmFunc for VmxKvmFunc { vcpu.arch.clear_dirty(); - let cr3: (PhysFrame,Cr3Flags) = Cr3::read(); + let cr3: (PhysFrame, Cr3Flags) = Cr3::read(); if unlikely(cr3 != vcpu.vmx().loaded_vmcs().host_state.cr3) { - let cr3_combined: u64 = (cr3.0.start_address().as_u64() & 0xFFFF_FFFF_FFFF_F000) | (cr3.1.bits() & 0xFFF); + let cr3_combined: u64 = + (cr3.0.start_address().as_u64() & 0xFFFF_FFFF_FFFF_F000) | (cr3.1.bits() & 0xFFF); VmxAsm::vmx_vmwrite(host::CR3, cr3_combined); vcpu.vmx().loaded_vmcs().host_state.cr3 = cr3; } @@ -1175,13 +1180,11 @@ impl KvmFunc for VmxKvmFunc { fn flush_tlb_all(&self, vcpu: &mut VirtCpu) { if vmx_info().enable_ept { VmxAsm::ept_sync_global(); + } else if vmx_info().has_invvpid_global() { + VmxAsm::sync_vcpu_global(); } else { - if vmx_info().has_invvpid_global() { - VmxAsm::sync_vcpu_global(); - } else { - VmxAsm::sync_vcpu_single(vcpu.vmx().vpid); - // TODO: 嵌套:VmxAsm::sync_vcpu_single(vcpu.vmx().nested.vpid02); - } + VmxAsm::sync_vcpu_single(vcpu.vmx().vpid); + // TODO: 嵌套:VmxAsm::sync_vcpu_single(vcpu.vmx().nested.vpid02); } } @@ -1193,7 +1196,7 @@ impl KvmFunc for VmxKvmFunc { let basic = VmxExitReasonBasic::from(vcpu.vmx().exit_reason.basic()); if basic == VmxExitReasonBasic::EXTERNAL_INTERRUPT { - todo!() + Vmx::handle_external_interrupt_irqoff(vcpu); } else if basic == VmxExitReasonBasic::EXCEPTION_OR_NMI { todo!() } @@ -1330,9 +1333,7 @@ impl Vmx { self.nested = false; self.enable_vmware_backdoor = false; } -} -impl Vmx { /* * Internal error codes that are used to indicate that MSR emulation encountered * an error that should result in #GP in the guest, unless userspace @@ -1385,7 +1386,7 @@ impl Vmx { #[inline(never)] pub fn set_up_user_return_msrs() { - const VMX_URET_MSRS_LIST: &'static [u32] = &[ + const VMX_URET_MSRS_LIST: &[u32] = &[ msr::IA32_FMASK, msr::IA32_LSTAR, msr::IA32_CSTAR, @@ -1408,7 +1409,7 @@ impl Vmx { vmcs_config: &mut VmcsConfig, vmx_cap: &mut VmxCapability, ) -> Result<(), SystemError> { - const VMCS_ENTRY_EXIT_PAIRS: &'static [VmcsEntryExitPair] = &[ + const VMCS_ENTRY_EXIT_PAIRS: &[VmcsEntryExitPair] = &[ VmcsEntryExitPair::new( EntryControls::LOAD_IA32_PERF_GLOBAL_CTRL, ExitControls::LOAD_IA32_PERF_GLOBAL_CTRL, @@ -1650,7 +1651,7 @@ impl Vmx { fn setup_l1d_flush(&self) { // TODO:先这样写 - *L1TF_VMX_MITIGATION.write() = VmxL1dFlushState::FlushNotRequired; + *L1TF_VMX_MITIGATION.write() = VmxL1dFlushState::NotRequired; } pub fn construct_eptp(&self, vcpu: &mut VirtCpu, root_hpa: u64, root_level: u32) -> u64 { @@ -2278,8 +2279,8 @@ impl Vmx { if guest_efer != x86_kvm_manager().host_efer { vcpu.vmx_mut().add_atomic_switch_msr( msr::IA32_EFER, - guest_efer.bits().into(), - x86_kvm_manager().host_efer.bits().into(), + guest_efer.bits(), + x86_kvm_manager().host_efer.bits(), false, ); } else { @@ -2296,8 +2297,8 @@ impl Vmx { guest_efer.remove(ignore_efer); guest_efer.insert(x86_kvm_manager().host_efer & ignore_efer); - vcpu.vmx_mut().guest_uret_msrs[i].data = guest_efer.bits().into(); - vcpu.vmx_mut().guest_uret_msrs[i].mask = (!ignore_efer).bits().into(); + vcpu.vmx_mut().guest_uret_msrs[i].data = guest_efer.bits(); + vcpu.vmx_mut().guest_uret_msrs[i].mask = (!ignore_efer).bits(); return true; } else { return false; @@ -2343,7 +2344,8 @@ impl Vmx { VmxAsm::vmx_vmwrite(host::CR0, unsafe { cr0() }.bits() as u64); let cr3: (PhysFrame, Cr3Flags) = Cr3::read(); - let cr3_combined: u64 = (cr3.0.start_address().as_u64() & 0xFFFF_FFFF_FFFF_F000) | (cr3.1.bits() & 0xFFF); + let cr3_combined: u64 = + (cr3.0.start_address().as_u64() & 0xFFFF_FFFF_FFFF_F000) | (cr3.1.bits() & 0xFFF); VmxAsm::vmx_vmwrite(host::CR3, cr3_combined); loaded_vmcs_host_state.cr3 = cr3; @@ -2369,7 +2371,7 @@ impl Vmx { ); VmxAsm::vmx_vmwrite(host::IDTR_BASE, self.host_idt_base); - VmxAsm::vmx_vmwrite(host::RIP, vmx_vmexit as u64); + VmxAsm::vmx_vmwrite(host::RIP, vmx_vmexit as usize as u64); let val = unsafe { rdmsr(msr::IA32_SYSENTER_CS) }; @@ -2701,7 +2703,7 @@ impl Vmx { if !vmx_info().emulate_invalid_guest_state { var.selector = (var.base >> 4) as u16; - var.base = var.base & 0xffff0; + var.base &= 0xffff0; var.limit = 0xffff; var.g = 0; var.db = 0; @@ -2933,7 +2935,7 @@ impl Vmx { if VmxExitReasonBasic::from(vcpu.vmx().exit_reason.basic()) == VmxExitReasonBasic::EXCEPTION_OR_NMI - && VmcsIntrHelper::is_nmi(Vmx::vmx_get_intr_info(vcpu)) + && VmcsIntrHelper::is_nmi(&Vmx::vmx_get_intr_info(vcpu)) { todo!() } @@ -3040,6 +3042,23 @@ impl Vmx { todo!() } + #[allow(unreachable_code)] + pub fn handle_external_interrupt_irqoff(vcpu: &mut VirtCpu) { + let intr_info = Vmx::vmx_get_intr_info(vcpu); + let vector = intr_info & IntrInfo::INTR_INFO_VECTOR_MASK; + // let desc = vmx_info().host_idt_base + vector.bits() as u64; + if !VmcsIntrHelper::is_external_intr(&intr_info) { + kerror!("unexpected VM-Exit interrupt info: {:?}", intr_info); + return; + } + + vcpu.arch.kvm_before_interrupt(KvmIntrType::Irq); + todo!(); + vcpu.arch.kvm_after_interrupt(); + + vcpu.arch.at_instruction_boundary = true; + } + /// 需要在缓存中更新的寄存器集。此处未列出的其他寄存器在 VM 退出后立即同步到缓存。 pub const VMX_REGS_LAZY_LOAD_SET: &'static [usize] = &[ KvmReg::VcpuRegsRip as usize, @@ -3111,13 +3130,7 @@ impl VmxMsrs { pub const MAX_NR_LOADSTORE_MSRS: usize = 8; pub fn find_loadstore_msr_slot(&self, msr: u32) -> Option { - for i in 0..self.nr { - if self.val[i].index == msr { - return Some(i); - } - } - - None + return (0..self.nr).find(|&i| self.val[i].index == msr); } } @@ -3510,12 +3523,12 @@ impl VmxVCpuPriv { return; } - let i = if i.is_none() { + let i = if let Some(i) = i { + i + } else { m.guest.nr += 1; VmxAsm::vmx_vmwrite(control::VMENTRY_MSR_LOAD_COUNT, m.guest.nr as u64); m.guest.nr - } else { - i.unwrap() }; m.guest.val[i].index = msr; @@ -3525,12 +3538,12 @@ impl VmxVCpuPriv { return; } - let j = if j.is_none() { + let j = if let Some(j) = j { + j + } else { m.host.nr += 1; VmxAsm::vmx_vmwrite(control::VMEXIT_MSR_LOAD_COUNT, m.host.nr as u64); m.host.nr - } else { - j.unwrap() }; m.host.val[j].index = msr; @@ -3601,12 +3614,12 @@ bitflags! { #[derive(Debug, PartialEq)] #[allow(dead_code)] pub enum VmxL1dFlushState { - FlushAuto, - FlushNever, - FlushCond, - FlushAlways, - FlushEptDisabled, - FlushNotRequired, + Auto, + Never, + Cond, + Always, + EptDisabled, + NotRequired, } pub struct VmxSegmentField { @@ -3616,7 +3629,7 @@ pub struct VmxSegmentField { ar_bytes: u32, } -pub const KVM_VMX_SEGMENT_FIELDS: &'static [VmxSegmentField] = &[ +pub const KVM_VMX_SEGMENT_FIELDS: &[VmxSegmentField] = &[ // CS VmxSegmentField { selector: guest::CS_SELECTOR, @@ -3675,7 +3688,7 @@ pub const KVM_VMX_SEGMENT_FIELDS: &'static [VmxSegmentField] = &[ }, ]; -pub static L1TF_VMX_MITIGATION: RwLock = RwLock::new(VmxL1dFlushState::FlushAuto); +pub static L1TF_VMX_MITIGATION: RwLock = RwLock::new(VmxL1dFlushState::Auto); pub fn vmx_init() -> Result<(), SystemError> { let cpuid = CpuId::new(); diff --git a/kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs b/kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs index 7533bf650..77aa91a8d 100644 --- a/kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs +++ b/kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs @@ -85,9 +85,8 @@ impl VmxFeat { pub const KVM_REQUIRED_VMX_PIN_BASED_VM_EXEC_CONTROL: u32 = PinbasedControls::EXTERNAL_INTERRUPT_EXITING.bits() | PinbasedControls::NMI_EXITING.bits(); - pub const KVM_OPTIONAL_VMX_PIN_BASED_VM_EXEC_CONTROL: u32 = PinbasedControls::VIRTUAL_NMIS - .bits() - | PinbasedControls::POSTED_INTERRUPTS.bits(); + pub const KVM_OPTIONAL_VMX_PIN_BASED_VM_EXEC_CONTROL: u32 = + PinbasedControls::VIRTUAL_NMIS.bits() | PinbasedControls::POSTED_INTERRUPTS.bits(); pub const KVM_REQUIRED_VMX_VM_ENTRY_CONTROLS: u32 = EntryControls::LOAD_DEBUG_CONTROLS.bits() | EntryControls::IA32E_MODE_GUEST.bits(); diff --git a/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs b/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs index bff5b0d09..aec434aa5 100644 --- a/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs @@ -121,7 +121,7 @@ impl LockedVMControlStructure { #[derive(Debug)] pub struct VmcsHostState { - pub cr3:(PhysFrame,Cr3Flags), + pub cr3: (PhysFrame, Cr3Flags), pub cr4: Cr4, pub gs_base: usize, pub fs_base: usize, @@ -170,7 +170,10 @@ impl VmcsHostState { impl Default for VmcsHostState { fn default() -> Self { Self { - cr3: (PhysFrame::containing_address(x86_64::PhysAddr::new(0)), Cr3Flags::empty()), + cr3: ( + PhysFrame::containing_address(x86_64::PhysAddr::new(0)), + Cr3Flags::empty(), + ), cr4: Cr4::empty(), gs_base: 0, fs_base: 0, @@ -397,8 +400,10 @@ impl VmxMsrBitmap { ) -> bool { if msr <= 0x1fff { return self.bit_op(msr as usize, access.base(), action); - } else if msr >= 0xc0000000 && msr <= 0xc0001fff { - return self.bit_op(msr as usize, access.base(), action); + } else if (0xc0000000..=0xc0001fff).contains(&msr) { + // 这里是有问题的,需要后续检查 + // https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/vmx/vmx.h#450 + return self.bit_op(msr as usize & 0x1fff, access.base() + 0x400, action); } else { return true; } @@ -430,13 +435,18 @@ impl VmxMsrBitmap { pub struct VmcsIntrHelper; impl VmcsIntrHelper { - pub fn is_nmi(intr_info: IntrInfo) -> bool { + pub fn is_nmi(intr_info: &IntrInfo) -> bool { return Self::is_intr_type(intr_info, IntrType::INTR_TYPE_NMI_INTR); } - pub fn is_intr_type(intr_info: IntrInfo, intr_type: IntrType) -> bool { - return (intr_info & (IntrInfo::INTR_INFO_VALID_MASK | IntrInfo::INTR_INFO_INTR_TYPE_MASK)) + pub fn is_intr_type(intr_info: &IntrInfo, intr_type: IntrType) -> bool { + return (*intr_info + & (IntrInfo::INTR_INFO_VALID_MASK | IntrInfo::INTR_INFO_INTR_TYPE_MASK)) .bits() - == IntrInfo::INTR_INFO_VALID_MASK.bits() | intr_type.bits() as u32; + == IntrInfo::INTR_INFO_VALID_MASK.bits() | intr_type.bits(); + } + + pub fn is_external_intr(intr_info: &IntrInfo) -> bool { + return Self::is_intr_type(intr_info, IntrType::INTR_TYPE_EXT_INTR); } } diff --git a/kernel/src/virt/vm/kvm_host/mem.rs b/kernel/src/virt/vm/kvm_host/mem.rs index f284244e6..2a7746e7e 100644 --- a/kernel/src/virt/vm/kvm_host/mem.rs +++ b/kernel/src/virt/vm/kvm_host/mem.rs @@ -32,7 +32,7 @@ pub struct KvmMmuMemoryCache { gfp_custom: u32, capacity: usize, nobjs: usize, - objects: Option>>, + objects: Option>, } impl KvmMmuMemoryCache { #[allow(dead_code)] @@ -283,7 +283,7 @@ impl Vm { return Err(SystemError::EIO); } drop(slots_guard); - return self.set_memslot(Some(&old), None, KvmMemoryChangeMode::Delete); + return self.set_memslot(Some(old), None, KvmMemoryChangeMode::Delete); } else { return Err(SystemError::EINVAL); } @@ -325,10 +325,11 @@ impl Vm { } }; - if change == KvmMemoryChangeMode::Create || change == KvmMemoryChangeMode::Move { - if slots_guard.gfn_tree.contains_key(&base_gfn) { - return Err(SystemError::EEXIST); - } + if change == KvmMemoryChangeMode::Create + || change == KvmMemoryChangeMode::Move + || slots_guard.gfn_tree.contains_key(&base_gfn) + { + return Err(SystemError::EEXIST); } let new = LockedKvmMemSlot::new(); @@ -346,6 +347,7 @@ impl Vm { return self.set_memslot(old.as_ref(), Some(&new), change); } + #[allow(clippy::modulo_one)] #[inline] /// 获取活动内存插槽 fn memslot_set(&self, id: usize) -> &Arc { @@ -501,7 +503,7 @@ impl Vm { if let Some(last) = &slots_guard.last_use { if Arc::ptr_eq(last, old) { - slots_guard.last_use = new.map(|x| x.clone()); + slots_guard.last_use = new.cloned(); } } From a211e5a068b08dff576ff3484f33b71d42182635 Mon Sep 17 00:00:00 2001 From: Brahmamantra <2033552517@qq.com> Date: Tue, 17 Sep 2024 23:32:34 +0800 Subject: [PATCH 07/18] =?UTF-8?q?=E6=9A=82=E6=97=B6=E6=80=A7push=E5=88=B0h?= =?UTF-8?q?yc=E4=BB=93=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fixme.md | 36 ++ kernel/src/arch/x86_64/mod.rs | 1 + kernel/src/arch/x86_64/vm/kvm_host/mod.rs | 74 +++- kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs | 11 +- kernel/src/arch/x86_64/vm/{ => mmu}/mmu.rs | 101 ++++- kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs | 373 ++++++++++++++++++ kernel/src/arch/x86_64/vm/mmu/mod.rs | 4 + kernel/src/arch/x86_64/vm/mmu/pte.rs | 43 ++ kernel/src/arch/x86_64/vm/mmu/tdp_iter.rs | 203 ++++++++++ kernel/src/arch/x86_64/vm/mod.rs | 3 +- kernel/src/arch/x86_64/vm/mtrr.rs | 37 ++ kernel/src/arch/x86_64/vm/vmx/capabilities.rs | 7 +- kernel/src/arch/x86_64/vm/vmx/ept/mod.rs | 31 ++ kernel/src/arch/x86_64/vm/vmx/exit.rs | 142 ++++++- kernel/src/arch/x86_64/vm/vmx/mod.rs | 38 +- kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs | 5 +- kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs | 7 +- kernel/src/mm/mod.rs | 2 +- kernel/src/virt/vm/kvm_host/mem.rs | 173 +++++++- kernel/src/virt/vm/kvm_host/mod.rs | 25 +- kernel/src/virt/vm/kvm_host/vcpu.rs | 21 +- 21 files changed, 1279 insertions(+), 58 deletions(-) create mode 100644 fixme.md rename kernel/src/arch/x86_64/vm/{ => mmu}/mmu.rs (83%) create mode 100644 kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs create mode 100644 kernel/src/arch/x86_64/vm/mmu/mod.rs create mode 100644 kernel/src/arch/x86_64/vm/mmu/pte.rs create mode 100644 kernel/src/arch/x86_64/vm/mmu/tdp_iter.rs create mode 100644 kernel/src/arch/x86_64/vm/mtrr.rs create mode 100644 kernel/src/arch/x86_64/vm/vmx/ept/mod.rs diff --git a/fixme.md b/fixme.md new file mode 100644 index 000000000..0cd469b6a --- /dev/null +++ b/fixme.md @@ -0,0 +1,36 @@ +### fixme: +PageLevel的类型 +MTRR 是 x86 架构中的一组寄存器,用于控制不同内存区域的缓存属性。通过配置 MTRR,可以优化系统性能和兼容性。操作系统在启动时通常会配置 MTRR,以确保不同内存区域具有适当的缓存属性。 + +初次EPT_VIOLATION的时候,gpa=0,要建立从gpa到hpa的映射,也就是ept映射,处理完各个寄存器以及mmu等状态后 +- do_page_fault 初始化page_fault信息,能知道gfn + +- gfn_to_memslot 找到包含 gfn 的 memslot 的指针,放在page_fault.slot里面 + +- __gfn_to_hva_many 得到hva(照着之前的kvm写的)(要用到page_fault的slot) + +- hva_to_pfn 得到pfn,可以说相当于知道了hpa(照着之前的kvm写的),放在 page_fault.pfn里面 + +找到ept root物理地址 kernel/src/arch/x86_64/mm/mod.rs:184 + +### 疑问? +- 内核里面应该有相似的多级页表查询/映射的机制,是不是可以借鉴或者复用 kernel/src/mm/page.rs:712 kvm:kernel/src/arch/x86_64/kvm/vmx/ept.rs:91 + +- 我感觉得到ept root 物理地址(不知道存哪了,可能在真正要)后,按照索引在ept页表往下查,然后缺页就alloc块给它然后加入页表建立映射(gpa->hpa),直到找到目标层的level,[linux实现](https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/mmu/tdp_mmu.c?fi=kvm_tdp_mmu_map#952) + +- __va和virt_2_phys是一样的吗? + +- mm.h的作用 + + +### Debug +tdp_page_fault :at src/arch/x86_64/vm/mmu/mmu_internal.rs:233 +enter_guest : at src/arch/x86_64/vm/kvm_host/vcpu.rs:840 +handle_ept_violation :at src/arch/x86_64/vm/vmx/exit.rs:278 +try_handle_exit: at kernel/src/arch/x86_64/vm/vmx/exit.rs:250 +vmlaunch : at kernel/src/arch/x86_64/vm/vmx/vmenter.S:103 +page fault :kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs:105 + +kernel/src/mm/kernel_mapper.rs + + diff --git a/kernel/src/arch/x86_64/mod.rs b/kernel/src/arch/x86_64/mod.rs index 11c7ff27b..73cc1ea83 100644 --- a/kernel/src/arch/x86_64/mod.rs +++ b/kernel/src/arch/x86_64/mod.rs @@ -47,3 +47,4 @@ pub use crate::arch::vm::kvm_host::X86KvmArch as KvmArch; pub use crate::arch::vm::x86_kvm_ops as kvm_arch_ops; pub use crate::arch::vm::kvm_host::vcpu::X86VcpuArch as VirtCpuArch; +pub use crate::arch::vm::kvm_host::KvmVcpuStat as VirtCpuStat; diff --git a/kernel/src/arch/x86_64/vm/kvm_host/mod.rs b/kernel/src/arch/x86_64/vm/kvm_host/mod.rs index e61cb5047..f16093eac 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/mod.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/mod.rs @@ -1,4 +1,4 @@ -use core::fmt::Debug; +use core::{fmt::Debug, sync::atomic::AtomicU32}; use alloc::{boxed::Box, vec::Vec}; use bit_field::BitField; @@ -38,6 +38,8 @@ pub const TSS_IOPB_SIZE: usize = 65536 / 8; pub const TSS_REDIRECTION_SIZE: usize = 256 / 8; pub const RMODE_TSS_SIZE: usize = TSS_BASE_SIZE + TSS_REDIRECTION_SIZE + TSS_IOPB_SIZE + 1; +pub const KVM_PFN_NOSLOT:u64 = 0x1 << 63; + #[derive(Debug, Default)] pub struct X86KvmArch { /// 中断芯片模式 @@ -60,6 +62,8 @@ pub struct X86KvmArch { pub notify_window: u32, msr_fliter: Option>, + + pub noncoherent_dma_count:AtomicU32, } impl X86KvmArch { @@ -216,7 +220,7 @@ pub trait KvmFunc: Send + Sync + Debug { &self, vcpu: &mut VirtCpu, fastpath: ExitFastpathCompletion, - ) -> Result<(), SystemError>; + ) -> Result; } /// ## 中断抑制的原因位 @@ -335,8 +339,8 @@ pub enum KvmReg { VcpuExregCr4, VcpuExregRflags, VcpuExregSegments, - VcpuExregExitInfo1, - VcpuExregExitInfo2, + VcpuExregExitInfo1, //EXITINFO1 provides the linear address of the memory operand. + VcpuExregExitInfo2, //EXITINFO2 provides the contents of the register operand. } bitflags! { @@ -384,3 +388,65 @@ impl Vm { return x86_kvm_ops().vcpu_precreate(self); } } +bitflags! { + pub struct EmulType: u32 { + const NO_DECODE = 1 << 0; + const TRAP_UD = 1 << 1; + const SKIP = 1 << 2; + const ALLOW_RETRY_PF = 1 << 3; + const TRAP_UD_FORCED = 1 << 4; + const VMWARE_GP = 1 << 5; + const PF = 1 << 6; + const COMPLETE_USER_EXIT = 1 << 7; + const WRITE_PF_TO_SP = 1 << 8; + } +} +#[derive(Default,Debug)] +///用于跟踪和记录VCPU的各种统计信息。 +pub struct KvmVcpuStat { + //pub generic: KvmVcpuStatGeneric, + pub pf_taken: u64, + pub pf_fixed: u64, + pub pf_emulate: u64, + pub pf_spurious: u64, + pub pf_fast: u64, + pub pf_mmio_spte_created: u64, + pub pf_guest: u64, + pub tlb_flush: u64, + pub invlpg: u64, + pub exits: u64, + pub io_exits: u64, + pub mmio_exits: u64, + pub signal_exits: u64, + pub irq_window_exits: u64, + pub nmi_window_exits: u64, + pub l1d_flush: u64, + pub halt_exits: u64, + pub request_irq_exits: u64, + pub irq_exits: u64, + pub host_state_reload: u64, + pub fpu_reload: u64, + pub insn_emulation: u64, + pub insn_emulation_fail: u64, + pub hypercalls: u64, + pub irq_injections: u64, + pub nmi_injections: u64, + pub req_event: u64, + pub nested_run: u64, + pub directed_yield_attempted: u64, + pub directed_yield_successful: u64, + pub preemption_reported: u64, + pub preemption_other: u64, + pub guest_mode: u64, + pub notify_window_exits: u64, +} +#[inline] +/// 将 GFN 转换为 GPA +pub fn gfn_to_gpa(gfn: u64) -> u64 { + gfn << 12 +} +#[inline] +/// 将 GPA 转换为 GFN +pub fn gpa_to_gfn(gfn: u64) -> u64 { + gfn >> 12 +} \ No newline at end of file diff --git a/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs b/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs index e640fc3b4..66e2e40e3 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs @@ -26,7 +26,7 @@ use crate::{ asm::{hyperv, kvm_msr, KvmX86Asm, MiscEnable, MsrData, VcpuSegment}, cpuid::KvmCpuidEntry2, kvm_host::KvmReg, - mmu::LockedKvmMmu, + mmu::mmu::LockedKvmMmu, uapi::{UapiKvmSegmentRegs, KVM_SYNC_X86_VALID_FIELDS}, vmx::{vmcs::ControlsType, vmx_info}, x86_kvm_manager, x86_kvm_manager_mut, x86_kvm_ops, @@ -141,6 +141,9 @@ pub struct X86VcpuArch { pub at_instruction_boundary: bool, pub db: [usize; Self::KVM_NR_DB_REGS], + + /* set at EPT violation at this point */ + pub exit_qual: u64, } impl X86VcpuArch { @@ -155,6 +158,7 @@ impl X86VcpuArch { ret.mp_state = MutilProcessorState::Runnable; ret.apic = None; + //max_phyaddr=?? fztodo *ret } @@ -839,7 +843,10 @@ impl VirtCpu { // TODO: 一些中断或者tsc操作 - return x86_kvm_ops().handle_exit(self, exit_fastpath); + match x86_kvm_ops().handle_exit(self, exit_fastpath){ + Err(err)=>return Err(err), + Ok(_)=>{Ok(())} + } } fn flush_tlb_all(&mut self) { diff --git a/kernel/src/arch/x86_64/vm/mmu.rs b/kernel/src/arch/x86_64/vm/mmu/mmu.rs similarity index 83% rename from kernel/src/arch/x86_64/vm/mmu.rs rename to kernel/src/arch/x86_64/vm/mmu/mmu.rs index 504e9a107..5aadd7834 100644 --- a/kernel/src/arch/x86_64/vm/mmu.rs +++ b/kernel/src/arch/x86_64/vm/mmu/mmu.rs @@ -1,4 +1,12 @@ -use crate::{arch::mm::X86_64MMArch, kdebug}; +use crate::kerror; +use crate::virt::kvm::host_mem::PAGE_SHIFT; +use crate::{arch::mm::X86_64MMArch, kdebug, kwarn}; +use crate::{ + arch::{mm::LockedFrameAllocator, MMArch, VirtCpuArch}, + libs::spinlock::{SpinLock, SpinLockGuard}, + mm::{page::PageMapper, MemoryManagementArch, PageTableKind}, + virt::vm::kvm_host::{vcpu::VirtCpu, Vm}, +}; use alloc::{sync::Arc, vec::Vec}; use bitfield_struct::bitfield; use core::intrinsics::likely; @@ -7,14 +15,11 @@ use system_error::SystemError; use x86::controlregs::{Cr0, Cr4}; use x86_64::registers::control::EferFlags; -use crate::{ - arch::{mm::LockedFrameAllocator, MMArch, VirtCpuArch}, - libs::spinlock::{SpinLock, SpinLockGuard}, - mm::{page::PageMapper, MemoryManagementArch, PageTableKind}, - virt::vm::kvm_host::{vcpu::VirtCpu, Vm}, +use super::super::{ + vmx::vmx_info, + x86_kvm_ops, }; - -use super::{vmx::vmx_info, x86_kvm_ops}; +use super::mmu_internal::KvmPageFault; const PT64_ROOT_5LEVEL: usize = 5; const PT64_ROOT_4LEVEL: usize = 4; @@ -31,15 +36,50 @@ static mut SHADOW_ACCESSED_MASK: usize = 0; static mut MAX_HUGE_PAGE_LEVEL: PageLevel = PageLevel::None; +pub const PAGE_SIZE: u64 = 1 << PAGE_SHIFT; + +pub fn is_tdp_mmu_enabled()->bool{ + unsafe { TDP_MMU_ENABLED } +} + #[allow(dead_code)] +#[repr(u8)] pub enum PageLevel { None, - Level4k, + Level4K, Level2M, Level1G, Level512G, LevelNum, } +impl PageLevel { + fn kvm_hpage_gfn_shift(level: u8) -> u32 { + ((level - 1) * 9) as u32 + } + + fn kvm_hpage_shift(level: u8) -> u32 { + PAGE_SHIFT + Self::kvm_hpage_gfn_shift(level) + } + + fn kvm_hpage_size(level: u8) -> u64 { + 1 << Self::kvm_hpage_shift(level) + } + /// 计算每个大页包含的页数 + /// + /// # 参数 + /// - `level`: 页级别 + /// + /// # 返回值 + /// 返回每个大页包含的页数 + pub fn kvm_pages_per_hpage(level: u8) -> u64 { + Self::kvm_hpage_size(level) / PAGE_SIZE + } + +} +///计算给定 GFN(Guest Frame Number)在指定级别上的对齐值 +pub fn gfn_round_for_level(gfn: u64, level: u8) -> u64 { + gfn & !(PageLevel::kvm_pages_per_hpage(level) - 1) +} #[derive(Debug)] pub struct LockedKvmMmu { @@ -58,12 +98,16 @@ impl LockedKvmMmu { } } +pub type KvmMmuPageFaultHandler = + fn(vcpu: &mut VirtCpu, page_fault:&KvmPageFault) -> Result; + #[derive(Debug, Default)] #[allow(dead_code)] pub struct KvmMmu { pub root: KvmMmuRootInfo, pub cpu_role: KvmCpuRole, pub root_role: KvmMmuPageRole, + pub page_fault: Option, pkru_mask: u32, @@ -148,7 +192,7 @@ impl PartialEq for KvmCpuRole { pub struct KvmMmuPageRole { /// 表示页表级别,占用 4 位。对于普通的页表,取值是 2(二级页表)、3(三级页表)、4(四级页表)和 5(五级页表) #[bits(4)] - level: u32, + pub level: u32, /// 页表项是否为 4 字节,占用 1 位。在非 PAE 分页模式下,该值为 1 has_4_byte_gpte: bool, /// 表示页表项所在的象限,占用 2 位。该字段仅在 has_4_byte_gpte 为 1 时有效。 @@ -180,7 +224,7 @@ pub struct KvmMmuPageRole { unused: u32, /// 表示 SMM(System Management Mode)模式 #[bits(8)] - smm: u32, + pub smm: u32, } impl KvmMmuPageRole { @@ -191,6 +235,9 @@ impl KvmMmuPageRole { pub fn is_cr4_pae(&self) -> bool { !self.has_4_byte_gpte() } + pub fn get_direct(&self) -> bool { + self.direct() + } } #[bitfield(u32)] @@ -213,6 +260,38 @@ pub struct KvmMmuRoleRegs { pub efer: EferFlags, } +/// page falut的返回值, 用于表示页面错误的处理结果 +/// 应用在handle_mmio_page_fault()、mmu.page_fault()、fast_page_fault()和 +/// kvm_mmu_do_page_fault()等 +#[derive(Debug, Eq, PartialEq, FromPrimitive)] +#[repr(u32)] +pub enum PFRet { + Continue, // RET_PF_CONTINUE: 到目前为止一切正常,继续处理页面错误。 + Retry, // RET_PF_RETRY: 让 CPU 再次对该地址发生页面错误。 + Emulate, // RET_PF_EMULATE: MMIO 页面错误,直接模拟指令。 + Invalid, // RET_PF_INVALID: SPTE 无效,让实际的页面错误路径更新它。 + Fixed, // RET_PF_FIXED: 故障的条目已经被修复 + Spurious, // RET_PF_SPURIOUS: 故障的条目已经被修复,例如由另一个 vCPU 修复。 + Err = u32::MAX, // 错误 +} +impl From for u64 { + fn from(pf_ret: PFRet) -> Self { + pf_ret as u64 + } +} +impl From for PFRet { + fn from(value: u64) -> Self { + match value { + 0 => PFRet::Continue, + 1 => PFRet::Retry, + 2 => PFRet::Emulate, + 3 => PFRet::Invalid, + 4 => PFRet::Fixed, + 5 => PFRet::Spurious, + _ => PFRet::Err, // 默认返回 Invalid + } + } +} impl VirtCpuArch { pub fn kvm_init_mmu(&mut self) { let regs = self.role_regs(); diff --git a/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs b/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs new file mode 100644 index 000000000..4267394f2 --- /dev/null +++ b/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs @@ -0,0 +1,373 @@ +use core::{intrinsics::unlikely, ops::Index}; +use alloc::{ + boxed::Box, + sync::{Arc, Weak}, + vec::Vec, +}; + +use system_error::SystemError; + +use crate::{ + arch::vm::{ + kvm_host::{EmulType,KVM_PFN_NOSLOT} ,mmu::{mmu::{PFRet, PageLevel}, tdp_iter:: + { is_large_pte, is_shadow_present_pte, TdpIter}}, mtrr::kvm_mtrr_check_gfn_range_consistency, vmx::PageFaultErr + }, + kwarn, + mm::{virt_2_phys, PhysAddr}, + virt::{ + kvm::host_mem::PAGE_SHIFT, + vm::kvm_host::{mem::{LockedKvmMemSlot, LockedVmMemSlotSet, UserMemRegionFlag, __gfn_to_pfn_memslot}, search_memslots, vcpu::VirtCpu}, + }, +}; + +use super::mmu::{gfn_round_for_level, is_tdp_mmu_enabled, KvmMmuPageRole}; + +#[derive(Debug, Default)] +pub struct KvmMmuPage{ + pub tdp_mmu_page:bool,// 标记是否为 TDP(Two-Dimensional Paging)页表页 + pub gfn: u64,// 客户机帧号(Guest Frame Number) + + /* + * The following two entries are used to key the shadow page in the + * hash table.暫時沒看出來 + */ + pub role: KvmMmuPageRole, + pub spt: u64,// 指向页表条目(SPTE)的指针 + pub mmu_seq: u64, + pub map_writable: bool, + pub write_fault_to_shadow_pgtable: bool, +} + + +#[derive(Debug, Default)] +pub struct KvmPageFault { + // vcpu.do_page_fault 的参数 + addr: PhysAddr, // gpa_t 通常是一个 64 位地址 + error_code: u32, + prefetch: bool, + + // 从 error_code 派生 + exec: bool, + write: bool, + present: bool, + rsvd: bool, + user: bool, + + // 从 mmu 和全局状态派生 + is_tdp: bool, + nx_huge_page_workaround_enabled: bool, + + // 是否可以创建大于 4KB 的映射,或由于 NX 大页被禁止 + huge_page_disallowed: bool, + + // 此故障可以创建的最大页面大小 + max_level: u8, + + // 基于 max_level 和主机映射使用的页面大小可以创建的页面大小 + req_level: u8, + + // 基于 req_level 和 huge_page_disallowed 将创建的页面大小 + goal_level: u8, + + // 移位后的 addr,或如果 addr 是 gva 则是访客页表遍历的结果 + gfn: u64, // gfn_t 通常是一个 64 位地址 + + // 包含 gfn 的 memslot。可能为 None + slot: Option>, + + // kvm_faultin_pfn 的输出 + mmu_seq: u64, + pfn: u64, // kvm_pfn_t 通常是一个 64 位地址 + hva: u64, // hva_t 通常是一个 64 位地址 + map_writable: bool, + + // 表示访客正在尝试写入包含用于翻译写入本身的一个或多个 PTE 的 gfn + write_fault_to_shadow_pgtable: bool, +} + +impl VirtCpu { + #[inline(never)] + pub fn page_fault( + &mut self, + cr2_or_gpa: u64, + mut error_code: u64, + insn: Option, + insn_len: usize, + ) -> Result { + let mut emulation_type = EmulType::PF; + let direct = self.arch.mmu().root_role.get_direct(); + // IMPLICIT_ACCESS 是一个 KVM 定义的标志,用于在模拟触发隐式访问的指令时正确执行 SMAP 检查。 + // 防止内核态代码(超级用户模式)访问用户态内存。它是通过设置 CR4 寄存器中的 SMAP 位来启用的。 + // 如果硬件生成的错误代码与 KVM 定义的值冲突,则发出警告。 + // 清除该标志并继续,不终止虚拟机,因为 KVM 不可能依赖于 KVM 不知道的标志。 + if error_code & PageFaultErr::PFERR_IMPLICIT_ACCESS.bits() != 0 { + kwarn!("Implicit access error code detected"); + error_code &= !PageFaultErr::PFERR_IMPLICIT_ACCESS.bits(); + } + + //if self.arch.mmu().root.hpa != KvmMmu::INVALID_PAGE { + // return Ok(PFRet::Retry as u64); + //} + + let mut r = PFRet::Invalid; + if unlikely(error_code & PageFaultErr::PFERR_RSVD.bits() != 0) { + todo!(); + // r = self.handle_mmio_page_fault(cr2_or_gpa, direct)?; + // if r == PFRes::Emulate{ + // return x86_emulate_instruction(vcpu, cr2_or_gpa, emulation_type, insn,insn_len) insn_len); + // } + } + + if r == PFRet::Invalid { + r = self + .do_page_fault(cr2_or_gpa, error_code as u32, false, emulation_type)? + .into(); + if r == PFRet::Invalid { + return Err(SystemError::EIO); + } + } + + if r == PFRet::Err { + //return SystemError::EFAULT; + todo!() + } + if r != PFRet::Emulate { + return Ok(1); + } + + // 在模拟指令之前,检查错误代码是否由于在翻译客户机页面时的只读(RO)违规。 + // 这可能发生在使用嵌套虚拟化和嵌套分页的情况下。如果是这样,我们只需取消页面保护并恢复客户机。 + let pferr_nested_guest_page = PageFaultErr::PFERR_GUEST_PAGE + | PageFaultErr::PFERR_WRITE + | PageFaultErr::PFERR_PRESENT; + if self.arch.mmu().root_role.get_direct() + && (error_code & pferr_nested_guest_page.bits()) == pferr_nested_guest_page.bits() + { + todo!() + } + + // self.arch.mmu.page_fault 返回 RET_PF_EMULATE,但我们仍然可以乐观地尝试取消页面保护, + // 并让处理器重新执行导致页面故障的指令。不允许重试 MMIO 模拟,因为这不仅毫无意义, + // 而且可能导致进入无限循环,因为处理器会不断在不存在的 MMIO 地址上发生故障。 + // 重试来自嵌套客户机的指令也是毫无意义且危险的,因为我们只显式地影子 L1 的页表, + // 即为 L1 取消保护并不会神奇地修复导致 L2 失败的问题。 + // if !self.mmio_info_in_cache(cr2_or_gpa, direct) && !self.arch.is_guest_mode() { + // emulation_type |= EmulType::ALLOW_RETRY_PF; + // } + + // self.emulate_instruction(cr2_or_gpa, emulation_type, insn, insn_len) + todo!("emulate_instruction") + } + fn do_page_fault( + &mut self, + cr2_or_gpa: u64, + error_code: u32, + prefetch: bool, + mut emultype: EmulType, + ) -> Result { + //初始化page fault + let mut page_fault = KvmPageFault { + addr: PhysAddr::new(cr2_or_gpa as usize), + error_code, + exec: error_code & PageFaultErr::PFERR_FETCH.bits() as u32 != 0, + write: error_code & PageFaultErr::PFERR_WRITE.bits() as u32 != 0, + present: error_code & PageFaultErr::PFERR_PRESENT.bits() as u32 != 0, + rsvd: error_code & PageFaultErr::PFERR_RSVD.bits() as u32 != 0, + user: error_code & PageFaultErr::PFERR_USER.bits() as u32 != 0, + prefetch, + is_tdp : true, + nx_huge_page_workaround_enabled: false, //todo + max_level: PageLevel::Level1G as u8, + req_level: PageLevel::Level4K as u8, + goal_level: PageLevel::Level4K as u8, + ..Default::default() + }; + //处理直接映射 + if self.arch.mmu().root_role.get_direct() { + page_fault.gfn = (page_fault.addr.data() >> PAGE_SHIFT) as u64; + page_fault.slot = self.gfn_to_memslot(page_fault.gfn);//kvm_vcpu_gfn_to_memslot(vcpu, fault.gfn);没完成 + } + //异步页面错误(Async #PF),也称为预取错误(prefetch faults), + //从客机(guest)的角度来看并不是错误,并且已经在原始错误发生时被计数。 + if !prefetch { + self.stat.pf_taken += 1; + } + + let r = if page_fault.is_tdp { + self.tdp_page_fault(&mut page_fault).unwrap() + } else { + let handle = self.arch.mmu().page_fault.unwrap(); + handle(self, &page_fault).unwrap() + }; + + if page_fault.write_fault_to_shadow_pgtable { + emultype |= EmulType::WRITE_PF_TO_SP; + } + //类似于上面的情况,预取错误并不是真正的虚假错误,并且异步页面错误路径不会进行仿真。 + //然而,确实要统计由异步页面错误处理程序修复的错误,否则它们将永远不会被统计。 + match PFRet::from(r) { + PFRet::Fixed => self.stat.pf_fixed += 1, + PFRet::Emulate => self.stat.pf_emulate += 1, + PFRet::Spurious => self.stat.pf_spurious += 1, + _ => {} + } + + Ok(r) + } + + fn gfn_to_memslot(&self, gfn: u64) -> Option> { + let slot_set: Arc = self.kvm_vcpu_memslots(); + //...todo + + search_memslots(slot_set, gfn) + + } + pub fn kvm_vcpu_memslots(&self) ->Arc { + let binding = self.kvm(); + let kvm = binding.lock(); + kvm.memslots.index(0).clone() + } + fn tdp_page_fault(&mut self, page_fault: &mut KvmPageFault) -> Result { + // 如果 shadow_memtype_mask 为真,并且虚拟机有非一致性 DMA + //if shadow_memtype_mask != 0 && self.kvm().lock().arch.noncoherent_dma_count > 0 { + while page_fault.max_level > PageLevel::Level4K as u8{ + let page_num = PageLevel::kvm_pages_per_hpage(page_fault.max_level); + + //低地址对齐 + let base = gfn_round_for_level(page_fault.gfn, page_fault.max_level); + + //检查给定 GFN 范围内的内存类型是否一致,暂未实现 + if kvm_mtrr_check_gfn_range_consistency(self, base, page_num) { + break; + } + + page_fault.max_level -= 1; + } + //} + + if is_tdp_mmu_enabled() { + return self.kvm_tdp_mmu_page_fault(page_fault); + } + + self.direct_page_fault(page_fault) + } + fn kvm_tdp_mmu_page_fault(&self,page_fault: &mut KvmPageFault)->Result{ + + //page_fault_handle_page_track(page_fault) + //fast_page_fault(page_fault); + //mmu_topup_memory_caches(false);//补充内存缓存 + let mut r= self.kvm_faultin_pfn(page_fault, 1|1<<1|1<<2).unwrap(); + if r != PFRet::Continue { + return Ok(r.into()); + } + + r = PFRet::Retry; + //实际的映射 + self.tdp_map(page_fault); + Ok(r.into()) + } + fn tdp_map(&self,page_fault: &mut KvmPageFault)->Result{ + //没有实现SPTE,huge page相关 + let mmu=self.arch.mmu(); + let kvm = self.kvm(); + let ret = PFRet::Retry; + + + let mut tdp_iter : TdpIter=TdpIter::default(); + + + tdp_iter.start(virt_2_phys(mmu.root.hpa as usize)/*__va */,mmu.root_role.level() as u8, + PageLevel::Level4K as u8,page_fault.gfn ); + for iter in tdp_iter{ + if !(iter.valid && iter.gfnpa的转换可能有点问题 + + + // 如果启用了 NX 巨大页解决方法,则进行调整 + if page_fault.nx_huge_page_workaround_enabled { + page_fault.nx_huge_page_workaround_enabled = false; + } + + if iter.level == page_fault.goal_level{ + //self.map_handle_target_level(page_fault,&mut iter); + } + + //如果在比目标更高的级别有一个映射大页的 SPTE, + //那么该 SPTE 必须被清除并替换为非叶子 SPTE。 + if is_shadow_present_pte(iter.old_spte) && !is_large_pte(iter.old_spte) { + continue; + } + + //SPTE是non-present或者指向一个需要split的大页 + + + } + todo!() + } + ///todo()!!! + fn map_handle_target_level(&self,page_fault:&mut KvmPageFault,iter: &mut TdpIter){ + todo!() + } + + fn direct_page_fault(&self,page_fault: &KvmPageFault)->Result{ + todo!() + } + fn kvm_faultin_pfn(&self,page_fault: &mut KvmPageFault,access: u32)->Result{ + page_fault.mmu_seq = self.kvm().lock().mmu_invalidate_seq; + self.__kvm_faultin_pfn(page_fault) + } + fn __kvm_faultin_pfn(&self,page_fault: &mut KvmPageFault)->Result{ + let slot = &page_fault.slot; + let mut is_async = false; + if slot.is_none() { + return Err(SystemError::KVM_HVA_ERR_BAD); + } + let slot = slot.as_ref().unwrap().read(); + + if slot.get_flags().bits()& UserMemRegionFlag::KVM_MEMSLOT_INVALID.bits()!= 0 { + return Ok(PFRet::Retry); + } + if !slot.is_visible(){ + /* 不要将私有内存槽暴露给 L2。 */ + if self.arch.is_guest_mode() { + drop(slot); + page_fault.slot = None; + page_fault.pfn = KVM_PFN_NOSLOT; + page_fault.map_writable = false; + return Ok(PFRet::Continue); + } + /* + * 如果 APIC 访问页面存在但被禁用,则直接进行仿真, + * 而不缓存 MMIO 访问或创建 MMIO SPTE。 + * 这样,当 AVIC 重新启用时,不需要清除缓存。 + */ + // if slot.get_id() == APIC_ACCESS_PAGE_PRIVATE_MEMSLOT && !self.kvm_apicv_activated() + // { + // return PFRet::Emulate; + // } + } + + + // 尝试将 GFN 转换为 PFN + page_fault.pfn = __gfn_to_pfn_memslot(Some(&slot), page_fault.gfn, false, false, &mut is_async, + page_fault.write, &mut page_fault.map_writable, + &mut page_fault.hva)?; + if !is_async { + return Ok(PFRet::Continue); /* *pfn 已经有正确的页面 */ + } + + // if !page_fault.prefetch && self.kvm_can_do_async_pf() { + // self.trace_kvm_try_async_get_page(page_fault.addr, page_fault.gfn); + // if self.kvm_find_async_pf_gfn(page_fault.gfn) { + // self.trace_kvm_async_pf_repeated_fault(page_fault.addr, page_fault.gfn); + // self.kvm_make_request(KVM_REQ_APF_HALT); + // return Ok(PFRet::Retry); + // } else if self.kvm_arch_setup_async_pf(page_fault.addr, page_fault.gfn) { + // return Ok(PFRet::Retry); + // } + // } + Ok(PFRet::Continue) + } +} diff --git a/kernel/src/arch/x86_64/vm/mmu/mod.rs b/kernel/src/arch/x86_64/vm/mmu/mod.rs new file mode 100644 index 000000000..9c2f87955 --- /dev/null +++ b/kernel/src/arch/x86_64/vm/mmu/mod.rs @@ -0,0 +1,4 @@ +pub mod mmu; +pub mod mmu_internal; +pub mod tdp_iter; +pub mod pte; \ No newline at end of file diff --git a/kernel/src/arch/x86_64/vm/mmu/pte.rs b/kernel/src/arch/x86_64/vm/mmu/pte.rs new file mode 100644 index 000000000..052def047 --- /dev/null +++ b/kernel/src/arch/x86_64/vm/mmu/pte.rs @@ -0,0 +1,43 @@ +bitflags::bitflags! { + pub struct PteFlags: u64 { + const PRESENT = 1 << 0; + const READ_WRITE = 1 << 1; + const USER_SUPERVISOR = 1 << 2; + const PAGE_WRITE_THROUGH = 1 << 3; + const PAGE_CACHE_DISABLE = 1 << 4; + const ACCESSED = 1 << 5; + const DIRTY = 1 << 6; + const PAGE_SIZE = 1 << 7; + const GLOBAL = 1 << 8; + const EXECUTE_DISABLE = 1 << 63; + } +} + +pub struct Pte { + pub address: u64, // 物理地址 + pub flags: PteFlags, // 页表条目标志 +} + +impl Pte { + pub fn new(address: u64, flags: PteFlags) -> Self { + Self { address, flags } + } + + pub fn is_present(&self) -> bool { + self.flags.contains(PteFlags::PRESENT) + } + + pub fn is_read_write(&self) -> bool { + self.flags.contains(PteFlags::READ_WRITE) + } + + pub fn is_user_supervisor(&self) -> bool { + self.flags.contains(PteFlags::USER_SUPERVISOR) + } + + pub fn is_executable(&self) -> bool { + !self.flags.contains(PteFlags::EXECUTE_DISABLE) + } + + // 其他方法... +} \ No newline at end of file diff --git a/kernel/src/arch/x86_64/vm/mmu/tdp_iter.rs b/kernel/src/arch/x86_64/vm/mmu/tdp_iter.rs new file mode 100644 index 000000000..a0298a022 --- /dev/null +++ b/kernel/src/arch/x86_64/vm/mmu/tdp_iter.rs @@ -0,0 +1,203 @@ +use crate::{arch::vm::mmu::mmu::gfn_round_for_level, mm::{virt_2_phys, PhysAddr, VirtAddr}, time::sleep, virt::kvm::host_mem::PAGE_SHIFT}; + +use super::{mmu::{PageLevel, PAGE_SIZE}, mmu_internal::KvmMmuPage}; + + +pub const PT64_ROOT_MAX_LEVEL: usize = 5; //通常只用到4级,但是确实有5级的情况 +pub const PT_LEVEL_BITS: u8 = 9; // 每个页表级别的位数 +pub const PT64_ENT_PER_PAGE: u32 = 1<<9; +pub const PTE_LEN: usize = 64; + +//Bits 51:12 are from the EPT PDPTE +pub const PT64_BASE_ADDR_MASK: u64 = ((1u64 << 52) - 1) & !(PAGE_SIZE - 1); + +pub fn shadow_pt_index(addr: u64, level: u8) -> u64 { + (addr >> (PAGE_SHIFT as u8 + (level - 1) * PT_LEVEL_BITS)) & ((1 << PT_LEVEL_BITS) - 1) +} +pub fn is_last_spte(pte: u64, level: u8) -> bool { + level == PageLevel::Level4K as u8 || is_large_pte(pte) +} +pub fn is_shadow_present_pte(pte :u64) ->bool{ + pte & 1<<11 !=0//在intel手冊中:ept PTE:11 Ignored.不是很懂 +} +pub fn is_large_pte(pte :u64) ->bool{ + pte & 1<<7 !=0//在intel手冊中:ept PTE:7 Ignored. +} +///Bits 51:12 are from the EPT PDPTE +pub fn spte_to_pfn(pte: u64) -> u64 { + (pte & PT64_BASE_ADDR_MASK) >> PAGE_SHIFT +} + +#[derive(Default)] +pub struct TdpIter{ + inner: TdpIterInner, +} + +impl TdpIter{ + pub fn start(&self,root_pt:usize,root_level:u8,min_level:u8,next_last_level_gfn:u64)->Self{ + let mut inner = self.inner.clone(); + inner.start(root_pt,root_level,min_level,next_last_level_gfn); + TdpIter{ + inner + } + } +} +///迭代器将遍历分页结构,直到找到此 GFN 的映射。 +#[derive(Default,Clone)] +pub struct TdpIterInner { + next_last_level_gfn: u64, + /// 线程上次让出时的 next_last_level_gfn。 + /// 仅当 next_last_level_gfn != yielded_gfn 时让出,有助于确保前进。 + pub yielded_gfn: u64, + + ///指向遍历到当前 SPTE 的页表的指针 + pt_path: [u64; PT64_ROOT_MAX_LEVEL], + + ///指向当前 SPTE 的指针 是hva吗? + sptep: PhysAddr, + + /// 当前 SPTE 映射的最低 GFN hpa>>shift? + pub gfn: u64, + + ///给迭代器的根页级别 + pub root_level: u8, + + ///迭代器应遍历到的最低级别 + pub min_level: u8, + + ///迭代器在分页结构中的当前级别 + pub level: u8, + + ///sptep 处值的快照 + pub old_spte: u64, + + ///迭代器是否具有有效状态。如果迭代器走出分页结构的末端,则为 false。 + /// + pub valid: bool, +} +impl TdpIterInner{ + ///初始化ept iter + pub fn start(&mut self,root_pt :usize,root_level:u8, + min_level: u8,next_last_level_gfn:u64){ + // if root_pt.role.level() == 0 || root_pt.role.level() > PT64_ROOT_MAX_LEVEL as u32 { + // self.valid = false; + // return; + // } + + if root_level < 1 || root_level > PT64_ROOT_MAX_LEVEL as u8 { + self.valid = false; + return; + } + self.next_last_level_gfn = next_last_level_gfn; + self.root_level = root_level as u8; + self.min_level = min_level as u8; + self.pt_path[(self.root_level - 1) as usize] =root_pt as u64; + self.yielded_gfn=self.next_last_level_gfn; + self.level = self.root_level; + + self.gfn = gfn_round_for_level(self.next_last_level_gfn, self.level); + self.tdp_iter_refresh_sptep(); + self.valid = true; + } + + /* + * 重新计算当前GFN和level和SPTE指针,并重新读取SPTE。 + */ + fn tdp_iter_refresh_sptep(&mut self){ + self.sptep = PhysAddr::new((self.pt_path[self.level as usize - 1] + + shadow_pt_index(self.gfn <bool{ + if self.level == self.min_level { + return false; + } + //在下降之前重新读取SPTE,以避免遍历到不再从此条目链接的页表中。 + self.old_spte =read_sptep(self.sptep); + + match spte_to_child_pt(self.old_spte,self.level){ + Some(child_pt) =>{ + self.level -= 1; + self.pt_path[self.level as usize - 1] = child_pt.data() as u64; + self.gfn = gfn_round_for_level(self.gfn, self.level); + self.tdp_iter_refresh_sptep(); + true + } + None => false, + + } + } + fn try_step_up(&mut self)->bool{ + if self.level == self.root_level { + return false; + } + self.level += 1; + self.gfn = gfn_round_for_level(self.gfn, self.level); + self.tdp_iter_refresh_sptep(); + true + } + ///在当前页表的当前级别中,移动到下一个条目。下一个条目可以指向一个page backing guest memory , + ///或者另一个页表,或者它可能是不存在的。如果迭代器能够移动到页表中的下一个条目,则返回true, + ///如果迭代器已经在当前页表的末尾,则返回false。 + fn try_step_side(&mut self)-> bool{ + //检查迭代器是否已经在当前页表的末尾。 + if shadow_pt_index(self.gfn< Option { + let inner=&mut self.inner; + if !inner.valid { + return None; + } + inner._next(); + if inner.valid { + Some(inner.clone()) + } else { + None + } + } + +} +///给定一个 SPTE 及其级别,返回一个指针,该指针包含 SPTE 所引用的子页表的hva。 +///如果没有这样的条目,则返回 null。 +/// +fn spte_to_child_pt(spte:u64,level:u8) ->Option{ + //没有子页表 + if !is_shadow_present_pte(spte) || is_last_spte(spte,level){ + return None; + } + Some(VirtAddr::new(virt_2_phys//__va + ((spte_to_pfn(spte)<u64{ + unsafe{*(sptep.data() as *const u64)} +} \ No newline at end of file diff --git a/kernel/src/arch/x86_64/vm/mod.rs b/kernel/src/arch/x86_64/vm/mod.rs index 4f9af1cc6..c35f63ac2 100644 --- a/kernel/src/arch/x86_64/vm/mod.rs +++ b/kernel/src/arch/x86_64/vm/mod.rs @@ -26,9 +26,10 @@ mod cpuid; pub(super) mod exit; pub mod kvm_host; pub mod mem; -mod mmu; +pub mod mmu; pub mod uapi; pub mod vmx; +pub mod mtrr; static mut KVM_X86_MANAGER: Option = None; diff --git a/kernel/src/arch/x86_64/vm/mtrr.rs b/kernel/src/arch/x86_64/vm/mtrr.rs new file mode 100644 index 000000000..873689a1d --- /dev/null +++ b/kernel/src/arch/x86_64/vm/mtrr.rs @@ -0,0 +1,37 @@ +use crate::virt::vm::kvm_host::vcpu::VirtCpu; + +use super::kvm_host::gfn_to_gpa; + +pub fn kvm_mtrr_check_gfn_range_consistency(vcpu: &mut VirtCpu, gfn: u64, page_num: u64) -> bool { + // let mtrr_state = &vcpu.arch.mtrr_state; + // let mut iter = MtrrIter { + // mem_type: -1, + // mtrr_disabled: false, + // partial_map: false, + // }; + let start = gfn_to_gpa(gfn); + let end = gfn_to_gpa(gfn + page_num); + + // mtrr_for_each_mem_type(&mut iter, mtrr_state, start, end, |iter| { + // if iter.mem_type == -1 { + // iter.mem_type = iter.mem_type; + // } else if iter.mem_type != iter.mem_type { + // return false; + // } + // }); + + // if iter.mtrr_disabled { + // return true; + // } + + // if !iter.partial_map { + // return true; + // } + + // if iter.mem_type == -1 { + // return true; + // } + + // iter.mem_type == mtrr_default_type(mtrr_state) + true +} \ No newline at end of file diff --git a/kernel/src/arch/x86_64/vm/vmx/capabilities.rs b/kernel/src/arch/x86_64/vm/vmx/capabilities.rs index 3e33ba7bb..573e6a02d 100644 --- a/kernel/src/arch/x86_64/vm/vmx/capabilities.rs +++ b/kernel/src/arch/x86_64/vm/vmx/capabilities.rs @@ -8,8 +8,9 @@ use x86::{ use crate::{ arch::vm::{ - mmu::PageLevel, CPU_BASED_ALWAYSON_WITHOUT_TRUE_MSR, PIN_BASED_ALWAYSON_WITHOUT_TRUE_MSR, - VM_ENTRY_ALWAYSON_WITHOUT_TRUE_MSR, VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR, + mmu::mmu::PageLevel, CPU_BASED_ALWAYSON_WITHOUT_TRUE_MSR, + PIN_BASED_ALWAYSON_WITHOUT_TRUE_MSR, VM_ENTRY_ALWAYSON_WITHOUT_TRUE_MSR, + VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR, }, virt::vm::kvm_host::vcpu::VirtCpu, }; @@ -388,7 +389,7 @@ impl Vmx { return PageLevel::Level2M; } - return PageLevel::Level4k; + return PageLevel::Level4K; } /// 判断mt(Memory type)是否为write back diff --git a/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs b/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs new file mode 100644 index 000000000..ab5263908 --- /dev/null +++ b/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs @@ -0,0 +1,31 @@ +use crate::libs::rwlock::RwLock; + +// pub const VMX_EPT_MT_EPTE_SHIFT:u64 = 3; +pub const VMX_EPT_RWX_MASK: u64 = 0x7 << 3; + +// Exit Qualifications for EPT Violations +pub const EPT_VIOLATION_ACC_READ_BIT: u64 = 0; +pub const EPT_VIOLATION_ACC_WRITE_BIT: u64 = 1; +pub const EPT_VIOLATION_ACC_INSTR_BIT: u64 = 2; +pub const EPT_VIOLATION_RWX_SHIFT: u64 = 3; +pub const EPT_VIOLATION_GVA_IS_VALID_BIT: u64 = 7; +pub const EPT_VIOLATION_GVA_TRANSLATED_BIT: u64 = 8; + +bitflags! { + pub struct EptViolationExitQual :u64{ + const ACC_READ = 1 << EPT_VIOLATION_ACC_READ_BIT; + const ACC_WRITE = 1 << EPT_VIOLATION_ACC_WRITE_BIT; + const ACC_INSTR = 1 << EPT_VIOLATION_ACC_INSTR_BIT; + const RWX_MASK = VMX_EPT_RWX_MASK << EPT_VIOLATION_RWX_SHIFT; + const GVA_IS_VALID = 1 << EPT_VIOLATION_GVA_IS_VALID_BIT; + const GVA_TRANSLATED = 1 << EPT_VIOLATION_GVA_TRANSLATED_BIT; + } +} +struct EptPageTable { + // EPT 页表数据结构 +} + +struct EptManager { + ept: RwLock, + // 其他字段 +} diff --git a/kernel/src/arch/x86_64/vm/vmx/exit.rs b/kernel/src/arch/x86_64/vm/vmx/exit.rs index d32168ff7..18dad7aaf 100644 --- a/kernel/src/arch/x86_64/vm/vmx/exit.rs +++ b/kernel/src/arch/x86_64/vm/vmx/exit.rs @@ -1,7 +1,14 @@ use bitfield_struct::bitfield; use system_error::SystemError; +use x86::vmx::vmcs::{guest, ro}; -use crate::virt::vm::kvm_host::vcpu::VirtCpu; +use crate::{ + arch::vm::asm::{IntrInfo, VmxAsm}, + virt::vm::kvm_host::vcpu::VirtCpu, +}; + +use super::{ept::EptViolationExitQual, vmx_info, PageFaultErr}; +extern crate num_traits; #[bitfield(u32)] pub struct VmxExitReason { @@ -24,6 +31,7 @@ pub struct VmxExitReason { pub failed_vmentry: bool, } +//#define VMX_EXIT_REASONS #[derive(FromPrimitive, PartialEq)] #[allow(non_camel_case_types)] pub enum VmxExitReasonBasic { @@ -69,7 +77,7 @@ pub enum VmxExitReasonBasic { VM_ENTRY_FAILURE_MACHINE_CHECK_EVENT = 41, TPR_BELOW_THRESHOLD = 43, APIC_ACCESS = 44, - VIRTUALIZED_EOI = 45, + VIRTUALIZED_EOI = 45, // "EOI_INDUCED" ACCESS_GDTR_OR_IDTR = 46, ACCESS_LDTR_OR_TR = 47, EPT_VIOLATION = 48, @@ -180,25 +188,141 @@ pub enum ExitFastpathCompletion { ReenterGuest, ExitHandled, } +pub struct VmxExitHandlers {} +// //name 代表暂时不懂含义的(name linux=name DragonOS) +// ExceptionNmi = VmxExitReasonBasic::EXCEPTION_OR_NMI as isize, +// ExternalInterrupt = VmxExitReasonBasic::EXTERNAL_INTERRUPT as isize, +// TripleFault = VmxExitReasonBasic::TRIPLE_FAULT as isize, +// NmiWindow = VmxExitReasonBasic::NMI_WINDOW as isize, +// IoInstruction = VmxExitReasonBasic::IO_INSTRUCTION as isize, +// CrAccess = VmxExitReasonBasic::CR_ACCESS as isize, +// DrAccess = VmxExitReasonBasic::DR_ACCESS as isize, +// Cpuid = VmxExitReasonBasic::CPUID as isize, +// MsrRead = VmxExitReasonBasic::RDMSR as isize, +// MsrWrite = VmxExitReasonBasic::WRMSR as isize, +// InterruptWindow = VmxExitReasonBasic::INTERRUPT_WINDOW as isize, +// Hlt = VmxExitReasonBasic::HLT as isize, +// Invd = VmxExitReasonBasic::INVD as isize, +// Invlpg = VmxExitReasonBasic::INVLPG as isize, +// Rdpmc = VmxExitReasonBasic::RDPMC as isize, +// Vmcall = VmxExitReasonBasic::VMCALL as isize, +// Vmclear = VmxExitReasonBasic::VMCLEAR as isize, +// Vmlaunch = VmxExitReasonBasic::VMLAUNCH as isize, +// Vmptrld = VmxExitReasonBasic::VMPTRLD as isize, +// Vmptrst = VmxExitReasonBasic::VMPTRST as isize, +// Vmread = VmxExitReasonBasic::VMREAD as isize, +// Vmresume = VmxExitReasonBasic::VMRESUME as isize, +// Vmwrite = VmxExitReasonBasic::VMWRITE as isize, +// Vmoff = VmxExitReasonBasic::VMXOFF as isize, +// Vmon = VmxExitReasonBasic::VMXON as isize, +// TprBelowThreshold = VmxExitReasonBasic::TPR_BELOW_THRESHOLD as isize, +// ApicAccess = VmxExitReasonBasic::APIC_ACCESS as isize, +// ApicWrite = VmxExitReasonBasic::APIC_WRITE as isize, +// EoiInduced = VmxExitReasonBasic::VIRTUALIZED_EOI as isize, //name +// Wbinvd = VmxExitReasonBasic::WBINVD as isize, +// Xsetbv = VmxExitReasonBasic::XSETBV as isize, +// TaskSwitch = VmxExitReasonBasic::TASK_SWITCH as isize, +// MceDuringVmentry = VmxExitReasonBasic::VM_ENTRY_FAILURE_MACHINE_CHECK_EVENT as isize, //name +// GdtrIdtr = VmxExitReasonBasic::ACCESS_GDTR_OR_IDTR as isize, +// LdtrTr = VmxExitReasonBasic::ACCESS_LDTR_OR_TR as isize, +// EptViolation = VmxExitReasonBasic::EPT_VIOLATION as isize, +// EptMisconfig = VmxExitReasonBasic::EPT_MISCONFIG as isize, +// PauseInstruction = VmxExitReasonBasic::PAUSE as isize, +// MwaitInstruction = VmxExitReasonBasic::MWAIT as isize, +// MonitorTrapFlag = VmxExitReasonBasic::MONITOR_TRAP_FLAG as isize, +// MonitorInstruction = VmxExitReasonBasic::MONITOR as isize, +// Invept = VmxExitReasonBasic::INVEPT as isize, +// Invvpid = VmxExitReasonBasic::INVVPID as isize, +// Rdrand = VmxExitReasonBasic::RDRAND as isize, +// Rdseed = VmxExitReasonBasic::RDSEED as isize, +// PmlFull = VmxExitReasonBasic::PML_FULL as isize, +// Invpcid = VmxExitReasonBasic::INVPCID as isize, +// Vmfunc = VmxExitReasonBasic::VMFUNC as isize, +// PreemptionTimer = VmxExitReasonBasic::VMX_PREEMPTION_TIMER_EXPIRED as isize, +// Encls = VmxExitReasonBasic::ENCLS as isize, +// BusLock = VmxExitReasonBasic::BUS_LOCK as isize, +// Notify = VmxExitReasonBasic::NOTIFY as isize, +// Unknown, -pub struct VmxExitHandler; - -impl VmxExitHandler { - pub fn handle( +impl VmxExitHandlers { + #[inline(never)] + pub fn try_handle_exit( vcpu: &mut VirtCpu, basic: VmxExitReasonBasic, - ) -> Option> { + ) -> Option> { match basic { VmxExitReasonBasic::IO_INSTRUCTION => { return Some(Self::handle_io(vcpu)); } + VmxExitReasonBasic::EPT_VIOLATION => { + return Some(Self::handle_ept_violation(vcpu)); + } + _ => { - return None; + None } } } - fn handle_io(vcpu: &mut VirtCpu) -> Result<(), SystemError> { + fn handle_io(vcpu: &mut VirtCpu) -> Result { todo!(); } + + fn handle_ept_violation(vcpu: &mut VirtCpu) -> Result { + let exit_qualification = vcpu.get_exit_qual(); + + // EPT 违规发生在从 NMI 执行 iret 时, + // 在下一次 VM 进入之前必须设置 "blocked by NMI" 位。 + // 有一些错误可能会导致该位未被设置: + // AAK134, BY25。 + let vmx = vcpu.vmx(); + if vmx.idt_vectoring_info.bits() & IntrInfo::INTR_INFO_VALID_MASK.bits() != 0 + && vmx_info().enable_vnmi + && exit_qualification & IntrInfo::INTR_INFO_UNBLOCK_NMI.bits() as u64 != 0 + { + VmxAsm::vmx_vmwrite(guest::INTERRUPTIBILITY_STATE, 0x8); //GUEST_INTR_STATE_NMI + } + let gpa = VmxAsm::vmx_vmread(ro::GUEST_PHYSICAL_ADDR_FULL); + // trace_kvm_page_fault(vcpu, gpa, exit_qualification);//fztodo!() + + // 根据故障类型确定错误代码 + let mut error_code = if exit_qualification & (EptViolationExitQual::ACC_READ.bits()) != 0 {//active + PageFaultErr::PFERR_USER.bits() + } else { + 0 + }; + error_code |= if exit_qualification & (EptViolationExitQual::ACC_WRITE.bits()) != 0 {//active + PageFaultErr::PFERR_WRITE.bits() + } else { + 0 + }; + error_code |= if exit_qualification & (EptViolationExitQual::ACC_INSTR.bits()) != 0 { + PageFaultErr::PFERR_FETCH.bits() + } else { + 0 + }; + error_code |= if exit_qualification & (EptViolationExitQual::RWX_MASK.bits()) != 0 { + PageFaultErr::PFERR_PRESENT.bits() + } else { + 0 + }; + error_code |= if exit_qualification & (EptViolationExitQual::GVA_TRANSLATED.bits()) != 0 { + PageFaultErr::PFERR_GUEST_FINAL.bits()//active + } else { + PageFaultErr::PFERR_GUEST_PAGE.bits() + }; + //fixme:: 此时error_code为0x100000011,感觉有问题 + + vcpu.arch.exit_qual = exit_qualification; + + // 检查 GPA 是否超出物理内存限制,因为这是一个客户机页面错误。 + // 我们必须在这里模拟指令,因为如果非法地址是分页结构的地址, + // 则会设置 EPT_VIOLATION_ACC_WRITE 位。 + // 或者,如果支持,我们还可以使用 EPT 违规的高级 VM 退出信息来重建页面错误代码。 + // if allow_smaller_maxphyaddr && kvm_vcpu_is_illegal_gpa(vcpu, gpa) { + // return kvm_emulate_instruction(vcpu, 0); + // } + + vcpu.page_fault(gpa, error_code, None, 0) + } } diff --git a/kernel/src/arch/x86_64/vm/vmx/mod.rs b/kernel/src/arch/x86_64/vm/vmx/mod.rs index cd618ca51..e82d8704c 100644 --- a/kernel/src/arch/x86_64/vm/vmx/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/mod.rs @@ -1,11 +1,12 @@ use core::intrinsics::likely; use core::intrinsics::unlikely; use core::sync::atomic::{AtomicBool, Ordering}; +use exit::VmxExitHandlers; use x86_64::registers::control::Cr3Flags; use x86_64::structures::paging::PhysFrame; use crate::arch::process::table::USER_DS; -use crate::arch::vm::mmu::KvmMmu; +use crate::arch::vm::mmu::mmu::KvmMmu; use crate::arch::vm::uapi::kvm_exit; use crate::arch::vm::uapi::{ AC_VECTOR, BP_VECTOR, DB_VECTOR, GP_VECTOR, MC_VECTOR, NM_VECTOR, PF_VECTOR, UD_VECTOR, @@ -100,6 +101,7 @@ use super::{ pub mod asm; pub mod capabilities; +pub mod ept; pub mod exit; pub mod vmcs; @@ -1048,9 +1050,10 @@ impl KvmFunc for VmxKvmFunc { vcpu.arch.clear_dirty(); - let cr3: (PhysFrame,Cr3Flags) = Cr3::read(); + let cr3: (PhysFrame, Cr3Flags) = Cr3::read(); if unlikely(cr3 != vcpu.vmx().loaded_vmcs().host_state.cr3) { - let cr3_combined: u64 = (cr3.0.start_address().as_u64() & 0xFFFF_FFFF_FFFF_F000) | (cr3.1.bits() & 0xFFF); + let cr3_combined: u64 = + (cr3.0.start_address().as_u64() & 0xFFFF_FFFF_FFFF_F000) | (cr3.1.bits() & 0xFFF); VmxAsm::vmx_vmwrite(host::CR3, cr3_combined); vcpu.vmx().loaded_vmcs().host_state.cr3 = cr3; } @@ -1200,10 +1203,11 @@ impl KvmFunc for VmxKvmFunc { } fn handle_exit( + //vmx_handle_exit &self, vcpu: &mut VirtCpu, fastpath: ExitFastpathCompletion, - ) -> Result<(), SystemError> { + ) -> Result { let r = vmx_info().vmx_handle_exit(vcpu, fastpath); if vcpu.vmx().exit_reason.bus_lock_detected() { @@ -2343,7 +2347,8 @@ impl Vmx { VmxAsm::vmx_vmwrite(host::CR0, unsafe { cr0() }.bits() as u64); let cr3: (PhysFrame, Cr3Flags) = Cr3::read(); - let cr3_combined: u64 = (cr3.0.start_address().as_u64() & 0xFFFF_FFFF_FFFF_F000) | (cr3.1.bits() & 0xFFF); + let cr3_combined: u64 = + (cr3.0.start_address().as_u64() & 0xFFFF_FFFF_FFFF_F000) | (cr3.1.bits() & 0xFFF); VmxAsm::vmx_vmwrite(host::CR3, cr3_combined); loaded_vmcs_host_state.cr3 = cr3; @@ -2968,10 +2973,10 @@ impl Vmx { &self, vcpu: &mut VirtCpu, exit_fastpath: ExitFastpathCompletion, - ) -> Result<(), SystemError> { + ) -> Result { let exit_reason = vcpu.vmx().exit_reason; - let unexpected_vmexit = |vcpu: &mut VirtCpu| -> Result<(), SystemError> { + let unexpected_vmexit = |vcpu: &mut VirtCpu| -> Result { kerror!("vmx: unexpected exit reason {:?}\n", exit_reason); self.dump_vmcs(vcpu); @@ -2986,7 +2991,7 @@ impl Vmx { run.__bindgen_anon_1.internal.data[1] = cpu; } - return Ok(()); + return Ok(0); }; let vectoring_info = vcpu.vmx().idt_vectoring_info; @@ -3036,8 +3041,11 @@ impl Vmx { if exit_fastpath != ExitFastpathCompletion::None { return Err(SystemError::EINVAL); } - - todo!() + match VmxExitHandlers::try_handle_exit(vcpu, VmxExitReasonBasic::from(exit_reason.basic())) + { + Some(Ok(r)) => return Ok(r), + Some(Err(_)) | None => unexpected_vmexit(vcpu), + } } /// 需要在缓存中更新的寄存器集。此处未列出的其他寄存器在 VM 退出后立即同步到缓存。 @@ -3209,6 +3217,8 @@ pub struct VmxVCpuPriv { req_immediate_exit: bool, guest_state_loaded: bool, + + exit_qualification: u64, //暂时不知道用处fztodo } #[derive(Debug, Default)] @@ -3269,6 +3279,7 @@ impl VmxVCpuPriv { exit_reason: VmxExitReason::new(), exit_intr_info: IntrInfo::empty(), msr_autostore: VmxMsrs::default(), + exit_qualification: 0, //fztodo }; vmx.vpid = vmx_info().alloc_vpid().unwrap_or_default() as u16; @@ -3570,6 +3581,12 @@ impl VmxVCpuPriv { flags } + pub fn get_exit_qual(&self) -> u64 { + self.exit_qualification + } + pub fn vmread_exit_qual(&mut self) { + self.exit_qualification = VmxAsm::vmx_vmread(ro::EXIT_QUALIFICATION); + } } bitflags! { @@ -3579,6 +3596,7 @@ bitflags! { const RW = 3; } + //https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/include/asm/kvm_host.h#249 pub struct PageFaultErr: u64 { const PFERR_PRESENT = 1 << 0; const PFERR_WRITE = 1 << 1; diff --git a/kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs b/kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs index 7533bf650..77aa91a8d 100644 --- a/kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs +++ b/kernel/src/arch/x86_64/vm/vmx/vmcs/feat.rs @@ -85,9 +85,8 @@ impl VmxFeat { pub const KVM_REQUIRED_VMX_PIN_BASED_VM_EXEC_CONTROL: u32 = PinbasedControls::EXTERNAL_INTERRUPT_EXITING.bits() | PinbasedControls::NMI_EXITING.bits(); - pub const KVM_OPTIONAL_VMX_PIN_BASED_VM_EXEC_CONTROL: u32 = PinbasedControls::VIRTUAL_NMIS - .bits() - | PinbasedControls::POSTED_INTERRUPTS.bits(); + pub const KVM_OPTIONAL_VMX_PIN_BASED_VM_EXEC_CONTROL: u32 = + PinbasedControls::VIRTUAL_NMIS.bits() | PinbasedControls::POSTED_INTERRUPTS.bits(); pub const KVM_REQUIRED_VMX_VM_ENTRY_CONTROLS: u32 = EntryControls::LOAD_DEBUG_CONTROLS.bits() | EntryControls::IA32E_MODE_GUEST.bits(); diff --git a/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs b/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs index bff5b0d09..7ada718ea 100644 --- a/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs @@ -121,7 +121,7 @@ impl LockedVMControlStructure { #[derive(Debug)] pub struct VmcsHostState { - pub cr3:(PhysFrame,Cr3Flags), + pub cr3: (PhysFrame, Cr3Flags), pub cr4: Cr4, pub gs_base: usize, pub fs_base: usize, @@ -170,7 +170,10 @@ impl VmcsHostState { impl Default for VmcsHostState { fn default() -> Self { Self { - cr3: (PhysFrame::containing_address(x86_64::PhysAddr::new(0)), Cr3Flags::empty()), + cr3: ( + PhysFrame::containing_address(x86_64::PhysAddr::new(0)), + Cr3Flags::empty(), + ), cr4: Cr4::empty(), gs_base: 0, fs_base: 0, diff --git a/kernel/src/mm/mod.rs b/kernel/src/mm/mod.rs index 3b95f7c2b..9bed5c63d 100644 --- a/kernel/src/mm/mod.rs +++ b/kernel/src/mm/mod.rs @@ -124,7 +124,7 @@ pub enum PageTableKind { } /// 物理内存地址 -#[derive(Clone, Copy, Eq, Ord, PartialEq, PartialOrd, Hash)] +#[derive(Clone, Copy, Eq, Ord, PartialEq, PartialOrd, Hash,Default)] #[repr(transparent)] pub struct PhysAddr(usize); diff --git a/kernel/src/virt/vm/kvm_host/mem.rs b/kernel/src/virt/vm/kvm_host/mem.rs index f284244e6..54b76614f 100644 --- a/kernel/src/virt/vm/kvm_host/mem.rs +++ b/kernel/src/virt/vm/kvm_host/mem.rs @@ -8,14 +8,11 @@ use hashbrown::HashMap; use system_error::SystemError; use crate::{ - arch::MMArch, - libs::{ + arch::{vm::mmu::mmu::PAGE_SIZE, MMArch}, libs::{ rbtree::RBTree, rwlock::{RwLock, RwLockReadGuard, RwLockWriteGuard}, spinlock::{SpinLock, SpinLockGuard}, - }, - mm::{MemoryManagementArch, VirtAddr}, - virt::vm::{kvm_host::KVM_ADDRESS_SPACE_NUM, user_api::KvmUserspaceMemoryRegion}, + }, mm::{kernel_mapper::KernelMapper, page::PageFlags, MemoryManagementArch, VirtAddr}, virt::{kvm::host_mem::PAGE_SHIFT, vm::{kvm_host::KVM_ADDRESS_SPACE_NUM, user_api::KvmUserspaceMemoryRegion}} }; use super::{LockedVm, Vm}; @@ -24,6 +21,19 @@ pub const KVM_USER_MEM_SLOTS: u16 = u16::MAX; pub const KVM_INTERNAL_MEM_SLOTS: u16 = 3; pub const KVM_MEM_SLOTS_NUM: u16 = KVM_USER_MEM_SLOTS - KVM_INTERNAL_MEM_SLOTS; pub const KVM_MEM_MAX_NR_PAGES: usize = (1 << 31) - 1; +pub const APIC_ACCESS_PAGE_PRIVATE_MEMSLOT: u16 = KVM_MEM_SLOTS_NUM+1; + +/// 对于普通的页帧号(PFN),最高的12位应该为零, +/// 因此我们可以mask位62到位52来表示错误的PFN, +/// mask位63来表示无槽的PFN。 +const KVM_PFN_ERR_MASK: u64 = 0x7ff << 52;//0x7FF0000000000000 +const KVM_PFN_ERR_NOSLOT_MASK: u64 = 0xfff << 52;//0xFFF0000000000000 +const KVM_PFN_NOSLOT: u64 = 1 << 63;//0x8000000000000000 + +const KVM_PFN_ERR_FAULT: u64 = KVM_PFN_ERR_MASK; +const KVM_PFN_ERR_HWPOISON: u64 = KVM_PFN_ERR_MASK + 1; +const KVM_PFN_ERR_RO_FAULT: u64 = KVM_PFN_ERR_MASK + 2; +const KVM_PFN_ERR_SIGPENDING: u64 = KVM_PFN_ERR_MASK + 3; #[derive(Debug, Default)] #[allow(dead_code)] @@ -76,7 +86,7 @@ pub struct KvmMemSlotSet { /// 存储虚拟地址(hva)和内存插槽之间的映射关系 hva_tree: RBTree>, /// 用于存储全局页帧号(gfn)和内存插槽之间的映射关系 - gfn_tree: RBTree>, + pub gfn_tree: RBTree>, /// 将内存插槽的ID映射到对应的内存插槽。 slots: HashMap>, @@ -132,9 +142,9 @@ impl LockedKvmMemSlot { #[derive(Debug, Default)] pub struct KvmMemSlot { /// 首个gfn - base_gfn: u64, + pub base_gfn: u64, /// 页数量 - npages: usize, + pub npages: usize, /// 脏页位图 dirty_bitmap: Option, /// 架构相关 @@ -146,6 +156,21 @@ pub struct KvmMemSlot { hva_node_key: [AddrRange; 2], } +impl KvmMemSlot { + pub fn check_aligned_addr(&self, align: usize) -> bool { + self.userspace_addr.data() % align == 0 + } + pub fn get_flags(&self) -> UserMemRegionFlag { + self.flags + } + pub fn get_id(&self) -> u16 { + self.id + } + // 检查内存槽是否可见 + pub fn is_visible(&self) -> bool { + self.id < KVM_USER_MEM_SLOTS && (self.flags.bits() & UserMemRegionFlag::KVM_MEMSLOT_INVALID.bits()) == 0 + } +} #[derive(Debug)] pub struct LockedVmMemSlotSet { @@ -539,3 +564,135 @@ impl Vm { self.memslots[as_id] = self.get_inactive_memslot_set(as_id); } } +/// 将给定的客户机帧号(GFN)转换为用户空间虚拟地址(HVA),并根据内存槽的状态和标志进行相应的检查。 +/// +/// # 参数 +/// - `slot`: 可选的 `KvmMemSlot`,表示内存槽。 +/// - `gfn`: 客户机帧号(GFN),表示要转换的帧号。 +/// - `nr_pages`: 可选的可变引用,用于存储计算出的页数。 +/// - `write`: 布尔值,表示是否为写操作。 +/// +/// # 返回 +/// 如果成功,返回转换后的用户空间虚拟地址(HVA);如果失败,返回相应的错误。 +/// +/// # 错误 +/// 如果内存槽为空或无效,或者尝试对只读内存槽进行写操作,则返回 `SystemError::KVM_HVA_ERR_BAD`。 +fn __gfn_to_hva_many( + slot: &Option<&KvmMemSlot>, + gfn: u64, + nr_pages: Option<&mut u64>, + write: bool, +) -> Result { + kdebug!("__gfn_to_hva_many"); + + // 检查内存槽是否为空 + if slot.is_none() { + return Err(SystemError::KVM_HVA_ERR_BAD); + } + let slot = slot.as_ref().unwrap(); + + // 检查内存槽是否无效或尝试对只读内存槽进行写操作 + if slot.flags.bits() & UserMemRegionFlag::KVM_MEMSLOT_INVALID.bits() != 0 || + (slot.flags.bits() & UserMemRegionFlag::READONLY.bits() != 0) && write { + return Err(SystemError::KVM_HVA_ERR_BAD); + } + + // 如果 `nr_pages` 不为空,计算并更新页数 + if let Some(nr_pages) = nr_pages { + *nr_pages = slot.npages as u64 - (gfn - slot.base_gfn); + } + + // 调用辅助函数将 GFN 转换为 HVA + return Ok(__gfn_to_hva_memslot(slot, gfn)); +} + +/// 将给定的全局帧号(GFN)转换为用户空间虚拟地址(HVA)。 +/// +/// # 参数 +/// - `slot`: `KvmMemSlot`,表示内存槽。 +/// - `gfn`: 全局帧号(GFN),表示要转换的帧号。 +/// +/// # 返回 +/// 转换后的用户空间虚拟地址(HVA)。 +fn __gfn_to_hva_memslot(slot: &KvmMemSlot, gfn: u64) -> u64 { + return slot.userspace_addr.data() as u64 + (gfn - slot.base_gfn) * PAGE_SIZE; +} +/// 将给定的全局帧号(GFN)转换为页帧号(PFN),并根据内存槽的状态和标志进行相应的检查。 +/// +/// # 参数 +/// - `slot`: 内存槽的引用。 +/// - `gfn`: 全局帧号(GFN),表示要转换的帧号。 +/// - `atomic`: 布尔值,表示是否为原子操作。 +/// - `interruptible`: 布尔值,表示操作是否可中断。 +/// - `async`: 可变引用,表示操作是否为异步。 +/// - `write_fault`: 布尔值,表示是否为写操作。 +/// - `writable`: 可变引用,表示是否可写。 +/// - `hva`: 可变引用,表示用户空间虚拟地址(HVA)。 +/// +/// # 返回 +/// 如果成功,返回转换后的页帧号(PFN);如果失败,返回相应的错误。 +pub fn __gfn_to_pfn_memslot( + slot: Option<&KvmMemSlot>, + gfn: u64, + atomic: bool, + interruptible: bool, + is_async: &mut bool, + write: bool, + writable: &mut bool, + hva: &mut u64, +) -> Result { + let addr = __gfn_to_hva_many(&slot, gfn, None, write)?; + *hva = addr; + + //todo:检查地址是否为错误 + + // 如果内存槽为只读,且 writable 不为空,则更新 writable 的值 + if slot.unwrap().flags.bits() & UserMemRegionFlag::READONLY.bits() != 0 { + *writable = false; + } + + let pfn = hva_to_pfn(addr, atomic,interruptible, is_async,write,writable)?; + return Ok(pfn); +} +/// 将用户空间虚拟地址(HVA)转换为页帧号(PFN)。 +/// +/// # 参数 +/// - `addr`: 用户空间虚拟地址(HVA)。 +/// - `atomic`: 布尔值,表示是否为原子操作。 +/// - `interruptible`: 布尔值,表示操作是否可中断。 +/// - `is_async`: 可变引用,表示操作是否为异步。 +/// - `write_fault`: 布尔值,表示是否为写操作。 +/// - `writable`: 可变引用,表示是否可写。 +/// +/// # 返回 +/// 如果成功,返回转换后的页帧号(PFN);如果失败,返回相应的错误。 +// 正确性待验证 +pub fn hva_to_pfn( + addr: u64, + atomic: bool, + _interruptible: bool, + is_async: &mut bool, + _write_fault: bool, + _writable: &mut bool, +) -> Result { + // 我们可以原子地或异步地执行,但不能同时执行 + assert!(!(atomic && *is_async), "Cannot be both atomic and async"); + + kdebug!("hva_to_pfn"); + unsafe { + let raw = addr as *const i32; + kdebug!("raw={:x}", *raw); + } + // let hpa = MMArch::virt_2_phys(VirtAddr::new(addr)).unwrap().data() as u64; + let hva = VirtAddr::new(addr as usize); + let mut mapper = KernelMapper::lock(); + let mapper = mapper.as_mut().unwrap(); + if let Some((hpa, _)) = mapper.translate(hva) { + return Ok(hpa.data() as u64 >> PAGE_SHIFT); + } + unsafe { + mapper.map(hva, PageFlags::mmio_flags()); + } + let (hpa, _) = mapper.translate(hva).unwrap(); + return Ok(hpa.data() as u64 >> PAGE_SHIFT); +} diff --git a/kernel/src/virt/vm/kvm_host/mod.rs b/kernel/src/virt/vm/kvm_host/mod.rs index 29aa746ef..e90dc1d7b 100644 --- a/kernel/src/virt/vm/kvm_host/mod.rs +++ b/kernel/src/virt/vm/kvm_host/mod.rs @@ -9,6 +9,7 @@ use alloc::{ vec::Vec, }; use hashbrown::HashMap; +use mem::LockedKvmMemSlot; use system_error::SystemError; use crate::{ @@ -17,7 +18,7 @@ use crate::{ CurrentKvmManager, KvmArch, VirtCpuArch, }, filesystem::vfs::file::{File, FileMode}, - libs::spinlock::{SpinLock, SpinLockGuard}, + libs::{rbtree::RBTree, spinlock::{SpinLock, SpinLockGuard}}, mm::ucontext::AddressSpace, process::ProcessManager, smp::cpu::ProcessorId, @@ -88,6 +89,7 @@ impl LockedVm { #[cfg(target_arch = "x86_64")] kvm_vmx: KvmVmx::default(), nr_memslots_dirty_logging: 0, + mmu_invalidate_seq: 0, }; let ret = Arc::new(Self { @@ -128,7 +130,7 @@ pub struct Vm { /// 对应活动和非活动内存槽,实际为:[[Arc; 2]; KVM_ADDRESS_SPACE_NUM],这里暂时写Vec memslots_set: Vec>>, /// 当前活动内存槽,实际为:[Arc; KVM_ADDRESS_SPACE_NUM],这里暂时写Vec - memslots: Vec>, + pub memslots: Vec>, /// 内存槽对应的页数 nr_memslot_pages: usize, @@ -140,6 +142,8 @@ pub struct Vm { #[cfg(target_arch = "x86_64")] pub kvm_vmx: KvmVmx, + + pub mmu_invalidate_seq:u64//用于表示内存管理单元(MMU)无效化序列号 } impl Vm { @@ -207,6 +211,7 @@ impl Vm { run: unsafe { Some(Box::new_zeroed().assume_init()) }, vcpu_idx: 0, mode: VcpuMode::OutsideGuestMode, + stat: Default::default(), }; } @@ -237,3 +242,19 @@ pub enum MutilProcessorState { ApResetHold, Suspended, } +///返回包含 gfn 的 memslot 的指针。如果没有找到,则返回 NULL。 +///当 "approx" 设置为 true 时,即使地址落在空洞中,也会返回 memslot。 +///在这种情况下,将返回空洞边界的其中一个 memslot。 +/// 先简陋完成,原本是二分,现在先遍历 +pub fn search_memslots(slot_set:Arc,gfn:u64,/*_approx:bool*/)->Option>{ + let slots=slot_set.lock(); + let node = &slots.gfn_tree; + //let(start,end)=(0,node.len()-1); + for (_gfn_num,slot) in node.iter(){ + let slot_guard = slot.read(); + if gfn >= slot_guard.base_gfn && gfn < slot_guard.base_gfn + slot_guard.npages as u64{ + return Some(slot.clone()); + } + } + return None; +} \ No newline at end of file diff --git a/kernel/src/virt/vm/kvm_host/vcpu.rs b/kernel/src/virt/vm/kvm_host/vcpu.rs index 56d71c2c5..ab0c075a0 100644 --- a/kernel/src/virt/vm/kvm_host/vcpu.rs +++ b/kernel/src/virt/vm/kvm_host/vcpu.rs @@ -6,8 +6,11 @@ use alloc::{ use crate::{ arch::{ - vm::{kvm_host::vcpu::VirtCpuRequest, vmx::VmxVCpuPriv}, - VirtCpuArch, + vm::{ + kvm_host::{vcpu::VirtCpuRequest, KvmReg}, + vmx::VmxVCpuPriv, + }, + VirtCpuArch, VirtCpuStat, }, libs::spinlock::{SpinLock, SpinLockGuard}, process::Pid, @@ -61,6 +64,7 @@ pub struct VirtCpu { pub stats_id: String, pub pv_time: GfnToHvaCache, pub arch: VirtCpuArch, + pub stat: VirtCpuStat, pub mode: VcpuMode, @@ -89,6 +93,19 @@ impl VirtCpu { pub fn vmx_mut(&mut self) -> &mut VmxVCpuPriv { self.private.as_mut().unwrap() } + //https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/vmx/vmx.h?fi=vmx_get_exit_qual#677 + #[inline] + pub fn get_exit_qual(&mut self) -> u64 { + if !self + .arch + .test_and_mark_available(KvmReg::VcpuExregExitInfo1) + { + self.vmx_mut().vmread_exit_qual(); + } + let vmx = self.vmx(); + vmx.get_exit_qual() + //vmx. + } } bitflags! { From 92c661a6e7b62fc123b2a8b020c8a9d10cb62781 Mon Sep 17 00:00:00 2001 From: GnoCiYeH Date: Wed, 18 Sep 2024 01:15:45 +0800 Subject: [PATCH 08/18] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=86=85=E5=AD=98?= =?UTF-8?q?=E8=99=9A=E6=8B=9F=E5=8C=96=E9=83=A8=E5=88=86=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E4=BC=A0=E5=85=A5=EF=BC=8C=E8=A7=A3=E5=86=B3=E6=AD=BB=E9=94=81?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/src/arch/x86_64/vm/kvm_host/mod.rs | 13 +- kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs | 6 +- kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs | 210 ++++++++++-------- kernel/src/arch/x86_64/vm/mmu/tdp_iter.rs | 118 +++++----- kernel/src/arch/x86_64/vm/vmx/exit.rs | 32 ++- kernel/src/arch/x86_64/vm/vmx/mod.rs | 11 +- kernel/src/virt/vm/kvm_host/mem.rs | 41 ++-- kernel/src/virt/vm/kvm_host/mod.rs | 25 ++- 8 files changed, 269 insertions(+), 187 deletions(-) diff --git a/kernel/src/arch/x86_64/vm/kvm_host/mod.rs b/kernel/src/arch/x86_64/vm/kvm_host/mod.rs index 92aff5857..67026f189 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/mod.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/mod.rs @@ -38,7 +38,7 @@ pub const TSS_IOPB_SIZE: usize = 65536 / 8; pub const TSS_REDIRECTION_SIZE: usize = 256 / 8; pub const RMODE_TSS_SIZE: usize = TSS_BASE_SIZE + TSS_REDIRECTION_SIZE + TSS_IOPB_SIZE + 1; -pub const KVM_PFN_NOSLOT:u64 = 0x1 << 63; +pub const KVM_PFN_NOSLOT: u64 = 0x1 << 63; #[derive(Debug, Default)] pub struct X86KvmArch { @@ -63,7 +63,7 @@ pub struct X86KvmArch { msr_fliter: Option>, - pub noncoherent_dma_count:AtomicU32, + pub noncoherent_dma_count: AtomicU32, } impl X86KvmArch { @@ -219,6 +219,7 @@ pub trait KvmFunc: Send + Sync + Debug { fn handle_exit( &self, vcpu: &mut VirtCpu, + vm: &Vm, fastpath: ExitFastpathCompletion, ) -> Result; } @@ -401,7 +402,7 @@ bitflags! { const WRITE_PF_TO_SP = 1 << 8; } } -#[derive(Default,Debug)] +#[derive(Default, Debug)] ///用于跟踪和记录VCPU的各种统计信息。 pub struct KvmVcpuStat { //pub generic: KvmVcpuStatGeneric, @@ -441,12 +442,12 @@ pub struct KvmVcpuStat { pub notify_window_exits: u64, } #[inline] -/// 将 GFN 转换为 GPA +/// 将 GFN 转换为 GPA pub fn gfn_to_gpa(gfn: u64) -> u64 { gfn << 12 } #[inline] -/// 将 GPA 转换为 GFN +/// 将 GPA 转换为 GFN pub fn gpa_to_gfn(gfn: u64) -> u64 { gfn >> 12 -} \ No newline at end of file +} diff --git a/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs b/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs index 133568c6f..e774ac57b 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs @@ -857,9 +857,9 @@ impl VirtCpu { // TODO: 一些中断或者tsc操作 - match x86_kvm_ops().handle_exit(self, exit_fastpath){ - Err(err)=>return Err(err), - Ok(_)=>{Ok(())} + match x86_kvm_ops().handle_exit(self, vm, exit_fastpath) { + Err(err) => return Err(err), + Ok(_) => Ok(()), } } diff --git a/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs b/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs index 4267394f2..edae9c9c7 100644 --- a/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs +++ b/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs @@ -1,44 +1,54 @@ -use core::{intrinsics::unlikely, ops::Index}; use alloc::{ boxed::Box, sync::{Arc, Weak}, vec::Vec, }; +use core::{intrinsics::unlikely, ops::Index}; use system_error::SystemError; use crate::{ arch::vm::{ - kvm_host::{EmulType,KVM_PFN_NOSLOT} ,mmu::{mmu::{PFRet, PageLevel}, tdp_iter:: - { is_large_pte, is_shadow_present_pte, TdpIter}}, mtrr::kvm_mtrr_check_gfn_range_consistency, vmx::PageFaultErr + kvm_host::{EmulType, KVM_PFN_NOSLOT}, + mmu::{ + mmu::{PFRet, PageLevel}, + tdp_iter::{is_large_pte, is_shadow_present_pte, TdpIter}, + }, + mtrr::kvm_mtrr_check_gfn_range_consistency, + vmx::PageFaultErr, }, kwarn, + libs::spinlock::SpinLockGuard, mm::{virt_2_phys, PhysAddr}, virt::{ kvm::host_mem::PAGE_SHIFT, - vm::kvm_host::{mem::{LockedKvmMemSlot, LockedVmMemSlotSet, UserMemRegionFlag, __gfn_to_pfn_memslot}, search_memslots, vcpu::VirtCpu}, + vm::kvm_host::{ + mem::{LockedKvmMemSlot, LockedVmMemSlotSet, UserMemRegionFlag, __gfn_to_pfn_memslot}, + search_memslots, + vcpu::VirtCpu, + Vm, + }, }, }; use super::mmu::{gfn_round_for_level, is_tdp_mmu_enabled, KvmMmuPageRole}; #[derive(Debug, Default)] -pub struct KvmMmuPage{ - pub tdp_mmu_page:bool,// 标记是否为 TDP(Two-Dimensional Paging)页表页 - pub gfn: u64,// 客户机帧号(Guest Frame Number) - +pub struct KvmMmuPage { + pub tdp_mmu_page: bool, // 标记是否为 TDP(Two-Dimensional Paging)页表页 + pub gfn: u64, // 客户机帧号(Guest Frame Number) + /* - * The following two entries are used to key the shadow page in the - * hash table.暫時沒看出來 - */ + * The following two entries are used to key the shadow page in the + * hash table.暫時沒看出來 + */ pub role: KvmMmuPageRole, - pub spt: u64,// 指向页表条目(SPTE)的指针 + pub spt: u64, // 指向页表条目(SPTE)的指针 pub mmu_seq: u64, pub map_writable: bool, pub write_fault_to_shadow_pgtable: bool, } - #[derive(Debug, Default)] pub struct KvmPageFault { // vcpu.do_page_fault 的参数 @@ -89,6 +99,7 @@ impl VirtCpu { #[inline(never)] pub fn page_fault( &mut self, + vm: &Vm, cr2_or_gpa: u64, mut error_code: u64, insn: Option, @@ -120,7 +131,7 @@ impl VirtCpu { if r == PFRet::Invalid { r = self - .do_page_fault(cr2_or_gpa, error_code as u32, false, emulation_type)? + .do_page_fault(vm, cr2_or_gpa, error_code as u32, false, emulation_type)? .into(); if r == PFRet::Invalid { return Err(SystemError::EIO); @@ -158,8 +169,10 @@ impl VirtCpu { // self.emulate_instruction(cr2_or_gpa, emulation_type, insn, insn_len) todo!("emulate_instruction") } + fn do_page_fault( &mut self, + vm: &Vm, cr2_or_gpa: u64, error_code: u32, prefetch: bool, @@ -175,7 +188,7 @@ impl VirtCpu { rsvd: error_code & PageFaultErr::PFERR_RSVD.bits() as u32 != 0, user: error_code & PageFaultErr::PFERR_USER.bits() as u32 != 0, prefetch, - is_tdp : true, + is_tdp: true, nx_huge_page_workaround_enabled: false, //todo max_level: PageLevel::Level1G as u8, req_level: PageLevel::Level4K as u8, @@ -185,7 +198,7 @@ impl VirtCpu { //处理直接映射 if self.arch.mmu().root_role.get_direct() { page_fault.gfn = (page_fault.addr.data() >> PAGE_SHIFT) as u64; - page_fault.slot = self.gfn_to_memslot(page_fault.gfn);//kvm_vcpu_gfn_to_memslot(vcpu, fault.gfn);没完成 + page_fault.slot = self.gfn_to_memslot(page_fault.gfn, vm); //kvm_vcpu_gfn_to_memslot(vcpu, fault.gfn);没完成 } //异步页面错误(Async #PF),也称为预取错误(prefetch faults), //从客机(guest)的角度来看并不是错误,并且已经在原始错误发生时被计数。 @@ -194,7 +207,7 @@ impl VirtCpu { } let r = if page_fault.is_tdp { - self.tdp_page_fault(&mut page_fault).unwrap() + self.tdp_page_fault(vm, &mut page_fault).unwrap() } else { let handle = self.arch.mmu().page_fault.unwrap(); handle(self, &page_fault).unwrap() @@ -211,52 +224,58 @@ impl VirtCpu { PFRet::Spurious => self.stat.pf_spurious += 1, _ => {} } - + Ok(r) } - fn gfn_to_memslot(&self, gfn: u64) -> Option> { - let slot_set: Arc = self.kvm_vcpu_memslots(); + fn gfn_to_memslot(&self, gfn: u64, vm: &Vm) -> Option> { + let slot_set: Arc = self.kvm_vcpu_memslots(vm); //...todo - - search_memslots(slot_set, gfn) + search_memslots(slot_set, gfn) } - pub fn kvm_vcpu_memslots(&self) ->Arc { - let binding = self.kvm(); - let kvm = binding.lock(); - kvm.memslots.index(0).clone() + pub fn kvm_vcpu_memslots(&self, vm: &Vm) -> Arc { + vm.memslots.index(0).clone() } - fn tdp_page_fault(&mut self, page_fault: &mut KvmPageFault) -> Result { + fn tdp_page_fault( + &mut self, + vm: &Vm, + page_fault: &mut KvmPageFault, + ) -> Result { // 如果 shadow_memtype_mask 为真,并且虚拟机有非一致性 DMA //if shadow_memtype_mask != 0 && self.kvm().lock().arch.noncoherent_dma_count > 0 { - while page_fault.max_level > PageLevel::Level4K as u8{ - let page_num = PageLevel::kvm_pages_per_hpage(page_fault.max_level); + while page_fault.max_level > PageLevel::Level4K as u8 { + let page_num = PageLevel::kvm_pages_per_hpage(page_fault.max_level); - //低地址对齐 - let base = gfn_round_for_level(page_fault.gfn, page_fault.max_level); + //低地址对齐 + let base = gfn_round_for_level(page_fault.gfn, page_fault.max_level); - //检查给定 GFN 范围内的内存类型是否一致,暂未实现 - if kvm_mtrr_check_gfn_range_consistency(self, base, page_num) { - break; - } - - page_fault.max_level -= 1; + //检查给定 GFN 范围内的内存类型是否一致,暂未实现 + if kvm_mtrr_check_gfn_range_consistency(self, base, page_num) { + break; } + + page_fault.max_level -= 1; + } //} - if is_tdp_mmu_enabled() { - return self.kvm_tdp_mmu_page_fault(page_fault); - } + if is_tdp_mmu_enabled() { + return self.kvm_tdp_mmu_page_fault(vm, page_fault); + } self.direct_page_fault(page_fault) } - fn kvm_tdp_mmu_page_fault(&self,page_fault: &mut KvmPageFault)->Result{ - - //page_fault_handle_page_track(page_fault) + fn kvm_tdp_mmu_page_fault( + &self, + vm: &Vm, + page_fault: &mut KvmPageFault, + ) -> Result { + //page_fault_handle_page_track(page_fault) //fast_page_fault(page_fault); //mmu_topup_memory_caches(false);//补充内存缓存 - let mut r= self.kvm_faultin_pfn(page_fault, 1|1<<1|1<<2).unwrap(); + let mut r = self + .kvm_faultin_pfn(vm, page_fault, 1 | 1 << 1 | 1 << 2) + .unwrap(); if r != PFRet::Continue { return Ok(r.into()); } @@ -266,34 +285,37 @@ impl VirtCpu { self.tdp_map(page_fault); Ok(r.into()) } - fn tdp_map(&self,page_fault: &mut KvmPageFault)->Result{ + fn tdp_map(&self, page_fault: &mut KvmPageFault) -> Result { //没有实现SPTE,huge page相关 - let mmu=self.arch.mmu(); + let mmu = self.arch.mmu(); let kvm = self.kvm(); let ret = PFRet::Retry; - - - let mut tdp_iter : TdpIter=TdpIter::default(); + let mut tdp_iter: TdpIter = TdpIter::default(); + + tdp_iter.start( + virt_2_phys(mmu.root.hpa as usize), /*__va */ + mmu.root_role.level() as u8, + PageLevel::Level4K as u8, + page_fault.gfn, + ); - tdp_iter.start(virt_2_phys(mmu.root.hpa as usize)/*__va */,mmu.root_role.level() as u8, - PageLevel::Level4K as u8,page_fault.gfn ); - for iter in tdp_iter{ - if !(iter.valid && iter.gfnpa的转换可能有点问题 - // 如果启用了 NX 巨大页解决方法,则进行调整 if page_fault.nx_huge_page_workaround_enabled { page_fault.nx_huge_page_workaround_enabled = false; } - if iter.level == page_fault.goal_level{ + if iter.level == page_fault.goal_level { //self.map_handle_target_level(page_fault,&mut iter); } - + //如果在比目标更高的级别有一个映射大页的 SPTE, //那么该 SPTE 必须被清除并替换为非叶子 SPTE。 if is_shadow_present_pte(iter.old_spte) && !is_large_pte(iter.old_spte) { @@ -301,59 +323,69 @@ impl VirtCpu { } //SPTE是non-present或者指向一个需要split的大页 - - } todo!() } ///todo()!!! - fn map_handle_target_level(&self,page_fault:&mut KvmPageFault,iter: &mut TdpIter){ + fn map_handle_target_level(&self, page_fault: &mut KvmPageFault, iter: &mut TdpIter) { todo!() } - fn direct_page_fault(&self,page_fault: &KvmPageFault)->Result{ + fn direct_page_fault(&self, page_fault: &KvmPageFault) -> Result { todo!() } - fn kvm_faultin_pfn(&self,page_fault: &mut KvmPageFault,access: u32)->Result{ - page_fault.mmu_seq = self.kvm().lock().mmu_invalidate_seq; + fn kvm_faultin_pfn( + &self, + vm: &Vm, + page_fault: &mut KvmPageFault, + access: u32, + ) -> Result { + page_fault.mmu_seq = vm.mmu_invalidate_seq; self.__kvm_faultin_pfn(page_fault) } - fn __kvm_faultin_pfn(&self,page_fault: &mut KvmPageFault)->Result{ + fn __kvm_faultin_pfn(&self, page_fault: &mut KvmPageFault) -> Result { let slot = &page_fault.slot; let mut is_async = false; if slot.is_none() { return Err(SystemError::KVM_HVA_ERR_BAD); } let slot = slot.as_ref().unwrap().read(); - - if slot.get_flags().bits()& UserMemRegionFlag::KVM_MEMSLOT_INVALID.bits()!= 0 { - return Ok(PFRet::Retry); - } - if !slot.is_visible(){ - /* 不要将私有内存槽暴露给 L2。 */ - if self.arch.is_guest_mode() { - drop(slot); - page_fault.slot = None; - page_fault.pfn = KVM_PFN_NOSLOT; - page_fault.map_writable = false; - return Ok(PFRet::Continue); - } - /* - * 如果 APIC 访问页面存在但被禁用,则直接进行仿真, - * 而不缓存 MMIO 访问或创建 MMIO SPTE。 - * 这样,当 AVIC 重新启用时,不需要清除缓存。 - */ - // if slot.get_id() == APIC_ACCESS_PAGE_PRIVATE_MEMSLOT && !self.kvm_apicv_activated() - // { - // return PFRet::Emulate; - // } - } + if slot.get_flags().bits() & UserMemRegionFlag::KVM_MEMSLOT_INVALID.bits() != 0 { + return Ok(PFRet::Retry); + } + if !slot.is_visible() { + /* 不要将私有内存槽暴露给 L2。 */ + if self.arch.is_guest_mode() { + drop(slot); + page_fault.slot = None; + page_fault.pfn = KVM_PFN_NOSLOT; + page_fault.map_writable = false; + return Ok(PFRet::Continue); + } + /* + * 如果 APIC 访问页面存在但被禁用,则直接进行仿真, + * 而不缓存 MMIO 访问或创建 MMIO SPTE。 + * 这样,当 AVIC 重新启用时,不需要清除缓存。 + */ + // if slot.get_id() == APIC_ACCESS_PAGE_PRIVATE_MEMSLOT && !self.kvm_apicv_activated() + // { + // return PFRet::Emulate; + // } + } // 尝试将 GFN 转换为 PFN - page_fault.pfn = __gfn_to_pfn_memslot(Some(&slot), page_fault.gfn, false, false, &mut is_async, - page_fault.write, &mut page_fault.map_writable, - &mut page_fault.hva)?; + page_fault.pfn = __gfn_to_pfn_memslot( + Some(&slot), + page_fault.gfn, + false, + false, + &mut is_async, + page_fault.write, + &mut page_fault.map_writable, + &mut page_fault.hva, + )?; + if !is_async { return Ok(PFRet::Continue); /* *pfn 已经有正确的页面 */ } diff --git a/kernel/src/arch/x86_64/vm/mmu/tdp_iter.rs b/kernel/src/arch/x86_64/vm/mmu/tdp_iter.rs index a0298a022..3b0577c63 100644 --- a/kernel/src/arch/x86_64/vm/mmu/tdp_iter.rs +++ b/kernel/src/arch/x86_64/vm/mmu/tdp_iter.rs @@ -1,27 +1,34 @@ -use crate::{arch::vm::mmu::mmu::gfn_round_for_level, mm::{virt_2_phys, PhysAddr, VirtAddr}, time::sleep, virt::kvm::host_mem::PAGE_SHIFT}; - -use super::{mmu::{PageLevel, PAGE_SIZE}, mmu_internal::KvmMmuPage}; - +use crate::{ + arch::vm::mmu::mmu::gfn_round_for_level, + mm::{virt_2_phys, PhysAddr, VirtAddr}, + time::sleep, + virt::kvm::host_mem::PAGE_SHIFT, +}; + +use super::{ + mmu::{PageLevel, PAGE_SIZE}, + mmu_internal::KvmMmuPage, +}; pub const PT64_ROOT_MAX_LEVEL: usize = 5; //通常只用到4级,但是确实有5级的情况 pub const PT_LEVEL_BITS: u8 = 9; // 每个页表级别的位数 -pub const PT64_ENT_PER_PAGE: u32 = 1<<9; +pub const PT64_ENT_PER_PAGE: u32 = 1 << 9; pub const PTE_LEN: usize = 64; //Bits 51:12 are from the EPT PDPTE pub const PT64_BASE_ADDR_MASK: u64 = ((1u64 << 52) - 1) & !(PAGE_SIZE - 1); pub fn shadow_pt_index(addr: u64, level: u8) -> u64 { - (addr >> (PAGE_SHIFT as u8 + (level - 1) * PT_LEVEL_BITS)) & ((1 << PT_LEVEL_BITS) - 1) + (addr >> (PAGE_SHIFT as u8 + (level - 1) * PT_LEVEL_BITS)) & ((1 << PT_LEVEL_BITS) - 1) } pub fn is_last_spte(pte: u64, level: u8) -> bool { level == PageLevel::Level4K as u8 || is_large_pte(pte) } -pub fn is_shadow_present_pte(pte :u64) ->bool{ - pte & 1<<11 !=0//在intel手冊中:ept PTE:11 Ignored.不是很懂 +pub fn is_shadow_present_pte(pte: u64) -> bool { + pte & 1 << 11 != 0 //在intel手冊中:ept PTE:11 Ignored.不是很懂 } -pub fn is_large_pte(pte :u64) ->bool{ - pte & 1<<7 !=0//在intel手冊中:ept PTE:7 Ignored. +pub fn is_large_pte(pte: u64) -> bool { + pte & 1 << 7 != 0 //在intel手冊中:ept PTE:7 Ignored. } ///Bits 51:12 are from the EPT PDPTE pub fn spte_to_pfn(pte: u64) -> u64 { @@ -29,21 +36,25 @@ pub fn spte_to_pfn(pte: u64) -> u64 { } #[derive(Default)] -pub struct TdpIter{ +pub struct TdpIter { inner: TdpIterInner, } -impl TdpIter{ - pub fn start(&self,root_pt:usize,root_level:u8,min_level:u8,next_last_level_gfn:u64)->Self{ +impl TdpIter { + pub fn start( + &self, + root_pt: usize, + root_level: u8, + min_level: u8, + next_last_level_gfn: u64, + ) -> Self { let mut inner = self.inner.clone(); - inner.start(root_pt,root_level,min_level,next_last_level_gfn); - TdpIter{ - inner - } + inner.start(root_pt, root_level, min_level, next_last_level_gfn); + TdpIter { inner } } } ///迭代器将遍历分页结构,直到找到此 GFN 的映射。 -#[derive(Default,Clone)] +#[derive(Default, Clone)] pub struct TdpIterInner { next_last_level_gfn: u64, /// 线程上次让出时的 next_last_level_gfn。 @@ -59,7 +70,7 @@ pub struct TdpIterInner { /// 当前 SPTE 映射的最低 GFN hpa>>shift? pub gfn: u64, - ///给迭代器的根页级别 + ///给迭代器的根页级别 pub root_level: u8, ///迭代器应遍历到的最低级别 @@ -75,10 +86,16 @@ pub struct TdpIterInner { /// pub valid: bool, } -impl TdpIterInner{ +impl TdpIterInner { ///初始化ept iter - pub fn start(&mut self,root_pt :usize,root_level:u8, - min_level: u8,next_last_level_gfn:u64){ + #[inline(never)] + pub fn start( + &mut self, + root_pt: usize, + root_level: u8, + min_level: u8, + next_last_level_gfn: u64, + ) { // if root_pt.role.level() == 0 || root_pt.role.level() > PT64_ROOT_MAX_LEVEL as u32 { // self.valid = false; // return; @@ -91,8 +108,8 @@ impl TdpIterInner{ self.next_last_level_gfn = next_last_level_gfn; self.root_level = root_level as u8; self.min_level = min_level as u8; - self.pt_path[(self.root_level - 1) as usize] =root_pt as u64; - self.yielded_gfn=self.next_last_level_gfn; + self.pt_path[(self.root_level - 1) as usize] = root_pt as u64; + self.yielded_gfn = self.next_last_level_gfn; self.level = self.root_level; self.gfn = gfn_round_for_level(self.next_last_level_gfn, self.level); @@ -101,20 +118,22 @@ impl TdpIterInner{ } /* - * 重新计算当前GFN和level和SPTE指针,并重新读取SPTE。 - */ - fn tdp_iter_refresh_sptep(&mut self){ - self.sptep = PhysAddr::new((self.pt_path[self.level as usize - 1] + - shadow_pt_index(self.gfn <bool{ + fn try_step_down(&mut self) -> bool { if self.level == self.min_level { return false; } //在下降之前重新读取SPTE,以避免遍历到不再从此条目链接的页表中。 - self.old_spte =read_sptep(self.sptep); + self.old_spte = read_sptep(self.sptep); - match spte_to_child_pt(self.old_spte,self.level){ - Some(child_pt) =>{ + match spte_to_child_pt(self.old_spte, self.level) { + Some(child_pt) => { self.level -= 1; self.pt_path[self.level as usize - 1] = child_pt.data() as u64; self.gfn = gfn_round_for_level(self.gfn, self.level); @@ -140,10 +159,9 @@ impl TdpIterInner{ true } None => false, - } } - fn try_step_up(&mut self)->bool{ + fn try_step_up(&mut self) -> bool { if self.level == self.root_level { return false; } @@ -155,25 +173,24 @@ impl TdpIterInner{ ///在当前页表的当前级别中,移动到下一个条目。下一个条目可以指向一个page backing guest memory , ///或者另一个页表,或者它可能是不存在的。如果迭代器能够移动到页表中的下一个条目,则返回true, ///如果迭代器已经在当前页表的末尾,则返回false。 - fn try_step_side(&mut self)-> bool{ + fn try_step_side(&mut self) -> bool { //检查迭代器是否已经在当前页表的末尾。 - if shadow_pt_index(self.gfn< Option { - let inner=&mut self.inner; + let inner = &mut self.inner; if !inner.valid { return None; } @@ -184,20 +201,19 @@ impl Iterator for TdpIter{ None } } - } ///给定一个 SPTE 及其级别,返回一个指针,该指针包含 SPTE 所引用的子页表的hva。 ///如果没有这样的条目,则返回 null。 /// -fn spte_to_child_pt(spte:u64,level:u8) ->Option{ +fn spte_to_child_pt(spte: u64, level: u8) -> Option { //没有子页表 - if !is_shadow_present_pte(spte) || is_last_spte(spte,level){ + if !is_shadow_present_pte(spte) || is_last_spte(spte, level) { return None; } Some(VirtAddr::new(virt_2_phys//__va ((spte_to_pfn(spte)<u64{ - unsafe{*(sptep.data() as *const u64)} -} \ No newline at end of file +pub fn read_sptep(sptep: PhysAddr) -> u64 { + unsafe { *(sptep.data() as *const u64) } +} diff --git a/kernel/src/arch/x86_64/vm/vmx/exit.rs b/kernel/src/arch/x86_64/vm/vmx/exit.rs index 18dad7aaf..1558757d4 100644 --- a/kernel/src/arch/x86_64/vm/vmx/exit.rs +++ b/kernel/src/arch/x86_64/vm/vmx/exit.rs @@ -4,7 +4,9 @@ use x86::vmx::vmcs::{guest, ro}; use crate::{ arch::vm::asm::{IntrInfo, VmxAsm}, - virt::vm::kvm_host::vcpu::VirtCpu, + kerror, + libs::spinlock::SpinLockGuard, + virt::vm::kvm_host::{vcpu::VirtCpu, Vm}, }; use super::{ept::EptViolationExitQual, vmx_info, PageFaultErr}; @@ -32,7 +34,7 @@ pub struct VmxExitReason { } //#define VMX_EXIT_REASONS -#[derive(FromPrimitive, PartialEq)] +#[derive(FromPrimitive, PartialEq, Clone, Copy)] #[allow(non_camel_case_types)] pub enum VmxExitReasonBasic { EXCEPTION_OR_NMI = 0, @@ -248,6 +250,7 @@ impl VmxExitHandlers { #[inline(never)] pub fn try_handle_exit( vcpu: &mut VirtCpu, + vm: &Vm, basic: VmxExitReasonBasic, ) -> Option> { match basic { @@ -255,12 +258,12 @@ impl VmxExitHandlers { return Some(Self::handle_io(vcpu)); } VmxExitReasonBasic::EPT_VIOLATION => { - return Some(Self::handle_ept_violation(vcpu)); + return Some(Self::handle_ept_violation(vcpu, vm)); } - - _ => { - None + VmxExitReasonBasic::EXTERNAL_INTERRUPT => { + return Some(Self::handle_external_interrupt(vcpu)); } + _ => None, } } @@ -268,7 +271,12 @@ impl VmxExitHandlers { todo!(); } - fn handle_ept_violation(vcpu: &mut VirtCpu) -> Result { + fn handle_external_interrupt(vcpu: &mut VirtCpu) -> Result { + vcpu.stat.irq_exits += 1; + Ok(1) + } + + fn handle_ept_violation(vcpu: &mut VirtCpu, vm: &Vm) -> Result { let exit_qualification = vcpu.get_exit_qual(); // EPT 违规发生在从 NMI 执行 iret 时, @@ -286,12 +294,14 @@ impl VmxExitHandlers { // trace_kvm_page_fault(vcpu, gpa, exit_qualification);//fztodo!() // 根据故障类型确定错误代码 - let mut error_code = if exit_qualification & (EptViolationExitQual::ACC_READ.bits()) != 0 {//active + let mut error_code = if exit_qualification & (EptViolationExitQual::ACC_READ.bits()) != 0 { + //active PageFaultErr::PFERR_USER.bits() } else { 0 }; - error_code |= if exit_qualification & (EptViolationExitQual::ACC_WRITE.bits()) != 0 {//active + error_code |= if exit_qualification & (EptViolationExitQual::ACC_WRITE.bits()) != 0 { + //active PageFaultErr::PFERR_WRITE.bits() } else { 0 @@ -307,7 +317,7 @@ impl VmxExitHandlers { 0 }; error_code |= if exit_qualification & (EptViolationExitQual::GVA_TRANSLATED.bits()) != 0 { - PageFaultErr::PFERR_GUEST_FINAL.bits()//active + PageFaultErr::PFERR_GUEST_FINAL.bits() //active } else { PageFaultErr::PFERR_GUEST_PAGE.bits() }; @@ -323,6 +333,6 @@ impl VmxExitHandlers { // return kvm_emulate_instruction(vcpu, 0); // } - vcpu.page_fault(gpa, error_code, None, 0) + vcpu.page_fault(vm, gpa, error_code, None, 0) } } diff --git a/kernel/src/arch/x86_64/vm/vmx/mod.rs b/kernel/src/arch/x86_64/vm/vmx/mod.rs index 7591b0e78..7500f507b 100644 --- a/kernel/src/arch/x86_64/vm/vmx/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/mod.rs @@ -1211,9 +1211,10 @@ impl KvmFunc for VmxKvmFunc { //vmx_handle_exit &self, vcpu: &mut VirtCpu, + vm: &Vm, fastpath: ExitFastpathCompletion, ) -> Result { - let r = vmx_info().vmx_handle_exit(vcpu, fastpath); + let r = vmx_info().vmx_handle_exit(vcpu, vm, fastpath); if vcpu.vmx().exit_reason.bus_lock_detected() { todo!() @@ -2977,6 +2978,7 @@ impl Vmx { pub fn vmx_handle_exit( &self, vcpu: &mut VirtCpu, + vm: &Vm, exit_fastpath: ExitFastpathCompletion, ) -> Result { let exit_reason = vcpu.vmx().exit_reason; @@ -3046,8 +3048,11 @@ impl Vmx { if exit_fastpath != ExitFastpathCompletion::None { return Err(SystemError::EINVAL); } - match VmxExitHandlers::try_handle_exit(vcpu, VmxExitReasonBasic::from(exit_reason.basic())) - { + match VmxExitHandlers::try_handle_exit( + vcpu, + vm, + VmxExitReasonBasic::from(exit_reason.basic()), + ) { Some(Ok(r)) => return Ok(r), Some(Err(_)) | None => unexpected_vmexit(vcpu), } diff --git a/kernel/src/virt/vm/kvm_host/mem.rs b/kernel/src/virt/vm/kvm_host/mem.rs index 8fa8613dd..d0eb826b8 100644 --- a/kernel/src/virt/vm/kvm_host/mem.rs +++ b/kernel/src/virt/vm/kvm_host/mem.rs @@ -8,11 +8,17 @@ use hashbrown::HashMap; use system_error::SystemError; use crate::{ - arch::{vm::mmu::mmu::PAGE_SIZE, MMArch}, libs::{ + arch::{vm::mmu::mmu::PAGE_SIZE, MMArch}, + libs::{ rbtree::RBTree, rwlock::{RwLock, RwLockReadGuard, RwLockWriteGuard}, spinlock::{SpinLock, SpinLockGuard}, - }, mm::{kernel_mapper::KernelMapper, page::PageFlags, MemoryManagementArch, VirtAddr}, virt::{kvm::host_mem::PAGE_SHIFT, vm::{kvm_host::KVM_ADDRESS_SPACE_NUM, user_api::KvmUserspaceMemoryRegion}} + }, + mm::{kernel_mapper::KernelMapper, page::PageFlags, MemoryManagementArch, VirtAddr}, + virt::{ + kvm::host_mem::PAGE_SHIFT, + vm::{kvm_host::KVM_ADDRESS_SPACE_NUM, user_api::KvmUserspaceMemoryRegion}, + }, }; use super::{LockedVm, Vm}; @@ -21,14 +27,14 @@ pub const KVM_USER_MEM_SLOTS: u16 = u16::MAX; pub const KVM_INTERNAL_MEM_SLOTS: u16 = 3; pub const KVM_MEM_SLOTS_NUM: u16 = KVM_USER_MEM_SLOTS - KVM_INTERNAL_MEM_SLOTS; pub const KVM_MEM_MAX_NR_PAGES: usize = (1 << 31) - 1; -pub const APIC_ACCESS_PAGE_PRIVATE_MEMSLOT: u16 = KVM_MEM_SLOTS_NUM+1; +pub const APIC_ACCESS_PAGE_PRIVATE_MEMSLOT: u16 = KVM_MEM_SLOTS_NUM + 1; /// 对于普通的页帧号(PFN),最高的12位应该为零, /// 因此我们可以mask位62到位52来表示错误的PFN, /// mask位63来表示无槽的PFN。 -const KVM_PFN_ERR_MASK: u64 = 0x7ff << 52;//0x7FF0000000000000 -const KVM_PFN_ERR_NOSLOT_MASK: u64 = 0xfff << 52;//0xFFF0000000000000 -const KVM_PFN_NOSLOT: u64 = 1 << 63;//0x8000000000000000 +const KVM_PFN_ERR_MASK: u64 = 0x7ff << 52; //0x7FF0000000000000 +const KVM_PFN_ERR_NOSLOT_MASK: u64 = 0xfff << 52; //0xFFF0000000000000 +const KVM_PFN_NOSLOT: u64 = 1 << 63; //0x8000000000000000 const KVM_PFN_ERR_FAULT: u64 = KVM_PFN_ERR_MASK; const KVM_PFN_ERR_HWPOISON: u64 = KVM_PFN_ERR_MASK + 1; @@ -158,7 +164,7 @@ pub struct KvmMemSlot { } impl KvmMemSlot { pub fn check_aligned_addr(&self, align: usize) -> bool { - self.userspace_addr.data() % align == 0 + self.userspace_addr.data() % align == 0 } pub fn get_flags(&self) -> UserMemRegionFlag { self.flags @@ -166,9 +172,10 @@ impl KvmMemSlot { pub fn get_id(&self) -> u16 { self.id } - // 检查内存槽是否可见 + // 检查内存槽是否可见 pub fn is_visible(&self) -> bool { - self.id < KVM_USER_MEM_SLOTS && (self.flags.bits() & UserMemRegionFlag::KVM_MEMSLOT_INVALID.bits()) == 0 + self.id < KVM_USER_MEM_SLOTS + && (self.flags.bits() & UserMemRegionFlag::KVM_MEMSLOT_INVALID.bits()) == 0 } } @@ -350,9 +357,8 @@ impl Vm { } }; - if change == KvmMemoryChangeMode::Create - || change == KvmMemoryChangeMode::Move - || slots_guard.gfn_tree.contains_key(&base_gfn) + if (change == KvmMemoryChangeMode::Create || change == KvmMemoryChangeMode::Move) + && slots_guard.gfn_tree.contains_key(&base_gfn) { return Err(SystemError::EEXIST); } @@ -594,8 +600,9 @@ fn __gfn_to_hva_many( let slot = slot.as_ref().unwrap(); // 检查内存槽是否无效或尝试对只读内存槽进行写操作 - if slot.flags.bits() & UserMemRegionFlag::KVM_MEMSLOT_INVALID.bits() != 0 || - (slot.flags.bits() & UserMemRegionFlag::READONLY.bits() != 0) && write { + if slot.flags.bits() & UserMemRegionFlag::KVM_MEMSLOT_INVALID.bits() != 0 + || (slot.flags.bits() & UserMemRegionFlag::READONLY.bits() != 0) && write + { return Err(SystemError::KVM_HVA_ERR_BAD); } @@ -645,15 +652,15 @@ pub fn __gfn_to_pfn_memslot( ) -> Result { let addr = __gfn_to_hva_many(&slot, gfn, None, write)?; *hva = addr; - + //todo:检查地址是否为错误 // 如果内存槽为只读,且 writable 不为空,则更新 writable 的值 if slot.unwrap().flags.bits() & UserMemRegionFlag::READONLY.bits() != 0 { *writable = false; } - - let pfn = hva_to_pfn(addr, atomic,interruptible, is_async,write,writable)?; + + let pfn = hva_to_pfn(addr, atomic, interruptible, is_async, write, writable)?; return Ok(pfn); } /// 将用户空间虚拟地址(HVA)转换为页帧号(PFN)。 diff --git a/kernel/src/virt/vm/kvm_host/mod.rs b/kernel/src/virt/vm/kvm_host/mod.rs index e90dc1d7b..a3883b507 100644 --- a/kernel/src/virt/vm/kvm_host/mod.rs +++ b/kernel/src/virt/vm/kvm_host/mod.rs @@ -18,7 +18,10 @@ use crate::{ CurrentKvmManager, KvmArch, VirtCpuArch, }, filesystem::vfs::file::{File, FileMode}, - libs::{rbtree::RBTree, spinlock::{SpinLock, SpinLockGuard}}, + libs::{ + rbtree::RBTree, + spinlock::{SpinLock, SpinLockGuard}, + }, mm::ucontext::AddressSpace, process::ProcessManager, smp::cpu::ProcessorId, @@ -143,7 +146,7 @@ pub struct Vm { #[cfg(target_arch = "x86_64")] pub kvm_vmx: KvmVmx, - pub mmu_invalidate_seq:u64//用于表示内存管理单元(MMU)无效化序列号 + pub mmu_invalidate_seq: u64, //用于表示内存管理单元(MMU)无效化序列号 } impl Vm { @@ -246,15 +249,23 @@ pub enum MutilProcessorState { ///当 "approx" 设置为 true 时,即使地址落在空洞中,也会返回 memslot。 ///在这种情况下,将返回空洞边界的其中一个 memslot。 /// 先简陋完成,原本是二分,现在先遍历 -pub fn search_memslots(slot_set:Arc,gfn:u64,/*_approx:bool*/)->Option>{ - let slots=slot_set.lock(); +pub fn search_memslots( + slot_set: Arc, + gfn: u64, /*_approx:bool*/ +) -> Option> { + let slots = slot_set.lock(); let node = &slots.gfn_tree; //let(start,end)=(0,node.len()-1); - for (_gfn_num,slot) in node.iter(){ + for (_gfn_num, slot) in node.iter() { let slot_guard = slot.read(); - if gfn >= slot_guard.base_gfn && gfn < slot_guard.base_gfn + slot_guard.npages as u64{ + kdebug!( + "gfn:{gfn},slot base_gfn: {},slot npages: {}", + slot_guard.base_gfn, + slot_guard.npages + ); + if gfn >= slot_guard.base_gfn && gfn < slot_guard.base_gfn + slot_guard.npages as u64 { return Some(slot.clone()); } } return None; -} \ No newline at end of file +} From 0d1f0c7c4b4e56dc0d9e5dd4da38f5db04181c65 Mon Sep 17 00:00:00 2001 From: Brahmamantra <2033552517@qq.com> Date: Sat, 21 Sep 2024 15:29:48 +0800 Subject: [PATCH 09/18] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E5=AE=8C=E6=88=90ept?= =?UTF-8?q?=E6=98=A0=E5=B0=84.=E4=BD=86=E4=B8=8D=E5=81=9CEPT=5FVIOLATION?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/src/arch/x86_64/vm/kvm_host/mod.rs | 1 + kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs | 47 +- kernel/src/arch/x86_64/vm/mmu/mmu.rs | 118 ++++- kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs | 91 ++-- kernel/src/arch/x86_64/vm/mmu/mod.rs | 2 +- kernel/src/arch/x86_64/vm/mmu/pte.rs | 4 +- kernel/src/arch/x86_64/vm/mmu/tdp_iter.rs | 438 +++++++++--------- kernel/src/arch/x86_64/vm/mod.rs | 2 +- kernel/src/arch/x86_64/vm/mtrr.rs | 4 +- kernel/src/arch/x86_64/vm/vmx/ept/mod.rs | 366 ++++++++++++++- kernel/src/arch/x86_64/vm/vmx/mod.rs | 18 +- kernel/src/mm/mod.rs | 2 +- kernel/src/virt/vm/kvm_host/mem.rs | 1 + 13 files changed, 796 insertions(+), 298 deletions(-) diff --git a/kernel/src/arch/x86_64/vm/kvm_host/mod.rs b/kernel/src/arch/x86_64/vm/kvm_host/mod.rs index 67026f189..d11f52e89 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/mod.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/mod.rs @@ -335,6 +335,7 @@ pub enum KvmReg { VcpuRegsRip = 16, NrVcpuRegs = 17, + //VcpuExregPdptr = NrVcpuRegs, VcpuExregCr0, VcpuExregCr3, VcpuExregCr4, diff --git a/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs b/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs index e774ac57b..47b949a1c 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs @@ -5,6 +5,7 @@ use alloc::{boxed::Box, sync::Arc, vec::Vec}; use bitmap::{traits::BitMapOps, AllocBitmap, BitMapCore}; use raw_cpuid::CpuId; use system_error::SystemError; +use x86::vmx::vmcs::guest; use x86::{ bits64::rflags::RFlags, controlregs::{Cr0, Cr4, Xcr0}, @@ -14,8 +15,9 @@ use x86::{ }; use x86_64::registers::control::EferFlags; +use crate::arch::vm::asm::VmxAsm; use crate::arch::vm::vmx::exit::ExitFastpathCompletion; -use crate::kwarn; +use crate::{kdebug, kwarn}; use crate::virt::vm::kvm_host::mem::KvmMmuMemoryCache; use crate::virt::vm::kvm_host::vcpu::VcpuMode; use crate::{ @@ -254,6 +256,27 @@ impl X86VcpuArch { self.efer.contains(EferFlags::LONG_MODE_ACTIVE) } + #[inline] + pub fn is_pae_paging(&mut self) -> bool { + + let flag1 = self.is_long_mode(); + let flag2 = self.is_pae(); + let flag3 = self.is_paging(); + + !flag1 && flag2 && flag3 + } + + #[inline] + pub fn is_pae(&mut self) -> bool { + !self.read_cr4_bits(Cr4::CR4_ENABLE_PAE).is_empty() + + } + #[inline] + pub fn is_paging(&mut self) -> bool { + //return likely(kvm_is_cr0_bit_set(vcpu, X86_CR0_PG)); + !self.read_cr0_bits(Cr0::CR0_ENABLE_PAGING).is_empty() + } + #[inline] pub fn is_portected_mode(&mut self) -> bool { !self.read_cr0_bits(Cr0::CR0_PROTECTED_MODE).is_empty() @@ -1177,7 +1200,7 @@ impl VirtCpu { if !self.arch.is_register_available(KvmReg::VcpuExregCr3) { x86_kvm_ops().cache_reg(&mut self.arch, KvmReg::VcpuExregCr3); } - + kdebug!("read_cr3:: cr3: {:#x}", self.arch.cr3); return self.arch.cr3; } @@ -1293,11 +1316,14 @@ impl VirtCpu { *mmu_reset_needed |= self.read_cr3() != sregs.cr3; self.arch.cr3 = sregs.cr3; + //kdebug!("_set_segmenet_regs_common 1:: cr3: {:#x}", self.arch.cr3); self.arch.mark_register_dirty(KvmReg::VcpuExregCr3); x86_kvm_ops().post_set_cr3(self, sregs.cr3); + //kdebug!("_set_segmenet_regs_common 2:: cr3: {:#x}", self.arch.cr3); + self.kvm_set_cr8(sregs.cr8); let efer = EferFlags::from_bits_truncate(sregs.efer); @@ -1462,6 +1488,23 @@ impl VirtCpu { KvmX86Asm::write_pkru(self.arch.pkru); } } + + pub fn load_pdptrs(&mut self){ + //let mmu = self.arch.mmu(); + if !self.arch.is_register_dirty(KvmReg::VcpuExregCr3){ + return; + } + if self.arch.is_pae_paging(){ + let mmu = self.arch.mmu(); + + VmxAsm::vmx_vmwrite(guest::PDPTE0_FULL, mmu.pdptrs[0]); + VmxAsm::vmx_vmwrite(guest::PDPTE0_FULL, mmu.pdptrs[1]); + VmxAsm::vmx_vmwrite(guest::PDPTE0_FULL, mmu.pdptrs[2]); + VmxAsm::vmx_vmwrite(guest::PDPTE0_FULL, mmu.pdptrs[3]); + }else{ + kdebug!("load_pdptrs: not pae paging"); + } + } } bitflags! { diff --git a/kernel/src/arch/x86_64/vm/mmu/mmu.rs b/kernel/src/arch/x86_64/vm/mmu/mmu.rs index e96c237eb..ccc85648e 100644 --- a/kernel/src/arch/x86_64/vm/mmu/mmu.rs +++ b/kernel/src/arch/x86_64/vm/mmu/mmu.rs @@ -1,3 +1,5 @@ +use crate::arch::vm::asm::VmxAsm; +use crate::arch::vm::kvm_host::KvmReg; use crate::kerror; use crate::virt::kvm::host_mem::PAGE_SHIFT; use crate::{arch::mm::X86_64MMArch, kdebug, kwarn}; @@ -9,16 +11,16 @@ use crate::{ }; use alloc::{sync::Arc, vec::Vec}; use bitfield_struct::bitfield; +use uefi::table::cfg; +use x86::vmx::vmcs::guest; use core::intrinsics::likely; +use core::ops::{Add, Sub}; use raw_cpuid::CpuId; use system_error::SystemError; use x86::controlregs::{Cr0, Cr4}; use x86_64::registers::control::EferFlags; -use super::super::{ - vmx::vmx_info, - x86_kvm_ops, -}; +use super::super::{vmx::vmx_info, x86_kvm_ops}; use super::mmu_internal::KvmPageFault; const PT64_ROOT_5LEVEL: usize = 5; @@ -38,12 +40,22 @@ static mut MAX_HUGE_PAGE_LEVEL: PageLevel = PageLevel::None; pub const PAGE_SIZE: u64 = 1 << PAGE_SHIFT; -pub fn is_tdp_mmu_enabled()->bool{ +pub fn is_tdp_mmu_enabled() -> bool { unsafe { TDP_MMU_ENABLED } } +pub fn max_huge_page_level() -> PageLevel{ + //不让外面直接修改MAX_HUGE_PAGE_LEVEL的值 + let level: PageLevel; + unsafe { + level = MAX_HUGE_PAGE_LEVEL; + } + level +} + #[allow(dead_code)] #[repr(u8)] +#[derive(Debug, PartialEq, Eq, Clone, Copy)] pub enum PageLevel { None, Level4K, @@ -52,15 +64,49 @@ pub enum PageLevel { Level512G, LevelNum, } +// 实现 Add trait +impl Add for PageLevel { + type Output = Self; + + fn add(self, other: usize) -> Self { + let result = self as usize + other; + match result { + 0 => PageLevel::None, + 1 => PageLevel::Level4K, + 2 => PageLevel::Level2M, + 3 => PageLevel::Level1G, + 4 => PageLevel::Level512G, + 5 => PageLevel::LevelNum, + _ => PageLevel::LevelNum, // 超出范围时返回 LevelNum + } + } +} +// 实现 Sub trait +impl Sub for PageLevel { + type Output = Self; + + fn sub(self, other: usize) -> Self { + let result = self as isize - other as isize; + match result { + 0 => PageLevel::None, + 1 => PageLevel::Level4K, + 2 => PageLevel::Level2M, + 3 => PageLevel::Level1G, + 4 => PageLevel::Level512G, + 5 => PageLevel::LevelNum, + _ => PageLevel::None, // 超出范围时返回 None + } + } +} impl PageLevel { fn kvm_hpage_gfn_shift(level: u8) -> u32 { ((level - 1) * 9) as u32 } - + fn kvm_hpage_shift(level: u8) -> u32 { PAGE_SHIFT + Self::kvm_hpage_gfn_shift(level) } - + fn kvm_hpage_size(level: u8) -> u64 { 1 << Self::kvm_hpage_shift(level) } @@ -99,7 +145,7 @@ impl LockedKvmMmu { } pub type KvmMmuPageFaultHandler = - fn(vcpu: &mut VirtCpu, page_fault:&KvmPageFault) -> Result; + fn(vcpu: &mut VirtCpu, page_fault: &KvmPageFault) -> Result; #[derive(Debug, Default)] #[allow(dead_code)] @@ -114,9 +160,17 @@ pub struct KvmMmu { prev_roots: [KvmMmuRootInfo; Self::KVM_MMU_NUM_PREV_ROOTS], pae_root: Vec, + + pub pdptrs: [u64;4], } impl KvmMmu { + pub fn save_pdptrs(&mut self){ + self.pdptrs[0] = VmxAsm::vmx_vmread(guest::PDPTE0_FULL); + self.pdptrs[1] = VmxAsm::vmx_vmread(guest::PDPTE1_FULL); + self.pdptrs[2] = VmxAsm::vmx_vmread(guest::PDPTE2_FULL); + self.pdptrs[3] = VmxAsm::vmx_vmread(guest::PDPTE3_FULL); + } const KVM_MMU_NUM_PREV_ROOTS: usize = 3; pub const INVALID_PAGE: u64 = u64::MAX; @@ -508,7 +562,7 @@ impl VirtCpu { if direct { self.mmu_alloc_direct_roots()?; } else { - self.mmu_alloc_shadow_roots()?; + self.mmu_alloc_shadow_roots(vm)?; } // TODO: kvm_mmu_sync_roots @@ -571,7 +625,51 @@ impl VirtCpu { Ok(()) } - fn mmu_alloc_shadow_roots(&mut self) -> Result<(), SystemError> { + ///没做完 + fn mmu_alloc_shadow_roots(&mut self,vm: &Vm) -> Result<(), SystemError> { + // let mut pdptrs:[u64;4] = [0;4]; + + // let root_pgd = self.get_guest_pgd(); + // let root_gfn = root_pgd >> PAGE_SHIFT; + + // let mut mmu = self.arch.mmu(); + // //检查gfn是否合法 + // if let Some(slot) = self.gfn_to_memslot(root_gfn,vm){ + // if !slot.read().is_visible(){ + // mmu.root.hpa = KvmMmu::INVALID_PAGE; + // return Err(SystemError::EFAULT); + // } + // } + + + + // //在SVM架构下?,读取PDPTR可能会访问客户机内存并导致缺页错误,从而使进程进入睡眠状态。 + // //为了避免在持有mmu_lock时发生睡眠,应该在获取mmu_lock之前先读取PDPTR。 + // //感觉先不用管 + // if mmu.cpu_role.base.level() == 3{ //PT32E_ROOT_LEVEL=3 + // mmu.save_pdptrs(); + // //x86_kvm_ops().cache_reg(&mut self.arch, KvmReg::NrVcpuRegs); + // for i in 0..4{ + // pdptrs[i] = self.arch.walk_mmu.clone().unwrap().lock().pdptrs[i]; + // if !pdptrs[i] & 0x1 != 0{ + // continue; + // } + + // if let Some(slot) = self.gfn_to_memslot(pdptrs[i]>>PAGE_SHIFT,vm){ + // if !slot.read().is_visible(){ + // pdptrs[i] = 0; + // } + // } + // } + // } + + + todo!(); } + // fn get_guest_pgd(&mut self)-> u64{ + // x86_kvm_ops().cache_reg(&mut self.arch, KvmReg::VcpuExregCr3); + // self.arch.cr3 + // } + } diff --git a/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs b/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs index edae9c9c7..3dc5055c1 100644 --- a/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs +++ b/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs @@ -4,22 +4,23 @@ use alloc::{ vec::Vec, }; use core::{intrinsics::unlikely, ops::Index}; +use x86::vmx::vmcs::{guest, host}; use system_error::SystemError; use crate::{ - arch::vm::{ + arch::{vm::{ + asm::VmxAsm, kvm_host::{EmulType, KVM_PFN_NOSLOT}, mmu::{ mmu::{PFRet, PageLevel}, - tdp_iter::{is_large_pte, is_shadow_present_pte, TdpIter}, }, mtrr::kvm_mtrr_check_gfn_range_consistency, - vmx::PageFaultErr, - }, - kwarn, + vmx::{ept::EptPageMapper, PageFaultErr}, + }, MMArch}, + kdebug, kwarn, libs::spinlock::SpinLockGuard, - mm::{virt_2_phys, PhysAddr}, + mm::{page::PageFlags, syscall::ProtFlags, virt_2_phys, PhysAddr}, virt::{ kvm::host_mem::PAGE_SHIFT, vm::kvm_host::{ @@ -52,7 +53,9 @@ pub struct KvmMmuPage { #[derive(Debug, Default)] pub struct KvmPageFault { // vcpu.do_page_fault 的参数 - addr: PhysAddr, // gpa_t 通常是一个 64 位地址 + + // addr是guestOS传进来的gpa + addr: PhysAddr, error_code: u32, prefetch: bool, @@ -87,13 +90,26 @@ pub struct KvmPageFault { // kvm_faultin_pfn 的输出 mmu_seq: u64, - pfn: u64, // kvm_pfn_t 通常是一个 64 位地址 + + // kvm_pfn_t 通常是一个 64 位地址,相当于知道了hpa + pfn: u64, hva: u64, // hva_t 通常是一个 64 位地址 map_writable: bool, // 表示访客正在尝试写入包含用于翻译写入本身的一个或多个 PTE 的 gfn write_fault_to_shadow_pgtable: bool, } +impl KvmPageFault { + pub fn pfn(&self) -> u64 { + self.pfn + } + pub fn gfn(&self) -> u64 { + self.gfn + } + pub fn gpa(&self) -> u64 { + self.addr.data() as u64 + } +} impl VirtCpu { #[inline(never)] @@ -228,7 +244,7 @@ impl VirtCpu { Ok(r) } - fn gfn_to_memslot(&self, gfn: u64, vm: &Vm) -> Option> { + pub fn gfn_to_memslot(&self, gfn: u64, vm: &Vm) -> Option> { let slot_set: Arc = self.kvm_vcpu_memslots(vm); //...todo @@ -290,50 +306,26 @@ impl VirtCpu { let mmu = self.arch.mmu(); let kvm = self.kvm(); let ret = PFRet::Retry; - - let mut tdp_iter: TdpIter = TdpIter::default(); - - tdp_iter.start( - virt_2_phys(mmu.root.hpa as usize), /*__va */ - mmu.root_role.level() as u8, - PageLevel::Level4K as u8, - page_fault.gfn, - ); - - for iter in tdp_iter { - if !(iter.valid && iter.gfn < page_fault.gfn + 1) { - //fixme:不懂这里的判断条件 - break; - } - //fixme:这一步va->pa的转换可能有点问题 - - // 如果启用了 NX 巨大页解决方法,则进行调整 - if page_fault.nx_huge_page_workaround_enabled { - page_fault.nx_huge_page_workaround_enabled = false; - } - - if iter.level == page_fault.goal_level { - //self.map_handle_target_level(page_fault,&mut iter); - } - - //如果在比目标更高的级别有一个映射大页的 SPTE, - //那么该 SPTE 必须被清除并替换为非叶子 SPTE。 - if is_shadow_present_pte(iter.old_spte) && !is_large_pte(iter.old_spte) { - continue; - } - - //SPTE是non-present或者指向一个需要split的大页 - } - todo!() - } - ///todo()!!! - fn map_handle_target_level(&self, page_fault: &mut KvmPageFault, iter: &mut TdpIter) { - todo!() + let mut mapper = EptPageMapper::lock(); + if mapper.is_mapped(page_fault) { + kdebug!("page fault is already mapped"); + return Ok(PFRet::Continue.into()); + }; + let page_flags = PageFlags::from_prot_flags(ProtFlags::from_bits_truncate(0x7_u64), false); + mapper.map(PhysAddr::new(page_fault.gpa() as usize), page_flags); + if mapper.is_mapped(page_fault) { + kdebug!("page fault is mapped now"); + }; + kdebug!("The ept_root_addr is {:?}", EptPageMapper::root_page_addr()); + //todo: 一些参数的更新 + Ok(PFRet::Fixed.into()) + //todo!() } fn direct_page_fault(&self, page_fault: &KvmPageFault) -> Result { todo!() } + fn kvm_faultin_pfn( &self, vm: &Vm, @@ -375,6 +367,9 @@ impl VirtCpu { } // 尝试将 GFN 转换为 PFN + let guest_cr3 = VmxAsm::vmx_vmread(guest::CR3); + let host_cr3 = VmxAsm::vmx_vmread(host::CR3); + kdebug!("guest_cr3={:x}, host_cr3={:x}", guest_cr3, host_cr3); page_fault.pfn = __gfn_to_pfn_memslot( Some(&slot), page_fault.gfn, diff --git a/kernel/src/arch/x86_64/vm/mmu/mod.rs b/kernel/src/arch/x86_64/vm/mmu/mod.rs index 9c2f87955..63581a830 100644 --- a/kernel/src/arch/x86_64/vm/mmu/mod.rs +++ b/kernel/src/arch/x86_64/vm/mmu/mod.rs @@ -1,4 +1,4 @@ pub mod mmu; pub mod mmu_internal; +pub mod pte; pub mod tdp_iter; -pub mod pte; \ No newline at end of file diff --git a/kernel/src/arch/x86_64/vm/mmu/pte.rs b/kernel/src/arch/x86_64/vm/mmu/pte.rs index 052def047..871f4aa04 100644 --- a/kernel/src/arch/x86_64/vm/mmu/pte.rs +++ b/kernel/src/arch/x86_64/vm/mmu/pte.rs @@ -14,7 +14,7 @@ bitflags::bitflags! { } pub struct Pte { - pub address: u64, // 物理地址 + pub address: u64, // 物理地址 pub flags: PteFlags, // 页表条目标志 } @@ -40,4 +40,4 @@ impl Pte { } // 其他方法... -} \ No newline at end of file +} diff --git a/kernel/src/arch/x86_64/vm/mmu/tdp_iter.rs b/kernel/src/arch/x86_64/vm/mmu/tdp_iter.rs index 3b0577c63..57c577821 100644 --- a/kernel/src/arch/x86_64/vm/mmu/tdp_iter.rs +++ b/kernel/src/arch/x86_64/vm/mmu/tdp_iter.rs @@ -1,219 +1,219 @@ -use crate::{ - arch::vm::mmu::mmu::gfn_round_for_level, - mm::{virt_2_phys, PhysAddr, VirtAddr}, - time::sleep, - virt::kvm::host_mem::PAGE_SHIFT, -}; - -use super::{ - mmu::{PageLevel, PAGE_SIZE}, - mmu_internal::KvmMmuPage, -}; - -pub const PT64_ROOT_MAX_LEVEL: usize = 5; //通常只用到4级,但是确实有5级的情况 -pub const PT_LEVEL_BITS: u8 = 9; // 每个页表级别的位数 -pub const PT64_ENT_PER_PAGE: u32 = 1 << 9; -pub const PTE_LEN: usize = 64; - -//Bits 51:12 are from the EPT PDPTE -pub const PT64_BASE_ADDR_MASK: u64 = ((1u64 << 52) - 1) & !(PAGE_SIZE - 1); - -pub fn shadow_pt_index(addr: u64, level: u8) -> u64 { - (addr >> (PAGE_SHIFT as u8 + (level - 1) * PT_LEVEL_BITS)) & ((1 << PT_LEVEL_BITS) - 1) -} -pub fn is_last_spte(pte: u64, level: u8) -> bool { - level == PageLevel::Level4K as u8 || is_large_pte(pte) -} -pub fn is_shadow_present_pte(pte: u64) -> bool { - pte & 1 << 11 != 0 //在intel手冊中:ept PTE:11 Ignored.不是很懂 -} -pub fn is_large_pte(pte: u64) -> bool { - pte & 1 << 7 != 0 //在intel手冊中:ept PTE:7 Ignored. -} -///Bits 51:12 are from the EPT PDPTE -pub fn spte_to_pfn(pte: u64) -> u64 { - (pte & PT64_BASE_ADDR_MASK) >> PAGE_SHIFT -} - -#[derive(Default)] -pub struct TdpIter { - inner: TdpIterInner, -} - -impl TdpIter { - pub fn start( - &self, - root_pt: usize, - root_level: u8, - min_level: u8, - next_last_level_gfn: u64, - ) -> Self { - let mut inner = self.inner.clone(); - inner.start(root_pt, root_level, min_level, next_last_level_gfn); - TdpIter { inner } - } -} -///迭代器将遍历分页结构,直到找到此 GFN 的映射。 -#[derive(Default, Clone)] -pub struct TdpIterInner { - next_last_level_gfn: u64, - /// 线程上次让出时的 next_last_level_gfn。 - /// 仅当 next_last_level_gfn != yielded_gfn 时让出,有助于确保前进。 - pub yielded_gfn: u64, - - ///指向遍历到当前 SPTE 的页表的指针 - pt_path: [u64; PT64_ROOT_MAX_LEVEL], - - ///指向当前 SPTE 的指针 是hva吗? - sptep: PhysAddr, - - /// 当前 SPTE 映射的最低 GFN hpa>>shift? - pub gfn: u64, - - ///给迭代器的根页级别 - pub root_level: u8, - - ///迭代器应遍历到的最低级别 - pub min_level: u8, - - ///迭代器在分页结构中的当前级别 - pub level: u8, - - ///sptep 处值的快照 - pub old_spte: u64, - - ///迭代器是否具有有效状态。如果迭代器走出分页结构的末端,则为 false。 - /// - pub valid: bool, -} -impl TdpIterInner { - ///初始化ept iter - #[inline(never)] - pub fn start( - &mut self, - root_pt: usize, - root_level: u8, - min_level: u8, - next_last_level_gfn: u64, - ) { - // if root_pt.role.level() == 0 || root_pt.role.level() > PT64_ROOT_MAX_LEVEL as u32 { - // self.valid = false; - // return; - // } - - if root_level < 1 || root_level > PT64_ROOT_MAX_LEVEL as u8 { - self.valid = false; - return; - } - self.next_last_level_gfn = next_last_level_gfn; - self.root_level = root_level as u8; - self.min_level = min_level as u8; - self.pt_path[(self.root_level - 1) as usize] = root_pt as u64; - self.yielded_gfn = self.next_last_level_gfn; - self.level = self.root_level; - - self.gfn = gfn_round_for_level(self.next_last_level_gfn, self.level); - self.tdp_iter_refresh_sptep(); - self.valid = true; - } - - /* - * 重新计算当前GFN和level和SPTE指针,并重新读取SPTE。 - */ - fn tdp_iter_refresh_sptep(&mut self) { - self.sptep = PhysAddr::new( - (self.pt_path[self.level as usize - 1] - + shadow_pt_index(self.gfn << PAGE_SHIFT, self.level)) as usize, - ); - self.old_spte = read_sptep(self.sptep); - } - - pub fn _next(&mut self) { - if self.try_step_down() { - return; - } - loop { - if self.try_step_side() { - return; - } - if !self.try_step_up() { - break; - } - } - self.valid = false; - } - ///在分页结构中向目标GFN下降一级。如果迭代器能够下降一级,则返回true,否则返回false。 - fn try_step_down(&mut self) -> bool { - if self.level == self.min_level { - return false; - } - //在下降之前重新读取SPTE,以避免遍历到不再从此条目链接的页表中。 - self.old_spte = read_sptep(self.sptep); - - match spte_to_child_pt(self.old_spte, self.level) { - Some(child_pt) => { - self.level -= 1; - self.pt_path[self.level as usize - 1] = child_pt.data() as u64; - self.gfn = gfn_round_for_level(self.gfn, self.level); - self.tdp_iter_refresh_sptep(); - true - } - None => false, - } - } - fn try_step_up(&mut self) -> bool { - if self.level == self.root_level { - return false; - } - self.level += 1; - self.gfn = gfn_round_for_level(self.gfn, self.level); - self.tdp_iter_refresh_sptep(); - true - } - ///在当前页表的当前级别中,移动到下一个条目。下一个条目可以指向一个page backing guest memory , - ///或者另一个页表,或者它可能是不存在的。如果迭代器能够移动到页表中的下一个条目,则返回true, - ///如果迭代器已经在当前页表的末尾,则返回false。 - fn try_step_side(&mut self) -> bool { - //检查迭代器是否已经在当前页表的末尾。 - if shadow_pt_index(self.gfn << PAGE_SHIFT, self.level) == (PT64_ENT_PER_PAGE - 1) as u64 { - return false; - } - - self.gfn += PageLevel::kvm_pages_per_hpage(self.level); - self.next_last_level_gfn = self.gfn; - self.sptep.add(PTE_LEN); //指向下一个spte,一个spte占64位 - self.old_spte = read_sptep(self.sptep); - true - } -} -impl Iterator for TdpIter { - type Item = TdpIterInner; // 返回 (gfn, spte) 元组 - - fn next(&mut self) -> Option { - let inner = &mut self.inner; - if !inner.valid { - return None; - } - inner._next(); - if inner.valid { - Some(inner.clone()) - } else { - None - } - } -} -///给定一个 SPTE 及其级别,返回一个指针,该指针包含 SPTE 所引用的子页表的hva。 -///如果没有这样的条目,则返回 null。 -/// -fn spte_to_child_pt(spte: u64, level: u8) -> Option { - //没有子页表 - if !is_shadow_present_pte(spte) || is_last_spte(spte, level) { - return None; - } - Some(VirtAddr::new(virt_2_phys//__va - ((spte_to_pfn(spte)< u64 { - unsafe { *(sptep.data() as *const u64) } -} +// use crate::{ +// arch::vm::mmu::mmu::gfn_round_for_level, +// mm::{virt_2_phys, PhysAddr, VirtAddr}, +// time::sleep, +// virt::kvm::host_mem::PAGE_SHIFT, +// }; + +// use super::{ +// mmu::{PageLevel, PAGE_SIZE}, +// mmu_internal::KvmMmuPage, +// }; + +// pub const PT64_ROOT_MAX_LEVEL: usize = 5; //通常只用到4级,但是确实有5级的情况 +// pub const PT_LEVEL_BITS: u8 = 9; // 每个页表级别的位数 +// pub const PT64_ENT_PER_PAGE: u32 = 1 << 9; +// pub const PTE_LEN: usize = 64; + +// //Bits 51:12 are from the EPT PDPTE +// pub const PT64_BASE_ADDR_MASK: u64 = ((1u64 << 52) - 1) & !(PAGE_SIZE - 1); + +// pub fn shadow_pt_index(addr: u64, level: u8) -> u64 { +// (addr >> (PAGE_SHIFT as u8 + (level - 1) * PT_LEVEL_BITS)) & ((1 << PT_LEVEL_BITS) - 1) +// } +// pub fn is_last_spte(pte: u64, level: u8) -> bool { +// level == PageLevel::Level4K as u8 || is_large_pte(pte) +// } +// pub fn is_shadow_present_pte(pte: u64) -> bool { +// pte & 1 << 11 != 0 //在intel手冊中:ept PTE:11 Ignored.不是很懂 +// } +// pub fn is_large_pte(pte: u64) -> bool { +// pte & 1 << 7 != 0 //在intel手冊中:ept PTE:7 Ignored. +// } +// ///Bits 51:12 are from the EPT PDPTE +// pub fn spte_to_pfn(pte: u64) -> u64 { +// (pte & PT64_BASE_ADDR_MASK) >> PAGE_SHIFT +// } + +// #[derive(Default)] +// pub struct TdpIter { +// inner: TdpIterInner, +// } + +// impl TdpIter { +// pub fn start( +// &self, +// root_pt: usize, +// root_level: u8, +// min_level: u8, +// next_last_level_gfn: u64, +// ) -> Self { +// let mut inner = self.inner.clone(); +// inner.start(root_pt, root_level, min_level, next_last_level_gfn); +// TdpIter { inner } +// } +// } +// ///迭代器将遍历分页结构,直到找到此 GFN 的映射。 +// #[derive(Default, Clone)] +// pub struct TdpIterInner { +// next_last_level_gfn: u64, +// /// 线程上次让出时的 next_last_level_gfn。 +// /// 仅当 next_last_level_gfn != yielded_gfn 时让出,有助于确保前进。 +// pub yielded_gfn: u64, + +// ///指向遍历到当前 SPTE 的页表的指针 +// pt_path: [u64; PT64_ROOT_MAX_LEVEL], + +// ///指向当前 SPTE 的指针 是hva吗? +// sptep: PhysAddr, + +// /// 当前 SPTE 映射的最低 GFN hpa>>shift? +// pub gfn: u64, + +// ///给迭代器的根页级别 +// pub root_level: u8, + +// ///迭代器应遍历到的最低级别 +// pub min_level: u8, + +// ///迭代器在分页结构中的当前级别 +// pub level: u8, + +// ///sptep 处值的快照 +// pub old_spte: u64, + +// ///迭代器是否具有有效状态。如果迭代器走出分页结构的末端,则为 false。 +// /// +// pub valid: bool, +// } +// impl TdpIterInner { +// ///初始化ept iter +// #[inline(never)] +// pub fn start( +// &mut self, +// root_pt: usize, +// root_level: u8, +// min_level: u8, +// next_last_level_gfn: u64, +// ) { +// // if root_pt.role.level() == 0 || root_pt.role.level() > PT64_ROOT_MAX_LEVEL as u32 { +// // self.valid = false; +// // return; +// // } + +// if root_level < 1 || root_level > PT64_ROOT_MAX_LEVEL as u8 { +// self.valid = false; +// return; +// } +// self.next_last_level_gfn = next_last_level_gfn; +// self.root_level = root_level as u8; +// self.min_level = min_level as u8; +// self.pt_path[(self.root_level - 1) as usize] = root_pt as u64; +// self.yielded_gfn = self.next_last_level_gfn; +// self.level = self.root_level; + +// self.gfn = gfn_round_for_level(self.next_last_level_gfn, self.level); +// self.tdp_iter_refresh_sptep(); +// self.valid = true; +// } + +// /* +// * 重新计算当前GFN和level和SPTE指针,并重新读取SPTE。 +// */ +// fn tdp_iter_refresh_sptep(&mut self) { +// // self.sptep = PhysAddr::new( +// // (self.pt_path[self.level as usize - 1] +// // + shadow_pt_index(self.gfn << PAGE_SHIFT, self.level)) as usize, +// // ); +// // self.old_spte = read_sptep(self.sptep); +// } + +// pub fn _next(&mut self) { +// if self.try_step_down() { +// return; +// } +// loop { +// if self.try_step_side() { +// return; +// } +// if !self.try_step_up() { +// break; +// } +// } +// self.valid = false; +// } +// ///在分页结构中向目标GFN下降一级。如果迭代器能够下降一级,则返回true,否则返回false。 +// fn try_step_down(&mut self) -> bool { +// if self.level == self.min_level { +// return false; +// } +// //在下降之前重新读取SPTE,以避免遍历到不再从此条目链接的页表中。 +// self.old_spte = read_sptep(self.sptep); + +// match spte_to_child_pt(self.old_spte, self.level) { +// Some(child_pt) => { +// self.level -= 1; +// self.pt_path[self.level as usize - 1] = child_pt.data() as u64; +// self.gfn = gfn_round_for_level(self.gfn, self.level); +// self.tdp_iter_refresh_sptep(); +// true +// } +// None => false, +// } +// } +// fn try_step_up(&mut self) -> bool { +// if self.level == self.root_level { +// return false; +// } +// self.level += 1; +// self.gfn = gfn_round_for_level(self.gfn, self.level); +// self.tdp_iter_refresh_sptep(); +// true +// } +// ///在当前页表的当前级别中,移动到下一个条目。下一个条目可以指向一个page backing guest memory , +// ///或者另一个页表,或者它可能是不存在的。如果迭代器能够移动到页表中的下一个条目,则返回true, +// ///如果迭代器已经在当前页表的末尾,则返回false。 +// fn try_step_side(&mut self) -> bool { +// //检查迭代器是否已经在当前页表的末尾。 +// if shadow_pt_index(self.gfn << PAGE_SHIFT, self.level) == (PT64_ENT_PER_PAGE - 1) as u64 { +// return false; +// } + +// self.gfn += PageLevel::kvm_pages_per_hpage(self.level); +// self.next_last_level_gfn = self.gfn; +// self.sptep.add(PTE_LEN); //指向下一个spte,一个spte占64位 +// self.old_spte = read_sptep(self.sptep); +// true +// } +// } +// impl Iterator for TdpIter { +// type Item = TdpIterInner; // 返回 (gfn, spte) 元组 + +// fn next(&mut self) -> Option { +// let inner = &mut self.inner; +// if !inner.valid { +// return None; +// } +// inner._next(); +// if inner.valid { +// Some(inner.clone()) +// } else { +// None +// } +// } +// } +// ///给定一个 SPTE 及其级别,返回一个指针,该指针包含 SPTE 所引用的子页表的hva。 +// ///如果没有这样的条目,则返回 null。 +// /// +// fn spte_to_child_pt(spte: u64, level: u8) -> Option { +// //没有子页表 +// if !is_shadow_present_pte(spte) || is_last_spte(spte, level) { +// return None; +// } +// Some(VirtAddr::new(virt_2_phys//__va +// ((spte_to_pfn(spte)< u64 { +// unsafe { *(sptep.data() as *const u64) } +// } diff --git a/kernel/src/arch/x86_64/vm/mod.rs b/kernel/src/arch/x86_64/vm/mod.rs index 695af9cb3..87e657236 100644 --- a/kernel/src/arch/x86_64/vm/mod.rs +++ b/kernel/src/arch/x86_64/vm/mod.rs @@ -27,9 +27,9 @@ pub(super) mod exit; pub mod kvm_host; pub mod mem; pub mod mmu; +pub mod mtrr; pub mod uapi; pub mod vmx; -pub mod mtrr; static mut KVM_X86_MANAGER: Option = None; diff --git a/kernel/src/arch/x86_64/vm/mtrr.rs b/kernel/src/arch/x86_64/vm/mtrr.rs index 873689a1d..d8436421f 100644 --- a/kernel/src/arch/x86_64/vm/mtrr.rs +++ b/kernel/src/arch/x86_64/vm/mtrr.rs @@ -11,7 +11,7 @@ pub fn kvm_mtrr_check_gfn_range_consistency(vcpu: &mut VirtCpu, gfn: u64, page_n // }; let start = gfn_to_gpa(gfn); let end = gfn_to_gpa(gfn + page_num); - + // mtrr_for_each_mem_type(&mut iter, mtrr_state, start, end, |iter| { // if iter.mem_type == -1 { // iter.mem_type = iter.mem_type; @@ -34,4 +34,4 @@ pub fn kvm_mtrr_check_gfn_range_consistency(vcpu: &mut VirtCpu, gfn: u64, page_n // iter.mem_type == mtrr_default_type(mtrr_state) true -} \ No newline at end of file +} diff --git a/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs b/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs index ab5263908..cc5923a8c 100644 --- a/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs @@ -1,4 +1,26 @@ +use crate::arch::mm::{LockedFrameAllocator, PageMapper}; +use crate::arch::vm::asm::VmxAsm; +use crate::arch::vm::mmu::mmu::{max_huge_page_level, PageLevel}; +use crate::arch::vm::mmu::mmu_internal::KvmPageFault; +use crate::arch::MMArch; +use crate::libs::spinlock::{SpinLock, SpinLockGuard}; +use crate::mm::allocator::page_frame::FrameAllocator; +use crate::{kdebug, kerror, kinfo, kwarn}; +use crate::mm::page::{page_manager_lock_irqsave, Page, PageEntry, PageFlags, PageFlush, PageManager, PageTable}; +use crate::mm::{MemoryManagementArch, PageTableKind, PhysAddr, VirtAddr}; +use crate::smp::core::smp_get_processor_id; +use crate::smp::cpu::AtomicProcessorId; +use crate::smp::cpu::ProcessorId; +use core::marker::PhantomData; +use core::ops::Add; +use core::sync::atomic::{compiler_fence, AtomicUsize, Ordering}; +use hashbrown::HashMap; +use system_error::SystemError; +use x86::msr; +use x86::vmx::vmcs::control; +use crate::arch::x86_64::mm::X86_64MMArch; use crate::libs::rwlock::RwLock; +use super::vmx_info; // pub const VMX_EPT_MT_EPTE_SHIFT:u64 = 3; pub const VMX_EPT_RWX_MASK: u64 = 0x7 << 3; @@ -21,11 +43,345 @@ bitflags! { const GVA_TRANSLATED = 1 << EPT_VIOLATION_GVA_TRANSLATED_BIT; } } -struct EptPageTable { - // EPT 页表数据结构 + +// /// 全局EPT物理页信息管理器 +// pub static mut EPT_PAGE_MANAGER: Option> = None; + +// /// 初始化EPT_PAGE_MANAGER +// pub fn ept_page_manager_init() { +// kinfo!("page_manager_init"); +// let page_manager = SpinLock::new(EptPageManager::new()); + +// compiler_fence(Ordering::SeqCst); +// unsafe { EPT_PAGE_MANAGER = Some(page_manager) }; +// compiler_fence(Ordering::SeqCst); + +// kinfo!("page_manager_init done"); +// } + +// pub fn ept_page_manager_lock_irqsave() -> SpinLockGuard<'static, EptPageManager> { +// unsafe { EPT_PAGE_MANAGER.as_ref().unwrap().lock_irqsave() } +// } +// EPT 页表数据结构 +#[derive(Debug)] +pub struct EptPageTable { + /// 当前页表表示的虚拟地址空间的起始地址 + base: VirtAddr, + /// 当前页表所在的物理地址 + phys: PhysAddr, + /// 当前页表的层级 + /// PageLevel::4K = 1 + level: PageLevel, +} +impl EptPageTable{ + pub fn phys(&self) -> PhysAddr { + self.phys + } + + /// 设置当前页表的第i个页表项 + pub unsafe fn set_entry(&self, i: usize, entry: PageEntry) -> Option<()> { + let entry_virt = self.entry_virt(i)?; + MMArch::write::(entry_virt, entry.data()); + return Some(()); + } + /// 判断当前页表的第i个页表项是否已经填写了值 + /// + /// ## 参数 + /// - Some(true) 如果已经填写了值 + /// - Some(false) 如果未填写值 + /// - None 如果i超出了页表项的范围 + pub fn entry_mapped(&self, i: usize) -> Option { + let etv = unsafe { self.entry_virt(i) }?; + if unsafe { MMArch::read::(etv) } != 0 { + return Some(true); + } else { + return Some(false); + } + } + + /// 获取当前页表的层级 + #[inline(always)] + pub fn level(&self) -> PageLevel { + self.level + } + + /// 获取第i个页表项所表示的虚拟内存空间的起始地址 + pub fn entry_base(&self, i: usize) -> Option { + if i < MMArch::PAGE_ENTRY_NUM { + let shift = (self.level as usize - 1) * MMArch::PAGE_ENTRY_SHIFT + MMArch::PAGE_SHIFT; + return Some(self.base.add(i << shift)); + } else { + return None; + } + } + /// 获取当前页表自身所在的虚拟地址 + #[inline(always)] + pub unsafe fn virt(&self) -> VirtAddr { + return MMArch::phys_2_virt(self.phys).unwrap(); + } + /// 获取当前页表的第i个页表项所在的虚拟地址(注意与entry_base进行区分) + pub unsafe fn entry_virt(&self, i: usize) -> Option { + if i < MMArch::PAGE_ENTRY_NUM { + return Some(self.virt().add(i * MMArch::PAGE_ENTRY_SIZE)); + } else { + return None; + } + } + /// 获取当前页表的第i个页表项 + pub unsafe fn entry(&self, i: usize) -> Option> { + let entry_virt = self.entry_virt(i)?; + return Some(PageEntry::from_usize(MMArch::read::(entry_virt))); + } + + pub fn new(base:VirtAddr,phys: PhysAddr,level:PageLevel) -> Self { + Self { + base: base, + phys, + level + } + } + /// 根据虚拟地址,获取对应的页表项在页表中的下标 + /// + /// ## 参数 + /// + /// - gpa: 虚拟地址 + /// + /// ## 返回值 + /// + /// 页表项在页表中的下标。如果addr不在当前页表所表示的虚拟地址空间中,则返回None + pub unsafe fn index_of(&self, gpa: PhysAddr) -> Option { + let addr = VirtAddr::new(gpa.data() & MMArch::PAGE_ADDRESS_MASK); + let shift = (self.level - 1) as usize * MMArch::PAGE_ENTRY_SHIFT + MMArch::PAGE_SHIFT; + + let mask = (MMArch::PAGE_ENTRY_NUM << shift) - 1; + if addr < self.base || addr >= self.base.add(mask) { + return None; + } else { + return Some((addr.data() >> shift) & MMArch::PAGE_ENTRY_MASK); + } + } + + pub fn next_level_table(&self, index: usize) -> Option { + if self.level == PageLevel::Level4K { + return None; + } + // 返回下一级页表 + return Some(EptPageTable::new( + self.entry_base(index)?, + unsafe { self.entry(index) }?.address().ok()?, + self.level - 1, + )); + } +} + +// // EPT物理页管理器 +// pub struct EptPageManager { +// phys2page: HashMap, +// } + +// impl EptPageManager { +// pub fn new() -> Self { +// Self { +// phys2page: HashMap::new(), +// } +// } + +// } + +/// Check if MTRR is supported +pub fn check_ept_features() -> Result<(), SystemError> { + const MTRR_ENABLE_BIT: u64 = 1 << 11; + let ia32_mtrr_def_type = unsafe { msr::rdmsr(msr::IA32_MTRR_DEF_TYPE) }; + if (ia32_mtrr_def_type & MTRR_ENABLE_BIT) == 0 { + return Err(SystemError::EOPNOTSUPP_OR_ENOTSUP); + } + Ok(()) +} + +/// 标志当前没有处理器持有内核映射器的锁 +/// 之所以需要这个标志,是因为AtomicUsize::new(0)会把0当作一个处理器的id +const EPT_MAPPER_NO_PROCESSOR: ProcessorId = ProcessorId::INVALID; +/// 当前持有内核映射器锁的处理器 +static EPT_MAPPER_LOCK_OWNER: AtomicProcessorId = AtomicProcessorId::new(EPT_MAPPER_NO_PROCESSOR); +/// 内核映射器的锁计数器 +static EPT_MAPPER_LOCK_COUNT: AtomicUsize = AtomicUsize::new(0); + +pub struct EptPageMapper { + /// EPT页表映射器 + //mapper: PageMapper,//PageTableKind::EPT, LockedFrameAllocator + /// 标记当前映射器是否为只读 + readonly: bool, + // EPT页表根地址 + root_page_addr: PhysAddr, + /// 页分配器 + frame_allocator: LockedFrameAllocator, } -struct EptManager { - ept: RwLock, - // 其他字段 +impl EptPageMapper{ + /// 返回最上层的ept页表 + pub fn table(&self) ->EptPageTable { + EptPageTable::new(VirtAddr::new(0), + self.root_page_addr,max_huge_page_level()) + } + pub fn root_page_addr() -> PhysAddr { + let eptp =VmxAsm::vmx_vmread(control::EPTP_FULL); + PhysAddr::new(eptp as usize) + } + + fn lock_cpu(cpuid: ProcessorId) -> Self { + loop { + match EPT_MAPPER_LOCK_OWNER.compare_exchange_weak( + EPT_MAPPER_NO_PROCESSOR, + cpuid, + Ordering::Acquire, + Ordering::Relaxed, + ) { + Ok(_) => break, + // 当前处理器已经持有了锁 + Err(id) if id == cpuid => break, + // either CAS failed, or some other hardware thread holds the lock + Err(_) => core::hint::spin_loop(), + } + } + + let prev_count = EPT_MAPPER_LOCK_COUNT.fetch_add(1, Ordering::Relaxed); + compiler_fence(Ordering::Acquire); + + // 本地核心已经持有过锁,因此标记当前加锁获得的映射器为只读 + let readonly = prev_count > 0; + let root_page_addr = Self::root_page_addr(); + kdebug!("EptPageMapper root_page_addr: {:?}", root_page_addr); + return Self { + readonly, + root_page_addr, + frame_allocator: LockedFrameAllocator, + }; + } + + /// @brief 锁定内核映射器, 并返回一个内核映射器对象 + /// 目前只有这一个办法可以获得EptPageMapper对象 + #[inline(always)] + pub fn lock() -> Self { + //fixme:得到的是cpuid还是vcpuid? + let cpuid = smp_get_processor_id(); + return Self::lock_cpu(cpuid); + } + + /// @brief: 检查有无gpa->hpa的映射 + #[no_mangle] + pub fn is_mapped(&self,page_fault:&mut KvmPageFault) -> bool { + let gpa = page_fault.gpa(); + let mut page_table = self.table(); + let mut next_page_table; + loop { + let index:usize = unsafe { + if let Some(i) = page_table.index_of(PhysAddr::new(gpa as usize)){ + i + }else{ + kerror!("ept page table index_of failed"); + return false; + } + }; + if let Some(table) = page_table.next_level_table(index) { + kdebug!("ept page table next level table: {:?}", table); + if table.level() == PageLevel::Level4K { + return true; + } + next_page_table = table; + }else{ + return false; + } + page_table = next_page_table; + + } + } + + /// 从当前EptPageMapper的页分配器中分配一个物理页(hpa),并将其映射到指定的gpa + pub fn map( + &mut self, + gpa: PhysAddr, + flags: PageFlags, + ) -> Option>{ + compiler_fence(Ordering::SeqCst); + let hpa: PhysAddr = unsafe { self.frame_allocator.allocate_one() }?; + compiler_fence(Ordering::SeqCst); + + let mut page_manager_guard: SpinLockGuard<'static, PageManager> = + page_manager_lock_irqsave(); + if !page_manager_guard.contains(&hpa) { + page_manager_guard.insert(hpa, Page::new(false)); + } + self.map_gpa(gpa, hpa, flags) + } + + + ///映射一个hpa到指定的gpa + pub fn map_gpa( + &mut self, + gpa: PhysAddr, + hpa: PhysAddr, + flags: PageFlags, + ) -> Option> { + // 验证虚拟地址和物理地址是否对齐 + if !(gpa.check_aligned(MMArch::PAGE_SIZE) && hpa.check_aligned(MMArch::PAGE_SIZE)) { + kerror!( + "Try to map unaligned page: gpa={:?}, hpa={:?}", + gpa, + hpa + ); + return None; + } + + let gpa = PhysAddr::new(gpa.data() & (!MMArch::PAGE_NEGATIVE_MASK)); + + // TODO: 验证flags是否合法 + + // 创建页表项 + let entry = PageEntry::new(hpa, flags); + let mut table = self.table(); + kdebug!("ept page table: {:?}", table); + kdebug!("Now eptp is : {:?}", VmxAsm::vmx_vmread(control::EPTP_FULL)); + loop{ + let i = unsafe { table.index_of(gpa).unwrap() }; + assert!(i < MMArch::PAGE_ENTRY_NUM); + if table.level() == PageLevel::Level4K { + //todo: 检查是否已经映射 + //fixme::按道理已经检查过了,不知道是否正确 + if table.entry_mapped(i).unwrap() { + kwarn!("Page gpa :: {:?} already mapped", gpa); + } + + compiler_fence(Ordering::SeqCst); + + unsafe { table.set_entry(i, entry) }; + compiler_fence(Ordering::SeqCst); + return Some(PageFlush::new(VirtAddr::new(gpa.data()))); + }else{ + let next_table = table.next_level_table(i); + if let Some(next_table) = next_table { + table = next_table; + } else { + // 分配下一级页表 + let frame = unsafe { self.frame_allocator.allocate_one() }?; + + // 清空这个页帧 + unsafe { MMArch::write_bytes(MMArch::phys_2_virt(frame).unwrap(), 0, MMArch::PAGE_SIZE) }; + + // fixme::设置页表项的flags,可能有点问题 + let flags: PageFlags = + unsafe { PageFlags::from_data(MMArch::ENTRY_FLAG_DEFAULT_TABLE | MMArch::ENTRY_FLAG_READWRITE) }; + + kdebug!("EptEntryFlags: {:?}", flags); + + + // 把新分配的页表映射到当前页表 + unsafe { table.set_entry(i, PageEntry::new(frame, flags)) }; + + // 获取新分配的页表 + table = table.next_level_table(i)?; + } + } + + } + } } diff --git a/kernel/src/arch/x86_64/vm/vmx/mod.rs b/kernel/src/arch/x86_64/vm/vmx/mod.rs index 7500f507b..0406e40a0 100644 --- a/kernel/src/arch/x86_64/vm/vmx/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/mod.rs @@ -482,6 +482,7 @@ impl KvmFunc for VmxKvmFunc { // VCPU_EXREG_PDPTR KvmReg::NrVcpuRegs => { if vmx_info().enable_ept { + todo!() } } @@ -494,7 +495,10 @@ impl KvmFunc for VmxKvmFunc { ); } KvmReg::VcpuExregCr3 => { - todo!() + //当拦截CR3加载时(例如用于影子分页),KVM(Kernel-based Virtual Machine)的CR3会被加载到硬件中,而不是客户机的CR3。 + //暂时先直接读寄存器 + vcpu.cr3 = VmxAsm::vmx_vmread(guest::CR3); + //todo!() } KvmReg::VcpuExregCr4 => { let guest_owned = vcpu.cr4_guest_owned_bits; @@ -1054,11 +1058,8 @@ impl KvmFunc for VmxKvmFunc { vcpu.arch.clear_dirty(); - let cr3: (PhysFrame, Cr3Flags) = Cr3::read(); let cr3: (PhysFrame, Cr3Flags) = Cr3::read(); if unlikely(cr3 != vcpu.vmx().loaded_vmcs().host_state.cr3) { - let cr3_combined: u64 = - (cr3.0.start_address().as_u64() & 0xFFFF_FFFF_FFFF_F000) | (cr3.1.bits() & 0xFFF); let cr3_combined: u64 = (cr3.0.start_address().as_u64() & 0xFFFF_FFFF_FFFF_F000) | (cr3.1.bits() & 0xFFF); VmxAsm::vmx_vmwrite(host::CR3, cr3_combined); @@ -1238,13 +1239,15 @@ impl KvmFunc for VmxKvmFunc { todo!() } else if vcpu.arch.is_register_dirty(KvmReg::VcpuExregCr3) { guest_cr3 = vcpu.arch.cr3; + kdebug!("load_mmu_pgd: guest_cr3 = {:#x}", guest_cr3); + } else { return; } } else { todo!(); } - + vcpu.load_pdptrs(); VmxAsm::vmx_vmwrite(guest::CR3, guest_cr3); } } @@ -2351,8 +2354,6 @@ impl Vmx { VmxAsm::vmx_vmwrite(host::CR0, unsafe { cr0() }.bits() as u64); let cr3: (PhysFrame, Cr3Flags) = Cr3::read(); - let cr3_combined: u64 = - (cr3.0.start_address().as_u64() & 0xFFFF_FFFF_FFFF_F000) | (cr3.1.bits() & 0xFFF); let cr3_combined: u64 = (cr3.0.start_address().as_u64() & 0xFFFF_FFFF_FFFF_F000) | (cr3.1.bits() & 0xFFF); VmxAsm::vmx_vmwrite(host::CR3, cr3_combined); @@ -3749,3 +3750,6 @@ unsafe extern "C" fn vmx_spec_ctrl_restore_host(_vcpu_vmx: &VmxVCpuPriv, _flags: // TODO kwarn!("vmx_spec_ctrl_restore_host todo!"); } +const fn vmcs_control_bit(x: u32) -> u32 { + 1 << (x & 0x1f) +} \ No newline at end of file diff --git a/kernel/src/mm/mod.rs b/kernel/src/mm/mod.rs index 9bed5c63d..1afb79d64 100644 --- a/kernel/src/mm/mod.rs +++ b/kernel/src/mm/mod.rs @@ -124,7 +124,7 @@ pub enum PageTableKind { } /// 物理内存地址 -#[derive(Clone, Copy, Eq, Ord, PartialEq, PartialOrd, Hash,Default)] +#[derive(Clone, Copy, Eq, Ord, PartialEq, PartialOrd, Hash, Default)] #[repr(transparent)] pub struct PhysAddr(usize); diff --git a/kernel/src/virt/vm/kvm_host/mem.rs b/kernel/src/virt/vm/kvm_host/mem.rs index d0eb826b8..3f552301c 100644 --- a/kernel/src/virt/vm/kvm_host/mem.rs +++ b/kernel/src/virt/vm/kvm_host/mem.rs @@ -699,6 +699,7 @@ pub fn hva_to_pfn( if let Some((hpa, _)) = mapper.translate(hva) { return Ok(hpa.data() as u64 >> PAGE_SHIFT); } + kdebug!("hva_to_pfn NOT FOUND,try map a new pfn"); unsafe { mapper.map(hva, PageFlags::mmio_flags()); } From afbc2495975d6f7e79970c89374f0df561a3b184 Mon Sep 17 00:00:00 2001 From: BrahmaMantra <2033552517@qq.com> Date: Fri, 29 Nov 2024 13:59:08 +0800 Subject: [PATCH 10/18] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E4=BA=86EPT=E6=98=A0=E5=B0=84,=E4=BD=86=E6=98=AF=E8=AF=BB?= =?UTF-8?q?=E5=86=99=E5=86=85=E5=AD=98=E8=BF=98=E6=98=AF=E6=9C=89=E7=82=B9?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + .vscode/settings.json | 3 +- 331e5e24-137a-4f25-88ca-0be4e4a8ebf4.jpeg | Bin 0 -> 299431 bytes fixme.md | 36 -- kernel/src/arch/x86_64/kvm/vmx/mmu.rs | 2 +- kernel/src/arch/x86_64/kvm/vmx/vmexit.rs | 2 +- kernel/src/arch/x86_64/mm/mod.rs | 9 + kernel/src/arch/x86_64/vm/kvm_host/mod.rs | 8 +- kernel/src/arch/x86_64/vm/kvm_host/page.rs | 1 + kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs | 22 +- kernel/src/arch/x86_64/vm/mmu/mmu.rs | 166 +++--- kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs | 75 ++- kernel/src/arch/x86_64/vm/mmu/pte.rs | 85 ++- kernel/src/arch/x86_64/vm/vmx/capabilities.rs | 3 +- kernel/src/arch/x86_64/vm/vmx/ept/mod.rs | 311 ++++++----- kernel/src/arch/x86_64/vm/vmx/exit.rs | 132 ++++- kernel/src/arch/x86_64/vm/vmx/mod.rs | 6 +- kernel/src/mm/page.rs | 1 + kernel/src/virt/vm/kvm_dev.rs | 18 +- kernel/src/virt/vm/kvm_host/mem.rs | 2 +- kernel/src/virt/vm/kvm_main.rs | 5 + kernel/src/virt/vm/mod.rs | 1 + package-lock.json | 17 + tools/.gdbinit | 5 + tools/command.gdb | 19 + user/apps/test_kvm/main.c | 495 +++++++++--------- 26 files changed, 845 insertions(+), 581 deletions(-) create mode 100644 331e5e24-137a-4f25-88ca-0be4e4a8ebf4.jpeg delete mode 100644 fixme.md create mode 100644 kernel/src/arch/x86_64/vm/kvm_host/page.rs create mode 100644 kernel/src/virt/vm/kvm_main.rs create mode 100644 package-lock.json create mode 100644 tools/command.gdb diff --git a/.gitignore b/.gitignore index 52e685b56..35e16adf9 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,5 @@ Cargo.lock .cache compile_commands.json /logs/ + +fixme/ diff --git a/.vscode/settings.json b/.vscode/settings.json index fbf3caea8..7406eab1f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -149,7 +149,7 @@ "rust-analyzer.checkOnSave.allTargets": false, "rust-analyzer.linkedProjects": [ "./kernel/Cargo.toml", - "./tools/Cargo.toml", + //"./tools/Cargo.toml", ], // "rust-analyzer.cargo.target": "riscv64gc-unknown-none-elf", @@ -159,4 +159,5 @@ "check", ], + "makefile.configureOnOpen": false, } \ No newline at end of file diff --git a/331e5e24-137a-4f25-88ca-0be4e4a8ebf4.jpeg b/331e5e24-137a-4f25-88ca-0be4e4a8ebf4.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..650f9a9252d5e8a4b7d5463d5b4db2a201d45875 GIT binary patch literal 299431 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

!BaP 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 W3#K}X5&{!hUMnUyJNoyb;p*G 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

m+Y`=Ar6Tfa?k^b{^`4b>0g?nw#B~RN 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%0AXX+u9P5cBQoPbiJz7Gt*UHqUo) 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 z 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 VjAIzaF^ppv#xaaz7{)P-|JmO|ia-DW literal 0 HcmV?d00001 diff --git a/fixme.md b/fixme.md deleted file mode 100644 index 0cd469b6a..000000000 --- a/fixme.md +++ /dev/null @@ -1,36 +0,0 @@ -### fixme: -PageLevel的类型 -MTRR 是 x86 架构中的一组寄存器,用于控制不同内存区域的缓存属性。通过配置 MTRR,可以优化系统性能和兼容性。操作系统在启动时通常会配置 MTRR,以确保不同内存区域具有适当的缓存属性。 - -初次EPT_VIOLATION的时候,gpa=0,要建立从gpa到hpa的映射,也就是ept映射,处理完各个寄存器以及mmu等状态后 -- do_page_fault 初始化page_fault信息,能知道gfn - -- gfn_to_memslot 找到包含 gfn 的 memslot 的指针,放在page_fault.slot里面 - -- __gfn_to_hva_many 得到hva(照着之前的kvm写的)(要用到page_fault的slot) - -- hva_to_pfn 得到pfn,可以说相当于知道了hpa(照着之前的kvm写的),放在 page_fault.pfn里面 - -找到ept root物理地址 kernel/src/arch/x86_64/mm/mod.rs:184 - -### 疑问? -- 内核里面应该有相似的多级页表查询/映射的机制,是不是可以借鉴或者复用 kernel/src/mm/page.rs:712 kvm:kernel/src/arch/x86_64/kvm/vmx/ept.rs:91 - -- 我感觉得到ept root 物理地址(不知道存哪了,可能在真正要)后,按照索引在ept页表往下查,然后缺页就alloc块给它然后加入页表建立映射(gpa->hpa),直到找到目标层的level,[linux实现](https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/mmu/tdp_mmu.c?fi=kvm_tdp_mmu_map#952) - -- __va和virt_2_phys是一样的吗? - -- mm.h的作用 - - -### Debug -tdp_page_fault :at src/arch/x86_64/vm/mmu/mmu_internal.rs:233 -enter_guest : at src/arch/x86_64/vm/kvm_host/vcpu.rs:840 -handle_ept_violation :at src/arch/x86_64/vm/vmx/exit.rs:278 -try_handle_exit: at kernel/src/arch/x86_64/vm/vmx/exit.rs:250 -vmlaunch : at kernel/src/arch/x86_64/vm/vmx/vmenter.S:103 -page fault :kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs:105 - -kernel/src/mm/kernel_mapper.rs - - diff --git a/kernel/src/arch/x86_64/kvm/vmx/mmu.rs b/kernel/src/arch/x86_64/kvm/vmx/mmu.rs index 2c03c2383..481e55a7c 100644 --- a/kernel/src/arch/x86_64/kvm/vmx/mmu.rs +++ b/kernel/src/arch/x86_64/kvm/vmx/mmu.rs @@ -88,7 +88,7 @@ fn tdp_get_cr3(_vcpu: &VmxVcpu) -> u64 { return guest_cr3; } -fn tdp_set_eptp(root_hpa: u64) -> Result<(), SystemError> { +pub fn tdp_set_eptp(root_hpa: u64) -> Result<(), SystemError> { // 设置权限位,目前是写死的,可读可写可执行 // EPT paging-structure memory type: Uncacheable let mut eptp = 0x0_u64; diff --git a/kernel/src/arch/x86_64/kvm/vmx/vmexit.rs b/kernel/src/arch/x86_64/kvm/vmx/vmexit.rs index 32fb33727..99e9ec02e 100644 --- a/kernel/src/arch/x86_64/kvm/vmx/vmexit.rs +++ b/kernel/src/arch/x86_64/kvm/vmx/vmexit.rs @@ -263,7 +263,7 @@ extern "C" fn vmexit_handler() { } #[no_mangle] -fn adjust_rip(rip: u64) -> Result<(), SystemError> { +pub fn adjust_rip(rip: u64) -> Result<(), SystemError> { let instruction_length = vmx_vmread(VmcsFields::VMEXIT_INSTR_LEN as u32)?; vmx_vmwrite(VmcsFields::GUEST_RIP as u32, rip + instruction_length)?; Ok(()) diff --git a/kernel/src/arch/x86_64/mm/mod.rs b/kernel/src/arch/x86_64/mm/mod.rs index b95195969..a92d4ca8d 100644 --- a/kernel/src/arch/x86_64/mm/mod.rs +++ b/kernel/src/arch/x86_64/mm/mod.rs @@ -393,6 +393,15 @@ impl X86_64MMArch { // 不支持的原因是,目前好像没有能正确的设置page-level的xd位,会触发page fault return true; } + + pub unsafe fn read_array(addr: VirtAddr, count: usize) -> Vec { + // 实现读取数组逻辑 + let mut vec = Vec::with_capacity(count); + for i in 0..count { + vec.push(Self::read(addr + i * core::mem::size_of::())); + } + vec + } } impl VirtAddr { diff --git a/kernel/src/arch/x86_64/vm/kvm_host/mod.rs b/kernel/src/arch/x86_64/vm/kvm_host/mod.rs index d11f52e89..4225ff582 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/mod.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/mod.rs @@ -31,6 +31,7 @@ use super::{ pub mod lapic; pub mod vcpu; +pub mod page; #[allow(dead_code)] pub const TSS_IOPB_BASE_OFFSET: usize = 0x66; pub const TSS_BASE_SIZE: usize = 0x68; @@ -64,6 +65,11 @@ pub struct X86KvmArch { msr_fliter: Option>, pub noncoherent_dma_count: AtomicU32, + + pub active_mmu_pages: Vec, + + pub n_max_mmu_pages: usize, + pub n_used_mmu_pages:usize, } impl X86KvmArch { @@ -221,7 +227,7 @@ pub trait KvmFunc: Send + Sync + Debug { vcpu: &mut VirtCpu, vm: &Vm, fastpath: ExitFastpathCompletion, - ) -> Result; + ) -> Result; } /// ## 中断抑制的原因位 diff --git a/kernel/src/arch/x86_64/vm/kvm_host/page.rs b/kernel/src/arch/x86_64/vm/kvm_host/page.rs new file mode 100644 index 000000000..bb68da164 --- /dev/null +++ b/kernel/src/arch/x86_64/vm/kvm_host/page.rs @@ -0,0 +1 @@ +pub const KVM_MIN_FREE_MMU_PAGES: usize = 5; \ No newline at end of file diff --git a/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs b/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs index 47b949a1c..a7563595e 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs @@ -1316,7 +1316,7 @@ impl VirtCpu { *mmu_reset_needed |= self.read_cr3() != sregs.cr3; self.arch.cr3 = sregs.cr3; - //kdebug!("_set_segmenet_regs_common 1:: cr3: {:#x}", self.arch.cr3); + kdebug!("_set_segmenet_regs_common 1:: cr3: {:#x}", self.arch.cr3); self.arch.mark_register_dirty(KvmReg::VcpuExregCr3); @@ -1340,7 +1340,7 @@ impl VirtCpu { x86_kvm_ops().set_cr4(self, cr4); if update_pdptrs { - todo!() + //todo!() } x86_kvm_ops().set_segment(self, &mut sregs.cs, VcpuSegment::CS); @@ -1386,7 +1386,8 @@ impl VirtCpu { } else if efer.contains(EferFlags::LONG_MODE_ACTIVE) || sregs.cs.l != 0 { return false; } - return self.kvm_is_vaild_cr0(cr0) && self.kvm_is_vaild_cr4(cr4); + let ret = self.kvm_is_vaild_cr0(cr0) && self.kvm_is_vaild_cr4(cr4); + return ret; } fn kvm_is_vaild_cr0(&self, cr0: Cr0) -> bool { @@ -1397,13 +1398,14 @@ impl VirtCpu { if cr0.contains(Cr0::CR0_ENABLE_PAGING) && !cr0.contains(Cr0::CR0_PROTECTED_MODE) { return false; } - - return x86_kvm_ops().is_vaild_cr0(self, cr0); + let ret = x86_kvm_ops().is_vaild_cr0(self, cr0); + return ret; } fn __kvm_is_valid_cr4(&self, cr4: Cr4) -> bool { if cr4.contains(self.arch.cr4_guest_rsvd_bits) { - return false; + //kdebug!("__kvm_is_valid_cr4::here"); + //return false; } return true; @@ -1494,16 +1496,16 @@ impl VirtCpu { if !self.arch.is_register_dirty(KvmReg::VcpuExregCr3){ return; } - if self.arch.is_pae_paging(){ + //if self.arch.is_pae_paging(){ let mmu = self.arch.mmu(); VmxAsm::vmx_vmwrite(guest::PDPTE0_FULL, mmu.pdptrs[0]); VmxAsm::vmx_vmwrite(guest::PDPTE0_FULL, mmu.pdptrs[1]); VmxAsm::vmx_vmwrite(guest::PDPTE0_FULL, mmu.pdptrs[2]); VmxAsm::vmx_vmwrite(guest::PDPTE0_FULL, mmu.pdptrs[3]); - }else{ - kdebug!("load_pdptrs: not pae paging"); - } + //}else{ + // kdebug!("load_pdptrs: not pae paging"); + //} } } diff --git a/kernel/src/arch/x86_64/vm/mmu/mmu.rs b/kernel/src/arch/x86_64/vm/mmu/mmu.rs index ccc85648e..0632aea06 100644 --- a/kernel/src/arch/x86_64/vm/mmu/mmu.rs +++ b/kernel/src/arch/x86_64/vm/mmu/mmu.rs @@ -1,6 +1,10 @@ +use crate::arch::kvm::vmx::ept; use crate::arch::vm::asm::VmxAsm; -use crate::arch::vm::kvm_host::KvmReg; +use crate::arch::vm::kvm_host::page::KVM_MIN_FREE_MMU_PAGES; +use crate::arch::vm::mmu::mmu_internal::KvmMmuPage; use crate::kerror; +use crate::mm::page::PageEntry; +use crate::mm::{phys_2_virt, PhysAddr, VirtAddr}; use crate::virt::kvm::host_mem::PAGE_SHIFT; use crate::{arch::mm::X86_64MMArch, kdebug, kwarn}; use crate::{ @@ -11,10 +15,10 @@ use crate::{ }; use alloc::{sync::Arc, vec::Vec}; use bitfield_struct::bitfield; -use uefi::table::cfg; use x86::vmx::vmcs::guest; use core::intrinsics::likely; use core::ops::{Add, Sub}; +use core::ptr; use raw_cpuid::CpuId; use system_error::SystemError; use x86::controlregs::{Cr0, Cr4}; @@ -44,15 +48,6 @@ pub fn is_tdp_mmu_enabled() -> bool { unsafe { TDP_MMU_ENABLED } } -pub fn max_huge_page_level() -> PageLevel{ - //不让外面直接修改MAX_HUGE_PAGE_LEVEL的值 - let level: PageLevel; - unsafe { - level = MAX_HUGE_PAGE_LEVEL; - } - level -} - #[allow(dead_code)] #[repr(u8)] #[derive(Debug, PartialEq, Eq, Clone, Copy)] @@ -145,7 +140,7 @@ impl LockedKvmMmu { } pub type KvmMmuPageFaultHandler = - fn(vcpu: &mut VirtCpu, page_fault: &KvmPageFault) -> Result; + fn(vcpu: &mut VirtCpu, page_fault: &KvmPageFault) -> Result; #[derive(Debug, Default)] #[allow(dead_code)] @@ -165,7 +160,7 @@ pub struct KvmMmu { } impl KvmMmu { - pub fn save_pdptrs(&mut self){ + pub fn _save_pdptrs(&mut self){ self.pdptrs[0] = VmxAsm::vmx_vmread(guest::PDPTE0_FULL); self.pdptrs[1] = VmxAsm::vmx_vmread(guest::PDPTE1_FULL); self.pdptrs[2] = VmxAsm::vmx_vmread(guest::PDPTE2_FULL); @@ -317,7 +312,7 @@ pub struct KvmMmuRoleRegs { /// page falut的返回值, 用于表示页面错误的处理结果 /// 应用在handle_mmio_page_fault()、mmu.page_fault()、fast_page_fault()和 /// kvm_mmu_do_page_fault()等 -#[derive(Debug, Eq, PartialEq, FromPrimitive)] +#[derive(Debug, Eq, PartialEq, FromPrimitive,Clone)] #[repr(u32)] pub enum PFRet { Continue, // RET_PF_CONTINUE: 到目前为止一切正常,继续处理页面错误。 @@ -328,13 +323,13 @@ pub enum PFRet { Spurious, // RET_PF_SPURIOUS: 故障的条目已经被修复,例如由另一个 vCPU 修复。 Err = u32::MAX, // 错误 } -impl From for u64 { +impl From for i32 { fn from(pf_ret: PFRet) -> Self { - pf_ret as u64 + pf_ret as i32 } } -impl From for PFRet { - fn from(value: u64) -> Self { +impl From for PFRet { + fn from(value: i32) -> Self { match value { 0 => PFRet::Continue, 1 => PFRet::Retry, @@ -560,7 +555,7 @@ impl VirtCpu { self.mmu_alloc_special_roots()?; if direct { - self.mmu_alloc_direct_roots()?; + self.mmu_alloc_direct_roots(vm)?; } else { self.mmu_alloc_shadow_roots(vm)?; } @@ -574,7 +569,7 @@ impl VirtCpu { pub fn kvm_mmu_load_pgd(&mut self, vm: &Vm) { let root_hpa = self.arch.mmu().root.hpa; - + kdebug!("kvm_mmu_load_pgd::root_hpa = {:#x}", root_hpa); if root_hpa == KvmMmu::INVALID_PAGE { return; } @@ -593,83 +588,68 @@ impl VirtCpu { Ok(()) } - fn mmu_alloc_direct_roots(&mut self) -> Result<(), SystemError> { - // let shadow_root_level = self.arch.mmu().root_role.level(); - - // if KvmMmu::tdp_enabled() { - // todo!() - // } else if shadow_root_level >= PT64_ROOT_4LEVEL as u32 { - // todo!() - // } else if shadow_root_level == PT32E_ROOT_LEVEL as u32 { - // todo!() - // } else { - // kerror!("Bad TDP root level = {}", shadow_root_level); - // return Err(SystemError::EIO); - // } - - // self.arch.mmu().root.pgd = 0; - // Ok(()) - - // 申请并创建新的页表 - let mapper: crate::mm::page::PageMapper = unsafe { - PageMapper::create(PageTableKind::EPT, LockedFrameAllocator) - .ok_or(SystemError::ENOMEM)? - }; - - let ept_root_hpa = mapper.table().phys(); - - self.arch.mmu().root.hpa = ept_root_hpa.data() as u64; - - kdebug!("ept_root_hpa:{:x}!", ept_root_hpa.data() as u64); - + fn mmu_alloc_direct_roots(&mut self,vm: &Vm) -> Result<(), SystemError> { + let shadow_root_level = self.arch.mmu().root_role.level(); + let r: Result<(), SystemError> = self.make_mmu_pages_available(vm); + let root:PhysAddr; + if KvmMmu::tdp_enabled() { + root = self.kvm_tdp_mmu_get_vcpu_root_hpa().unwrap(); + let mut mmu = self.arch.mmu(); + mmu.root.hpa = root.data() as u64; + } else if shadow_root_level >= PT64_ROOT_4LEVEL as u32 { + todo!() + } else if shadow_root_level == PT32E_ROOT_LEVEL as u32 { + todo!() + } else { + kerror!("Bad TDP root level = {}", shadow_root_level); + return Err(SystemError::EIO); + } + /* root.pgd is ignored for direct MMUs. */ + self.arch.mmu().root.pgd = 0; Ok(()) } - ///没做完 - fn mmu_alloc_shadow_roots(&mut self,vm: &Vm) -> Result<(), SystemError> { - // let mut pdptrs:[u64;4] = [0;4]; - - // let root_pgd = self.get_guest_pgd(); - // let root_gfn = root_pgd >> PAGE_SHIFT; - - // let mut mmu = self.arch.mmu(); - // //检查gfn是否合法 - // if let Some(slot) = self.gfn_to_memslot(root_gfn,vm){ - // if !slot.read().is_visible(){ - // mmu.root.hpa = KvmMmu::INVALID_PAGE; - // return Err(SystemError::EFAULT); - // } - // } - - - - // //在SVM架构下?,读取PDPTR可能会访问客户机内存并导致缺页错误,从而使进程进入睡眠状态。 - // //为了避免在持有mmu_lock时发生睡眠,应该在获取mmu_lock之前先读取PDPTR。 - // //感觉先不用管 - // if mmu.cpu_role.base.level() == 3{ //PT32E_ROOT_LEVEL=3 - // mmu.save_pdptrs(); - // //x86_kvm_ops().cache_reg(&mut self.arch, KvmReg::NrVcpuRegs); - // for i in 0..4{ - // pdptrs[i] = self.arch.walk_mmu.clone().unwrap().lock().pdptrs[i]; - // if !pdptrs[i] & 0x1 != 0{ - // continue; - // } - - // if let Some(slot) = self.gfn_to_memslot(pdptrs[i]>>PAGE_SHIFT,vm){ - // if !slot.read().is_visible(){ - // pdptrs[i] = 0; - // } - // } - // } - // } - - - + fn mmu_alloc_shadow_roots(&mut self,_vm: &Vm) -> Result<(), SystemError> { todo!(); } - // fn get_guest_pgd(&mut self)-> u64{ - // x86_kvm_ops().cache_reg(&mut self.arch, KvmReg::VcpuExregCr3); - // self.arch.cr3 - // } + fn make_mmu_pages_available(&mut self,vm: &Vm) -> Result<(), SystemError> { + let avail = Self::kvm_mmu_available_pages(vm); + if likely(avail >= KVM_MIN_FREE_MMU_PAGES){ + return Ok(()); + } + //kvm_mmu_zap_oldest_mmu_pages(vm, KVM_REFILL_PAGES - avail); + if Self::kvm_mmu_available_pages(vm) == 0{ + return Err(SystemError::ENOSPC); + } + Ok(()) + } + fn kvm_mmu_available_pages(vm: &Vm) -> usize { + if vm.arch.n_max_mmu_pages > vm.arch.n_used_mmu_pages + { + return vm.arch.n_max_mmu_pages - vm.arch.n_used_mmu_pages + } + return 0; + } + fn kvm_tdp_mmu_get_vcpu_root_hpa(&self) -> Result{ + //todo Check for an existing root before allocating a new one. Note, the + // role check prevents consuming an invalid root. + let root = self.tdp_mmu_alloc_sp().unwrap(); + Ok(PhysAddr::new(root as usize)) + } + fn tdp_mmu_alloc_sp(&self) -> Result{ + // 申请并创建新的页表 + let mapper: crate::mm::page::PageMapper = unsafe { + PageMapper::create(PageTableKind::EPT, LockedFrameAllocator) + .ok_or(SystemError::ENOMEM)? + }; + + let ept_root_hpa = mapper.table().phys(); + + self.arch.mmu().root.hpa = ept_root_hpa.data() as u64; + + kdebug!("ept_root_hpa:{:x}!", ept_root_hpa.data() as u64); + + return Ok(self.arch.mmu().root.hpa); + } } diff --git a/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs b/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs index 3dc5055c1..7571e3e49 100644 --- a/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs +++ b/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs @@ -3,8 +3,9 @@ use alloc::{ sync::{Arc, Weak}, vec::Vec, }; -use core::{intrinsics::unlikely, ops::Index}; +use core::{intrinsics::unlikely, ops::Index, ptr}; use x86::vmx::vmcs::{guest, host}; +use crate::{arch::{kvm::vmx::{ept::EptMapper, mmu::tdp_set_eptp}, vm::{kvm_host::page, vmx::ept::debug_eptp}}, mm::VirtAddr}; use system_error::SystemError; @@ -109,6 +110,9 @@ impl KvmPageFault { pub fn gpa(&self) -> u64 { self.addr.data() as u64 } + pub fn hva(&self) -> u64 { + self.hva + } } impl VirtCpu { @@ -118,9 +122,9 @@ impl VirtCpu { vm: &Vm, cr2_or_gpa: u64, mut error_code: u64, - insn: Option, - insn_len: usize, - ) -> Result { + _insn: Option, + _insn_len: usize, + ) -> Result { let mut emulation_type = EmulType::PF; let direct = self.arch.mmu().root_role.get_direct(); // IMPLICIT_ACCESS 是一个 KVM 定义的标志,用于在模拟触发隐式访问的指令时正确执行 SMAP 检查。 @@ -147,16 +151,15 @@ impl VirtCpu { if r == PFRet::Invalid { r = self - .do_page_fault(vm, cr2_or_gpa, error_code as u32, false, emulation_type)? + .do_page_fault(vm, cr2_or_gpa, (error_code & 0xFFFFFFFF) as u32, false, emulation_type)? .into(); if r == PFRet::Invalid { return Err(SystemError::EIO); } } - if r == PFRet::Err { - //return SystemError::EFAULT; - todo!() + if i32::from(r.clone()) < 0 { + return Ok(i32::from(r)); } if r != PFRet::Emulate { return Ok(1); @@ -193,7 +196,7 @@ impl VirtCpu { error_code: u32, prefetch: bool, mut emultype: EmulType, - ) -> Result { + ) -> Result { //初始化page fault let mut page_fault = KvmPageFault { addr: PhysAddr::new(cr2_or_gpa as usize), @@ -214,6 +217,8 @@ impl VirtCpu { //处理直接映射 if self.arch.mmu().root_role.get_direct() { page_fault.gfn = (page_fault.addr.data() >> PAGE_SHIFT) as u64; + kdebug!("page_fault.addr.data() : 0x{:x}", page_fault.addr.data()); + kdebug!("do_page_fault : gfn = 0x{:x}", page_fault.gfn); page_fault.slot = self.gfn_to_memslot(page_fault.gfn, vm); //kvm_vcpu_gfn_to_memslot(vcpu, fault.gfn);没完成 } //异步页面错误(Async #PF),也称为预取错误(prefetch faults), @@ -225,6 +230,7 @@ impl VirtCpu { let r = if page_fault.is_tdp { self.tdp_page_fault(vm, &mut page_fault).unwrap() } else { + //目前的处理page_fault的方法只有tdp_page_fault,所以这里是不会执行的 let handle = self.arch.mmu().page_fault.unwrap(); handle(self, &page_fault).unwrap() }; @@ -240,7 +246,7 @@ impl VirtCpu { PFRet::Spurious => self.stat.pf_spurious += 1, _ => {} } - + kdebug!("do_page_fault return r = {}", r); Ok(r) } @@ -257,9 +263,10 @@ impl VirtCpu { &mut self, vm: &Vm, page_fault: &mut KvmPageFault, - ) -> Result { + ) -> Result { // 如果 shadow_memtype_mask 为真,并且虚拟机有非一致性 DMA //if shadow_memtype_mask != 0 && self.kvm().lock().arch.noncoherent_dma_count > 0 { + //这一段不是很懂 while page_fault.max_level > PageLevel::Level4K as u8 { let page_num = PageLevel::kvm_pages_per_hpage(page_fault.max_level); @@ -285,10 +292,10 @@ impl VirtCpu { &self, vm: &Vm, page_fault: &mut KvmPageFault, - ) -> Result { + ) -> Result { //page_fault_handle_page_track(page_fault) //fast_page_fault(page_fault); - //mmu_topup_memory_caches(false);//补充内存缓存 + //mmu_topup_memory_caches(false); let mut r = self .kvm_faultin_pfn(vm, page_fault, 1 | 1 << 1 | 1 << 2) .unwrap(); @@ -297,32 +304,42 @@ impl VirtCpu { } r = PFRet::Retry; + //todo 判断页表是否过时 + //if is_page_fault_stale(vcpu, fault) ? //实际的映射 - self.tdp_map(page_fault); + r=self.tdp_map(page_fault)?.into(); + Ok(r.into()) } - fn tdp_map(&self, page_fault: &mut KvmPageFault) -> Result { - //没有实现SPTE,huge page相关 - let mmu = self.arch.mmu(); - let kvm = self.kvm(); - let ret = PFRet::Retry; + fn tdp_map(&self, page_fault: &mut KvmPageFault) -> Result { + //没有实现huge page相关 + // let mmu = self.arch.mmu(); + // let kvm = self.kvm(); + // let ret = PFRet::Retry; let mut mapper = EptPageMapper::lock(); - if mapper.is_mapped(page_fault) { - kdebug!("page fault is already mapped"); - return Ok(PFRet::Continue.into()); - }; - let page_flags = PageFlags::from_prot_flags(ProtFlags::from_bits_truncate(0x7_u64), false); - mapper.map(PhysAddr::new(page_fault.gpa() as usize), page_flags); - if mapper.is_mapped(page_fault) { - kdebug!("page fault is mapped now"); - }; + // if mapper.is_mapped(page_fault) { + // kdebug!("page fault is already mapped"); + // return Ok(PFRet::Continue.into()); + // }; + kdebug!("{:?}",&page_fault); + //flags :rwx + let page_flags: PageFlags = unsafe { PageFlags::from_data(7) } ; + mapper.map(PhysAddr::new( page_fault.gpa() as usize), page_flags); + debug_eptp(); + + //原kvm实现 + // let mut mapper = EptMapper::lock(); + // unsafe { mapper.walk(page_fault.gpa(), page_fault.pfn()< Result { + fn direct_page_fault(&self, page_fault: &KvmPageFault) -> Result { todo!() } diff --git a/kernel/src/arch/x86_64/vm/mmu/pte.rs b/kernel/src/arch/x86_64/vm/mmu/pte.rs index 871f4aa04..99b1d30bb 100644 --- a/kernel/src/arch/x86_64/vm/mmu/pte.rs +++ b/kernel/src/arch/x86_64/vm/mmu/pte.rs @@ -1,3 +1,7 @@ +use core::{fmt::{Debug, Error, Formatter}, marker::PhantomData}; + +use crate::{arch::MMArch, mm::{page::PageFlags, MemoryManagementArch, PhysAddr}}; + bitflags::bitflags! { pub struct PteFlags: u64 { const PRESENT = 1 << 0; @@ -13,31 +17,82 @@ bitflags::bitflags! { } } -pub struct Pte { - pub address: u64, // 物理地址 - pub flags: PteFlags, // 页表条目标志 +// 页表项 +#[repr(C, align(8))] +#[derive(Copy, Clone)] +pub struct EptPageEntry { + data: u64, + phantom: PhantomData, } -impl Pte { - pub fn new(address: u64, flags: PteFlags) -> Self { - Self { address, flags } +impl Debug for EptPageEntry { + fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error> { + f.write_fmt(format_args!("EptPageEntry({:#x})", self.data)) } +} - pub fn is_present(&self) -> bool { - self.flags.contains(PteFlags::PRESENT) +impl EptPageEntry { + #[inline(always)] + pub fn new(paddr: u64, flags: PageFlags) -> Self { + Self { + data: paddr | flags.data() as u64, + phantom: PhantomData, + } + } + #[inline(always)] + pub fn from_u64(data: u64) -> Self { + Self { + data, + phantom: PhantomData, + } } - pub fn is_read_write(&self) -> bool { - self.flags.contains(PteFlags::READ_WRITE) + #[inline(always)] + pub fn data(&self) -> u64 { + self.data } - pub fn is_user_supervisor(&self) -> bool { - self.flags.contains(PteFlags::USER_SUPERVISOR) + /// 获取当前页表项指向的物理地址 + /// + /// ## 返回值 + /// + /// - Ok(PhysAddr) 如果当前页面存在于物理内存中, 返回物理地址 + /// - Err(PhysAddr) 如果当前页表项不存在, 返回物理地址 + #[inline(always)] + pub fn address(&self) -> Result { + let paddr: u64 = { + #[cfg(target_arch = "x86_64")] + { + self.data & Arch::PAGE_ADDRESS_MASK as u64 + } + + #[cfg(target_arch = "riscv64")] + { + let ppn = ((self.data & (!((1 << 10) - 1))) >> 10) & ((1 << 54) - 1); + super::allocator::page_frame::PhysPageFrame::from_ppn(ppn).phys_address() + } + }; + + if self.present() { + Ok(paddr) + } else { + Err(paddr) + } + } + + #[inline(always)] + pub fn flags(&self) -> PageFlags { + //这里不用担心是不是32bits的,因为PageFlags的data不超过usize + unsafe { PageFlags::from_data(self.data as usize & Arch::ENTRY_FLAGS_MASK) } } - pub fn is_executable(&self) -> bool { - !self.flags.contains(PteFlags::EXECUTE_DISABLE) + #[inline(always)] + pub fn set_flags(&mut self, flags: PageFlags) { + self.data = (self.data & !(Arch::ENTRY_FLAGS_MASK as u64)) | flags.data() as u64; } - // 其他方法... + #[inline(always)] + pub fn present(&self) -> bool { + return self.data & Arch::ENTRY_FLAG_PRESENT as u64 != 0; + } } diff --git a/kernel/src/arch/x86_64/vm/vmx/capabilities.rs b/kernel/src/arch/x86_64/vm/vmx/capabilities.rs index 573e6a02d..6ec34fb4e 100644 --- a/kernel/src/arch/x86_64/vm/vmx/capabilities.rs +++ b/kernel/src/arch/x86_64/vm/vmx/capabilities.rs @@ -11,8 +11,7 @@ use crate::{ mmu::mmu::PageLevel, CPU_BASED_ALWAYSON_WITHOUT_TRUE_MSR, PIN_BASED_ALWAYSON_WITHOUT_TRUE_MSR, VM_ENTRY_ALWAYSON_WITHOUT_TRUE_MSR, VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR, - }, - virt::vm::kvm_host::vcpu::VirtCpu, + }, kdebug, virt::vm::kvm_host::vcpu::VirtCpu }; use super::{vmcs::feat::VmxFeat, Vmx}; diff --git a/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs b/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs index cc5923a8c..30ec76e69 100644 --- a/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs @@ -1,29 +1,34 @@ +use super::vmx_info; use crate::arch::mm::{LockedFrameAllocator, PageMapper}; use crate::arch::vm::asm::VmxAsm; -use crate::arch::vm::mmu::mmu::{max_huge_page_level, PageLevel}; +use crate::arch::vm::kvm_host::{gfn_to_gpa, gpa_to_gfn}; +use crate::arch::vm::mmu::mmu::PageLevel; use crate::arch::vm::mmu::mmu_internal::KvmPageFault; +use crate::arch::vm::mmu::pte::EptPageEntry; +use crate::arch::x86_64::mm::X86_64MMArch; use crate::arch::MMArch; +use crate::libs::rwlock::RwLock; use crate::libs::spinlock::{SpinLock, SpinLockGuard}; use crate::mm::allocator::page_frame::FrameAllocator; -use crate::{kdebug, kerror, kinfo, kwarn}; -use crate::mm::page::{page_manager_lock_irqsave, Page, PageEntry, PageFlags, PageFlush, PageManager, PageTable}; -use crate::mm::{MemoryManagementArch, PageTableKind, PhysAddr, VirtAddr}; +use crate::mm::page::{ + page_manager_lock_irqsave, Page, PageEntry, PageFlags, PageFlush, PageManager, PageTable, +}; +use crate::mm::{phys_2_virt, MemoryManagementArch, PageTableKind, PhysAddr, VirtAddr}; use crate::smp::core::smp_get_processor_id; use crate::smp::cpu::AtomicProcessorId; use crate::smp::cpu::ProcessorId; +use crate::{kdebug, kerror, kinfo, kwarn}; use core::marker::PhantomData; use core::ops::Add; use core::sync::atomic::{compiler_fence, AtomicUsize, Ordering}; use hashbrown::HashMap; use system_error::SystemError; +use x86::apic::Level; use x86::msr; use x86::vmx::vmcs::control; -use crate::arch::x86_64::mm::X86_64MMArch; -use crate::libs::rwlock::RwLock; -use super::vmx_info; // pub const VMX_EPT_MT_EPTE_SHIFT:u64 = 3; -pub const VMX_EPT_RWX_MASK: u64 = 0x7 << 3; +pub const VMX_EPT_RWX_MASK: u64 = 0x7; // Exit Qualifications for EPT Violations pub const EPT_VIOLATION_ACC_READ_BIT: u64 = 0; @@ -65,7 +70,7 @@ bitflags! { // EPT 页表数据结构 #[derive(Debug)] pub struct EptPageTable { - /// 当前页表表示的虚拟地址空间的起始地址 + /// 当前页表表示的虚拟地址空间的起始地址,内核访问EPT页表也是在虚拟地址空间中的 base: VirtAddr, /// 当前页表所在的物理地址 phys: PhysAddr, @@ -73,15 +78,17 @@ pub struct EptPageTable { /// PageLevel::4K = 1 level: PageLevel, } -impl EptPageTable{ +impl EptPageTable { pub fn phys(&self) -> PhysAddr { self.phys } - + /// 设置当前页表的第i个页表项 - pub unsafe fn set_entry(&self, i: usize, entry: PageEntry) -> Option<()> { + pub unsafe fn set_entry(&self, i: usize, entry: EptPageEntry) -> Option<()> { let entry_virt = self.entry_virt(i)?; - MMArch::write::(entry_virt, entry.data()); + MMArch::write::(entry_virt, entry.data()); + let page_entry = MMArch::read::>(entry_virt); + kdebug!("Set EPT entry: {:?} , index : {:?}" , page_entry , i); return Some(()); } /// 判断当前页表的第i个页表项是否已经填写了值 @@ -99,14 +106,14 @@ impl EptPageTable{ } } - /// 获取当前页表的层级 - #[inline(always)] - pub fn level(&self) -> PageLevel { - self.level - } + /// 获取当前页表的层级 + #[inline(always)] + pub fn level(&self) -> PageLevel { + self.level + } - /// 获取第i个页表项所表示的虚拟内存空间的起始地址 - pub fn entry_base(&self, i: usize) -> Option { + /// 获取第i个entry的虚拟内存空间 + pub fn entry_base(&self, i: usize) -> Option { if i < MMArch::PAGE_ENTRY_NUM { let shift = (self.level as usize - 1) * MMArch::PAGE_ENTRY_SHIFT + MMArch::PAGE_SHIFT; return Some(self.base.add(i << shift)); @@ -114,51 +121,51 @@ impl EptPageTable{ return None; } } - /// 获取当前页表自身所在的虚拟地址 - #[inline(always)] - pub unsafe fn virt(&self) -> VirtAddr { - return MMArch::phys_2_virt(self.phys).unwrap(); - } + /// 获取当前页表自身所在的虚拟地址 + #[inline(always)] + pub unsafe fn virt(&self) -> VirtAddr { + return MMArch::phys_2_virt(self.phys).unwrap(); + } /// 获取当前页表的第i个页表项所在的虚拟地址(注意与entry_base进行区分) pub unsafe fn entry_virt(&self, i: usize) -> Option { - if i < MMArch::PAGE_ENTRY_NUM { + if i < MMArch::PAGE_ENTRY_NUM { return Some(self.virt().add(i * MMArch::PAGE_ENTRY_SIZE)); } else { - return None; - } + return None; + } } - /// 获取当前页表的第i个页表项 - pub unsafe fn entry(&self, i: usize) -> Option> { + /// 获取当前页表的第i个页表项 + pub unsafe fn entry(&self, i: usize) -> Option> { let entry_virt = self.entry_virt(i)?; - return Some(PageEntry::from_usize(MMArch::read::(entry_virt))); + return Some(EptPageEntry::from_u64(MMArch::read::(entry_virt))); } - - pub fn new(base:VirtAddr,phys: PhysAddr,level:PageLevel) -> Self { + + pub fn new(base: VirtAddr, phys: PhysAddr, level: PageLevel) -> Self { Self { base: base, phys, - level + level, } } - /// 根据虚拟地址,获取对应的页表项在页表中的下标 + /// 根据虚拟地址,获取对应的页表项在页表中的下标 /// /// ## 参数 /// - /// - gpa: 虚拟地址 + /// - hva: 虚拟地址 /// /// ## 返回值 /// /// 页表项在页表中的下标。如果addr不在当前页表所表示的虚拟地址空间中,则返回None pub unsafe fn index_of(&self, gpa: PhysAddr) -> Option { let addr = VirtAddr::new(gpa.data() & MMArch::PAGE_ADDRESS_MASK); - let shift = (self.level - 1) as usize * MMArch::PAGE_ENTRY_SHIFT + MMArch::PAGE_SHIFT; + let shift = (self.level - 1) as usize * MMArch::PAGE_ENTRY_SHIFT + MMArch::PAGE_SHIFT; - let mask = (MMArch::PAGE_ENTRY_NUM << shift) - 1; - if addr < self.base || addr >= self.base.add(mask) { - return None; - } else { + //let mask = (MMArch::PAGE_ENTRY_NUM << shift) - 1; + // if addr < self.base || addr >= self.base.add(mask) { + // return None; + // } else { return Some((addr.data() >> shift) & MMArch::PAGE_ENTRY_MASK); - } + //} } pub fn next_level_table(&self, index: usize) -> Option { @@ -166,11 +173,28 @@ impl EptPageTable{ return None; } // 返回下一级页表 - return Some(EptPageTable::new( - self.entry_base(index)?, - unsafe { self.entry(index) }?.address().ok()?, - self.level - 1, - )); + let phys = unsafe { self.entry(index)?.address() }; + + let base ; + if let Ok(phys) = phys{ + base = VirtAddr::new(phys_2_virt(phys as usize)); + }else{ + base = VirtAddr::new(phys_2_virt(phys.unwrap_err() as usize)); + } + + let level = self.level - 1; + if phys.is_err() { + kdebug!("EptPageTable::next_level_table: phys {:?}", phys); + let _phys = phys.unwrap_err(); + // Not Present的情况下,返回None + // 这里之所以绕了一圈,是因为在虚拟机启动阶段的page_fault的addr是not_present的,但是也要进行映射 + // 可能有点问题,但是先这么写 + if _phys & 0x7== 0x000 { + return None; + } + return Some(EptPageTable::new(base, PhysAddr::new(_phys as usize), level)); + } + return Some(EptPageTable::new(base, PhysAddr::new(phys.unwrap() as usize), level)); } } @@ -185,7 +209,7 @@ impl EptPageTable{ // phys2page: HashMap::new(), // } // } - + // } /// Check if MTRR is supported @@ -217,15 +241,15 @@ pub struct EptPageMapper { frame_allocator: LockedFrameAllocator, } -impl EptPageMapper{ +impl EptPageMapper { /// 返回最上层的ept页表 - pub fn table(&self) ->EptPageTable { - EptPageTable::new(VirtAddr::new(0), - self.root_page_addr,max_huge_page_level()) - } + pub fn table(&self) -> EptPageTable { + EptPageTable::new(VirtAddr::new(phys_2_virt(self.root_page_addr.data())), self.root_page_addr, PageLevel::LevelNum) + } pub fn root_page_addr() -> PhysAddr { - let eptp =VmxAsm::vmx_vmread(control::EPTP_FULL); - PhysAddr::new(eptp as usize) + let eptp = VmxAsm::vmx_vmread(control::EPTP_FULL); + let addr = eptp & 0xFFFF_FFFF_FFFF_F000; //去除低12位 + PhysAddr::new(addr as usize) } fn lock_cpu(cpuid: ProcessorId) -> Self { @@ -250,8 +274,7 @@ impl EptPageMapper{ // 本地核心已经持有过锁,因此标记当前加锁获得的映射器为只读 let readonly = prev_count > 0; let root_page_addr = Self::root_page_addr(); - kdebug!("EptPageMapper root_page_addr: {:?}", root_page_addr); - return Self { + return Self { readonly, root_page_addr, frame_allocator: LockedFrameAllocator, @@ -269,119 +292,163 @@ impl EptPageMapper{ /// @brief: 检查有无gpa->hpa的映射 #[no_mangle] - pub fn is_mapped(&self,page_fault:&mut KvmPageFault) -> bool { - let gpa = page_fault.gpa(); + pub fn is_mapped(&self, page_fault: &mut KvmPageFault) -> bool { + let gpa = page_fault.gpa() as usize; let mut page_table = self.table(); let mut next_page_table; loop { - let index:usize = unsafe { - if let Some(i) = page_table.index_of(PhysAddr::new(gpa as usize)){ - i - }else{ + let index: usize = unsafe { + if let Some(i) = page_table.index_of(PhysAddr::new(gpa)) { + kdebug!("ept page table index: {:?}", i); + i + } else { kerror!("ept page table index_of failed"); return false; } }; - if let Some(table) = page_table.next_level_table(index) { - kdebug!("ept page table next level table: {:?}", table); + kdebug!("EPT table: index = {:?}, value = {:?}", index, page_table); + if let Some(table) = page_table.next_level_table(index) { if table.level() == PageLevel::Level4K { + kdebug!("EPT table 4K: {:?}", table); return true; } + kdebug!("table.level(): {:?}", table.level()); next_page_table = table; - }else{ + } else { return false; } page_table = next_page_table; - } } /// 从当前EptPageMapper的页分配器中分配一个物理页(hpa),并将其映射到指定的gpa - pub fn map( - &mut self, - gpa: PhysAddr, - flags: PageFlags, - ) -> Option>{ - compiler_fence(Ordering::SeqCst); - let hpa: PhysAddr = unsafe { self.frame_allocator.allocate_one() }?; - compiler_fence(Ordering::SeqCst); - - let mut page_manager_guard: SpinLockGuard<'static, PageManager> = - page_manager_lock_irqsave(); - if !page_manager_guard.contains(&hpa) { - page_manager_guard.insert(hpa, Page::new(false)); - } - self.map_gpa(gpa, hpa, flags) + pub fn map(&mut self, gpa: PhysAddr, flags: PageFlags) -> Option> { + self.map_gpa(gpa, flags) } - ///映射一个hpa到指定的gpa + /// fixme:感觉有问题,但说不出来 pub fn map_gpa( &mut self, gpa: PhysAddr, - hpa: PhysAddr, flags: PageFlags, - ) -> Option> { - // 验证虚拟地址和物理地址是否对齐 - if !(gpa.check_aligned(MMArch::PAGE_SIZE) && hpa.check_aligned(MMArch::PAGE_SIZE)) { - kerror!( - "Try to map unaligned page: gpa={:?}, hpa={:?}", - gpa, - hpa - ); - return None; + ) -> Option<(PageFlush)> { + // 验证虚拟地址和物理地址是否对齐 + if !(gpa.check_aligned(MMArch::PAGE_SIZE)) { + kerror!("Try to map unaligned page: gpa={:?}", gpa); + //return None; } let gpa = PhysAddr::new(gpa.data() & (!MMArch::PAGE_NEGATIVE_MASK)); - // TODO: 验证flags是否合法 - // 创建页表项 - let entry = PageEntry::new(hpa, flags); let mut table = self.table(); kdebug!("ept page table: {:?}", table); - kdebug!("Now eptp is : {:?}", VmxAsm::vmx_vmread(control::EPTP_FULL)); - loop{ + loop { let i = unsafe { table.index_of(gpa).unwrap() }; assert!(i < MMArch::PAGE_ENTRY_NUM); if table.level() == PageLevel::Level4K { - //todo: 检查是否已经映射 - //fixme::按道理已经检查过了,不知道是否正确 + //检查是否映射过 if table.entry_mapped(i).unwrap() { - kwarn!("Page gpa :: {:?} already mapped", gpa); + kwarn!("index :: {:?} , Page hva :: {:?} already mapped", i , gpa); + let set_entry = unsafe { + let entry_virt = table.entry_virt(i)?; + return Some(PageFlush::new(entry_virt));}; } + //分配一个entry的物理页 compiler_fence(Ordering::SeqCst); - + let hpa: PhysAddr = unsafe { self.frame_allocator.allocate_one() }?; + kdebug!("Allocate hpa: {:?}", hpa); + let mut page_manager_guard: SpinLockGuard<'static, PageManager> = + page_manager_lock_irqsave(); + if !page_manager_guard.contains(&hpa) { + page_manager_guard.insert(hpa, Page::new(false)); + } + drop(page_manager_guard); + let entry = EptPageEntry::new(hpa.data() as u64, flags); unsafe { table.set_entry(i, entry) }; compiler_fence(Ordering::SeqCst); - return Some(PageFlush::new(VirtAddr::new(gpa.data()))); - }else{ + + //打印页表项以进行验证 + kdebug!("4K table: {:?}", table); + let set_entry = unsafe { + let entry_virt = table.entry_virt(i)?; + MMArch::read::>(entry_virt)}; + kdebug!("Read EPT entry by MMArch::read::>(entry_virt): {:?}", set_entry); + + return Some(PageFlush::new((unsafe { table.entry_virt(i)? }))); + } else { let next_table = table.next_level_table(i); if let Some(next_table) = next_table { table = next_table; + kdebug!("already next table: {:?}", table); } else { - // 分配下一级页表 - let frame = unsafe { self.frame_allocator.allocate_one() }?; - - // 清空这个页帧 - unsafe { MMArch::write_bytes(MMArch::phys_2_virt(frame).unwrap(), 0, MMArch::PAGE_SIZE) }; - - // fixme::设置页表项的flags,可能有点问题 - let flags: PageFlags = - unsafe { PageFlags::from_data(MMArch::ENTRY_FLAG_DEFAULT_TABLE | MMArch::ENTRY_FLAG_READWRITE) }; - - kdebug!("EptEntryFlags: {:?}", flags); - - - // 把新分配的页表映射到当前页表 - unsafe { table.set_entry(i, PageEntry::new(frame, flags)) }; - - // 获取新分配的页表 - table = table.next_level_table(i)?; + // 分配下一级页表 + let frame = unsafe { self.frame_allocator.allocate_one() }?; + + // 清空这个页帧 + unsafe { + MMArch::write_bytes( + MMArch::phys_2_virt(frame).unwrap(), + 0, + MMArch::PAGE_SIZE, + ) + }; + + // fixme::设置页表项的flags,可能有点问题 + let flags: PageFlags = unsafe { PageFlags::from_data(7) }; + + kdebug!("EptEntryFlags: {:?}", flags); + kdebug!("frame is: {:?} , index is: {:?}", frame ,i); + // 把新分配的页表映射到当前页表 + unsafe { table.set_entry(i, EptPageEntry::new(frame.data() as u64, flags)) }; + + // 获取新分配的页表 + table = table.next_level_table(i)?; + kdebug!("next table: {:?}", table); } } + } + } +} + +pub fn debug_eptp() { + let PML4_hpa: PhysAddr = EptPageMapper::lock().table().phys(); + kdebug!("Prepare to read EPTP address"); + let PML4_hva = VirtAddr::new(phys_2_virt(PML4_hpa.data())); + kdebug!("PML4_hpa: 0x{:x}", PML4_hpa.data()); + kdebug!("PML4_hva: 0x{:x}", PML4_hva.data()); //Level1G + unsafe { + let entry = MMArch::read::(PML4_hva); + kdebug!("Value at EPTP address: 0x{:x}", entry); //Level2M + // 遍历并打印所有已分配的页面 + traverse_ept_table(PML4_hva, 4); + } +} +unsafe fn traverse_ept_table(table_addr: VirtAddr, level: u8) { + if level == 0 { + return; + } + + let entries = MMArch::read_array::(table_addr, 512); + for (i, entry) in entries.iter().enumerate() { + if level == 1{ + kdebug!("Level {} - index {}: HPA: 0x{:x}", level, i, *entry); + } + if *entry & 0x7 != 0 { + let next_level_addr = VirtAddr::new(phys_2_virt((*entry & 0xFFFFFFFFF000) as usize)); + let entry_value = MMArch::read::(next_level_addr); + kdebug!( + "Level {} - index {}: HPA: 0x{:x}, read_to: 0x{:x}", + level, + i, + *entry, /*& 0xFFFFFFFFF000*/ + entry_value, + ); + // 递归遍历下一级页表 + traverse_ept_table(next_level_addr, level - 1); } } } diff --git a/kernel/src/arch/x86_64/vm/vmx/exit.rs b/kernel/src/arch/x86_64/vm/vmx/exit.rs index 1558757d4..6c332ae72 100644 --- a/kernel/src/arch/x86_64/vm/vmx/exit.rs +++ b/kernel/src/arch/x86_64/vm/vmx/exit.rs @@ -1,15 +1,18 @@ use bitfield_struct::bitfield; use system_error::SystemError; -use x86::vmx::vmcs::{guest, ro}; +use x86::vmx::vmcs::{control, guest, host, ro}; use crate::{ - arch::vm::asm::{IntrInfo, VmxAsm}, - kerror, + arch::{ + kvm::vmx::{vmcs::VmcsFields, vmexit::adjust_rip, vmx_asm_wrapper::vmx_vmread}, + vm::asm::{IntrInfo, VmxAsm}, + }, + kdebug, kerror, libs::spinlock::SpinLockGuard, virt::vm::kvm_host::{vcpu::VirtCpu, Vm}, }; -use super::{ept::EptViolationExitQual, vmx_info, PageFaultErr}; +use super::{ept::EptViolationExitQual, vmx_info, PageFaultErr, Vmx}; extern crate num_traits; #[bitfield(u32)] @@ -252,13 +255,20 @@ impl VmxExitHandlers { vcpu: &mut VirtCpu, vm: &Vm, basic: VmxExitReasonBasic, - ) -> Option> { + ) -> Option> { + let exit_reason = vmx_vmread(VmcsFields::VMEXIT_EXIT_REASON as u32).unwrap() as u32; + let exit_basic_reason = exit_reason & 0x0000_ffff; + let guest_rip = vmx_vmread(VmcsFields::GUEST_RIP as u32).unwrap(); + let _guest_rflags = vmx_vmread(VmcsFields::GUEST_RFLAGS as u32).unwrap(); match basic { VmxExitReasonBasic::IO_INSTRUCTION => { return Some(Self::handle_io(vcpu)); } VmxExitReasonBasic::EPT_VIOLATION => { - return Some(Self::handle_ept_violation(vcpu, vm)); + let r = Some(Self::handle_ept_violation(vcpu, vm)); + debug(); + //adjust_rip(guest_rip).unwrap(); + r } VmxExitReasonBasic::EXTERNAL_INTERRUPT => { return Some(Self::handle_external_interrupt(vcpu)); @@ -267,22 +277,21 @@ impl VmxExitHandlers { } } - fn handle_io(vcpu: &mut VirtCpu) -> Result { + fn handle_io(vcpu: &mut VirtCpu) -> Result { todo!(); } - fn handle_external_interrupt(vcpu: &mut VirtCpu) -> Result { + fn handle_external_interrupt(vcpu: &mut VirtCpu) -> Result { vcpu.stat.irq_exits += 1; Ok(1) } - fn handle_ept_violation(vcpu: &mut VirtCpu, vm: &Vm) -> Result { - let exit_qualification = vcpu.get_exit_qual(); - - // EPT 违规发生在从 NMI 执行 iret 时, - // 在下一次 VM 进入之前必须设置 "blocked by NMI" 位。 - // 有一些错误可能会导致该位未被设置: - // AAK134, BY25。 + fn handle_ept_violation(vcpu: &mut VirtCpu, vm: &Vm) -> Result { + let exit_qualification = vcpu.get_exit_qual(); //0x184 + // EPT 违规发生在从 NMI 执行 iret 时, + // 在下一次 VM 进入之前必须设置 "blocked by NMI" 位。 + // 有一些错误可能会导致该位未被设置: + // AAK134, BY25。 let vmx = vcpu.vmx(); if vmx.idt_vectoring_info.bits() & IntrInfo::INTR_INFO_VALID_MASK.bits() != 0 && vmx_info().enable_vnmi @@ -291,37 +300,47 @@ impl VmxExitHandlers { VmxAsm::vmx_vmwrite(guest::INTERRUPTIBILITY_STATE, 0x8); //GUEST_INTR_STATE_NMI } let gpa = VmxAsm::vmx_vmread(ro::GUEST_PHYSICAL_ADDR_FULL); - // trace_kvm_page_fault(vcpu, gpa, exit_qualification);//fztodo!() + //let exit_qualification = VmxAsm::vmx_vmread(ro::EXIT_QUALIFICATION); + // trace_kvm_page_fault(vcpu, gpa, exit_qualification);// // 根据故障类型确定错误代码 let mut error_code = if exit_qualification & (EptViolationExitQual::ACC_READ.bits()) != 0 { - //active + kdebug!("error_code::ACC_READ"); PageFaultErr::PFERR_USER.bits() } else { 0 }; error_code |= if exit_qualification & (EptViolationExitQual::ACC_WRITE.bits()) != 0 { - //active + kdebug!("error_code::ACC_WRITE"); PageFaultErr::PFERR_WRITE.bits() } else { 0 }; error_code |= if exit_qualification & (EptViolationExitQual::ACC_INSTR.bits()) != 0 { + //actice + kdebug!("error_code::ACC_INSTR"); PageFaultErr::PFERR_FETCH.bits() } else { 0 }; error_code |= if exit_qualification & (EptViolationExitQual::RWX_MASK.bits()) != 0 { + kdebug!("error_code::RWX_MASK"); PageFaultErr::PFERR_PRESENT.bits() } else { 0 }; + if exit_qualification & (EptViolationExitQual::GVA_IS_VALID.bits()) != 0 {//调试用 + kdebug!("GVA is valid"); + } else { + kdebug!("GVA is invalid"); + } error_code |= if exit_qualification & (EptViolationExitQual::GVA_TRANSLATED.bits()) != 0 { + kdebug!("error_code:GVA GVA_TRANSLATED"); PageFaultErr::PFERR_GUEST_FINAL.bits() //active } else { PageFaultErr::PFERR_GUEST_PAGE.bits() }; - //fixme:: 此时error_code为0x100000011,感觉有问题 + //fixme:: 此时error_code为0x100000011 vcpu.arch.exit_qual = exit_qualification; @@ -332,7 +351,80 @@ impl VmxExitHandlers { // if allow_smaller_maxphyaddr && kvm_vcpu_is_illegal_gpa(vcpu, gpa) { // return kvm_emulate_instruction(vcpu, 0); // } - + kdebug!("EPT violation: error_code={:#x}", error_code); vcpu.page_fault(vm, gpa, error_code, None, 0) } } +fn debug(){ +// // 3 +// let info = VmxAsm::vmx_vmread(VmcsFields::VMEXIT_INSTR_LEN as u32); +// kdebug!("vmexit handler: VMEXIT_INSTR_LEN: 0x{:x}!", info); + +// //0 +// let info = VmxAsm::vmx_vmread(VmcsFields::VMEXIT_INSTR_INFO as u32); +// kdebug!("vmexit handler: VMEXIT_INSTR_INFO: 0x{:x}!", info); + +// //0x64042 +// /*0x64042: + +// 将其转换为二进制:0x64042 的二进制表示是 110010000001000010。 +// 每个位代表一个异常向量(例如,除以零,调试,不可屏蔽中断,断点等)。 + +// 从 vmx_update_exception_bitmap 函数中,我们看到设置的特定异常: + +// PF_VECTOR:页面错误 +// UD_VECTOR:未定义操作码 +// MC_VECTOR:机器检查 +// DB_VECTOR:调试 +// AC_VECTOR:对齐检查 + +// 值 0x64042 设置了与这些异常相对应的位,这意味着当这些异常在来宾中发生时将导致 VM 退出。 */ +// let info = VmxAsm::vmx_vmread(control::EXCEPTION_BITMAP); +// kdebug!("vmexit handler: EXCEPTION_BITMAP: 0x{:x}!", info); + +// //9 +// let info = VmxAsm::vmx_vmread(control::PAGE_FAULT_ERR_CODE_MASK); +// kdebug!("vmexit handler: PAGE_FAULT_ERR_CODE_MASK: 0x{:x}!", info); + +// //1 +// let info = VmxAsm::vmx_vmread(control::PAGE_FAULT_ERR_CODE_MATCH); +// kdebug!("vmexit handler: PAGE_FAULT_ERR_CODE_MATCH: 0x{:x}!", info); + +// //0 +// let info = VmxAsm::vmx_vmread(control::EPTP_LIST_ADDR_FULL); +// kdebug!("vmexit handler: EPTP_LIST_ADDR_FULL: 0x{:x}!", info); + +// let info = VmxAsm::vmx_vmread(ro::VM_INSTRUCTION_ERROR); +// kdebug!("vmexit handler: VM_INSTRUCTION_ERROR: 0x{:x}!", info); + + let info = VmxAsm::vmx_vmread(ro::EXIT_REASON); + kdebug!("vmexit handler: EXIT_REASON:{}!", info);//48:EPT VIOLATION + + // let info = VmxAsm::vmx_vmread(ro::VMEXIT_INTERRUPTION_INFO); + // kdebug!("vmexit handler: VMEXIT_INTERRUPTION_INFO: 0x{:x}!", info); + + // let info = VmxAsm::vmx_vmread(ro::VMEXIT_INTERRUPTION_ERR_CODE); + // kdebug!("vmexit handler: VMEXIT_INTERRUPTION_ERR_CODE: 0x{:x}!", info); + + // let info = VmxAsm::vmx_vmread(ro::IDT_VECTORING_INFO); + // kdebug!("vmexit handler: IDT_VECTORING_INFO: 0x{:x}!", info); + + // let info = VmxAsm::vmx_vmread(ro::IDT_VECTORING_ERR_CODE); + // kdebug!("vmexit handler: IDT_VECTORING_ERR_CODE: 0x{:x}!", info); + + // let info = VmxAsm::vmx_vmread(ro::VMEXIT_INSTRUCTION_LEN); + // kdebug!("vmexit handler: VMEXIT_INSTRUCTION_LEN: 0x{:x}!", info); + + // let info = VmxAsm::vmx_vmread(ro::VMEXIT_INSTRUCTION_INFO); + // kdebug!("vmexit handler: VMEXIT_INSTRUCTION_INFO: 0x{:x}!", info); + + + //panic + // let info = VmxAsm::vmx_vmread(control::EPTP_INDEX); + // kdebug!("vmexit handler: EPTP_INDEX: 0x{:x}!", info); + + //panic + // let info = VmxAsm::vmx_vmread(control::VIRT_EXCEPTION_INFO_ADDR_FULL); + // kdebug!("vmexit handler: VIRT_EXCEPTION_INFO_ADDR_FULL: 0x{:x}!", info); + +} \ No newline at end of file diff --git a/kernel/src/arch/x86_64/vm/vmx/mod.rs b/kernel/src/arch/x86_64/vm/vmx/mod.rs index 0406e40a0..48d9f54b6 100644 --- a/kernel/src/arch/x86_64/vm/vmx/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/mod.rs @@ -1214,7 +1214,7 @@ impl KvmFunc for VmxKvmFunc { vcpu: &mut VirtCpu, vm: &Vm, fastpath: ExitFastpathCompletion, - ) -> Result { + ) -> Result { let r = vmx_info().vmx_handle_exit(vcpu, vm, fastpath); if vcpu.vmx().exit_reason.bus_lock_detected() { @@ -2981,10 +2981,10 @@ impl Vmx { vcpu: &mut VirtCpu, vm: &Vm, exit_fastpath: ExitFastpathCompletion, - ) -> Result { + ) -> Result { let exit_reason = vcpu.vmx().exit_reason; - let unexpected_vmexit = |vcpu: &mut VirtCpu| -> Result { + let unexpected_vmexit = |vcpu: &mut VirtCpu| -> Result { kerror!("vmx: unexpected exit reason {:?}\n", exit_reason); self.dump_vmcs(vcpu); diff --git a/kernel/src/mm/page.rs b/kernel/src/mm/page.rs index a6af66fc0..68b33f3c1 100644 --- a/kernel/src/mm/page.rs +++ b/kernel/src/mm/page.rs @@ -290,6 +290,7 @@ impl PageTable { } /// 页表项 +#[repr(C, align(8))] #[derive(Copy, Clone)] pub struct PageEntry { data: usize, diff --git a/kernel/src/virt/vm/kvm_dev.rs b/kernel/src/virt/vm/kvm_dev.rs index 9214faf5d..94b7270ee 100644 --- a/kernel/src/virt/vm/kvm_dev.rs +++ b/kernel/src/virt/vm/kvm_dev.rs @@ -187,7 +187,7 @@ pub struct KvmInstance { impl KvmInstance { const KVM_CREATE_VCPU: u32 = 0xAE41; - const KVM_SET_USER_MEMORY_REGION: u32 = 0xAE46; + const KVM_SET_USER_MEMORY_REGION: u32 = 0x4020AE46; pub fn new(vm: Arc) -> Arc { Arc::new(Self { @@ -314,10 +314,10 @@ pub struct KvmVcpuDev { impl KvmVcpuDev { const KVM_RUN: u32 = 0xAE80; - const KVM_GET_REGS: u32 = 0xAE81; - const KVM_SET_REGS: u32 = 0xAE82; - const KVM_GET_SREGS: u32 = 0xAE83; - const KVM_SET_SREGS: u32 = 0xAE84; + const KVM_GET_REGS: u32 = 0x8090AE81; + const KVM_SET_REGS: u32 = 0x4090AE82; + const KVM_GET_SREGS: u32 = 0x8138AE83; + const KVM_SET_SREGS: u32 = 0x4138AE84; pub fn new(vcpu: Arc) -> Arc { Arc::new(Self { @@ -427,9 +427,13 @@ impl IndexNode for KvmVcpuDev { let mut sreg = UapiKvmSegmentRegs::default(); user_reader.copy_one_from_user(&mut sreg, 0)?; - self.vcpu.lock().set_segment_regs(&mut sreg)?; + if let Ok(res) = self.vcpu.lock().set_segment_regs(&mut sreg){ + return Ok(0); + }else{ + kdebug!("set segment regs failed"); + return Err(SystemError::EINVAL); + } - return Ok(0); } _ => { diff --git a/kernel/src/virt/vm/kvm_host/mem.rs b/kernel/src/virt/vm/kvm_host/mem.rs index 3f552301c..b768ada55 100644 --- a/kernel/src/virt/vm/kvm_host/mem.rs +++ b/kernel/src/virt/vm/kvm_host/mem.rs @@ -585,7 +585,7 @@ impl Vm { /// /// # 错误 /// 如果内存槽为空或无效,或者尝试对只读内存槽进行写操作,则返回 `SystemError::KVM_HVA_ERR_BAD`。 -fn __gfn_to_hva_many( +pub fn __gfn_to_hva_many( slot: &Option<&KvmMemSlot>, gfn: u64, nr_pages: Option<&mut u64>, diff --git a/kernel/src/virt/vm/kvm_main.rs b/kernel/src/virt/vm/kvm_main.rs new file mode 100644 index 000000000..47a6a3ec4 --- /dev/null +++ b/kernel/src/virt/vm/kvm_main.rs @@ -0,0 +1,5 @@ +use super::kvm_host::mem::KvmMmuMemoryCache; + +fn kvm_mmu_memory_cache_alloc(mc: KvmMmuMemoryCache){ + +} \ No newline at end of file diff --git a/kernel/src/virt/vm/mod.rs b/kernel/src/virt/vm/mod.rs index 048b943e3..1eebc27fd 100644 --- a/kernel/src/virt/vm/mod.rs +++ b/kernel/src/virt/vm/mod.rs @@ -1,3 +1,4 @@ pub mod kvm_dev; pub mod kvm_host; pub mod user_api; +pub mod kvm_main; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..e75f0435a --- /dev/null +++ b/package-lock.json @@ -0,0 +1,17 @@ +{ + "name": "DragonOS", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "crypto-js": "^4.2.0" + } + }, + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://mirrors.huaweicloud.com/repository/npm/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + } + } +} diff --git a/tools/.gdbinit b/tools/.gdbinit index 5d2904656..aaec0d054 100644 --- a/tools/.gdbinit +++ b/tools/.gdbinit @@ -1,3 +1,8 @@ target remote localhost:1234 file bin/kernel/kernel.elf set follow-fork-mode child + +b kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs:310 +b kernel/src/arch/x86_64/vm/vmx/ept/mod.rs:274 +b kernel/src/arch/x86_64/vm/vmx/ept/mod.rs:177 +b kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs:1248 \ No newline at end of file diff --git a/tools/command.gdb b/tools/command.gdb new file mode 100644 index 000000000..3329a8303 --- /dev/null +++ b/tools/command.gdb @@ -0,0 +1,19 @@ +set breakpoint pending on +# 设置成QEMU的路径 +file /home/fz/qemu-debug/build/install_dir/usr/local/bin/qemu-system-x86_64 + +handle SIGUSR2 noprint nostop +handle SIGUSR1 noprint nostop + +# 仅供参考,请添加任何你需要的断点。 +b accel/tcg/cpu-exec.c:996 +b accel/tcg/cpu-exec.c:1047 +b roms/edk2/OvmfPkg/Library/CcExitLib/CcExitVeHandler.c:752 +b target/i386/hvf/hvf.c:116 +b target/i386/hvf/hvf.c:117 + + + + + +run -d ../bin/disk-x86_64.img -m 512M -smp 2,cores=2,threads=1,sockets=1 -boot order=d -d cpu_reset,guest_errors,trace:virtio*,trace:e1000e_rx*,trace:e1000e_tx*,trace:e1000e_irq* -s -machine q35,memory-backend=dragonos-qemu-shm.ram -cpu IvyBridge,apic,x2apic,+fpu,check,+vmx, -rtc clock=host,base=localtime -serial file:../serial_opt.txt -drive id=disk,file=../bin/disk-x86_64.img,if=none -device ahci,id=ahci -device ide-hd,drive=disk,bus=ahci.0 -netdev user,id=hostnet0,hostfwd=tcp::12580-:12580 -device virtio-net-pci,vectors=5,netdev=hostnet0,id=net0 -usb -device qemu-xhci,id=xhci,p2=8,p3=4 -object memory-backend-file,size=512M,id=dragonos-qemu-shm.ram,mem-path=/dev/shm/dragonos-qemu-shm.ram,share=on -machine accel=kvm -enable-kvm & \ No newline at end of file diff --git a/user/apps/test_kvm/main.c b/user/apps/test_kvm/main.c index e1c8c6f67..c66dc9967 100644 --- a/user/apps/test_kvm/main.c +++ b/user/apps/test_kvm/main.c @@ -1,116 +1,45 @@ - -#include + #include #include +#include #include -#include #include -#include -// #include - -#define KVM_S390_GET_SKEYS_NONE 1 -#define KVM_S390_SKEYS_MAX 1048576 - -#define KVM_EXIT_UNKNOWN 0 -#define KVM_EXIT_EXCEPTION 1 -#define KVM_EXIT_IO 2 -#define KVM_EXIT_HYPERCALL 3 -#define KVM_EXIT_DEBUG 4 -#define KVM_EXIT_HLT 5 -#define KVM_EXIT_MMIO 6 -#define KVM_EXIT_IRQ_WINDOW_OPEN 7 -#define KVM_EXIT_SHUTDOWN 8 -#define KVM_EXIT_FAIL_ENTRY 9 -#define KVM_EXIT_INTR 10 -#define KVM_EXIT_SET_TPR 11 -#define KVM_EXIT_TPR_ACCESS 12 -#define KVM_EXIT_S390_SIEIC 13 -#define KVM_EXIT_S390_RESET 14 -#define KVM_EXIT_DCR 15 /* deprecated */ -#define KVM_EXIT_NMI 16 -#define KVM_EXIT_INTERNAL_ERROR 17 -#define KVM_EXIT_OSI 18 -#define KVM_EXIT_PAPR_HCALL 19 -#define KVM_EXIT_S390_UCONTROL 20 -#define KVM_EXIT_WATCHDOG 21 -#define KVM_EXIT_S390_TSCH 22 -#define KVM_EXIT_EPR 23 -#define KVM_EXIT_SYSTEM_EVENT 24 -#define KVM_EXIT_S390_STSI 25 -#define KVM_EXIT_IOAPIC_EOI 26 -#define KVM_EXIT_HYPERV 27 -#define KVM_EXIT_ARM_NISV 28 -#define KVM_EXIT_X86_RDMSR 29 -#define KVM_EXIT_X86_WRMSR 30 -#define KVM_EXIT_DIRTY_RING_FULL 31 -#define KVM_EXIT_AP_RESET_HOLD 32 -#define KVM_EXIT_X86_BUS_LOCK 33 -#define KVM_EXIT_XEN 34 - -/* For KVM_EXIT_INTERNAL_ERROR */ -/* Emulate instruction failed. */ -#define KVM_INTERNAL_ERROR_EMULATION 1 -/* Encounter unexpected simultaneous exceptions. */ -#define KVM_INTERNAL_ERROR_SIMUL_EX 2 -/* Encounter unexpected vm-exit due to delivery event. */ -#define KVM_INTERNAL_ERROR_DELIVERY_EV 3 -/* Encounter unexpected vm-exit reason */ -#define KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON 4 - -/* Flags that describe what fields in emulation_failure hold valid data. */ -#define KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES (1ULL << 0) - -typedef uint32_t __u32; -typedef uint16_t __u16; -typedef uint8_t __u8; -typedef uint64_t __u64; - -struct kvm_userspace_memory_region { - uint32_t slot; // 要在哪个slot上注册内存区间 - // flags有两个取值,KVM_MEM_LOG_DIRTY_PAGES和KVM_MEM_READONLY,用来指示kvm针对这段内存应该做的事情。 - // KVM_MEM_LOG_DIRTY_PAGES用来开启内存脏页,KVM_MEM_READONLY用来开启内存只读。 - uint32_t flags; - uint64_t guest_phys_addr; // 虚机内存区间起始物理地址 - uint64_t memory_size; // 虚机内存区间大小 - uint64_t userspace_addr; // 虚机内存区间对应的主机虚拟地址 -}; +#include +//#include -struct kvm_regs { - /* out (KVM_GET_REGS) / in (KVM_SET_REGS) */ - uint64_t rax, rbx, rcx, rdx; - uint64_t rsi, rdi, rsp, rbp; - uint64_t r8, r9, r10, r11; - uint64_t r12, r13, r14, r15; - uint64_t rip, rflags; -}; +typedef __signed__ char __s8; +typedef unsigned char __u8; -struct kvm_segment { - uint64_t base; - uint32_t limit; - uint16_t selector; - uint8_t type; - uint8_t present, dpl, db, s, l, g, avl; - uint8_t unusable; - uint8_t padding; -}; +typedef __signed__ short __s16; +typedef unsigned short __u16; -struct kvm_dtable { - uint64_t base; - uint16_t limit; - uint16_t padding[3]; -}; +typedef __signed__ int __s32; +typedef unsigned int __u32; -struct kvm_sregs { - /* out (KVM_GET_SREGS) / in (KVM_SET_SREGS) */ - struct kvm_segment cs, ds, es, fs, gs, ss; - struct kvm_segment tr, ldt; - struct kvm_dtable gdt, idt; - uint64_t cr0, cr2, cr3, cr4, cr8; - uint64_t efer; - uint64_t apic_base; - uint64_t interrupt_bitmap[(256 + 63) / 64]; -}; +#ifdef __GNUC__ +__extension__ typedef __signed__ long long __s64; +__extension__ typedef unsigned long long __u64; +#else +typedef __signed__ long long __s64; +typedef unsigned long long __u64; +#endif +//from linux/kvm.h +#define KVM_CREATE_VM _IO(KVMIO, 0x01) /* returns a VM fd */ +#define KVM_CREATE_VCPU _IO(KVMIO, 0x41) +#define KVM_GET_VCPU_MMAP_SIZE _IO(KVMIO, 0x04) /* in bytes */ + +#define KVM_RUN _IO(KVMIO, 0x80) +#define KVM_GET_REGS _IOR(KVMIO, 0x81, struct kvm_regs) +#define KVM_SET_REGS _IOW(KVMIO, 0x82, struct kvm_regs) +#define KVM_GET_SREGS _IOR(KVMIO, 0x83, struct kvm_sregs) +#define KVM_SET_SREGS _IOW(KVMIO, 0x84, struct kvm_sregs) + +#define KVMIO 0xAE +#define KVM_SET_USER_MEMORY_REGION _IOW(KVMIO, 0x46, \ + struct kvm_userspace_memory_region) +/* Architectural interrupt line count. */ +#define KVM_NR_INTERRUPTS 256 struct kvm_hyperv_exit { #define KVM_EXIT_HYPERV_SYNIC 1 #define KVM_EXIT_HYPERV_HCALL 2 @@ -141,7 +70,21 @@ struct kvm_hyperv_exit { } syndbg; } u; }; - +struct kvm_debug_exit_arch { + __u32 exception; + __u32 pad; + __u64 pc; + __u64 dr6; + __u64 dr7; +}; +/* for KVM_SET_USER_MEMORY_REGION */ +struct kvm_userspace_memory_region { + __u32 slot; + __u32 flags; + __u64 guest_phys_addr; + __u64 memory_size; /* bytes */ + __u64 userspace_addr; /* start of the userspace allocated memory */ +}; struct kvm_xen_exit { #define KVM_EXIT_XEN_HCALL 1 __u32 type; @@ -155,6 +98,40 @@ struct kvm_xen_exit { } hcall; } u; }; +/* for KVM_GET_REGS and KVM_SET_REGS */ +struct kvm_regs { + /* out (KVM_GET_REGS) / in (KVM_SET_REGS) */ + __u64 rax, rbx, rcx, rdx; + __u64 rsi, rdi, rsp, rbp; + __u64 r8, r9, r10, r11; + __u64 r12, r13, r14, r15; + __u64 rip, rflags; +}; +struct my_kvm_segment { + __u64 base; + __u32 limit; + __u16 selector; + __u8 type; + __u8 present, dpl, db, s, l, g, avl; + __u8 unusable; + __u8 padding; +}; +struct kvm_dtable { + __u64 base; + __u16 limit; + __u16 padding[3]; +}; +/* for KVM_GET_SREGS and KVM_SET_SREGS */ +struct kvm_sregs { + /* out (KVM_GET_SREGS) / in (KVM_SET_SREGS) */ + struct my_kvm_segment cs, ds, es, fs, gs, ss; + struct my_kvm_segment tr, ldt; + struct kvm_dtable gdt, idt; + __u64 cr0, cr2, cr3, cr4, cr8; + __u64 efer; + __u64 apic_base; + __u64 interrupt_bitmap[(KVM_NR_INTERRUPTS + 63) / 64]; +}; /* for KVM_GET/SET_VCPU_EVENTS */ struct kvm_vcpu_events { @@ -189,7 +166,6 @@ struct kvm_vcpu_events { __u8 exception_has_payload; __u64 exception_payload; }; - /* kvm_sync_regs struct included by kvm_run struct */ struct kvm_sync_regs { /* Members of this structure are potentially malicious. @@ -202,61 +178,52 @@ struct kvm_sync_regs { struct kvm_vcpu_events events; }; - -struct kvm_debug_exit_arch { - __u32 exception; - __u32 pad; - __u64 pc; - __u64 dr6; - __u64 dr7; -}; - /* for KVM_RUN, returned by mmap(vcpu_fd, offset=0) */ struct kvm_run { /* in */ - uint8_t request_interrupt_window; - uint8_t immediate_exit; - uint8_t padding1[6]; + __u8 request_interrupt_window; + __u8 immediate_exit; + __u8 padding1[6]; /* out */ - uint32_t exit_reason; - uint8_t ready_for_interrupt_injection; - uint8_t if_flag; - uint16_t flags; + __u32 exit_reason; + __u8 ready_for_interrupt_injection; + __u8 if_flag; + __u16 flags; /* in (pre_kvm_run), out (post_kvm_run) */ - uint64_t cr8; - uint64_t apic_base; + __u64 cr8; + __u64 apic_base; #ifdef __KVM_S390 /* the processor status word for s390 */ - uint64_t psw_mask; /* psw upper half */ - uint64_t psw_addr; /* psw lower half */ + __u64 psw_mask; /* psw upper half */ + __u64 psw_addr; /* psw lower half */ #endif union { /* KVM_EXIT_UNKNOWN */ struct { - uint64_t hardware_exit_reason; + __u64 hardware_exit_reason; } hw; /* KVM_EXIT_FAIL_ENTRY */ struct { - uint64_t hardware_entry_failure_reason; - uint32_t cpu; + __u64 hardware_entry_failure_reason; + __u32 cpu; } fail_entry; /* KVM_EXIT_EXCEPTION */ struct { - uint32_t exception; - uint32_t error_code; + __u32 exception; + __u32 error_code; } ex; /* KVM_EXIT_IO */ struct { #define KVM_EXIT_IO_IN 0 #define KVM_EXIT_IO_OUT 1 - uint8_t direction; - uint8_t size; /* bytes */ - uint16_t port; - uint32_t count; - uint64_t data_offset; /* relative to kvm_run start */ + __u8 direction; + __u8 size; /* bytes */ + __u16 port; + __u32 count; + __u64 data_offset; /* relative to kvm_run start */ } io; /* KVM_EXIT_DEBUG */ struct { @@ -264,30 +231,30 @@ struct kvm_run { } debug; /* KVM_EXIT_MMIO */ struct { - uint64_t phys_addr; - uint8_t data[8]; - uint32_t len; - uint8_t is_write; + __u64 phys_addr; + __u8 data[8]; + __u32 len; + __u8 is_write; } mmio; /* KVM_EXIT_HYPERCALL */ struct { - uint64_t nr; - uint64_t args[6]; - uint64_t ret; - uint32_t longmode; - uint32_t pad; + __u64 nr; + __u64 args[6]; + __u64 ret; + __u32 longmode; + __u32 pad; } hypercall; /* KVM_EXIT_TPR_ACCESS */ struct { - uint64_t rip; - uint32_t is_write; - uint32_t pad; + __u64 rip; + __u32 is_write; + __u32 pad; } tpr_access; /* KVM_EXIT_S390_SIEIC */ struct { - uint8_t icptcode; - uint16_t ipa; - uint32_t ipb; + __u8 icptcode; + __u16 ipa; + __u32 ipb; } s390_sieic; /* KVM_EXIT_S390_RESET */ #define KVM_S390_RESET_POR 1 @@ -295,24 +262,24 @@ struct kvm_run { #define KVM_S390_RESET_SUBSYSTEM 4 #define KVM_S390_RESET_CPU_INIT 8 #define KVM_S390_RESET_IPL 16 - uint64_t s390_reset_flags; + __u64 s390_reset_flags; /* KVM_EXIT_S390_UCONTROL */ struct { - uint64_t trans_exc_code; - uint32_t pgm_code; + __u64 trans_exc_code; + __u32 pgm_code; } s390_ucontrol; /* KVM_EXIT_DCR (deprecated) */ struct { - uint32_t dcrn; - uint32_t data; - uint8_t is_write; + __u32 dcrn; + __u32 data; + __u8 is_write; } dcr; /* KVM_EXIT_INTERNAL_ERROR */ struct { - uint32_t suberror; + __u32 suberror; /* Available with KVM_CAP_INTERNAL_ERROR_DATA: */ - uint32_t ndata; - uint64_t data[16]; + __u32 ndata; + __u64 data[16]; } internal; /* * KVM_INTERNAL_ERROR_EMULATION @@ -327,73 +294,73 @@ struct kvm_run { * and sized (so that ndata+internal.data[] is valid/accurate). */ struct { - uint32_t suberror; - uint32_t ndata; - uint64_t flags; - uint8_t insn_size; - uint8_t insn_bytes[15]; + __u32 suberror; + __u32 ndata; + __u64 flags; + __u8 insn_size; + __u8 insn_bytes[15]; } emulation_failure; /* KVM_EXIT_OSI */ struct { - uint64_t gprs[32]; + __u64 gprs[32]; } osi; /* KVM_EXIT_PAPR_HCALL */ struct { - uint64_t nr; - uint64_t ret; - uint64_t args[9]; + __u64 nr; + __u64 ret; + __u64 args[9]; } papr_hcall; /* KVM_EXIT_S390_TSCH */ struct { - uint16_t subchannel_id; - uint16_t subchannel_nr; - uint32_t io_int_parm; - uint32_t io_int_word; - uint32_t ipb; - uint8_t dequeued; + __u16 subchannel_id; + __u16 subchannel_nr; + __u32 io_int_parm; + __u32 io_int_word; + __u32 ipb; + __u8 dequeued; } s390_tsch; /* KVM_EXIT_EPR */ struct { - uint32_t epr; + __u32 epr; } epr; /* KVM_EXIT_SYSTEM_EVENT */ struct { #define KVM_SYSTEM_EVENT_SHUTDOWN 1 #define KVM_SYSTEM_EVENT_RESET 2 #define KVM_SYSTEM_EVENT_CRASH 3 - uint32_t type; - uint64_t flags; + __u32 type; + __u64 flags; } system_event; /* KVM_EXIT_S390_STSI */ struct { - uint64_t addr; - uint8_t ar; - uint8_t reserved; - uint8_t fc; - uint8_t sel1; - uint16_t sel2; + __u64 addr; + __u8 ar; + __u8 reserved; + __u8 fc; + __u8 sel1; + __u16 sel2; } s390_stsi; /* KVM_EXIT_IOAPIC_EOI */ struct { - uint8_t vector; + __u8 vector; } eoi; /* KVM_EXIT_HYPERV */ struct kvm_hyperv_exit hyperv; /* KVM_EXIT_ARM_NISV */ struct { - uint64_t esr_iss; - uint64_t fault_ipa; + __u64 esr_iss; + __u64 fault_ipa; } arm_nisv; /* KVM_EXIT_X86_RDMSR / KVM_EXIT_X86_WRMSR */ struct { - uint8_t error; /* user -> kernel */ - uint8_t pad[7]; + __u8 error; /* user -> kernel */ + __u8 pad[7]; #define KVM_MSR_EXIT_REASON_INVAL (1 << 0) #define KVM_MSR_EXIT_REASON_UNKNOWN (1 << 1) #define KVM_MSR_EXIT_REASON_FILTER (1 << 2) - uint32_t reason; /* kernel -> user */ - uint32_t index; /* kernel -> user */ - uint64_t data; /* kernel <-> user */ + __u32 reason; /* kernel -> user */ + __u32 index; /* kernel -> user */ + __u64 data; /* kernel <-> user */ } msr; /* KVM_EXIT_XEN */ struct kvm_xen_exit xen; @@ -412,60 +379,51 @@ struct kvm_run { * struct kvm_sync_regs is architecture specific, as well as the * bits for kvm_valid_regs and kvm_dirty_regs */ - uint64_t kvm_valid_regs; - uint64_t kvm_dirty_regs; + __u64 kvm_valid_regs; + __u64 kvm_dirty_regs; union { struct kvm_sync_regs regs; char padding[SYNC_REGS_SIZE_BYTES]; } s; }; -#define KVM_CREATE_VM 0xAE01 -#define KVM_CREATE_VCPU 0xAE41 -#define KVM_SET_USER_MEMORY_REGION 0xAE46 -#define KVM_GET_VCPU_MMAP_SIZE 0xAE04 -#define KVM_GET_REGS 0xAE81 -#define KVM_SET_REGS 0xAE82 -#define KVM_GET_SREGS 0xAE83 -#define KVM_SET_SREGS 0xAE84 -#define KVM_RUN 0xAE80 - -int kvm(uint8_t code[], size_t code_len) { - // step 1, open /dev/kvm - int kvmfd = open("/dev/kvm", O_RDWR|O_CLOEXEC); - if(kvmfd == -1) { +int kvm(uint8_t code[], size_t code_len) +{ + // step 1, open /dev/kvm + int kvmfd = open("/dev/kvm", O_RDWR | O_CLOEXEC); + if (kvmfd == -1) + { printf("failed to open /dev/kvm\n"); return 0; } // step 2, create VM int vmfd = ioctl(kvmfd, KVM_CREATE_VM, 0); - printf("vmfd %d\n",vmfd); + printf("vmfd %d\n", vmfd); // step 3, set up user memory region - size_t mem_size = 0x4000; // size of user memory you want to assign - void *mem = mmap(0, mem_size, PROT_READ|PROT_WRITE, - MAP_SHARED|MAP_ANONYMOUS, -1, 0); + size_t mem_size = 0x10000; // size of user memory you want to assign + void *mem = mmap(0, mem_size, PROT_READ | PROT_WRITE, + MAP_SHARED | MAP_ANONYMOUS, -1, 0); - printf("map mem %p\n",mem); + printf("map mem %p\n", mem); int user_entry = 0x0; - memcpy((void*)((size_t)mem + user_entry), code, code_len); + memcpy((void *)((size_t)mem + user_entry), code, code_len); struct kvm_userspace_memory_region region = { - .slot = 0, - .flags = 0, - .guest_phys_addr = 0, - .memory_size = mem_size, - .userspace_addr = (size_t)mem - }; + .slot = 0, + .flags = 0, + .guest_phys_addr = 0, + .memory_size = mem_size, + .userspace_addr = (size_t)mem}; ioctl(vmfd, KVM_SET_USER_MEMORY_REGION, ®ion); /* end of step 3 */ // step 4, create vCPU int vcpufd = ioctl(vmfd, KVM_CREATE_VCPU, 0); - + printf("create vcpu,fd: %p\n", vcpufd); // step 5, set up memory for vCPU size_t vcpu_mmap_size = ioctl(kvmfd, KVM_GET_VCPU_MMAP_SIZE, NULL); - struct kvm_run* run = (struct kvm_run*) mmap(0, vcpu_mmap_size, PROT_READ | PROT_WRITE, MAP_SHARED, vcpufd, 0); + struct kvm_run *run = (struct kvm_run *)mmap(0, vcpu_mmap_size, PROT_READ | PROT_WRITE, MAP_SHARED, vcpufd, 0); // step 6, set up vCPU's registers /* standard registers include general-purpose registers and flags */ @@ -481,26 +439,67 @@ int kvm(uint8_t code[], size_t code_len) { ioctl(vcpufd, KVM_GET_SREGS, &sregs); sregs.cs.base = sregs.cs.selector = 0; // let base of code segment equal to zero ioctl(vcpufd, KVM_SET_SREGS, &sregs); - - // step 7, execute vm and handle exit reason - while (1) { + ioctl(vcpufd, KVM_GET_SREGS, &sregs); + // step 7, execute vm and handle exit reason + #define KVM_EXIT_UNKNOWN 0 +#define KVM_EXIT_EXCEPTION 1 +#define KVM_EXIT_IO 2 +#define KVM_EXIT_HYPERCALL 3 +#define KVM_EXIT_DEBUG 4 +#define KVM_EXIT_HLT 5 +#define KVM_EXIT_MMIO 6 +#define KVM_EXIT_IRQ_WINDOW_OPEN 7 +#define KVM_EXIT_SHUTDOWN 8 +#define KVM_EXIT_FAIL_ENTRY 9 +#define KVM_EXIT_INTR 10 +#define KVM_EXIT_SET_TPR 11 +#define KVM_EXIT_TPR_ACCESS 12 +#define KVM_EXIT_S390_SIEIC 13 +#define KVM_EXIT_S390_RESET 14 +#define KVM_EXIT_DCR 15 /* deprecated */ +#define KVM_EXIT_NMI 16 +#define KVM_EXIT_INTERNAL_ERROR 17 +#define KVM_EXIT_OSI 18 +#define KVM_EXIT_PAPR_HCALL 19 +#define KVM_EXIT_S390_UCONTROL 20 +#define KVM_EXIT_WATCHDOG 21 +#define KVM_EXIT_S390_TSCH 22 +#define KVM_EXIT_EPR 23 +#define KVM_EXIT_SYSTEM_EVENT 24 +#define KVM_EXIT_S390_STSI 25 +#define KVM_EXIT_IOAPIC_EOI 26 +#define KVM_EXIT_HYPERV 27 +#define KVM_EXIT_ARM_NISV 28 +#define KVM_EXIT_X86_RDMSR 29 +#define KVM_EXIT_X86_WRMSR 30 +#define KVM_EXIT_DIRTY_RING_FULL 31 +#define KVM_EXIT_AP_RESET_HOLD 32 +#define KVM_EXIT_X86_BUS_LOCK 33 +#define KVM_EXIT_XEN 34 + while (1) + { ioctl(vcpufd, KVM_RUN, NULL); - switch (run->exit_reason) { + ioctl(vcpufd, KVM_GET_SREGS, &sregs); + printf("Guest CR3: 0x%llx\n", sregs.cr3); + switch (run->exit_reason) + { case KVM_EXIT_HLT: - fputs("KVM_EXIT_HLT", stderr); + fputs("KVM_EXIT_HLT \n", stderr); return 0; case KVM_EXIT_IO: /* TODO: check port and direction here */ putchar(*(((char *)run) + run->io.data_offset)); + printf("KVM_EXIT_IO: run->io.port = %lx \n", + run->io.port); break; case KVM_EXIT_FAIL_ENTRY: - printf("KVM_EXIT_FAIL_ENTRY: hardware_entry_failure_reason = 0x%lx", - run->fail_entry.hardware_entry_failure_reason); - return 0; + printf("KVM_EXIT_FAIL_ENTRY: hardware_entry_failure_reason = 0x%lx", + run->fail_entry.hardware_entry_failure_reason); + return 0; case KVM_EXIT_INTERNAL_ERROR: - printf("KVM_EXIT_INTERNAL_ERROR: suberror = 0x%x", - run->internal.suberror); - return 0; + printf("KVM_EXIT_INTERNAL_ERROR: suberror = 0x%x", + run->internal.suberror); + return 0; case KVM_EXIT_SHUTDOWN: printf("KVM_EXIT_SHUTDOWN"); return 0; @@ -511,10 +510,28 @@ int kvm(uint8_t code[], size_t code_len) { } } -int main() { - uint8_t code[] = "\xB0\x61\xBA\x17\x02\xEE\xB0\n\xEE\xF4"; - kvm(code, sizeof(code)); - return 0; -} + /*汇编指令解释 +0xB0 0x61 (mov al, 0x61) + +解释:将立即数 0x61(ASCII 字符 'a')加载到 AL 寄存器中。 +0xBA 0x17 0x02 (mov dx, 0x0217) + +解释:将立即数 0x0217 加载到 DX 寄存器中。 +0xEE (out dx, al) - \ No newline at end of file +解释:将 AL 寄存器的值输出到 DX 寄存器指定的端口。 +0xB0 0x0A (mov al, 0x0A) + +解释:将立即数 0x0A(换行符)加载到 AL 寄存器中。 +0xEE (out dx, al) + +解释:将 AL 寄存器的值输出到 DX 寄存器指定的端口。 +0xF4 (hlt) + +解释:执行 hlt 指令,使处理器进入休眠状态,直到下一个外部中断到来。*/ +int main() +{ + uint8_t code[] = "\xB0\x61\xBA\x17\x02\xEE\xB0\n\xEE\xF4"; + kvm(code, sizeof(code)); + return 0; +} From 3abe842c23d033121d4685cd4e4b31911129aa40 Mon Sep 17 00:00:00 2001 From: BrahmaMantra <2033552517@qq.com> Date: Fri, 29 Nov 2024 22:45:45 +0800 Subject: [PATCH 11/18] fixme --- .gitignore | 2 - fixme/Dragonos.md | 111 ++++++++++++ fixme/fixme.md | 58 +++++++ fixme/image-1.png | Bin 0 -> 112467 bytes fixme/image-2.png | Bin 0 -> 164920 bytes fixme/image-3.png | Bin 0 -> 212168 bytes fixme/image-4.png | Bin 0 -> 202180 bytes fixme/image-5.png | Bin 0 -> 71591 bytes fixme/image-6.png | Bin 0 -> 329926 bytes fixme/image-7.png | Bin 0 -> 148314 bytes fixme/image.png | Bin 0 -> 184573 bytes fixme/mylinux.md | 158 ++++++++++++++++++ fixme/question.md | 25 +++ kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs | 2 +- kernel/src/arch/x86_64/vm/vmx/capabilities.rs | 4 +- kernel/src/arch/x86_64/vm/vmx/ept/mod.rs | 93 +++++++---- kernel/src/arch/x86_64/vm/vmx/mod.rs | 7 +- 17 files changed, 424 insertions(+), 36 deletions(-) create mode 100644 fixme/Dragonos.md create mode 100644 fixme/fixme.md create mode 100644 fixme/image-1.png create mode 100644 fixme/image-2.png create mode 100644 fixme/image-3.png create mode 100644 fixme/image-4.png create mode 100644 fixme/image-5.png create mode 100644 fixme/image-6.png create mode 100644 fixme/image-7.png create mode 100644 fixme/image.png create mode 100644 fixme/mylinux.md create mode 100644 fixme/question.md diff --git a/.gitignore b/.gitignore index 35e16adf9..52e685b56 100644 --- a/.gitignore +++ b/.gitignore @@ -20,5 +20,3 @@ Cargo.lock .cache compile_commands.json /logs/ - -fixme/ diff --git a/fixme/Dragonos.md b/fixme/Dragonos.md new file mode 100644 index 000000000..69afb87a7 --- /dev/null +++ b/fixme/Dragonos.md @@ -0,0 +1,111 @@ +EPT_VIOLATION遇到问题: +1. 编译linux内核源码,匹配相同流程的vcpu Vmcs的差异,发现某些error_code和bits对不上 +[ DEBUG ] (src/arch/x86_64/vm/mmu/mmu_internal.rs:323) +KvmPageFault { + addr: PhysAddr(0x0), + error_code: 17,//0x11 多了RWX_MASK + prefetch: false, + exec: true, + write: false, + present: true, + rsvd: false, + user: false, + is_tdp: true, + nx_huge_page_workaround_enabled: false, + huge_page_disallowed: false, max_level: 3, + req_level: 1, + goal_level: 1, + gfn: 0, + slot: + Some(LockedKvmMemSlot { inner: RwLock { lock: 0, data: UnsafeCell { .. } } }), mmu_seq: 0, pfn: 111275, hva: 65536, map_writable: false, write_fault_to_shadow_pgtable: false } + +[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:359) vmexit handler: VMEXIT_INSTR_LEN: 0x3! +[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:363) vmexit handler: VMEXIT_INSTR_INFO: 0x0! +[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:381) vmexit handler: EXCEPTION_BITMAP: 0x64042! +[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:385) vmexit handler: PAGE_FAULT_ERR_CODE_MASK: 0x9! +[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:389) vmexit handler: PAGE_FAULT_ERR_CODE_MATCH: 0x1! +[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:393) vmexit handler: EPTP_LIST_ADDR_FULL: 0x0! +[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:396) vmexit handler: VM_INSTRUCTION_ERROR: 0x1c! +[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:399) vmexit handler: EXIT_REASON: 48! //EPT VIOLATION +[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:402) vmexit handler: VMEXIT_INTERRUPTION_INFO: 0x0! +[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:405) vmexit handler: VMEXIT_INTERRUPTION_ERR_CODE: 0x0! +[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:408) vmexit handler: IDT_VECTORING_INFO: 0x0! +[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:411) vmexit handler: IDT_VECTORING_ERR_CODE: 0x0! +[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:414) vmexit handler: VMEXIT_INSTRUCTION_LEN: 0x3! +[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:417) vmexit handler: VMEXIT_INSTRUCTION_INFO: 0x0! + + + vmx_update_host_rsp + vmx_spec_ctrl_restore_host todo! + VMCS addr: 0xffff80001b2cf000, last attempted VM-entry on CPU ProcessorId(0) +*** Guest State *** +$ CR0: actual = 0x30 11 0000 + Bit 4 (ET - Extension Type): 1,指示协处理器的类型(x87 协处理器)。 + Bit 5 (NE - Numeric Error): 1,控制浮点异常的处理。 + , shadow = 0x60000010, gh_mask = 0xe0040037 +$ CR4: actual = 0x2000 + VMXE (bit 13): 设置为 1,代表启用VMX + , shadow = 0x0, gh_mask = 0x767871 +$ CR3: actual = 0x0 +$ PDPTR0 = 0x0, PDPTR1 = 0x0 +$ PDPTR2 = 0x0, PDPTR3 = 0x0 + RSP = 0x200000, RIP = 0x7d # 为什么有值 +$ RFLAGS = 0x10002, DR7 = 0x400 +$ Sysenter RSP = 0x0, CS:RIP = 0x0:0x0 + CS: sel = 0x0, attr = 0x93, limit = 0xffff, base = 0x0 + DS: sel = 0x0, attr = 0x9b, limit = 0xffff, base = 0x0 +$ SS: sel = 0x0, attr = 0x93, limit = 0xffff, base = 0x0 +$ ES: sel = 0x0, attr = 0x93, limit = 0xffff, base = 0x0 +$ FS: sel = 0x0, attr = 0x93, limit = 0xffff, base = 0x0 +$ GS: sel = 0x0, attr = 0x93, limit = 0xffff, base = 0x0 +$ GDTR: limit = 0xffff, base = 0x0 +$ LDTR: sel = 0x0, attr = 0x82, limit = 0xffff, base = 0x0 +$ IDTR: limit = 0xffff, base = 0x0 +$ TR: sel = 0x0, attr = 0x8b, limit = 0xffff, base = 0x0 +$ EFER = 0x0 + PAT = 0x0 +$ DebugCtl = 0x0, DebugExceptions = 0x0 +$ Interruptibility = 0x0, ActivityState = 0x0 + +*** Host State *** +$ RIP = 0xffff80000100b06e, RSP = 0xffff80001a9df988 + CS = 0x8, SS = 0x28, DS = 0x0, ES = 0x0, FS = 0x0, GS = 0x0, TR = 0x50 + FSBase = 0x408778, GSBase = 0x0, TRBase = 0xffff800001ee3078 + GDTBase = 0xffff800000137010, IDTBase = 0xffff80000013738c + CR0 = 0x80000033 10000000000000000000000000110011 + PE (bit 0): 设置为 1,启用保护模式。 + MP (bit 1): 设置为 1,控制协处理器的操作。 + ET (bit 4): 设置为 1,表示系统使用的是387浮点协处理器 + NE (bit 5): 控制浮点异常的处理。 + PG (bit 31): 设置为 1,启用分页。 + +$ , CR3 = 0x1a968000, + CR4 = 0x2620 10011000100000 + PAE (Physical Address Extension, bit 5): 启用物理地址扩展。 + OSFXSR (Operating System Support for FXSAVE and FXRSTOR instructions, bit 9):。启用操作系统对 FXSAVE 和 FXRSTOR 指令的支持。 + OSXMMEXCPT (Operating System Support for Unmasked SIMD Floating-Point Exceptions, bit 10),启用操作系统对未屏蔽的 SIMD 浮点异常的支持。 + VMXE (VMX Enable, bit 13): 启用 VMX(虚拟机扩展)。 + Sysenter RSP = 0x0, CS:RIP=0x0:0x0 + EFER = 0x501 + PAT = 0x7040600070406 # 这在linux是Guest PAT + +*** Control State *** + CPUBased = USE_TSC_OFFSETTING 3 | HLT_EXITING 7 | MWAIT_EXITING 10| RDPMC_EXITING 11 | CR8_LOAD_EXITING 16| CR8_STORE_EXITING 19 | UNCOND_IO_EXITING 24 | USE_MSR_BITMAPS 28| MONITOR_EXITING 29 | SECONDARY_CONTROLS 31, + + 10110001000010010000110010001000 b1090c88 + + SecondaryExec = 0x8ea, +$ TertiaryExec = 0(Unused) + + PinBased = EXTERNAL_INTERRUPT_EXITING 0 | NMI_EXITING 3 | VIRTUAL_NMIS 5, 101000 0x28 + + EntryControls = LOAD_DEBUG_CONTROLS 2 | LOAD_IA32_PAT 14 | LOAD_IA32_EFER 15, 1100000000000100 c004 + ExitControls = SAVE_DEBUG_CONTROLS 2 | HOST_ADDRESS_SPACE_SIZE 9 | ACK_INTERRUPT_ON_EXIT 15 | LOAD_IA32_PAT 19 | LOAD_IA32_EFER 21 0x288204 +$ ExceptionBitmap = 0x60042, PFECmask = 0x0, PFECmatch = 0x0 +$ VMEntry: intr_info = 0x0, errcode = 0x0, ilen = 0x0 + VMExit: intr_info = 0x0, errcode = 0x0, ilen = 0x3 # ?? + reason = 0x30, qualification = 0x182 + IDTVectoring: info = 0x8000030d, errcode = 0x0 + TSC Offset = 0x0 +$ EPT pointer = 0x1b2e901e //少了huge page + Virtual processor ID = 0x1 \ No newline at end of file diff --git a/fixme/fixme.md b/fixme/fixme.md new file mode 100644 index 000000000..0bc86020a --- /dev/null +++ b/fixme/fixme.md @@ -0,0 +1,58 @@ +### fixme: +PageLevel的类型 +MTRR 是 x86 架构中的一组寄存器,用于控制不同内存区域的缓存属性。通过配置 MTRR,可以优化系统性能和兼容性。操作系统在启动时通常会配置 MTRR,以确保不同内存区域具有适当的缓存属性。 + +初次EPT_VIOLATION的时候,gpa=0,要建立从gpa到hpa的映射,也就是ept映射,处理完各个寄存器以及mmu等状态后 +- do_page_fault 初始化page_fault信息,能知道gfn + +- gfn_to_memslot 找到包含 gfn 的 memslot 的指针,放在page_fault.slot里面 + +- __gfn_to_hva_many 得到hva(照着之前的kvm写的)(要用到page_fault的slot) + +- hva_to_pfn 得到pfn,可以说相当于知道了hpa(照着之前的kvm写的),放在 page_fault.pfn里面 + +找到ept root物理地址 kernel/src/arch/x86_64/mm/mod.rs:184 + +### 疑问? +- 内核里面应该有相似的多级页表查询/映射的机制,是不是可以借鉴或者复用 kernel/src/mm/page.rs:712 kvm:kernel/src/arch/x86_64/kvm/vmx/ept.rs:91 + +- 我感觉得到ept root 物理地址(不知道存哪了,可能在真正要)后,按照索引在ept页表往下查,然后缺页就alloc块给它然后加入页表建立映射(gpa->hpa),直到找到目标层的level,[linux实现](https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/mmu/tdp_mmu.c?fi=kvm_tdp_mmu_map#952) + +- __va和virt_2_phys是一样的吗? + +- mm.h的作用 + + +### Debug +tdp_page_fault :at src/arch/x86_64/vm/mmu/mmu_internal.rs:233 +enter_guest : at src/arch/x86_64/vm/kvm_host/vcpu.rs:840 +handle_ept_violation :at src/arch/x86_64/vm/vmx/exit.rs:278 +try_handle_exit: at kernel/src/arch/x86_64/vm/vmx/exit.rs:250 +vmlaunch : at kernel/src/arch/x86_64/vm/vmx/vmenter.S:103 +page fault :kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs:105 + +kernel/src/mm/kernel_mapper.rs +tdp_map: b kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs:310 +debug : b kernel/src/arch/x86_64/vm/vmx/exit.rs:416 +debug_eptp :b kernel/src/arch/x86_64/vm/vmx/ept/mod.rs:400 + +exit_qualification 0x184 +error_code 0x100000011 + +VMEXIT_INSTR_LEN = 0x3 +VMEXIT_INSTR_INFO = 0x0 +PAGE_FAULT_ERR_CODE_MASK = 0x9 +PAGE_FAULT_ERR_CODE_MATCH = 0x1 +EPTP_LIST_ADDR_FULL = 0x0 + +EXCEPTION_BITMAP = 0x64042 +VM_INSTRUCTION_ERROR = 0x1c + + +x/16x 0xffff8000 +![alt text](image-7.png) +![alt text](image-6.png) +![alt text](image-2.png) +![alt text](image-3.png) +![alt text](image-4.png) +![alt text](image-5.png) \ No newline at end of file diff --git a/fixme/image-1.png b/fixme/image-1.png new file mode 100644 index 0000000000000000000000000000000000000000..b0f257ddf875858c0d2580b01f3deae5475a3e41 GIT binary patch literal 112467 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�cV${ZZW)d_25}TeNrr54{ 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 Mv78#TM8-V$KPTT}E&u=k literal 0 HcmV?d00001 diff --git a/fixme/image-3.png b/fixme/image-3.png new file mode 100644 index 0000000000000000000000000000000000000000..00af2b4862913e78f217fdf0781373dfc8cb3e56 GIT binary patch literal 212168 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

mA5;A_LIsk5}7B{ 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

uAd?1 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 z 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

^C~ z-O~a1zFDvZS@L2BdMk_-5ODw>s4v0NCp%qia{f16FE>@n+S(X@jArC=glADWR~z>F z(0aZDy=psvT+#_5%C%lYD_?VD>V}N+tJdPqt(#i1uG+6^fy(I2T=p`pU{dLvN*una zsL;@vYF;nLMQq1Cw30(siC^%*z%@o!$`0g;j|mj;XkUQa?urw+Q(vN(Vd{{&5FQ0n zke%F%SItnD_^FJc9J=)?9<9j0E4YjDCzN118MN|+uaVs*ckZZIT-OayigHC`!afDD z6_sLCTqm>3CQES79b=UW1aRFnzOcLjcLBJ0e@M;>+!G*cHoyM~YpcH}1i8*+A4Vz=UDU3pJu#5U< zM3}C{BM2SqlAppb*|c#VcYTCTAc3bXX^`Fzci{L43Od+ji8SACfXyn@T3Zy2^PZ4M zQS$589Kd;o7lPGEO0+}N?+Op|nk;0tjuNB?E4V-6%v8TWc3FAz`RdDPXKO@aF*$^Y zVAtr|TXsD!thU^?cX7Txi9r8z@k`Z1T__wYn*_&FXj+2>^op)DNA__*q=l$F+!keP z5tvy+TDG;nIwPi2tUEDD5msB7%U0UN?U%xOVF6((2OwgKkB@tn#NYRm{&S&0r=r|9 zo8{zwCMIEX;yC{^qUrRchmD?|U*$Yw;OZ9hzT63M#Be-QtfI2$Rs=1oVMU$e+7M(( zy8Pv5)=LSp7N}D?qxT#A5eEP0`rhyv$x6M8qRrJ>><2B;AsmG(!9==n2T`W|sdLA7#aH0~0Q`vlZd6_&POIK6-;)}pqC{9#)(0QjI#Nl|rV>*!@ zDlP-Et(mDS&J5VBCyIf<53w?LEBf5R#Ky+al#Bvaf9^C%fvW-2!||-d>97D1V$pkz zJg`WiD{~=M>$l#?I>d0NCKf9p&HAV2VEQd9LHPvWH^|EFE8^W%&jYYb%YyElrJ$&G zOV#dOw=0&=eO4ca8HHcjrKP20CsK>0sXk72f(HIfl%@`+_m!N05JYCN!=IOM#eB(hV9P#~Iz|K>_yp8;{av<$^ zXe6_;S`iCLA|?mPK+#*w7a6u)ORv`q&sxo$*LKP%5Sjh0(6)*KHjmEJs5h7_8SO8x zQR8(OGkvO7YBjFmu^jI6=)m&3cGnG%jnk4xP4$A!n@3cKBJ_wE?POR!z{XZ}Zo zxS=opx&sqB!A9X13$6R*WR0Yi-HzwMjqjXo3z=t}5FCM*KtSA&0U1SyjRZUpMZ45c z72eC~nw8g~r%x21&Dg34DC^ktLxtA$3RYCM3cI8 ztCaI3hI_PBj<>%$BO{9bIV{xq7n~lVSjb`Ccry?iBN*V{ju~*KM8=>E>nqmxD4O*6 zoc=(Ioa;Eo*yu!g6TpuAk2sF6DCnnK53qHqPn>>oRU*=Dx zb-7Q|R=5jnt}7i|^JAQ_+DkzNv{1VmX2hH`EoA^1mz(TMxg|$_`C-uIBHqzNzOTyd zjWg8J3#8PmD4PF@Ma~yclnKHsTdc%tFt#4lXDa7zJ%M`(QuQdF0jE2}8bEok@~3r} ze6Gd1OGs@ot`8Zu=?IEzrA{c4w(b%P+%@40;!IHPUCzeDt0*cU!->Wr8CS3_rz@=I z*pw@g+>`Y^gXnci${^Hf%Fa+jJyJ`m>+X5%Ow~!)B-3@`GmSbt{M|6F|H}mcze#v; zB5NZFcK8#GyBD z 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%0D{is7vpCJYv;-6K_|j`~q|=6;^|7xn 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 z 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 V2O)66k-U4mR1^U6)w1Tn{|iOg*+2jQ literal 0 HcmV?d00001 diff --git a/fixme/image-7.png b/fixme/image-7.png new file mode 100644 index 0000000000000000000000000000000000000000..c405fd4f021048d99998f0045dfae06aa614b276 GIT binary patch literal 148314 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
  • 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 literal 0 HcmV?d00001 diff --git a/fixme/image.png b/fixme/image.png new file mode 100644 index 0000000000000000000000000000000000000000..a9bf0cf9cc92280dd1d89d2250aa23199d5d99bf GIT binary patch literal 184573 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

    9$O9EjUQ#wL~l1q2Yr03X9+na4^}@6cT*?$MUp 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 literal 0 HcmV?d00001 diff --git a/fixme/mylinux.md b/fixme/mylinux.md new file mode 100644 index 000000000..56afac156 --- /dev/null +++ b/fixme/mylinux.md @@ -0,0 +1,158 @@ + +Hello MyLinux +sh: can't access tty; job control turned off +(kernel) =>./my_test_kvm_static +vmfd 4 +map mem 0x75735e279000 +KVM_SET_USER_MEMORY_REGION 0x4020ae46 +[ 7.189916] VM Exit Reason: 1 //External interrupt +[ 7.190102] exit_handler_index: 1 +[ 7.190287] EPT pointer = 0xfffffc000661205e +[ 7.190543] VM Exit Reason: 0x30//48::EPT VIOLATION +[ 7.190719] exit_handler_index: 30 +[ 7.190913] EPT pointer = 0xfffffc000661205e + +[ 2.265187] kvm_page_fault: +[ 2.265371] addr: 0x0 +[ 2.265516] error_code: 0x10 +[ 2.265685] exec: 1 +[ 2.265812] write: 0 +[ 2.265942] present: 0 +[ 2.266089] rsvd: 0 +[ 2.266216] user: 0 +[ 2.266348] prefetch: 0 +[ 2.266491] is_tdp: 1 +[ 2.266623] nx_huge_page_workaround_enabled: 0 +[ 2.266868] max_level: 3 +[ 2.267012] req_level: 1 +[ 2.267156] gfn: 0 +[ 2.267274] pfn: 12747 +[ 2.267410] hva: 132350336286720 + +[ 2.267615] kvm_page_fault: +[ 2.267774] addr: 0x0 +[ 2.267914] error_code: 0x10 +[ 2.268084] exec: 1 +[ 2.268216] write: 0 +[ 2.268351] present: 0 +[ 2.268504] rsvd: 0 +[ 2.268640] user: 0 +[ 2.268777] prefetch: 0 +[ 2.268928] is_tdp: 1 +[ 2.269086] nx_huge_page_workaround_enabled: 0 +[ 2.269335] max_level: 3 +[ 2.269561] req_level: 1 +[ 2.269709] gfn: 0 +[ 2.269851] pfn: 12747 +[ 2.270009] hva: 132350336286720 + +[ 7.193373] VM Exit Reason: 1e +[ 7.193557] exit_handler_index: 1e +[ 7.193766] EPT pointer = 0xfffffc000661205e +Guest CR3: 0x0 +run->exit_reason= 0x2 +a +KVM_EXIT_IO: run->io.port = 217 +[ 7.194568] VM Exit Reason: 1e +[ 7.194750] exit_handler_index: 1e +[ 7.194949] EPT pointer = 0xfffffc000661205e +Guest CR3: 0x0 +run->exit_reason= 0x2 + +KVM_EXIT_IO: run->io.port = 217 +[ 7.195757] VM Exit Reason: c +[ 7.195935] exit_handler_index: c +[ 7.196121] EPT pointer = 0xfffffc000661205e +Guest CR3: 0x0 +run->exit_reason= 0x5 +KVM_EXIT_HLT +(kernel) => + + + 33.881551] VMCS 000000008e180ab4, last attempted VM-entry on CPU 0 +[ 34.439920] *** Guest State *** +[ 34.440253] CR0: actual=0x0000000000000030, shadow=0x0000000060000010, gh_mask=fffffffffffefff7 +[ 34.441171] CR4: actual=0x0000000000002040, shadow=0x0000000000000000, gh_mask=fffffffffffef871 +[ 34.442096] CR3 = 0x0000000000000000 +[ 34.442499] PDPTR0 = 0x0000000000000000 PDPTR1 = 0x0000000000000000 +[ 34.443180] PDPTR2 = 0x0000000000000000 PDPTR3 = 0x0000000000000000 +[ 34.443870] RSP = 0x0000000000200000 RIP = 0x0000000000000000 +[ 34.444512] RFLAGS=0x00010002 DR7 = 0x0000000000000400 + +[ 34.445132] Sysenter RSP=0000000000000000 CS:RIP=0000:0000000000000000 +[ 34.445833] CS: sel=0x0000, attr=0x0009b, limit=0x0000ffff, base=0x0000000000000000 +[ 34.446675] DS: sel=0x0000, attr=0x00093, limit=0x0000ffff, base=0x0000000000000000 +[ 34.447520] SS: sel=0x0000, attr=0x00093, limit=0x0000ffff, base=0x0000000000000000 +[ 34.448348] ES: sel=0x0000, attr=0x00093, limit=0x0000ffff, base=0x0000000000000000 +[ 34.449169] FS: sel=0x0000, attr=0x00093, limit=0x0000ffff, base=0x0000000000000000 +[ 34.449990] GS: sel=0x0000, attr=0x00093, limit=0x0000ffff, base=0x0000000000000000 +[ 34.450810] GDTR: limit=0x0000ffff, base=0x0000000000000000 +[ 34.451634] LDTR: sel=0x0000, attr=0x00082, limit=0x0000ffff, base=0x0000000000000000 +[ 34.452453] IDTR: limit=0x0000ffff, base=0x0000000000000000 + +[ 34.453268] TR: sel=0x0000, attr=0x0008b, limit=0x0000ffff, base=0x0000000000000000 +[ 34.454076] EFER= 0x0000000000000000 +[ 34.454466] PAT = 0x0007040600070406 +[ 34.454852] DebugCtl = 0x0000000000000000 DebugExceptions = 0x0000000000000000 +[ 34.455615] Interruptibility = 00000000 ActivityState = 00000000 + +[ 33.892855] *** Host State *** +[ 33.893027] RIP = 0xffffffff8203c8ee RSP = 0xffffc90000657c48 +[ 33.893376] CS=0010 SS=0018 DS=0000 ES=0000 FS=0000 GS=0000 TR=0040 +[ 33.893721] FSBase=0000000031a743c0 GSBase=ffff88803ea00000 TRBase=fffffe0000003000 +[ 33.894132] GDTBase=fffffe0000001000 IDTBase=fffffe0000000000 +[ 33.894443] CR0=0000000080050033 1000 0000 0000 0101 0000 0000 0011 0011 + +Bit 0 (PE - Protection Enable): 1,启用保护模式。 +Bit 1 (MP - Monitor Coprocessor): 1,控制协处理器的操作。 +Bit 4 (ET - Extension Type): 1,指示协处理器的类型(x87 协处理器)。 +Bit 5 (NE - Numeric Error): 1,控制浮点异常的处理。 +Bit 16 (WP - Write Protect): 1,控制用户模式下对只读页面的写入保护。 +Bit 18 (AM - Alignment Mask): 1,控制对齐检查。 +Bit 31 (PG - Paging): 1,启用分页。 + +CR3=00000000063fe000 + CR4=0000000000752ef0 0111 0101 0010 1110 1111 0000 + Bit 4 (PSE - Page Size Extensions): 1,启用页大小扩展。 + Bit 5 (PAE - Physical Address Extension): 1,启用物理地址扩展。 + Bit 6 (MCE - Machine Check Enable): 1,启用机器检查。 + Bit 7 (PGE - Page Global Enable): 1,启用全局页。 + Bit 9 (OSFXSR - Operating System Support for FXSAVE and FXRSTOR instructions): 1启用操作系统对 FXSAVE 和 FXRSTOR 指令的支持。 + Bit 10 (OSXMMEXCPT - Operating System Support for Unmasked SIMD Floating-Point Exceptions): 1,启用操作系统对未屏蔽的 SIMD 浮点异常的支持。 + Bit 11 (UMIP - User-Mode Instruction Prevention): 0,未启用用户模式指令预防。 + Bit 13 (VMXE - VMX Enable): 1,启用 VMX(虚拟机扩展)。 + Bit 16 (FSGSBASE - Enable RDFSBASE, WRFSBASE, RDGSBASE, WRGSBASE instructions): 1,启用 RDFSBASE, WRFSBASE, RDGSBASE, WRGSBASE 指令。 + Bit 18 (OSXSAVE - XSAVE and Processor Extended States Enable): 1,启用 XSAVE 和处理器扩展状态。 + Bit 20 (SMEP - Supervisor Mode Execution Protection): 1,启用监督模式执行保护。 + Bit 21 (SMAP - Supervisor Mode Access Prevention): 1,启用监督模式访问预防。 + Bit 22 (PKE - Protection Key Enable): 0,未启用保护键。 + +启用监督模式访问预防。 +[ 33.894856] Sysenter RSP=fffffe0000003000 CS:RIP=0010:ffffffff82201960 +[ 33.895276] EFER= 0x0000000000000d01 +[ 33.895517] PAT = 0x0407050600070106 +[ 33.895765] *** Control State *** +[ 33.895985] CPUBased=0xb5986dfa SecondaryExec=0x020128e2 TertiaryExec=0x0000000000000000 + + +[ 33.896503] PinBased=0x0000007f EntryControls=0000d1ff ExitControls=002befff + +[ 33.896969] ExceptionBitmap=00060042 PFECmask=00000000 PFECmatch=00000000 +[ 33.897415] VMEntry: intr_info=00000000 errcode=00000000 ilen=00000000 +[ 33.897837] VMExit: intr_info=00000000 errcode=00000000 ilen=00000000 +[ 33.898221] reason=80000021 qualification=0000000000000000 +[ 33.898617] IDTVectoring: info=00000000 errcode=00000000 +[ 33.898970] TSC Offset = 0xffffff351a3ae18e +[ 33.899245] TSC Multiplier = 0x0001000000000000 +[ 33.899543] EPT pointer = 0x00000000065d305e +[ 33.899830] Virtual processor ID = 0x0001 + + +[ 7.280281] EPT pointer (physical) = 0x0000000006612000 +[ 7.280574] EPT pointer (virtual) = 0x00000000a06935fd + 100100000111 +[ 7.280857] PML4E[0] = 0x0000000006611907 (physical) = 0x0000000080e968db (virtual) +[ 7.281278] PDPTE[0] = 0x0000000006610907 (physical) = 0x0000000023b763c3 (virtual) +[ 7.281723] PDE[0] = 0x000000000660f907 (physical) = 0x00000000192face4 (virtual) +[ 7.282155] PTE[0] = 0x06000000031cab77 (physical) = 0x00000000bba5feb4 (virtual) +[ 7.282589] PTE data at 00000000bba5feb4: can not access \ No newline at end of file diff --git a/fixme/question.md b/fixme/question.md new file mode 100644 index 000000000..097f7d264 --- /dev/null +++ b/fixme/question.md @@ -0,0 +1,25 @@ +目前会给EPTP hpa: 0x1b2e701e设置一个level为levelNum的页面,其中里面存储的是PML4E的地址hpa: 0x1b301507,level为Level512G,然后根据gpa值的索引层层往下找,直到找到level为level4K hpa: 0x1b307000的页表,然后cpu会根据gpa的0-11(offset)位为索引,找到实际的hpa:0x1b2fe507。目前 +![alt text](image.png) +ept_quit_qualification给出的是0x184,对应error_code是0x100000011,代表 + +- PFERR_WRITE_BIT(位 1): + +含义:写错误(Write)。如果该位为 1,表示页错误是由于写操作引起的;如果为 0,表示页错误是由于读操作引起的。 +可能触发的原因: +试图写入一个只读页。 +试图写入一个不存在的页(缺页错误)。 + +- PFERR_USER_BIT(位 2): + +含义:用户模式(User)。如果该位为 1,表示页错误发生在用户模式;如果为 0,表示页错误发生在内核模式。 +可能触发的原因: +用户模式下访问了无效的内存地址。 +用户模式下访问了没有权限的内存地址(例如,试图写入只读内存)。 + +- PFERR_GUEST_FINAL_BIT(位 32): + +含义:客户机最终错误(Guest Final)。如果该位为 1,表示页错误是由于客户机物理地址的最终翻译错误引起的。 +可能触发的原因: +在虚拟化环境中,客户机操作系统试图访问一个无效的客户机物理地址。 +客户机物理地址的翻译过程中出现错误。 +![alt text](image-1.png) \ No newline at end of file diff --git a/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs b/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs index 7571e3e49..8c9257335 100644 --- a/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs +++ b/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs @@ -323,7 +323,7 @@ impl VirtCpu { // }; kdebug!("{:?}",&page_fault); //flags :rwx - let page_flags: PageFlags = unsafe { PageFlags::from_data(7) } ; + let page_flags: PageFlags = unsafe { PageFlags::from_data(0xb77) } ; mapper.map(PhysAddr::new( page_fault.gpa() as usize), page_flags); debug_eptp(); diff --git a/kernel/src/arch/x86_64/vm/vmx/capabilities.rs b/kernel/src/arch/x86_64/vm/vmx/capabilities.rs index 6ec34fb4e..5a9d20ba3 100644 --- a/kernel/src/arch/x86_64/vm/vmx/capabilities.rs +++ b/kernel/src/arch/x86_64/vm/vmx/capabilities.rs @@ -582,6 +582,8 @@ impl Vmx { /// 是否需要拦截页面故障 #[inline] pub fn vmx_need_pf_intercept(&self, _vcpu: &VirtCpu) -> bool { - true + // if (!enable_ept) + // return true; + false } } diff --git a/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs b/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs index 30ec76e69..40f3f9ffe 100644 --- a/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs @@ -86,9 +86,9 @@ impl EptPageTable { /// 设置当前页表的第i个页表项 pub unsafe fn set_entry(&self, i: usize, entry: EptPageEntry) -> Option<()> { let entry_virt = self.entry_virt(i)?; - MMArch::write::(entry_virt, entry.data()); + MMArch::write::>(entry_virt, entry); let page_entry = MMArch::read::>(entry_virt); - kdebug!("Set EPT entry: {:?} , index : {:?}" , page_entry , i); + kdebug!("Set EPT entry: {:?} , index : {:?}", page_entry, i); return Some(()); } /// 判断当前页表的第i个页表项是否已经填写了值 @@ -164,7 +164,7 @@ impl EptPageTable { // if addr < self.base || addr >= self.base.add(mask) { // return None; // } else { - return Some((addr.data() >> shift) & MMArch::PAGE_ENTRY_MASK); + return Some((addr.data() >> shift) & MMArch::PAGE_ENTRY_MASK); //} } @@ -175,10 +175,10 @@ impl EptPageTable { // 返回下一级页表 let phys = unsafe { self.entry(index)?.address() }; - let base ; - if let Ok(phys) = phys{ + let base; + if let Ok(phys) = phys { base = VirtAddr::new(phys_2_virt(phys as usize)); - }else{ + } else { base = VirtAddr::new(phys_2_virt(phys.unwrap_err() as usize)); } @@ -189,12 +189,20 @@ impl EptPageTable { // Not Present的情况下,返回None // 这里之所以绕了一圈,是因为在虚拟机启动阶段的page_fault的addr是not_present的,但是也要进行映射 // 可能有点问题,但是先这么写 - if _phys & 0x7== 0x000 { + if _phys & 0x7 == 0x000 { return None; } - return Some(EptPageTable::new(base, PhysAddr::new(_phys as usize), level)); + return Some(EptPageTable::new( + base, + PhysAddr::new(_phys as usize), + level, + )); } - return Some(EptPageTable::new(base, PhysAddr::new(phys.unwrap() as usize), level)); + return Some(EptPageTable::new( + base, + PhysAddr::new(phys.unwrap() as usize), + level, + )); } } @@ -244,7 +252,11 @@ pub struct EptPageMapper { impl EptPageMapper { /// 返回最上层的ept页表 pub fn table(&self) -> EptPageTable { - EptPageTable::new(VirtAddr::new(phys_2_virt(self.root_page_addr.data())), self.root_page_addr, PageLevel::LevelNum) + EptPageTable::new( + VirtAddr::new(phys_2_virt(self.root_page_addr.data())), + self.root_page_addr, + PageLevel::LevelNum, + ) } pub fn root_page_addr() -> PhysAddr { let eptp = VmxAsm::vmx_vmread(control::EPTP_FULL); @@ -323,7 +335,8 @@ impl EptPageMapper { /// 从当前EptPageMapper的页分配器中分配一个物理页(hpa),并将其映射到指定的gpa pub fn map(&mut self, gpa: PhysAddr, flags: PageFlags) -> Option> { - self.map_gpa(gpa, flags) + let gpa = PhysAddr::new(gpa.data() & (!MMArch::PAGE_NEGATIVE_MASK) & !0xFFF); + self.map_gpa(gpa, flags) } ///映射一个hpa到指定的gpa @@ -339,7 +352,6 @@ impl EptPageMapper { //return None; } - let gpa = PhysAddr::new(gpa.data() & (!MMArch::PAGE_NEGATIVE_MASK)); // TODO: 验证flags是否合法 let mut table = self.table(); @@ -348,34 +360,47 @@ impl EptPageMapper { let i = unsafe { table.index_of(gpa).unwrap() }; assert!(i < MMArch::PAGE_ENTRY_NUM); if table.level() == PageLevel::Level4K { - //检查是否映射过 + //检查这个4K页面是否映射过 if table.entry_mapped(i).unwrap() { - kwarn!("index :: {:?} , Page hva :: {:?} already mapped", i , gpa); - let set_entry = unsafe { + unsafe { let entry_virt = table.entry_virt(i)?; - return Some(PageFlush::new(entry_virt));}; + let _set_entry = MMArch::read::>(entry_virt); + kwarn!( + "index :: {:?} , Page gpa :: {:?} already mapped,content is: {:x}", + i, + gpa, + _set_entry.data() + ); + return None; + }; } //分配一个entry的物理页 compiler_fence(Ordering::SeqCst); let hpa: PhysAddr = unsafe { self.frame_allocator.allocate_one() }?; kdebug!("Allocate hpa: {:?}", hpa); + // 修改全局页管理器 let mut page_manager_guard: SpinLockGuard<'static, PageManager> = - page_manager_lock_irqsave(); + page_manager_lock_irqsave(); if !page_manager_guard.contains(&hpa) { page_manager_guard.insert(hpa, Page::new(false)); } drop(page_manager_guard); - let entry = EptPageEntry::new(hpa.data() as u64, flags); + // 清空这个页帧 + unsafe { + MMArch::write_bytes(MMArch::phys_2_virt(gpa).unwrap(), 0, MMArch::PAGE_SIZE) + }; + let entry = EptPageEntry::new(hpa.data() as u64 | 0x0600_0000_0000_0000, flags); unsafe { table.set_entry(i, entry) }; compiler_fence(Ordering::SeqCst); //打印页表项以进行验证 kdebug!("4K table: {:?}", table); - let set_entry = unsafe { + unsafe { let entry_virt = table.entry_virt(i)?; - MMArch::read::>(entry_virt)}; - kdebug!("Read EPT entry by MMArch::read::>(entry_virt): {:?}", set_entry); + let _set_entry = MMArch::read::>(entry_virt); + kdebug!("Read EPT entry by MMArch::read::>(entry_virt = {:x}): {:?}",entry_virt.data(), _set_entry); + } return Some(PageFlush::new((unsafe { table.entry_virt(i)? }))); } else { @@ -397,10 +422,10 @@ impl EptPageMapper { }; // fixme::设置页表项的flags,可能有点问题 - let flags: PageFlags = unsafe { PageFlags::from_data(7) }; + let flags: PageFlags = unsafe { PageFlags::from_data(0x7) }; kdebug!("EptEntryFlags: {:?}", flags); - kdebug!("frame is: {:?} , index is: {:?}", frame ,i); + kdebug!("frame is: {:?} , index is: {:?}", frame, i); // 把新分配的页表映射到当前页表 unsafe { table.set_entry(i, EptPageEntry::new(frame.data() as u64, flags)) }; @@ -427,17 +452,24 @@ pub fn debug_eptp() { } } unsafe fn traverse_ept_table(table_addr: VirtAddr, level: u8) { - if level == 0 { + + if level == (u8::MAX) { return; } - let entries = MMArch::read_array::(table_addr, 512); + let entries = MMArch::read_array::(table_addr, 511); for (i, entry) in entries.iter().enumerate() { - if level == 1{ - kdebug!("Level {} - index {}: HPA: 0x{:x}", level, i, *entry); - } - if *entry & 0x7 != 0 { - let next_level_addr = VirtAddr::new(phys_2_virt((*entry & 0xFFFFFFFFF000) as usize)); + //打印已分配的entry和4K页表的所有entry + if *entry & 0x7 != 0 || level == 0 { + let next_level_addr = if level != 0 { + VirtAddr::new(phys_2_virt((*entry & 0xFFFFFFFFF000) as usize)) + } else { + //暂未分配地址 + if *entry == 0 { + continue; + } + VirtAddr::new(phys_2_virt((*entry & 0xFFFFFFFFF000) as usize)) + }; let entry_value = MMArch::read::(next_level_addr); kdebug!( "Level {} - index {}: HPA: 0x{:x}, read_to: 0x{:x}", @@ -446,7 +478,6 @@ unsafe fn traverse_ept_table(table_addr: VirtAddr, level: u8) { *entry, /*& 0xFFFFFFFFF000*/ entry_value, ); - // 递归遍历下一级页表 traverse_ept_table(next_level_addr, level - 1); } diff --git a/kernel/src/arch/x86_64/vm/vmx/mod.rs b/kernel/src/arch/x86_64/vm/vmx/mod.rs index 48d9f54b6..70a49e3f7 100644 --- a/kernel/src/arch/x86_64/vm/vmx/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/mod.rs @@ -1968,6 +1968,7 @@ impl Vmx { self.dump_sel("CS: ", guest::CS_SELECTOR); self.dump_sel("DS: ", guest::DS_SELECTOR); self.dump_sel("SS: ", guest::SS_SELECTOR); + self.dump_sel("ES: ", guest::ES_SELECTOR); self.dump_sel("FS: ", guest::FS_SELECTOR); self.dump_sel("GS: ", guest::GS_SELECTOR); @@ -3049,12 +3050,16 @@ impl Vmx { if exit_fastpath != ExitFastpathCompletion::None { return Err(SystemError::EINVAL); } + match VmxExitHandlers::try_handle_exit( vcpu, vm, VmxExitReasonBasic::from(exit_reason.basic()), ) { - Some(Ok(r)) => return Ok(r), + Some(Ok(r)) => { + self.dump_vmcs(vcpu); + return Ok(r) + }, Some(Err(_)) | None => unexpected_vmexit(vcpu), } } From c642729a47b50f577774af0f019e23b310baa0ca Mon Sep 17 00:00:00 2001 From: BrahmaMantra <2033552517@qq.com> Date: Mon, 2 Dec 2024 00:28:52 +0800 Subject: [PATCH 12/18] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=86=E4=B8=80?= =?UTF-8?q?=E4=BA=9Btruncate=E5=88=B0from=5Fbits=5Funchecked=E7=9A=84?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fixme/Dragonos.md | 2 +- fixme/fixme.md | 4 +- fixme/mylinux.md | 135 ++++++++++------------ kernel/src/arch/x86_64/vm/vmx/ept/mod.rs | 2 +- kernel/src/arch/x86_64/vm/vmx/mod.rs | 12 +- kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs | 4 +- 6 files changed, 73 insertions(+), 86 deletions(-) diff --git a/fixme/Dragonos.md b/fixme/Dragonos.md index 69afb87a7..fa397439a 100644 --- a/fixme/Dragonos.md +++ b/fixme/Dragonos.md @@ -108,4 +108,4 @@ $ VMEntry: intr_info = 0x0, errcode = 0x0, ilen = 0x0 IDTVectoring: info = 0x8000030d, errcode = 0x0 TSC Offset = 0x0 $ EPT pointer = 0x1b2e901e //少了huge page - Virtual processor ID = 0x1 \ No newline at end of file +$ Virtual processor ID = 0x1 \ No newline at end of file diff --git a/fixme/fixme.md b/fixme/fixme.md index 0bc86020a..60fe005ec 100644 --- a/fixme/fixme.md +++ b/fixme/fixme.md @@ -55,4 +55,6 @@ x/16x 0xffff8000 ![alt text](image-2.png) ![alt text](image-3.png) ![alt text](image-4.png) -![alt text](image-5.png) \ No newline at end of file +![alt text](image-5.png) + +//为什么第一次vmentry会外中断 \ No newline at end of file diff --git a/fixme/mylinux.md b/fixme/mylinux.md index 56afac156..eafd88cc6 100644 --- a/fixme/mylinux.md +++ b/fixme/mylinux.md @@ -70,82 +70,67 @@ KVM_EXIT_HLT 33.881551] VMCS 000000008e180ab4, last attempted VM-entry on CPU 0 -[ 34.439920] *** Guest State *** -[ 34.440253] CR0: actual=0x0000000000000030, shadow=0x0000000060000010, gh_mask=fffffffffffefff7 -[ 34.441171] CR4: actual=0x0000000000002040, shadow=0x0000000000000000, gh_mask=fffffffffffef871 -[ 34.442096] CR3 = 0x0000000000000000 -[ 34.442499] PDPTR0 = 0x0000000000000000 PDPTR1 = 0x0000000000000000 -[ 34.443180] PDPTR2 = 0x0000000000000000 PDPTR3 = 0x0000000000000000 -[ 34.443870] RSP = 0x0000000000200000 RIP = 0x0000000000000000 -[ 34.444512] RFLAGS=0x00010002 DR7 = 0x0000000000000400 - -[ 34.445132] Sysenter RSP=0000000000000000 CS:RIP=0000:0000000000000000 -[ 34.445833] CS: sel=0x0000, attr=0x0009b, limit=0x0000ffff, base=0x0000000000000000 -[ 34.446675] DS: sel=0x0000, attr=0x00093, limit=0x0000ffff, base=0x0000000000000000 -[ 34.447520] SS: sel=0x0000, attr=0x00093, limit=0x0000ffff, base=0x0000000000000000 -[ 34.448348] ES: sel=0x0000, attr=0x00093, limit=0x0000ffff, base=0x0000000000000000 -[ 34.449169] FS: sel=0x0000, attr=0x00093, limit=0x0000ffff, base=0x0000000000000000 -[ 34.449990] GS: sel=0x0000, attr=0x00093, limit=0x0000ffff, base=0x0000000000000000 -[ 34.450810] GDTR: limit=0x0000ffff, base=0x0000000000000000 -[ 34.451634] LDTR: sel=0x0000, attr=0x00082, limit=0x0000ffff, base=0x0000000000000000 -[ 34.452453] IDTR: limit=0x0000ffff, base=0x0000000000000000 - -[ 34.453268] TR: sel=0x0000, attr=0x0008b, limit=0x0000ffff, base=0x0000000000000000 -[ 34.454076] EFER= 0x0000000000000000 -[ 34.454466] PAT = 0x0007040600070406 -[ 34.454852] DebugCtl = 0x0000000000000000 DebugExceptions = 0x0000000000000000 -[ 34.455615] Interruptibility = 00000000 ActivityState = 00000000 - -[ 33.892855] *** Host State *** -[ 33.893027] RIP = 0xffffffff8203c8ee RSP = 0xffffc90000657c48 -[ 33.893376] CS=0010 SS=0018 DS=0000 ES=0000 FS=0000 GS=0000 TR=0040 -[ 33.893721] FSBase=0000000031a743c0 GSBase=ffff88803ea00000 TRBase=fffffe0000003000 -[ 33.894132] GDTBase=fffffe0000001000 IDTBase=fffffe0000000000 -[ 33.894443] CR0=0000000080050033 1000 0000 0000 0101 0000 0000 0011 0011 - -Bit 0 (PE - Protection Enable): 1,启用保护模式。 -Bit 1 (MP - Monitor Coprocessor): 1,控制协处理器的操作。 -Bit 4 (ET - Extension Type): 1,指示协处理器的类型(x87 协处理器)。 -Bit 5 (NE - Numeric Error): 1,控制浮点异常的处理。 -Bit 16 (WP - Write Protect): 1,控制用户模式下对只读页面的写入保护。 -Bit 18 (AM - Alignment Mask): 1,控制对齐检查。 -Bit 31 (PG - Paging): 1,启用分页。 - -CR3=00000000063fe000 - CR4=0000000000752ef0 0111 0101 0010 1110 1111 0000 - Bit 4 (PSE - Page Size Extensions): 1,启用页大小扩展。 - Bit 5 (PAE - Physical Address Extension): 1,启用物理地址扩展。 - Bit 6 (MCE - Machine Check Enable): 1,启用机器检查。 - Bit 7 (PGE - Page Global Enable): 1,启用全局页。 - Bit 9 (OSFXSR - Operating System Support for FXSAVE and FXRSTOR instructions): 1启用操作系统对 FXSAVE 和 FXRSTOR 指令的支持。 - Bit 10 (OSXMMEXCPT - Operating System Support for Unmasked SIMD Floating-Point Exceptions): 1,启用操作系统对未屏蔽的 SIMD 浮点异常的支持。 - Bit 11 (UMIP - User-Mode Instruction Prevention): 0,未启用用户模式指令预防。 - Bit 13 (VMXE - VMX Enable): 1,启用 VMX(虚拟机扩展)。 - Bit 16 (FSGSBASE - Enable RDFSBASE, WRFSBASE, RDGSBASE, WRGSBASE instructions): 1,启用 RDFSBASE, WRFSBASE, RDGSBASE, WRGSBASE 指令。 - Bit 18 (OSXSAVE - XSAVE and Processor Extended States Enable): 1,启用 XSAVE 和处理器扩展状态。 - Bit 20 (SMEP - Supervisor Mode Execution Protection): 1,启用监督模式执行保护。 - Bit 21 (SMAP - Supervisor Mode Access Prevention): 1,启用监督模式访问预防。 - Bit 22 (PKE - Protection Key Enable): 0,未启用保护键。 - -启用监督模式访问预防。 -[ 33.894856] Sysenter RSP=fffffe0000003000 CS:RIP=0010:ffffffff82201960 -[ 33.895276] EFER= 0x0000000000000d01 -[ 33.895517] PAT = 0x0407050600070106 -[ 33.895765] *** Control State *** -[ 33.895985] CPUBased=0xb5986dfa SecondaryExec=0x020128e2 TertiaryExec=0x0000000000000000 - - -[ 33.896503] PinBased=0x0000007f EntryControls=0000d1ff ExitControls=002befff +[ 2.779110] *** Guest State *** +[ 2.779288] CR0: actual=0x0000000000000030, shadow=0x0000000060000010, gh_mask=fffffffffffefff7 +[ 2.779761] CR4: actual=0x0000000000002040, shadow=0x0000000000000000, gh_mask=fffffffffffef871 +[ 2.780234] CR3 = 0x0000000000000000 +[ 2.780439] PDPTR0 = 0x0000000000000000 PDPTR1 = 0x0000000000000000 +[ 2.780790] PDPTR2 = 0x0000000000000000 PDPTR3 = 0x0000000000000000 +[ 2.781140] RSP = 0x0000000000200000 RIP = 0x0000000000000000 +[ 2.781464] RFLAGS=0x00010002 DR7 = 0x0000000000000400 +[ 2.781788] Sysenter RSP=0000000000000000 CS:RIP=0000:0000000000000000 +[ 2.782153] CS: sel=0x0000, attr=0x0009b, limit=0x0000ffff, base=0x0000000000000000 +[ 2.782607] DS: sel=0x0000, attr=0x00093, limit=0x0000ffff, base=0x0000000000000000 +[ 2.783048] SS: sel=0x0000, attr=0x00093, limit=0x0000ffff, base=0x0000000000000000 +[ 2.783486] ES: sel=0x0000, attr=0x00093, limit=0x0000ffff, base=0x0000000000000000 +[ 2.783922] FS: sel=0x0000, attr=0x00093, limit=0x0000ffff, base=0x0000000000000000 +[ 2.784355] GS: sel=0x0000, attr=0x00093, limit=0x0000ffff, base=0x0000000000000000 +[ 2.784784] GDTR: limit=0x0000ffff, base=0x0000000000000000 +[ 2.785215] LDTR: sel=0x0000, attr=0x00082, limit=0x0000ffff, base=0x0000000000000000 +[ 2.785646] IDTR: limit=0x0000ffff, base=0x0000000000000000 +[ 2.786081] TR: sel=0x0000, attr=0x0008b, limit=0x0000ffff, base=0x0000000000000000 +[ 2.786515] EFER= 0x0000000000000000 +[ 2.786717] PAT = 0x0007040600070406 +[ 2.786923] DebugCtl = 0x0000000000000000 DebugExceptions = 0x0000000000000000 +[ 2.787324] Interruptibility = 00000000 ActivityState = 00000000 +[ 2.787675] *** Host State *** +[ 2.787853] RIP = 0xffffffff8203d8ee RSP = 0xffffc900006439f8 +[ 2.788178] CS=0010 SS=0018 DS=0000 ES=0000 FS=0000 GS=0000 TR=0040 +[ 2.788522] FSBase=000000003919f3c0 GSBase=ffff88803ea00000 TRBase=fffffe0000003000 +[ 2.788940] GDTBase=fffffe0000001000 IDTBase=fffffe0000000000 +[ 2.789260] CR0=0000000080050033 __va::CR3=00000000a894e9cc CR4=0000000000752ef0 +[ 2.789671] Sysenter RSP=fffffe0000003000 CS:RIP=0010:ffffffff82201960 +[ 2.790034] EFER= 0x0000000000000d01 +[ 2.790235] PAT = 0x0407050600070106 +[ 2.790439] *** Control State *** +[ 2.790626] CPUBased=0xb5986dfa SecondaryExec=0x020128e2 TertiaryExec=0x0000000000000000 +[ 2.791067] PinBased=0x0000007f EntryControls=0000d1ff ExitControls=002befff +[ 2.791465] ExceptionBitmap=00060042 PFECmask=00000000 PFECmatch=00000000 +[ 2.791840] VMEntry: intr_info=00000000 errcode=00000000 ilen=00000000 +[ 2.792201] VMExit: intr_info=00000000 errcode=00000000 ilen=00000003 +[ 2.792570] reason=00000030 qualification=0000000000000184 +[ 2.792911] IDTVectoring: info=00000000 errcode=00000000 +[ 2.793208] TSC Offset = 0xfffffffddc262e77 +[ 2.793444] TSC Multiplier = 0x0001000000000000 +[ 2.793700] __va::EPT pointer = 0x0000000093b59c89 +[ 2.793970] Virtual processor ID = 0x0001 +[ 2.794193] kvm_tdp_mmu_map ret = 4 +[ 2.794446] VM Exit Reason:30 +[ 2.794624] exit_handler_index: 30 +Guest CR3: 0x0 +run->exit_reason= 0x2 +aKVM_EXIT_IO: run->io.port = 217 +[ 2.795391] VM Exit Reason:30 +[ 2.795563] exit_handler_index: 30 +Guest CR3: 0x0 +run->exit_reason= 0x2 -[ 33.896969] ExceptionBitmap=00060042 PFECmask=00000000 PFECmatch=00000000 -[ 33.897415] VMEntry: intr_info=00000000 errcode=00000000 ilen=00000000 -[ 33.897837] VMExit: intr_info=00000000 errcode=00000000 ilen=00000000 -[ 33.898221] reason=80000021 qualification=0000000000000000 -[ 33.898617] IDTVectoring: info=00000000 errcode=00000000 -[ 33.898970] TSC Offset = 0xffffff351a3ae18e -[ 33.899245] TSC Multiplier = 0x0001000000000000 -[ 33.899543] EPT pointer = 0x00000000065d305e -[ 33.899830] Virtual processor ID = 0x0001 +KVM_EXIT_IO: run->io.port = 217 +[ 2.796299] VM Exit Reason:12 +[ 2.796472] exit_handler_index: 12 +Guest CR3: 0x0 +run->exit_reason= 0x5 +KVM_EXIT_HLT [ 7.280281] EPT pointer (physical) = 0x0000000006612000 diff --git a/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs b/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs index 40f3f9ffe..7485445b7 100644 --- a/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs @@ -388,7 +388,7 @@ impl EptPageMapper { drop(page_manager_guard); // 清空这个页帧 unsafe { - MMArch::write_bytes(MMArch::phys_2_virt(gpa).unwrap(), 0, MMArch::PAGE_SIZE) + MMArch::write_bytes(MMArch::phys_2_virt(hpa).unwrap(), 0, MMArch::PAGE_SIZE) }; let entry = EptPageEntry::new(hpa.data() as u64 | 0x0600_0000_0000_0000, flags); unsafe { table.set_entry(i, entry) }; diff --git a/kernel/src/arch/x86_64/vm/vmx/mod.rs b/kernel/src/arch/x86_64/vm/vmx/mod.rs index 70a49e3f7..12b84a524 100644 --- a/kernel/src/arch/x86_64/vm/vmx/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/mod.rs @@ -422,7 +422,7 @@ impl VmxKvmFunc { VmxAsm::vmx_vmwrite(seg_field.limit, 0xffff); let mut ar = 0x93; - if seg == VcpuSegment::CS { + if seg == VcpuSegment::CS {//todo疑似DS ar |= 0x08; } @@ -1818,7 +1818,7 @@ impl Vmx { .vmentry_ctrl .contains(EntryControls::LOAD_IA32_PAT) { - VmxAsm::vmx_vmwrite(guest::IA32_PAT_FULL, vcpu.arch.pat) + VmxAsm::vmx_vmwrite(guest::IA32_PAT_FULL, vcpu.arch.pat)//todo } let mut loaded_vmcs = vcpu.vmx().loaded_vmcs.lock(); @@ -1888,10 +1888,10 @@ impl Vmx { /// 打印VMCS信息用于debug pub fn dump_vmcs(&self, vcpu: &VirtCpu) { let vmentry_ctl = - EntryControls::from_bits_truncate(self.vmread(control::VMENTRY_CONTROLS) as u32); + unsafe { EntryControls::from_bits_unchecked(self.vmread(control::VMENTRY_CONTROLS) as u32) }; let vmexit_ctl = - ExitControls::from_bits_truncate(self.vmread(control::VMEXIT_CONTROLS) as u32); + unsafe { ExitControls::from_bits_unchecked(self.vmread(control::VMEXIT_CONTROLS) as u32) }; let cpu_based_exec_ctl = PrimaryControls::from_bits_truncate( self.vmread(control::PRIMARY_PROCBASED_EXEC_CONTROLS) as u32, @@ -1904,9 +1904,9 @@ impl Vmx { // let cr4 = Cr4::from_bits_truncate(self.vmread(guest::CR4) as usize); let secondary_exec_control = if self.has_sceondary_exec_ctrls() { - SecondaryControls::from_bits_truncate( + unsafe { SecondaryControls::from_bits_unchecked( self.vmread(control::SECONDARY_PROCBASED_EXEC_CONTROLS) as u32, - ) + ) } } else { SecondaryControls::empty() }; diff --git a/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs b/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs index aec434aa5..87eaa10ce 100644 --- a/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs @@ -287,8 +287,8 @@ impl LoadedVmcs { } pub fn msr_write_intercepted(&mut self, msr: u32) -> bool { - if PrimaryControls::from_bits_truncate(self.controls_get(ControlsType::Exec) as u32) - .contains(PrimaryControls::USE_MSR_BITMAPS) + if unsafe { PrimaryControls::from_bits_unchecked(self.controls_get(ControlsType::Exec) as u32) + .contains(PrimaryControls::USE_MSR_BITMAPS) } { return true; } From a1b0de6c3b9d92b10d5fd7e424f2e9056432d1f8 Mon Sep 17 00:00:00 2001 From: BrahmaMantra <2033552517@qq.com> Date: Thu, 5 Dec 2024 21:21:53 +0800 Subject: [PATCH 13/18] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=86=85=E5=AD=98?= =?UTF-8?q?=E8=99=9A=E6=8B=9F=E5=8C=96EPT=5FVIOLATION=E7=9A=84=E6=98=A0?= =?UTF-8?q?=E5=B0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + 331e5e24-137a-4f25-88ca-0be4e4a8ebf4.jpeg | Bin 299431 -> 0 bytes fixme/Dragonos.md | 6 +- kernel/src/arch/x86_64/mm/mod.rs | 2 +- kernel/src/arch/x86_64/vm/kvm_host/mod.rs | 4 +- kernel/src/arch/x86_64/vm/kvm_host/page.rs | 2 +- kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs | 30 +++--- kernel/src/arch/x86_64/vm/mmu/mmu.rs | 63 +++++------ kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs | 82 ++++++--------- kernel/src/arch/x86_64/vm/mmu/pte.rs | 8 +- kernel/src/arch/x86_64/vm/mmu/tdp_iter.rs | 4 +- kernel/src/arch/x86_64/vm/vmx/capabilities.rs | 5 +- kernel/src/arch/x86_64/vm/vmx/ept/mod.rs | 52 ++++----- kernel/src/arch/x86_64/vm/vmx/exit.rs | 99 +++++++++--------- kernel/src/arch/x86_64/vm/vmx/mod.rs | 76 +++++++------- kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs | 7 +- kernel/src/virt/vm/kvm_dev.rs | 5 +- kernel/src/virt/vm/kvm_host/mem.rs | 1 - kernel/src/virt/vm/kvm_host/mod.rs | 5 +- kernel/src/virt/vm/kvm_main.rs | 4 +- kernel/src/virt/vm/mod.rs | 2 +- tools/.gdbinit | 12 ++- user/apps/test_kvm/main.c | 17 +-- 23 files changed, 230 insertions(+), 257 deletions(-) delete mode 100644 331e5e24-137a-4f25-88ca-0be4e4a8ebf4.jpeg diff --git a/.gitignore b/.gitignore index 52e685b56..3b57449fc 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ Cargo.lock .cache compile_commands.json /logs/ +/fixme/ diff --git a/331e5e24-137a-4f25-88ca-0be4e4a8ebf4.jpeg b/331e5e24-137a-4f25-88ca-0be4e4a8ebf4.jpeg deleted file mode 100644 index 650f9a9252d5e8a4b7d5463d5b4db2a201d45875..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 299431 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

    !BaP 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 W3#K}X5&{!hUMnUyJNoyb;p*G zWIE4kS+MGZFT96UXO&hFRCMtl3J!Fwhq!9zw7n{Lrx*%7nLchzAniDeY>#B%Cu=3t zWz!XKDvqvXq$yo5~lk3@M7a9 zwve@qq>=-}a_IXYUv=Usgcr1*rKJjG<0_ux{r)U{J$S%3-Rhn8L6!BloI=xH` z!lImpp~dh0GI7T2CYd$6iMNV2c%Vxbt`4*rE+R$_!c4TzWhs3%ei<0j9ubL|>;O{$ zc-K8X7uHnSuTdhNq1sS{0 z9htMS*_F9F(>4@_kz8%;7LF6z7LViKdQjbf=(9GNANZrc5b9Ho41E5w*gOpUDUg?Z z7+yAUIl+I0-x22&)s7nhEH4>=4^F;i>(I_4h{1;4rsV&U4{W94H5!Sa2*wV+n`zfBO@cK^TCXi4q zHUz6J&Enl9+|`|#p5q*4ej?mgZpA<>h9heTDJu&{23t$Trxzhski<`4(=SuhG8WIC zeySRiu6XRJ!}@i^8Ueqmdi+I@opICmdpq*E;YfDZ8ikM1GjOtkf~Ji zQL=6V;!3h>zA!{7Zm*g;Fm)k_a{C?5=UJC5?tEE(mUY1`1ZL; zyn$A*n{zWWK016Uv1pQfNu} zd$X)dP(IGBsRZ{Xf|_T>if?@z2B&9v-k%|g3jq9dGmX#22Bnh|5~RY9k}}sgpQ^mQW%1gT_hc*%d^|6jC}_ z>o3hcR}7uGD6<*c1`2w^FSV-9j1J2axq9ZQV9J`Bvv=f&or8}aELQ;}{N~o$pbmi# z`RV=)AZUdn{5z`UUtywQhAA6oXPL(W%OS>fx;a+hiIbm+#{An|gFNLw7T#>?eYwpQ z=_7Ev-#b%#ASmK#Qo6!ZLN{E>TH#-tRlaoPZKwNfCcMe{HW{5kT}Ni-3Mf^*_X1LZ z9Q{`wZ{}FT#A?ucost>jMyXL5mB^`7dulbuiUv8d)WWaH;ox^PX4RTY@2xsNn2Xp` zn@F45x3ctERmD(Utd?sXC?*tEvaz8mIDic}9Cex}1pqq|Z;~-cx3U+VGBhkx>El zm`69?&U&h)uB9rb4rMts2v5iJ0-{Cp=RfUvqrol&;uyKZbIa?p zDRph2Ap;rcom$>wgGTW|Tv5}FMdgGPY)g~lI&Gi%lZouZhj*C{exrl6HC%AnP*SQ& zcBO`wx+x9M@tqA*wo!b#QgmMkW`n5e-aHJW=>S(u8GaUlq&^>|Rq>hkbRjdTLwi^D zdF8j7GURef7$Ty4>(QNEPK%Z_f0hos?x6^!T#ucrDmM}{IXWl<7rx?q>Vl`1ZhU&N zxq`*3Q6A}cz@ljS1=oE`rrP>EH>AdGVgddhkpDGx@RbgUWu@NhF`lk4nx1l`?(s!~ z!$dL@PRNeIAy%8z0YBx`&DxurALW-CzEh4>xy84zf_ZqPspHSpK0IQa-31kFh0mzV z(}?42G4*7+Wvv;Am-Ha)iWRd|P1BT|nYQV`S(eZ(Bmd52(&$N!%*N<*`X!@x6t#+@ zEgJ6RF71yT(a9{GC*-MGgNuA38Zk&k#vcCG5BhJ8gL==IPo75;wS;?iN;_k(a=QUQ z)X+<)B052Lrj8yXt(qB6?!}o=OudK8hK+dU!82YZ{e#8Ay$waOaz^PBCH^MbgPdf3J1+Z^J9pnf&Qj^82ova zWFT^~RXak(BpfEencT8DcQ--i3b-sA!@#AGK%;F4{s`+wDB@4PXK@XgHP`r=Xvt@x zU+6*o#%G^c)gi|95X*%c18a@O!N%q*)>K-G+V|#3o$k``bkeNF|DE%(vgviBrx3)P zc+x!qAWKcO*9NG)rX-@#4lIhyd{?#MS^!XB;$_G|9W?d{1ze%Nvy&CS9^&&rGC;H~$YslU7P-a_idJ7&G@%_U{LE$1!_7=5$clH-d(!YIq zV{j?&=HI&?)mCpBYlLr0_Inf) z`rzb+@=u|ya*SUjT2t~LgLHDWy$I-{+l@`_WWQS8w2owi*ut>2ogUz7Gf{#f*m=Zm z(Wm8o7SVXu<94h_zI$pj80hCTQ2PK{U9qsr7Sk3f@34?H8|^Inn(PL#X-!8^n= z=GAoTYqw-9arCJzEeG^>Anmf__zIG&AtyB+^zJlqUen6M!@R3{9n?T@sHL|}qpOol zZK*6zKTPgtHz=tlGVqg+FJWM=ZN%x(h#SE<0Y+tNdio};;FOP&Tv0+rTN3G_o(g}0 z-|wE*g9W;|f+GmZxmh>-qA#2qgZW?Bd#k9pwr*XN;2zu|!QI{6T?#MU-5r9vy9al7 z4=#mE0fl>T0tpa;tiyh|`>yr>=bn8}J1@8Gc3-NsSv70U*@pB!W*?u-qFe$=0}}!Z zdBbCSpG3Dqdg`!*VH*7FV7o-t`AFcRMW9eW7g@G-_sS4*ON|%X(aSqs0GVTZX+SM+@tMyPPJv}(e)L{ zT&4u?c>>21#o7JDKb$1QdM4YrziP#q87x~r_k@3D+qkv1`b*oa4)TPb0u;q-)iIlIJuD7h{U9ro z=WpG8&yX_DbA9A#C4}0K*K4|(?~Pdr%#JifHYU>c$Fm^f9S!-!riyQ3vnWuKY_h;u zFO9CvrM|}j9aXGp9`RK7w(G>+Eqta$O;(-Hu6)gn^ixy^5q1_7S&$NuU`i#NqVKGR z2*L4+Mw`4^SfMDXINC-UpAo(Z!FyWD%U9(pin+-k+?irXQxK-v!Af^-Hb@B=A{Tz& z5K6r8q?%1VXw#^xt~p`rF(n z^I_d635X?4{vfJzJs?=2ms?yhU+hiER7ZTgy&>AX7|1QnLl>MqGRV;Dx3-|J4XT)? z)n}xWsNHK?*SH@sk{GL4RX)^e)1_rN>98>Z{4^}WmGQY^w3DbNaKvp+_s^rebQlxx z-iF&~L+|}KU0Z|2P9?7XRdYt&@>pVRjw^Xy7AybbC&oTN&Q!_|jAdohr<&m@3%n*4 znwp%BC(&?{1{+_o8u{Vg-{)t?A7(xt*@baHjM@tBJH8sxOShs7@pyLIQu6O*aZnxu zO_5S1B;v7hl<-?IaXr;P=#s7`*|=|!W0HJv$yp1&$DZ^|sdyPK)c8bV+bMJd5jEek zefLlKzFBC_HOF^oB(xLQ{r&6tVWQAm(3jdbe&RoB=S$LUZHjeBHA}!J0gZZ$&{XdD z;A##gWn7s{8mY_)KcQi(uYU5gckontmh5P9p4`LXTNTJ?lOQv!m6K}2Y&!P>b+oj# z^_HU8=F&InO$Uqe6a(<|eQ&`x8Yr9`qdy@!m8XZpWOQo+A;g*%%?YhLGe}5nJ(qlK z2F^#@fX|4AeFbCAcI{h%5v+*SxIxmth0h43vzWsKzzkx+)V;0{9?AZxmD4fdiS;8- zk~tK7VGf0ZtGRkY{SU1lnzEk-38`w1{6ERNrE+Nnc9eeiE6oAe3`TkR3#3w|#>Vvk+1&Mu``i8Nllrp-rB71PPx;7RF>#EW>* zRF67s+WY&NgqDASDB(!tsRY!EMs@b}2Ag3;sVl4Hti7*t{W! z`~@{3aP~Yn!5@%Zxn)Q7lEd~5pwS$E*7cw0t^WkV{u|)c3S~<156bR)b4y zE)hxQRQ1Q)lm;tPCso5>11D~!X6S}#D=?8-_6H^o-An*Ko{rWGMT%+b94mF?xU_q3 zT2{dyR?2epId_X54h2Lk%$!yYcm)a}5{O!Z_LLh<@4Nd>y^R5!_9Vk7N?=fhO)VQU zMK*s(qeCoI1#K1B!7@)xaHNBJOY4mS@PPKyk>5r;hmtDE~CEsNJt?b}M=9 z9a!z!vHtk85w(iQ*!~0g^SyTEh&_g(vr|a`3z7_RL*$4p6-K8fKJkO8xbzAd% zK3Q?JROYELlP{daG(w3z-?p=GG6OS{7WCPxy>7qcPI$?sx@SX#?U@=${1~8|RWUy<>}iJ*%&=Ivm~e|pk;ut$XA!Bb!qxiW zj1M>d(Ey7Os&BEK?|7Z49&y~-{yCj!IV4iw2{GEUaWy2+bL&O~g&v4m zmL7NEQRAi+D8*oCdR>8-eTTS1Jj*f5Z{jO~trN{3#wF7xi}`jkSWvQe3-EH|r)l=h zDq~d+Obz{BSB|RJVMtTsja$gCeU)-l0pDed2&lo#;&fwmQ(qnw>-&<89AZNbi?#B) ze(b#VC{U{1ROCC2bFmZKmxm&@g+D9?8Aa(=KIq`MODT3z!<> zcDiMQNTWk1PX>T9W#oZr-R`Qur()n4v8pX+pTUe!_ z0=vFxId0CZmFi}qpCc)gVjM z{@f4jtIJ&va9Ik~QQsD7(^0{JW1bjs)HTsq>z3tm50CgDN%dvx#QWVaO-r_A;>%`xO#dnNm7&#=<1{g63202BY2eEf)5t0|~Ra#Wxu?Cc~cz;BkX1$;mAzYFL8&CosKwcr6ur#@OhG+&Dx zd{$2l5o9|6JY1NLfsmhF8;+Gcx`58VN;WzSpL^yw4U};KCVIu;iIj1He6*zzl+J9M z%7~iR+*mG$9G`l^*8D&u+MY;KHOOlehd97HL22LWFUc45JH#~K z&;Vv-&oHKE)IB{GJDJtB@DarfIF3a7relsDDY}Z~5qlgp7A_r^(!H_uL|CY?BHA4_ z4WKH@r#aN0o>4XwIVd{0>?&m0cUsK~<`IVn?-&#hBcBB*ty#H98{|S3n&_>1ivSz5RAPiba0E-EOM%&(wVIJ}_5E;@+XkQlIE6snA-SJd8lFNDyH_RFh7r$_w9163BCwVX^}%Id7z}G zjue9jfNJIVeXgNE>&YdTUX*apf-TBt^lqL2UU1*^D?ESwmhctH?KSH|kkMY>MC0zI zYZ`NKSn}1f+uv(9>*c|V>$emGyS`EUDlnzIYW_C=G5-3p@kr4>ti8r*DZ`4|S|ZPO zc9dAtvV&=w6V62RWV&Sc*p}+;o8CL`#0q)v%WRhPH_(#&YfuZJjLodb;XhO4oOg!f zWAf!+P=^H`uY2bC19E>GQj$Uc$5fcVpo9|>%;)}WwLi?0UW|JeVg3>^`mK6oERV-d zCNFR&%oQ9%jCiLfj@yVPJb60B7t5)HqZZGAEn2-4`;wTdB^-=1yYiy!Ye>e_6Y{c^ z7c@&SZu?A_{VArAF>EYLO*Ajf8B+QQ+eil?j-}`eFU@YN40~?SxD~>IJ!tRNa^>U6 z(dL8A#OPYa(7|-or`f5_%f)!Bugy6jzjN=pg!DXNp1OHnbJ=gXk6nCP&JljPIX-il z6INbYnFP`FHGISaioH20f3u1Y`0w!$bNUS#$EH-XDZiM^);uMr3;u$_Q{o5}E6>#! zxB_CB;X4qmxJI^k*d3Rgc|*lw`x{s-Y8{xD<*OjAGc2Y?Ar`@U#;-=pB?|t4vX(4`v<9D#?OEt4U|a@ z#~-iQ5mw`Ag_p?JD=mTg@G^=W3?MJJ5@S|JzV_>*!P~3Wv5A%ecWs^eUnYKd6-S+X ziPW_v{^!&D_Z=A=i@;$VSX z-Bpg>413sB=Na)_MrxugqCuH+g}(eoq(2T26(6TmR}cXO0S^V6%srjh@0U|88BSB( zf0>$u)3{47byPVmA`$WW*Hymm-wvi?)nsv66?C?1OHjqG!ib#MR#g%V+kh;4m=Z4b z4iJWXrD6Hey@D`iB085?C|TWEo5O#J2-Zxd2L38X}s)bP86yPx*5)y%1S)%F~?^CZ_mGXS+D*nnwGz9H&C;Eh0FD$PIyah?%pnS z=l7KPjO7ha{3M6(PCje@7ID0QVSyOs^RIBvDwanxGesbPD5x`AH?DblY1NZN(01&` zdO)1EbPg8X@kV0U?@ZK|htz7#e_Q?p<$t zFv22IxHm%OZNcdOoZGu-6o&cV4b{sJ|6Ce_KK$bWIn(CVKW13yqvoQ@;pJ7QU9wU5 z;#fDs|Mat347iY@@f*LEi1yEIkczWuvLx0ls&Fvb7vmP}B8jzt`n?V$n3Wp->ROd{ zXEFQ=P?*chQA#MjVZ_iq3uQC|-;?QeFw)mh`m~gK*+P_h$WEnrjC5rk~Qb8VT{6%cjX^Z*Ab!uM7oEdaip@U)mAL3n*GwS63@#OB<^ zf2kmge*Z^yO;2Nz1-`=US{geERyGWvJ;1sp^rcgD-U$e0)%z-j!g$X3F_Q}-C81=v zBfb&pA{3R$(16sH_i|QLV0BRfQDN2N|ALZK`v1V9XE~tOxi8B4U6AXd@&<Nl~`ju+nHCa+>3)Xv{N7`15v6ct!&8tc{r)u}VF~R@+Pya>* zx8Mp0{E_?Zp6gwLtmC@d&GP7N&ceH#T$bdm!v%~mUnIcEnF?OLR#K93!`SdwyQ|%C zTzaxj%-+i!gxhH-b&i2k%ns|hjx?psDv^~Ax^fd!QPjUSWm+4EBm*N}t==8Xwo

    m+Y`=Ar6Tfa?k^b{^`4b>0g?nw#B~RN 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%0AXX+u9P5cBQoPbiJz7Gt*UHqUo) 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 z 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 VjAIzaF^ppv#xaaz7{)P-|JmO|ia-DW diff --git a/fixme/Dragonos.md b/fixme/Dragonos.md index fa397439a..a177b3e07 100644 --- a/fixme/Dragonos.md +++ b/fixme/Dragonos.md @@ -52,8 +52,8 @@ $ PDPTR2 = 0x0, PDPTR3 = 0x0 RSP = 0x200000, RIP = 0x7d # 为什么有值 $ RFLAGS = 0x10002, DR7 = 0x400 $ Sysenter RSP = 0x0, CS:RIP = 0x0:0x0 - CS: sel = 0x0, attr = 0x93, limit = 0xffff, base = 0x0 - DS: sel = 0x0, attr = 0x9b, limit = 0xffff, base = 0x0 +$ CS: sel = 0x0, attr = 0x9b, limit = 0xffff, base = 0x0 +$ DS: sel = 0x0, attr = 0x93, limit = 0xffff, base = 0x0 $ SS: sel = 0x0, attr = 0x93, limit = 0xffff, base = 0x0 $ ES: sel = 0x0, attr = 0x93, limit = 0xffff, base = 0x0 $ FS: sel = 0x0, attr = 0x93, limit = 0xffff, base = 0x0 @@ -63,7 +63,7 @@ $ LDTR: sel = 0x0, attr = 0x82, limit = 0xffff, base = 0x0 $ IDTR: limit = 0xffff, base = 0x0 $ TR: sel = 0x0, attr = 0x8b, limit = 0xffff, base = 0x0 $ EFER = 0x0 - PAT = 0x0 +$ PAT = 0x7040600070406 $ DebugCtl = 0x0, DebugExceptions = 0x0 $ Interruptibility = 0x0, ActivityState = 0x0 diff --git a/kernel/src/arch/x86_64/mm/mod.rs b/kernel/src/arch/x86_64/mm/mod.rs index a92d4ca8d..b09be5df2 100644 --- a/kernel/src/arch/x86_64/mm/mod.rs +++ b/kernel/src/arch/x86_64/mm/mod.rs @@ -401,7 +401,7 @@ impl X86_64MMArch { vec.push(Self::read(addr + i * core::mem::size_of::())); } vec - } + } } impl VirtAddr { diff --git a/kernel/src/arch/x86_64/vm/kvm_host/mod.rs b/kernel/src/arch/x86_64/vm/kvm_host/mod.rs index 4225ff582..1614b2e22 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/mod.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/mod.rs @@ -30,8 +30,8 @@ use super::{ }; pub mod lapic; -pub mod vcpu; pub mod page; +pub mod vcpu; #[allow(dead_code)] pub const TSS_IOPB_BASE_OFFSET: usize = 0x66; pub const TSS_BASE_SIZE: usize = 0x68; @@ -69,7 +69,7 @@ pub struct X86KvmArch { pub active_mmu_pages: Vec, pub n_max_mmu_pages: usize, - pub n_used_mmu_pages:usize, + pub n_used_mmu_pages: usize, } impl X86KvmArch { diff --git a/kernel/src/arch/x86_64/vm/kvm_host/page.rs b/kernel/src/arch/x86_64/vm/kvm_host/page.rs index bb68da164..e4bdec89f 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/page.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/page.rs @@ -1 +1 @@ -pub const KVM_MIN_FREE_MMU_PAGES: usize = 5; \ No newline at end of file +pub const KVM_MIN_FREE_MMU_PAGES: usize = 5; diff --git a/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs b/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs index a7563595e..252d5856a 100644 --- a/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs +++ b/kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs @@ -17,7 +17,7 @@ use x86_64::registers::control::EferFlags; use crate::arch::vm::asm::VmxAsm; use crate::arch::vm::vmx::exit::ExitFastpathCompletion; -use crate::{kdebug, kwarn}; +use crate::kwarn; use crate::virt::vm::kvm_host::mem::KvmMmuMemoryCache; use crate::virt::vm::kvm_host::vcpu::VcpuMode; use crate::{ @@ -47,7 +47,7 @@ use crate::{ }; use super::{lapic::KvmLapic, HFlags, KvmCommonRegs, KvmIrqChipMode}; - +const MSR_IA32_CR_PAT_DEFAULT: u64 = 0x0007_0406_0007_0406; #[derive(Debug)] pub struct X86VcpuArch { /// 最近一次尝试进入虚拟机的主机cpu @@ -257,8 +257,8 @@ impl X86VcpuArch { } #[inline] + #[allow(dead_code)] pub fn is_pae_paging(&mut self) -> bool { - let flag1 = self.is_long_mode(); let flag2 = self.is_pae(); let flag3 = self.is_paging(); @@ -269,7 +269,6 @@ impl X86VcpuArch { #[inline] pub fn is_pae(&mut self) -> bool { !self.read_cr4_bits(Cr4::CR4_ENABLE_PAE).is_empty() - } #[inline] pub fn is_paging(&mut self) -> bool { @@ -606,6 +605,7 @@ impl X86VcpuArch { impl VirtCpu { pub fn init_arch(&mut self, vm: &mut Vm, id: usize) -> Result<(), SystemError> { + //kvm_arch_vcpu_create vm.vcpu_precreate(id)?; self.arch.last_vmentry_cpu = ProcessorId::INVALID; @@ -628,6 +628,10 @@ impl VirtCpu { x86_kvm_ops().vcpu_create(self, vm); + //lots of todo!!! + + self.arch.pat = MSR_IA32_CR_PAT_DEFAULT; + self.load(); self.vcpu_reset(vm, false)?; self.arch.kvm_init_mmu(); @@ -1200,7 +1204,6 @@ impl VirtCpu { if !self.arch.is_register_available(KvmReg::VcpuExregCr3) { x86_kvm_ops().cache_reg(&mut self.arch, KvmReg::VcpuExregCr3); } - kdebug!("read_cr3:: cr3: {:#x}", self.arch.cr3); return self.arch.cr3; } @@ -1316,7 +1319,6 @@ impl VirtCpu { *mmu_reset_needed |= self.read_cr3() != sregs.cr3; self.arch.cr3 = sregs.cr3; - kdebug!("_set_segmenet_regs_common 1:: cr3: {:#x}", self.arch.cr3); self.arch.mark_register_dirty(KvmReg::VcpuExregCr3); @@ -1491,20 +1493,20 @@ impl VirtCpu { } } - pub fn load_pdptrs(&mut self){ + pub fn load_pdptrs(&mut self) { //let mmu = self.arch.mmu(); - if !self.arch.is_register_dirty(KvmReg::VcpuExregCr3){ + if !self.arch.is_register_dirty(KvmReg::VcpuExregCr3) { return; } //if self.arch.is_pae_paging(){ - let mmu = self.arch.mmu(); + let mmu = self.arch.mmu(); - VmxAsm::vmx_vmwrite(guest::PDPTE0_FULL, mmu.pdptrs[0]); - VmxAsm::vmx_vmwrite(guest::PDPTE0_FULL, mmu.pdptrs[1]); - VmxAsm::vmx_vmwrite(guest::PDPTE0_FULL, mmu.pdptrs[2]); - VmxAsm::vmx_vmwrite(guest::PDPTE0_FULL, mmu.pdptrs[3]); + VmxAsm::vmx_vmwrite(guest::PDPTE0_FULL, mmu.pdptrs[0]); + VmxAsm::vmx_vmwrite(guest::PDPTE0_FULL, mmu.pdptrs[1]); + VmxAsm::vmx_vmwrite(guest::PDPTE0_FULL, mmu.pdptrs[2]); + VmxAsm::vmx_vmwrite(guest::PDPTE0_FULL, mmu.pdptrs[3]); //}else{ - // kdebug!("load_pdptrs: not pae paging"); + // kdebug!("load_pdptrs: not pae paging"); //} } } diff --git a/kernel/src/arch/x86_64/vm/mmu/mmu.rs b/kernel/src/arch/x86_64/vm/mmu/mmu.rs index 0632aea06..6edb175b7 100644 --- a/kernel/src/arch/x86_64/vm/mmu/mmu.rs +++ b/kernel/src/arch/x86_64/vm/mmu/mmu.rs @@ -1,10 +1,7 @@ -use crate::arch::kvm::vmx::ept; use crate::arch::vm::asm::VmxAsm; use crate::arch::vm::kvm_host::page::KVM_MIN_FREE_MMU_PAGES; -use crate::arch::vm::mmu::mmu_internal::KvmMmuPage; use crate::kerror; -use crate::mm::page::PageEntry; -use crate::mm::{phys_2_virt, PhysAddr, VirtAddr}; +use crate::mm::PhysAddr; use crate::virt::kvm::host_mem::PAGE_SHIFT; use crate::{arch::mm::X86_64MMArch, kdebug, kwarn}; use crate::{ @@ -15,13 +12,12 @@ use crate::{ }; use alloc::{sync::Arc, vec::Vec}; use bitfield_struct::bitfield; -use x86::vmx::vmcs::guest; use core::intrinsics::likely; use core::ops::{Add, Sub}; -use core::ptr; use raw_cpuid::CpuId; use system_error::SystemError; use x86::controlregs::{Cr0, Cr4}; +use x86::vmx::vmcs::guest; use x86_64::registers::control::EferFlags; use super::super::{vmx::vmx_info, x86_kvm_ops}; @@ -115,7 +111,6 @@ impl PageLevel { pub fn kvm_pages_per_hpage(level: u8) -> u64 { Self::kvm_hpage_size(level) / PAGE_SIZE } - } ///计算给定 GFN(Guest Frame Number)在指定级别上的对齐值 pub fn gfn_round_for_level(gfn: u64, level: u8) -> u64 { @@ -156,11 +151,11 @@ pub struct KvmMmu { pae_root: Vec, - pub pdptrs: [u64;4], + pub pdptrs: [u64; 4], } impl KvmMmu { - pub fn _save_pdptrs(&mut self){ + pub fn _save_pdptrs(&mut self) { self.pdptrs[0] = VmxAsm::vmx_vmread(guest::PDPTE0_FULL); self.pdptrs[1] = VmxAsm::vmx_vmread(guest::PDPTE1_FULL); self.pdptrs[2] = VmxAsm::vmx_vmread(guest::PDPTE2_FULL); @@ -312,7 +307,7 @@ pub struct KvmMmuRoleRegs { /// page falut的返回值, 用于表示页面错误的处理结果 /// 应用在handle_mmio_page_fault()、mmu.page_fault()、fast_page_fault()和 /// kvm_mmu_do_page_fault()等 -#[derive(Debug, Eq, PartialEq, FromPrimitive,Clone)] +#[derive(Debug, Eq, PartialEq, FromPrimitive, Clone)] #[repr(u32)] pub enum PFRet { Continue, // RET_PF_CONTINUE: 到目前为止一切正常,继续处理页面错误。 @@ -588,10 +583,10 @@ impl VirtCpu { Ok(()) } - fn mmu_alloc_direct_roots(&mut self,vm: &Vm) -> Result<(), SystemError> { + fn mmu_alloc_direct_roots(&mut self, vm: &Vm) -> Result<(), SystemError> { let shadow_root_level = self.arch.mmu().root_role.level(); let r: Result<(), SystemError> = self.make_mmu_pages_available(vm); - let root:PhysAddr; + let root: PhysAddr; if KvmMmu::tdp_enabled() { root = self.kvm_tdp_mmu_get_vcpu_root_hpa().unwrap(); let mut mmu = self.arch.mmu(); @@ -609,47 +604,45 @@ impl VirtCpu { Ok(()) } - fn mmu_alloc_shadow_roots(&mut self,_vm: &Vm) -> Result<(), SystemError> { + fn mmu_alloc_shadow_roots(&mut self, _vm: &Vm) -> Result<(), SystemError> { todo!(); } - fn make_mmu_pages_available(&mut self,vm: &Vm) -> Result<(), SystemError> { + fn make_mmu_pages_available(&mut self, vm: &Vm) -> Result<(), SystemError> { let avail = Self::kvm_mmu_available_pages(vm); - if likely(avail >= KVM_MIN_FREE_MMU_PAGES){ + if likely(avail >= KVM_MIN_FREE_MMU_PAGES) { return Ok(()); } //kvm_mmu_zap_oldest_mmu_pages(vm, KVM_REFILL_PAGES - avail); - if Self::kvm_mmu_available_pages(vm) == 0{ + if Self::kvm_mmu_available_pages(vm) == 0 { return Err(SystemError::ENOSPC); } Ok(()) } fn kvm_mmu_available_pages(vm: &Vm) -> usize { - if vm.arch.n_max_mmu_pages > vm.arch.n_used_mmu_pages - { - return vm.arch.n_max_mmu_pages - vm.arch.n_used_mmu_pages + if vm.arch.n_max_mmu_pages > vm.arch.n_used_mmu_pages { + return vm.arch.n_max_mmu_pages - vm.arch.n_used_mmu_pages; } return 0; } - fn kvm_tdp_mmu_get_vcpu_root_hpa(&self) -> Result{ - + fn kvm_tdp_mmu_get_vcpu_root_hpa(&self) -> Result { //todo Check for an existing root before allocating a new one. Note, the // role check prevents consuming an invalid root. let root = self.tdp_mmu_alloc_sp().unwrap(); Ok(PhysAddr::new(root as usize)) } - fn tdp_mmu_alloc_sp(&self) -> Result{ - // 申请并创建新的页表 - let mapper: crate::mm::page::PageMapper = unsafe { - PageMapper::create(PageTableKind::EPT, LockedFrameAllocator) - .ok_or(SystemError::ENOMEM)? - }; - - let ept_root_hpa = mapper.table().phys(); - - self.arch.mmu().root.hpa = ept_root_hpa.data() as u64; - - kdebug!("ept_root_hpa:{:x}!", ept_root_hpa.data() as u64); - - return Ok(self.arch.mmu().root.hpa); + fn tdp_mmu_alloc_sp(&self) -> Result { + // 申请并创建新的页表 + let mapper: crate::mm::page::PageMapper = unsafe { + PageMapper::create(PageTableKind::EPT, LockedFrameAllocator) + .ok_or(SystemError::ENOMEM)? + }; + + let ept_root_hpa = mapper.table().phys(); + + self.arch.mmu().root.hpa = ept_root_hpa.data() as u64; + + kdebug!("ept_root_hpa:{:x}!", ept_root_hpa.data() as u64); + + return Ok(self.arch.mmu().root.hpa); } } diff --git a/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs b/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs index 8c9257335..bc0c98f24 100644 --- a/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs +++ b/kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs @@ -1,27 +1,23 @@ -use alloc::{ - boxed::Box, - sync::{Arc, Weak}, - vec::Vec, -}; -use core::{intrinsics::unlikely, ops::Index, ptr}; +use crate::arch::vm::vmx::ept::debug_eptp; +use alloc::sync::Arc; +use core::{intrinsics::unlikely, ops::Index}; use x86::vmx::vmcs::{guest, host}; -use crate::{arch::{kvm::vmx::{ept::EptMapper, mmu::tdp_set_eptp}, vm::{kvm_host::page, vmx::ept::debug_eptp}}, mm::VirtAddr}; use system_error::SystemError; use crate::{ - arch::{vm::{ - asm::VmxAsm, - kvm_host::{EmulType, KVM_PFN_NOSLOT}, - mmu::{ - mmu::{PFRet, PageLevel}, + arch::{ + vm::{ + asm::VmxAsm, + kvm_host::{EmulType, KVM_PFN_NOSLOT}, + mmu::mmu::{PFRet, PageLevel}, + mtrr::kvm_mtrr_check_gfn_range_consistency, + vmx::{ept::EptPageMapper, PageFaultErr}, }, - mtrr::kvm_mtrr_check_gfn_range_consistency, - vmx::{ept::EptPageMapper, PageFaultErr}, - }, MMArch}, + MMArch, + }, kdebug, kwarn, - libs::spinlock::SpinLockGuard, - mm::{page::PageFlags, syscall::ProtFlags, virt_2_phys, PhysAddr}, + mm::{page::PageFlags, PhysAddr}, virt::{ kvm::host_mem::PAGE_SHIFT, vm::kvm_host::{ @@ -127,10 +123,6 @@ impl VirtCpu { ) -> Result { let mut emulation_type = EmulType::PF; let direct = self.arch.mmu().root_role.get_direct(); - // IMPLICIT_ACCESS 是一个 KVM 定义的标志,用于在模拟触发隐式访问的指令时正确执行 SMAP 检查。 - // 防止内核态代码(超级用户模式)访问用户态内存。它是通过设置 CR4 寄存器中的 SMAP 位来启用的。 - // 如果硬件生成的错误代码与 KVM 定义的值冲突,则发出警告。 - // 清除该标志并继续,不终止虚拟机,因为 KVM 不可能依赖于 KVM 不知道的标志。 if error_code & PageFaultErr::PFERR_IMPLICIT_ACCESS.bits() != 0 { kwarn!("Implicit access error code detected"); error_code &= !PageFaultErr::PFERR_IMPLICIT_ACCESS.bits(); @@ -151,7 +143,13 @@ impl VirtCpu { if r == PFRet::Invalid { r = self - .do_page_fault(vm, cr2_or_gpa, (error_code & 0xFFFFFFFF) as u32, false, emulation_type)? + .do_page_fault( + vm, + cr2_or_gpa, + (error_code & 0xFFFFFFFF) as u32, + false, + emulation_type, + )? .into(); if r == PFRet::Invalid { return Err(SystemError::EIO); @@ -266,7 +264,6 @@ impl VirtCpu { ) -> Result { // 如果 shadow_memtype_mask 为真,并且虚拟机有非一致性 DMA //if shadow_memtype_mask != 0 && self.kvm().lock().arch.noncoherent_dma_count > 0 { - //这一段不是很懂 while page_fault.max_level > PageLevel::Level4K as u8 { let page_num = PageLevel::kvm_pages_per_hpage(page_fault.max_level); @@ -286,6 +283,7 @@ impl VirtCpu { return self.kvm_tdp_mmu_page_fault(vm, page_fault); } + //正常是不会执行到这里的,因为我们的是支持ept的 self.direct_page_fault(page_fault) } fn kvm_tdp_mmu_page_fault( @@ -304,35 +302,23 @@ impl VirtCpu { } r = PFRet::Retry; - //todo 判断页表是否过时 - //if is_page_fault_stale(vcpu, fault) ? + //if self.is_page_fault_stale(page_fault) {return;} + //实际的映射 - r=self.tdp_map(page_fault)?.into(); - + r = self.tdp_mmu_map(page_fault)?.into(); + Ok(r.into()) } - fn tdp_map(&self, page_fault: &mut KvmPageFault) -> Result { - //没有实现huge page相关 - // let mmu = self.arch.mmu(); - // let kvm = self.kvm(); - // let ret = PFRet::Retry; + //没有实现huge page相关 + fn tdp_mmu_map(&self, page_fault: &mut KvmPageFault) -> Result { + // let ret = PFRet::Retry;//下面的逻辑和linux不一致,可能在判断返回值会有问题 let mut mapper = EptPageMapper::lock(); - // if mapper.is_mapped(page_fault) { - // kdebug!("page fault is already mapped"); - // return Ok(PFRet::Continue.into()); - // }; - kdebug!("{:?}",&page_fault); - //flags :rwx - let page_flags: PageFlags = unsafe { PageFlags::from_data(0xb77) } ; - mapper.map(PhysAddr::new( page_fault.gpa() as usize), page_flags); - debug_eptp(); - - //原kvm实现 - // let mut mapper = EptMapper::lock(); - // unsafe { mapper.walk(page_fault.gpa(), page_fault.pfn()< = unsafe { PageFlags::from_data(0xb77) }; + mapper.map(PhysAddr::new(page_fault.gpa() as usize), page_flags); + //debug_eptp(); + kdebug!("The ept_root_addr is {:?}", EptPageMapper::root_page_addr()); //todo: 一些参数的更新 Ok(PFRet::Fixed.into()) diff --git a/kernel/src/arch/x86_64/vm/mmu/pte.rs b/kernel/src/arch/x86_64/vm/mmu/pte.rs index 99b1d30bb..8825cffd9 100644 --- a/kernel/src/arch/x86_64/vm/mmu/pte.rs +++ b/kernel/src/arch/x86_64/vm/mmu/pte.rs @@ -1,6 +1,10 @@ -use core::{fmt::{Debug, Error, Formatter}, marker::PhantomData}; +use core::{ + fmt::{Debug, Error, Formatter}, + marker::PhantomData, +}; -use crate::{arch::MMArch, mm::{page::PageFlags, MemoryManagementArch, PhysAddr}}; +use crate::mm::{page::PageFlags, MemoryManagementArch} +; bitflags::bitflags! { pub struct PteFlags: u64 { diff --git a/kernel/src/arch/x86_64/vm/mmu/tdp_iter.rs b/kernel/src/arch/x86_64/vm/mmu/tdp_iter.rs index 57c577821..76d305b74 100644 --- a/kernel/src/arch/x86_64/vm/mmu/tdp_iter.rs +++ b/kernel/src/arch/x86_64/vm/mmu/tdp_iter.rs @@ -172,7 +172,7 @@ // } // ///在当前页表的当前级别中,移动到下一个条目。下一个条目可以指向一个page backing guest memory , // ///或者另一个页表,或者它可能是不存在的。如果迭代器能够移动到页表中的下一个条目,则返回true, -// ///如果迭代器已经在当前页表的末尾,则返回false。 +// ///如果迭代器已经在当前页表的末尾,则返回false。 // fn try_step_side(&mut self) -> bool { // //检查迭代器是否已经在当前页表的末尾。 // if shadow_pt_index(self.gfn << PAGE_SHIFT, self.level) == (PT64_ENT_PER_PAGE - 1) as u64 { @@ -210,7 +210,7 @@ // if !is_shadow_present_pte(spte) || is_last_spte(spte, level) { // return None; // } -// Some(VirtAddr::new(virt_2_phys//__va +// Some(VirtAddr::new(virt_2_phys//__va // ((spte_to_pfn(spte)< bool { // if (!enable_ept) - // return true; + // return true; false } } diff --git a/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs b/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs index 7485445b7..f0d9f6dca 100644 --- a/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/ept/mod.rs @@ -1,29 +1,22 @@ -use super::vmx_info; -use crate::arch::mm::{LockedFrameAllocator, PageMapper}; +use crate::arch::mm::LockedFrameAllocator; use crate::arch::vm::asm::VmxAsm; -use crate::arch::vm::kvm_host::{gfn_to_gpa, gpa_to_gfn}; use crate::arch::vm::mmu::mmu::PageLevel; use crate::arch::vm::mmu::mmu_internal::KvmPageFault; use crate::arch::vm::mmu::pte::EptPageEntry; -use crate::arch::x86_64::mm::X86_64MMArch; use crate::arch::MMArch; -use crate::libs::rwlock::RwLock; -use crate::libs::spinlock::{SpinLock, SpinLockGuard}; +use crate::libs::spinlock::SpinLockGuard; use crate::mm::allocator::page_frame::FrameAllocator; use crate::mm::page::{ - page_manager_lock_irqsave, Page, PageEntry, PageFlags, PageFlush, PageManager, PageTable, + page_manager_lock_irqsave, Page, PageFlags, PageFlush, PageManager, }; -use crate::mm::{phys_2_virt, MemoryManagementArch, PageTableKind, PhysAddr, VirtAddr}; +use crate::mm::{phys_2_virt, MemoryManagementArch, PhysAddr, VirtAddr}; use crate::smp::core::smp_get_processor_id; use crate::smp::cpu::AtomicProcessorId; use crate::smp::cpu::ProcessorId; -use crate::{kdebug, kerror, kinfo, kwarn}; -use core::marker::PhantomData; +use crate::{kdebug, kerror, kwarn}; use core::ops::Add; use core::sync::atomic::{compiler_fence, AtomicUsize, Ordering}; -use hashbrown::HashMap; use system_error::SystemError; -use x86::apic::Level; use x86::msr; use x86::vmx::vmcs::control; @@ -183,9 +176,8 @@ impl EptPageTable { } let level = self.level - 1; - if phys.is_err() { + if let Err(_phys) = phys { kdebug!("EptPageTable::next_level_table: phys {:?}", phys); - let _phys = phys.unwrap_err(); // Not Present的情况下,返回None // 这里之所以绕了一圈,是因为在虚拟机启动阶段的page_fault的addr是not_present的,但是也要进行映射 // 可能有点问题,但是先这么写 @@ -255,10 +247,11 @@ impl EptPageMapper { EptPageTable::new( VirtAddr::new(phys_2_virt(self.root_page_addr.data())), self.root_page_addr, - PageLevel::LevelNum, + PageLevel::Level512G, ) } pub fn root_page_addr() -> PhysAddr { + //PML4的物理地址 let eptp = VmxAsm::vmx_vmread(control::EPTP_FULL); let addr = eptp & 0xFFFF_FFFF_FFFF_F000; //去除低12位 PhysAddr::new(addr as usize) @@ -340,7 +333,6 @@ impl EptPageMapper { } ///映射一个hpa到指定的gpa - /// fixme:感觉有问题,但说不出来 pub fn map_gpa( &mut self, gpa: PhysAddr, @@ -349,7 +341,6 @@ impl EptPageMapper { // 验证虚拟地址和物理地址是否对齐 if !(gpa.check_aligned(MMArch::PAGE_SIZE)) { kerror!("Try to map unaligned page: gpa={:?}", gpa); - //return None; } // TODO: 验证flags是否合法 @@ -390,19 +381,17 @@ impl EptPageMapper { unsafe { MMArch::write_bytes(MMArch::phys_2_virt(hpa).unwrap(), 0, MMArch::PAGE_SIZE) }; - let entry = EptPageEntry::new(hpa.data() as u64 | 0x0600_0000_0000_0000, flags); + let entry = EptPageEntry::new(hpa.data() as u64, flags); unsafe { table.set_entry(i, entry) }; compiler_fence(Ordering::SeqCst); //打印页表项以进行验证 - kdebug!("4K table: {:?}", table); unsafe { let entry_virt = table.entry_virt(i)?; let _set_entry = MMArch::read::>(entry_virt); - kdebug!("Read EPT entry by MMArch::read::>(entry_virt = {:x}): {:?}",entry_virt.data(), _set_entry); } - return Some(PageFlush::new((unsafe { table.entry_virt(i)? }))); + return Some(PageFlush::new(unsafe { table.entry_virt(i)? })); } else { let next_table = table.next_level_table(i); if let Some(next_table) = next_table { @@ -424,35 +413,32 @@ impl EptPageMapper { // fixme::设置页表项的flags,可能有点问题 let flags: PageFlags = unsafe { PageFlags::from_data(0x7) }; - kdebug!("EptEntryFlags: {:?}", flags); - kdebug!("frame is: {:?} , index is: {:?}", frame, i); // 把新分配的页表映射到当前页表 unsafe { table.set_entry(i, EptPageEntry::new(frame.data() as u64, flags)) }; // 获取新分配的页表 table = table.next_level_table(i)?; - kdebug!("next table: {:?}", table); } } } } } - +#[allow(dead_code)] +//调试EPT页表用,可以打印出EPT页表的值 pub fn debug_eptp() { - let PML4_hpa: PhysAddr = EptPageMapper::lock().table().phys(); + let pml4_hpa: PhysAddr = EptPageMapper::lock().table().phys(); kdebug!("Prepare to read EPTP address"); - let PML4_hva = VirtAddr::new(phys_2_virt(PML4_hpa.data())); - kdebug!("PML4_hpa: 0x{:x}", PML4_hpa.data()); - kdebug!("PML4_hva: 0x{:x}", PML4_hva.data()); //Level1G + let pml4_hva = VirtAddr::new(phys_2_virt(pml4_hpa.data())); + kdebug!("PML4_hpa: 0x{:x}", pml4_hpa.data()); + kdebug!("PML4_hva: 0x{:x}", pml4_hva.data()); //Level512G unsafe { - let entry = MMArch::read::(PML4_hva); + let entry = MMArch::read::(pml4_hva); kdebug!("Value at EPTP address: 0x{:x}", entry); //Level2M // 遍历并打印所有已分配的页面 - traverse_ept_table(PML4_hva, 4); + traverse_ept_table(pml4_hva, 4); } } unsafe fn traverse_ept_table(table_addr: VirtAddr, level: u8) { - if level == (u8::MAX) { return; } @@ -472,7 +458,7 @@ unsafe fn traverse_ept_table(table_addr: VirtAddr, level: u8) { }; let entry_value = MMArch::read::(next_level_addr); kdebug!( - "Level {} - index {}: HPA: 0x{:x}, read_to: 0x{:x}", + "Level {} - index {}: HPA: 0x{:016x}, read_to: 0x{:016x}", level, i, *entry, /*& 0xFFFFFFFFF000*/ diff --git a/kernel/src/arch/x86_64/vm/vmx/exit.rs b/kernel/src/arch/x86_64/vm/vmx/exit.rs index 6c332ae72..24d38e45a 100644 --- a/kernel/src/arch/x86_64/vm/vmx/exit.rs +++ b/kernel/src/arch/x86_64/vm/vmx/exit.rs @@ -1,18 +1,17 @@ use bitfield_struct::bitfield; use system_error::SystemError; -use x86::vmx::vmcs::{control, guest, host, ro}; +use x86::vmx::vmcs::{guest, ro}; use crate::{ arch::{ - kvm::vmx::{vmcs::VmcsFields, vmexit::adjust_rip, vmx_asm_wrapper::vmx_vmread}, + kvm::vmx::{vmcs::VmcsFields, vmx_asm_wrapper::vmx_vmread}, vm::asm::{IntrInfo, VmxAsm}, }, - kdebug, kerror, - libs::spinlock::SpinLockGuard, + kdebug, virt::vm::kvm_host::{vcpu::VirtCpu, Vm}, }; -use super::{ept::EptViolationExitQual, vmx_info, PageFaultErr, Vmx}; +use super::{ept::EptViolationExitQual, vmx_info, PageFaultErr}; extern crate num_traits; #[bitfield(u32)] @@ -267,7 +266,6 @@ impl VmxExitHandlers { VmxExitReasonBasic::EPT_VIOLATION => { let r = Some(Self::handle_ept_violation(vcpu, vm)); debug(); - //adjust_rip(guest_rip).unwrap(); r } VmxExitReasonBasic::EXTERNAL_INTERRUPT => { @@ -305,37 +303,38 @@ impl VmxExitHandlers { // 根据故障类型确定错误代码 let mut error_code = if exit_qualification & (EptViolationExitQual::ACC_READ.bits()) != 0 { - kdebug!("error_code::ACC_READ"); + //kdebug!("error_code::ACC_READ"); PageFaultErr::PFERR_USER.bits() } else { 0 }; error_code |= if exit_qualification & (EptViolationExitQual::ACC_WRITE.bits()) != 0 { - kdebug!("error_code::ACC_WRITE"); + //kdebug!("error_code::ACC_WRITE"); PageFaultErr::PFERR_WRITE.bits() } else { 0 }; error_code |= if exit_qualification & (EptViolationExitQual::ACC_INSTR.bits()) != 0 { //actice - kdebug!("error_code::ACC_INSTR"); + //kdebug!("error_code::ACC_INSTR"); PageFaultErr::PFERR_FETCH.bits() } else { 0 }; error_code |= if exit_qualification & (EptViolationExitQual::RWX_MASK.bits()) != 0 { - kdebug!("error_code::RWX_MASK"); + //kdebug!("error_code::RWX_MASK"); PageFaultErr::PFERR_PRESENT.bits() } else { 0 }; - if exit_qualification & (EptViolationExitQual::GVA_IS_VALID.bits()) != 0 {//调试用 - kdebug!("GVA is valid"); + if exit_qualification & (EptViolationExitQual::GVA_IS_VALID.bits()) != 0 { + //调试用 + //kdebug!("GVA is valid"); } else { - kdebug!("GVA is invalid"); + //kdebug!("GVA is invalid"); } error_code |= if exit_qualification & (EptViolationExitQual::GVA_TRANSLATED.bits()) != 0 { - kdebug!("error_code:GVA GVA_TRANSLATED"); + //kdebug!("error_code:GVA GVA_TRANSLATED"); PageFaultErr::PFERR_GUEST_FINAL.bits() //active } else { PageFaultErr::PFERR_GUEST_PAGE.bits() @@ -355,50 +354,50 @@ impl VmxExitHandlers { vcpu.page_fault(vm, gpa, error_code, None, 0) } } -fn debug(){ -// // 3 -// let info = VmxAsm::vmx_vmread(VmcsFields::VMEXIT_INSTR_LEN as u32); -// kdebug!("vmexit handler: VMEXIT_INSTR_LEN: 0x{:x}!", info); +fn debug() { + // // 3 + // let info = VmxAsm::vmx_vmread(VmcsFields::VMEXIT_INSTR_LEN as u32); + // kdebug!("vmexit handler: VMEXIT_INSTR_LEN: 0x{:x}!", info); -// //0 -// let info = VmxAsm::vmx_vmread(VmcsFields::VMEXIT_INSTR_INFO as u32); -// kdebug!("vmexit handler: VMEXIT_INSTR_INFO: 0x{:x}!", info); + // //0 + // let info = VmxAsm::vmx_vmread(VmcsFields::VMEXIT_INSTR_INFO as u32); + // kdebug!("vmexit handler: VMEXIT_INSTR_INFO: 0x{:x}!", info); -// //0x64042 -// /*0x64042: + // //0x64042 + // /*0x64042: -// 将其转换为二进制:0x64042 的二进制表示是 110010000001000010。 -// 每个位代表一个异常向量(例如,除以零,调试,不可屏蔽中断,断点等)。 + // 将其转换为二进制:0x64042 的二进制表示是 110010000001000010。 + // 每个位代表一个异常向量(例如,除以零,调试,不可屏蔽中断,断点等)。 -// 从 vmx_update_exception_bitmap 函数中,我们看到设置的特定异常: + // 从 vmx_update_exception_bitmap 函数中,我们看到设置的特定异常: -// PF_VECTOR:页面错误 -// UD_VECTOR:未定义操作码 -// MC_VECTOR:机器检查 -// DB_VECTOR:调试 -// AC_VECTOR:对齐检查 + // PF_VECTOR:页面错误 + // UD_VECTOR:未定义操作码 + // MC_VECTOR:机器检查 + // DB_VECTOR:调试 + // AC_VECTOR:对齐检查 -// 值 0x64042 设置了与这些异常相对应的位,这意味着当这些异常在来宾中发生时将导致 VM 退出。 */ -// let info = VmxAsm::vmx_vmread(control::EXCEPTION_BITMAP); -// kdebug!("vmexit handler: EXCEPTION_BITMAP: 0x{:x}!", info); + // 值 0x64042 设置了与这些异常相对应的位,这意味着当这些异常在来宾中发生时将导致 VM 退出。 */ + // let info = VmxAsm::vmx_vmread(control::EXCEPTION_BITMAP); + // kdebug!("vmexit handler: EXCEPTION_BITMAP: 0x{:x}!", info); -// //9 -// let info = VmxAsm::vmx_vmread(control::PAGE_FAULT_ERR_CODE_MASK); -// kdebug!("vmexit handler: PAGE_FAULT_ERR_CODE_MASK: 0x{:x}!", info); + // //9 + // let info = VmxAsm::vmx_vmread(control::PAGE_FAULT_ERR_CODE_MASK); + // kdebug!("vmexit handler: PAGE_FAULT_ERR_CODE_MASK: 0x{:x}!", info); -// //1 -// let info = VmxAsm::vmx_vmread(control::PAGE_FAULT_ERR_CODE_MATCH); -// kdebug!("vmexit handler: PAGE_FAULT_ERR_CODE_MATCH: 0x{:x}!", info); + // //1 + // let info = VmxAsm::vmx_vmread(control::PAGE_FAULT_ERR_CODE_MATCH); + // kdebug!("vmexit handler: PAGE_FAULT_ERR_CODE_MATCH: 0x{:x}!", info); -// //0 -// let info = VmxAsm::vmx_vmread(control::EPTP_LIST_ADDR_FULL); -// kdebug!("vmexit handler: EPTP_LIST_ADDR_FULL: 0x{:x}!", info); + // //0 + // let info = VmxAsm::vmx_vmread(control::EPTP_LIST_ADDR_FULL); + // kdebug!("vmexit handler: EPTP_LIST_ADDR_FULL: 0x{:x}!", info); -// let info = VmxAsm::vmx_vmread(ro::VM_INSTRUCTION_ERROR); -// kdebug!("vmexit handler: VM_INSTRUCTION_ERROR: 0x{:x}!", info); + // let info = VmxAsm::vmx_vmread(ro::VM_INSTRUCTION_ERROR); + // kdebug!("vmexit handler: VM_INSTRUCTION_ERROR: 0x{:x}!", info); - let info = VmxAsm::vmx_vmread(ro::EXIT_REASON); - kdebug!("vmexit handler: EXIT_REASON:{}!", info);//48:EPT VIOLATION + // let info = VmxAsm::vmx_vmread(ro::EXIT_REASON); + // kdebug!("vmexit handler: EXIT_REASON:0x{:x}!", info);//EPT VIOLATION // let info = VmxAsm::vmx_vmread(ro::VMEXIT_INTERRUPTION_INFO); // kdebug!("vmexit handler: VMEXIT_INTERRUPTION_INFO: 0x{:x}!", info); @@ -408,7 +407,7 @@ fn debug(){ // let info = VmxAsm::vmx_vmread(ro::IDT_VECTORING_INFO); // kdebug!("vmexit handler: IDT_VECTORING_INFO: 0x{:x}!", info); - + // let info = VmxAsm::vmx_vmread(ro::IDT_VECTORING_ERR_CODE); // kdebug!("vmexit handler: IDT_VECTORING_ERR_CODE: 0x{:x}!", info); @@ -418,7 +417,6 @@ fn debug(){ // let info = VmxAsm::vmx_vmread(ro::VMEXIT_INSTRUCTION_INFO); // kdebug!("vmexit handler: VMEXIT_INSTRUCTION_INFO: 0x{:x}!", info); - //panic // let info = VmxAsm::vmx_vmread(control::EPTP_INDEX); // kdebug!("vmexit handler: EPTP_INDEX: 0x{:x}!", info); @@ -426,5 +424,4 @@ fn debug(){ //panic // let info = VmxAsm::vmx_vmread(control::VIRT_EXCEPTION_INFO_ADDR_FULL); // kdebug!("vmexit handler: VIRT_EXCEPTION_INFO_ADDR_FULL: 0x{:x}!", info); - -} \ No newline at end of file +} diff --git a/kernel/src/arch/x86_64/vm/vmx/mod.rs b/kernel/src/arch/x86_64/vm/vmx/mod.rs index 12b84a524..bfe3f3fb1 100644 --- a/kernel/src/arch/x86_64/vm/vmx/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/mod.rs @@ -2,7 +2,6 @@ use core::intrinsics::likely; use core::intrinsics::unlikely; use core::sync::atomic::{AtomicBool, Ordering}; use exit::VmxExitHandlers; -use x86::segmentation::GateDescriptorBuilder; use x86_64::registers::control::Cr3Flags; use x86_64::structures::paging::PhysFrame; @@ -422,10 +421,9 @@ impl VmxKvmFunc { VmxAsm::vmx_vmwrite(seg_field.limit, 0xffff); let mut ar = 0x93; - if seg == VcpuSegment::CS {//todo疑似DS + if seg == VcpuSegment::CS { ar |= 0x08; } - VmxAsm::vmx_vmwrite(seg_field.ar_bytes, ar); } } @@ -482,7 +480,6 @@ impl KvmFunc for VmxKvmFunc { // VCPU_EXREG_PDPTR KvmReg::NrVcpuRegs => { if vmx_info().enable_ept { - todo!() } } @@ -1204,7 +1201,7 @@ impl KvmFunc for VmxKvmFunc { if basic == VmxExitReasonBasic::EXTERNAL_INTERRUPT { Vmx::handle_external_interrupt_irqoff(vcpu); } else if basic == VmxExitReasonBasic::EXCEPTION_OR_NMI { - todo!() + //todo!() } } @@ -1240,7 +1237,6 @@ impl KvmFunc for VmxKvmFunc { } else if vcpu.arch.is_register_dirty(KvmReg::VcpuExregCr3) { guest_cr3 = vcpu.arch.cr3; kdebug!("load_mmu_pgd: guest_cr3 = {:#x}", guest_cr3); - } else { return; } @@ -1818,7 +1814,7 @@ impl Vmx { .vmentry_ctrl .contains(EntryControls::LOAD_IA32_PAT) { - VmxAsm::vmx_vmwrite(guest::IA32_PAT_FULL, vcpu.arch.pat)//todo + VmxAsm::vmx_vmwrite(guest::IA32_PAT_FULL, vcpu.arch.pat) //todo } let mut loaded_vmcs = vcpu.vmx().loaded_vmcs.lock(); @@ -1887,11 +1883,13 @@ impl Vmx { /// 打印VMCS信息用于debug pub fn dump_vmcs(&self, vcpu: &VirtCpu) { - let vmentry_ctl = - unsafe { EntryControls::from_bits_unchecked(self.vmread(control::VMENTRY_CONTROLS) as u32) }; + let vmentry_ctl = unsafe { + EntryControls::from_bits_unchecked(self.vmread(control::VMENTRY_CONTROLS) as u32) + }; - let vmexit_ctl = - unsafe { ExitControls::from_bits_unchecked(self.vmread(control::VMEXIT_CONTROLS) as u32) }; + let vmexit_ctl = unsafe { + ExitControls::from_bits_unchecked(self.vmread(control::VMEXIT_CONTROLS) as u32) + }; let cpu_based_exec_ctl = PrimaryControls::from_bits_truncate( self.vmread(control::PRIMARY_PROCBASED_EXEC_CONTROLS) as u32, @@ -1904,9 +1902,11 @@ impl Vmx { // let cr4 = Cr4::from_bits_truncate(self.vmread(guest::CR4) as usize); let secondary_exec_control = if self.has_sceondary_exec_ctrls() { - unsafe { SecondaryControls::from_bits_unchecked( - self.vmread(control::SECONDARY_PROCBASED_EXEC_CONTROLS) as u32, - ) } + unsafe { + SecondaryControls::from_bits_unchecked( + self.vmread(control::SECONDARY_PROCBASED_EXEC_CONTROLS) as u32, + ) + } } else { SecondaryControls::empty() }; @@ -2984,7 +2984,11 @@ impl Vmx { exit_fastpath: ExitFastpathCompletion, ) -> Result { let exit_reason = vcpu.vmx().exit_reason; - + // self.dump_vmcs(vcpu); + { + let reason = self.vmread(ro::EXIT_REASON); + kdebug!("vm_exit reason 0x{:x}\n", reason); + } let unexpected_vmexit = |vcpu: &mut VirtCpu| -> Result { kerror!("vmx: unexpected exit reason {:?}\n", exit_reason); @@ -3050,16 +3054,16 @@ impl Vmx { if exit_fastpath != ExitFastpathCompletion::None { return Err(SystemError::EINVAL); } - + match VmxExitHandlers::try_handle_exit( vcpu, vm, VmxExitReasonBasic::from(exit_reason.basic()), ) { Some(Ok(r)) => { - self.dump_vmcs(vcpu); - return Ok(r) - }, + kdebug!("vmx: handled exit return {:?}\n", r); + return Ok(r); + } Some(Err(_)) | None => unexpected_vmexit(vcpu), } } @@ -3655,14 +3659,22 @@ pub enum VmxL1dFlushState { NotRequired, } +#[derive(Debug, PartialEq)] pub struct VmxSegmentField { selector: u32, base: u32, limit: u32, ar_bytes: u32, } - +//fix pub const KVM_VMX_SEGMENT_FIELDS: &[VmxSegmentField] = &[ + // ES + VmxSegmentField { + selector: guest::ES_SELECTOR, + base: guest::ES_BASE, + limit: guest::ES_LIMIT, + ar_bytes: guest::ES_ACCESS_RIGHTS, + }, // CS VmxSegmentField { selector: guest::CS_SELECTOR, @@ -3670,6 +3682,13 @@ pub const KVM_VMX_SEGMENT_FIELDS: &[VmxSegmentField] = &[ limit: guest::CS_LIMIT, ar_bytes: guest::CS_ACCESS_RIGHTS, }, + // SS + VmxSegmentField { + selector: guest::SS_SELECTOR, + base: guest::SS_BASE, + limit: guest::SS_LIMIT, + ar_bytes: guest::SS_ACCESS_RIGHTS, + }, // DS VmxSegmentField { selector: guest::DS_SELECTOR, @@ -3677,13 +3696,6 @@ pub const KVM_VMX_SEGMENT_FIELDS: &[VmxSegmentField] = &[ limit: guest::DS_LIMIT, ar_bytes: guest::DS_ACCESS_RIGHTS, }, - // ES - VmxSegmentField { - selector: guest::ES_SELECTOR, - base: guest::ES_BASE, - limit: guest::ES_LIMIT, - ar_bytes: guest::ES_ACCESS_RIGHTS, - }, // FS VmxSegmentField { selector: guest::FS_SELECTOR, @@ -3698,13 +3710,6 @@ pub const KVM_VMX_SEGMENT_FIELDS: &[VmxSegmentField] = &[ limit: guest::GS_LIMIT, ar_bytes: guest::GS_ACCESS_RIGHTS, }, - // SS - VmxSegmentField { - selector: guest::SS_SELECTOR, - base: guest::SS_BASE, - limit: guest::SS_LIMIT, - ar_bytes: guest::SS_ACCESS_RIGHTS, - }, // TR VmxSegmentField { selector: guest::TR_SELECTOR, @@ -3755,6 +3760,3 @@ unsafe extern "C" fn vmx_spec_ctrl_restore_host(_vcpu_vmx: &VmxVCpuPriv, _flags: // TODO kwarn!("vmx_spec_ctrl_restore_host todo!"); } -const fn vmcs_control_bit(x: u32) -> u32 { - 1 << (x & 0x1f) -} \ No newline at end of file diff --git a/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs b/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs index 87eaa10ce..053e6790e 100644 --- a/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs +++ b/kernel/src/arch/x86_64/vm/vmx/vmcs/mod.rs @@ -287,9 +287,10 @@ impl LoadedVmcs { } pub fn msr_write_intercepted(&mut self, msr: u32) -> bool { - if unsafe { PrimaryControls::from_bits_unchecked(self.controls_get(ControlsType::Exec) as u32) - .contains(PrimaryControls::USE_MSR_BITMAPS) } - { + if unsafe { + PrimaryControls::from_bits_unchecked(self.controls_get(ControlsType::Exec) as u32) + .contains(PrimaryControls::USE_MSR_BITMAPS) + } { return true; } diff --git a/kernel/src/virt/vm/kvm_dev.rs b/kernel/src/virt/vm/kvm_dev.rs index 94b7270ee..40dae5420 100644 --- a/kernel/src/virt/vm/kvm_dev.rs +++ b/kernel/src/virt/vm/kvm_dev.rs @@ -427,13 +427,12 @@ impl IndexNode for KvmVcpuDev { let mut sreg = UapiKvmSegmentRegs::default(); user_reader.copy_one_from_user(&mut sreg, 0)?; - if let Ok(res) = self.vcpu.lock().set_segment_regs(&mut sreg){ + if let Ok(res) = self.vcpu.lock().set_segment_regs(&mut sreg) { return Ok(0); - }else{ + } else { kdebug!("set segment regs failed"); return Err(SystemError::EINVAL); } - } _ => { diff --git a/kernel/src/virt/vm/kvm_host/mem.rs b/kernel/src/virt/vm/kvm_host/mem.rs index b768ada55..094f1b333 100644 --- a/kernel/src/virt/vm/kvm_host/mem.rs +++ b/kernel/src/virt/vm/kvm_host/mem.rs @@ -1,5 +1,4 @@ use alloc::{ - boxed::Box, sync::{Arc, Weak}, vec::Vec, }; diff --git a/kernel/src/virt/vm/kvm_host/mod.rs b/kernel/src/virt/vm/kvm_host/mod.rs index a3883b507..775e931b9 100644 --- a/kernel/src/virt/vm/kvm_host/mod.rs +++ b/kernel/src/virt/vm/kvm_host/mod.rs @@ -18,10 +18,7 @@ use crate::{ CurrentKvmManager, KvmArch, VirtCpuArch, }, filesystem::vfs::file::{File, FileMode}, - libs::{ - rbtree::RBTree, - spinlock::{SpinLock, SpinLockGuard}, - }, + libs::spinlock::{SpinLock, SpinLockGuard}, mm::ucontext::AddressSpace, process::ProcessManager, smp::cpu::ProcessorId, diff --git a/kernel/src/virt/vm/kvm_main.rs b/kernel/src/virt/vm/kvm_main.rs index 47a6a3ec4..32b66cfec 100644 --- a/kernel/src/virt/vm/kvm_main.rs +++ b/kernel/src/virt/vm/kvm_main.rs @@ -1,5 +1,3 @@ use super::kvm_host::mem::KvmMmuMemoryCache; -fn kvm_mmu_memory_cache_alloc(mc: KvmMmuMemoryCache){ - -} \ No newline at end of file +fn kvm_mmu_memory_cache_alloc(mc: KvmMmuMemoryCache) {} diff --git a/kernel/src/virt/vm/mod.rs b/kernel/src/virt/vm/mod.rs index 1eebc27fd..9491e81b2 100644 --- a/kernel/src/virt/vm/mod.rs +++ b/kernel/src/virt/vm/mod.rs @@ -1,4 +1,4 @@ pub mod kvm_dev; pub mod kvm_host; +pub mod kvm_main; pub mod user_api; -pub mod kvm_main; \ No newline at end of file diff --git a/tools/.gdbinit b/tools/.gdbinit index aaec0d054..222af0c0d 100644 --- a/tools/.gdbinit +++ b/tools/.gdbinit @@ -2,7 +2,11 @@ target remote localhost:1234 file bin/kernel/kernel.elf set follow-fork-mode child -b kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs:310 -b kernel/src/arch/x86_64/vm/vmx/ept/mod.rs:274 -b kernel/src/arch/x86_64/vm/vmx/ept/mod.rs:177 -b kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs:1248 \ No newline at end of file +b kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs:1090 +b kernel/src/arch/x86_64/vm/vmx/mod.rs:650 +b kernel/src/arch/x86_64/vm/vmx/mod.rs:653 +b kernel/src/arch/x86_64/vm/vmx/mod.rs:426 +# b kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs:310 +# b kernel/src/arch/x86_64/vm/vmx/ept/mod.rs:274 +# b kernel/src/arch/x86_64/vm/vmx/ept/mod.rs:177 +# b kernel/src/arch/x86_64/vm/kvm_host/vcpu.rs:1248 \ No newline at end of file diff --git a/user/apps/test_kvm/main.c b/user/apps/test_kvm/main.c index c66dc9967..6c2383810 100644 --- a/user/apps/test_kvm/main.c +++ b/user/apps/test_kvm/main.c @@ -512,26 +512,29 @@ int kvm(uint8_t code[], size_t code_len) /*汇编指令解释 0xB0 0x61 (mov al, 0x61) - 解释:将立即数 0x61(ASCII 字符 'a')加载到 AL 寄存器中。 -0xBA 0x17 0x02 (mov dx, 0x0217) +0xBA 0x17 0x02 (mov dx, 0x0217) +Linux: ilen = 3 外中断和EPT_VIOLATION 解释:将立即数 0x0217 加载到 DX 寄存器中。 -0xEE (out dx, al) +0xEE (out dx, al) 解释:将 AL 寄存器的值输出到 DX 寄存器指定的端口。 -0xB0 0x0A (mov al, 0x0A) +0xB0 0x0A (mov al, 0x0A) 解释:将立即数 0x0A(换行符)加载到 AL 寄存器中。 -0xEE (out dx, al) +0xEE (out dx, al) 解释:将 AL 寄存器的值输出到 DX 寄存器指定的端口。 -0xF4 (hlt) +0xF4 (hlt) 解释:执行 hlt 指令,使处理器进入休眠状态,直到下一个外部中断到来。*/ + int main() { - uint8_t code[] = "\xB0\x61\xBA\x17\x02\xEE\xB0\n\xEE\xF4"; + //uint8_t code[] = "\xB0\x61\xBA\x17\x02\xEE\xB0\n\xEE\xF4"; + //uint8_t code[] = "\xB0\x61\xBA\x17\x02\xEE\xF4"; + uint8_t code[] = "\xB0\x61\xF4"; kvm(code, sizeof(code)); return 0; } From c96a970a70e830f2405892ff7fdc77819a99c737 Mon Sep 17 00:00:00 2001 From: BrahmaMantra <2033552517@qq.com> Date: Thu, 5 Dec 2024 21:22:51 +0800 Subject: [PATCH 14/18] fmt --- kernel/src/arch/x86_64/vm/vmx/exit.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/src/arch/x86_64/vm/vmx/exit.rs b/kernel/src/arch/x86_64/vm/vmx/exit.rs index 24d38e45a..aaf93603c 100644 --- a/kernel/src/arch/x86_64/vm/vmx/exit.rs +++ b/kernel/src/arch/x86_64/vm/vmx/exit.rs @@ -350,7 +350,7 @@ impl VmxExitHandlers { // if allow_smaller_maxphyaddr && kvm_vcpu_is_illegal_gpa(vcpu, gpa) { // return kvm_emulate_instruction(vcpu, 0); // } - kdebug!("EPT violation: error_code={:#x}", error_code); + //kdebug!("EPT violation: error_code={:#x}", error_code); vcpu.page_fault(vm, gpa, error_code, None, 0) } } From fc495baf77c4d946ec08ac58c43ba4cac2958ed4 Mon Sep 17 00:00:00 2001 From: BrahmaMantra <2033552517@qq.com> Date: Tue, 10 Dec 2024 14:52:47 +0800 Subject: [PATCH 15/18] Remove /fixme from .gitignore --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 3b57449fc..52e685b56 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,3 @@ Cargo.lock .cache compile_commands.json /logs/ -/fixme/ From 743656b9afb289d03d61b3201a5efed2d38db665 Mon Sep 17 00:00:00 2001 From: BrahmaMantra <2033552517@qq.com> Date: Tue, 10 Dec 2024 14:57:27 +0800 Subject: [PATCH 16/18] Remove /fixme file --- .gitignore | 2 +- fixme/Dragonos.md | 111 ----------------------------------- fixme/fixme.md | 60 ------------------- fixme/image-1.png | Bin 112467 -> 0 bytes fixme/image-2.png | Bin 164920 -> 0 bytes fixme/image-3.png | Bin 212168 -> 0 bytes fixme/image-4.png | Bin 202180 -> 0 bytes fixme/image-5.png | Bin 71591 -> 0 bytes fixme/image-6.png | Bin 329926 -> 0 bytes fixme/image-7.png | Bin 148314 -> 0 bytes fixme/image.png | Bin 184573 -> 0 bytes fixme/mylinux.md | 143 ---------------------------------------------- fixme/question.md | 25 -------- 13 files changed, 1 insertion(+), 340 deletions(-) delete mode 100644 fixme/Dragonos.md delete mode 100644 fixme/fixme.md delete mode 100644 fixme/image-1.png delete mode 100644 fixme/image-2.png delete mode 100644 fixme/image-3.png delete mode 100644 fixme/image-4.png delete mode 100644 fixme/image-5.png delete mode 100644 fixme/image-6.png delete mode 100644 fixme/image-7.png delete mode 100644 fixme/image.png delete mode 100644 fixme/mylinux.md delete mode 100644 fixme/question.md diff --git a/.gitignore b/.gitignore index 52e685b56..38da975f6 100644 --- a/.gitignore +++ b/.gitignore @@ -19,4 +19,4 @@ cppcheck.xml Cargo.lock .cache compile_commands.json -/logs/ +/logs/ \ No newline at end of file diff --git a/fixme/Dragonos.md b/fixme/Dragonos.md deleted file mode 100644 index a177b3e07..000000000 --- a/fixme/Dragonos.md +++ /dev/null @@ -1,111 +0,0 @@ -EPT_VIOLATION遇到问题: -1. 编译linux内核源码,匹配相同流程的vcpu Vmcs的差异,发现某些error_code和bits对不上 -[ DEBUG ] (src/arch/x86_64/vm/mmu/mmu_internal.rs:323) -KvmPageFault { - addr: PhysAddr(0x0), - error_code: 17,//0x11 多了RWX_MASK - prefetch: false, - exec: true, - write: false, - present: true, - rsvd: false, - user: false, - is_tdp: true, - nx_huge_page_workaround_enabled: false, - huge_page_disallowed: false, max_level: 3, - req_level: 1, - goal_level: 1, - gfn: 0, - slot: - Some(LockedKvmMemSlot { inner: RwLock { lock: 0, data: UnsafeCell { .. } } }), mmu_seq: 0, pfn: 111275, hva: 65536, map_writable: false, write_fault_to_shadow_pgtable: false } - -[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:359) vmexit handler: VMEXIT_INSTR_LEN: 0x3! -[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:363) vmexit handler: VMEXIT_INSTR_INFO: 0x0! -[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:381) vmexit handler: EXCEPTION_BITMAP: 0x64042! -[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:385) vmexit handler: PAGE_FAULT_ERR_CODE_MASK: 0x9! -[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:389) vmexit handler: PAGE_FAULT_ERR_CODE_MATCH: 0x1! -[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:393) vmexit handler: EPTP_LIST_ADDR_FULL: 0x0! -[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:396) vmexit handler: VM_INSTRUCTION_ERROR: 0x1c! -[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:399) vmexit handler: EXIT_REASON: 48! //EPT VIOLATION -[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:402) vmexit handler: VMEXIT_INTERRUPTION_INFO: 0x0! -[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:405) vmexit handler: VMEXIT_INTERRUPTION_ERR_CODE: 0x0! -[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:408) vmexit handler: IDT_VECTORING_INFO: 0x0! -[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:411) vmexit handler: IDT_VECTORING_ERR_CODE: 0x0! -[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:414) vmexit handler: VMEXIT_INSTRUCTION_LEN: 0x3! -[ DEBUG ] (src/arch/x86_64/vm/vmx/exit.rs:417) vmexit handler: VMEXIT_INSTRUCTION_INFO: 0x0! - - - vmx_update_host_rsp - vmx_spec_ctrl_restore_host todo! - VMCS addr: 0xffff80001b2cf000, last attempted VM-entry on CPU ProcessorId(0) -*** Guest State *** -$ CR0: actual = 0x30 11 0000 - Bit 4 (ET - Extension Type): 1,指示协处理器的类型(x87 协处理器)。 - Bit 5 (NE - Numeric Error): 1,控制浮点异常的处理。 - , shadow = 0x60000010, gh_mask = 0xe0040037 -$ CR4: actual = 0x2000 - VMXE (bit 13): 设置为 1,代表启用VMX - , shadow = 0x0, gh_mask = 0x767871 -$ CR3: actual = 0x0 -$ PDPTR0 = 0x0, PDPTR1 = 0x0 -$ PDPTR2 = 0x0, PDPTR3 = 0x0 - RSP = 0x200000, RIP = 0x7d # 为什么有值 -$ RFLAGS = 0x10002, DR7 = 0x400 -$ Sysenter RSP = 0x0, CS:RIP = 0x0:0x0 -$ CS: sel = 0x0, attr = 0x9b, limit = 0xffff, base = 0x0 -$ DS: sel = 0x0, attr = 0x93, limit = 0xffff, base = 0x0 -$ SS: sel = 0x0, attr = 0x93, limit = 0xffff, base = 0x0 -$ ES: sel = 0x0, attr = 0x93, limit = 0xffff, base = 0x0 -$ FS: sel = 0x0, attr = 0x93, limit = 0xffff, base = 0x0 -$ GS: sel = 0x0, attr = 0x93, limit = 0xffff, base = 0x0 -$ GDTR: limit = 0xffff, base = 0x0 -$ LDTR: sel = 0x0, attr = 0x82, limit = 0xffff, base = 0x0 -$ IDTR: limit = 0xffff, base = 0x0 -$ TR: sel = 0x0, attr = 0x8b, limit = 0xffff, base = 0x0 -$ EFER = 0x0 -$ PAT = 0x7040600070406 -$ DebugCtl = 0x0, DebugExceptions = 0x0 -$ Interruptibility = 0x0, ActivityState = 0x0 - -*** Host State *** -$ RIP = 0xffff80000100b06e, RSP = 0xffff80001a9df988 - CS = 0x8, SS = 0x28, DS = 0x0, ES = 0x0, FS = 0x0, GS = 0x0, TR = 0x50 - FSBase = 0x408778, GSBase = 0x0, TRBase = 0xffff800001ee3078 - GDTBase = 0xffff800000137010, IDTBase = 0xffff80000013738c - CR0 = 0x80000033 10000000000000000000000000110011 - PE (bit 0): 设置为 1,启用保护模式。 - MP (bit 1): 设置为 1,控制协处理器的操作。 - ET (bit 4): 设置为 1,表示系统使用的是387浮点协处理器 - NE (bit 5): 控制浮点异常的处理。 - PG (bit 31): 设置为 1,启用分页。 - -$ , CR3 = 0x1a968000, - CR4 = 0x2620 10011000100000 - PAE (Physical Address Extension, bit 5): 启用物理地址扩展。 - OSFXSR (Operating System Support for FXSAVE and FXRSTOR instructions, bit 9):。启用操作系统对 FXSAVE 和 FXRSTOR 指令的支持。 - OSXMMEXCPT (Operating System Support for Unmasked SIMD Floating-Point Exceptions, bit 10),启用操作系统对未屏蔽的 SIMD 浮点异常的支持。 - VMXE (VMX Enable, bit 13): 启用 VMX(虚拟机扩展)。 - Sysenter RSP = 0x0, CS:RIP=0x0:0x0 - EFER = 0x501 - PAT = 0x7040600070406 # 这在linux是Guest PAT - -*** Control State *** - CPUBased = USE_TSC_OFFSETTING 3 | HLT_EXITING 7 | MWAIT_EXITING 10| RDPMC_EXITING 11 | CR8_LOAD_EXITING 16| CR8_STORE_EXITING 19 | UNCOND_IO_EXITING 24 | USE_MSR_BITMAPS 28| MONITOR_EXITING 29 | SECONDARY_CONTROLS 31, - - 10110001000010010000110010001000 b1090c88 - - SecondaryExec = 0x8ea, -$ TertiaryExec = 0(Unused) - - PinBased = EXTERNAL_INTERRUPT_EXITING 0 | NMI_EXITING 3 | VIRTUAL_NMIS 5, 101000 0x28 - - EntryControls = LOAD_DEBUG_CONTROLS 2 | LOAD_IA32_PAT 14 | LOAD_IA32_EFER 15, 1100000000000100 c004 - ExitControls = SAVE_DEBUG_CONTROLS 2 | HOST_ADDRESS_SPACE_SIZE 9 | ACK_INTERRUPT_ON_EXIT 15 | LOAD_IA32_PAT 19 | LOAD_IA32_EFER 21 0x288204 -$ ExceptionBitmap = 0x60042, PFECmask = 0x0, PFECmatch = 0x0 -$ VMEntry: intr_info = 0x0, errcode = 0x0, ilen = 0x0 - VMExit: intr_info = 0x0, errcode = 0x0, ilen = 0x3 # ?? - reason = 0x30, qualification = 0x182 - IDTVectoring: info = 0x8000030d, errcode = 0x0 - TSC Offset = 0x0 -$ EPT pointer = 0x1b2e901e //少了huge page -$ Virtual processor ID = 0x1 \ No newline at end of file diff --git a/fixme/fixme.md b/fixme/fixme.md deleted file mode 100644 index 60fe005ec..000000000 --- a/fixme/fixme.md +++ /dev/null @@ -1,60 +0,0 @@ -### fixme: -PageLevel的类型 -MTRR 是 x86 架构中的一组寄存器,用于控制不同内存区域的缓存属性。通过配置 MTRR,可以优化系统性能和兼容性。操作系统在启动时通常会配置 MTRR,以确保不同内存区域具有适当的缓存属性。 - -初次EPT_VIOLATION的时候,gpa=0,要建立从gpa到hpa的映射,也就是ept映射,处理完各个寄存器以及mmu等状态后 -- do_page_fault 初始化page_fault信息,能知道gfn - -- gfn_to_memslot 找到包含 gfn 的 memslot 的指针,放在page_fault.slot里面 - -- __gfn_to_hva_many 得到hva(照着之前的kvm写的)(要用到page_fault的slot) - -- hva_to_pfn 得到pfn,可以说相当于知道了hpa(照着之前的kvm写的),放在 page_fault.pfn里面 - -找到ept root物理地址 kernel/src/arch/x86_64/mm/mod.rs:184 - -### 疑问? -- 内核里面应该有相似的多级页表查询/映射的机制,是不是可以借鉴或者复用 kernel/src/mm/page.rs:712 kvm:kernel/src/arch/x86_64/kvm/vmx/ept.rs:91 - -- 我感觉得到ept root 物理地址(不知道存哪了,可能在真正要)后,按照索引在ept页表往下查,然后缺页就alloc块给它然后加入页表建立映射(gpa->hpa),直到找到目标层的level,[linux实现](https://code.dragonos.org.cn/xref/linux-6.6.21/arch/x86/kvm/mmu/tdp_mmu.c?fi=kvm_tdp_mmu_map#952) - -- __va和virt_2_phys是一样的吗? - -- mm.h的作用 - - -### Debug -tdp_page_fault :at src/arch/x86_64/vm/mmu/mmu_internal.rs:233 -enter_guest : at src/arch/x86_64/vm/kvm_host/vcpu.rs:840 -handle_ept_violation :at src/arch/x86_64/vm/vmx/exit.rs:278 -try_handle_exit: at kernel/src/arch/x86_64/vm/vmx/exit.rs:250 -vmlaunch : at kernel/src/arch/x86_64/vm/vmx/vmenter.S:103 -page fault :kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs:105 - -kernel/src/mm/kernel_mapper.rs -tdp_map: b kernel/src/arch/x86_64/vm/mmu/mmu_internal.rs:310 -debug : b kernel/src/arch/x86_64/vm/vmx/exit.rs:416 -debug_eptp :b kernel/src/arch/x86_64/vm/vmx/ept/mod.rs:400 - -exit_qualification 0x184 -error_code 0x100000011 - -VMEXIT_INSTR_LEN = 0x3 -VMEXIT_INSTR_INFO = 0x0 -PAGE_FAULT_ERR_CODE_MASK = 0x9 -PAGE_FAULT_ERR_CODE_MATCH = 0x1 -EPTP_LIST_ADDR_FULL = 0x0 - -EXCEPTION_BITMAP = 0x64042 -VM_INSTRUCTION_ERROR = 0x1c - - -x/16x 0xffff8000 -![alt text](image-7.png) -![alt text](image-6.png) -![alt text](image-2.png) -![alt text](image-3.png) -![alt text](image-4.png) -![alt text](image-5.png) - -//为什么第一次vmentry会外中断 \ No newline at end of file diff --git a/fixme/image-1.png b/fixme/image-1.png deleted file mode 100644 index b0f257ddf875858c0d2580b01f3deae5475a3e41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112467 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�cV${ZZW)d_25}TeNrr54{ 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 Mv78#TM8-V$KPTT}E&u=k diff --git a/fixme/image-3.png b/fixme/image-3.png deleted file mode 100644 index 00af2b4862913e78f217fdf0781373dfc8cb3e56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212168 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

    mA5;A_LIsk5}7B{ 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

    uAd?1 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 z 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

    ^C~ z-O~a1zFDvZS@L2BdMk_-5ODw>s4v0NCp%qia{f16FE>@n+S(X@jArC=glADWR~z>F z(0aZDy=psvT+#_5%C%lYD_?VD>V}N+tJdPqt(#i1uG+6^fy(I2T=p`pU{dLvN*una zsL;@vYF;nLMQq1Cw30(siC^%*z%@o!$`0g;j|mj;XkUQa?urw+Q(vN(Vd{{&5FQ0n zke%F%SItnD_^FJc9J=)?9<9j0E4YjDCzN118MN|+uaVs*ckZZIT-OayigHC`!afDD z6_sLCTqm>3CQES79b=UW1aRFnzOcLjcLBJ0e@M;>+!G*cHoyM~YpcH}1i8*+A4Vz=UDU3pJu#5U< zM3}C{BM2SqlAppb*|c#VcYTCTAc3bXX^`Fzci{L43Od+ji8SACfXyn@T3Zy2^PZ4M zQS$589Kd;o7lPGEO0+}N?+Op|nk;0tjuNB?E4V-6%v8TWc3FAz`RdDPXKO@aF*$^Y zVAtr|TXsD!thU^?cX7Txi9r8z@k`Z1T__wYn*_&FXj+2>^op)DNA__*q=l$F+!keP z5tvy+TDG;nIwPi2tUEDD5msB7%U0UN?U%xOVF6((2OwgKkB@tn#NYRm{&S&0r=r|9 zo8{zwCMIEX;yC{^qUrRchmD?|U*$Yw;OZ9hzT63M#Be-QtfI2$Rs=1oVMU$e+7M(( zy8Pv5)=LSp7N}D?qxT#A5eEP0`rhyv$x6M8qRrJ>><2B;AsmG(!9==n2T`W|sdLA7#aH0~0Q`vlZd6_&POIK6-;)}pqC{9#)(0QjI#Nl|rV>*!@ zDlP-Et(mDS&J5VBCyIf<53w?LEBf5R#Ky+al#Bvaf9^C%fvW-2!||-d>97D1V$pkz zJg`WiD{~=M>$l#?I>d0NCKf9p&HAV2VEQd9LHPvWH^|EFE8^W%&jYYb%YyElrJ$&G zOV#dOw=0&=eO4ca8HHcjrKP20CsK>0sXk72f(HIfl%@`+_m!N05JYCN!=IOM#eB(hV9P#~Iz|K>_yp8;{av<$^ zXe6_;S`iCLA|?mPK+#*w7a6u)ORv`q&sxo$*LKP%5Sjh0(6)*KHjmEJs5h7_8SO8x zQR8(OGkvO7YBjFmu^jI6=)m&3cGnG%jnk4xP4$A!n@3cKBJ_wE?POR!z{XZ}Zo zxS=opx&sqB!A9X13$6R*WR0Yi-HzwMjqjXo3z=t}5FCM*KtSA&0U1SyjRZUpMZ45c z72eC~nw8g~r%x21&Dg34DC^ktLxtA$3RYCM3cI8 ztCaI3hI_PBj<>%$BO{9bIV{xq7n~lVSjb`Ccry?iBN*V{ju~*KM8=>E>nqmxD4O*6 zoc=(Ioa;Eo*yu!g6TpuAk2sF6DCnnK53qHqPn>>oRU*=Dx zb-7Q|R=5jnt}7i|^JAQ_+DkzNv{1VmX2hH`EoA^1mz(TMxg|$_`C-uIBHqzNzOTyd zjWg8J3#8PmD4PF@Ma~yclnKHsTdc%tFt#4lXDa7zJ%M`(QuQdF0jE2}8bEok@~3r} ze6Gd1OGs@ot`8Zu=?IEzrA{c4w(b%P+%@40;!IHPUCzeDt0*cU!->Wr8CS3_rz@=I z*pw@g+>`Y^gXnci${^Hf%Fa+jJyJ`m>+X5%Ow~!)B-3@`GmSbt{M|6F|H}mcze#v; zB5NZFcK8#GyBD z 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%0D{is7vpCJYv;-6K_|j`~q|=6;^|7xn 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 z z|C*IVP$HiN*+lxL`sOYP#;lFhbycfk+dqhyCM&bk6BZ6rBGqXmju+05%^b-^!rzn~ z4mBn3ji`t4aM`h1*5*$y1K}83ZhyHaUXc_=PekRG%D;tyz&%C<3h!F0XdhUDNI$^% zZ3RrFn+0_ijF8NQl&;T@P>=p`s^Nt5TdWj0tcO+6`1W}k8xy3_G%&D(anSBtsn zO{rBkuuo;G+HGZC0~?Siq5sOE{ZL9+b45y47#cJcp%ST){BeUHM~1cf+wIG+ozBlP z=HunzuS_CT-keomvrgG7*N#+bBYXM3V|YF@S`34%leRr;L}y?>mOpUi)~P=FA=0=A z!-;AW5=1TE{17k1B9P()9w9DV1ek zB4RH1gT&j(>_xw^#l!{{YGfKgH}nkZ{e;;xA`E2Nj1Ke!m}yis>#Gw%(ZGC~pM5mp zc)c{*SP1*PL2}x6e+I%PVmt40!=DZarW4xsE1Mcbjsdzx8;V7#BG+N-R4EPLF9Jfn z@#eMKsUL|jAnoiweLNCif*rp2Dr5#LH_Rd^F6t)m792nV1pTfK1FUrKUi~RqLqqiy zu;bVp(1B3DdkVtA$i3vrAb-zqTY6!GziDfqCKHcvX(J1*gMsIeTOiY*lLbUgY6f~M zO~1cD%5CcOdCBeLG=iXshP*;G4*f~o4B(z0nEi1Bq+LCJUx$Sg7;|xPVF+c5Q!8)S zm0WA;0}KIt0b%Ouy||fHju{ zi;IfZkf*R(7d=LdlFG`E{;l3ExLv%6?~7-+ygdb^z0`~D#GVym(nV=)hbh%kA}AvC zhv!S;Nv0$=WjoJK_@`Q06-+)4Q5l z$KFa!k0Kx$vg}ZMLh|Y9jyvv9FA@u-HO5bAQs$FVE#_IF?kULd(bPw9svz9Nw;=@! zpkTPkxQd0#9Vb`y>B`)t)G+pAZ&MuuLyHF5b!RV|1>2zWn^IenA zb8&}K5oUQ<_I4m|+;Y7@3L>;^KH#GK!o-e4o{JLK97?+c%#GuXXu{wyXTTqiRy2e z;a`6>%csAXD;oy>5wT%B70RWLPl7YB3Y@O!>G>@-Awlxa&60>qwn|5tDZc-@+khrRkL&X?HO zjbRISwZU1u%Te7GnDLGE-1rSwid~BqI=}|FEPdow$~SbB4Cxb(yD=FW2ms>>_}NQi zdu0~lucD$jbBy|uC*l%E-6`YH)L&DQ7BYDet(h_f24(uk-&=X*uS30_@V$@zt*%87 zgHGM`ybyX8w2gG><(#}>iPZsnnbXz_0{SQM2V~qMwdv#SEH?7-sPO?msn}|*{hAmy zgeN|9h{@;wF?3TfI)S?WNmAHPGly%*x%z!_lxW6Rx}&Cmw|t^DL1EcTquJg5;zkIh z{TEWdpR>WZK&bip1s*a5^1vqsJ+F*3wFszbMG@O^oqV3ztVxxHP)dAvy=!V$e<>$- z%lJ--q%Zu0&d{U7`}zU%{fDIl5iTxn*XvPZ$*Qu_0Qk-u%@5dv$IJaAYL(dnmhRJ2 zYgfx|OJ2>cadOAa^5p}J6kg72uWyLZ?@XLI#ZEZ-0&-!lHwN`}3ztK)Pi4#b7f^75 z-FpM|i^F9CWq1}9RXc^K(^7{nvAM;=w=6p(ichAbyfgFe+7()cA$rV(Y~%B`w{tna zWqAMoeR>nICaCup@g!{;Io*T$v5rYO=k;^T_rw#pyh^m<9|=w;$e!kQyA65~GNB`@ zepqN3;N|&^^#0KK4ItO+jNV)^UOD{6uqxKbxVZjR@PV^y{YBZ*M5ZUj;lbuB`Tv0M z!XySbEiN+id4%rk8#qYGg}RG*#HuHNCC?X+p{PN@7-t-^UfYlu8^Axfb+NSlh$&CJBJ3S)1B@>w@e+Gi>;Wv+99S;2l zyshif>Fa-I^Kmt1+k`xWSpkA9E#~u4-%5|memYwiC{bEzWkod!%DX&l3LY-ip%dV% z3xF3KmYTrm;*}<^77D(^XvFkxFZ+G@wv`go8%=5P<(*J+xgkMH6-Ekwmg3BzMi0A{ z*(xs6(1VKTPp8hU-aTEW7rZYRlO{G!A0io=JU6HpzJl@i9~u}asoFVn9?pfcSy<%o zm9P0y1`PTN6ckw5H?Hn+^`TCfIE0K*<#}(GsyI^aN#rDM7=?D!7HBv?JvcH|> zejDffWDtAaA*s z#Ago=@k^k2%OfF}5;3I5UMU%`u|I~e{ybRnlX}umY=&>%k@Cpx`vnznA^fO?{CG;J z`|cg${sh8QsHe77IvR$Dq_{W_B&Hnop!Gk_A+!AeY_SF=zC5qkNiPLbO{HX$bi2BR z<~DGmuY4^w;JaBPS=P&MaMaOxi}(Tug*tRm#8n0ttYXp1`)3YUuY{dbRi94={Dy zqn}i^K3ElnI=$;#{|gtv#!_{+R>4G)6j+(bx9Yi;sN{j~>}1W88PT4>itH8oBxS`&(U!3G*KO@%-9eoz;f*uo zFRH4k4I3D{BmR14NZt#UaXB-8-h6&>G)_i9HPXv(iV`o^Z$V>X1e3H&5%$CkoC~t? zkyf?M;C!HxlV3IMh*)i3V$|K??HT!<{n`8*)-$0#=0*+@<6EMhJ#9YogFeUI$$Szk zexrcP)`r{#FETRrz85dVXb32i*V>b^JH68{*1Pve1ap+J*b223_K`KaI{t))C zn5Z{HtM$qc6VoN9Xgj0en2S_737;<%0bF0;*&#K;>>Hbf-1;(*7q#v}rwg5x`Zpi( z%6<>UCnpEY6|i3HQw54uwMDsSXZNjS9teCHLmM6%P*hWss{P}p0}dDFJr-9@L z{i5b&fhS6k{tKGrh%w1KrLr)H&ITG3kqt<#g#-lyR(N;;~l0cW9tu!WEuc8GLqiK!hpGfb{Aaxf(N8U5uo$%{9Veb%h$j07% zMh`hrAtIJ(+UN@_o2;mcA&SpLbt!^a_bUJEFc7F}>pHKzaeV}(nJyI%Rx9J+F8X}jJF>Aq;Y&a=j|=J$P9zjg{ZVbeB* z*yRD_osj!v8>D#0Ek3cQQyhi)gfLZ!4dWU+h`VGb?Pr#(pE*!+^^S|n2Z>6MIf>se zk{KX!<4Db9lf7BIWrm#V8#VjCm%9c)?}3P~C+vJwfDK_MPbi9hLnsD=%97oEu+?$ZH$xW!g4c!Z(olBlx@#dVM>-LF~2NM zKi2Mx)UYhu=VEt8bzF2(H$&^CK>1D+X{s1R&`B1NrwxB{xY|sk2WRSE17o_Hot%Uc za^l@r+b;`!Db!Hh{&C}W^7r&wz)m0X1BeKJ=c{OTkS@LT@ZElA>~H@L|D1p7EA)V0n)&DDd!WCWiS%%{mh59c~#WYL!6B7);1=sLn0U# zIzf1y{A{v-{oM(iVQz5F@*G`CBhniU!cZNt{FQfIo-zf;L*ISXH zj}_7^EX?+|_Q+hQI-{o3Q#>XX+x@)Iuj)1)x0(FOO#h_$+W`g08%!*cmNJ#eCjFQ1 znEK*I=sY9=R9C^^K3vCH#^hXg*IK zY=_H%nf^@l{d-`yju(`mm2N!2S>7;d0h2;+w;=hZ*@4uOc7%C-u{{mJi;9@0soBw5 z?aIvl+vZbEMkS>kp;M@XLE^D-_J%` zsla-TZ~6|rcC{6qDpMfd(tcqdLn}o4Td#tAGV@5fA@?94aCb%=9||rcnQ>SMqSJ%t zc%5iP#KK>h?`v%G@g)Lz)NC<5&X9BN7)F}!z?0>L^XaoCzE*CjT7D&1Hq#X19OmaA zU`ozVD;bcvo+gVSVKvleXtFl*(=RniiC^|B+5^8ltSV;oSA-K^j~`IR0t4(Iz4c^O zc;E~M6lC3>HTQB=*zH+`O4A zBa6M?dK+-$K$`-fWJgyU?>-T|J6q{JNfgV2P2Jm2wBoC$m9CR)xf2rxg3SZt`bZmW zpAbr_z9T@G_Ton3DZy3?xo13c!a$QYNXfTv7hf{s3^NOkypgxAT|eK+z;N&gvH%ba zepuiSLI>Z=5A^#EXpf;h`Rn3hs3}6Rl`zw-#xrqF&dOtYx!*q88`G+`+%}=&OcRJ} zVK&)C-+Z%kjvr-VrVhx8<^(jz0)oz+b^ko`7H~#RQ^&QNhF;4*>lpnP>I@boADeLv z`nDsfZmHzR4F?#AdO!yVPz4(<9l){en+%`b@{O+EPx#=hhtADuKU02r zxrWF+7OKu5$Dw#TJIV0j_VOUy8GKHM?kE@dKmbBACh8__s#pD(hcoE%M?^b=NgjZ4{8XUo~=}eFiL0Me$jXvI-gts3?FfWd#Nr66**L#--O-7!&!;xzI z*$T9Tz;!(-pJ4qVx=|w^eT)Z zf_{uNJoZRoyw5yFOH;_y8wJh)-IFHbT=$R5ZXaOm?Ul7ejpwtBi`zXNJWkGcpVA-B z5+}Jn$yA<-2YWX=>J?}V_x(H|Dfn(R64e)Sp`QWr!n3sW8XjH4`q#7YuSU72u*Y%G zTXliEp`>}^^A zLXjAUo?}1#Q0&*6dNc^97F&-6Or3xIZ3>_MY=>;DB^>=&7LcW*L~Pv0st0JoOuhLy zUYW3u)d1s+0EBt8;Ixa3d`@adWP1;l=J`banQ1o~4123h&N&{i3TdVgitg3WJ~;Zn zMO@kZSdn8+8^n(zaN<)U2W^C0^sVCaBEM%dV%~nwTGc=&9J6jTJ4Bq=76(M}HYCRm zjk+g8ojRdZ%^zXenvEIK!L(p7P@k|f$8TbRb(8*s{*b#sXXy=N(ZJ|`;vOCIvoy49 zTubSV(i;N+yumu0REI-QYoPeFjctv=NJeCh`;99=j1uLqXGbsD9_)+keP+;?y9s(B5uTG^mQ4`o zY;M`*;jqxg_LlLw;yg7uBg_$3t~1%Ob-c=6xu=)7KSw8FuEm{Bt!kxbY&>#z%u688 zy#F~L3vDC6f7o6Po`eg6W0=xH?r^>ZU-r&Z@j3#1mx46(pz*}~pol19ca@33mk<`l z5dL<(Bewa|!0zI2ejH-@=zJzH51TTN##SaiPpT+`{M~hDbr&fIrvVmnsOIar+OT0p zuo_9R{j0s{-+u=(f|sQmbIXeGe@GFz?2vz| z+cz0tdL*{U4~&9e3`;+z9cXwHH!WGoKz-`z|4bxX0GwpAjh-VC%E~Xx6C;o+`g!aZ zpEL$KiM%y^v-dj)JtnpfDj@)*qP+KXqDwOAAD--QKp?JNW|_6`@uib$B{wWP;D4u# z{>|d)!T9HWz+d4n(+QVzy}NRBVMzvxVQ@uIqpub2zK6xJ8t`^PDA>s?YH~lQ)9)|Q z97wgrT73Ew=+?4DXou_J#BHW_TQ(3nO(Kiz@hnxQd`Z7flNW%E_AmU=isq`ArV|PU zX#aS{RxN&6ECs-cH~p#)q2kE*Li=3LSob>_yH*6-kJ&cul^J>F>C1jLcA4AwuvN4N zl%sz<)Q7zC$y(K$!d8R2WE=$D6K4_Beuc8S0~8}-q+vj1)8BaO$*Nx&M~>0R4a|ZO!Q(ad%PGXdduyfAJ)0mm0Jf1*KsUU$< zQ}5TUF~0rWBJ>$yqB?p2`i`XEz0(ESXiji<_sUAc7LNq!KwaV7JH`==X`!2cLsLac zo?5gHchBT)D8Zb&-BJj)yqwXew>Y4m!X|2QU7D9A?z>3oA&+K>SMa1!(LSmTnCvaT%xs%q<5K6)wh-LgQcg6;NlM9OA&sx+yIX;XIES1vK0Skk152x@~=&bts37b;T#f`P7# z8dG_mUSX5mq0dHHcgYd^Jj5G8zM#WMJMi&sq;2m2x6dC9r8K&D%RaZ;_0@1A;Li%v zx!6@5K&xUPf9ff2Mj1M7EGu+e3BR^liyshKUO$X^~=6R*zBzRfWN`DDmfJC@3Ourx|^@*npGD z?g71y!5JOGgAO?d7~fd{1x9v}eA(c=!h6WLSM)K3DZk_RFQR}t__6}bD_vB1G)AoK zzJhkVN@3bY9(2LeV|2;#Vv^(!f~6FNQp|DL%+ZkENVl9zPYb*RX3pPO+Uygcx6ELZ zofch7vGV=9jy3CjDIf&+<=vgURhs|CtKoiL_6FJ))fh|2!j;b&HMMYNeML~}4VSOi z7g=01(ID7mGCy7Jj1iGDGfk^s@Z?D{u@D`EeNr4CNCj$XTBSKgzJey@Yme9q?qLc1 z+P@p%rT?Use~sapo_8;-bxFwG$B&o2bTBu#v!Ck<)I8UW#x97%!e;eJ#;qVn`t4+T zA@m@Zda07`R%>$EN!RUITXGw93Us+eY1sRl)cd7zscf{-s+i*IKB~8EYzWAgP zYY+jL(9Db)f6W2BQ1O<3#>7hzM_LUUsVvlG)wbVJYdZ- z)&H>P5_>nCCcPpxV<;p!^F4_oEG;a{-rpzthUn~>i!uA2#ftFWfvmO8e0(Af zyP_DRy}zx%(J>uiaK0mrs?iz__ZgyPwi`b>c@4Z~9HrHaZq8nZVr>Y6W`+u0kUg!k z^^3HhoUNn952bqfqSFTHo$OSy=X55qy^jP0eLMD>j79BkhVO`M-d2y6rIWlU_ZLz7h0A0vop_Ty ztsVNqLa%oWH?C>Y=-0Fh1*%-++RK{@)*ta+!)P{!^WWYkzync)^f;)vab|eu??aP@ z`*p?oMgtkIXjSb8a2*4bmZ9iK;h-t89|z#?Z~lj=vy6)B4c9*1BPrcTcQ*r4(g@Nm z-Q5iW@~1(%k&u=KX^`$N>6RLLfC1j^IqR(Te&XY>*53Ph?zpbsHIoqZB`hqg0LO#P z3Ja}r5F-_*CzyvBg-rhy1GU|&=U05KK49!wnMpF;gnq(4rym)tGm?WEG9p-^@u*l^ z4)9LLZ_^57A@HCH!v*W3EOx!H*vvL`Xkq4*0F{Kvw=k(5XFi8LG)j!Nj7qm8=FoU} z0Pj6m8+6P14~0OfE~-embaSi&7kM;k`_kzlV+!LQEB*#asy{mAXH-(f0=qxN<$>wNgPt=n!(!>YA8 z-!NS0m~H_ure7fjcQ|hnUTO?__!W2aiLwK$uoHYYe2&EGhQDFa_GaBF(~kd4WH9>Y zr||(;Ioa>X%@AAp^iM?*ks|A<3Q4gc8h6x*UI@V{;1jDiO4gVfzEd66??Mex_4`WC z5^+o8lu7SEzN56Gyv&uzE3d%^cZB?11B?_Ze#xj7W(LuEW81sMYGUrB_c>J&iaK;d zJ}PW~L*>7bQo3|gj~?1DjdHVkzAY->rgBpDTYP&Sekft|0B20p{S8e@3F_d?L)l)Y*>7TG&=1VVCIF`oc4DoPl9DXzx7=I` z9P-E5XUYFL`FQ@Fd<4MBXY#v{gQBk49Poz&=7k0f{PO0BFHK8NSdKavUlQ1qg!&q! z;YB4YBZJlaP!?y3hwPwWx~*DtgrM#zOfa~7%-YZGzZ3&q$9+O+1PTIl=yATG_v%8Y z4&}(EfG`Q(-x&xQ*$eJsaT&rw9*ZdPEJt?8WLQ1m7i zhM)fP|5S>(WkJf9dwE%j(AnrKi+Sd{^dWB^!uV!N?y3MegWFGd@HQi^1v7y-g)$wR zk|>k~+~&L0elc{O%7_CnmKd;DWCFT1`L~aS(@@q ze}EVr@n|{TU)cUZsn>bvo%W@CR4nkLy})YzCh(E^;&R!OzyZ@u1817o$gx{~A3v+s zSZN`n1^WlEn{~ATenKzoTj(EKK{C;Fsx&E`@%-Ph`Htqrwk~V}o0@TAyC`3CsQrL8 zEv-|-54&Mbo2K+oOqo=!CqK?J0(Hx`XNuPZ*lee2AuwO_?s0fYy#Uv2@r0={EWOn*qXf=u8Bok3vu2h^tRmKZNvKpjRQ zqP!Nq=sHGa(65FqKEpk;Q=~1yFVgt5_Z0a>C%1YF$LEjF$#XGrmHj#b>MyUptoYjP z&YaAiXEz^PL`C?;5QPNyEv)cDk@9EQpGE`?_}7g_tSU`V@ChMK&&4z(T#+m&jc6Yv zJTSukPU-BUz9ke0&%W%Zdcg@t#U^}lM+n-#6^Z_vxC^p_ZkB>x+ZX@!+@!m{7D;s^ z)Vbj$%uNk9`gWibHYMnRrZl`G<3C}jo;uwGyB%Ij4$#3UH4p9XP<-Desw(1WD@Wh& z(`8`Um2zCv&RbANr(+P?D9}THFxhV_Rug82M(!6SOpp#E7-o&NR#@8k-G*T@n-fyo zs&kaavkkTyH^}yL29BJ_-vTq|3$>n$>MOIU|8_r|iV~$n64KOMh_U6ol!l1i*^Vgw zH62sydk&?T4S3fQ>ksoWUqbmnhHtGQ?KEzFk#4!>KVWXfNU} z;=+pX`^|+g;8CuuUSd(!Vy6R&V$?G{fr7wCjz*G}D!q_=g{5S~P_kxTThuvqmbs(k zD7v5s0vuiHj@_GCVCfN@-bi>>b}m=Byw9}ks<_8MB3;v5mMNz!bo#rCc)a()hOiPxnQfFZ%W2N;sFSaHSPs7Q?cuw+<6 zX~O7zdiFw=bf6fvJDrx;KDA ziV&7jBIcQ1suA(k!LCuj73Ro#DiBTx3+!SJSuYaWb&QDdSm%MK9xgt}JC}4e_M-D0 zM|dYQDgS=c_v^VZSvF=ukB+5EI7{VLO-(YVBT{A5V$j#(7rhLgDkSdCh9rJlii&d{ zafG1uVVzOZPd#>RuQ=}!A=Sxahf!;zxT=k7~ie)9pR2L8%E3gbU5s=wI^rWvgd;F+LJr~Ch=_+vU9 z&Qend@pIjVu`5$`Bh+=eC2`vTr`t&HU{OEhQ-(q*)6=rTGG`-V<`^R)G?fd9H#IdC z-e5lhlc-3i)_5l?F)V+IxMjt3i13%TDJuaSOagT);eW|)3|S$sMRnWG6$%M>RW*qS z;r9xErVpDiNVTRH7yU$v;omNW6 zBo+9TWz&9GqUYr^3M$1ryH4Z#2t?pOf0fekknHbn-nADZh0K~???tlG#CSDTS(r%7 zsbARZdc*g5=PO|7!jnw@)3R3*xu%gdYw64(Qg;+R7oTwvk^HwVEzZUI0e$~=i=uxH zNj{)7>e{#3ofTY?0b`rs=}BlPG5FZJa2y3bEh!^h&%4H?&}L3S%3m6Zegkqe-DUr^ z-)QUyR4pU%K8B49;(aki5|*ED?V+jGBqEml3X}dU?YB8J!3SO2Ch#bq2@l`K@z#Yc zIrapvyv0tIpODu;I_tPj6yqYg=G8{@cKkm2ZqcvM&DYgx6BK*SgG};K31>+VmBjqo z<-j6S=0Kl}yZ<}N+7LS25TW}pukR#x?_i2-CDN}rF}^MbqydjC*I^>Z?EKQD3>aV` zygHCk93_PAyw}M#c3JwIFcm}ki!9B)HYBJywUuo_>@Q1#ggsYqf9?%iu_ryXiN+pP>A%)*26l;GDB`P6aY7lHA26`y2C#g=^= z!)OII5Z+mD&B~go>GdsHB&FJXl zp@6=S4<#TGvd9g|XAr-xw_Ab4fZeHj{hqlhIqDM=%KzYII(McqUGP@jTkn^0t3djt zsR1Im)3C9mJl5|-BfK1SOiIKvQjF?8-(o*8!D66BOQkm(m5^%bZB|N5vgu|If36Q{fLwsVf z3)>bqh8sXvp(p8OfIZnIgoDuE3I;-S-v9BynBErk`vm{O(xU?pWq}8WnjydII?d8z zCUm>;FgWb>;P2{~;>+?qdde~m^!@vMuvhH~uv5kp4vlAfKT?fE-T1`*Qld-^smu{| zL`b!i2ng80+xWmLx06U7OVx;02beW?h5>8keyY%W@EVF|u2TEYGe?8EXVw~D7l(WK z;mk(zy5|FG@p?37T-mQ=tvI5KdBqDEkknQ!ft~A^8A!@glY8QJWo2vcmz6JJOBjAW zH5AgKsGIxGRm-$5b3Y~0UYf7M8{Q(=1rwR%kK@2+`0;LfAZXX^iN_q_zv8A{;@S$ zCb)g~`BE5sNYH;ir$cK*j&#Vcq@ho?3`XX;Lu1P zR&BokUhp>D1n#YEMi9J#e?%ibG=1X2$NYx zC&k$Qa%igFS{;u+nYM*f62%5JyT$gx+X9BufI;Zv~22WtwsOiZ85!ti4SMLFfha#e_0M~NaXt( z5-c%@ofUPn?W>#CMn&&_S732&T$R%zeKh2Tmh0|iYI&zxHEh*NVPEfM>bdAumDvue zJUs82Eq6Bi`xTjZGnj#=h>%9S0zg#|&@!`Nqi#sh^-Ug@mM81+v5lAJ%5dZ*g1Wu1 zK(>97(`w*G7&CO+-3ueqFJa1e{WL$29}a5U&l%%&Uug7)p;2u;TwsP(J)qz?B)@U? zR&3Tp_{H|MDNy&x%@pPzTfvu&vQ3n&9J)#xB+`Ag>!!yKY*o<_UNYV?Ee9#~yf-2Z zvP8C`Ts_kU&9T=VdaUn4uWYMlGOW|I`hmF8+$fA#Y2K}`G zil$T7{ZZJvYnv|uR-N2Rqyue3NSCpnNdq~#SU%*}1x9-o+_NUY!<+%a5xpBc5A8J) zqzuH|1MT%CUh}4mydV8N+_geH!;4SXZcS^}^Zxg3Zo=M=fY^lbekhas@B7>YS8<-C zWiS!?vpaXqp`pLUXNLsk*kf)~bH5Inp=GBAuI4r6*fRkN^Y#fzk0p|?R=S%ro{_)J z4aEmN@feeGUIpKBU8rx}!d9tDnUFzgbTDIoEd$OQwdkrX- zW#cmi*Ta=3$)Z5yIR?7~!2nDlqRBJ7Fq0{kixlO4G<^z_U0JIV-ShI?*GhE&Ri40eZEO;mAU-#$vX$KggTeJEVH z@-woVrbo>xCHFwN=s#(P($P5)+x_#le{5AQM)!Di9l^aKwz8_j!ix-brKxEm-lvk4X}9U`~!Aq;<5w9lV=- zKblAj$f&;21%ALSjn|Jr?@y!ScVlM2HVKWT8QTLGePK7f^ch?}B(tbQbmr=~3^E+D zfWGiU0?W5+1zaT+;x+<&ilO2U{+kkN2|O1gPal<%1Tt*dWJTuu=FN7kWit6l@{cn* zFuA$waZ)l~dgwE7%%CmX{!k{%E~P)OQ7l7fx-*TZOxA>pwi<- z+G4qV8b@`B(gZ#F%Q+Mx+G=g_4{D2*aK{0hqhHFC9zKx%BrZpK+)EvPuT0!XuJD{r zP2xEoo(9U7>4xKq27_$ zd#wPA_Jbpt|0;tbEnPk6Jsz!mID)Ce&tsIbX83Rw9+EAybU71syKC*cuR)w`n(WWD)QJJwEvt`#zACFIstw zLMXyTaAU)kx$|s3^a*K82Nb+0_fF+|9*GP=qE^qbteZsJ?>?HoTISMWR{F`U3(Wr{ zmaJipzeQm4d4sLFB?!&3*YV)Qug}<4DgKNE&?z7fs5Z> zLo_f`OG0}iO=JZ6vnhdC+N{UKUE*ttoA&3~qxZ^`+*HEf33r;(b!g4!5nygdY#m%j zOFmB1ucoJ4ue~u-T@fY{Phes}sAmW4RJlXUfx+0%3&og{2a$vhBT>ZRjWOj7p+*#O zbW+(m-nO>Wd_VZ?_MFc}Hrq2h-NFj-1oZUWl|l>pUB|G|on zM17>F+3x_0bq=B9hNubb)PA>z*fr#X5lYHQq6e67vqZ!&sWG+w)A%;>FeNv3=G5fC zmtNjPkv)~-H{1SMMRVByJ;yUnzK5n zgpElzcP-yr8>6S8scBhe^tfF{M!TLFZ|j-Jm4M;TOuYgAXs*Zy;|JJecF-kLt^GEn zt%UUET(Qp2gxD=bC@yyzh;BqweY|@6AA*|j)@K(BZH9*2IE?`XY|wTeGHfOPndGQW zkr64*Kz0KS^y*8VnGv_cVN}Oi0$!xQj|PD0(sSc!6%2D3snbu@73#E_Q3WB$6g2-( z3~CC4YwI@sV8PkQe5aRh^21bEew5+XpI+t^qybTgzfhc$KjG|(Iux3-_~*qvTse1@ME``r~PLz>G|+!N{9nO)37f{c+TC z*EVr;I>kVq3YEF{12?+=Xo9)?$j2(94x$02N_E3e^p}qjPaiveke(2oVMj$QFdaPf zg)`~7z|mu3FYih-WxrA?5|O{p#NP{eq4~xp^yL;)#jt*woM(7S_ zld+^-qVcis|G%8}({G zTTX@U(kN2YKfZ8Rv;@R^D+R}RD<$l%Cr|zKe=b|r?1N(URcIkvBJD7)<6)bE)}H_8%XGy28H7s@1L_qLiAuKRMfp~jx*R0R;H z{KKYt^EHUr^H@o*|9@|zBobiU4<=Rg2gi-RbY6Ph=j(%lI{_WwOJQMHsw)}+Iw=N! z_Eomn1hlfY3ojGwF|6J;)v5F6No=veHzRTBUFp6w9q1LUZrh|jkmcr{DeVs8bTK+G{SCb8&4ATBjpJlyuqXjU61!3|K z_879ZUh)aQVS;9vC-r>=ppvjZ(#~l=6BwGy8v0!rHoS$mhe_x?d5fg(KAAw$xJ}gw zSNr-I6tr>yBLCwvJ8XlE1HtQoH}>1Kg$uZ?4<>?<`j6il2zLBvJC;|8oBF-<{G)AK zdIB^kV0gdHP-}Gm{Vt2DrRK@?B#Wv^2l0n_K%A@4k?^j802h0LvoUtTfj%66tO2Qm z#6h}S4a#07h#%g^2~LM&eyb4txCy;T(wik}TIy`|T#x#d9W=iIDLjwdB){%R4YgDd z7E~s23lI-bxsWwXKg{M!nz~)_;}R&W8Jw@{8bqaRxCm%YAZ`HL(jQj~J`XPUcU2>H zcqY|NT{7*JwG{g8ntknWy30b1s3kP->j~J43nU|87BltOND{R zdxjY9=`A`*E_d7`C6$IK{o@PpU>T5PIVD&^tFPFz9(a(J*v-Xh>gTfLquZc%{VSM&Uaz@9>de z?ja~d5cipyebCjAqmSG^*oa$mrk|e`_ED6@{XIE@IMQcs6~7`rSWAGhk5+@T`I4ww zpORYC*0>dGc~Nu~G1V5pL9rn?Yi1B{pL2a&4dvQO?_~I~&RB6rVi1&xLuwDTtt-&R zWN9b4COQ$b3b(+@tRINnB0TF@%E9%%PHT}dvNS%_z!J z6rAQ?Jp;L>fz=OCJ>=>a9ihK>8oXvifaLclMce9b-dg`qE=v^xHXO4EhY$UAD+1;;8QmR@#`J zMw)6BQ!({8`^!K7hc7E|qum`?S;Jylum@(@cQ51kkIV5v-S)HQd{2wc3G1%ukRjN0 z%*!Sp1Kyja1P;adB5veQd`Y)iC@@%%d8o+qdJNS|Uu4z-s6-b1bBH}2`fe_vblr5?Hdx~7gU{~n^eBJvaLQm1Ikjwk zN);E;{3#h?uRa|fvWW>cazY7JvaU7rI#(=ylNsJoSD7U2Ccz>=A?PIhZ$mO7g@0?$ z3ozLCk!TE1QY3@GlL3J!`9Y7&ty$}HThXoFOK?DT$=j4X@uN(w|B7wfAr`Bn3|_1J z;fddpY{L=zoW`7LLpYV*3&!NXPoWyBk7QuzW720-T_ZuRs*2PxghM#w@J|HpOh1dX z?-#6qdR)JU3NO-2*+mRewq&4!!D^Ga2|#6J71HyIcmNeW<9*+DA4yL&nb$7+Sfkel zZjhGof-cL#-_>_KUIZA4E5c^(bgfE6z&XI9m=Y8}`XYYm<&E&7_gPeugFYcy=ZID8 z-R`io3MBTbaj)UwR#wNvO>3jw_BQKh0Yxm20{<+8tf$*!O`UB`jPj6ei%}QyVASL6 zk&Uw9F3s`63(2o@?XpJ+hlf#=T%T|HRUFZt@PnW$*^$;0hCvi2OMg|{`zMOl*GYr| zt5*?%5WmHFw z9?BQ^1}BwBuoR#cM{)#$x*Vs;PYvA(dJUvz7EuO}e*56kZsB8~K?HC4Io#0^EPrM_ z#v~8@no1S848`iOx>lfwO&8H?C+AyKF=U)7SC6$bXUynry zO7>t+2j0FuUZY<21$R?_tF+&WA*n`Fsm=bVO1i0MDy)I37+HYcRj}}D&B*Ci1in4H zOLmG7zLbx4!W_xB+@ifmNdKxnA!Cy#alV&s|7+zAoXbNt>G%kHn(T_Nxekr{CmI$3 zs)p0vCLM{hr>RN0$t!?7vv;Hl3msh}^2 zK4yQe-Hexd*sUhUl1M7qSzo<8lMct0brht^C8NzgYvDi)^T+HpO#IKhrnv4?@3=qT z%hKLNM4IG|6Oqns%DrTDst;El&?mXymDD<$c{$ZVpQrrI=y~M-)fmpYvfL5h;#$6V zz3=-9c0_=x3=vD6V+8rxY`rJSL^^*9l#bo;KxI*2?ZuqzrqvH<^nUjoY*}%IhdP^+ z3&~|1$$b72%Y-w0O%6XJRf|bOdz39?J4B#Pa%Km$ot>krBoDNmbw>>`=^fu6OHazl ziDfrv{$dPA0BQV>@6A?vt`}ozVey)pdS>z$&%nGvR3xXCnh_#_{*ULLP z70Z0R8T=X;0N~mBE*_IBvw{Sx<8d|A^F}hJY~}h*_Uxb(DU=UboC|w0=MhwY_%lK^ zTYS;EM1lpvbPRpwq#hv>RaV3{8Z{vbC5j-=;sv}L5{UX2r>;P+DC=MK-EI@Wj zZI;8OTx}7MPT(m|#;TQX%-*NSF9hY=*S#Diyr4OETt-4zeRIJBf;5zi(e#F~;D{-xx8V)G~yaE+7nyyuVl(90~WYL|m`1Vs2B=N#pbF{|p)yI%a(%Z57Y_`%a4^@TZaPM7!cMXf6Zpx0!jc|D zY}4K_WEyqp4d>e__i$1pEX%Kqe{#0gcxQMUUE={tNG~0Nw~x*)eAeKV4R92Gj4I z4epZiN8L}2@uN=$$tM)0S9Za& zp4}2mDt{yBka=UAH~Q`Rix#AnCi z41XvG3D0=QgOOC|$aicFntQhy_~>#*q1w4>4ovvsT`CZQ5E_|4uce{7ZH$PFwL1Ob zBJGg*thBFs*g#ew?R1(nn&VquyI<~5h*{D;uhn?shKsLgR=T-&IwJHL-tb{DL9nz& zX7MKi%x;{eShK%-bp|5n;tNkSO4@T#Rz_HP$pFPZ*;Sy|h^Rvmw{|$|Q;>S|lQ<;5 zya@5Q`UZOpq14TvR%GdHDjNZYEdg7H3qpQyQa>3p5lYeFo<((>2RdE_Vzl4ae1)y zI1fgVyut5v0BsU=Sa-Zj3gY8RcnwYDyA;$AP>; zqQC@#5g3Ymi;b=WKQAN2{!a_=2Dl+!ZM;ZFe~Crf%>W(XxdCusRMrZ8{NQJxW7}x< zFx`PudF86bl+-G%-h&KVRKkW2)>2ffI=jQqDPkt>ycw2PyME6SKuMUy!cx-qSYPG1 zBpebn`nn5#p=+FT5;qFezxX7=fTcFL2*Di0aO@}%JzJG+U&IE!U%*A|2=!DZJu}qp zr)n4f#W z4vl%p0^pA`!d8I@5thHZ?Nwv%&T8c=-xi$bl1v#&bNgtjaY!9+UQ#k>^(Et^`S0Xd zu!ow>-?SmzkWIk;V+$Qxk!`sd!=Ee;`*H* z_LCGyD&EzmoznFOc31o3)-2OM^`i4t zZs%(i&O)-y7p&bB+`h`iOu3^U9p85qhd%jO*j(egik5{KwGeEVFgkD3h^4f_2O5`4 zw#+v%t-2cij!MUzU6_lvawrYNaO--$Gw?mm6?8VX$vKjoZ_WHny6FZ7=7&*PmK5Dw z<`?}(`m&cNq``&R>O04=%3sj!N)yd`PXU-b=2T7xFn{D&Df?Au_?bGky!I*la(8T{ z7wG6qrzMnCZ~pp;W9zl{^^r4{!v4<*Gm{&95~X{rjl?dlv_$=Xk(-Qp4YWWfjJF@P zc{}^vd_?!q{bM1ZOl6+*`W?pGQ4`iKJE8pU*AS3W6@4ysrlK8%v&nSo^FHo~f48K} zf$u-BH}c!1@VZTmh-EcrQK&6dhGrqZ%51ia#Mh@27q}yUO$8tmnJ8&>ZAEQN1s9o4pK+T&?R&lU6SLwHc zAy3#_53d3-UiP`N?WF>j;Ii@nIfgGpCoFq{I<&P7SSp*Jd>y@vlwBQ6>e}A<`Xj^o z2tq^HW=j$o=MMMwwot)Pc$=YdK#n=ca^z`h;~>n^HLQpvn%@LuIllWs&yWyj)q{pb zCxlhK|6gI-HI_R~1=caKfn%!rWfN`EBc*1@`tO=UH9)!WSib;KW0T)pDk3~Xfk9%* z5Pz}riXdD?d$kO%V&x(^ZFEHI82cgvk~A6@cWW4Bp8D@%Mp1lABT9MC?jROHs@-YNe-i*&LC5`;%_6tIpB#>E30R))`$X5N`pd(FCB-Kw zu!5sts%ySc9pBw?$_XZI&#>U0Kq%>Toq9joY7q{HgRrz+ z1><-#cRkW_?Nk3NTbdK-X}i|b0jg)B2}bDR+FGjIUTvUvvM(~2jrJ`7*tz~gXWaL? zKJw$7<6=(ZZngR?Ip*q(Cwc@-TirpD%6_r1gC(^rs=4^h3}xa{0gN6THIa@An3D4s zESB9{5%UQ~)W;zKAWLJDwFB}1YYmtIxTgtv5wW3w_ch z{En>x)xkAsW{DJsF5&mYC--3EnUgG4^NHZ4&&OE4bbOrov*=YSfE)W>zyAWmiSoKy z$H-k3$SB)sWAqbDk6bdM05v_w z+Ij>*kI$6OnPa-NFLRVR0v0jX*|CY&ZI z$Cr_E+#ZKjoH4Q4yEMq6-!5;of_BF6cNSBC{Aw%=n8N4y@UQveZ|PZk;})8OT)jlo zoT;Me*Pg!HJaMsYiosh~8>o7h8EIO-v5o)DwS|osnEJP4s^IYB?bjclcJ|s!L+;|& z%+I+`tWC3l+x?y0zfeP_6Ce>r&ETD_Gt=8G(#-CqI^T%%A-Y;82mZ3JO z)@Yz)^j0olqDa?Fu4v;BvkBE05a@FFa0OnuStKz1uAHitJ1Fp7ZaOeWIti zOl;ag<*a5N)A*H+IeJsnF)9wLGYY(x%0;)}Xy zxZmTWmCoW3PJ_;txVD^o<_Dr6%3i|BWjaOvgCcBz`eb(=(!MK2DMV+ z$2%Dt31(I72P3w+(iLty<8ohom(i9)5tG>JqyMDB8xkDcy}@*@*aPSk{N($cz54e& zzDqTk7H1{JC*8yxSWhC}xb&UWS#*iY?Pct1^sau13|?uruKTR%vs*n#8nl?&1VVfP zs(r`2efTS!r=J%dehKePcdBra8@+`FvV4WFJmW|{BffNIbep~V&#N31jH0>@#N>58 zzpp&Wu9|36Mhp0lz=oF9ek2nAgX*4F?BMuk7?W? zv9byonuYiur8U$==AZG~Yd7vE)oI9t#KBR7JMJ0oh4k8&)@*;mh;i`bFKbLt(>`ID!-S)5C)~WdTS-pASktijNX7u;w9aoe2UK5Xg2)fA|WSx4i_{i>cpJSRC zSP2>kc+ar6nx6zY{ zLe2>UiB64y$5}VZMjmM5^}ttYuXU96G1l@UX^<6n&ycbthiL2BCobs??K7Mqq^a9H zRYIq(HA;E7mj>v>?{Q#7X@<~3#$O*@Y=e4Q#FopZ*R}Z2Jf-;VNbFx=g$=YHaKJHl z{;VNW@jLiW0Xv1{n%LY~d8V{bm{KFJ)UYhrE$>?Q8Ip35dLM!MKz(nmw(s_D`%}3c zOekwG7{v!`lBl(@*8}q(bHn9t_(G#&LVt;tPG?k`ss}P(&z>&i!g|5_Y(Qx?xpY%+a;Pjd@oAw2J*xKV>zgQFpeyuJKFJES?Vjj z*$vei8ut+3#6@2EV)W~1;D(tsQM?1ER;&esBpjp8e!^8AP{mL_g_-liMynOmkK_mZ zYxcPpar<~~{5tlV-gN@%V7iPUw$(u5-9bH2@bmf-#GXux^r&r+-Bu~PY$m>h+CnyK z9wHh9oCey%*uh&sb+|r>$qin2_lxsa?NsZtLFIi@;t8i*`PCX-=8>zB7{W`1&LY!9 z{nb(^3#r`QqvSmW-ejfa2aQguTu#@G8m1oR_abCc^G~gpC@zm~h^6d7*i*^?(AMer zM7{CJyj-x8?gwL{4;+{=1`wTX0V&1^A;V8141Do1T&h7c5VdhRy``Gv{8=jckrAjQ z+-o(kt&aI|FZG#~dZDE%~jo!VJh2O_>%RN)rmK3*g1pR5bGK5P;hLOc8BrHQNCV!XP zU-X8fRBl_39M~tq!Oj3!a=JzteJZY!>NjKAQROo*qX{@Y&?zxChE*YJLKYxpI6(wDTvt1d z@R48>#$tQm!N?CnsiSvmQFuZU?W-K>UGK8IlW(TbtPlxpQ3h zCd4c$r9I}S04;8dD8`Y;n6Zcdrv$xi2Keq}2sXcyu(zcisCx)5NR;w-hs=0~vI5O- z){qggTruU1gF%A?iAScO=M$5$HajT2HJfjZ^p}ATh+%{4-J6)*LkX3Koj!Ed!u3%^ zTd9XSw1F-XUNypz1r0VjRWo#@qItoZCHtL`C3uIwa@&~vSJwm9$dFkWmrz4O z6pcD0f$+@B;QOTudy_X1)GmX-h^rK+E=u4EbS3 z!I8B;wrd@6$abfT)(d8i$%Z@(H*6*q7$X)HdG`g%EZ)Qk?R&6ya)<9ps5Tb*E zzuuieCCfBb>qI!)hpPM>dYm1h-q^Adoj2=Q z@^XRSNp;JY{L~iuG8OxVtPiYH8OyYiZB)(M-HM>#H;z!ur29UMVo+v`QDrch!0}~f z#Pw&p{(#2~9K=(Db3)R~?b)2KqrWAhD?Wck@Dul{5pA#V(8}zY#Ul+;(xmSgX1W4( zH|aj5SF(D`XR>oerdzO7y$j{VONiJZ!SkU9bcHPobPHp`2e2qH7vj#n-uxflUl5J+1wqR}A6oZ2*o7~$k+da$k-mV$ z{R>#=N$lIj<28{19@-b8vsoX;Hz}0+w&#swaV>K3Wyj#wJ0?Ys3KY?q(<= zDy_1gkI_S(>-T)^JnnG*<3hDSJ7_HchxaAnk=vuYj{r24VyL2Cv=y%9+fhdM@j&A7_-zlZaeJbv1ygNf z?pc%xfQ9q$V;Pu&tCU-u9GPUp1rb(Y)gp%EX6EL`$y55uNL=&8t-4?3krlDNU23y6 z7$(2IV-RN{Cbs8F3A^03m(Z_786%{sNj5fB4*SKedHn1W|NCS6_YewI0QR$S0_0${ zVyP_lJCW9yFX4h zi3S4w^?HI4gM7zYH~}_EDnEbMSpy!r2sW_G#02zBV?T1zP!V26zgcw5ts}hnh0*Nb z#bYBv`%N?PWyXrH}747w6Dvbg$=E!F+8y@8s&e_G1-TMgh%Gb-Nn z*#!X{;9+53W7h-#5sut+m4#d(hDxBq`ZldrB3GQHeiNE}I6fYC7C-|b5KXT4 zjsLm*K=Cc%fA-7CA+P4H`*zBHSX41=T9l3C(+nXdnMUUO9KZHpfVur$5VXnNGsGrK zG~O}%GyoXa*oB_T`cLz=6DYI+`{hT)stO4@39|QN8_|oxc6-=mXvu3nx`JV{P6C4$ zijspOfBCFj{a)kA(wMf+KlXG@j>jaJE=z!|zK_VsY+>2?@u(CykM5(?g@4l(#~ zztBf^gSI8u?oHY$Q6ePYYAc&@>+3{?|6g|b#~p3af{;6+GTnWN`wT6<=L*x@=O9Fr zC2dmB>m)7{8&#}U<94?f8i?x-YG-Wz$88P7i1zZZi>O<}MK@6vwmZ5b* z^uVVQbd`|m`3N^w0Ic@((l7$zRx(LQNPGZBk5s$r%W~W5%H4xE zGWY+IV1rH`V}|Q?pzf>iN_eeEqFqGTXg8o@?yu5o zP}k6)?U>*EC6PHt07=HpU0>aG?ht=Sb+)|el0-!Kk#3~PoOmnx zrNU)=&$g#%`TZJ(%tW|~HmmDydr63D%V}*XeD|pPWdB~siB;J;j~!ILz-8C8>Q8P& z$`W?8LP7ul*i1$E&Ifa-3H))zX6`9M+d{FT(zWCvg7ThVZj{$bz31Yd)&`*3sOd$< zer(`&G{j}V%8fX?2>3$XdF_IY$*sLRO7i``Pm;q|qCBrGxx||nA)A)C>D_VUyqtbr z)HBgk##uh_Lf$WgR)?w7DnQW(yVvcn4VN@OQ?Icq8$#hQ+~a?PHRuQC<2v8#(NM07 z%eeU(87$~$l}^q4|ET)PsHncTZ91f@eoKJ$O_6_N*{Yk2i1hY1s$jXy7z-q9)W1bDC1n}~d97jxMyn>Sm+*-tb zrlrfZzl4iEF`Hp>u3UaEecOL-+o1lGwlZ6Valu1m?WfJZ5N`pLq*DgIP)GKy3_+(6 zjXwuBKT*W3>J~U*eqdC5)|Ps(b(me(oqg={)1K_jk&<{j*)ic`fw3bsp=M9pY z2!<5Z!XaR;Ci6PLS`ikYhMUV&zSl_4H{-*RU5}Yr2!G%X5kyJx38MV0x*nLF&YEiB zNz=v_iCWg3A<4hyvSCc5ZlnO>RrGH+{GiYUStk-ev930%71z}X^5fJbdq>ea;v*>Z zY3^NSf>*7Ok@Q-_(OO+xXcZ^Ev+I9flGYL9>(y0oeNjdCPuMv?%u(M@i&Z<_{C(~@ zovWbJ`LRRYP9~*r?k$6jQWkHjNx7ioN(8YK>itn6yDk=y$qN*^?d<4_3%Q`GBy)Ld zWI6O|eO6>J0`#D#&@~DGECXINxsI zM(|yHude5=ZUtN^ap!(6q#V4Lm{khgvA?XAo4+QMgrHdh0(T0DY9V0u5@)IyO|pWd z!lPm^e-VfVRy3nJ^8HM)SB`u6Q2Vz30v zLNl0FQb>c$+8q$OMs!CKDFYK)_TTqy)d9f)Ozcg12`g#&af|0~Q%8m^k0z^lalLc1 z&hM7z?e*&Hg~=V2|4bapYSdg%2wMUvtpLkc@=;Llm(>Vm@D)2#Lt@&c9(2<5_EhqB zLl|>HeZ(?&Px-N_PN2el*cgIX;W@?O(Lkr}?27ESU=xzWhRg8OT~J_xkajZ!vGzv% zd`$MSKT`G+bTkip##=r|B>@#2SxUH_1V|?-{>8jLJp4$aUqEodkk4Hz><=AZ*dgye z(62rv+|>29T6(PiW^X_k9m!EH60nK}nOrRc0f5cH)tP1KKO-$&gSgC%pW*J><->p0 zQ41)o z)2W9y(nR%sH{b=Gbwo-GPj%Dmaf3!E#t|phqoc(UP}YdDr9FCj+uJyLpqnDs{F7PY zz^1w;t#Z$MM!?1}^ciFOWOWxNvG_A%Z&$-zWvAlaZ&)h6fR-)2CMFnSv}z1Aim3fh z8!NG%u4oyX%Wq9LD{sEtI}F9}phB=Yo)vQny%PPhskpnPb1a}tG#K~7F|88LweXHh z!m!4`)*cCfaK`L?b2ZC5NGUwh$2|7v zC_fG5IeDZ%(H%?yn6Bh0P#ngt?Ev>v-v^#gOm=4*X*=wqRY^=+1el0vydeZH9GSEZ zV0|;?XwSEOTF^a^3!W0>E`k3Wn!%WO<&JhyfGsZ9e2Yv~dE6=X8%`YbZ!2zMP*-J@ zo7ndm7uYz|0hIDP))SXN1vIPI;>puO4<0>;dQ3-5y;`SC+rjW9d3D9J z-HH6Y3*TmC?(`J4aX%FHi`Y`t&J)0tgUFJAHaDB6+HReR;c?u6hC=A->Tdi)yDWy1 zpVLWqsOy)VE_vQphN=ExtW#t4p_4+D8H@~RxBy38-ds>-WQLQ{}2??QAWzd?L8{>d+|T zR_{={_BOmT@3ecFuamf5P;~*6&p4kgW^DdpWxzvPg8=HZt|!S}@+;R)NfWk@Y6ofg zy!W?tLHp0y6?Fw@Qtee!&%|AuvDfz5rVtF>qb!NPX3zb0V=svkkHk4K$M?^=c32dg zo>^N88L?&HHk^=qSZ?+j*lcG30FdW+!yf4&9gaAVlyIOD?|MzedUMfpv-y&iGaWQF z6`gM8EjtvXhF1%WCFm3=V>j)wP8m^@k0aluWv zjd0@}OYSD|v8-a=D&ey7RqKi#9d(c!Pc+r5sbxsCqlw5K2Kt8u%ic?;(_L(7U#}mp zSSJnHtFV0Q+qD00{I1#vNYx{t7_8RI4zAJq*{>X5P37+6-S34!7`7d`=9)_X#|5B_ z%wCq&XmAd|Lg8#oAlTGrXD11?NJ5C{I{&px)&Z(UQt&Is;x8fAyPcY6)^>lHR5&Sv zXkK5p_#0L_h!nwhdJT$Xw?E+st^6hk^O7Hm1jTG)d@hW!`A0o**2kZ;r)Qlp{U5VmZke=|#0be1&L!h{mhtSD z-%X{~y*ypw!*8Iz$A(I^oXkvMX2XwFL69bZZRmq{IUQ_L8#;hr*_5#n7--T+?{}^- zlqn&`FYii=Xp4Fp>8Ol`gBZ+S4o&%wm#w%Le&Of6@ij=_qQD3r=ZL*4iLA76uoy41 zm7_>ZJLpvhq`n0ZnLPjo^(?(nbZnbB?(r?9sA0WpV=yz}YVO-NP-x{esT?&|y3eT^^sK2aa2DSFe&)?MO-;!c2GvPZutK3Bs_jhoT z`3KMw$)nxpHAhi_q$c&+v;(INdt6DM9Y6F#QK3j?M<39GJ|Nx-Buza(-w!dvxW@&x z8?3(IiY|8!G{igJ8`zWzn2WSwi}nSO4tlr69Z zG`b!Hb+mgNCm3adc>@zR(kO_LExTE>_DwqVOg~TPKLmVKm^3wwqbJVi^dnYRWtVkK zJkfr}ZA2=w5UV}$UYg+Da*nFg;z!L>y*ix0 z()QDQuM(FT)Yvg>fY6lh%c?-J5-XwITQrrptX2W0RFEF6jSv&}g~NN{ZeobvJ_->x znvgV_A;w~nu62p8U)VDqERUhfJ5|mTc1pTXX8oUC$YkB5Pasr1>#= z;*-EmpPbR$HUB+S9LjG^O7FL+kuKsV|1pOPvjsNBEM*We7D8VKfRw@hNF&e#b;)n> zS<$%6M{AC84mQ!>UlDv6{96(HK$1DYsc<~Ydg6H_%D#ACsU`6VT~z&JXLC9(Qj?fi ze7nFj;~6E}?v8{iS4!&bMg-l%_cP(tl*lSrb9R#nB>wW~E913G0F6zTqW~(O6?=2H zq^MH7r4fhu$PNGhP9y$Ep>smV7PsG7_U;RL@=$zw49NWyt;}^A7>1=Hn%L<)Nqx_> z7?P#Pj|%zYw`uD~k3?3zd7mG!dfF6We=58avippRJ#4CS{IzJ~nShLjjB8TkI$Pa8 zrl@t76bayY{ILcQH{L$VFcSq+^+;-Y#kyZVx;s+e5}s@boE3ofc0xW2QGMOi=4xO* zsLFvqBoxETL9wlm&smWb;s-iem<()2lq_fvErs9W_^mNtRKt=kjh-d%9G}ht3^_+S zX2O)vmP$7EHL1VJ=gBhhBS&NlKx*M1->(UQZzL~pInyI@Wyr z4s~xr)9BJL5-AKjOlFF4et(Fqth?P1?$2hDAD-EbZ#=8A`vq&Ee}AFh9ZcpA81u`sEYKz+hmanSbuUL1M@+mOH2($RxVnx5TTy{%}}VpTbn(tVe~4a z>j&F-P1Qcdc?3}@-V;cqIk~TVRCPwxY3ywXcx^5ql)sZP13D8`A9eLiI9Ca9f|vSM zz?_(Kb^gv($s{D3PQFXs-`(rV-Ci?u`}3O>%P|V$?djWkwt{g#%O&JLoM4DB-pz}4 z`tIfzf1^;;lOc468NE3AVz{H0;(Di_0`UCDG-hx*;bqO=3Jhqkg7B{FS)fB&71~^> zRyN<}cxw&VQGEI7Ez0-ZOCJ_8k+?%E#LlI&=0}GE2L?eX+&#&TCMbKDYvbT4z%JQ3 z>$DX>O`V5>S#J?zhC4b2X=M6-r4BC~LY}c2eguvjHtC2sc3LTAR z8>hbi0|d~uiw z3~x@|$S89Fds|nWQ^WE`&^p@Ko2*Koc5T?NKi#3QRG{0mdeQ}LYPvA?J}>^*8QiYD zJekQ?`v}2R9U%3|qu<=e?8MzwtbbL-W1|<;a=Bm&gi&6}eAL+T^GL7BRq+butNXlB z%8qdl{ng}X63=|m`x7-klMCZ6@d~cB!DYMCzINPJis)jlqsp}b#bNo`;Awm`j1z96zw}ZaK<^BRx@!+kmKz0i2m-e z$rg{#{wJ}JNAY7imTt3!lK1OeN70XqBTA|2Mc2Z9WN`~d8WaN9`{Y#o-Or`4zYqu*gFSb5M*LrL-P=nwmvVKE|KIKRL+W&g&^ z&-F*v|Hb><(2-=G>i&J;?<0vadsCI0lcWlGJzX)O`utmYmU2NHBn&X`L`P{=2*10q zaK#G7*&!(4KRuh@>vr2@R71W;^RiCp4j2P9Me*f zT@gP@xfr#V!ADQ9L*<$|juMD|#)x-8fsACslTUwR6+sVQ2#{Y_kOHVpHwW=690&rZ zimv%o^4i!-%0WiN3kzXckbM9!J)2AzfFbMr8DlU~aTql~GC*werhhfUYXsVR$^Y0* z{@*46n3LR}(o4Lb=K2p^D?dF8^p5Tm&fySZmhk@>5+Ax$+{sl5r`lr0oOykGokI~9 zAOA!pQ(S)pFERVtc!wY|dp4Ba&`Jt(g{3h@@gH0Kp%jbT=Il+I$vDV)vv0tL{a-;#j|M>)i2? z`bO@V-sWr90F|XjfaMLbn7<&z~uYJP_(Zr51?H*HFUG0;pQUnr0e_YUP;tW-|5s z@*k~}W#TJ8NC}R~0;G&@Jl4)PDelE3o2{;@a5NL?J4dSr$CW7#R{{aa?r>!NJ)Gel zy;!&0T{<%AuMSE1<27|z{Uq4?jM#{Ye|%gdaE_<*U&sr)gTn13$DO=Cm&{VxmhwBu z9g^w;WRXWoIFAv?0D>e9bD-a@8LP204TvBl%oZFD;FyR>zHbLc%4;gSb|ZwNlx+T6 zPthg*WLaH3+#f#}FMav24TRV^X9dpkBdDXV31F1~k21L3YX3d^DnI=W$6EQBH=Jqg zg=4j0^Sbn3s+U@)X>Pc@L{=ZWJEls$hISdQ8jBs>mnEGhu{AG&;dGNZ`E1{b9oF_2 z-W9_cm;)fwN3OnZt?$sJguDo_t@c$8{lAVQ$in-&4w5hifgqT5^4{b2hc-_--;GG2 z&GcD6e<%}jan@{I0a9k4nyLMrW6}VvT%He$qGe^U6>_hq3LqN+9^(T$ zzVml*V#p6H0&?8lap&w71|h0LJuuJ&S67kMpM_>MnUKD_6^{fY4}od3pCe8{$A?KjXvytyKc1dS%_DSXS)()3o0;rTAlK0!;OqkgbgYvP0`iXjgK zHhXgqun-nYfdb;k{K+9DLNj20k-He0ni>Yc(vK)OjbmmI^pi_&9bDA@IEVtVfYsXR zjkRs*f=HGg#b>4y;Q6DrAHw-aP0&NiAiau#FRr>}660R&J6BbckQgQP^nicrcaYSf zq~%cZV{9gJ+S;(b@c^mCX~b2>&rT}&uF>yef~B3*9@(ztdlxY!*4jO!DGLJs7SFGL z&EnHc34qc1ssjkzyJ-*-^#i;V##W^*)MN)_?SwpjZAV|;0{PVs5j@~t+;$iS3O`p^ za;YDBora03ffppvW1)bEI-uI7edmmMg!#;nH>Q6o)1K!vBZkM&XUn_De_dTH2VkuZ zyy^u+DG?ZE#dyR4|KO0`T+8Vreqf1EOD^%6_+c35z=;LN9`Y(@6GEuo1Jq;4slxlw zGoarQHv5NI5{YI=EK@4kN@^n-nNT2`TN4?xk0E48a}NxI0FGv9Fr+yLepTrk#ak5n z;f0n>h{XFFZZ)*~LWd~_hvNX~w8c)560sPcgoKg%0@E&B#P8hYy_J)gHd^ood$+LMXEDl}-q_5i<@xP(9&n9D~ zw{E^Uik0#jsM@2MGATM2Ot1V3=B zG0zUim=3!WnH2tnP7Vjz$1PRMlI48$8hPLghUGmmPkwMPpTXoq$#K ziitX51`KxlSV)i1Sm$AYYY z1hHZ z2~Ys>>M&WZ*S+p0z0sd?0CWzoV|Cn9-~6$8A{*>H`S9`mhRL{di~(?@<$hvE3nT$R zn~c9>@8>BbcAbW|C0_s^x7uz?ww1X@5jMB5Xl5{-_%`3?9eM&2h-huJ7Kqp=2bg!u)Nz^O3`qz`C`7=X;W2M?^O*SDRFc26Oxy7f_oZV64Q6F z&jnFDE$4+w#Fq5;e09e*cSmywu}>@Zk4&7jN8)ze#1YAFj(Lb{^HBZbI|Q9t zSrA|#v3$??Wyc(lN5$l4z}OK|L;HSxQ6y5hahp{1)k=x3}+RqjhWuuDHDuSngdE=+yD z2b>`!zi{S98U^#;z##^Ah{=JzgJ<>&dGSsJN6D~vY`wY9A$T2*w;!5QPKR)3FN@&1 z@L{4&8S=Xm@0zh4i9=V_*}ua4$?Iq+i(dR321d4s4yQ-qMFpk$g^cMgf^oBX;Pm}V z?#H!`_)aP(fc&qcagctKQ~Vo!%GU1LJEo?|e{F)hKyrMK#m}cgn5wkGZ=C)l&H0I@ zs(N&eg?3puiiTmMQc{3gS;LW||&m`Pp22!It0~kwI5pX3RIp(z=WA z>cvXmTSfNe8HT|+qOJjsq6W_`Tm=r_B^p`d89bzlHqfNOyKx^IWDPewa*3X2za6mL zK7Mw`Vdf-ARl7q!NzDA|w286O>aMaIG+^_|lM%LHGNLRbJf)$vJc8+pgE6%wjw5b|_U zGLe&MO;`OT2V56Rl!D8+`{DZJ;pgGp^^2hvT9ycb$cjjvZTI*e*eHDu z=x4{_qN4^ze~v|#>|@iBen?uJe(v19p&^Y9Jik0vYsBL(4g!D2e=Y&quWAzK&d^pA3>iL@g*4Li%obPzXnwKqdpt3g5+Q zy;?7szTnmUlTdQ4zb_8Ks(>K#xhKnY&SVk6sVwX=AI{RIM?J|cRkk)%ia)f-O{!c3 zUlk@{^RQf-y0}ARjiCA8)(X@JVfN%@+Zb?qrAlF4h7dE5v%IXf7>?by>31^tAa=3& znG}~YE^`p*L@`=oRRvSLxVlaNT<)UjY@-0D-$;PkJ6ZOn!@g)qgw)FAd&+C!#m8$b z-;LgsQ7b>)1A{U)=7U95&lN< zdNhzbSfr#LUGnAJtCmzfH&_4_nCRb@5F24l!$O!^D}lNT=^<_pVlbXvi(*Kty?zB) z@$`(B5Gr)7(kS3tU<%oOCR2J$-V2v~)DZpWKD*gXzxf(i5AOfg15w(!7VyYsy=B?R zID$vkZ}zBT%liW2PX&ITHHTcl)itT{x%V&cIM?bSOM1GHU=vkuy$W9}b+mhC>m_u@ zLY3^H39oqx!DWXC?^m0+Yj?lltK9f<&C|IobS#dvPXM;5KDggkd+Nim7xJl~UF?77 z_1z42ZGR!<1rkS^fXBGrYiHNaTjJ;sUp^B7&K3l0F@nMjVzVg0N64@DS;E9-^X^6O zs-yQ_2_;xWgi>8AC!f!)Xa*NNdzk|xKo)7$*jgowaGIc`j+9zpAG2sQ$$obPUphof zTv8TpZAQTW zA%OUwuU;o{H5@o7-&D0F!|IC-h6hS8EGprhlgkS~svjD~2&O?_US@FeIs5zygWO`U zsTTkx17srWIlO2s=Ei4IuC(h^j5~c|HPKfa2I-9#oZAT+T~bf3X*4U$Jh0nZ{7Ehf zLz1N9q{G4}=D!UFj95_(xnLVbS9u&8qgIaZ=ub~iUz92A*iL~;Dh52u{#LfhdbTKl2Cxu>ZGuPWe7@~1jx$9oTc z<09n|qvKyUw81@0hwh))rKU+T>Ow?xH`Nna?~nM(u(s&f9!dF(bIml9ToqR>kC90B z>k68`c~PwZ=0pH$pg_rEbwia+`u3D)%{5qtaUwf+Ygf~do+SS zWKaQU1V*@ZSNolQ$s8{_MTvo0c@ppkmK42`Zv5IkcTb+7Vc&@Gi0!9F*3V(5G8e^L z`XI;NT1E47$Ie?Jrn4d>IAQJ?A?(yipt&G~hEJ5EbCU%zzH$h-f8!CASvZ(|EFG$)0q2pmJU z*xJc~oSnUFiphc!>Fqul)Zc4uMH<6^3}7OIFsc&gY-~TPxYCp7ExHp4^){_&qCLnG zgO}!BYoeKTu9Y7X5^!BLXX&+@mbl9+h`RlL- zVhUnE>@^pjaqw4d$P6KD01+j_mK&q}yc`x10~vCya1{p#o1dr4t-YJVVWJWtkWkQAB5#D;zPmY!gAafdC}R>_Uj8gQ5?k^TUBSXmMWfU&@V zdnM1EP?)nB{Xb$+fzHpMwC2OUx&)FGR8}i#kP5)3Q&?HIW<`b;SUCz?v?$? zhMUxhk(ua$+F7j9>%OooJ`>1(<2C%$U!c|0Q*(y{cFuZf7M7S99YR7rKd#BwA^M8x{oey483yQG+BP$w>EyJY= zFmGY9#1c<#c=b$7SnLJ)-Q$Zg=+s{W4000Re$cu&F19bi2ei!TXY^I1aX;oA=wa?@ zAFTw%t)SmaE?nQ&S+A2_MF#O*zR}j=tyvcAj!q*A^76j(qgu)xyVGf(oS!wNnG9Mx z+ZlY`;R7O9o5vY_B)ruZ16d|@Kgn%TO-;miDlq3L$sv=u@Wd?-oP&~PcL`=!Y@bxq z8W`vJsBS44I;Lh`{Scg(J&!)-lWF<&hs#a$)*jQpcGvGbT`$VNTpPY)-J@68#lCRy z({f`BvH$W-=4zcijsI2iDjszI<%HRNl-e$uzw=;9%J&HX8~yDFi9c8C{V7uYxWOB9 z1-qIocXj7GR|hBz`Qiw3^v?Hn5`_!RnYsMYH3=fs_EB)?Sg6(7MVR}lu1R!9Bf*@Q z8|ynC$;hxL826ljIgN>~B^qAs^QCx2Eft-#=jE;5D)|xV@1CIEH^%+^85k6V0XIxN zulcbE-dq2V;6fa0jlDwl@U0iGL+F4e*7wcCRT@FXx5Dst?tD4%a zRqEE9(E~QK5HtJ%k;_{zUpE()ZH=yWFv+&VZpcsT*7tCc@1=6#c2i3t_NVf~>Bl%MFMr6ioT6BBiJ8}=uuUR~ z@4cmbL6X3V1Kc`hJ*9HxQBhwnask#uO%L8s;9U}93*4j{1izQCvVM~?Dbes`Wo zs<-*83cW!--IgTGE%kh!qr&G>HwxZ$KRH(&8Zinv`D*baSjt5u5MVpZ=fAl@r7|$( z17wF)x+k=rw3MhKptqNtBCp%Lzu95?&p*)lUPCo**C7af3L8^cUpX$*W87uk`y~)l zK(<$0vA$+L&D`&1oeZNimAWYrO?=byOHEx&tuE2*44>M!5p~QjqEhDG z0mVrtf7r^iPhR=^?j(q6l z3_?sVqLQ3%Y@W6>U=bU60IIZ9Uo4u4{zvWlc*Jqd!|KkV12(NA$ddna)%!P%C_^ga4z%UOywzTD{@qI$EexCr(Ya*5d@?9gKE z)NHDb<;_b$txReC9tu)HE#D}RHZ-SZT{B+CFZesw!;s zy-q(uWPlZdlW%UQb0TIp2SYS=$JU+l`9Q6gNJh%H6sg!@iMD2{JKI~8#vYSra}pkt zjn~I7%MJ2xOA;k-9kwm!KeE{8EFSfau8?G3P|Ur*#(Fm&a@+p)`j_Ub+co~}Lli0F z>Qbb!rcftPm__9+N(pgcNpiKg4lDJk+^XY<5Q~+cLfixC9T8$^qVRaL)1BAyoH~Cq)w{b}3c9I6?VXF&k^5^$M z{l_+>vbLTsD)QQL;e$1-i?4U458jkF?wQdKK5}Gc9nt9xWro|8MYg}HD z+fhcgwsUlh$Mp!i|9%2fx9g}Rqj5%UTF{DB>aTCG2*Hs`#^8hCNMTNEp*5ruXbZTH z7N(xKu|c+l-2BW3|E5&1ml6`V1IspR^;lXVNPuM1GMrJd44mvGZ6T+6#dpr~#0|<4 ze~p5v@tikjTNdi_Gl$(_zIClDe^H5bAFuK=8LAHj%O~EfYntBpefjeB7c7(mc|J&o z+#IwAehwoyyG0KkhRZ8kT!q6tqIyy}z!mO`T!`TW3B(4o_?sqZ-s@-_et(d&1I4C}3Q4C`x`jKU3f6?kG%Yim(mKLf8kBTocX zAAZp?%y~b;sh{uI;9!8S>8ywaef<*cMJZ|ZW~_!<%zU5kg_)`cB@Qy8lwqx7hWLH! zp`TWzYO_?&?KIT%Y8z0=JsjWe-c5a?^?Pv9Iu;MUJEoWIiOMNlx_Hd$v4ZobuG(xz zp>Xc{`EU2RiaYM#9{xWD4jJIBtqPUJC8Xu~oHCbv-}}5An0R6Ay(^K>P)>COcB|OW z$HUCSkJ;y$15Ca*(G&|p)i>PeNW^DskDT9@t_$;s>e?9LAzKSII@${{B$yN7JDPPl zSGLF5u=ruc{`r76WP@Xn3He+VR)q(pElS}c+OJ;(f#fV+!gRw3bj_KZ_DCEx&YpmN zCQ9MPN0?vU@jSD{#NLcI?brmxT0R>beEqdMF1h^?=1bzU`3~RMcJ_3W0aN`t@lb(` zxFqu>rTh2B1xGy4VZnJpn^wk5zh;!jucODK(Q;xtAH(+@ZXBdXmK(TC16W`1>&$>6u^#m( zClvf4yNS)a;R+0g!zQ;UVlUy}k+m6&& z!B}dzMjI}6O}nSpB|U_`Q4-q%r390FivE(LGtt(yk{tczTaEVN*LJsreh$0yb@Utq z$29`+t3}Q6rq=VZO>Bot_oNFUH#WJyOj3mz|i(3eOkstk&3lP!yQca1zc#8i<6UjOK z$rrZc62s@s4A@f3jO^9}m-2jpS1D0jyqQ#-nq_+~l%s;9vHL2p4qNsI4i#EHOfuL| zckT}UPsuOL6Y}aX=zTjR5^`G%-O%0Gd2YYS9szM@=9M3oz9|&?DfyQpH~MJv%>oj5 z>E7hB4Rh%C3j>dpG>>B+mz@_BZrqTo8WQ(SGMOH`~=`q4*w+F-Z8sW(~%dYLoc zeD~@+6hh!979m?+mor{)M|mEZ_6^KeL%DJ^LWGEB?jduw}VT{Esl z4*!;K4S}XtsbJQ+4@)QM$AlXZ8#Rv7ai-@&ezTwFbb&w2NUhvXrl6BEzBX-j-zz`m z=f?CGq#t?1IGc5!d{HR4OE&beS|R>Z5Q=cHc;xIge3nOgI(TkQk6piN^Ckj4BUvx1 zIuz;rUftI)hqWyMg?QyfLc z$MPcGi|B_ZNsvifB6dl<36;Og0_dS}Zdh_B__N`jXmqAgwFSu2LIf5dCGEz$0rC2x z9t@pIk0F#&-$Se^cD@@j7zgp`)^$Y)*z?>CZYS5Z@oYPIlWVryMJchRng0Dtp4`;L zlwW3JeptDk;h>S@FwEm7uz^@kwk|f~=~=KW3G1nuu1r4S_SN+W1|y3EM>YkRkDkZ~ z6oY>q5yE`GNa|(s zaQK3bNAE#i2I9}}Bxg~3y3U`j$gUQEAyVe7Su(%*O89rNE>1SLtG9! z^TQ5yPY?T*k#DBBV@g&pjc8flub^U2B*(|UAqsAnwd*i>)lio0gghjIcgL3k*v zzC@VoCmB4^irF>tXH0F#r7o~$$9$@N!;mK0+1k?Ei?V+<|G01GLamx7_l&k>#aR%$ zCN0e0`8Zp5f4t!WA{BH>EYR6^xP;AV^Uq=B?e^6DB@?h#_j|6NL3OP~z1$_(_#iYm?$?7S*_-i&rU-O6uGclV8 zo|X55s(}!=&N%|^Q#zDiCw-aKR-OyR(?#E*@O5T_PeU1P5wD{#&wi&r)!J!o-T( ztdZyKVZAx6;WDLDzM7aqMGCiY5ptC2(?$S&vQ8s=+mE8~Edd*_Tj_!xnI;9BnOQ}) z17RX;s`FiHlR(9beC9+L$xKI>=yWA}zG&i1ai}?uKm|W=IbG^JiIQLZWW7wS_px3y zajG=*J5Mdb>+21&Wt&fLypSkgxBSQQafFO8pT1iA&+4JZj#`$LS6xtpPW4`sqQ(g~ z`a%6)GFXTXY{}mXE^_&b@0Zg_9?_R|49DZHj}>w8xQx3bBlX!-jBnVP+3kOX7E_xI zG;Jq0{H9{&jP7Y>`}k=hEYZ`$i%lil&%C5X{o_38JoC)L@QXK{-09yUdz#7B^dE=! zvzfgqlwZXYSbAv-tzac5)9E!^|83Xh(WG8uO==^q1Zf-wd$H$phWEs8F>~cBbs-|k zo%y*qaJs@JpeF)!r3S{%c@9yc*7H9wy&En<1Q1ut^oI0SNHxjpJI$G9+Da_Y}7jY zby!>`oYy(5MWDxm5Eh}s*u=AOA8p0(gnr#u=-CkWc-+Hn3M}Kor!s%PlLUj(qmJxZ zveozZJO%vgxZS=ksCTU)UwhVey(A2SM%+7VazArm#jb${qaRv+l3sEp{J}V6zA(z~ zPdMo>cvBDkj;_IngSl=2mNw*^b702iHb%J;0C%F8BKQo&@`ulpS>Q{CduM)$CzdVl z)p-Y)8~NZ*w<(l!{@B>P!`-%YmN_1ac)ODh><-tAvLQIxx7hWj7t zmFe%U`sYuDxZND4rtGddkl$3cE~vw@-1$_*YSW?u?F(`sX+^uM?!d=P36>mHlRMVY zJbAbOdiM?8eZuXd@WcBQHEieL)O##8Q9E zUdk9MI++g}Xm$xFkpD?;Oe1+%VA&P)W)vk}{iepxIFr?t#zu0r&DtGl_?0N9?JcTs zdY9XqNi<475IH_bB4i=5-oq}7vT7=Q+kz|w-q!xX(7Mn~RV#l$mwn8pIyX*Ojei0z zdE9(cDtJN#0LWZ>O0?TuPEidi8wK5?k7pC_vRm{MQJa26NY_zy)V{WdWwVj$eDy7x z!+Fv!_ZJS)2o!0Cg1vOX&(*BKLdS9QAtB&pkZ7cSsKc>uXkEGAkGwQuT=yFc`8)+A z={xJPfa-3KbrFizfA&WCDk-E!2NQQ6VF4=S?q74bF2viYr0~xcYdXTz=qfA06m~~* zSgYyzXb*wmA`g+RXkAwl-6B{u#2r~B zdz-c`w191^R~~g(!752KDC*u3dwE!yeOQhBt&GENwL%$Up{mfm6F2GQDHDAZ`k|JV3qEy&HM3Ln;*JMyEopk-!$f#;6z5g(01|s7{Qs)dADz8q}n9enb5>} z2P$%z;~?;QKShlg_(e>DnUpK68UtB~8zkC!))JO-t4%x>X&#yyDItB;C|HtvsAw|j z4KX72t(eJg9oZbMNm-#SGH^Fe<=QZ|M=iNc-f%l6{?TU$HeX3%Z!Q%Zj1iNZ97ldT zb=c4G0=8sTNad(XYCcC(n)}=s9f4rmw`&?GEGTjraeqTm@#*jk`KgNliQG3vA_iCV z8g2wi?)>pbEDqjsuLlbyW6`g^hOujQj`D?mXEu1#BKIzD@^@y-)-6ZFaoa7o`+?pc z``_mz(bKO~bt!x7Q#cMd--X0WiSPvAZ5Nwmyc(#v1^F)-e8cJxUe(=Z;pRtF#bUA>i!I5@4(W_@vcN%mv;Zbs_-XlOd4meWjGPH_7d1O99j~ zHv~LYt1=Nsx6gaeuhGCa{y)b3Bs=Cwm%V%F9WI1j|0YLooMrkGicN5Gv!rPpF%R(fH_JS4gff|}#^?KRs(-$>o0SWJzTR8QGRjNyyS;q6XCWgK^jUtIUXu3N2!eu` z1TQgKs>_{fS-AQ(gDiTHm{vR~kV8SUQs_BZv)X6V=w!kJ@sz;Q0=|kvSL`}yf5+t{ z)tnbIT{G!q<(-OX9aAot<`Azj;vz}dlDFdP$y7Rzb+RzkT;>{g=uDY4ue#D=(|+@f zL4)ksDBNN2Kt)OyMMs@^BEaDmR}ob;e`Q4rN@6=Mgk+vfKE7zTL$M_p4bs^AsH*?s zgVYv7I}OdF^ZOB`A$Kax$~V>u*#wKEyp@bR1dC*Rl>*OYZy;Cmga@J-5!Ia0cF*EB z^f_`k8))tnZO5iQnF$WCM#aH*jGkx~s73OMT*Ew66JjDrb!(T9BPV1sFL&kSJ9%Cn z&3%i=Fn}*qg7n4e8EvnK8r&Tz;u^s;y!DP>WoGLRo$ObmhU^#D7Fr3Ya4!GUI&vA_ zUM=&tUklEKN8H`Uv_YgM{vQCpKtR9u?MB9~ACYx%HZ=!g+iHw$4dYE9mLc>O6z&Nzyb89Q*w zwH0SvTal1Svki%^ojB{-g|n``IGeE#XI=X(++*D69yRJl$T&2+bC~n4-8h%A8-%%y zx}S6HMxrAg?FrV6cIUgMui-U)P3uC&Zm2nL^VReQPu3b3q+J$o&7P@xeylX2ixVGZFYa7mG z(EbCGGq>Ra!({A1s{0TE5uWJ8uSeXh>ycY_c`0ec3MhFRt@9B&Z*SVA`;S|HM5$7x zFn#)T3C4v0>AVxSHI5T9Fols(YA)&sfZrF!$sG# zNn(y4O2Uyt$vB$Bq~v-}#?gZ|%)t~K-JgP^2UBq5fPu#jrsC+qR2(~`CJl5GL$`w| z#vD$;u|p|1Mwr{EJ0Zgpim~bBNZ;wE;aKKW96y+X69-c)OvagG7jQly9S3%v#NB^+ z0IeH$Kx%>u2?sCW%>HB~>`Orc;eNt@2V?4dM(Uc3#C?2E#+kjzNZgx(a|cq9u-Crt zOUB7PNjQBZ1z8z9E|#?0-Y_Ckeh1E3#J(;JzY=dEzJ9`G`hx}y!efs;CYu)dt}A5? zZ_Dr#fRz^6+q5{4IjRB?pRh+pd-NwHe>3X8MGGh)W@U5He5t=kaCi}PuTfnpcZ>h2e6$iWs z`2q+89GA1nk(@@Uhit$3nR9xK4nI%rF&o#Jo;gMn;Kf^o3l~PGPMt22g6f!HcpXRC zylMFQaUNZz2iaWjAbeB4khI|vw7$3}JvH*NopEkImw;sfo(P;Rs(j;Nmx zp^z867a|nm#&oyb!@xUP!n~1C_8Z#Zj%FmDD$UMxWn$~rt%BpcrB~^>%ny!m8eWqz z{0_@u1fzt0KaWr`ZhTj4HrOvgqb1jIX2zYVU4HBuk7+Wzru|Dpt+hhd)|H-x`|o=I zue@lE#X%$CH~Kv4Z9`vw9e&->&J3u>N$Dn!vtnWL zzsW_5cO_`5BR3{;z*@#X5b?_qiabV98^Iihl`TP%L1`OE!i2f8n3o)I!K`xD-?gbB_G;88@#uT9-@Zm)kve z_}uTg!{>h2@Ptm2J6xXcR;n#+%=otb@(k;2lk9fZ6B$HZfdrd39)?4r^F|3ib>Fy= zi$?+qzF7RoQC1Pvs3O^=@l)}R63&SeC(1;@bokIOe~%7VLKC4eh^_VHub=+g_oJ6~{Z>HQc4jss2|= zhdR7D(%_d9x`oUwoC0aTlnENYXq?>X-8k>OkcIW&I0%RQhy=Wd@UkMG8zC<*FCxRA z)5u{6b~CNf3^llK?Ah~;;yb_Q)~#DtF5e=K>(PbIF+_JA3(;|4$Af_#w>+V9w3bH#V_C4+Hu8N< zmp0(L(mok~meyP@Et_`kzRBxdjtqUBwJrbvAOJ~3K~$!2!WxEAH>sQEf0cPh+vFFF zf7!m0a_O8vTF49Ei0f=`zH@#z$7ph%kAVIZoS6O~CR-GAproU(qT!4;k69+pt1)fM ze9XpNx>MzcLQZNn@S-h0)j|V4*~sqm`r-2i;q?XJ@$*X-FOu`Y>odmZqnjU|fFB-) zAHFdFGamEx!X5BPU41?;e2nk) z3yq*)?AF_E!E@cZN*g98WynHIXqBChqhrmEEoo~VOBO1g=Ejv9>s@IVA=M|HkaWe& zF72auCGa>n7pXfun?jF}!_MKm z`2=n{i5+-3qn*r&hvCd(U!fH^%Z@uPV=<7zn+I{osr8=@_$EaI>2?(B=a>>AD)-wY0!1YmUD413{_gfI_bO!9|< zxkC|`_>ke(g)ZL}*K&u?-@EP|Al`D)(k}+A8w+e2Gm6Ky;f-IOjVfbBkczd{3g_8j zmx%vU!Vq3Tv!J-^Je<*J)>Zj&wMVHJ&paVOwoJIm%$$Q0_ISTugTK zQCgUXOics~K~b|ZY2+K3bJpA020yFaiO|y7rW_Xej0@Y#)Rq#${4PyN-}#WiId<$A z$oLE1S)9)welwJFL1B*m%r1w)1^su1w8(4l*&y;Y*_~<9F2Cqp;J_`#Ifc3VP2Ck2 zh4FMSkeaqFtLB?mJ=D*fj3lGpe(Sr~t~jpH8Hef6-T5=^ZE@iW?WX1UrQ+vq8&e*w zfwNTEcJ_Oe3Xt~7lvPnJs~AJQZN9^moLZgH-;lUJzd;XhhGPXhEr(E zb``)>C;G3oBNStq7^Wz#bQMYGGpG_!LY`}(AHOdT8P2T0vSBt$p%Wadz);WVB?x=Z;kRTleeu|?7`!SnYi>ER?1 zO();DsEJBxZ0qN?GeZ+jL+7VeqG7ZwPAU?uSnj;8!#k-F(>GMF;d?ZnOV*WxhS(4QB2*P5V^23_@ae~Q#mVc?HkT~R^+`L* zAPEx_MH@>R4KpZR!;!|e%7Z~PtQ32|q{fo*QQWq#0(3rb`a8#zGpyi5v`Fk9 z{KSC)=%J8_YCz2(2c+laN|Ph7<3$r?FPiv-W^0QcJjj%@b&|DMOhjWl63mxXah*^f zr<>DV{qqAgH9}*Yc&;vXvSNY`x?v+|#O%sloM_H4*_mBmckO#k-!e{GW|7)h6k$-6 zJhMq=N0EF3ZnIsG2p;sO;#bPTVBT5j|}_UeYB;V9md+`=l$YVA@1@C z_>B;A$BrFn+O#PaEm~xl(p>n>@HFIkTC`|^KmF-Xxc~n9aQEH!;Ep@)#GQB2{0(>B zd55(tRKJ|?jysG$k9B5T!u%QyPpIjb{B!2<^SNo=Sl`=iy=ng&?zqFe6aMwDx8lD0 z?!|4l{sq7P{qHbj$Y9gv0iSf6?ynFDfU|pZ^(uRcxX^M=sc-()7d81MZ$0M6l7Ndub;dq;nZU~bpSaTAI8o9WS}|SIFJ*M z)Ir!uW$4N98>TWF(v1_AVJ*#)fbZ&_y#OHMDxWCO^tI_-wG&!AkP=uvg>mVuM&4~= z(#|rgON?l{^DTG09Pw>)3vZxhQ)Y>ISrq_{L#XKyn%uJMBn}Kj4~3=?ZBBUsXDP23 z*pWaqcSot%YbImbOj#A0s2VGpkU9`*nHA(>Rf^n^~6pIRslC(cvoL)8Z|K75q!=O-Nvqh-++*LQ^)?&pOz zH$h5E@T9vfv86YSq5z>9>n`g?2G17K$-0mcP3nZkp6!yeRwkTDS|@d8=klETsJlEMBrm;Id^)@WtZKv3T(! zar<)ZYNVtj$zDpihaXA)n5e(g%|SJk z1lf5{>QAA%gO+FtL{{4QTr8?CgE1bMmo%Ptn`>tb#|bo_=L*CGrUSgHK;&_%@s%A8He8a zok$dOq-++EY*C_f9pBZB=`t)ImQxYN9#gXZKrns+Ucj z72=~6b3%1DAxtnkCb$`?K!E~sET>KgI*~Yn|8}j;=BGV(JJL;!Ws3MtIwt*Lr5L8U zb*$J;*^H_IHEjyn9n2LsFloOs4I05ohL`w`{Bt;HNR8!$POP>GndJU$|CO$j+3DT8 zHzrJ&APkT)MORDn+1h;AcWiBaS7^QeH9)&qa7<@fi##&ns+&TCQ}hyCR@AZYm!or< z6)UE8MyH)^ksFsa>6;jN{ZT=2T5X^TDVVtqEN3WUL3>QgG(P>Ei zlwZlF3YX5|az59M;U~hAp&?_h1B6#mPo6wk^p`mpbU<9LK))V8({ZLF_)i8uo1GUs zPX?e~f5dF2pgt;*mp6jWaL_91G(N$NK0ygJkC`<(A3O zju0ukoynbJ;F1WyKswzqkVd*>1nZ&UobgS$m%s7)0nf|r7AUO(J6D!zX zws11K)UJ5Qf+(g)3*3=A)oGri;d58;S_({u0 zjT$B1l>Dm@hyKdn@XJ=QV#S2v=hrU!Q7wq+T#eB<%!6ujg!wfZo>0@dn!NKLHh`d? z_3|MY^dT7FsYHZMcW<_Tko=)n!jQ42-RpIO_F#~4{f61+NlJ3(j2U;7WXd>HoVFuH zM~s;%_;&r6V_RAeh!z*N5s=ITan87ibPlTA5nvt-Wb}*Bp zPzky@#=A`|hg)9$40p{8KO^fSgwam0f?xsay#hmq43TsAd13vXnji}4X@-I@F)~%~oh37Dw3$du7#`y$^Oa?1qITK+ZNDN|j1r(_mA=e5 z@km*^cF^_m%et#oeWRmPs~{rdI8z4zXWvuDo=l2iIGMb_52`tsgDF-*sqjv~o65`MDo zM$#|bh;&#W?1wMl6T?fvgl!RVCXpqKVAvc#MQkB+;LJ`I}jL_Ql~&90(UrwtUw3>jvG!a;gC5S zn34s_ie-bGQ_l%25DX*B!&SKvZ;2$-IWda#-^gdp#Aul_Hk-k1J7GFUiF%s0&1R}t zqD%QX-PNw)bHi+Z(^@9g+@yj->>}eB*hF8akzAOx;~@jYu|Ns`-~ax1QRz`#P+bh@ zB*19W*N*r%qE*W%coPhXsY$Rec)M$ZeDdefis0WwKMC6SOCi9T^N zES~18m=_WFhpq zHn2EMd^TS|&Db`ym`4B`yyGH*xwBn#&LEX$y39xXEN1C~fYA77&oOKlo07y~oo%fQ zaZ^I}^EBX;bj&i1I63 zf)VfeIMXsn?<|uEaf!lTrL*Q|^5h%oLBJl#E`6-^y;RD=IM_0CZu5l@@!GG3D)5!N zbvPe|C2emofIv`%g`E48gEO_gR91PpUo*q+OiYPAp&I(X{`%{9;)y4sH|?slN5imz z_$YLydE?v71ZSFF4*nD7g6HZJseM5|d_fQVVZU7F#Z@bBqa+fC;DtZPizfo`ho}b_ zLRN+gK95frNn!eVAyhDeAV24Y{0LDxY$qe86(PgV(*gq#gabgp!^?_67qe0m}S$a)fq?G#C7KxQ#I$_UMdl9=sngAV_auGg#xSu~v&3HhFvxf;2y z;y90_jfsiD7mL4;&$(g&F=vd{|!TUtWIX_nXhdTm;N;Mr%NmHgP( zH!5yxgGBo_7j2?Do!F}iN&k4?FUc?IG>NcW*hnlO(F*}#J;Bv3B+SvURPH2GV}u}N zQn;|-L-t)R6SLobh4wN>p{r&AKp_zG6Ku0~wl^Pz^5Xns!Ih9HYASSwyJ^p}1r%?I z!>Xq2aeLtNa-Pnni;T>74WF8tDmwfhP1%wF_zyVwyA4C?oo1sICffWs;FO zg_pHbXG0FBk+E;&^MV%_VHW$}_{i4`*3-6;2yRIO!U6bsxu9r`=zUJv`H~Kpx@R-~ z7iDt^hwH-dJCT-1t%yB%@L>GoAODbxSQthb0{Z_Nn4L?snRT|r)=mW^;3W7)U!P2T z(0rOQa&=h*1gNJL@goecK@>6+vQDLxKZGp52Z4aw!BntAxk5HnT9|p>@J9(GB}u#` zG!R6H$A6CQQ%m==j#h!;MvFl-N#mQ0U^<2QAoAH4}#6|p@OUC2kL6|KoWwiz7;?_f)4x}R(bR)t~^)^p3 zV!~i)-&=;xpsq4!tbrQVgl(Z%!A!K>oGtY4VJ8mo;fBRovu4R@BJ!MxR*xl#1bg{KjWDBTT^X$br6O~RZ<%mTus&)dM625%ZB?IzaQxk2#UE+P!F z8d~B+QyFv))Kxz=!@n=eDiT~05@*#Azj>ERmOCp4POCo?A+GaX8Gfqt@Zv>2jIVT3 z1ofKGe(sa+7h$XLRs6MuPT+Y#AE?ghFnF!Y<)Qgok09 zM1sOg_$c7ySMgv#3@?%5J9!myOftS?9wEP>#(YILbv2B%v))ARY`^Tj)b_kwotH+dcMKz^SHZ7DPjQGn$)<>q*0`a0ifUY6Upbigm+Lw?qSYa`N&pzvC(H)p;e zPdy8fHjqBCoy}JT;R|KWp>?!4qGMapMWIEW>%#CWu_tsg1pNF}u3R~sJ9kd9(+yl2 z&Kb{^=T`?zdzxuOm}q|DMG#q@ESx!e9!HKI#n$cL56 zLq`tb+b!SX_}SAUISTkQar($19NK#T2lgJtzJn*Q|Ii8S+PN2d_w2=~Q;Ep(8Kxin zq!`E&s(tc!B6jXNhF!al;N;2E(vG2!3jmMC^W$97d8GOM$h6E5g{gvk5g)=q53*9z zaQ=J>Tv_IZKz}eDiK%CioaKQp0(h*dQ9xGPlvGj5>qlB@5|Yx=k>=-@0!h>?B4k>! zgHYTJLl@iCTIK`#m;*0NlHq>>C>lW0rSHTKVZw2EpovO zCqh2_l+Cfeckf<&w`CKKA3H4Wl=_@aO2ED&hj8HVF&sO53dar|$M&t;@$IJXaQOI1 z_(hF|3rHg(^#?uJedG`h9zTSGhqmMF1%uP>0Kb0*kdcvs?Ynnk?}5G8vvWJnoID0^ zmJ1$_SMV?tiXi0mAUWv*_8mHkZ+_U0-A9fgBj6T^QDVX=?A^5!`*&`~$)m?``0z38 z*?$;&4<5yioqOS?6wfiyX7{h!6jv4ZSXK3tYX95(DV`Hjs6z>;*Jm~>lE$n5jn^P7 z8)*TjPeaovt208FT%~2#$`@AWs5f-L9i%c?uEz|S9F8(!%K|wdstVau$OK~+UinJJ z%#CWG83}lbubXwDe=*FXE?R99JK%X9#iIQ36ar<=M8b3MW)T1j=S!<4`nNq zL!EjxQMJZ1Xw|Mge%QWQ5U20Je)!wn|3IaxRnW9$Q&g!{9g}BHhuf2ev149Co$8g* zym2GkeeV;v=f2{oS-Syh)~SsVW8Q{`dm)H)fh8Sj4Ni5p1Nrsu5yZt%jD0TI5Apv~7<_kP{&+RBwsuI50b4VsnPDX+Uj3om?Mw}fh zGE$=B#?H3cD**}boa8Qt7wSit+pu)%FGaoRPkjlQBZuvkOzv=(E2-kNsjBh@sf+4$YNOBV!{7=; zgpuLmAQDN(+^OU7$3OlV)tfX#_1dLTv2tm=HEs(0RKr0gh7Rt7Km6DKpicezXjHoz zN)~(=t(!K$;iJc73SznU{ICq=$`r*vOH@XawjEKjR2j5x-xd3hU%=|s8_}$OT{N#< z6-6E@fdBrV+fcq%GgOUfhS*kdICmjQ#^@<^mi$lZ1fZht$)1v1s9JOqekX zL*AK!1&i0nM)FLz8!J|>#^mwuV*Zqw_+tKt`23U4Fmd)QjGZ(ItJbWA*Uv=-5Da(_ z4rSrU;iLHUvt^h%bsFB8I3BAu{)h}e;16=#`EhXH7A$ywGTxmv0pn-Ci_w$bL`ud5 z)7GMHM&`zhQIY$RhOjFL6*ZNp={uo>u|2}~n@^rCpfsE~&4(vYO`JGUHt*6;X}Chg zeM4Ns`)TrRJx^P?IMzk2dZRVE^lOl;cpEoRP` zi}4fQ0q2Q#Cr-!OHQ&PHr9d(h-)~-n4`xrr^miv>#`M|Pcl4al>6CB{ApGItiTmE@sY{f_-~; zNecvhK~V`J@|)?DW5duUXZ;wMf(fc>Io)ZOezJ2hCHNYjeM^l7S+tYhMIzYo!zRp` z@(!j?7>Cb4{t%xnUW!RG=i}{3Gx5QvOOTRg?jd2iet%HZL>bSJ%P>5d2k~mJ=Mmec zhm_wR2*}{in8uBOZGHAU!P&+rC#2i4_n~0^;-$u#1|AA6Pt6PU5r}n37 zH9_@;?U8UU85t?(k&&K=S#J$RiL%wOdfRTKq-WrKO1h{9v4>=0yKy_}hA5fhvXka3 z^K+x)yD-e0zuA(JAXa>`0Dt(8|3JqV+T)epJ<G>J6KrWv8w?W-TyaP(M_!-3T3?ABaL2mm@3FFkR#x46WstG3o)4h$-VQ*_q0*f*jU_O7K``9qKm(Cf!(tP~25q z-nen2+*-?X`1z=cvhq9n&M%!jho34v)cNPbFdB~IBtJ&OGrn_dNrG4S)9{3vPJZ&t zUl<;2Kz@fuak>yeDoU0rg`!2up?mip=+V6=UVgD3-kb9Yyq*lW(of^z`|d`S3gytR zS3kV?avu~fUIEkRzK`=K&tXX4z8KW~1+;A182|Ub|AbminxSitm+*X_?)ZAw4siBy z`F)6l-8i-XJ5(xO2!%>lLH}VR(5`)R)Tvn=pDi?eOOTsjxmPRX7WHVKmuk}Hz69-0 zs&BHMe5V>J+lOHYB}{a2#&Fpxs$}>@ub$xmtXa7jJ-fwWM6c&iuFzw+<<5H%-)k^l z?E4xdMAo4*M;HNOihKd8Q$eC_?Zc!(*5tkC!ll=exgvdQF<(*cqxS za3z_6YE_>=i!R-e;NfOlqPY(h%h$%sJw_wl<(E&qX1#2W-Snp+5;=vj13IHpwZ=%c z-<3USsi@z$DO$CT1;U9K_*`?;ZCD50`n`tw9bS-=9@6X)k!SXAM9(HQ(641{v~1WO zgU2tBu2{EZ6pELA7z@^Ime180Tz!VZ@OjOub^6%X@N$c1Fnd%#)NLMzg`0PZ>W^1; zlXKv3)3Du9Zm~`zX%;zU#6<0!b(}iWHdc9DmV2ZBuP`*3d}!S*$5jCZTkhQrNY7htwg< z<3pB*XDS=wG-Bj%l&e@4Dd|bn=H{6#XxgA8DmQD1GaQlJ6-6~W?T~SYqi%eSE(q@w<&@jJL{5%VFO^!;>N$;mjnSw=&7D+lf ziC$BpKYJw8xn}yIJ%ANoypJcIEC9F9i?qy4_)^^Pxu}@`@%L3&yS+zH9(*|rn9#CMi^Y0fhpuU}3!BQNgpq)W|sirurVI^)#o z1PQly*AFOg?_KEg`atn-)G-ciUVH&36B6NbXTjr1!h(g5 z<1Is1ar6?TQHM8EP!yEZZvHu2Kyg}67u>paEAGGlevBMB(lCqmYGCsp!&7UZO1Kf3OH{j}I=F8{@_e$L)9i3Hy#5f!E88(8)M)bT{rU@Hn>ZJPMCH z3+Wfm$(%`5VKnbWd{(xWhXYvF@8us|^ zeS1)$Y8AXWX0((!%gX~_f>IVT_`G9*I3{zjC{-AmCMyV2Nr|U_*M;FX=^BJ&gA?)j zkkRLAm#RIo`fxBiT7X|WG^k@XaZoSb7cdO*sIemvQ@1G+&z?7JA-b7t6XX9Xg$yA;=;)mCjiUv($@%(dLcq%XkzT658TQ%YZcA1a8$$>~TA7|Fx8 zOW#N1;*aCt%H^n4p$6WVFi*<6cFAZwRr(RkTW=Wtbn51YsM--g;;Dm(Z(bYA7L3JL zpHD@Fs`c>s_xojG;Nxcw(YB*rpWU=#XO)XdmT5gBa$=2$H&Qc;78l33UihLp6Kc+e zy)~uCkDc+H={U=##Ged5kEWeIeY*4~$A=OeXZRb-uI+AGhbldM#*G_`3Kh!X;KBXT z;*y~Gtu*5Gp|6XC|Mc0D2nCV>B%?*sN@(_cPn-@!;PvrHSuYybYmRoUJ4kzE1p>Gr zxXsPv#F;c8a0t`i?t=%57sDAYbi)y(q$Q(ynB& zrr^=X@4}7~yOEfl49^8G!s(Re3fkerX>X%Mu_tgm)r9~L6HGsVZqIc(q~?kjP5-2|08xWk}pEMYw+P{GR1Rm5T{=Ng$bm25#lD04 zv3b+CICbJU4jny?W2Y14)I=t5?Dz?MzjYgS@7xtVWy!4fpWp^3k=+g1Hpwm>BOB)Hsk%jcbU#^A9>3Ssyg!!dp4 zWQ-j@4qLYEM5fzFcRIh&1S|chw+>{$h#F&AdQKe=*i)dc#_T35>BdX{qvvylymr1+N0w` z!`?VhYr%HYHl&2#kg#zR#^RyJ9>U-ugE4#V9E=?|4qvWYk8>Bu+ylc#3`4~#<&cqO zaD3nHAMv+4{(`w5EfRr4kjDnfg(>7fEPaaWCJ;w7W4HMp&+KeIS7RdKZX;*2(sXZJL!A0f3_Z;Zu7h_+#b$z zsp;t4s5#oSX#;m8f(w2hyg{Fw;znM89MA+ZCFgaW$T%bN!&|@CV@c zP|%WrVnqvM#>~0drHYVO0lZlmK*)yzPZq`4nIFm?6$aY5?JNB0zkZLs2M^1*px|Z4 z_HS@^ffD%onqGI)G7&~E7v~4%6T#9F^RKU|UYobiK3W#eHheOAX3!ml* z2833~hG-!LIS2T4WBAG7@KHpgou4ep>?9^8$|_SC9t|6-D(sQe5bHW>Fl^ax^GwZ@At_rz0ARmJ2IEtPxcSMN>&19$h(7`=Xt#T1*@vnF6LYdOFu!D=oM8VIWrWYNG1Z2 zbona4z((G0+Dal{^ry&4=85w2%gNAlN7i%+H7?WPqki`FUjUThPfkvj>)3fzVQzx^ zFDS-UW})qrv;BGAJ)dbaC*$sW??R`pT`+L)tLW9IA3pzLiRcy5pZivB{o5_*^jtjR zJGMjdlBMz1+Y_vG%1BbF1`*r54dUaT7mNr7Lc-i|5z8ZMMZ%9Gm^`sRe)q>eAg=54 zXxE}SDwM5&VWTF2N6W&076W>`f+{sziyB!V;zou)Nf`8xmn}k}Qbng=-NPPmy=|IGX1tSKbNZF^c;)o%dJW@>_YH_eB`06z3 zMn?(CziYuciEI=9De-gmSG4fP@-O)(v%`ls?UpH123@;$6?|9y*?&nPt|b%sJZ~dL z0@%3tBi#PS|ApqQnxR$4PH5G(Gse9$O$0g!crkzcFqAA=7%6t4uzuNO+W_bCX!KZr4U==lKASlr<^=L@mF}0RScZ&12i*%o*+vh+x{3DY&n|Jy^DG zmC(|L?OURG`*t{=k|MO<=P{S>tXcg99(wfe_O5L2x@`j0pKP3pPRXwj-QDmQE^eR62WW~^Si2pO4f zQFECxb`**~RUR9*9Tfk!2ET%4EgE3giId|0LdTZq)@v}%a<3hw=>;Fcl1~_a0>efpZwut1F7vXoLi6LI`c}BIG-RjY}6`*Y`W* zg3`3J$*3387Xai2aft_0ey^{g%TB@HQ7}D2H6|_|FOxQKCd;y!iZ^$jahzpAk84 zpBG}$9t;_V|INYA;nC8SG4-=Gm@{_{HmqG?n>7S~(m@RD)dj^GwGzf^)zUe5;Ew;q zp1nWf-I??7(32G;?EY^TqejWXcx%?j^1lAFDJWL5Am*&!WX_(J;|yIG+_NoOwr-3Q zNf*Gg{y&^C9965EHjraUAA4_IZ@G0NCtw& zv`IFMM$Tn%hSRt@@u^>S6m=o|sfMX)dYXeW{JdqFH|N<3O#2v;DIr z{BMmLjS7{^v){wlUu}}`a`SE^8L#(! z36<-&5tW`u$OpgQeAb*WdkRWat%3aqw&3K>#i&rGDBAWIiiJzR!lK11aE8p2?Js{S z_ZbB69vS}9Rk8Z;F)0f#yAwJU)rri7B#Nf&b!jsGT^Z*j;~an5-aj?Iv%j2a=E&@4 zeNmh~e*CyFMeW}7aPEDGlRok}0@Lve} z;12r@j#KjKGiS389XbSmzU>ZFdFE+UsZt*0Dp$a#%a=seLR-bhp;f1Da_li_r=QZh zNCYdt_!z~W_$RjQ+a+JP%w|1vxM=hnKGEPxhHa+ka;@$68;vL9-{J=Gm+!=7UMxp7 zWj=H#W2OF=WB3_H!#UH=kDYlj+|@i9K0oPSeHhE*$*DPsKqMKZ%auk2l1U|GB858MU7T-2cQs@xWt`;hCzHQMN=Wv}xNFrxVRM;E8IX;A!mHy#=@5RTOJC z9F@7kNA(q69vbEz8Va4fNI3irYE&+XzdTkFl^SqGC)e4ka4ZY}MnZnkmIoAzzjVpeW%NhCdJ#cXJzRIwC0%rB*?&^N{@yU%WvY()SXN!KdlD*WN;%GHF_Azlqrkt+kb#Rl!*+t8-WPm6_uX| zy1mj3P1>}@nIxkQAv&HR!0qLwLcEcb`uRYavQMM?%Ol|?!%x*r5*QjHn@IT2VZ^K5 zP&TG1Qn{#-SVj^Q31-5daTtAGXoq5r+sej}3yHhX>Del1)1nEQ#Kz&ZF;gYRzD-N< zOzDysJ?k?eF6%yj7bQzRhW9sa7FNdRONT4zCwX;l=x+%Ow)acB`aM!|oT`Jvc zb7%cI0q`kXwk$sW_+x1kCvm;Dlz+}x+Q!cI4_lR<2qsOPfD&a&VB3xz$n?08?#h%+ zyF8hR^%^>S2+CJ3i_A=eyMYjy6f;@Tp9@-U>T1-W8QQfrDj&S8L{2~825$-kcyC1T zB*u?>6;D1>+YnW5W|FU4VMKf>K;Q%h_Ueoh)$78|+t|H61l;H4h}sr$tx>Xi0|em4 z){XC>Xpusg_SrINw5&i#B(1znSIU!~DJTBSdvg$qlzAF!4j-2>DjPIqtX+a>V)IB- z-DLO`8`++GxM!th%a#~8V4!K^8(qjFlcKFf$d4rpW}1v0R3 z${Q$N=sxT{lYsAzp2UwQPl+xuZ_V_|UY7_wR>I$^b$gk}&j-9l!cUq=l`+fk_wL;j zm8;dnmLI;ynS?x@Wn2?()b~Y@?v@$|(v3)sjgU~05CxHzMrt%Nnt?P(D%~h4AR#>( zq(wRgqic*BFyP+*xj*;we%p&{SDf=bzjJ=;O^HdoWCXcj)A4efmInLz2D;HA9&Y;M zF1u+pzE>H+uY04dF1qkHGn8CrQ)_EEdY-fQH<-zEy=@F$tCQR%9b6etP+vN|!I9^P z=H1Z6&otr8`sqtl9oIaM5FY#nKbRx5vL49LWPP9qtPZX{D17dAt-YEH!=;Z&+>k4z zKo-#bMg1s0ANs*;T5L+h&2>-@yAM->&TdlA%#wT^*fVRH*IX+ z>|DO$YWEDGHGJeUu#M6PPAZHjFc^6+3&HYZ0|AR>jr)RQnp<*1mcW@dA;+iA;dD_^ zlf1V|#9euE^T~|@SJ1`T2e_<@X~~=;{*P82m#$H1rjyE{?!z* zSTc_E?GY)ho}!l;z8eOA(aI)Yf8#eGkj({;9 zH*b*OulFs!Y(L(7V#{@&k0uKQ`%V&waTlB>J7h|ohu9p&scFSAJKaJOdWKQ%iTb&J zsh>43q!Xx=JW_EMgAARO20nXZGe7;xvWkDg@IOS6c4hK(%>Mq&^dsk#m*0-qSlMu{ z?}aw*4dDKIqp}2c8J4#>RpB`Ei(%O<8cU8`01%uphDz$z`|kK4>*c1QNH3jeP+bQ$ ziSUW*x$yk2Xu3zN$T_5?DEY|9-_@Nr`E|?+w$vPg<_ufiG`eCEt5n?kTS*^xf{&O# z`M5^@h+`d$qCWhil`m3P64wPLW9Vt^{rF&{-B^YS7Q@h=L6tVdOy(O`Gypi}?D;vw zy|~&RO4D|1J!n^RJPzri?=_!%$*q{m^$`Sgm?CzZ8%g3#>uo9Tl5;-#*lQG54STd) zo(VUn9L}o0?d$P*%Cytq{3{US<(ze`Ht8cFTV!`LCsUd&SZVQ zt%fTE*IO_jCYpQR`d!OT6}%Wb5iu@&)#Cf#v4;*6QFho2-2gLzw8}?jZMuz?bXi;3 zRMua7hwXVnwZz_XJ+hzsiSH=w8W&Da3cF8i{dm9-J(;?j_Z;ezHH>6awq4=-JzBEo zDv6z;TW4_1Zu)b2De6%Xc4?S>yVClC%8%+6V>6vj96pwBKUga6_J_yB4PP|(EsQ*| zAy@VNt|;&w5)zwxK?5v^)&k{_+5gB5N05CkCW1o+&hoi)NO!j1YeN?!LwUX#u?bK2a4PE{b*jL@noO^PkQZzH1ya`HML~>!3VS z<#FSK6fA>R_U8%S4uRu0OzG5kArOyFfRUIg6MuX{VGog0=nRTJQMyzWv1qSH04R>-&A=`(fy~ zHKkrxpDVf6@qGLj)2lWz-d-D&ae~(DE z`(wzfuMTcS1hcVps`7<${W#rb$JbKdD%$Hr?I}?YsMq9Pd~dG{y!q5@o2~I{=boOr z=K9X+MBmLX<$tPsomScR&o>t!>l%nO6& z%V*@l9k~tpbvJK|`9h!T^RA9H-aeE#+bww6C~7|sWE|_jkTzgz-tPVj(gmjo8k@Kz z^B#VEs$25nG1lx&<$L@%)~Ct41o%K$BrQoG!x~4baAyE5T|Y(d3P9}hGgs!;!Ib{5 zYQE$-nqYki?`P)NTrif1<(G4mHoH7$iTA4~4vWm@f!Fx^fqYKy?<8{g4M^!gX1oqW zZJ=fpKW93wqbhBRVlm_Vy$;Z<{{BCJSEi_%Aub)w`to#rkk6WD5+`6YI%%jpc8V00{pLnk^~bu&WN`aT1<1kw zj?Fm1JkhV4IN*;F!WwS9xTH&g-4l+bi%hkHv@E&zYZ|1@0V`<(D9VqlF=uNcOO0ig zf!UQw<$qNOzE2=DI6J#(CvnV_gq%YPZ|Cb*P1($N4a_ z61yZN>Q~48zFC|d)?Y?i*zSW-+%6q;{03Fae7^f5?%Zr>F8b2}8?QGza_z3{Ip1~J z0{XPS^g_~dOPM4o)&hy8?!f*>cxHBxjk}{;@8qQ$SHzstCt|YaX{Rc|Jl3jDVbn}> zwboVxB`!}>tw}}<>VyXgGjZaUU^2qj+lOsTbA6t~yae~d&6djN+YGnvprfrT<%TmC zFKUx)20v|qJjPn3>}*G~8!eix7iC+>8Q z;)5)lvqp8!6-jwBv|!rIJ?U*~>RiAD7&)YHAq>Uf_s>&Im0aCOny~oKnEK3BlKq>n zQ(*1B_#n_wSAiSEQ&Q5l0Wp3K>70w^f{1*Asz-utI!R~^? z|2*gHJm05%SX*H)vYp`2UcOmNs-yD(^Q?H*Y zI+f;J*|d~Z4fSV%fi)A_ipM7g24<{>opWsq9KQC2mG6vQs}D4XE8Rn@5!AR=3v=9{%=k9x542 z`@=z+QOxSRMW!=f7zCZnS(&!?H#V*m=-vU^KihucBtc4g?=%AMJNIUEI#FRKzl%La zd54cZ7GBWLagUs~9*;0G2-_cY%F1#gaHXg;glEka$Yp-@Ii;<%eR$a{;KpXbZHzEe zDkx{=g3hu7VJ{jW3L*TLi8)?}LrU)p&aN3aGML8R+M#z0n? zIlg@?n4DmbyMV`x%?Dbxj}3{0JeC;lEar#tKKCjY{HQ*f9@0M5%ba=kap<2&hJ))( z|J_)-+b+}oOLKs=Ic9RkNmuWC<@c4&tDGfI)3|`!6F^-h#mK+TM--&N#m+vwR@bru z{pQn0^|?8hudZ*Y0+Gg(4aMIo2m2$&@!cO%!=+1VC!-@$=TG>t?VmClB4X#NO2+%+ z1%w){mObjTF|e`OAPTu9?b}ll14tLY|LGw3ec_4+{I%c;ML0>!^6%fP9M;*7C+21I zZr_)Z-R|fF)lTVvmt5NAgroBpg2Q@=IgW*}n&o?Z0xzZ8ZADsg>hR3(qT4R;?<~y~ z1A+q%PD9S;?%3?X;Km{E1K*{|@9gJYbRcI#t(HNo5`k#lnx_6}lFu;d9i{(T6w$#= zf6(CW-rZXD8(h|OKpMomwEZGTNC>O*ci}TvsnHTL6N>&r3I_aeHvoV7GaR&RzoO`o z!G4lY=Zso?eSK_XH`my4X_Z;`Ax!5-`sih4YCN;!bh@cS4C9{$Na5H|ogB1uOTYoX zS!6lWqDxqZ`;Y9?9l8S#zFcd&yHmafL{jNNs(M|(P7QO6XheKNdfTPeva!#lMhjn1 zTThNtEbmIJ{&&NJs@}#0qGi8&iW@Yw(CyHU_qopKFXa`vh5qcNYDH(dq0wJl-0e1R zf6*PJBx~2}WV?My)oB`Pyk9$gMwI}z#gC4hlh!XG=yIC3qpC2q>L#T6nGEuYzS-I- zof|j`>QAe9=iq-)Tf5>ICldFs=K{1WCSKy0wR6aDJG&?1h33CLPVm|g(-d&Kc*{K> z5-4Q+G3Hm1w~@z74CiArQNw(bpAI!`J8l0~8=JmLUo{Z3D9s8D?I#8FW%-Xec66wq zA3}WN%CsY5a->A6ze%@k;%jo-0lQt#AEGCOUocfiiC8H}#x+DP1W!F&m|||Q$kRM< za;oR0|NW%ARN&*97kw_Ye!ro_)@5S7b&haZ#$RuHzV*=FVt?Az>AX=M+FWB;UXWDK zj|_eHV|nzW5%YgXU6gu*hE;y8yBO8Yr(Gt0K5KOl!Rj(VNj%z-m8y%S?4Y55+)71x z4W1oI^t`lG@$fBXXvj1#JVtDGYE03!y1jimC-7YD z&I~qaTjCdEBTG5A0pbT)!ocgL))<gxEP;sJc0$-VLE=8)@@iFGW|pz*BXX zt9pQazI=-XQfjxcX7Qt_u}2SFS$Ar55OBS);$mp(m74q+Ui~(}Z3Bch#B^)4#8&T= z9N4l+*19INVdu*moQE0x4^j;e#&kNY#ax%yWBBax_H|ZBI<|d`jgZf;KX5wtcbp9G z*NiNf)iaqd+xgG^2E-*eqy$_!HJlb*y!*H=)Zj5Ze2#8sTo?&`Wc;qcl}Y~~ja|HM4Xtn(Y z2kfgA?n|Y$MmNYanjz9#fvRoF=mbCq^13K90A(=^=(m>dG=z0c}K3^Ojp$9Tb9SL0}0`A&b?TQ~y&~8MMo$)A+wq~tZ~3xO0_EQ;>nax-<_}FXo#(JC^BSNlxt80_Gc%!E z!VI8&a!S2_(-rl%Di`NZE_HJsNP#Ud=Zy6dyb?8c zit{$otr2JO=_U;_@t#)N#yaqLZ2tNA?c29~34>!pi`6n3eluWY`x@gxXM^Ogw&fEy zf-#1~?K4sa1gYgIq+DnY6{h@%KU(QXSN5ldjI_FM4+UT5Gq|?eb*!utw=$>1Z5LN6 z`zv*DJUHXsasd>ZPGvFgFS5VdvEzchE&DIo#*doNEL zY>%4Q{oY7rEi^z`+fy`4girP&O=x_eO6QG(MA8?vJ;*JAA6c}w+sP3o>4Ta=VljiY z0w@;=_pki7PAnjigo=_i4#~)qvd_c%VZ{SN@GX7GOu8r{ESNFj8`ATz_w*eLzDxh4 zg(?cI!|6)30z=t*kJ`npA9nW|^95c#Q@Gx*Ya3-IqW>4r>}B^NLtsH8;XU2 z7IL|JMXsZP--HQlxZ!6Ik@xn;y?LCay5t;+!8(sjMhnz94Q<~se*hBe#%Q3lUp#hA zoHNr}pB)s1n3jz66|>V4T>1T9Ra7<1-(0L5HJ0dP z$w~+{f;@1ZI>Odk2=qD#hV}o{o34tN|DSVUn5fnf|!( zob51a31W=$a@e1ig|osuyYH`*lvqUy1Teijc!2KXS-xz~FR5uMv#_n3*>>NdekUwu z*m=RlUgDz*MY2n7$~6zKu*)y?7qUY^<3VuJ-;6=E2Y;E+<8!(_U(4(&B$CfxV&A_O z)+(<2+H1r(q)7)&@zVZn6~lbyqbgIV}c11dOrD;|Vl5(^vB(8xSX_)D-^FUn@N zInK$pl1dTI=fsx?NPNq|6m9>w%g|jnq9E1p=^kbkaeWtdFQThQqaZI>jgDqwGc+F< zK!zViRQGCGSF>z(k}gGx{)v+>Wis)~r=B7piy{9PD(j?LovAOo_t2(gtlDYwt_^V2t8-#Fk8+{?ae?6`5x1P8T)%iD;(gGQH<3NVC#He0Ll8JAXr zuy4wZalgA_dO9x}82S<^B_ox!x681vQmaRwmFMxR5V*fiD9r~(0UWlgve$Xfo-&tA zPK3|Td@jn1j2|-uqU>O~gX%@$uyYdAiv211uLM(!v*tq+O|M7qpEj@>FHt>?b2EW= z|CsI)*e4RI3#sPP8EnN8w5W2(>!{u=y%cM+HoqJ)+{bB|PBbmODxGx?fyEqsZci`& zi0yk7FI}x^Wx)Lu&S5d)NvG{grJtJaCkQBrT5Q{0&I-O>Jx*vqb6O41pw(N@(>ms! zBn$H^0+5O?XHI+xRj%_K3rI_PC z9_Qb$uxy!b;vNNlId^fDaOHnL9ttxLAQN}7a(?8J7xM^XM3;o zQ3UopF@BL5@K!OUYa!r?-^KaX^~GESy{G6hLE*>C_?xmrMT!)t!7_I-2h8l>4W=QL z>P9he{J01kY09+yAs-s(Sh#1iZDEO+wmd8l?#@qeb(a6?DaG`6*1Qo~FBAdyHA75N zqgbVEV{@&3<3^k9$1(>AtpxMqyly^pKB{ypVhrtV;#oM9gX{guS9SP2K?)8; zGnsAu5+;*JkJ8ZO^^v8z32T-bzXaJVfHrIV6+*}OM=C7Q ze6xDkL$bmIxZBj>AYZN%`1UxVE&vqp+FX2%S-g?gBX@m+q?Y~)HGUUyMeN#|IG!l! zTNDN+r5wLD@gcGy%%Wa?%3H5U$JgqhI(NYkXqXntLm1`!G1uAo!Kbz282#KPGKiA9 zP(Z}X#;T6nPgWnP&Yt;}9d#Nb0GFgeT=BmyUv5f2y>~`76qG^0**qZfkB@MoQTP-0 zYK+9(IZXov%)79$-TAkH@!^5#5ANMq?#ax|ZkbrPqy3`utMAU6xhwwHg>@QY1#{t* zIoq0_lG#10>_euF4eZOqBSoGgM%ZKCT?)%$>c)p23DFTPwpX%jlj(#@m_?|)TQNn9 zIlB&YFQB&{E+wMG`;TSBG;LhUj|^adh&~2Z(dDZF4bYl~5n`-8Fk@`>o~U}!x;(q-nZ$XxPPiniV=?%`pSkx%57oH&u)ye@u$GuFZh&u#TcduhxAk6&1 z_OxzoG{FyNNH}##1dS{I4{D8FtDpi!GmhxQvjln5@HF|st1bOis}~?3 zESL5*C*o4eKf3H<;W_9<&6s*ZHeSZvYM6FD?61hdG z42&#cL&-bHEY}y(TfJ!cKtdRMbH_l*V@MHfA?S4XE^??et{M@?IL3bi(&Z$hIih-d z>ndz|OxDyv!On(WY^Y`a-83H3=rzv8?xmt^%kOVbv=-7xkxTGPV9}ZGbD}Ls9~`|#xHIE&YPom`Tj?k zd2(<~g-SW`jca`$;QYF78Q|>fkxOu-F?}F&wDRiu3qcK<+8{sNfCG+_1n+f>-0A7Hh8Ih7E3#S00Bab)Myz_a z*~SesH}+S#;_~|4QIlE!YTDaIpkZt7SmAL*2uUG*H_Jzq{yX3KJ9C86TGS(PhK8UD z)s3)NeRHREqh|NwV|m&3;>eozkIxhme@CmnC`MJK=r$=$f3*ObF2XA8WfNPUzr+lc z9Yi z$`|wQ@7MPeBBUKBJm1cIALx~BrtNEGDE{HUCXJDyl@_GZx-FQ_ZD0s9G4nc))r~0) zHMJ?Xg((@Fc$l*v3kOZogKEV!nEs&3ytH9{n0%xX8tMN`K>Kh_+y)K<}QX!9FUNPg3yU6`kAT76!%KKA9J z+bFF)xzReUovoYX&D*zc+k?BM7F2jvl$z;afE_Z)@@c3AcBa9GuL2dxY#9gUAOZ=A zRELLQ^c6n^Ay-Cp4cYbv<3yXL-jw`u-+KfYbbrWPNVD+C{r&6qeKqq7*BxadvX!@+ zQ@zM7c_RxS1HNGmzQCmdlmd6*_XjFE_+16tCoc@ISBPVzI;i!cg5V+Tqj1xaZ~ zy0bl3G;HL@)~LZLktTW+_kMh8TiYR%^{hlLuo`naO}T4y14e_q_usW_q!|Nad^?Uf23M5bIR6%3HH1Z4 zSJqR8#s)H~ITJtZ!>M=M&O`1n!KU7GHn)q5v-?a6$M>q{l?qV)uA9IQXDx;1ozHkr ztmIr*^8WnbXaf(QTRM9&!n-pV=OgEdpFH4ZR&2nB51EIunWMMTiwj5MYB%bwyZ?gm z6&k4-ysi(nW5Av8`5bWc=%+syXj^egeP}Rt*6C*7~TR-H>t0;zA%3Aw2P~X{zR4_QoLgFkqKnOfF*uRu5AKh z9?re@uHn>;W`f;k5#c9bT72-3Edso8bXsFa!_jA^qe>gtoF-YT5~63cCQBZlrOv|< z8p&!FtRc%N6BsTavWQXD0KP(@xI28`!;gW5Rwr*n5q^tr|73MoZ)oqsiUl71_*jejU3qb=PJL4@C4|U41b`VSl3mRW965j4s;P~ zg{Nr5YH56{uI%jq?T+{yzqMv$qseb5Wo!JlP>QzCb@_;#h=i#Ysg2!}*Pem)x&R((AsywbmQsJn~Jt;X^N}ag9ZY^K1=QdFMn_-4bC(@yqmi^v1CB zT&+!m?HS9uHO_KAg%|CMOww?|m6ziitp{m!jwZk$M}P05K|uqtHtd(ma`P=d*+f2v zs`tN!6oMFd4NEqHaI`vXjCNNldSRR!9qjJ zBb}U8&XzTWouq#!V!$JZBtD1yH{wZea#r;TckzEa;IArPB9n8{cByjUtjjEAS(%Ma zPkp0cqC>=h6sFVUP3|Dyo~cJV2(yLvNy_6_^)JSaz}I4clwvId-q%sm%F&m z$-~;l_OnU@1A|TXu3j)Rhy^fdFJ5kwx#eV3A)B=FUs`Iq zUo&Em2#ito3A*rKIXjP){A^Ruvr2fhe7$@jzihmWW^CEY@dsuN;`vdqJQ;`wUD@~3 zU@yml4llo(2S?sv$L^c}x2VYMAm}wtD|wk)RsV&lRsB*F2gA|9V}B18R&Kppc7K%5 z7fZV=%Ic8){<(U0baz`lRWlb z8r{K5x>8%dy;-?i+EG{MU&rmIjf(q}9LXFFJ|P+`O2`x3A#L00ca$9>0JJ@7DGF2b z4mz*P^#iRj(CK0*503m-u7Qfkgh8CQs?riA0JOM3B#VSq%>4T|pVQ_K-D7A<=F{>1 zB(QMY4>SIeZF|)npanqkR)&Pte)a8cHFi>M@}IG( z{c|l`RMZpVYkuJRuRsRUTYWPgc00t?U=?3( zp+LC)Xk*Y+=CZYv-RP-X2>NHHs5>BAH+}YiVMGt%TG8pym34zGk=Pbwv96~$c-(6P0cHv+g;?{2A{ndf9FHjUg)vR{04n3aR z_#lhHA1NXU7du_}3vf_Y*y$G9Wo8@VZ0CMC-flnfXlwoIY;R#Y60;Mlc}q)qibq+t z^uu&_fbqz#;3$PZ!rB-!NE!qvTMT^hp-~V^+%AlNuexx~pi7V{daUSqGBhG?UH&Q4$lBIL`-P&ydaP7y+!xoZQ58?m)WD4iJ^7+(qfe&2 zT)Em)(W2%8&ypv%pJabN97V~m<6ZuA9B}-k;Xo5n94Ifj>iJm5O@1f=`1^}?J~l5I zlQD{pO4op_`3;N3r#Imf^+Mb;djOL?+G+wqV_+`wf7;jB!KNhVwZ+3 z1PP7KTA$DQj2zDB51xZah|rKcV}?LU-TwH=V#45>I&`?CmMZ3t9cVqxaMI*Mmm^&? zaC5i3`g~?L_v&wHtO!l3`sT0t6x&I=2l2_A#P~g5{oecvDZh|y1G1;#jFebgk z7vOdlaCyrM7f8mi^>@W}43UT5HOm&M$=CiBh{1;d*S>>N?Aq&jsE`lLBI`ATu$T5@ z=>X3@2l%V20%K?=Sex}wmI}S0ktKVu>hr8+NF&SS+giQQimW1>F94<=fs0(nG+NgB zEkyy({9QQK7<5Y#bKwsdG%%2$OA^|&u{d*}mMnUVX_H1?QwOpxerWJ5G`!b&5qucG zK2YhVjNORuZZeidPu1mN9~`Hr=2|QQz+V^Z<-7Hp)_N_gjGK^NHHW_63XFD01P^3+ zw4CG46Pj^eByp84u_w&)c(U~$g%5}e83IqKoXOtK$0uSRv&m|)Z5zPMRVaEe_hx31 z{%Q~JG5`5`yu0hgf`5A)LMoHyj9 z$dguM2ld!CK0`7!g3B9YZLC8jKX*zMtDFF+Z;)HxQQmbk-YwyE<2Arx1_X zq8c<;pwujRV@L4X$EnhSw!esUIXW`@IS0CVVgy#(3eS7lX?#cQcI`U+VZK}CuyrDEk1@X!Z_VEGh!$I z^cpsyJi6B%h%YQ4lsqDc&Ec1p1*Oynq+%)Ri(nZF48z5q<9j&W8;;|8q)&~w`THTU zbeD~M6cj>5KxFc;_al)!B zeP=*~Ezkb3)<#z))C8du8A2D7`V#Yr*X6_c);(wv!-}5)Ukrc{ya=axv)E0d7PGzB zk)pWHEuSbi$SyZ*j&ei)XxtLv!29{BHvu@gDTk(QYgRP#Z2dkNrHU#8V1bp} z#+<$SOB0QW2~*SuA_f^(Pja5CLQ*;WRta&L(^`TtWbKCcrW{3_{+ObFEZoZ2145jT z>D%gi`$FT%o*WY($OzV(4<~rb;r3TXL2-hI$IRC4vj$tmr0x}(E{Ag`M2H`nHwllM z@BjiX1p+i;=SxewCMqO8t$FtD%#eBl&5PC8u+4Bih>uKuI@WC9_oaGXr!{t*Uk=go5LD1{ zI{8vjtixC62T`#qjtD6D|8F>9h&hqwmnO8R%Cyr0nz3n6P-?2u=j5z6HM`_&Y*EPn zg9r(mH^HB!=M3s!e#ybA>F3u!li4AO#CzY*islXWWH^jRx`HV`k3j~M#{Vv!<2}lj z0umB&H<^F9nZ>`g;2F!JES&Nrrn_5%YA-4qQ3tKE*AklhE@=8QCXhxkB1RV|N9Xyf zE<}EM9Gw*N6$_YWUE}|*q^uLWmPxBPg&lj&4b9Dz4Bvaz*j$1xx)^Qis`h83K<3R}~ z1+T33I>6%?mZIP*G4)N+KW#L z@L?01F-IKB3aSEgudgbmyPi{DfFtN~D zhF}E%rYv{eS}rcK``$Y_B$9v2nKujDbDYa2+evf_)gS=b9d;X{w-#>%^h7$(E&Hx|Apl+ZnR$Kw8WXx@w++|Bi{&9zTgyd+1gMLi)T}# ziQpjLx=p5vRJ7i$POetGlSDMoH8a+P>veG8;w@%0Y{YZj*3AU)$K_?5@ zo6qvQAFur+n?v$J0x^*}UtkhI78P<8Y719WKx;Q89PPyBeuHHx(fNJh)#!7-h_u&G zPvS=2GfQGTtu||$ha?hhZ`DgqTI}(!EOO0cZ1&j>7lp=t;q|kkg{{mbV$W14*>JZc z#fvyjN<;`8G8Oy)B1A4jLCoA3E~M22*`@$FLLosLzlcbv55#t44-WfB{CTgo8yZm0hH-NbsL!fh?4*=wk#JlussRMe6nUVkJa2O zP@|lfRerOe5Pl}+_I~B4XAi@v6nqXmdxOL7VLEfEF68!d13H+m?x(1wu!B%rHNj#~ z1ljGx6OAwK0%_!SyBK- zC^x@xd@4fu46|{VisT(FfnuJ*Poq@XmYrVb?+oaO1 zNr}egPkt}{LjG*;d56FWS~g3!-VSb|W$$p0q6j_jW6F(4vU+H$>}$9Y z*Jc`BsG8 z0`tq~=U=H+g&Yz~>2S)+i}JQlY>;MIa=4hL%!Fgj>DqDsg?pW->&S5b%M1X*2FoOfC{{9#Sa# zp@#^q-~5IU6a1z8DxV`itTpc|vFDo z(KcHn0vgE5I$0qjJl$4P(fSKC&I8<+y6QtziUmecq9HLoOdIL{{mVWYa?`%SPk_>( zNrQJj$f+rZaS8jxjWvKl<18J2A?33%5~ndd3^xZCQAH?ZuXOo~rgl8fSBJ5XL%--@ zgppnLhEN815vE(=xS5)s@^A2zdF&MjJ^LcR$l_@^gF5E*KyWn%=7wB(o8uiZW7LGk z_l{Udb#uc7jK_$}2uQ*OY^kpVwRqzH{ zBee6`{Bmtrr&g5z&O|dXdqW^A9!1Zak(rRAK*nTdCoaRDDy4@}ST~^!Y?5`u6$7OS zEUJq0NXHEAVH>rumZ6{dpw>plmv>A22*#7tb-s$9DSA zB~h6HDVo1dhC4S zc8K!sf;u2d-7G{YCE5FF4j@1`epNOdgd?3`q1&4o0aupq z`&Hy-r1_$tdGAa5TVLnLhs!-7xbuBca{rw7{om)~#|ZW3iklf$ShPfrL}**o;qo)G z>>u(5zFs$HGYiHmR|a>T(7nJ{tHWb~9MxK}8gDZ!&@srg9<&HPDm>TsAz)*`A3 zUDz_Y;}{56Fu4@GI}AN`=O1Y@=kl>@B4yeaX2<=U=0YD2=^dgfisw#+ZTlB#kPG*g z+@WEaQrl9lwsJJ%_5Dj`@?r)$F)LTGeng%Q77wm*j&ctr2E6ZjiJf!IcSFQ9Muu%J zXOvi53d z|KT<`-k^~9;i2FS5nXAy!v!Jmi~<+ru{v_+a{-7xRl;) zctz|!x%y;8_234wocFE^Z1Aobot02OJ6f1(czmKeJ~1;DJIrNcS=)0i8GvQl%6IeN z^5WtkJNIh$gaxKD5a(uiPDXqc?xN$x!>ltB7&dgED}`ELxm|&X)(#32TaMBtgGlTb zGM*vE#&UZuP#*u4t!gOIUcp0Vq#x|QApWe|0psKDVUCt(WVgMk&|_j~^Mh;dl`l`z-BvX>?>Vz3^J6vKMJ^6%ACm@A z%>cr{5z}uBib5(#Km4`CsG`%;@z-)wL^**ewJ&%O$XA@lf2y8#^I`e~e`#kYsjzIh zf*Mg*tR0Vy9n0Ca1~PfuOeaafP@Ld}4zJ7C_t6&;A{@vHpe$?SBMn-q9_Icck5~Q*WbeNiAM3R zo@o`J0J2B8$rIfn&k#osL5;%?is^eph70~f>vNdnbw!h*X9`GUKD+BG4fdlGaif!V z4sh=F@aT5b_2vK2^xg4nzTf*rQ50>JmKbf-h#0kEk5-MMw%AlrD-nCo)~G#WkE%Ul z?_GOSY6dZD)QG);U*4bZ>-UFO@Vt1Q)EKb!O(*MLnoO+kCC2!$*JMZ)`oKRw?FsBs9V!N+B-7L9?iw?=n#@u$) z=SGkaM>$gz!WEw0GPmYm+g&~hY7hAr^)^#m`r#(VX>va=$vBk(OU3fTKB!QJn$jZ^ z*N&6HYq!$ZLhM!plII?p^)*QIK(Ow zq?`$U%JNh*>iD{wP101y*ux?*>^4{2f^1PXL{!WDb>0cC`UR7w!sLf_Ffoes^X4#) z_wJklvxf7ukpJ>NZ$`TWWihMpt|Akryw$Az(OK?*O+s<^+sn;8^xX{_hU+>qDu%7N ziR3X}Uguenmip^I?}H0}W-qrkWL2NuGM2tbAQUBh%CXEGE&f@a$;Ww?Vw_S(i8Aoi zK^8RiL~@+v7N@|l^1IG&KXqF7P=Q>CZE{p?Iwq5Poz8u`?cwp|^_nbmf4=EamUeMr zdS7g;5pGtPE{(YBd1i6~^Y~Az`HXv1XQA_-s`n16HeD^tetB6~+Mo{?*?t}Jgt}~r z#IR#SGW+%%rS+s&`dZHBZQC*|yMoE}=z-LF(cLTbYL=w$SNb|iy!IRW*pwIC2Y1?3 zGVmxtzNDWEqfzq&zjLUqpo}N8@nGM7i3B#j<5CJP1BtT&US}V!Pa^s^*koe zSupDHUK)X$p&x`}?3er3{pa1}N!zcYnBxgP6nTmf;|zn?Rw2?Tj6H^be2%ho^qsJT z0wk-Sw5=QI{yh#oKE51=NC0&{u_#%y2}(+t{^9?#L6K-tDwVzGGUFf3-9S*q?I$gj zq;f5_zd#|FFgHA~54lQmMr_Q2Tm5mguyk7AQ;iGiCGoF5MRc3ZG8l4(dUgj%opANT54!)0fCzpX}NO?#T(sR`eN)~^N)j+$$tBdn@O zx+x#D*f2kpi(hQdgAnadBs0oR!^~7CsjAPQa%HVgp%lr=IUT z(m?G-UFFO-og?I`nFPekl;HSLT_-cAM6S@zEDPC?D9$_g_@@K(k6$M}#5M%rqSH%I zd`BRG{6k_<%?n_meN^&0Ho|R9dYn%&mU07s+MK*2Ps#rOT7c5~%Bcba=XV^+6~qHO zRJcI))gbH-PG}CNVpXnS5OXyjd&?$n2mB=No5hZK`C6mpEwE=~!=n9W4}SBGKXZep z#aj(~pxQ#s#9ke>u}}v~`=4rqi(~~O3mNOU?PlYF9^s<(gH7ocqcuqThpdimuV;q# z0ef@RY@B85ErJrAdht)olN@oMFr`e-*3+j^8{YqkE0}IVA0`BK?~VnyZw@AsJoIk4 z+9}z~y4}v&T?t`2Lq5Ge+dF=8T+GhCL9r|>4)YBLu2Sa)EWDnYD?*#9}V%~ zO4{1ZwZ>i}8;tr{-~MOnKa!mM>mpZRCQh2wd-IJ$=(si<;dPcx>C=x(f11pWW{53D zr!}sT0lSs1z8M?;l7HcW+cutaXp>59Vwl_(9NHAQ_~KNg)2%3bp1ok;N|e}4@4CYc zq+C1@_@pWtme{$$%HlG*r@5D_PmK*)}tZyd?n=T9nYd$I&%Vkoy`s!Nxfzk6j0nYkl zBBCt6{R}e&kk&gJdv535raRwv;I4HG7m{{KPw(@a{3tYsyQOivJDDtkLMJQ{qX69g zggVv~$BhL+WAlAh$V?RKPHHUGm)Hhk*B=GlWgK`H7`aSobDPD9d`vx2{v4Jjw9?JL zBHbAv*@IVm7{ch?-*D)I>l8{c_hspJ1WMV-wdl(_ z)&CF(rOc@{_44IrR{faoS#=rb_lKfiaaM+RNT?tmz9Ps0!u~H8GGz_9@MsPDOsLYL z`7r@`CQi+?G8FB5!VKa9){dkJi5hdDqleo;K-*vs8tu*%TzpeB? z+QE$MQ;W&opG+alw_kK=A(@*2S zPB|C*zc}Rx%=-H3<+^GcD{DBnWRhIk91+>Re^izCW0iI@X+aujWge zc>OZ-z5uDtQ~3&=r1Fq;4aGu9(f^8<_9FO4G10EET~EEn)IW(;;4EWQjDO7#wjRM> zPrKg8Yv8!)9d2IUezg7F$`Was{$uh`HGuu8+#642>AQ9RUfZj{{9abePMiy68EwqC zX0j+Hx+h0}_`UZx3?(I!lyGJ5@B>TVo#e0kpRN{`xG#&8&XuQp!Si-nVMNl(tf zuxF3r0qt-3<%dhp?dE-OAS|O*>04c7sfeF{h&~Y+f_nAoG;MnvhC<{8nAG*VcOa4C zeqJGK#U45PUTJprFWcJyVn&QoeNCR_dVlOKO_uakgfJR|Q-nQpYguq4;KfM)jl?hu zapld;{J3~&+&#o1^~+s1+wlw*B&AyPnj3F|y{myu238L<)01nwv=L=K2yqhU0&+C9j^B5 z7x0o~0yB@xQ`lcso}fYT2n=ZNS;|YV`t)J3e^1by*=nT+J*Nn-5*gF zaB}FVcDVbFzdc1`(!}=#sg5*lEMM746V0nl* zwYZi`i8I2_>~)Bx@828i(^AzFC3c(Rx*@39nwjQgUS43Kc0#=x-pLa0nLn!atXL|O+L*nS z`F9qd7$qOlxXWVnCrk>vG>(tHFd0pSJb>&Q&fq1*H#CnkcVfF`SytRu43+*;xJ3GU{M)EX8 z)U?)oT^@fOe@3OzICGs`k`zZI(<|GB$swS0%aD&w?-J z6RL*tN2>kY`}&|=`8vC`!8BellfkZKA#8!+rB(Q~*P@yf@#hZ!tO6w6Z-lE3gs79) zj@bKXQTh^5+3Q?!Jwc0NIDC3*7h1X#;+Z$<-w3&tUK!%j>%NoT9U9>})7Q+|gMOHs z8NCYiSq0^tZIP9u+7fGEb~dg{8}TU(Ch`KCi7%tVTVU27P}7OdG^mF#_U_-dX7_mv0U zY03kOemOOyx!iac)Q3|}RMZJ4xD+9b*IR4>$Rs-%~YYZDfuaXRJSv3c7TB9pTuUaV1FRK}}1|e6k?tubg zk;!$Pi_%*}G*ugcAB{}4QwFCl|4Ogs1;MUIHq95k zp3NtJJ)3vVns-xE&S%#}C}&-&D=Ft(oEU3tHzloRMm_pj#}>_X7F^3CGpdGn%1kT- zCn0mmz#*jLQPrn%BRd4Q$q>@}3EyiEQMHC)4%Ww(ID=~L<|xzqOg-~THN5mJSR3NI z_v(6}M+nvK`}w=ihL{=BbB9mt;Ajpa0ZUoCzwjvJ_I`@I9H^YI%|WSAfvv*=BIZ*Y z*=~(A;$8D?{<6fHCa`ImCUE|?*>hjUHS+l2WwYzq4cNL@wE1Xy%5?y)gOU~c<7HyM z;u60573j2!Evnw@93X=|b#&Q#0&4$KRG%>(mFVH6(cD>nfEt%q%MY`qnLW9roL}(D zth_d!Hyabkg((e|&Lv$NaCJ>c8R+VMny_(GzN2hoAg}jfdno(P;{Hzsdxfucg0RK9 zsp)bPIF3Zh%W(Otca}2d-79(ZJ9-{BVDixQ%#7(eS&D#!m=Ors!1KlFtp*YeEN;d_ zB-gJmqZ5u8okb*Xd9P>tWN!Snl}xJMej~bcGsDfeKfk%31NZr7KvSP?(|s(|c1SLE zb252zUG+Z=>@P~+@k?Oa-*25OD)%{srFY~XxtUarb1fYs7svc=o&GD#*u_bmT{p5w z{Qa7ft0g#>d|P?b^w5wC!IW%*d_To{{b0AP-(RH$eVuGe_Ur_`ptjXFHoc2ydrhd) ztroQIVWHSwL?s#YV)hcEA%+T`8m)}mxrFe!W+NhumMfmSoxTHrU9-uH^sHnE9ptBP zY-#izIK=_wp4o^f66*vAPtA&WGa4Vj>lzzbXbdgL@M@;k9;ABT4^vAtCtUs|Q5DvyGfP3odJM3{|*%2r6#q z2~I$N?m^Vgb*Q&jPmW$kl5?~#D%$+j|FDM-VrU+h)8eUGksgGMbI>ymQ`XU)iv!g8 zg}xqt9y^8whVWFZOfBS*pxA_Y7 zYUIh+Mu_JMJpgPIMID_9lg+Ud9r*^boLe6BfM^M#gCSfstHrVms6koq)AYe0aOvk* zY8}p+>b&L-+RuhQOd6E(QTyN#Sy0v)W)U1dt0Tir3qikzs5 z`2yVUPfXyl7m9KA588dxDaTVWp-xune1Z>h5Jt;I7=P;GF*IkE!z~2vf6-bT?}`bM z!OSm}0pJ~1P}?#Mh}NYU5s_&vBR^vQ-wh^%BT_A7bsXJ1<`ujvPY^d^e(woY_o546m7?6p{19=D8@;ee4DW^9 zH69~Q`wqrwqotrSpzE)f2|n1Xy3T_Pc<$~bu;3Mn?x{~*-Y#!7BCT%z&Pa5O2)ioe z`uBnbTK4i^=1E|y)%Lk&Zp9r2RtBh;%1Qi+lvrlgRhjce=B}XFbv)6WD z3d0mgvaycUc~4MTiO_=XYEzFN?rI6LK2CpG9{?^}3hOPaTEzwY+%L5V!c)+i?!M}h>j27-URQ94oIOy9*CH@8)dly7(g8FY=Yt{0dQ&r@`3eUB zY*yCI;4sh&x)sx=A~n4iK~;0PXS zf_?P+yr66EMJ>ehHytRYVmesG&`dU|wDx6EY4yr8v@LTV8g3cYJ|k!BT%W<~`zZ3Q({Ag}W7;xfjL`4brUtCHJSSens#f!)hW!RP&eC z$WlGH<-I;4;TF4A@^Y4}Q;2@^QZS_4#X!7nX#w}@AB544xjZgPXI&b{nPF_?l|9(i61)edrf)f2#n%M?bMn96YLPkretulX4c@w!tJ-{%Gu zBkS=5K}ajC4XDkk7B^^cB3MP&wC7oQ#cKFFTBSbZX;tr~aH(DGF?BohFA6~YyyDLE z>~{y-z2Wc~RDZY?aX8GXhvDqlWTd)>vK1-@_?DPuntnKyw`JB@SJ2<%{h~C=R(nrP zW`kx#_SH@&ooEB6DDlbn*z&M$_*QOYHo0OQ8Td}-!G;@Yu z%~vBVKt4md9P|F@rR0;$aOT?&bA+zu zD~%IW#^QHvy>7o%^w$7ljXW8~_93vZ` z+0;oq6}ZU1NX}XO9lG%jVAwcLeDN0XE83D%SZ46qe9VJqLe_X|rnv8Q)p6HFzf_WQ zWWm3I{u-!XdINNM$A}=@6>qh3+h3&RPtXkKKN|`;p;npSgK{c6$f`QfmUNLp`wK52 z`i=cc~_x*|tFmTwIE#NjH_X;4ig0xwRi>x7Vf3 zg2@bR>hgjjHr53v7rS&fxNzAG3x1gH6g@x#%&%yhPYyJrb}u6bX015{CsMg(k^|G8 zLF$J7>isTk1e>3<5L8<@wQ}}YI3be-aDv@)6#5b{wBSE@ zNf9e$?jSvd5727tAkw)H5<1ckWZF)u>}1%;pp-lDSXw6}r`VkD2x|oYpcfu%GY0py zfo(D)8yc2y>r*umu7iq6wE&whJjog-M;d+Z>gB0lp@Pi)*a-qxIJQyac6OdDp)M6B z!9GQsM3gko^*a!Ufz>x_H@)T;js%o{CL}}o$A~mHAJc1rQDGc^FAOq&Dnddxn^6C% z@mnszxt}xFD2qM?dB>iUOK;H`vZk&&yDl!$_yv&Dk;BMJb3Kb93-#>s1c#vRi=+UL z-->3P1{#2m`F&i~s}3bld%5_2Tu>y;(Blc z>G?UHHQxSK?1luZmgW9hdZ+7Oay<_Ss@C(_B<8Z01+Z)IjHj-e!>;DiP0D%;%avk} z|6I&iE$}91S79y6^~wq=q5MYYCgkCzOJwdvu_WpJ;MVSinSieWPgr}D6&3I)y?ekb zdZw8lcvaoClI4|CaXF&f0n}@Ql>Np{MtF%gacs#&$;LS>2%RMGliK%;r!qil(WXeN zWDf?b?W+f)&ij_WusmC`wv5n&T1Fb!eH+}biQ7T#vgvSDsn3*G{MOXby<8WB3}mhj z*p}KH(E*$m=}MZ)$XCl+>>?4WBy~_5f9m)dUDqX}2! zV8c9jizfo7BgF^kNleQ9;i~!Nq6F)>m~x$O@C0}d$X)9%a)`BlX^d=fZY3{Ehgn9Z z*>0*DTOuY8s*0@vrB_#{5J8`euFA=2V)q+QKy#MSv&$*e?7tZzF)l|{6ROMt`P*AV z_!J|BO6!!eiDj)&S^Yd=AZV!Btw#MVU!S*^ctOOGKbZ*|C+TC7;w z$wynb2th06w*jU5!OisV%tlVgiLGR4`_MJGi^wXca(#2DrieWgekf+P5h7sPNS<0T zO?~@oZNK*A8hCbGbZMWnI>5qhHYN&MDnQT*>8(({UrM``4bCqN9jWW&z$#*>j? zw8j&s)uZQcT`HE~KKzDYsyGVvEJ-znYj-3g)7z$RK>6jhRsUw5+Yf*ISGv>d5+y|R z9bs}}NGlQD_%hf{rq#o<@?_0pg@&Qy2=EWN+FJ{8kZILcHi2&ll{)G2-f)A`eCv(g zY}j4@Vktoeh8k|*V7Ofod65BBrjMucXHyS2X3vc(5%oPB2Rf!WujgcTM z9%q?lsEH%mU=*}QXe;YkYEMqjx!Hc1+m^b^ATKwzL$~i5U*m8{n-To|2nPtcMvmeD zi1>aZ=Q82!=CuB0f@euG{V(7tL^6esSog2b zg#LL~I}eI)D|*mr#pU!2c~}i~Cr72x;Nl83#IU-1^tss3ty?FT>-nSsm)Sy2T%B{6 z#7+7G8p$1tjdZe^Hxjj-Jc3IhzZ8)0&9kH@zf*lrY8_@%Cn-vdl!4a?-}c1VDKAFS zMJ9DebCfmv-6j9kfzBbeFN$l|Nxt7nVY{S+y-}#8zuxPBSll4bssHj~{}mXav#BX! z!aqu#H;$d^fv$j3iE#6!(=s;;^b20z&-fJR3-IdcjLEs=R=?IotJRA5*)+tC81_b~ zpp+L;$#p$!!-lLq(B?V18DT+$??!|f>=h)9Rul~}RuKywR3~YCDHlkC*$JSgKh;q+ zk3r8RtBuGXFId*){D#WQ-2VmRLor^8L@Y2ewYZCRN3VWWGTa@d!S(X}VsL0HfNJ9D z*i&zq2w_xJJ=u^B!lUlnj+}hf;~?s2l~am3Pr13AVl{9^SA%c!wOt`S2hi@>MsTTJ z9`)1|Y6b^)XKZK;ehWi9{ov1(^=yW~t#&+n+$EpdH-JvaJaz_Tfd-%Xw-KESL7A%GXik96wOUulx&)( zT|a+;Vytl)1EXvcKtCB8e>_YW$sR;MISRWDh##|y#s=txxAd;t6qqx|A&o}9G^Y-` z3Z?E@lkR79$nh^n{k`XgZ}4-I-3Lx~*y6aj4nU}Hpp-pQhryF)sl&$b2V!x5nWLc)v=T&RlEA)K?aH+U zBye%qw$L|RH|0?n-R7M6p+R1-t9ki7Kfl&tBAv1N)k7#k-#kyS9+eDqx;a5Ai<%YD zJoPhXx5P#|l5Sac98TylC0*Wg>Ay=b5LVIZQz4ekA_-Gf{81#RHs`tpJ5gMqd`S+v zoNpt5LYEml8Vo5c$TskUOv30&!jepU8*gxp9Zsm;J71BiC2Gp9j}5SkGyO*s9T5c% zJhnhc6?FG=x#uR_NDpNn!DlOejY^ywuI;Bc#PJBhqwM)(*WW2fKAhPWz|D6(j(2l@ zqH4)@>fg5w?r4Jo325d#Pp5QXzrGUQzU3GHs#EiUbN|0aks&RI1I?n@ZLOWEz}ca- zf(Q1izBzgN8q?|4wbYcmb?_rz%P9>2r20>Abc%%(tzR{A@uVtiwz^)>j2uUZJG|9& z#>uJasfg_cPYmQ5f&716+b{NVNRQpS_c}aV?8S;UW!e;_h{Tk0a!#7*XmSJ-gbXXX zi&hN*N1bIgA2Xe@B01aVMoUe_dguUZLy~9~aLth$c;(!7H)s(kRo(mxPBE;j#EO}S z{$c(@`1#NwqB}gQayY+-*MoFTp~1N~mHE4rodgxJe#c|-Kjk6vZ^D_5iJ#$6qxD!0 z%jBn`VMbf)kEkVqdWmES>;$*i=8+zR@5&9LUp=9yc4j*>+dm%!uG(d7_Lz!4JF%-C zNr~7S%JoT;R-$W+Tp-4y7NYJU`~nlrO}Qlrqjv>K>s z`q{B9xeylms*6;`7T2GP84CaNs&Ge*@XqgSNo;iRl@b$L%GK4?@~rwgZH~cd`f*o; z>6c+zk_`AJ(L;ZShaD0Af%{%?V(Hi4Jto{NdzH7+sXoXO*5b)#@S47OuGW#?6*+cr zoL=m7fJ!2wyH9wvbgPx+iDPn#caQ}t8O0NNx(PcQthvM;$%Kzn*ajLW#0L|YF4Uec zws=s#^scHUi)Ydc`x8nQqyJuFr{}q-uOzFuZa8_CAG2lF1UzPFZasVP^~WnCy37u9 zBE$FWE;f`cyiLvbeFE&CVOJO)1Y$e;kQs|x@1B>poU_;g_5DkWrk3-U7vgBlRXu1Z z#VemPWIvksc?(^9dk^Z)^q`6hzeU>p4p8UNt7M&pH%(M}|Ix!k0y^mzTk`DPl=o5W zY^``?w;~0s-vym)7eUOT!wWnzK(>R{2htNUd}}AfYuza z>OKhS(DuJpLd#Bc%Rc`#k{u6GQhNa(6 zE6sZ2{p-cN%*&QW2f)5Za)BD+^K67g|54qm`X5i-KAQNCh|RtmS)Z>VK3Y=#{B^>Q zed`UHF^_oN!1)nIbEpsgVhpvJ+#$x_wojVlviD{EuT*&MK=`tw&MPs$m-}9hBo8v& zoKu{(fS=wxO8s%yOo(L_B$!DdrimI?oZbzjp)Z*`SgaOtXP4)7637r4B!f-c2ZUexy+^z8JcgIgMI3XL z6Z?e-Z~Sm=!vp)V`4^@-&Z$$-r}#~)fbu# z`$ql=opK_G5P(G%)ZM@?{lx9jL&wrLPh?}yj%dsj=_vhQvd6kNLRFgc{t{VK``b+j zc0EJAD}AU`WgAkj+dNqRdC~2L9*kXe6lr?=z~x1EfB=1O)Tpboi(B}K^SntCvzZ34 zs)ft3<=<%#+3&MkFeW!TN@dARF_XYoMIglz#Pxb>Rwu_HMwA?{&BOI52J{3=*2!}> z;_?$p`PW8$U)dZSI;_l04SHL<;PFfH{SWh#ln*KJiP@Sw@i*~Mr)$A~zoS1T3w^Ss zz&(K*^HYjXYf&%qC9a7y*b>a%AM%-hEcV|V<5^i_koJ1v&n?xZS0pN=p?J5kj-UnW zEun9K6DAKquYADMMiXds=)o(=X=1;>*Oqp{iz{X*d`6^UKyK*RCt=la4(Pk-+=9b} z3AaO+`V_68SNIP|g&La7UTJc~o`m>yzVAEFB;f44Fi)e5zdI5?3bTpT)Qye+lCAix zdO*nu7$oaN_&;pqPO%To))i#*)ICC6#5WUnzR|u};zjo^g`P`#JXYmwphPuGe&xXm zcD^iIy9%gil}YjGE&bSkKc+FhZS25yT!B~zsm~JUQ!p>BqM~v?Lbg``_2`m(mq&`L zgbGlxyR*L@Ik|s=HreHDKa$qYD$ML0$SMB*_=L%6nDV{FgYePo}vULbW-gi+H$v#O*w423sP5Oj=<62m~e@^RO4az^4L_(sN{u%+w4pl$RN!1UKlE4)O(PC6`Z66^I-n#W!zDn&kwF>7d zP)Qd~_T461iM=}Qchq@VUif%B{;wI9IdXQqr_CH9TtqZL^Dmw!<}x4DAvL}`(UNwM zb(ybjZ;-$CZf3Y;Ze^A1OA2|z z=c;5Ocv|m}x3u}?a$OZ)D5k)Jd>HxSJ$W7Re)+_I8E#9zERu{^Z{mv8cC%V)phHOp z>k?feej#|vLL5N)Z0t+??~j(QUPV+Mr^arV$$2{P2P+!|icG;*0YlP!VG+zM{Iw34 zOKG}~A=DktZ3kHt%DJy-SD|!op_F)eAjz&bsw@*>X>Z(Z$Q{W5GnfApv#euOA+7aL15E+juG(e)D&=sH_PRn9cXlw&~)ib z<0sg#j8bJ|ywXmvn`GwE%O{S-UAmu?@9`89R(3S9E$jSXBAk{$pF2krF3No!X!JiXrE0mQ66kL)`lNbs-L+(5U#nzE8ujuJ!dH23;cOIJ&sB?Wl;&sgdTEJm>DKZ5 zNFj~q--P-cPq%Olm;(H@?I_T7ktNGSNx(%EAFw@zv5PTG$}$B(Ns7I3r9SVXl?PQkd;P0iCr5q%dPYwg z`65_#r;g#EGeeh?!zWt_w}OfSeH%y%izzusZ(jC3ol|U(XEry zOWI58W=cXo6QCR0IyHBIt+&XnS}g>e=ypvIJj1(J)-L6E)Mb*i+k=;BcttZIv7rEh zCMs>qH7Hf?tnGEm&^|)0E3|tkUNbSxIbBr88x8d#Z{IN58b;Ru!(((79?W!KKEG2V zlUz~}6yKRh?ILTENrm?t{e z1=!Cdye)+KC}^AnHI1{x`AXrxRMCux8QzsrLoh~#?uK-PQG?zKCHpG}%$4d@uQN<> zU%}HJ({$hM5faZrtO`R^6d9ZuQ$8#@(S4o5Rrm7!SQmB6||1biJ3q}cdQQ++Of1p;#%9*zi@}{ejv1C zwbqbzRc<8niSNpX_mzVWp%Gqwwf&#ml8wRCKdMo@v-+@@9)zb>WiZ zzPNrZ&DFJD~6R*758_&&w1JJjj^Q2^z>Npy4j(B>fu8=P>U1rEP#8fjQQ5 zm3#k|(x;*-MNh+(*Y^F#TZ6)rEy!q-PGl3p||s?J4{xHK)3Cka&aSn$eHR8}m!$$?Zy4 z2vge=-^&=$*Vy~m1Pq$5^$9KE)Q>-wup^IX0dtrP{KqsDgZ!}s7Sw%GEc z^{0Wq8HqSdmLllgQWoq)&25kh7thKg6)!B5YY5CZ+Y`RgF9@^K+FKJ9ED?$N_-&~v zPUtd{C3lHuhfKUJ{+pb`)=r_>*-kX4ITWk85Ee*cfq&7y1@=d8)yS(hJhpC=*b6?J zowPH5vMl^7`2Z>jx(Wn+BSGa%j_TIVH9gYf9VMPJg|VX+`S)H~r5N<;yQ`ZqQ?0>d+Oh2s=7(m<`EFyrrB9I7H1fI!5uiS8MbM*K2m7 zPk1%hc;4HoQ%$fA_g#b-U=D@;_8PU1rMsDd_xN%{LpmuQljvfG;NNz6;^73*m5VxS z!Zt$P2N5DqbnY9yEaRjTa%!;`nr=e}4oqq~3|$=C4@o2~r%d#XGuVaj{0SKS)Vzx@ zH6Aw4^4Jto7HxUJ-TzIuLv_6TiLds^#ThobZ=6Z^2l`nZ;Ff)5b3^wJT8F_Gx9>6d z_E@S6*ReGRn~H|;8@XdLd^mU$$bOgg9Mun$Ebs4QsmmW>cmhjuAIlv5d*9i<9?8{7 zBU1M#tTa$}x%|Qe81jhU`~Bf+X68r*)v2GoWLnV^i`Dzcgk#!)=WiSEuqJvPS@9-O z3#%*&>AEjDB(lU_W5p#Cl2gq%izc~?#a(6W;5HJ)T|DATwg^VrdBV&`xrN^7gu!CL z-JC$bP4B*ardf}ww;kE>6x!Q!6o*&p10vm|#h`erU(^6Z}^Ps_3>%@hP6ffSrkk z!Y)-3zhilY3~`ft?Y67$l)W3Mv%Jk%&+xKRE~qeR2dSYUmG<(@DfkuK!l8MTZ90l> zmPnDktEfNL&moab$9j9YS7giI#*)_D_OlyctAq_^N7@a2J`78D=Hy>j?3@XkMnWwe z@#)&l9|91V62)kIU&OxVJW~<|6ussQ$E{|PE=fBT#spW9^K&9+InnfK*6$^q9Mfc} zk8bcI&x(tw|69!rfm2nIb_K158pSQ@&eX^b7;d^5N;7;n4)XeMlBwOE!K`UpAF+~= z@4;nEz<~E(uY0!)_c(N5?;y9{xd?&JR&N;`!|5tdKHB7K_N6EBrW`5;Gl`7~hX5>B z685~yhsJCERk!KvJoI`qPmUh8w-Xp^#ES~!NSMV1IwI58*pgTSwSbnmJcU%~P+P}}E?9&t#$UP?AK3h}to@f)pZuD5-V*L?2t32npJuZ{1K_;9u% z2XLv{7Lfp?Ao1IvvzEHO7yW)A$&qO`&O58p7R`L_9!uk=%IN{%b}L%Qi~S4hz6E6GNq&~V{Xx;8TQ z6-C-;j=zg<7Sj%=rP3;@V2`I;7X9m7PIX($7-9eDFjofNcG7^NWY3z`ynGrMeCo#@ z*MxozvP2GLpdDO%gH&v3DT!I_5hPj!WfeE^S*FaJb|$uSMRi(r-l) zkQx^~8D@eYWf_s@35 z2)r>KrGNMrCDSiLM6nbkch8J``G3c*2_v;kSZ)$S)|n$kUX80EjwV0;30Rk~9j7m` zg67LbF5X);Iv(2=Vy&ru#eyGR1~Zp1?pxP8X3R?%eE#BPk(%P+8SX z1bBB;M#88w-6+{{mI^Wa?@KpA}penScbqk3vs$%$~X z!v3M9{?F0QdSZX68sEV64`VM2DoD1^6F*OMDLq_fOQuYoj9I66bXmqLZnlCOo8I}N z_iEs8?Q@fu(6`oXFX4X(`&(|k&5isd`Rp#JC*WAb_(KieO#@GEK07TZMm{@iURV0J z2*8+JZ+~?R?-4W?eL-fvU{5gt7bh-@-F$V^>$F1WK{0{rOWcCKeKJ>{8Mw32i87XOJM8s>AuVV{rznS{yk%VzSM@KQKoEv}T6!dq zsoT-s{u&!XmamytTG+>vodJW)h3BTu_6Hcm(7HWn_Y;<$ww(W@&o zvc-+l?YmDm&?Be5?Li2P2d-(Q8=p4mF@%A}~^oC$QY+A@emK zPj#xYAx)jo|Ah0v_ARCyJ@4+qg&N6E|WYl9@Tlc ztEFk9@6V8yFa9M?#(GTB_S1V%RLL9TANZIpQ|?Q<70Uea92SunZdOlu!StC0tF;|U zaBG~VyigfUuZF?Rg+7lpZFSdV+{rCMf4JCVgLJ6f$H1#NBnWH!xou>R{_qW#;QnIv z%xqnq2t(E6=tN7*ReYj_od3QH9D9LmcpOT2iYr!{5MmI;LZCdU#jiRAH4JHwhi6UY z$Jh(CI}~>W@+p{?%&I-qBmwSYj?c%(rXD9UKRp@hT`ZUBFcXCJyCl6THxJd`_8>8F zrYoWwTP$E~`$VSLF%V;fi5w-pAV(|jfMruEXrmZY(*>xZtZM2A#;n4V*Q!7n<3m2? zm2zmjE7f;`+l;HgX>nAD;zgFd;zc-}Lq_w{azFZ+6?CWv1@TG_0p`x(P+p-e>B+5} z`GP^fKs09$Yw^kVK=juBKO*ll`QXhjR$+YjZ#j~QDsLyJ8l1fG%ap}QJ%lpChXJGS z|3+GdWo-J59&U4`w=eo9Jv%W&Dp=uVH-VrA7bz#{UpDlZ z12Hp1h(iZDJW#672*j4F)+xoqy>gI;piTZ14BSx#bf8Iocy17xfAl5VZt3eVswX39 z$5;KfEDPv*F~R;0fj9noMCX1PsY=2b4u3C%(#K~n+PRbW{{YHTx(v}Ssx#d3t$(zY zooJra3|MK(WvEXnMMi39?dpSc|>03?b_O^TZ08TF-B3JDGVtYjVi z0V$*oQpaudC#!`?Y1fi4-N*bh50w>n22A+=KbpQdtj-7SI~!ZJ-SV=R-Lh@lIALK~ zYq^%~{iCa^tLv_Ff9+2-l{Ktkq#FMPdoXF`Hg`#S%NSz7 zO5jApb8&lQsIM}im=Mf+!H*y!SjcG_3+K_^5jY;_%?+jqhW~;T6?oco95^-(!_jhs z*hyEZ#@`dW5yFp?+%I6qF zAvK9afR|(i|{NGJ)!x^&SkfhJzHn zP$Gcf+v;^Qa{dwPy+u#uqg43(*KPMyJiNZyesR3Jakd%L+x^6#Vvz~ z-}LUYVM1Ki>0RSzBTC73T*cDk4iygdW=dUYr!}LNQVH5?6xB9H-TQ!D**IeBiMCn+ ze+>I};^P&Lpw|ewom^~p?k16fRfn_(Tn#vP8VTC{frjgMjHEk#uB(0F|Nj3hK&UtZ zAvT0K)pK?vd1^5wSr8_o8Ocoj0S0571kk_s$12a|qTJl=q4E!eEW%T@e>XRcOW?%{ zV@41k`Xdex-3tQjeS~M?;O?d+r@)CG#*8RIL{rjW-xRL9%5!Bq!|Msr&o@uH!~9t4 zj`D-57Tn#=>mV(@_msz~LCVjgblf|TA8E)UI4R;T>!sTvMy0mCwG3}{9AxSZB*>89 zJ)NtN^ypU-&@Jw;+9&ORL$bGozFKI6xndl*`Aerng?Vt$9W|7LZLAN0=f4aB0kX`R zpqNzMJ}wWAb07zZ$8h?lOfX{~dtiji^UUef9e+^x*N^FiqweJC!3598^9jc*Tl?eL zwPK2tSckJN9Rv+r-b!Wvh4<1QVlB;gA*3CE7oJAl1DftbzWrXqgZp`1FO;NjTwk-k zM++=@F=X@)Sq0{Ok%Pvc#Z~Y~5SqFI8D2$pPlgTWQRgLjL!a^mYItXU@27*x{n>Uo zT*BqSP$_NWr3>$Jy z?s%=8&lv`(6thoag&0azj3W5OWic4t@`AAH1qHRyW#aOKvpd*!me&*LZ$D!wi?e+} zw#oe-R;S6yc_0mc$&)zRcX#0KJ%ZZ)eZ(8BPM#dVsxdp1QOCo{l!hCv>8`!r2wvtD z@2}`WvQ&DBPHFC$=HF~7X~%kZ$x(nDiMdGtFQDRvJ=H7;We5R?bk45t$1KHUhmVxj zK!FnK`ysc8#yx?Mx7Ma_2&D~mt#m#v1G|(bE#;R&MYUs58aWE%<0w)Bj9W?`@ zNkD`iKWHE_lji3$%zqOb#N%unWqt96)mPtV8k{DS;IVxwD;%nLaquWjXZyR62=yI} zPVI=TTxmDEK^;cCnc!DsK|F30(`!C=a57yrulx_D-O%qiZvwkJ)g(|w;$y;jL)k5l z1VTB&1t`dwME!oW#FTd)C$hu5$DeweBxam2?`sm_$?@chq5LWc^)4TE>GLC5Q&k6! z{uuoT!m(p-yIVL+b0=0=h;9EA`+)1_e{y%dl`EV3ZPs!LB4o zl1Wb-V1F~;PIoF`l)YYa#Zk5Tq~{E zOPqagr}`M@v77LJwIr~=g{XdFFa#ZX4o(1?%iblQfOf>Ts_yVw2YA=y!NOiz@#Yrq z!Jjd>aNYobkS`$)`8vSvj~$x%GCJnysTG5!MiHg1dVRB=;EN{Sq=Mr3jXrfv($}y8 zQD`Lynr7Xjfomgy{23G;YV$z_Kg%(*w8F$_3->%-qgY|QPF(A8n$599QvMtuK-B6b zZqhXZ7caj+Dm^lkRZv>~P6vqU9kU|mOLi$p8X`FIVS#-ID@40-#4e$=+vozoyXIPp zqiY8}(0{1zjztsQrbiGU0a%3HjYu*XZAc+B?|XV@fq6}pl-pmBl-t|yA2H%QWP;fI z{o3v}_O-oFl7qwpkDbB`FA_@-hp?JBh>o4agN~he$}h3ynk*JQnk;MwLlBM-OB9Z9 zP7I6!37Go`zTc$<t=S#2^nmc5h4T%G7pJ#$uW258#Q z(^gm!Y08)VE#5#?dO-Y1(2C$URU@G4>$2W+86u9K~ws_q3H6la51B;arBzjsI&H+_;H z)^DA!4*N^M8?|Tf1Af@T@RKHz=DkH`lOPVS^=JQml`hTv5Lg9GLYg)|E+brm-6ZYm zAz!0`E3@oYlDe$*Bxv0Aw5UtCS9}5JQ2<{BL-)>{ZB2Rk9eh1!r3El1ZoJ7f%u&=% z_pSz$Oh;pKIEJ%;Z~R6XULx$|L3r$>L7&-)Ev96ol19Fv%0+0MbIqQGT+i7Nt#goj z+|69O4J5m@D3h@hd6WR&b}*iZ*@=`J)W+Yw(rf|k=D6DZb}I!Q2Q>Hcjx*lmlV=x4 z^ss<=H8pyTUlI=vhYhbS1z*;`@4p2c0K%6AcCQkIgFQ7V9t`_9sQTGUHKGgVJlW_W zo%U@N_@`-;AU$iS4>@5dJ^Nr@JR@};Qz#FvTu2kPhHd(uoifz(VOU$Q^O7f)h7Lz( zqQ!5pCJA|N{Lfbx%A+#VFRE|p>!X9;ndEiIL$=!GGV*&;K*)Y6KmNjAB|wb#$eE?& zB;WEcSYCb4Ae3ah^ucT4Y{d(=BB{58V`V3Iv9o(>%dDj(zXn~GM@zaV5(lfkT^O6E zBi4*V?ThfXU@$tRFFY994j?NyFWe4+k^Po#+TT#|Fa#G8ItKH0U(jL>p3dBjH+_ZC zWuQPVk9<$<#~SaI>I{_}fXccZ2To`gi$taP;F+Q%T|TuO+UonXI{X6%k#xg555(p} zDMW5>B_aud5rz;;1P#~;@iX$d=wQkv{x9?R*eC8U)`Vu5q9u_* zp$HbwOfLGM&4NPKA=7E7TFK>MIiOaXVDgy_FC*DQ%Uwe=B_)^qoPh194G|(r2l+iW zQHFxOL_NSE{1w;i7fuLwOF5TRTP1OoF<1RO&`!l(pXT(!R%zBq#&g`N#m->`J6jQq zTh1<>C=Wh4z}Bv|3b0f?osTW$iF(bwmSPe*g7YUwhP;@#4~%ZXyy>BeQ$zXHEXw^k z5Z5t`MO>E6=9RJjAZmksl!G0DZIlrdo-&0kh?I#Tij+x577-Us5fO(IU-UWGF+a6j)dw_EOk)TNAybWL~-dNI=2D(kp z2bXQFMjazSHe(#w6JlZB6ws58jKfPH0r21zL0Di0NV61q>41OG2v7C_!84V6RPs$; zo3mDHDEEN1vg?znNu#CAqX*n1jzEFsPI|emsWM}i1<`Gn-DQ=oc|Ud~G1dJ} zrY8ZTRIg9$3L;2^jN}nYI7!2$Qb~jKQqb?Y%0_{B?At_no{DB~)-)zJbyz+}fHE`&5wbw=IXt4oJV<;R zQ4CSHEI*!AQ*8iWO0Cbk82ML^W116t85(w2ugfNsIZJy&7k@!bbr3elbE2;IE3aplnoj+0=xWX z0Xu4^Yy27c$saQ&ZH%E^*)@MP2drxPhRo{z^V+@DL8kjKzpi};n>Ej+Q?9; zuC6y;SA!eWL|+BbdM* zxD(@RQ+YBUhPr7H{D>yi!B+ip^FrPgtAeQN=4qbOWx?_=m!SH~GhOCEVa%=iaWU-y z<2-Mcx^V%-6*r5%+vkg{*OhkFk!5>EbGu{x3I_-}fE659JRQ(B`O24;w<0enX}2ir^!R;OYfj(NbGj zZnR9Q#zH6|+9M0dUPEAjnggyJA|I{=wkppo%KMvOXa5r5K6uhkDJLdCarxfvXlatp z)fvFOUq@fj1GIWor7+02Q$x}`?&uiH>Pt4u#+Vo z?EO*fQg)!85IWe21F0~QCp8_sz^xm$9+#tXyyHmm7=$U=bVEvYB?1in zQQ(OMD^6klalL8km@lj z{bdG*?kFz`T96zmjMsE~>>&nMy#|BBp)~ul+e20K0g>=n(0r@Xwf0bEoY`Z~AA%L?RLsp8mLR`Nr9C)E{WHghpE_^?uKoKD zsxU%V_eB@!(&+!hijf~k3C-q@(B>5EwMq+2zKGKQ3z{wnmwK@qxbBZ4th&Bn^Dd!m zITfCTUpHR=l{Z9>4Fgr8QI8S0kl#XEEsln+B}A`lzk;m2hhg7)+Yt5+*kQz7*YhBM zJ)9hD8PUcN-8O$Xx~%cxIy?vzYaoNAp_mqGd~N0yvFNdbYJCkGvobSmwzU8LG$*^? zX1Q&7A!)c$0G4uQB_^g@uGas)e2%7ECyv%wQGrk9dsene6eAUE%Z>Z5M0habnJi=h z6JMnUztN;xScn$4{RYBjfGIE2-YhF0q3f{g`c_9uY@}}F@G&I#^0kD55jJ#r zLS-!52__WUr9j`l#|LGC%C@#Sw%4Iie0gNSFZbx!6cFjR{EEcJymftj;I}D)T{09@ zpyH!K7Rd{9rGozo&YOzXsXvR&qKh`vd~ZDZ*5$pO{DMH!R!0BDx^j$4dNwzF{=EP- zVx7?LEhC&^!`8|XIfs9y_U{KKEkgsN#xNnm&SP(lC^yl7CceX>N~sQn;Qm+GQ~%&i*c@@MTK`b4*ph$``$Vh2QO**I1Xs zlvp2w9U}{7xN&)3(7CHW7-cGc> z{NRVh7y%F|sPW6ju4q2kq4{1r+yu)3u(&BPIKW4d7u~}G>UHd zc(T`qi+oV#t{Y1%`hXTs<|*hx6iDns7WmYg#g(Z<#-G>$M|;%^$G;s+@6!F^5lW)?_>kk%p8wk+K&&nC_#Ow-^1(+BHT2;SQJ%F)2;#9=M=?pPd-`?zUZGTu9+K1( z&(YZt1vj6C>BhW;_AjGJ=5k4SIm}B9unF6a4`TgmqrRRY`zt~3`GffD<&40BFI-4j zrR*)0wRgz{0;Ir)h&%-9<&&0cQqdEG0zQ>{nI;qhAFVY*ZuGPRnD%`A6;lirFm&B% z>mJibpoZLzVIkWG7OXu0%wiFxE?yX%?)5`YMUE`o&E@4#4;C?M>W2I}{1v1LC9%D2vsSV+=I1%)(F%Fd}n z^U7>^G#zMds9v8CwNNA;<_%kHsCC7JRqo`!!<2YJ7DFgOPe++JvOpPD(Ni-u?jfmXW&T2uGK^yD3Tw}mq#W7r z-P?-n?1vq8-Fmkp^{Bqa_*ib-~v6kqWPlew%8bHAbNI2=}u(s=QClsjV zj|b$&!%8{B)nrhJdw=lSGfS=%i(s^ClSPQnRdQF0LVOKTLX3<~=mI!HuNTG8e^+_P zNTC)EGYd$(EA6B=R!wYgGViEpCRLR0c<)n`^($Z0X0(BVRj znkdE}#p0Y?apNOHvz*p3qv24Vr{$E9%u_&yCenH~h856xafI9t;lCIur8y7fsCK2s zb`s3`+H|A#!o>DuXuEOKB2 zIwDW=0VU=cOYL~C&1gML5h7&{4w5BT&<^k#WIvtC;wde3?+dkSd%Y5RMAOLwyzj?x z{6M8=Ozqyifa1Q%>gs0dlQ-`$L}?C+IEw6ezhOt+wVa;=A;F-2WMKtxG&W_3fD#zr z4{@ISQr1@>@;6klM2gY$w}q^Je3JDD!9UjOp=A-}7Ffq_3OcvfmBL#0MV30E_$wkE zr{d4s&sbV7S-jBvT?jJUuf6&`JzN%pqh`2?ADH~fT~I(7HB)N9l`ndN7+=R@if9@@ zB>8K?O%kkyuHoJwQx&AMw9dLr#@fAin?F!tT1qlPtZRBO$9b5EiVJPQw`;BwVo-g+ zFjFG(>$btX5h*1yX+ns_{pU7I%X)3iFR0Av@}R8eMBRuQ_(_SzStD)fJdMTBGH$?j zd$3euu?n5}FLZo_K_%b)<|IDnA($%w`zIpw2G!yPuk&%5{VIlx+9|3O^c-;jBF+t= z4D^6xO+YE$)>U~g7e6ugCt{mhMTbRRf?G)K`-Wd&i4;Gt0g^%xhvtUyX5dHY1T)oE zu05>Zcbt$}ni72e0d1qCf17cjXGWa?HDl)+P9nT5XM!l9&9VhvzS2PbGO5+B^q(;B zeGd{up)OA_3h5xiR;q(-55dxCLf7jBoO$1q>@?9e*~B4yF_PY_S>q-4h}IT=bhCDQ zp%2nA7g-Jtf#!5%g9`}ozw)J81JT|fMeN`~)BQA#%wn@Lbl{^=)P9E`IA}u{<(u$F zv}-*ipt6A8Nv>72emo4&RF)SiHzt19h_Dv#&-L$U;oQ)8urGe6ajfL)b3XGG^(Ml; zzBmk-dY`IdpIWE)KOG~Far%X__V3btq08F3Ma9KZ3?*8z2T2#KZ#-nlt|)=7bGg6n z`(G&USoYrc(T5#G{e8!(?@%^vY4Td=$6 za`t3MX2~pm@sRcjhW9~M1FmcEfkU}n(Y{AgAzegM&^C}r?`~giEF0u|7?6{qJr}+S zG5Fl(Okjd2*i~|-*p8dGhXo!m%I0J2Vddp|s%iSLV*G1zrNvWlV{>VegePvk2*sM+ z4x(c|0>&;@T8bh1aV9;&>2k0V85^}MFr^{5xKipljh;DdeA?&+T*{0?rt!;Vmv{vm%-l6dwFSuxakt%*Q5%) z{teCW;|*CbBy*@vPFEv6p{8Lam8D}WPLk`Q=+~jVj-|CoH7=i%KH|MK!lp4AxO6#u zG>?7oHx!wqVP?6w8?Cu!^v8>fAe_L}$Wf(hSX7xHOo(u|r+8p?QJEZJ&06XfxKU(O ziT>ONi{EFOvqH5cN?9p$FVE`G$EikaVgkf8K8%JDRrINx*@LfG_;~CS{M-EqWxjHT z0%+Z37KQbN_TD+pUdyQc*$&1(@PpqkYf+66@rasJrCpDeecxMxgGHYzm8bbNnSA0t zG6nBgYReehbGR(~!sedc>Fc6akIe<1eC zYUvkoOD(!AnWB}-akGIdwD)9~_QJz(Uyx8=V#b9TkmQu+LdkJ95kf*`_!mE{A;s=8JJe2 zwL6`gDalvH`D=+hTopMh>4SblA#RZ)r0e_QAMMEKhpcNmA+H5|Jm_S<`EJM271gBX z_jr3*aLPsPfKq{r9C9FoBsDPDoX20*4tby{uzWBkKrkD{z#0jA2a0U1!~ZYQR~{jZ zit$j=%+MDlv^o&GE|8F_vKG-fD(llK|sK!5*M zO4jBCT(%aokDmfKcLx@xQh0+RWL21^6549i5^evEjOLh1?7a@U?`#@2)*cu~4jS8p z57cYN1b$dOu>)^ukl=Wu{a4vN5q~=nN4R_6MHc@c@l{KU&N&)j%EwS`peK%O*;RGl z-UWM#Q0=4(xm2e=s;=*a(+)t#oM7# zi)Usgh@J3-5T^l$i%TIcf+qm_rT+VSP4LVXqH!zV32WNuDPL z`EY9nfv!kBry+>raxN@h6%v9Ydysu6R z_Le!Z%gClUoRRQJ?8*C6^?7!`xiqPMz>2#|cLpscey|b0MU(YoN!DGBJP#jk?`VL1 z-&|sQ{`a=a$Ex3oBMOV*vu}+YK>Hep^~T*7Cp`y1CtkHIAWlN0BoVtI`*(>ENOd84 zGsKNltCf~M!oe6B$sCN~!HwTXNG_TFNiU%Yx-tch*E#H9<+^pP-);6OEFMG_mjo(m zt3>cD_@4X4ZK^#D`tlD36iiuIRqS*SM1belf z_^Drt7|fNU8Mp<*U^&ujYm~nwXZfEA&IVpE<@uFLeQ?no$8^*`2{m@pYkr&Me)yTe zk+Oc{n;c0U=Qj(rN`Um$6?)=s4TQn-A@Td5aXFI_A&+Ze)Ll? zX`f$(;})wo>cA0yS(`-wY1T&XI^F%9*PzipO}Uns#3?URJqY^SkNlhYZR&BPrO~zb z3CT9k`$r4&Z`N#0RYAme=&n$M zZQMh)(8Ii2-!b?QSkr}$a8R^R!`4c|gBwwEz8}RYZoZ6(0&CNiVSEa7mk+Y#(-OS~ z82Gy@r%_^MLw6LdHk1zsizi7ol3tukeqrUmLn%E57dE>t<>%J_GM1+WMVrk`zSRFN z2@J&oNC3#Xnj=2?OnjvEprGH|Gjso$7_;5d2GbfY8P#= zZI42znYVq=RNV3C2;-KUuKNbJd}rc~y#6_oePsX~ud3Z(Um}2V19mEVC#ogZT7K4b zU~H{A`Lu3$N!)Y6s>De$RK8@5hI21nM|GP9<#XBw3Q=oNENJ%kuS$5z zft4bvZD(xrrQlL|j!Mb18XFAn+0mXP?Flpm03D|&H9 z2QiukKBzeXpO6r}xcBYZ@p_c6@-=*K)kNW?+5G)bx}e*`rGk-?GWc#DWoL}_1vQJGunvB-E|U_JyN)60Cryg z1qkss?e3K{po$=j9Sm=bLN+tvI(hQ%OW&0oXCFQeODl{wYnvIkr*xW~0wAgJmXXgtJXFF`;}8>Rsna=C*)3-L+c=gKaCx0wayjd_T}waY zWr4pVmREjFh-$5cGt8uo{(M(|M^8-;eszft#TJ%IibIMd?$*lex8-hkXDTZls z{UYgw@Z}fwIl5P|@L$5NIe=-tuvCbbhN-||=I@JJ(#J~xWlQrV1Qz%y11Ts3A$TO= zZkJO;CDI?2Y7BGoO9YBfbo}+V4~1K{^nxBYs0}v3$R0h~(1d}gjyNubw}*JJ8=uMl zMjMLokTvH%XffxSNKo?q`%u3h5u<%u5$yZSY{)b9)ho3ZvLA-Inv`!8Et8E=qr08K zjMoy!;DQ&TGo(LRek-f2*D~M?*w&tRExWxTB6#rk=Gz=GO3@&tY&1utkEw*qM2OF6 z0LE;+1ch2AvtGRNtj3|AA*aOzjaF+n{MzlX_SXk}QrEuOHzI(#d-E08IR-4)eO`ln zvp&1%98TSW9KK3|WhsTi1a`zsWfToF_avaLEFrVMWCTq$wf_2Q%SVCZ=N3M6#h?p; zHhvcAZ#B=zJT4-WRD;;k7~goz{C6bcs}5JazbamQ?0Zhy>60VXq5bfNwx^znVn+wW zQ<3lWz7McP1%|V@6nRZi z{{Hypr`mmX#k#5+upi54v0SCSuf`AJ7OR47%)8eeyh+18cZIaJwCpm9KgHguY}rcP zcU4uf_^XLEh6;s7BkuB3Dump1BC6k%oFG|~z* zjr=E)0am)mS#5|Ys!@zQD!NI9oX35AhahkUm!8cC*x4$kTd;VqpA!5tJ+KH0wEUcV zEXwDsQs8NW|N9K0-?c0*b} zJ(uV6wi?3k4If$;h+Z5=n#|KmajG>sY5Kh;ymXA!Ao1g+LHxByoQ!t8MTFp3e^esw z&5um1-X<Bu8}@Y`iyrNv^Fj^H@lvM z)f9g%@%ED<)CsmM<5ZFNanS3fSC*-Ju)^{5_0t3?G&=1_hG>~U96>*l>^A_EMZ|4m1(6SL{0qFOXPNnCpe*L z=PB?oMb2$OflY%e{rkvDo_^s1S5`4L$XEFx?72Oe9#JRt#?mr z!=SbKO*KBq^Ykx8tQ3#7oWJjNCBx5bZ^O^5KgZARjTGvGNu~_j32q5$hvDP?Sg4*F zOc}Qjcq(8^@sxWdq$eG91Mhh8ID$}pMgN4C1QPaT?8MZ3fm^orzyel7Ym7a$^6ngx zK6~gyUsnN!Wf}Xuj3)gB6FbAj=zsQ7WL)?67WhG91N_(W%+sWPKfU%0L|W|FC_Wh` zL=&{`QENC-d~zI=Ds=>ztr<+Q78mgT)O|pr_!NwbozWW>t++E3QR;XN`o-&4;>Ak= z&1Ig)epS4hj~I8#?)z7yKk%!N#cdBo#8*2dblVzW|ET{F#L02xPboR7&D{vE zlPTJFa0_VJ$(rg3m7yW1o=PjbVNENXZRgq|>d)D$M;#De|9ry-lH>H-SI3`91{A?% zFE!s+IJ+RcQw*X^)71>2*7cS?{-idU_5J5J%RhR<)}a5m+KKHrIXdHN_c7_WS$iNX z_pMTjaT5ab;t!g=ULCp_yDw)g0qx!RZd)&(Tzc!#hSh+P{@VXIU$ZjWL*Epqs`Vl| zO6w28Zuq7wgEI{b2!cZjYcM_SCpI|CH&?Uj^&i#_Q=VF`PHlb5eqnmDu5(5&MP+H* z?C0puN4-pLxB*L_MK*eEvz2W#uX#*f^0i)hL=Kk0Hrg%bCR;*N6@KJx;#%k{coc|T zc>dc*?Jnz+L|-9jO`@~3&1PIp=-DZvjTnOrV$trN+3xSn)m-%!Y{%L)1ihkq*Fwi! zV$uF{=DwX*3#xA$oWZC{;;O~wzB0TstDLI7QCrJ_w%yosrceKV>b?n4ROluAvNajK z=c(ed8`w!XXP5eOXFZm){r#L-tvKYKA#BnJ5#&ifakh3F+3r$D_T8W&3&jngNi&=x z&7DW*euz;>QoXRpHGLtVj?HaYQigzm&<4k12>(|z2M%9jposHt1fl}Hm<-D{5${5BfP5sSl_01A7VSz7Z6 z4?0!*sOmxj|9qW8WqNGG|^iCqMO zmqJ!@cH~VW_hUZ%RB0`RUkB0_OzXM`I-qS{Z(Z6IP1@_D0I<`+4=^e85xKJRkNTGZ z%#M5q`_7ZfaZ82?PO6Z*H7Q?5r*(bdQs;#+>uu3xs_E%^Nt51K*3t&z*x|U8k%0Tp zRE{jSjYRB^N^bbQ;pwMJ$wED-#KT%i0Tc?CCnkc-mKk;QpWl zC$w}ZM?)(%eL#^8Uz?_=f=udWGI`(mi^Cp{6(JDNy^lY}q=%&YhEsCVHjuFcrz^>d z!?;Y%3&dhqgEul+a3~36wf-W*GBS9gSc0#ErZ&FQ!%gzzdaa$tUCH39ufpJS%IEXI zGT>tKfw6(INEt?=A9)Bpd$5gujp(!{^+WtGp?0*KQGzTABCtwNMd3K3jLG(^Cy!;0!&08B0b2qSLi)^GDv9 z==`8vw2!bX_O9LY_$Axh!&|?)OSB4P{RLgOMN-bHN$_53;er=OvC&b*`N@b;LpjH$ z@H$< zHJ$|#6}OI@$cf!k`&7x#-y$T*5!vLu`O#G@bG0--CAeVnoG0PlTr?^5dJ({>>8gv@wT0R}Y2k=EciaN$siN zBHx1$ogXPz`o+LvOgdc7BZPrY#aZ@yU}H;;)wpj&3+C_4NC-iRzo3GhY*pJ=aN0S2 z!7qljbxrcm7LR{O0q3=HsnH_l+Nje~e$5w;n;> ze9pfO)3AT<*pWI8sH@>dwHtD_0G#U(6=Z7V*_>pW+K6Li5{S;sJI<01E2S(#5?W%V z)!0(wNK!PGV(5HpyJ_pwy32YRwlyNf@8y>}eOHM2eaTbN98#1?EOA6f*!ndYgTFj~ z^Ir5-Ohb=19VvECx#{V)3~`2Db4?nFvd*_S@G0x}qw5JbNDD2awXT<=*@!47MuoD@ zBga*PyRr?jq;gw_?ucLdx$3v|1Ln=-np}G5dBn)f4Ux$slalL`&Nkl9aT!HPHVu0Y zyANr(rmnqV`8sq2OSC-|h^O>yH=-6VYM&eccksW7RZ+-;!-DCTJJUS&X_g!-%VC*+ ztIZojHb651X(iJuw3QW-I{OP{Y%&gCc^108nT6)FxLo5;3ASQNXO{SSjAJVO;KjkYlb7 zt^1L%q6v?`C5Qc2a%nUzqqw_Y237=oRK>|St4LM>q{+-U$4FLwXG8hMb94(fDWBy^ zCekqs6?jUgyEye}V(TQ!%8`gan^+os@aS;Jjah z#C%}6nU(Kg<;T2LElZM6j>C+I|HXKlrNqDLko;+vrQ*v(x`$POW6EV6)E&axqgdqhs}FM*3OTg^AvCEz>iq#>Mu5u z86u0O>so_SgGuXo{)Bsmc^zz>4On;849yL)=Ow4#mdB{na?9klos64%Yv((4#ZoC& zLFo-?a;;-#fhnC;GD4-$%Nr$=CGoiRvapf%F3;7OA&kxi&T}f7%nWQmIQA4IUFzm` zEdAkhb>03W-tG_i((7%^z(3W$c{FNq8@sAgwAB+Z+PKpF%IE#6Qw;2wwubUvzrBu- zmty3M3y{g?*LFRxaK`KI(`s8T7I!@_y7dfSeS+WUe$vsRoi?Tp=36!n)8f!Y8-rg= z94Ecm(N<@^r*>9+j(=jm`%C+qQsE`}ndiF1{hRb{O^cd8e=yagaoiMK$je!>P$gN% zH_Y~sV~rA(+Nii4{1>)$@|_HERf@-v!29x`rDsi&%AEn0%71viys72s)EC?3?o#v3 zOs4l-e9$rg&an!ah+-_G+4Wz;{8cMD$T8Uq%opgm(VTK^2>cCdwf$YzK}y&z_vee~ zP}RBFzjzSGrRSQ;o2(9ZvFe>X`%ixvD}IUv2OzXCOVEPUIlq|U@V}-ZuOrFd-x0Mo z*UlxF-N(=-CesS~e_{;d-TKQxpzbJaA)t!pm0IXdi82vXVID9AztL9aP1P4Y-l2KUFulF#($}u(3 z2K_u;XqH4Ln-1|=n)G*dg4*q#F8G(Z#<3f=8GDI>8SQbio-FSCw?g#t?;4coy}|4}SuX6{saz1WXnXV3-;e)Es2a_8wrVJk zXR^?mhMcEbBcJ%4oM#eaXSM97tG(I}Uo2sNnGlB!O~toG_Iu7YMZWICoGJyqeM zFPpTpZ5l0Xvur+<8xWsm==!=MA847=<)}k{`BR_$;*S0Iw0|qniy7Nxt|9ZqN_tV1 zTmd!Z>Pd-CH}8*RY@l2^%MU%z$P=!OMHrQeJB{D_UX7Q)IXs&NE-4<;_1LkSFJU6x&J2RGv zUA6?Tti6v>+J+{dtU2wRdnR5DzxIgghkSuW zZPRsq&dn3L6BOZa*mU1zVUNB<$)3ZEk%u6e`fTM0BeSZGb;6T+= zU&cLM00rV}08{ihTIt;g_GsT=dW`VR80|;?*Gy!Do0`z=Ezo}{o5j+b`1`H+f^4GbgI+Ea9K9V1oz7)9M+MTN z_)Qrld{$8`5&9Wp7A*gicoBcan*hHy^Al;&l4O+JH}^2*XqV@9!gu{Li?Q>^&jm~-1(2@~~A>Dl&ri(yJ zqD)lR{bjGL2iruEiY}g4wh)yr+w2*EW#DnvwZmo(nLTGMM^KbnfiH4H<;L--Ercg2 zUddmgYjMtaars8TUn##@xN>pE?X!WbZ3i!q1XxyS&%7+~qR30eoKRNVOJQ4g3B5!&i<|v1+IgK7!Y{lXe9Gf)|CYfW0v*Dh zG%m2jNgh>9seviCo-_aXCuOT6B-^(1Y&)~Nc`I~;r{h&Jo;3(XoYak3r~CEe?r59DNo=rx zoKXxrgJ{qnpZo;L4)bw5V~y|f(LX+G&beMmC!@k%kvz>n4~qRUl2T z!0W5(yYBlYC@CH$mh?;um@EG1Z+Q0Gc>}=@)I>)Tp4@&46q(~Iya=oQ@_D1pIrE_r zI=3^YPBiH=aQkqYc@aY>+o&?15cLL?yby4{OORM{ls)IHa+1GMgBk30@T2j#;o+7~ z8sRkK)+5x%zw_++Tx`o8F^BEKbs}~b6U6e_jn4~ zzt8q#cIB1^>a0@Bc}hec*Ql>-;{4%}exitc5Fd0P&HA&-bVQoNQ;SG8GFv%M&sK)Y zzn}hvTg3J2ys9cn6VCsnUhPO`Y@anLI73y7FYy#dMmT1%dW8ln^Y)fao&3fbITSWz za@LIBo>V929J{k!lnv)NRmILH>g?@$7AgJfUyZj~d)Ki3Mqg?$AiIts+jh~01{`1x zI*^e7#nNOaItha;1=!+_GnVXs5)|n3spw8L0%6-e2+=vEjLdc}$g;F|-W;cI3kz$DdO@&>V+CaDgw%6rG zIGSLbq;1V{Lo&9G>_=MNxKmvCbEXPzyyJe00Q}yCkW)GkByeyiEj;3tG1-Hd4JJaF zfk3!p7Ae`g4e^Wbak1?Tw|fF8_MT(j5oSZLmd{{7Pm2KyZsBU$iNPKp0~)t4O|IFR zj+1uKX;VMW2X>xVEAEsIY4d(Oo`gR%jrV=LH`;>Vk$%x_rju9kBhR=^cP-yct*11| zv)$W~^3E5+6u&V(q`203A87{Pie>U{d@t~1+`JXzD&9w)3%no8yWr!x_#Wxuawu8w zg73!T4dKRK!LMTY;`j01-0{9=295MnnxpDukvC)O4RNJ<08N(H6c1^|GjT__@#@`s z_OqjI3+*$?!RndUy<+|0euH>ZsH@}Evtpd&kC{g+i*@h~K3cg`XU4XdVm*rcln+}h z8azww)_7Tz6~%HX#$Vu#*?`cwrmM*3Zd*?6aBP{coA%zR%BGaDQ(c>OU?1^MopO@4 z-DWGzdFxF}x6#bgsok7l&7pa;cMjQ0@}T8yzR24R;ynx4T7F1hv>D>f*@6 zyYSQ{_OEYeECBN^B~OQD6h{@skwpQ&S;(%XvDk!*}s5Zt$|`XZ&t7#le82AMG;SEduaUDE!uLI4-QLGh{G; zMv1vuwk|VO4fmlV8Y{`y_Z;6ak4qZKHFbWRch7!pCMlEpI;GueO6>-Qpc{VKtOcvY zINGJDmKwc%AS`|6n^U^D&|zt#fkM3>X%jA`ZL7{aPVdp0wuf`vb~&-n2!!dTwY zw-!glwJtZ(3>u1Z( zrZkLJu3EX?_3DQ2$r6u`^2KbYp_YiVrcS3Kb*k#1RYXyPQXmvIHn{RdyV0GPj)^XS zs+|D6jg`je(s}j4;{9Uk8%|BPPqo1~r=7d<006-$&26rZ52RSzz+jdigG0}7V$KJg zdn0P{&&J~b$_T?;J_z)ks!(V&)ox^V0zBZeTCb~8?*Vu~D1+_*ptyipKrQ!xUI(%P zs2i#SrW?!vcv`MB0qpk{roJ2SrydigTc49+WnIsN4SF~OV5_aR(nmh>5uI_y8AczO zkNAo%-|%eTa}s*6mnEajvS}6@(#vhb+XM;^*)aI$d1D*|>CYxPUY|mL9MQfVGwz zVVIOoV2%lDfQJKqCaIy>1**AgrHw{2(r#HNX=xY03vt2^pZxB*MLv-xhsV=7b~-GA z_G8-H0Am9~O*`Qj%6v#d{+KKWczT$~gTB6K6NsyBY-}u6KMd@E011z;RhfZ`_BD69B~-$Qr+P`cv-w36-WA}7>;C<6){lHb{zc9^>-P>#3Jl zvaGKPuMZBUd*z>G3i+kein`His?*9$6U`~(R&Ntepo`WBt+ZW>*IH-PAJTx9 zER~B7o;>a(6D?od)5*YV26E>4hDMwc$6Z%%hgs*Z6VKy zC&@R`rTW<{pHII7YUzBbt2R4pXvcL(UVq0Rd~%Y)jB>+&U0v1$^EdpSW`=xLgmT1I z7+}}71KU^kJm-Gpx$%wXm~|uH@Y4ntC|45r z-y$^p8(de%mCWNwEK^JLsjyTrhTg<%STGJ%&&PuWcB&U^kub8ldFV>vU zKm+=H#>~n)fzp8Ql$WaooF|@d8+N6b85E?tnD~-ou3;T=%Kw1TK5MYW8n7Yi_Oc*dp=2{#8(DDQD1Mr!t z%UW&aHi?HU!o;PnYOSGaR#zF&KRm3#fdR3o6_6VM6yS>=?*k0GiHr{#STNscZ~$D* zX9mzGB*5=GGWx&)nueZ{YX3ZMm@=e5#nUbZQW+4FIb{PmYF?pPg93Rhk$_HO1rH}N2-}UEVj33 zsxd|I21&wnkYm%Ec+Xx}T&Mu#o65|r1CX7j_!;vU$YKV=^}VJv>;ljj%%s%f%KTU?j08HR5xzXk9b$ani<23-ciaP51y+@d%QH&UeV7onQ~1#W;w z)*W*Hw_bd2xXVr!O_pM*GDUg;Y~mRVH7b4ThUP>JOhBupY{R(_w^B`RZaKQ7t^;BE`fdrs)+#sx@=&>_g-c`_sG2ieY3si-s+!& zd+gXvOPAVkW;6rv8TfXT+nQC%fePk8&k`tRkOb+B!!;UHd$P3R-nDde#Qdh7e40MK z)jw!X0REhGQ(VMXxKF6_-P0+4XN-u7(@`hUY;_IIK7%IO40R8Z(zga6?9m5H@WJY% zD+d0X{HN38}Xj&5IGt!Jv|xoUalyY!5V zba$Hp)Ds_WX!y~<^NibQxSM6H13<%Hv%Ue5K^-$dkM%-9!;hc&7iculod7?8o3vv0 z9qt)u#DD`AKfpJ#>5e<@(01ExX9ryUm;dr#?5u$Q^q>BdZ4EkY+O+PsfcyaZVQWu5 zxX`d0U925SGZ=&+-AF%N(jOY~-G>GS)@bFbr5YR>P_3G)Qf{h$&4>mENUKjnLkv)S zkP-tIT;d2?$Y;!$Km)%m9PnEnyMLm>c0CF=0gByg>{A2`$!t=vAgRMYg^R~-Fa)5r z82`o^Q1@ku=Wl%`O}(%RAtjY27mU`Ka5MB27VT# zo3;hFYHRsV9g-zKrWtrC`mBP1_OUc|Y5N=a@@~8=@U6&m%581Fh33lJXOy$om8gx* zyJ!XEE$(sS7uCV)U6ezrE4`Y{;449~?!dsGGoQz^+~ETaW{{PX;KuU=jJ+@ujw4$p zYutrCqdzIW`6MnIyrfQO$|+N|^)?^ZTVc|J=D(P+xc5q6?~3VIxfbG%XKSn7rs1<9 zL4X5%Ub>kPLXLq2BoQ|}blxYL3p|QE1X-#2^)k&1ez*iKy5a93Cj4K^it!})1J8T_ zjtK{w2H1Kl(>5f=+4z&f0@QK2hLw5)Gu)l*Dtj4<~xtnb?Zik26z`(1vG;+qFFZFXuSu9&9Axcq`=aRKJX<01K{D2fBT zlytZJ;U&DKTx<}RcouQBfP7>}-=cxTTNnf?fy6W~0vH*kn2r=|w*f&$wLB0l+3LqbGrX zfHL&r^1JP}+w}R*e_q>eyRBU;+C|&X^QS)bDShG-pU{#eORW9_`U7Aan9m)|lZT+I zNDujrbd08it&FD3!8-2&>v;wb@XJ-LViLqa#Rm+e%T=q_%$7d}4Wva}SslLh2HT{y zg#msmt8xDX!*TfqBdC1EA3}@}gafG2E%qP*A@SQBehzq`l!6}nBY)B0;$85>!W)i< z7l1F;yU|eSLP!6MLm-p*rKFJUIjiyc7QoDwgavN;y@QU4b>E{Cz!C$VtcHF4Xg-oB z8l>tyf2(JhXXL?u*Nj=mY4ytSG3>JVjc))91Wkdz>`$DtQ;GAA6ue%>O%Lpw8A348 zY#cp|nM@qvyHr^dM!7N5n%w1fVilWmfG6n^df%0cO($k zdimz+P#9K82=owSK@I3QazZhr+=Z9tccf><8`0q=y1K3f7+nvnPDBLcm~STNub8z|1JVG1nGxoQB&uM!R#&sZ9PjAN zpsDTdFp>tA))psdekaLVn*-h^ylo&ezzJM{O0>)TvU*juO1b+nAQkhH0Jiah@4;N< zQdv!A1lnx}tu-|GK6oHK)&LL=P>w&^ZNgIr(dd&tKR_`y?m<)3ExzGbq#XbrgAV8l zkRHI9*$3ib@NwXQ2iij2I8m2VZvX!8|6YIhcYkN6OY@ADpFslO5nl`-0N^}>nMfa6 za2cGC7Wce|f0z$p%a0ij_t@X}^9l}iTlNsoN6h}X&}20N|R<_`Eri=$reI#$XCaPUzc6%i)$qp+4OTc+hJR%q#p zmFgQ9RNio)6`DrZ?RcD2IRAy49w(BMNV7_xge(=41u4syFSmwB<)hM30U4?Cu9;41 z!#^4d0IS*PsFC^Z7VTzD1O3aibn)9-)8D7TMoV=tZzb32m8-OD(IS-xOKRp)&UaKk zG=|A8nPvzOz@4a9^u^Hajg{HyT$SM=Em`=E7A>5oS~D}dW{SPsH=5Nyq9QAdY(i zpvfQ0%tX9JnLs9C;~R4e_+x{fi{BG}%9BMJg-Ap}lWE!kfjw<%2tDdmrBc(1nihq(+cov~uhejY>e^5Vl^|vL(y3YWYgL4}e-39M;me7n;zF zfg0&G(loJabUBd3fj{&I?>C4Ko0M+};FDhisBS+`Yhgh*Om8+bty!~LYf5F+A(%a8 zDg#=zVu_Y4UZ9amH66Z2yX%2i)2tFbeyJ@wh|g6W?9=KseQIK3YNj+zHLC;a>szBz zsUjBe8gGmyDjd5Rp=PrPZ4l-60hSXmU|^NB;=~a5xLm%!zIWPFPMM;ux7k{A<~ZO- zHii5NmooMNk;6{t=U*{y?u!=-lsz1GOl`As7*py)R`;lbjf(HH-(sJAs}Me08T3Yc z>w30!nc8o+JrpZbiq_i3c>dn7`8(l$WGhI9k3RE5(NhmTxryl z*UIW27*L)!RIfEu87Zk+DQn511zNCRfdO91-T-!`YGyXX%QNxvjsb+@kf!QcRegP{ zwR-g$HFC^*IORFl;NTjqT(L@n10!lQm?iN2?~8p*S8gCB6Zog!0Q(hf=EMFSoBG9z z7aKr+@x>SQo$q`{pZUyZY=<6P_Tc~T|NXyf#~pXnPCME5BSR|w zrI%i+zyHYJYu8=Btl$6s_tq$_f--$(*nxnn! z7*M$R>YMbZeC(`LdN(5)Dqvvt4YwqxTNqONdg6l7hp<`{4Qq;Rc3g zfgajtOh6iyvaUGmm-_1VpVB{l{A0TKx@$DhYN@YpP{;rH2z}|(J7~Y%zpWRad)`L& z^*mF9X>9`$01+Q-!jy*|dPuwMvWvF;#~pOc8CPm$rK7%8{W{_BpJ>NVY@?k%|3y9U z%v&m9)sL_OTNyWf@X+gp6Vr-}3?@=`$=~`{s%=D);@V(`@8bK2Km72=FWg`r?;$;b zf7%jl5J5a`+JpN1=Rc>Ncl?}=I{qZBYBV&^%Jj?=f6=$U^#%Rg@u!*<2QwVDlMC8< zrj649EZ1Ipt+xB*KWXRB?5K+`xX{eVRxDhi6AnF6pZs4R)3?91yPkUDNlOn65O$BY z1*B;@SdZbm^Y}mrNVkc8!6V%D^37Dr4x)`HROV^h$TkZkv4#=l`KoeszvkR5Dvj;{Yp7bpzJPVltD;=zQ88l~*m)7UHatVKONJEdltEb1cGd+S-!wY4=o#)mHWxz0tQ=`zn@mY6Ip!_CCT9 z1Meo_FUSI?+fGxoLry_%vjuFfTQ5FcpZw^@^w5k~^v?2S`rg6c*XMTn2krXR9kkU} z+vqn}TyFv^%zUVXwExN9=Es4k9jjg-n-wS1B8yX#i%z0ddbfh+IpV>jz{pki{q9v-n>c>wL@ za$SQ%b*)&rN;6-bp%YFxN;~fGPdfPE1NFum@2Fft@j9TvAz!G=_cjnKm2B`pobFYhpU0kfTK~Go zUiOGq(6mD=I7<2{i?a(4Ca~Z#&5VO9Pz(Sy_O(a^Bx_rQY=)OFWgqZu<^)Yt#{ zUoF4$=f0`$es^EJ{Q6wWA=*CEsL}zl=mtCWc1yFLd02~HebT=9(NRb1^xywk^B48$ z@O{3g*)Ps8|L^R%zkYw+9maM*33i-tk&eUc(OsDtrnzonK|@Wzc5L7Hzx&xsoCRqP zxKU=VT)IRvpO|hS=eegI*3P@{s+X26(s92$Q>UH!OUw7o*Zfxd|KNvuYw1eg?H%)h zt~r69ic6jR)1R(OU`hJIzaFG#Ut6I|FS=Am9(;hs^Xkmk^|`NoPkkBbqa9$t5VhE% zv~X5Xya@16yr+5^;Pwx#6DK7)1DdQFG?U_ZU}_8eXL+dt|@2Onkrw_f)L?YlSrOYE7g-Po4h)>#1l z0sc0c-NXQ7gZbv$a=M{8_UmZ$(MGd<9s5CdH0!k)y8fDrb>)@6(B(J$QS)mp^;b%I z=Ak=PTK&4DA${Y!`{|Nf9yE}}KFzk9MOs@znb|CfIvS~j%}tU303ZNKL_t*fE;#qz zc$MzG@i#j0^fUDEOK+OITt0ucuDRqSU3J+nbn3ak(J%lH3MfNcfSGn(F-3|McBv?@<=TB(3K4`N6pZnr2di05>jSf2-z~q#J`SIg& zUnClL{Jfv>cGhjE(LUDY@@cVtSWFY^k2Miw2J**DK;49b{jHY1@wiU;!EXBD5BAgD zGiTY*FQ{*3Yjo66$LOZNK44yrESY{7;CDq*gq?IJJ_o$*JDvgzqq#-_gV{}`mT9Ck zqI>T6iynFKZe4ikg?jd-m+ert#S7=_p1bd{48AdIw!X6KS8N8LmH;x!oEQKAmNB^@ zE$SMkEZ1K1TU~$cB|7iiGc;%3B2^kqJ^9?Dy5Pbyb-_8m)U7w)VBxWA=Ud_`(rR(p z45iZ^bYsE6pdw6g0;mJN@dGS}6$qdlAdNl$Nhh6Tv&Y!R6BfV^&<@bfcNQ1QzBKCq z*k|w(E@7aHZ-|$l@igt5&labcG_qhhYqm9K;R2oVtJ8GNpZ{QCFS_(%9eu(n#-l8D z0)lU}(RSO?5AaXAloOyI@K3s12H-a-8>k1jCrLx0fcyGub2Rmoll9m$ck0B`{!Qh2 z%?>cA*GAO0W`*|M{|CC^=39)JY$*lsLo?(jF%mCAKH_#^Z>2EN{upUga;r_`LQ+Lb zmMqe<&p)GMjyp=P%z8n0-Tk1xy7QizH+P<1e*Q^acFASB>$%r$`^^k{eFF_mwX?RJ zUDK+R)EZisrl>Z}DAUm$b@EIj{fo6=!F*kF?Ik+(>=QMoZ-IV# z)>*n~`eSM|bG3)NpC_>y~`aF}C8Q+rzyEid#PW#N~ZMEwFSQax?RT@~N6HYu{SKantN_Lf| z-*L50KjT+!C6eXp0Q%YLjqS~HKU~VR&FzNXobiNCJN|Gz@$__Ee#70m{LlB9fP3|+ zyLIRff2=#EJ@3M`h7g4?1fwrPHLzv_pvcSy<^25xilo-!TWo&=Xl9VewyfBC*35K* z)0BM^(VFhP_iSBw-33|&7gKz#Y?bP@g*y1?V|C4gPgvDJ*eeZ|oS6>X7=Y5W^9nGY z)2;jUqoaPJhi5)-XG$>0kXGp7+b`2mXPl)KE%uA@at080&(bin4hp|_p%?+?_M%<-oLmX(9+rUPea`K7VdaI9W&RcI7f7y52cix~A_lrZt>_Dz`sxZ%_!@puW z?$h&!4x`5g-_jp$xmm}YIaMQhStG4s9e?f=oqFM~t)4Iw6y{VxZ{#N04g^LqzQ4+_ z8GN0prO6U@I$^KYR!7zTw{_!PRXswyS$E3vMQ@f%Him`TEyy?yeQ9R%y6avGxW44ZHdP+NOCQ8Bql=+$rhJnRjUF)SqbSNJ$F^ht*VF zrOF~*cFBpl;ZGM?3Yftl?*ibDr8npf7uvZ9ANeXihd*>f7jf^o=bpOw;*0IsXRUo< zY}n}&PdELv1t;$;EdYG7-;WstwD{ze0RX_C0YfBp}lT{GFEOFP*J@zrUOQXeh7hpwoV>o1cAIo%WDwE1uVnPB>BbzP;EEA!CNX^Xl~m zlL0iGwfcx!?Lpms#|@ft+Bss~@1g|@_06w+QQz8aSN-!>zN#H|{F>gHzdG&8;xHeoY^KPOliICJ ztqk*#LEZnr%{q3<2^y$N)n=|nb)Fu$$CmL2edZKG@1P`+Tey7`LOEQke$5v zr{7~6L4ZnxsG*B<|%WnRQjydlft;tF%x68WZx=S_XoYQRZ zR4qd{ZPo`2uFEF|D;0B7OZIT71qDD@t8I)|?qmI;9sg}LY?FR9N_J6SYS>t}^yIxa z>4x8)qUyjaI{UZh>e}g#7#+6fdabG{NB&fQ_`~()SE<$2s&fFB%TSwyw>q;)NuP{- zBXWTHUAzFX09Y=5SzcFlc#Zm3y`v+KJy= zJY0YL`+NrNkwYt}Q5>ZgYvrMsV=ZN>zQ9!4c?^(|STLw<6&uKMc(s@tJlK1F9>CctPH7@G3UK?Ky`KLLIQ zUJM^~RPAIMYLBSisVD~|46e{KkKd<#_uNxYJ@cA=a@wW(^OG-GZ}<$2puuMDO09sYj){L`|#7Dj_R}%;E2wgZ+O3< zKiZ3R{E{xc^>!Wpt6yuV!K{gN+F2*-sy|)nZPdX2hR3_1>2J2-UG-Kf>Y=9}(7<4yM*4@X%pbh(e*OA_ z^HrtIA$IExjg(3nG+TAw;f8o=_hw^XE}MqGlMiX;zu%#gPd-F*RxQ+$kwKNJRgILE z>H6z_rF-vjGZ*&!FUpIc)!bHF^;+HH1q`#W6;m88?(stljx53yCf=igXM+=fI5zw& z)SWtYs@?Mq7r;DDwdFbDjCcY4VMEVMMwkvkEAbPaw8=By*zCrzAG|d(QnHN~o|`pC z$Debl9(n%X4In-6$elXzSEuUDMe~Je6yFesnemjEA@Do^^l5LnG04~g0DlPQB$>#e z*!2rZmH zUn`a^)9u$@t?%x=zgCrV-$BEGelmfmqiJm`tC#iqE6?ebmuJ{6E61HMRVSQ$o*sJe zF&+NH{dE7GH`^kUqfb0lr=0tH4b;;Jnlb{#fBK$kaPh-p`uJOVUXZ3?w*9!1 zouVz$YUqvU9@h82{m;7Y&cABOsx=xI98$A3s5L8J)6IXrScgwNT?%5Y4td;htsMJ@Sm)$x8AC-OAm?~_%Qm4z1=N-8zqfRW!=xD&*1xsmuKk9dwfgt z-0Q>-zzBPTi z|}* zUVMnjErMx)s{vU~#BJsp7#h)<{x#}bu~75gdPzqdbCB+zeuq}BSgQV&efq=iey{KC z|2-{OyiluFtWEPqG$-T8YR`LhG``r<`e)Yq@! z(vaSsJ5!flJVk%F>H-aq40rAK0kr&z^x_BL1z>Xlh;2||i)4o_T?QKb2v;x4+fCU;nxeKlmrw7IX|V;z6HR#Cf=8{qXm+O^$Xj1a)b%F)YbBK);+38o)r5+Ticd4>+$cMpAk z&poyG9{cI|sb{ONRMT@aW@yjv?4kX>|9ySso8Qr6FU+#NOqdx`6Il){56P{027JqLdj5fHs<Xq~Kop0`>&+qgJ z{o>4D=%+^=sabR0usz)O-gkHHd*D7g_{bx4$D@ziOw~w>U80!oYh%K1G6M5Fw*jYx z^COiH?gtG4E};mM7Y<@$rykR!Nm{=29sTCKQ?=U{KCNxH`>cL`!PQzbFrecP-b-75 z~@4mkKQJvrkw+Zn4_!>lY9Yfx;LBzS6~VUo8+E>84& z+H72nX2ZZO;JLrQPyK_w*Z!jq-J>H8{eiaMaa(=m8(-94ZvL|t&0nOCeSB+u>s#N_ ziANu+Urs$u^A;}9s=*LzO9OewJ!UFbTz0O$@%8Pr^~e8CKRomp zz53S>5!PKihW zv>i_?xK>}zXE zymWG`HFg#~azuJts%M({_>=m}^?%W;^Opzv|d! zG~k+90n$DZMR7rBxK5@uz7PHnS}7-pjxNt!C@h=*w(h(0EdDz%r241N;#THwEju8_f6OhY`^zH_8}* zkL|P{f;3#KYRRg_diCw6_0%hm>UVejNq>0oFM4J99IbAy)Xfk6Mh`!8ukM-glzw~n zZ5n7aRcSReXZ2#STmP^IHEY=mdj8Fa_0-GLbmi@r>6&|P(EK%P)K?qO)2~0Io9?_` zkG=7{mez;WuUr)t-81MwL&?EP%(|d)G{r!`>@fqX4Q9l947d)ySsACYwi9yMnF%?D zi{_!z(O~~_J@vp{dhGst^}r*~=%E+i&~iH5#c%29Cm+(ycigV)Zo5;jy|Y+ZQgqm? z5@{Bm0sbvCukE&GzxJ%|xa}%E^~`kLbKl*116qBYQS#;9+N|CKrp2C$Z9=y&oteA$HSI> zx!F*uRre*p1^`^YZ!bU0f2Xk)WviL16Ub#xGR#Sbe7iqzw zB^s)*jjo|6TPTl7ED8{BZPDgF%#7W<@*ZuMc1xQ@6K|lEg{S3;EgpSm?i;%6_8ax! z^xJjk1GnkrmtN4o>VD09pi zoWaEMWy|#VqtkTvUDs>+^!s)H!%u3(njx)Txmfq#`&UhycBk&V>lQur^ixI)_%1+u z$d{t5!OsQ-^~^v!i&_E2d_%a1_y`IwwtR|s;$!VGoI5;H{PY!XJg9K&09rRm1unz7ZrWIwk*h zf+xmdXu5;k5vem^4<;^1F#QlhwY)7hmhpwZV*qKyVf;*kChm*R(9W}I)O;u$t|lCa~?QL^ZOU*fjN)s z*AHBzH#XmJKb}?;rY|PP_4Ry*>PnI6|+Ux74(K)&ZO>+6B0RNCJEmn7=6*vyQmEm>gvK z;YJLhbDyoWmsF^V)atc8sIMACU0WCJr{hK)MmtAVO(57pUPKwQZnjI0>9@VZVwiy@ zR<;qR*AhOhv~tzhMpZR66X-`?8vjDrt|M>Z9iXAu2~*GcZECY94(|cz)KSyUx7f9; zVL%zM3=qc!L<8t?0pXwi^ruZu#UWXQ!G<4@ZCd(tXeseVdX`4ZX9!G#pBDKNo^-f~ zzk7A};U7_@R8zCoR;^r9d1ydocEDm8O{1++X;78&utrk&?)M`j#)~jB0`$XU1|7kN z%^dJY74Xg{b#W$ET=*dA=`8&a8}#*rp|j#pBnAMspEKL_A)o+cR5RN{8vKN&pMM-X zLWRYrm}XSJiRBuFCUAY{8#7VDq=W{@k%L%%sz-MHOU0S9Fjfn04ax6HKIfVg^%|pX)waI`od*`S6(&(sJ zb(_2*Ds38QLQ~jH(`IN>=uiQw z7vJ(5opRmjy5+??^w*be*OcE+(I2K?qem7_*HKp;rStB*K#$COM5kXnRae|~p`M)k zn67^CcRKghbM(L)59`utztPXHI#zeSaI0>7=0+X;yAyTG%sX|53qJYtOjY6o9@Yg+YIUCnw; zE!Nm%O;z)T?bDpKTdL$u)tXIJ&@5rfV=~O^Epa37Z~X&xlvPJ- z+is|u)l@H!s8JqKE6>FK^=w&?o0(BVt+ty(Mdu%~;a&5XDr0npd{2kSZ<7Ola_|3L zt~EQ#hDvHwGn={eKEYeZ<{;nSjn^CPeelfsl2C~G3|X^P6&Hsq0bs1X+fFMD)A)M7 z0XR(3Cgg&NspPlO2%U^*Q*ywtQPhF7xYjHtGG8`PTB zed3TVa0r@pHVm-+=1~>`eoG|-`lN$qJV1A=$)eYas`aueIrXZo7F%UjD`u)vDtp}v z0B@!%X>WgIOMqP5kT>{qk(S-JTSgP$zPNA}5RJwi&hB-2wSM&~r|gcH*$?r> z%t5%s!F_1=!F|v`o;P#AzrJc7@Fqr_JcsbH?$00Nwu_FEhlS;vxYD-~$NG|M~h$~}22-otZS zqf7%c`+xX_fC0oYob>t>Mq|J;cxEMG!qYfxTa-rVl=K9tRU1M^mwT@DGd?lH<1;

    $U@Ysb11s3+8BWgxMzl0ruHnow`c(a}7V{SPbK-{mxxV<%9i2DZ?yG zzkD5%k;h1!Y2)tfn44KR>513YAyZcwT=fQc+>Z}cReZPO=b(ukH;G1Ftes|7UJE2sKj$Q}MmnWZmvbNfaMZ2u~A*)FNlR$>akMvzJ zo_9|*g^21{Y`le!!`teDh4ord2=bx5jiE5EDZ^}->_R*E26IgAS^e>{b)fHkg|{*< zgh|eBo>d9#z%PKLfo2mxh$Z@XwB~g+TA6C?nvmtRV`hIkwC6NXu)4x#7>(RbO_JuH z_yMT#o^$})n2MRj0dfKDJZ3XlZZiPP0swfq0J&y9Ge*NsyaBv1ZOQV?6rT({YRpb_ z+V(xb9T3jom2`0d{kU9T{pweB)>&s6z~?!@HDL+IfPu6C*ZARvtPA-C9efuTdF7jU zANNi(?Z`0_`G?iWY4XXSh%mt`?(vJk1pKiyGCzjd;lL9H-d!{8z{o3@ z;aQXHG(2WX7&#{p1&C$qQ(FzmZZeoa`9Q$&iZ?b(&pHDm$|`Rc==X}p{U-n?qh!Oi zx?zJB_pt_=>QTId$Gr7{kavJ?jsq~F@iJIq9YmV)OD=;YGaEx-rm0XGcGNgPSdk86 zPk7+2>*7@kXJr`AsR+8?Sq3cDjrJ!fwl-vg9O@r+4?)#Zt>#1A<}72bb(hpx+ix<8Si7 zXI*S_0-FW(84s(+2Cf14(9@gcqAa{jy-rgG@OMLg5zfnFG~f>n|66apWl?QRz+X(4 zdwaGv;P>W7E>k|p@8qw?0jqyj3ursk2?{;R-T4;%3H39;h4VVX`8T~-C+{{V4tQC5 zS%>x*KnZ|uAZNP+J)Se=t;_(Zwc`Q^9vm7nkc~gTh?hD8*hWiEocQC%0Kfn)=Cf?R zz~1-?wBrwWhYkQPfR}iwi^VJAvUCs(7Lsa!9qZu`%35L{h(tD#2QPiU>D(^#>; z94WJKDmRdiunpnO_K#lYd$UY{U8Bet3w$jW=6lNIMh*-?(HKkxZ-XPN4~6y{&t1_( z_2V-G{9Y|lnvq8?hMBlXFgHvj|11f1Lq%6<@Hf3RhPZ5icgCG?Au(0RD9;ULLUg9M z#Ovkao#!Uk@Q)#~NDKGH=P^MiAG;h#1#cC=?}KlYW$-cjnRpj&H=4qQ(BP1n>Qw7&HR-s(Ol7!OgbIL<`sDqo zFBBdNY~vZ=OIm2vsegPM@}+nmb(4Vty8vOr!;d^cC-HGle7Mk!A9S+Q(D~<|Z(yEx zT*Mb39J3$N;#=avjkIwIOFYm>ob*$q&l-TZ;u)90Nb#94_%Tp{Pu$~2n7Cp_!e%j8 zr%+hP3=RCYV8Fk&fa>;Emi2Z0DSlVzfTO4Dy6gIW;`m1)7b{)}XQ=GGcda16fxf+q z%e%cgJc((1M#795X;=WN@b^8sO*38C6=b~hjD?#wYu75|V3kd68xMWJ1i%Gu!L!}~ z(uP}xo`C-7^ZiNyD{0h2%K-glxZnGCh;|#}qM;&IPY&N9RRKreh_L-*04E518+=)EuUDQ2uL;Ic5 zr39P}PHRxSA-UUhVS)-=c$Mly>cD#KHL2`J2k*}4kX63)npe0d9(Zayk+~_Em5!z3 z+I;FU(UO*3ao^>Zy-k$}P6QF_=Sq?GC>uIJekYxDl9}|(ojcc_@$aS|bd1M?^(Sd> zi|Iz3ya@jdh~h&XBuckiC!#(S$^%{&+gjXD@_EasI?--$X`6st?AHOBoEAGUG^kn) zZ8(aYTzRvnp)T6S1E6ED!2bE6##ei4PD>egN*!5MY{T{I}nJd!2I1Dcyy-_=gQYVfmgkp@~5a zE^!APxPX3UD0m0`d=F3Jif7!oco+TvdeV(SQ}H|epo91L!xwlG0~6ARo-G*gM>Uyr z|8@=(#XZmgI2gd6@vmv@_x z5k$=oH;OUb@b?fK{cnJ9z-t_A1R((Q;ED-GfSnQOLm&*C*fFNTwwfI@`#yEtVA_;f z6vB1~o<76Gj7n&6h?Dyey14wp-RK$J3?hsgH?|stf4G|>E5Y|DkLUnN>%F!vQSR0h4#}C*EYH&xl)3w^I2XT7SeQIXjmdBA^uEVDa#Hu7WFzd~AkYMwJoA0H z>x%2c?mw27@C*K#HZhe=k?XndnY2s%zWv;E~TVx!AA>QNiJht5Nx9z-Wk(Noo|9*P0E&f{vV-9kQCMf{d-sP|Xohy3T(Cmj>U{V4Tqkw(@ zP=dw#!Y7;WZDa;M1@CafKU^3PybOMayODAq(M3{4mn7o-MoO+24Fb=Su+HD@Jk6Rs zY4}Z3?{MGDnji-KJqwxn+fc*)x({!-V|d_vW#^xW4-LPYnT&PfhTa$wVN0ALC*wnebEs@v`2 z0i?*@_{E?<1`fD{K@P+_x<_P1yaTZE1DFGLLyj1@E+_yZjdi(v7XyHBL;moMZTPUR zk0tHD|NgqP9Crg;5WLPZr6`L@A2c}-omGY%K+o+{e`d|6Nq>jWR3kn zf6&1|h4{&z0sdqn2~Q^h|5(mVJ{LF;wGNj`#zg~;dv}3f4%C2Qt}iqVWg#ZJ9UEOl zTl63M&4hU_63Kn>g2>|gc*d{DD|k0vxCk@$-A2lMFy>T71!+GkG49E9}H@PG89AJvQ*GrH60*u;*#Sg?lH4`2~4_ZxbR z_sw{I8yeq-IUIcBiZUwlv3UPs=Fygt_b5-wnl`w4)oQcd$9|t{;lhPBJIA)VE0(XY z1+fg?7cX9{Wy_Xn<%*Sdu}~JjMT-_`>C&ZUF2j4Cxrm=Iydxa(&YwTu!1VIv%k|1D zuh=v9goQ3HqhrNNix2uR!zo_GNjkWzR<7z^%a<+p{H$JW?}(RhT--wg=@b7qzxmDX zww$4DXQ0E@o(x0)*~qv6*)fPI0)FlpZ16o7-^W$d-rMX$$u;>E&KyW)JNUDxdED8O zO4Ur27?sC7~cG_vDo%ApN@-NzV-+k@cdFP$A z?Y7(6X||kb%Xk0uPyb}s*S_{O)2{Ef+iv>ACq7|eKKt3v>PuhxlEv|jZ+t^v_`(-V zW)L^DK%=F*-FDqL6u%=L(&O53#~t+_{=A@7bS6JmE(C>vAotVWb`eZh>wTXSCLMF1p+oFXPQ757ps^AFiX0I?4bvvwMdfc9?z7d*UGe zNaKhjj?mA4{&Ne%d;Fn;G=K1eALxJs4zRc*4g5)qXD+^pJQVMFM_A(KBHr(O=R4*X zaq%7Zr19e)|5%Sa@`wR-z%&;c_t3WEBG1+b_<0|IpKxgPxd8u|-dJ3fUYr1T(g+Rz zcy7E8%|2m>6Rkcc_cB8Ot)z_%o&@~X4q-a`+dKfpeA{v6IVso~#{(wz)5h64dk zaoG+rJ>#a`efWU&I_rhN9^Ai4*w?lIPyXF#Q|hD=7hWmVF|>_-j4<(C&-FJk8!2@H}?H_aTMcw|Mz24 zEIt=g#~;oXucBYfA9c&~-3##j6Tg|nP~>UU&LVFoLN@69_~D}U;-XWt-9J(%7oAyj zcJWN7i68FdHOYg?I`AIrK;ylIkG4h|h1W%wcL8_-y0+zI+V&ESb+p}x12Y!PR|rd7 zfKu+c0KBwuTmUS7*vRAZ4Hxpl;!1gl@I~1$md4^U_dyHVap(aglPBWfKrjR0X&cXK z&3DToFOly6)s{DQEK2fItQy{Dj{_s*$_&>lA87#r(`KL=f&x~E!9Gbk#C z+wj=eA98G*MH={WL*K7ImC3j7p99fR;nG>rA-&rb;rJ#xuwp!u_iKZNNuEsd#Ogo* zN!(Va2Q0(CU~0D^btc*$Z4y8Uzy$~ci~-RjX}|a^9gf9&fG&INb5*KUwc38lE;j4f zq8sQ>8gJs_nfTCL;{skuH{<{=;I{bOYWWts=O!&J1NvHS{7O)Q% zPQu2Xfu<=s5>5Uo z!x?Dt?`^;MIH44`lg=r?wUc!T&lUOdc!|X0Nck${p_?1{7yfq7Q-aPm8{%<#-cuS~ zPDK9Gpv6Aq-ZKgLmVUVDy`>m_xRF=8Pdstrjqu==(d-OL6ngr_zn-SQww$DNY?$N; z8BGzVxvBhui@1@N(>jI+mWb!g$w}|W=Edr!W!lGdY7V zQmdF-t5>_4dJgMqw^|w;7_c33*a-*VT?4!}ismj3jOzg9q^T|faR=|C6$VC|(OT%^ zN68un4NWxx$XR9}Jq8s4+A)QRdj=j{VJD9Zt!zb#%X55hU>}g(z?iaE-tdh7|4L!Vp z-X^9{X>fyQe9^mcA#M345|_lOP@HofH(#chEuNThA&f77^}=((&B?b7w5wf8{ClGy z5n)cc5BiIbMv9T-9g(F^+Pp}IV>O$;&obY6eW0AAJT1T_UNZ+nW0Ur6rcS`g7)0Xo zO_Y+yU|%L)^Ttw0F7L*B4*zf?Og!UG{x&rSLTiRw?7(?m*A?NQExzB>bWX;D4N({8AH_D7Q0NKlio$)puo zZoy3k7GzcumdHQ@>(G*Dw4f$8Lu@7a=`nXDWsz3v+uGiDB0%j(63ZX`RnsoCyE%Kp z+o%S)-*%yD1BoP$O|Yhzy8|G?CM6cVaK}>XN??nRzN_6)p3HhGwj+!K^F|{xKs{0# z)<|VomCA@pBZC@BJIs_SH8m3m?(buVnE?aDgCoNhUzP#-0nYRZP34%vv=gxB1aCRECU^t?pa(i80sm$y z&o(XD2pa@Xl0bm^W||5_AfVOfHNu5=pfOHDZ8z1(YN}U;RUYbBtumy%!3e#qb}KWI zIVF`n)rsCfu7Q2P9jB)Pl#|AV2HgRg1I}H$;o&`TOPjC=x&-t+7KR9r&Z(>}SOK-Q zj43vNWm~!0YM2NmO<-rHcB`&hy`t(!S@of^>ceH#hD*w76}8)$IvnbR`4NJ1%+IwQ z2v~qE2Szp0NwH3wu@NB7r=FEAYv~xE#lbB?*ZE^IxZP2u&S`nMl?MxPA`kGY&556icuuQ`z7N4*0K{rMlAbz4#l}q53`LXaB6j z@&S$45jtYZzz370M2FSvG}N?{eS3A4e3DTHeZ1#X-)>#D@1dg?k5d(SOhisP?~4Og z2G&lU&sO(RnZDaS3CH*Ei-^gOw`dN8tj29~nleC)gOajbL*=@Lsx)Wdqf_hhrQK+&RY!i(2eu^+J_0aW|I#)YYk)t=CF-TgZd1H?G$w9}b-PVp*+_u3 ztukgEn1EP+>dGbS3EG+3%1oXkgOQL9%l!#Ci2O9!PyE(L(@6n#1Ef0*dFs;XFM}S_ zvd|}{DUQ6=Rw>I>%b^V!Tvc0jbvj6DrvnQ3*#MveeI3=CP6z&tPD@!MSBFFOnz`~? zS=Gvj>gAI1N=c33LAA47)wWckUuo7=sg+c#VZYx{xn5S*$kfQ&YUbYOn)wa3_kd>u z`hLUfXj|l0%Wux$9r;xGHjUAj#GmH$2J?0H1I{uerV-!i}w*e{CFlF%zlEV z0NKtjH!-qzEnmC~_zyE7Tzk%a5E7>ua;*<{4YLOTE!8W6t_Ru1F=n?T>B zO*e3jU_}t(XJdA=`!hjB+K?8SV0%i?*_1j61qb|fR?b%u;{KdxiKNurwN$s+3W^0#%%BPJ&&Y%hiFh-MuVn(b z(_)ao{=k_U)v6wQdWN2y`KD?%xB@J5il2>&yo_3HuzgqS9-L`6Jsk!d2u>Gp&Kno7 zbO=hsU3 zJW^My(Kfl!X&^@(SfklS=H_-{I5G*vl+Wy%dYyJqpyAJCVWvMg!aU7uMKhRMNBr>YKeGp}mqi?cQTxwkZuWW330`X3uy zAP+r1bf1mF39fd^d8=QYHvJ+y&@ce-A&1NOy40yCL&M&Yh6eid)RPZrdH-tFm)ZK>iR!w;Wo=dHU%51* z&=W5A{E9Tj`(hX?mvII#=D(g<&*FO<*p8VojkIvNCISCCMZkyoMN$V)S<%MRfSDG= z{3B^Ftg)d{Xm*qh3>&lR{i}5Cm6zzuU;aWDUwX05I`3@#=K4RNKezXdrfZe~`MCjg zfGxls07mtB6Petp(Cdi2>>oc1<0c;ut0lfVD3+U;w*Yxc6$ zMt2)+28)G^S2ko()8cn?8R)PEhZ`4y!9ai8fh}8h(TOCN@Jwl5d(CzF-S4h4%}a*B zG7~EDTvDr3HUMn{s5Edg^$k32qY>&T1NhrCLR(EVC#|w+Zc2TN^{sF3t9=eXRRcDG z0N8KZYz_G!P6jQRF+A7(xBpSUI`=}oHg|>Pp_NtCZUUrzaDf)a1sE>r*QM4{&7S#? z{_cN#M1TIvJ@-yG3P29e001BWNklDa79ts_mdM$}hoRtR1bm_E>IL7UZUT;lL4dZU?+!vuCJ zFQ4u(dWdWCxA8a-{KS2)7gWUe8;_#Nn6@YmBphv8^8~z`)l4&=eN2~JaF#B-@^W2t zT zO84J&ug<^xX3bu>)MmZgEe0G6AW)GZYdzhL%>Yzv2AW>&i3k3wfB2vOpQbO zna{R1>vc6u^UUnt*HX3OO?eSlr2sB(F43OM9;((HRa6V1q)QT{G_DB$47#&jdza7TgjB=^E^ zW2U>lxF!L=HRu1oz3+g}s!G~_L+=QLPUyY&-c_m~s33@-A}Ck^1wo25MNtqz7KK$% zdWVoeD4~U3rG`#`^q#l(=l^@=+?xc}-Ov4Y{r)U_UwCuh+fJEt@64QM=FAv>9;SfC zEk!By05sjvC5LFPQl=c%MDl@*tK#4I<{;k8R?jnF7ul=7X}P}6H(Ez@=`e+ zcG%o5*u6xc9q^Hn&{sx$0iB>?r_?ohWyOt#Rspx$1&3^@lxlu?bk(4{4P8V$ZaMGZ zOk9*YW%f%=Ny5T~-(c={Un9ZgK&s0Lnl5>bD8wG3<$m}wVln;g0a@+V`cSlFHM}=- zF>c1E!cC;d@589>tU9P|4+i)2%7!05UStP_^siQUafLI!MUchItB8+0G|J}l(-RDS6{FLMgwJ04N^sQ{ezfR~eqK!|1rebY!|4_?wvEph$52hhl;GuFrjUJDKs@};7<&c< z3<^9p6v#wY$O;sIMU?sbS(A_>yL>X45Rk7l-udKPoQZs(Knt%KU%WFAl_~~d_oeG_ z_gA4YsM8xP!mSgGin=|k^@!%2`U6?S{7=m<{oW{(d(sVfamhXr=02X@kfa)(fm z->D{CwB)+8Tx6(73$X-jq@JL>3rH^+7u^a#VhDf#_dmIm8>$`pL{D3T@COlleKPRx z+!_l1zki&cfD+Y9K!u1egP{3>;3_4V2&pKYbc6Aw;+KVsP&{vblrL8sKP*{>(9lq< z*{~5?LqqWH$D>fUd2^gNcST-6y2tQC7UH3wA*`Zau`2zOPV*RFXvVm8{B5!gx7Do_ zUz$;U4tShIt+PIE#`pE81v_SQBA)Hq9G$zjmkY>Z$qF1q5CqW`gDBuk#&UaCXST|hh$Fk#qkQEmSg~%qSasZ97pzV*+}fHB z{n~r?ZlU)xjWKjcA30=oC~FXR+?rt2ujPb+KBjI*0wBUjKLeOOUf5)E%oQb5psf)JYQ z@;dF9Gj=q}mn?(jn}hN5hIQDuZ6n?t^S*!??@#+e&}jl&Ge-?Y&FXcr|MFeIwe^PC zJbu{7=QHIMe~6QzfKTvbz~{=6M=l>=cRkGG2|~CXDpCvqq%)_^A#D3z*u3OBZn%6- zc(`cTt=2N>b<;X&vpQrQg4JS{MX~xheapx*lq>9mJ>eE!AN&UDv>t{Oy3~7ZaJuXw zBa}W&IZkT>WvmC^Pkk2+Di%Y{+7H zA1wiPX9CV&yDE#M#FYZTf#WA}1Wx$f$(S{;2YPgV7O~lSkq~tm4Qf_GlMa1wIW|?) z!Vx`tpkdR_h_v`{J3bb{+twj;Ul`J~bp?EZ?_9f#!+S#!7nh`%0+A9I*E!g6;#dTZ z966Jz?4P}G2EifQ5xR395)%~Ta`|lVdTh8Ac@yV1+)Rx9RBM9GJ};Rmp9UpTgI+k(rHoNxga7wsobSduQHP2*wrRkv_-_apCikUiHSj2SQvJO zZig-X9ulJ?@l=^0%wM)ro*ReT0=JJs$AJx7*I|1|Fs@$Xn0oPa$9fp>VmFxp(u#2P zw+lGDZ;!P5_MMwp7rY*qZ(o&(m&;?7X=8HKb?n-*9lLk!!-?N6!|Vs_93$537MW9o=EQMY=1 z+_U(RVzXms=r-)$ACA~`btm~i)XkgNzkLhhqGL7ih<^DDH|fA{CnIqD^jV}^m2!Oj zMkIFb48fKy+mM`~luueMxv=Q|?fba$+jUr}tjpRmhK%HW9_$MX!S1jS?ApB>58{%9 z&OVt4s7b_;W5=*7Bov`Lw&Bv{3v%8mmH;p8@z*fqg(0Zf;&mi@xYUjyjzhWV%A#Ji zaFsUEjHLVM+o~=;d8>Syj%}uPDw@B&Yjr3Z!d1%yaageqgC}ljQDsqVrdL<`Ve{c zG!8`^k+xqxdja=1aPgL-%Eb&!Mz(-u`?tT+d_8X>f9q)?|3>$!OK_X$%`PStbE~j}4ymXxNft(YSd>d^B|-EN-tTxbQl#bm3g&%bQye zn7pO{lqpso3%_3nC&2(t3artX@a{6Y4I1!tKWVag@8x?#fhQHJYrK>l`-YfUz zzR^#2K)a^RFz>IwqCxBCQg7kXf%tIRY}`rWdImqXuUd{e<;!97mYr~tp)dl3B^j>N z7_@0pAEQ3_STKu_-C-zGp^TIf5RenCTJ*>L`>BGaSZzt@|J;jc)9x8rE@fu4BS!-6 z-MoP3U+Rw>xpGMV^5x5iuFns~r5m>-+}PRU5qSQ^myt7P9^}rG3#MEq)M`=(+xHz% zZa+R7?1_4DOx_L#fi0F=z1>Sk0+uR=p^O zjh=ugD;K+}g(&U~v>tV8SCeaB{cxnLzi@cd zus>uq8dWYY$LT^=ut;%C`ur;-+LW>mXDa^s?Oc>A6)4x_&YK@^e>4RTQt2k-031n} zKXV$26wHr++&PguUw(|A`3<5|9pc)GLb%Mw(-ZHfI)%BfdZn$ zsh3kMc{F}H?D*<~;iyp|2xso4AkOWC)oGE1sb5a}5JgIs#jdm0r1jr@I126RR>i`f zm!o5kF2X+w7b$|*M~}g+_(TDu_G}GCopL4d(~qm=9>$LstDqwVy}Pu-z*h&u>~`Vs zk;AB0w-)l`$$?xs^PpLy?l^Vy20UKnmN<0a>uBBlS;VB6xq?mBXT{w(R74`5&km2rE(rJ5E$dJqS1zpiX+EMZg(H8VQW!B|A?y;vKm}*;dg;fX zfkVf)qeaWc$eBa&?>^nTd--6;#J%s`Vi(~S)e-$gg+meV4KQBi4QY8^! zQuP%sS^|^5UV;oa120&Snh}l9W=uli!lYFWJoQv@j2|}xHk(!4qmq(iG47-HQLtb^ zm`wRlqIem6`Nd*5omuO=#FYIfJh#~aBL4pW{WTQ+KVgucj3T*ch#zk0(e0E4N>uXH zi{!)IYY}K&qZoSh=!>WfGg7=hSsbLCX>=;kBbvT|ez@%k@L8i#txjXSG-4t$Y)-&w zhu0PdOUfOTEngGwP54IqsX0Gizj7%`70rdY^XFoF@HT|3S%J^SO+@bewXk$GkzX6u z{`?in70QRtXHLhj8-Kz08MD!>-5}VVKy1t{EMD*_8rLm>#*M3E*~+z8v~nvBT)ibh z#>9Qap?oc2OTyIt-O;r}Timc(kS?w{KBUClL+9p=(7E?uTu)Px3T6!GfszICqePXe z_+ZM%*s^0Ip6}lmrabwuXyrzv`+&szk*HWC4@SN>4hc3V{LB*QvEfkgCKSt?6QO$! zh^3)kqXy{ubSErbwggLl_$ykq?2Ans_X}zfmv{?LckYfxO*;ysV5l`q!g=)R(g>#f z#qq_rKVsX)^_cznSE$>j2Uc$0A(M@{(2g@`{UZGO>yKFY-Aq)iUJg|ow!)dK zcO-0^HU17dH1CW)gQvqTmK^27PhUr`F9Qxw419>kvf1yWa?NJgefqkT{qBJFC{w)= zPQ}EDxtG57M6}XU;?c5o8x##JjXCq?Va?h#_+aF4BIrEmlk_{nn`(1EmJiwH9 z2ceM3gt4ED!LMsqVg460P&khX`3vR4D{s6g(JyG-Su}GdatD}DyGAX%|Iv6XU%v*s zPK3*IdHBdq)C($scitF=kR2h|v12o4&6$cEaA!cXg~(}ub44MUyEm2oY_h9ri9A*5qX#=xE(QNKYG zM5Wn8Azm@zT@=rs8^tS?!?1VWL~!tS41IkFOr`*QGJAo9l}w7hk7kvF(67%Mh);85 z1}!+YcPj!5<-*csi{OG2ZQ3?N*N*Klf8Li^w|)~^wCIgreh!7pLxkUsK0RMR)k=+# zWTty7k*rt@d%l$@^5dp{iPfuCV#yCnP_J!wEcs=FM9f+L)Az`kJ0IrGTZomvti+N< z-=RsvI;c{sK8|0!E699C%moa5?nTsYJsPQW=^?o0;#xc>sOeRwF^XFsTs#WOQqX+Wk z%MVk&0@x67Ruq2t(((R)&d6ypVf-f(uyVyOm^Envo-&zGAa@>oG;1C*=qX^ikFl@! zM&1HBQNDUr%$hM9zpmVf-DhtL502Qq5%nqtV&b?7*cq}D!8^8L{M0Eh6{(0X7cCY2 zWYwz0s2Efd&Y?K2D)E?k!J{c-7BRIOSDn7_YqbDa;uzz-orq6%R}F zCDf>13m;FM0VjR-97*WixfzBH>E(nEJ`8)$$Dg>+8)4>hA9Jkp>4~i*ncw$ zR})ik_jVM9zcB))fZSNTbd5wpU?{SwgS){LV8W+AE|-P0EI9ebIaGV9AO?>bi`!P# zZNsP$-BG%FV_c3-0*EGfeHi`ba5Su2AJ)V~L|wX!5_$7t{Vyvr$$$0c1H{E9!eUQE zhB*e^d-Xu84qe2Jh33nBTNa`~fC*DRrxhdXbM3}GBqT758gM=G8qS_>^b7J8G~u<8{bbRsJHv_ zUIW~VjuU@-_$@MV?9;11+O~Nfe!CsZzy27N0t@2I#j8>a#p#tBw-FmpGcWMf_}5Uk zVp&|h79;0vK0hu*-oouzGaM3)L!Sg`O24=;(HxTHo0-{Jy(7lfpnySv$ASX%&E|&| zNJiWBJFJ-Z{u`)Px)kAav~Z5^kp`-ZlB-5hzx!5kih%Rp>2%N#j03)u3v)arGknsnMufvMA<# z@p&dqZr_c@{e)DQT`A(?`RagSXwk4U(iplDK3qAm1%(1k7&U$}QdAe@-kbNL@gSb- zmi&l`xsT(=lpBm*aKxSv6e?I4f7ui!hb(cC7}9SrYPA}Tv`mGc;WUZxyWn-vy~mEU zxa;WDtR;rNF&=iC9d3^q(?5DwXtFhAx726WWboo83sA6VA^f#K&XEz@8{j z$b>E72gJeV;)xIx%Vol=uMa_z$YQ{io`TJP`5dM4oAAN(ufeEDK6gB3jvEeB&Z7A2 z>!0-^WgODX$$0PezIe86Jy`7yFkA!Ockad|piS48(f*l!a{atHGf=By8AL}Z1>RzH z;mVD>NJ&eRG5L7R>uB4g2GWw^<@yYZ6PK?>AuYqE{20V#GqdU^`iG(LKheYcFLaKK zMy&xAC6bDy9{$nc;KENoE}YnhT7dx=Gwx$?IkCFT@OY9jf6i=lZqpe<`gBLBqIr?O zM135&ct=!iuk8V9*KUZxuYU>)6@I%NUQZHi(dSX8MrDlucpO~TD5Tvyj0RQ9h$%0q zY!J$q;4OQx+bwYVQjr>W5pVWt zikEtKhsEbbiWU_{PZ-8XLtGdHTMA~qH3YeH=R%3HRZymUWdsHWB5%=Bm^SY(Fq>^~ zS?R{)#XHZpL%o*ma3aM5I{l<`VW{H)UT#tW-3AQ9nPiJBs$IEi7EFc8VRguPMjVAb zF$q36`#NPDk_w&fn}i)!oaPu zH_)z08}xqp6PSH~i;INm!s25Blnn9ZKeKlmngo@`zC*fTA;V2YZvBo-q_bwHqPgZYtE>Vw*J^gD zbrCjm44SnljaT33rD$Mv;KzwmQL}U%T#WZ3jt*qv$K^)Cy$JO0-VXT-6i4Oi^$}RA zBubVnftnR7AaCwGXk51iqOV^^%%wwUS}O<*TDHM=%YMey2kO~SQwJB$?c0E=rAwe? z>&{sI>pH}wDgS=AS0$6752_?w#M8#`SH9_U(J)WE7+6__1xrPso+K1U{R$Svu`D$D>8l_UQk@J4lL42QpId zO82J`Shye-%%6vdqY-kQ@OU>}WSkiE{Hti*pdC`o=@J=i@$3%~nBRmWk+(qyQ3ny| z>^xqZ$grTZr%zzh#%(wlvJ1b=oPn}WmB!q)I|MYb#a+kHmxiHE>(R=k$7`2JK1?#k zyd^FN6<%QH&)=d`orc)A|7_;KrN%^}S6)<5#@OIf>y2X$IoYqhXm`czg1fvW~**Nyew| z3`eP|?ZKrDTsI}_7yND{CEP%#W;IZ#U_Jy@se}@xOQKBqK$I_60l9MJNA+5*;d1#9 zv3obl6)u2IZQEn}wooLct3}gJ0hIjMv0*7n7s-o$efwd<`pt+=qJ$zFS8F@?+d%k* zB*vfrUJ7VR4%JG&=`@LI$*(*T0mqNKS5Kj3&C=*U;1$HCTZAc4vrS4(!=2kPu%xHs z?Sb7;s7PJxIdxkpNuCrmsNWhxU!Mhw#SJ(aN-Pbwm~&`Uy)r(VFcxmt9o#z~j1t8P zqi5fjG4<2gm^pbmKASQXlc!F{_|Lw?k83xJYl<^12Ah}8N7rWc5s)Jn8nkMMg9_C+Rba-?GFYcGNRUTuv8Re*%x7OC#=fN#DtchD7-(g35o<&!{MlOB)Ob$dy?UG+{eiyp(t3U z3YPr34t`$>wk%(OT!o8cZRi2m{EQmJ$&n8Uu{ZHTuVxtfYEQLl#BRqoAB;tn(lv1Y zo)yV{ACe_1gAaGEhNFG6MyS!SE2ez*Ev8SJfX}B-#_Z|SF>B^5{QTq3h@(JqCn93c z7If>-Mka+d>eR=Am75Xk;))axd>QfByLmM_HE%5ETeN74Wotu_#E_~)eK_tCYL$~; z&EiGLU?BYey=>9w`F{)rbcA2{J)>^f&G>%IJ1CXE07i_Rit*FuC53?lSO2+hI&!AI>?l^oaNrG6UrQSj7mTl3w^I)XJ zMBzgCS_GC3!gs6osLbq653Za(g1NIkMzI2UkiTF-3>f}CVytxDQOLod7hXft#vPDs zOBR=&UF~`x001BWNklFCv^EgCnekKb-y5tmM@xcc}I zw)wB9Ryq&XZ{IF;FPQfUN)~8;AeYRb1ARsE_99gVPGUHKnF;*QK%h(jr`4PLCtK5Vg}WP7@dfY)abq@E#x zr&~PHckwaPysmANC)3s4nHBl=l$i_YLEh9CUG>QHE@X5ss2@Kj;J3qMz6#am<#nd# z@1^XLRE~;M;496g-m3$aAnr?G99Z*obtG3w3p3o5(K#9NBi4Ki#QMH>d#u+XKrG*U zl3v7HM&X-^#-9)Mi{C;8Fg8YeGhR%z8@0Y1OUmR*NK@L?l^QiLDPra#d@V;f}~RuPeB7+pKY^mFiI1s+vAwT-!{B$Y(_;!{d6vZ&4ff zJ>;h68CJxzYFF{fa<8SFAaFT!mRCrfH>z6-wMt7PiWjyt^+IBYo#3&BZdq?ZYwM!ze70VW>y7q%6$0Lrt$ zkv_a`cgw6ldvG12fILn!F{M+b2wd{~tbAXyd8RS8F^0Ba&4PE1Q}P+=3g@RY&WwWX zi$6n8CnOWBsXEa6JuPj4zB%Rwg9Gx0(unB!6)Dl}jL zwB;73-u%SzyQdKC(obd7`o|*g-Jy{^VV-Y4dRXRYkl_Zrc`S~04;~NxQMC{gncSP6 z6d)acxCi#w{U&f>zdTe#Jz&o;wfYkUo)=%@U>5w1i1+bitKT*}dU|;{(a~GAI$xjA zOHfHPiskCfYHiyp&+-?1H8G|G>IbQ5N(8eR;*+1_cTRosdTb^{B~B&uakj~FyN<11 z+muT}PO)^(>Pg+LV+XJ{*0Dx`1NAHVdt_3q;rI+A5?9Atp{uhcxcivYp%qRP8OPDR ze?AmWCK6GF;==iU5kjoS?LzwDX87B6j4es>HmZvg@^_*YTm3@`-Lsx?aWZfr@Ck58 zpz3N<05tT^KqNN*zXa;|a3T(drQ?v0v*wGZRIOq4_XkA@9n;ayia1J5?1FfnC)M9+ zqcI$(c>+M163Zu|#*u&&#}m-bG_!_$QV@Kr-wp1|!z`kn^8$PX{TZtA_V)|2S1BZx z+q2%R3Fdx1M%0=>J`||XC%fnU^*6_0-Z{(`1A%D)cC?qG&7{dCZ`>Uv?u5g);>5F$ zR5-7qC#s3uoyl*Qx(r-@d6(JjD6{a7^A7yrh)7%(>I^(1X$Aq>gMg-|37@FK85H=6 z#Ti-9=I!oDcgN0tKVz_*TgEUKpxXTV1Kl}iM%>|yg&cXQnq|D)T&Mfx1#~=!cGx=oicbBprw-I@Y6e$Nz>bO&yzqo!n0dYD8fctW; zlu}Ah%d*C-H-2_>vPeynklhd^^OlMT2+B>LT8Z;ZDya+DohV&zMTq`*5E|Lweho6v z>5q8j_5K{k{1jLeWFRLfpqom~8Cqn<)Ld`%cl~cnml2S@))ububc$+^!C57xZR5Kt zt29mL6v{Wq(Ppn9QT_ChveM9;W}#6!(0taIHIkVI^#uv(;@|I*6zjed)$o2-lxy-i z$n@$XL)u5H$6swL%F5Qm${bl}IE-cC;D?1e1RkRIAyMm3tk&%_cbVP|Kn{uJ>L2R( z3qsAYym4Is9AhCq5@a<%f5e2BT!hdG?hk9c7Q(?IFCRyj`wXX543w1E$;!nBj>DGY zsFX>lrAqB$GTe|y?C~t_>O)s>jLJ_Q7w@{jWoASoXiOEy_d-BgJE@el&{o#ipZyR? zNi?Y#HwNt!uR^JQd2c|eH~mFf&X4=?IN-0;2{ zW$PzFR#>Y}P*AiGMTrr$G&tRa@TGm1W7D)<_adRSQtHk`kFV^CcZu{_wes$v3$N6q z0}gw=m4z;H+&%k>#bS%XR7&N%Eluuj&ZoemPDUTn8@a~H}q09rEv`;g$s>-BucAhc=gK<;|g9?{9o z@bTRs!2@#B<4IzTB@Z1RghmXm)1?^vF!t>Tte-@}*L>lahav4%rm|u_9Wle*W?PTT zCsFYKzL<2NTSb2y*lXxXW_1{f&lxNuAb~C4H!QS##wwpLjeBv9l~dRGsrB`Dr>1tZ zy3}!`RZGr;mT(_i z!OmNy^IFaNK>6kU5!D!R76z`2=>nc#HYkmy^Y4!$#=_zAUhM*k(6->9Z39gfeyLZ7D`DSwi-{3$$V(|)Q>$#ExfqkXEvT@9NiDN zV9psh{-uYuzBK4S)A3s~i=4Mw{y)9xx{>OcTJ8S0|NQxB=<+*iJ$K0+KXt*6+w03$ zcM`d5JYjKui^AY9R#*HJw2~oUK`!)VDSB~wu+Z|LZ+O(jn1Am#9i4R7ozohL&S`@r z%4Uh+a-EMK>GvAbh~g7*%bC)a&06L{hwY^dp#b7$l(XLNSb>n*d~SN+q#LTFzYZTl z`+MHItEzNufk3#iM=+YusaWWAdi7|GQv+Xrp3*%mlYsZMXzy?JM{#3SfRfmFq9=<# zb;mCe8+zuF%BPEsXBqB1k9n}j4Xq3_vS+y1CB)LZMsZ)#oYjeu;}y`-kC7lszMA<_ z;hSPeMD;AE&^(&3A*?2f+o9XxgVSA3UA8REJW-3Nh6*oWA;8Vhg4HPnc9U_|e21@%S=L zb=Cv{;#4lnr=MYJ0g3!T>am|as7FF5+m}!RZ2>cCy((=gIa3<0&)XhiJg?K5S{y9RXGB)7t@Fzi%cV`of_mRygMfb$`?tex7Nv|eq_|83w-A3apTr3&4 zsUMrfJ56n;5;bTVM&f9{L73Ie}@b`reH6)bV7%tq0|Ki!M<%^$Y zj@SB5Z`K<_E~zN;UGmZId|$X1+C4bFR~f`3pX3f^-Cu5eWwE?U+)Jv_!h2IGu6VHA z`3cEat$Jl`#I&*yNChc)5$Ed&Q>R#?^q~het;6_!!&yCFAU4D4@F9Qfvn^%$%t zP6hwKgC$?LUv(ImM=O=xf$K0|GuT+ipe@yd*2JC;QEKQ>2q%FRum8SF>enih@sclk zWWvvza1KcjGB6_#2KsX(fj>z;(+eR+d|n=myYql(?qADt$CBMrulyr?OADZ`QJ!Pp zoQej$p&=~xYqePo3h0|1m*E{036VQz5S+WO-)tz{aytBEfAQ!ILu!ceh*Qx^>@PKw zQgHhSU3~-orHD7bT29Q2WxFt69^oVCAM}4bbm^v32g&9Je6@e$W)N4h+$alI%r1;X zt3*vC-eYvzZBXxqvNav~i{O}tf$4xe=d9|fT%*{S)v%43__>{$iCupv(rYbbTBZ0X zl!1YKlq4`lqWE1@O{Q>Okovn%o(B;Odt7~c4V&B;#iMopqI$=-K~G4$f%mFBh2{Nf zX1$n{%iZu+G5^w!;730WMOUF`yL4p1_@ug*kpn+bD&C&P{?qumsiV`*dSOb!f&fB} zz1Rp#0cXJq&4&K5np6n^R@+#**AB{v@48g>XDi{!o9!boT%qvr9gJ>?NV$Q0n8lR$ zle=M)%5{8<My{@~`zjuzslNqwC<2aCXv8%%c7O-x zPp<#AEE*jPw_f+qX}_qK&X;p=nRIY`2H*Sz&s3E?5&2Yqo<=4W-S*9R` zPdH3Lo5Wa|OgkQyZKR(s>#AT=*7DV+a-A}^Q!}ks7=yUiLF3!H!{9T84Qz~`>eni> zF7-_L6mFnlEolhymCVsxqZ1EP2bCFE0vm!s*z4R<0FuZuZ5grI@ceDj!r(nhu2(_H zxJx(&AsuB#{OAxnOE>a`&HbAGhw?=$TM%y+0&HzZG_t{E>u}%?5r%eqWIHzy&@7H( z4er3y=b9^m{{TvS^+3u+*$r*Bl52DJ{|^Mw`-c6sd1?G9Iu%@lr~ zU~CxnU{N>+t*pQ=gCNu(+iOsWA~LC^D%{O>1REIfO>KIuK_cNewMtB}o;;6oIv=qy z3a>@Z=bfcx0lL@%rxJ)Qg$LzwU^_+GF)WE?z`6ayVhV}i$pYTqnc{C1MhefyvlTcd z4t@Dp2r@-OP=AQ{Jl95BNv>Rw3RF-rtYW5B5TLXcJd_qMp0xM3_={0o#80gjH^ENn zEy0~}6V$K7)k)1vLuP&a6OD3hirKi_WF9|AV}0CN&8k{mB`MP!^ki>e&iWL|c^LV3 zi>Hxd()4wt!3M3$hj;#)Ix;)sIRcfd7YrAKmSB=*PMn7u(x8nrBP~W+8hxjg{I&*P zm-7X%fb)``!)LHwr9J^gIyhu-R?T8xd>drBQ73OPlLsEwtw$^1i-hS;xbz;CbepGX zt&M*751E3f<$d@gQSg)!PDIf}q&0DNX?akfz-mH^6TPF~=Iutp9ztfuEho0yF%*9P zRZ3>ln0W_RvM+Q6X=F1KLh;+fx$!WP=(f(!_caTd4E;4%ZvOR22a+H|_jE-85+Lr5 zl#tp1~gV#y? z>5o?epc?3o)D;Q5&B=Ji&XP)~5Uy7Hh1iqAEW%HUu3NIq{gJ>n905Rv@JMeh2&uj%(X!bG`5f*iAqMbY19 zzq#`i+^lW8=yI#i7=OGN78#&a>vv`+zZS1cEezoBzY#I+a7Q0XpdQL$*sI;!@fZNP zObz@ghOb66emxP0KNXJ+LE+x$jmlK^YTq=!v5M-dxi$h`T~|rLnTx)83X(~KgL%E5 z<>AgZ(}hjohyfIxWKiXHcj7&4YWeng6pF8oi8bdYEVU2`3Vf9H@W*t(=0H-4vI`$V zoaR&KrrPf+j(icnQ;{hXYQxoC*K;Y1>YTM8zM>Ew$37fo_bIHu$TdLAV_MN0@_1@g z$V-49UbB~U0Y1LGQ!B*nv=4g8@_|~#%uCh*GpAQ`DMTdHc_~&G4+R%YOKIc0l6I+{ zxbM1%OG6XW<#)5y+l^`r(qC^~7IE9*aZ;Fu)7kA3eOyMP>~vEjF2#p>E*!gveKGew zxN59Gm2Si-;a0-PWv-WrVczXf?b}z>aep6ADH7fwe8vEkyO;Ah=sozVRLA1a-G`GS z@A%&1-A3Qh*pZHpbad@>`T#k3h5NXoe*;3_arYf5X zxz6kXi_!xs?g7y$@VR+yS0%rqA8Yj?k|Yhsd`9Kc9N#-ksntBArxeGvf7o7sUBQ=2 zLMjKvWR2lMY$P3f=1hNN4C5mg?Yn)e@&D0mToyaU&4=mwX#R_ajjT^XR1}7KaWarK zu_oJ%E{N;Kq|bIaX0R{V&muE#u+~ol;9B6KAu>wNoy6<}g(%DlE5FQGlHj#ZtzmDlpOsrq)y8x7HqPa zkXGuw$C0eP!_Sf+bW6kS0y7crBs3q1hl>x)0&*3kRSzoIFvG`cnBpGj4PvfUFs+WiuzyB}IM;h4-{-6K(fZXoz8DZH&PC3q2!QL>Ejs*ZsjRZW7)7;W^n%rbpUOvQuYL_1ct1 z^O>AF?ZHso1N=Nd(ESFCWAP7qykZP=Qhx-u~Rw-4b!kes8|n7E9lP zNl3hEM_1MORFG^;#SYvtY4Fvot*6BvgzEhV7IB-xo4j)d&z)Uj0s*v9_xlY}RP zNj}FmMl@|o6ZFYY+TZ>4+{g80*pqOCB52Jy_BR&FBt1H9`6Th3Z8Kr2(zyg%NNhSQ z#;8RTW(l)d59_Ku-@s+LnX%CZ9?0~F!?0+Ac9X zw)r(?8ULU^z%E2;j*^26145=kkh7Ji5$;1Bsh#i*7CEGPqOU*smPRGbSuxHwoFVgrG^)SLeu=ipASM!DO{-Z3; zT8%AJAJ9+HutfIR-AX1dK^e(2Zc5gJ*Ws}za57dL>px{4{H(pVsodqZUWX-}%}<4f z-n)_{p=S9{s)FAsc9C<^`5KS-GgYM6CQY7Nzh1N2r*gzL2Ou->tupU-jjEZ4oF*P@ z2_2r_Av(IG)Mz_RO^vSqtkmr^J=d05LVJLz&1CyeE9I1&^9EC|+-lEF;hAdUvdZd$ zNOv<(F*!eXz9X?LVwwP6q!9ZuA{QKZ229DQMs8KsNsic`+FS(M^$flW>abyb z5@){9ORpFSQ=HT~*KgAg4|)962ykXH0wF?|n><3Z+}WHFM(mg>X7x|L*3NdjK|XF* z+_g!0K4gq`3*9`lu>?4h|8P6u4vNI~tq$Uu*1E_rsm8rkxF?y7uHMgQ;%>F@be!Kxn zh$p&JhG@cyLUg9Hfpst7lagF50VJ|Q*a(5 zp#_@1vBD*sbl){a&0xz#Q$CFDRy0nUWh^EK64RZ`-nD}zjG7LYSe|O$KscKSPd#Tj zg9n5dslfQ?g3{jw#%y}uMp9*GiIU$(_wbMueIU4I!KX_>VlOSI)IQMP=Uj}@sUTXS z>wywVij`N6OvJ+)q)ye^g7=RwHJfB?9NVYZ_q!7SD(DC4?Sj)qJQ7uLrUjc>B9S_P zT~l8C-O<7gPm4&9y&hPQnSLx3y_iS(ry|sxsNu4`EiYYWAc(XD0lS@lGL`*Q8?-S( zpD1dF3-2)0i1wjaP~n@Xs`g%Jq--bwD;Y@`?5MQGfDeQ(M^fpC+7s>@vsF{L+71sG ztYLc)JGtTvqX=xMv9Fj6irA@OdzB?o8LfQJXsK@9MxEGgU%^c1-*?5g7--#^28|h0 z6LFoy^JhkyPW6|$xeo9!y-u4@5em&^-VF?bRqWl|;(?h5@J8c@(VJX=rtgFd$g95G zyB*X(UtbjXPX$=bwKg;hgIFW=erYZ~x0i-jo-*>00+AKfn2PIq?>c)Ef zRfiEweJJ_S{P8KVGk455l2HI}lhsWp<&<7cu=^*K2)<9gw*Hl$f@^;BO5x-ul=z*D z>J42eFuL0sd7dyZXHQQ-1GKUwDg!75?^q`dMI#lsy@h z%)uQ~4J#*6!Ce_6N#?%pZ*b)!N*nws3V*Lzrx#FhiB9#NIfYJI+vsIZ3toFb@BTqu zx`FGPhC6a8uR7KbEiRg9q*{Q5jDSXT(YJt&P{s;l2(A3*`PPi$*$aSOhKm%0*Zt)e zzqrZ$+rA`|F$4b~{j-gB&N+;P*eZTE=+c+Hq;H;ZTMxa_6HxPMd4$xK0DDU5n$B-s zpd$QABQ6D%uz4>Z8unHkx~)_F*Mw$yeZ3yqC(+c5!RtZp!r}fG@dGnIb6gW|Y8AT? zx0(|{431TD{R?YjcF+A7?!?54<~nfCgS^({$Ao%w_o09;yk=q49B{61y(R~%speL@ z`C;MkdFHkV;py}Ljsx`GrqMiijd#~%kF;;#m}H!A@j06C>FDFmoT~_Vb*v*NNF$i` z=)S|`g5Ya~=Ysj zkgHVWW%L~Ri2~Rk?cwv9RjJuul!{E@#8Xk=VYZ!G%tQslHs{_#O6j2w`om?DI$ZPj z7M@}@BPvyh=uPSt`O{()qJg(IH*nj|U6@@=58sDqo)7n4Y)yKWgIG@U-nIo-xre|- zy63PNvw;XRv7$MGao~Q#gTkztbfI&DDX_cPw=6olUb@E&JZI9buO4PhS8s@JMBMM& z=n>6S+uZZR_lXl>l1!hOfk0%-!lD2aRNR?TR?jb=z3Otmioe;5#UcTYXkFD>1i6CR zE%D5CU)F#lI-fbz^*i)z9B^(qD<(SSdQ3;=Mkia`zOmopypFFac5NLG@!1We5K25K z_&PMO?|ym60qdJoNmHy`{D8i_q&W|vN-5vVCG&P#ScHgo6BrtfSw*tFSK)R*Qu zpiFDl;VrlGW~x1r@O{AHlwr$#zz@i_$(Zm~%V@Cfr*tN0Vfa7(w*0)uk)TStXVn!{ z+J1OJg{NCwaF{KJxmy0^Yh_=}H+phgM)P6me3(uB^cc<0(ixx6|Aa8E@Z!ryCn88M zXaY>@fr>DGm|?F_s^vhViK}^qj1bnugn}Nu)~F43i1_38 zo+wt3(%oxyUrk5IQFQHKBw@-l3|K`SMoMrpY+5oG?l=}3S+i2+d<_jhKGH|@$Sqgm zC14X4|NN%sV!p>mbZMU$%N0Td`8+$xyr}dTjV7egVEqnxS{S+gj$;XoiAiS0InL)$ zwZxb{-GKn9O0yF2>HZoDg zF70P{oOuyV&pFeoocqhUJ-CMB`JuZYQ+*y>!kut)J{iy~7bsOfow$1tka|-1x!~+b zU}Nr%l#quNMx**o9j$~dV)6F1S?#cLkO2zM6#0%ykthLp6w~Syy%Dc#$abJzSVe{( zW;RspUa8t_h}zQ{AB_>er45gcmhcF~1Ai}}drE+fNe9DhbeJ!PUf(0U+@c5GsNQ9o znIr+-9?m#kA3P|fyRv$yMqis5!uwv=g|=SjUM`BZBe>`LV~l-b?WJ0tl$c9rz|X)N z4m~tqHs3OIX{c%UOLB!U;k&*}l1}i8yUF8{EZEbFfV1<_0eaJ$?c1ed2p)Xk0 zH+t1wCS}!RD$O;2E_-AGtyn2fL2z&_SCw2|Pg0coFk#LNDb1 zQL~vm9GpX_jZ1(waRQ6WZ(2NRWD3}#)hzj{>cLV!tncR=67XaDesa~Iu$4s(u{qt> z?6gmEMZ}ATN%J#Hg0?Z9ZQ#?*8lz=kj0cU$v^4mP zsftUb#g`mR@6yn~EfwuA_e1yzoZ~OEMQ9b1XRj>f{<7Tv@sZrkU!B{FCbF&U&z!oPK8APS zws1}!djIm@jVTo5G~$m0G=OhX{uz~*;(wI!9o6;K_^H`pUuo~$?DlK4r)6Tx=gGO^ zWz}d$?Bt;*@EiLX&g-+%u1cn$gM#NzNxil;UxhCLnoi@#=>Qgmy7kx0?40szu`l2j zv94fgS-GkNUlM9|ZX;2*Cme!5t$+UmAb)j7x2=>(u^~^`Q>CqgukcW|U(G;gd!H9? z-So?tUeo7FO^TjR%{#{0!XNP)@Yeo&nB$&7M*FQ7`W*Yz#A_E{J|HqyFkJ*@O^}b2* zhBgWBbCy8(|ES1FIp*l3=&uA4t%~#i&lCSO7`^8l^Z(-W-z>a?+05TO3fKm@3IG3@ zZr)!INS4thHleup@?kN>w+|L5MDnE5b@iT{%I|Dwu#W66Mj#Tl3k V2O)66k-U4mR1^U6)w1Tn{|iOg*+2jQ diff --git a/fixme/image-7.png b/fixme/image-7.png deleted file mode 100644 index c405fd4f021048d99998f0045dfae06aa614b276..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148314 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
  • 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 diff --git a/fixme/image.png b/fixme/image.png deleted file mode 100644 index a9bf0cf9cc92280dd1d89d2250aa23199d5d99bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184573 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

    9$O9EjUQ#wL~l1q2Yr03X9+na4^}@6cT*?$MUp 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 diff --git a/fixme/mylinux.md b/fixme/mylinux.md deleted file mode 100644 index eafd88cc6..000000000 --- a/fixme/mylinux.md +++ /dev/null @@ -1,143 +0,0 @@ - -Hello MyLinux -sh: can't access tty; job control turned off -(kernel) =>./my_test_kvm_static -vmfd 4 -map mem 0x75735e279000 -KVM_SET_USER_MEMORY_REGION 0x4020ae46 -[ 7.189916] VM Exit Reason: 1 //External interrupt -[ 7.190102] exit_handler_index: 1 -[ 7.190287] EPT pointer = 0xfffffc000661205e -[ 7.190543] VM Exit Reason: 0x30//48::EPT VIOLATION -[ 7.190719] exit_handler_index: 30 -[ 7.190913] EPT pointer = 0xfffffc000661205e - -[ 2.265187] kvm_page_fault: -[ 2.265371] addr: 0x0 -[ 2.265516] error_code: 0x10 -[ 2.265685] exec: 1 -[ 2.265812] write: 0 -[ 2.265942] present: 0 -[ 2.266089] rsvd: 0 -[ 2.266216] user: 0 -[ 2.266348] prefetch: 0 -[ 2.266491] is_tdp: 1 -[ 2.266623] nx_huge_page_workaround_enabled: 0 -[ 2.266868] max_level: 3 -[ 2.267012] req_level: 1 -[ 2.267156] gfn: 0 -[ 2.267274] pfn: 12747 -[ 2.267410] hva: 132350336286720 - -[ 2.267615] kvm_page_fault: -[ 2.267774] addr: 0x0 -[ 2.267914] error_code: 0x10 -[ 2.268084] exec: 1 -[ 2.268216] write: 0 -[ 2.268351] present: 0 -[ 2.268504] rsvd: 0 -[ 2.268640] user: 0 -[ 2.268777] prefetch: 0 -[ 2.268928] is_tdp: 1 -[ 2.269086] nx_huge_page_workaround_enabled: 0 -[ 2.269335] max_level: 3 -[ 2.269561] req_level: 1 -[ 2.269709] gfn: 0 -[ 2.269851] pfn: 12747 -[ 2.270009] hva: 132350336286720 - -[ 7.193373] VM Exit Reason: 1e -[ 7.193557] exit_handler_index: 1e -[ 7.193766] EPT pointer = 0xfffffc000661205e -Guest CR3: 0x0 -run->exit_reason= 0x2 -a -KVM_EXIT_IO: run->io.port = 217 -[ 7.194568] VM Exit Reason: 1e -[ 7.194750] exit_handler_index: 1e -[ 7.194949] EPT pointer = 0xfffffc000661205e -Guest CR3: 0x0 -run->exit_reason= 0x2 - -KVM_EXIT_IO: run->io.port = 217 -[ 7.195757] VM Exit Reason: c -[ 7.195935] exit_handler_index: c -[ 7.196121] EPT pointer = 0xfffffc000661205e -Guest CR3: 0x0 -run->exit_reason= 0x5 -KVM_EXIT_HLT -(kernel) => - - - 33.881551] VMCS 000000008e180ab4, last attempted VM-entry on CPU 0 -[ 2.779110] *** Guest State *** -[ 2.779288] CR0: actual=0x0000000000000030, shadow=0x0000000060000010, gh_mask=fffffffffffefff7 -[ 2.779761] CR4: actual=0x0000000000002040, shadow=0x0000000000000000, gh_mask=fffffffffffef871 -[ 2.780234] CR3 = 0x0000000000000000 -[ 2.780439] PDPTR0 = 0x0000000000000000 PDPTR1 = 0x0000000000000000 -[ 2.780790] PDPTR2 = 0x0000000000000000 PDPTR3 = 0x0000000000000000 -[ 2.781140] RSP = 0x0000000000200000 RIP = 0x0000000000000000 -[ 2.781464] RFLAGS=0x00010002 DR7 = 0x0000000000000400 -[ 2.781788] Sysenter RSP=0000000000000000 CS:RIP=0000:0000000000000000 -[ 2.782153] CS: sel=0x0000, attr=0x0009b, limit=0x0000ffff, base=0x0000000000000000 -[ 2.782607] DS: sel=0x0000, attr=0x00093, limit=0x0000ffff, base=0x0000000000000000 -[ 2.783048] SS: sel=0x0000, attr=0x00093, limit=0x0000ffff, base=0x0000000000000000 -[ 2.783486] ES: sel=0x0000, attr=0x00093, limit=0x0000ffff, base=0x0000000000000000 -[ 2.783922] FS: sel=0x0000, attr=0x00093, limit=0x0000ffff, base=0x0000000000000000 -[ 2.784355] GS: sel=0x0000, attr=0x00093, limit=0x0000ffff, base=0x0000000000000000 -[ 2.784784] GDTR: limit=0x0000ffff, base=0x0000000000000000 -[ 2.785215] LDTR: sel=0x0000, attr=0x00082, limit=0x0000ffff, base=0x0000000000000000 -[ 2.785646] IDTR: limit=0x0000ffff, base=0x0000000000000000 -[ 2.786081] TR: sel=0x0000, attr=0x0008b, limit=0x0000ffff, base=0x0000000000000000 -[ 2.786515] EFER= 0x0000000000000000 -[ 2.786717] PAT = 0x0007040600070406 -[ 2.786923] DebugCtl = 0x0000000000000000 DebugExceptions = 0x0000000000000000 -[ 2.787324] Interruptibility = 00000000 ActivityState = 00000000 -[ 2.787675] *** Host State *** -[ 2.787853] RIP = 0xffffffff8203d8ee RSP = 0xffffc900006439f8 -[ 2.788178] CS=0010 SS=0018 DS=0000 ES=0000 FS=0000 GS=0000 TR=0040 -[ 2.788522] FSBase=000000003919f3c0 GSBase=ffff88803ea00000 TRBase=fffffe0000003000 -[ 2.788940] GDTBase=fffffe0000001000 IDTBase=fffffe0000000000 -[ 2.789260] CR0=0000000080050033 __va::CR3=00000000a894e9cc CR4=0000000000752ef0 -[ 2.789671] Sysenter RSP=fffffe0000003000 CS:RIP=0010:ffffffff82201960 -[ 2.790034] EFER= 0x0000000000000d01 -[ 2.790235] PAT = 0x0407050600070106 -[ 2.790439] *** Control State *** -[ 2.790626] CPUBased=0xb5986dfa SecondaryExec=0x020128e2 TertiaryExec=0x0000000000000000 -[ 2.791067] PinBased=0x0000007f EntryControls=0000d1ff ExitControls=002befff -[ 2.791465] ExceptionBitmap=00060042 PFECmask=00000000 PFECmatch=00000000 -[ 2.791840] VMEntry: intr_info=00000000 errcode=00000000 ilen=00000000 -[ 2.792201] VMExit: intr_info=00000000 errcode=00000000 ilen=00000003 -[ 2.792570] reason=00000030 qualification=0000000000000184 -[ 2.792911] IDTVectoring: info=00000000 errcode=00000000 -[ 2.793208] TSC Offset = 0xfffffffddc262e77 -[ 2.793444] TSC Multiplier = 0x0001000000000000 -[ 2.793700] __va::EPT pointer = 0x0000000093b59c89 -[ 2.793970] Virtual processor ID = 0x0001 -[ 2.794193] kvm_tdp_mmu_map ret = 4 -[ 2.794446] VM Exit Reason:30 -[ 2.794624] exit_handler_index: 30 -Guest CR3: 0x0 -run->exit_reason= 0x2 -aKVM_EXIT_IO: run->io.port = 217 -[ 2.795391] VM Exit Reason:30 -[ 2.795563] exit_handler_index: 30 -Guest CR3: 0x0 -run->exit_reason= 0x2 - -KVM_EXIT_IO: run->io.port = 217 -[ 2.796299] VM Exit Reason:12 -[ 2.796472] exit_handler_index: 12 -Guest CR3: 0x0 -run->exit_reason= 0x5 -KVM_EXIT_HLT - - -[ 7.280281] EPT pointer (physical) = 0x0000000006612000 -[ 7.280574] EPT pointer (virtual) = 0x00000000a06935fd - 100100000111 -[ 7.280857] PML4E[0] = 0x0000000006611907 (physical) = 0x0000000080e968db (virtual) -[ 7.281278] PDPTE[0] = 0x0000000006610907 (physical) = 0x0000000023b763c3 (virtual) -[ 7.281723] PDE[0] = 0x000000000660f907 (physical) = 0x00000000192face4 (virtual) -[ 7.282155] PTE[0] = 0x06000000031cab77 (physical) = 0x00000000bba5feb4 (virtual) -[ 7.282589] PTE data at 00000000bba5feb4: can not access \ No newline at end of file diff --git a/fixme/question.md b/fixme/question.md deleted file mode 100644 index 097f7d264..000000000 --- a/fixme/question.md +++ /dev/null @@ -1,25 +0,0 @@ -目前会给EPTP hpa: 0x1b2e701e设置一个level为levelNum的页面,其中里面存储的是PML4E的地址hpa: 0x1b301507,level为Level512G,然后根据gpa值的索引层层往下找,直到找到level为level4K hpa: 0x1b307000的页表,然后cpu会根据gpa的0-11(offset)位为索引,找到实际的hpa:0x1b2fe507。目前 -![alt text](image.png) -ept_quit_qualification给出的是0x184,对应error_code是0x100000011,代表 - -- PFERR_WRITE_BIT(位 1): - -含义:写错误(Write)。如果该位为 1,表示页错误是由于写操作引起的;如果为 0,表示页错误是由于读操作引起的。 -可能触发的原因: -试图写入一个只读页。 -试图写入一个不存在的页(缺页错误)。 - -- PFERR_USER_BIT(位 2): - -含义:用户模式(User)。如果该位为 1,表示页错误发生在用户模式;如果为 0,表示页错误发生在内核模式。 -可能触发的原因: -用户模式下访问了无效的内存地址。 -用户模式下访问了没有权限的内存地址(例如,试图写入只读内存)。 - -- PFERR_GUEST_FINAL_BIT(位 32): - -含义:客户机最终错误(Guest Final)。如果该位为 1,表示页错误是由于客户机物理地址的最终翻译错误引起的。 -可能触发的原因: -在虚拟化环境中,客户机操作系统试图访问一个无效的客户机物理地址。 -客户机物理地址的翻译过程中出现错误。 -![alt text](image-1.png) \ No newline at end of file From 51bd4d50382f9217fc8bded9e8bf1718ed9b55b4 Mon Sep 17 00:00:00 2001 From: Z Fan <140599389+BrahmaMantra@users.noreply.github.com> Date: Fri, 13 Dec 2024 13:38:37 +0800 Subject: [PATCH 17/18] Update kernel/src/init/init.rs Co-authored-by: Samuel Dai --- kernel/src/init/init.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/src/init/init.rs b/kernel/src/init/init.rs index ae71d63dd..7099b9b14 100644 --- a/kernel/src/init/init.rs +++ b/kernel/src/init/init.rs @@ -97,7 +97,7 @@ fn do_start_kernel() { // #[cfg(all(target_arch = "x86_64", feature = "kvm"))] // crate::virt::kvm::kvm_init(); #[cfg(all(target_arch = "x86_64", feature = "kvm"))] - vmx_init().unwrap(); + crate::arch::vm::vmx::vmx_init().unwrap(); } /// 在内存管理初始化之前,执行的初始化 From 83b5787be011ff4b45f0e9257443e53b67fc2d09 Mon Sep 17 00:00:00 2001 From: Z Fan <140599389+BrahmaMantra@users.noreply.github.com> Date: Fri, 13 Dec 2024 13:38:46 +0800 Subject: [PATCH 18/18] Update kernel/src/init/init.rs Co-authored-by: Samuel Dai --- kernel/src/init/init.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/kernel/src/init/init.rs b/kernel/src/init/init.rs index 7099b9b14..0be5bce20 100644 --- a/kernel/src/init/init.rs +++ b/kernel/src/init/init.rs @@ -2,7 +2,6 @@ use crate::{ arch::{ init::{early_setup_arch, setup_arch, setup_arch_post}, time::time_init, - vm::vmx::vmx_init, CurrentIrqArch, CurrentSMPArch, CurrentSchedArch, }, driver::{
  • $j`T;@fBk^GzAum`u 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 diff --git a/fixme/image-4.png b/fixme/image-4.png deleted file mode 100644 index aaf3288c34cfe14425ac91d71e87bc1ca69ee382..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202180 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�m7SOq?)PEiz-4p5A8V|0%@k@0k)CNaso=D z-X+0EwG!DY9X)(zs@>n>?i_;NYoY$pjfo!rqZ@N$0u?DAk6`(+@<%3CEs?`z_$zhM zUBo#N;Cflj5H>zTbcOVHU73KrKl@>?9PDTc$md=DFGdGcs~P`;#I7UwtXBh-WdaCT z>IVM;7H~oB2>*tiao~R!zx{!o=jv@hOX@%2 zII->jlB4xZrGQ+Q_`Edxcx04*?4thvsc_#%e208^Mgy(Z;!Yb|^E&#U61%+kwkoj6 z4ed4%>5FphlD6+Ex}{hBpU2n==_z-ezXX~f>+*PbhmvmX&L<5g z0^aL8@oIN1EVCdPppeaRGEZNQyiYRzNZIbcN;xs8L+6_IHyO^6$Ozcv)QnDR0#aqguTBA$Vbj z`UI4&%rT1gdWSBNULW7C$0mYPgIb3(OTp|`psSmIbN*!kAxuAqw-Px#^Owq@i2iq( zwrch76UcT|EjFkoFRSr05Fr! Dhs&H-z|*G^*E7+06Kk^#m;{0qL0m{k`CRjbAB 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

    qg*!rr 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 diff --git a/fixme/image-2.png b/fixme/image-2.png deleted file mode 100644 index 4447dbc7dc7174bcf89a417eed63a62c37628ee8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164920 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:-yfLJWGALO@N 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

  • $j`T;@fBk^GzAum`u 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 literal 0 HcmV?d00001 diff --git a/fixme/image-4.png b/fixme/image-4.png new file mode 100644 index 0000000000000000000000000000000000000000..aaf3288c34cfe14425ac91d71e87bc1ca69ee382 GIT binary patch literal 202180 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�m7SOq?)PEiz-4p5A8V|0%@k@0k)CNaso=D z-X+0EwG!DY9X)(zs@>n>?i_;NYoY$pjfo!rqZ@N$0u?DAk6`(+@<%3CEs?`z_$zhM zUBo#N;Cflj5H>zTbcOVHU73KrKl@>?9PDTc$md=DFGdGcs~P`;#I7UwtXBh-WdaCT z>IVM;7H~oB2>*tiao~R!zx{!o=jv@hOX@%2 zII->jlB4xZrGQ+Q_`Edxcx04*?4thvsc_#%e208^Mgy(Z;!Yb|^E&#U61%+kwkoj6 z4ed4%>5FphlD6+Ex}{hBpU2n==_z-ezXX~f>+*PbhmvmX&L<5g z0^aL8@oIN1EVCdPppeaRGEZNQyiYRzNZIbcN;xs8L+6_IHyO^6$Ozcv)QnDR0#aqguTBA$Vbj z`UI4&%rT1gdWSBNULW7C$0mYPgIb3(OTp|`psSmIbN*!kAxuAqw-Px#^Owq@i2iq( zwrch76UcT|EjFkoFRSr05Fr! Dhs&H-z|*G^*E7+06Kk^#m;{0qL0m{k`CRjbAB zw4@Lqc}`)v#p^h17{UCZHduv}_YiA{s#@IxZN=O6likmbf^KX{U*3!KT`%^&t^rz! zU+Lv#fnJ4_>p(JJA?kkN#jBc428p9U-xy=%eXth>VSL=M`=qXslKmfbT+kQVJ2na~ z70R-;ECpBCAc`b_us#ki7w451_O!H{3o`mLP*P`;BIyr~q0#^k832YqC#Sv)Wcx9& zn5@AXq=2}5;jv!gB1U-MfnmSoSox8Cj$O_u*v6M{sl|E+pQ0Q#P7!l^&J<7#*-U?l zsMj#8Bd;R^s%}jzn?9l5{p(0{r6lo}!AsJ?>o{1*St#jh#%0TS}Q~X%ZZXmOQDh}8cJ&A`SuI(2i9N?sQt6?6!M3N zZjcW>bWR~`ly}^@{cg_V!E^wDnP3Vx8%5lPKOcn?;ptrKspa_zMZW=C%B{Y1!0^lU zNKx;>)0_Gc@)->1X49VB8rL7BC+wY=3@GHm5%2fMF}t9d>M!1)_#sKlb-i}kknuG& z$3za%jma+gXw9eK)e(Xb*>VZppjOCpu-XJXyNJ70p@BT4a5B+#5!eVKlNuK1(!zq$ z%16bn5(@0L$zPht<9`%>Nbl=$r)#is9)eu&p|_KQJvlPuOAko}&TU=?0?36&#@HcE zFiKSyh|*LY>AXzmeI6r;4~z8K{-D-EATDG?NB@Q~+#RpKI#(-PL^Ec-bimz;riLN- zc*wKw>+3J+T~duc2=D;iLvu8M=bGvxZfbO5^D2x_*;4TpCLfREQoXgK)jA$m7I#>GtSp-aI5XGZ^i#;-M*f2&toC@_}l+Sq&(XeeG2=2@7y4mk;9*RyY&?-6wwk-R`}QND(LZ&ek2r zE|+AH!gVgr%$lMF{cHF*+Xm;~Z4y}}mzcqyRLRt&pt6%kDEo(GwCGw^$1yYqRN<K?|Xutp0pTcT}Ha5x)B=Hf}$foDrkHG_(AlrwP81)ZWUuf)?ek~HDX9r z?sCK^b;lnTJg##Gi*-m$J?eBS`X$ND=Gv`DV9{Ewfh?WS(0WWl_Hyex5Y1SFa*g1+ zFXCE5M^~RJ_0yyyFb?jZ;Va|($mu7hfF6qB_ zL`CDOEZ|8t$E^z>zz*V*hxok^c+qF-Gm7F3U9g0zJ%QrHO#p#SG3?Sq{P^#9Nf}TPg@}-O*nx{thp8wv6bo}WzrUsZOR6- zR|u-;jiXBV2pKtQtrx!exu{S(JhV7I5l7`6EIxvn&c$-IuHl3HB6IR37DN|HH%HiE ze%OFgcES|mu+@nlW$fcQRp>#?upx#)p_zE=OIoY0zR=p$O$8WfrM{@argxO##Isf) z1M;~(DcK)kU~X9fYw8XH^!ai8wu_xVm?QUH;=!xIa_i|@Bsa!E7i896BT;qMJkM>o4}T9jm-A*z_W5;}+k}Yz^ zG=z=^zl>5`PivrXt;qPXA@l?hg7al+C2nOu@7~F=hv6d&@91y-lHD>igR~%xBpLK- zo(3H=!-wq5Wr#R_veFgl09dPES?sJFsVFgeA<*uy*Z-fCcLVH?Lb}91G?g&stmDM%osXHT{|xeAPOzQ&x*3#Uv^Dv zDTKhorz`*7ycYK4h@=y(KDgiFW_rW->ZXv_Gy~6(hF2itR1@`StD$_ z^Fovr3Zlk(fpcUw{ff!(HM4HX(VaRhoRrfu8|&ds(pUI zSp;<+K|#@CRwahtip9aM{FH_6D&1Jt3-FvM`-LNG_H{iQ0qQOlJK;Chi8HbDvGR>M zYG~4}A&a?i@lRQ!GPUAcDrg=n!y~=V({m_d-Fqz~VaD?_G8Ixq`E$Zp*O9exC5bTx z^P6BOusJ|ib8arfkv^gkJje2mH;4O3=Jek& ztR1N{U()M30fFc$+~bHywdIlG~o}sX8u? zNcS_^uHTb=f!+a4j7TFO`(ekD^!=3SVHlzhhLQWO_rm)x!H)D#dUYYg-Z6}p_Kw{?DHKr@VwgPH z_upyOs@*(J%NyW*LasvI_e;z$jqi=icUgUTlQ`TbVoF|VG9iHftqC$Sz-c>_x5b%B&sg7_km-s>K=fB@i21j zkt70m$j1VvAwNJMLoMG@P_bO7<^Kyw=VnqH_Obeq`EXfw1KDPVHO4{YtvDjgmKNs} zWs)9GJi)KIV12SRCv+ydm)R8roiJ0)@`LwS`Um>ICZ_#oW=#Z@kA1-t?D`7UmtMb` z`Fhx1LEjjCZ$-zlu>wzJ*sCq#50oqioZNG15)-I_TWyt+4>U^U8G|ZWk1D}&y zuc!0YhA`~%Bk(oG)F-SuaBhq8@Uy8Os$_p^%yHZSiY*fRd?wH_jEyzy0rpYFv3FZA z?2@7<^)&rC_^L#AQSb#k zX0liw#07N0mar%ZFbK%KlKNnz#Tuo z(VdIxt1sy*zwk~4F7hQRn+L+gM$E{ZYGNyQ28-dpc+ScwLK>~nU_?Oak3(3)!bT$) zcAUJpPJ0@Z2MaS8jtz0+-A0_TG4kI7yQYVOz1z(BW@FhKjCV|I<>ZE++^7xkl7&4T z^|-5w4j$%j8rcG*%FkW@ashskJlgB4Ltx9t9*r91wAut_MNFVh z0v{h=L#ca{BRP~MdtetN1laJ%*ia2bbhB!J?#H8F#4>3@>dVZcyxVAzZjCZ@Ngc(c z{RL43>UhS2CbdxA01fgztS;iKIbB#7GPLPnl;5>7MG=il8@6b;35Z$AU68_gEu;==QW z%>$&8!t-peWw=8ECNd$)H0@uy^rx^&ft&`}kQfSU?}GfyBx`G$H9tzw?*&u0+#B@j zE8N15)^TMOi3{JU_Qp!eh8U^hBVHMZf#ZW}JIW_k)hWD{NI%RPY~Vl5AuQ1d zQMn+6QOpcB6TymXiqFt{DL>DAA-b1Uz_L5bM~OME=4vgsqgPzEaaTp>GI-~+0~E*5 zHp%6*ku(7rw`<#ys_L9YEYt)9zja}CKG!~-WsOQES?y_?Uk47Ml6+e#p_zULPg)x< zs3&>mCZe^@=EN4ECR0S@Jhg*n;P zxHmy|(4TXdQmVI2Y@^-{er06mouK^EgWxr_;<)!dxRk!~IenVElbd74#YZ2`5` zn0ngN?{gO%9JVh?w5#T$AOpRAnpK})&x^3>4rT|n`c!LX!gW-~e81dbI|=UR(H@#y zeNF65UX-i4YZh&DOE?tUfTm;}JhPV6f=ikd7WzV(CoBani^lc76Lu0N6i=7d#DQ;1iF;85_Ky$iKyz@`+yCo0;qDHxSRc0sHjO}=dG5NOV`zplTv9M5 z_!ipfxeYi*f(LBCN-zOB2v|ANCA2<)5qn3dUhnJ|Dbe?4@hF6xEObuJ^|Eh}NCQ7@ zR58X#O=02+sO4DAnPiuS;UajED|2w`64{+SaDaAmHy?P{227{XQIso{E99uKfS4vK z5d_r;;&w7bY#glmjc?u~h!hcwq-2^T4@xe$%fbYW0!I}3QfwB-73kCfD9dUN*psR` z*}HvY5nn&w-65r%JnjHh*WkC{MFs zXXgz}rPBzckFSjK#z`QHbGxI_N%XH82b$VspZ2;fo7-JfeBq49Ibg&KFPKMxn=!?*w{OaL zxs{@2aqs{F>IDPb0}$1jLz1+sRV%)P^TPVb_vd;P4UiXog`b`sq=7E$vqM|M>lc3L z9+|rX`g)wd8iqAd#COn<2xPhQ86}z zcJPj&-MxzUnC*X>y@0gpKOSam6lXfZ`qaFmi9PSP{-`f{5@_(&C(Wyi6a<*! zKXeq&W45=vg->q%OWA(Z`A7XRHS@2?0W19ho67ld)-19V^feH0pC~7f9-QF3IQf*9|EDzOTxtKZ=gma{nqiqyd>s-&3BzZcull4Tbm6PY|4Ko#>lwUhY?l zAHvtUt`E$Bkc3XA&Aev7^5|8l;V04T7i_>2?YyNz;PPfAtJUaKeH;IJGM)e5BK_|f@_2_#mpfz^? z0WZn454nJ>H_g(zs8VQVGg*VxD4>`Q9H@uNA4Zu~%8%mHw3V!pVOp=Z)eVh>Ub|AENsv zht86GPX+HZsj%=Y?_Fl|iW=|cd%`le3B9V$@-1^KWmhUNQDNp0m$Hxn;U48Eb$LF& zNQ<@I1{9P@MO5r;KJf~mqh6M_*)Li*&Mo^r>>kP6*WO9xPGwsS5>>#oag)g{ZXEF= zwGO2S0Vf%CXiwF>MpZ-{nkx1eJD%qZ#ae z^XXLshC}B3x|==xNR{uIF*PI^F6NB0;^V(LulKvk^@8r7TI8Y^szs%>E5)tG)*9s3 zOcAEmM~u&Z-_QeDdKq8cY@rmvtzZ$rH|Kh;;|S3Wp|$a^deFa8@^h-Bw@(Xz(0~e7 zQ`ghiJ~fKPvL{u5$gViRE*Bx|-uvXN(`-$HeUdT6Uj@fyK;muE1)bCNrG*+rlYuTU zKzk47PZ?VrwYm*n3QmwLy;0M-&+lD)t5IR+yf?Al9b*@LvV+JQy(14kNe|-d2Y?zz z=*+_gj#2WjV-3ke%%%4F-+}(0c-zrrm}&;|qf~bMdkX?+v=kJ$J$PCLhl1ydw_@Y) z>dmRK6>1?hr4p{2c07FJNK%dXblSkD*x%czTs)H$>-%wg-IcmgJzy2GxeQ~bWNj3M z`zW^2PP{XZ5&||a%Jt*F@`^QN%5IHASu-)*V~M@ND8G*V`|KFQA}T@v|;i&>2tA zF;A~UmInDJOr?D70gJ5CSKQ>uWusK>jUyI}tKRR1fuus+41t^_Y`g3~CMB0Jc?Vdo zf;vps>0uK8ZpY|3J% zu9YSukSQP(v$oKC8*c(M#-hQV(EvxapnuTo4_(tP>)##^1N5#X) z3XB!_XV-p-81^btfG>u-ns@CEZig9MO)ps75wHqm6f(MplPu+UL#LkLR7g>(!^74A zn9$UtmdJ)W!bxfU{#ZDjU1G7;AR#4N?m}CPp0b4vqKGE$pL$+cWZbNP71zvE8xA5qpOmAP(AK!aloiR?Y((2$hlgew)nP+Y0IJ; z0RS-PuQ^Y%T8|_^YuwK?sPTulD_*vs6GXS54Ub5p6J_H}r+?>T4dd42&y29rzL#pl zJcT0ieIBN4HTmCp8A*n-w9PWO7^ia@ESOBSff9TUt@c z{};>mi}%lBh1pbox$u1+6)=3B*Y|q+k0kAS-r0T+%58dR*#Cd^aD{)x@aXaBz$^h7 zb*jDpJxgtaC@Fsk0S1n+kHK6;|6{?+D*6ZKzoA%5=IZE%M!p!mh$Vds)m(q5)CJ`= z8cf>NSBGDuuQx;ED<*LhFqy;T#neRfMn)Aq(z&V>&?>nhqn}+{OoKZ>S3ge;t!y6~ zx}EjO(7dKWfG4fi`qa!EEizLF*L|JsTn{qSIxzz$o#T}Pgg+v`KJBwEEJBrX zem!AcyCaV?3@&w_V^DRS*8%I(AbO)`l9I_d9I|9FVIHAw{f;OZyi{lTN3oXV?2JY9 z$Aq?1=2^x^vB^`DJfbdU+k5?Nhs0n}QsbuMbjfmAh5EHn=kI0telHlD!q_pLnUD@H z7TzDH_@@_?`z);4{CTJNP->F~OjKcb(51!f*Pgt=|TEZ*ci`@pS72zKd!1 zi00H-zZ4S&-LH60WR2UPvMi#+o;Vu?Cm$;ZHuOs>FVu7M8WX8&eQ?T-KKv{#rcH6f zQO>CSkA-cx4+`L5yCH?)laC&`*~YRZS&48IV4&^GIjrwn*+YJ%EQh4#-0^Ju?ul#J zUNZ=BHrc>_5j#mZ!n)h#<|m>$?;^u`t@t4`hP52w;cVrcz1(XG97$P;LrIX^)4t1_ z-S4qW8S3PHFh1w27$9;3M{K0B0(kATrRGxDwbd~9`v2mpSQiP@J;*$%^{QHj}m z+|Vsk->I+`z!u^K92uFLleqMCQ{d#}0hy||d@`u!o_Z89p-PD3=F=od{q_k)zm^Rf zmksL}?L~t!Xx5td8x65z{or#KX`6xWoSbMO#%?n3RIjgNS4B?0^IGI?;H%BP0blair`LQ16 zQScIXU>TgYgk~HAyTqDFu}11`TcXptWJ9G4qLnuK@x$gkCK}0YpPUj(s1n1CL@+I( zMshPV^;KO&={_+zqb!YdknpB zE&qX*jRK)*r7$B!nF52!5M$}WvHafj>Ri2;aTu_zeeXpomY)+sN>Hzx{LmY*dEE3G zP?wUfKew@I2X*pok=;w*M;cy(q}#knTU6oG04ec|TJB9eshA#deSIgLzlC`Zr01xS|g-WJF7)HV!lpR3jahCC} zT_V2W*^^Ybsv~ye${E18^P)0OD0Q9zFva9Z-%gxXYs1(66r+^bax$kS)4tdvN2-*X zmh~v;&Vjlw5T8mTaVQ(`$t6cKFV=3u=bm4y8ti7+b%$Etf~q_FAQJEcp==)_!eDYv zHj2N0cR*9M3IACeZeCbw&sf(0JqH)foet0UWA1&ma1Xl&kR=62&u{4|V3>kIYB>CO zf^_TDjKGYZ!YT3AlDYs3xkyV~rOT(06{EmYa~hzpd>wqxEe*K1p$@1rl`@9InNW0B zywTpdf8aaxgEzHKNmR|aLV5v_t52EqIPgT$zsr)0h6*j)Z+)z2Kk^dpm7e#_FIS|4 z#u~cFK+%(Gqh~B&{YqHtS}JqmRmlKm-xDX~E_?{>VXa$Cp&GPt4eVcp6^u~VD1`dR zfmw@qJJr>ex8w~P4?fNFDUOoOo2bJ-g;*FJuzWFFO#^MXBjyl2EQ&SSO-n9l@e`sA zitT}f_SItmr(So8h7oMtBtu6MMPt83kotYlT{j$Bj+{k0_mlwCZN-jcp9{Wt!6M^z zjwSxY>fJ+(U-bR=tk0gg$ETP*B`0jnUcQri!@I{787~Mu;X~#t(YC+q6WQzh5$j9TCqW7Ygl1>riUycJJ15e-}pz8`gZ!F`=HmZ~rPi zNxg-!beAX|xlDXE;woG?EEhjl(BiWH=IOQ^k@u~nvvC6tPEjrXG#zs?oJ!e9WF|cf zPSM@>nn%EI`nIkYZYRu{y_0FDiYXDS6;-(9U!sP2iW4p#pxM;5C#RlG5H4O(w#jL& zuWpDrTF1jFPx-Qt6mcvLt!MRf3oE;p4g%XW&yhtis4hQzgIeXrWs`DU?l!`8K*)L> z7Q$`HRFkjfQ>id8G0z2=^>}s81lMd=WMU;c(727}E}kTim>&0Pxfae){+g_dGbjTF ziePBqz*?V{P-^@8j??d0c#)(sGDehP;u{IJy`(NtrpvHP7DexuU9&rB1|sQo0r9V% z4h5F$Oj#;Og$Kxa(u<5U^vr4*6g34zOuq=f(i~VIx`iKTZ44hSV3*8&p8Vay__Z%Q z?E|L219j0P+~==;M%63c;eB;cvd4Uf7Wi#w{o{=n4ivljRr!0Xq z@H)v7^krWrifG3HSvPPLg-01>->L-eGON6{-*SyxS02_S>YDu8Ypz>1>wmU}Zt0d^ zN~q4C#IoCJNCvVC-F~1qm*__j?H!}?Hpu?0nswR>QMR&WC((M^IKU|^KjG9cU!LWn zWx|fjQ`iBw2`gSpj~T9p4IOK*CPd{juG3)iSzZ}0?q(dfh*m78eZ767%Q&;6&b$WJ z-8;6?-drHImT}c4{P-#~-`l{OdA=@@BsVqy@AO=(Ie|i#w7WTvpG#!Ib0Z->XI60@ z!~(@LyIkBQxVm1EKszE^(WR{It0N%4^E<)yV{ZxD${QZZeepV}*v9Js)e@aMnqG`p z(E&NjI}QCXv>k@39?k(MRDM}aiQO*Z8VuQwl=n&!Rofx#YDOEz`fP-AP16K(gO-7v z6yE?>JFY5-{y6C_U;Iq`s6ENmX3%QWRXHL=JNVkCgCYD7>%FOqNm3uy$GAKTZW2TY za*7uzemdGt{y7YOmZkMDH=gP1C#xhQ*Lfph9_;7AS_laqI_%Q@&Llqz)vYRYi{!As z12?|qumxhVL^h}bOfv}%OlUEv+~3v+;UeFwX0OVOv6@$ZaZ zX^?wsX#@F9Q$A@1$%;taRETI+40DKJTz$5L$97c2!AoI6vbXXwJeebSIqq*LsbWe( zrkZ~<^L-lww?A;Esi;GmCa_tNy-Rg-9NK1pI;(aiP``WMQ%4K~&UW7lDUW=OGsh}M zJnYhy-QPmX}GpO;>-wUE+^=ZU>c}Y>ur&5(_MC$ zxgXr8&IlqF^-8f1Ypb*h)F?COauNSFUGjk;Eg=2O=rk%R`WH7*L}d52yO3=IQfSk? zhGl0M_de=FkhImkW4ffg&`YCh3p12ykkpXJ%TEJbb1qc8Q*xT7RIK!*7MH5|vUoK1 zw3OjQz~*((Ao#&Pa@r#DsRoYOVx9I_qiu2;bLT?yS-0Y{-#5dLXYG|>CzI}m)Wm4y z55uqYE7nju4qy$oM>LDddUDzN_%61mXTvU$4#=IvbYlo5RXB5*Kt-Wnu-RKqaSBHMVFt%DV# z{EytTR(0x3mM+<8T~1&9JZE_OQ@*Ox$U2b^{;VHQ?cQ=hv-_fX%Zv;GJQE*AFxd1^ z;W=OU9GQ)iSOlYpB#>q(8Ff!A>h!DpR5EuguxZp|B5IOtJQ5_eHu4ndEi+{0NR-_I z{T8`B6}8mJ7hX*0=!&_X{W-v&d&c$t}lf7buX^M7$k1+Y`s?X+bg|E2Ko9#ve!W* zy&nnRPSGrfwisgFTyW2#Ym`a@7Ks9f_%z_XQF;=tr=FALyA{}_jA4%}%HOX+Yb11v zh`hMgET9$j#Ci$Y z{P0%PF}#!Mm^;5as_YLY{4b8jyii#sH}9zHu_$V~@^jxtHWFSo!!FgWym5FZAB79% zZXTj9rB&arADqO+;h;Tn!ve1O48)(Sxq&Pk`%SPJ7ANO)W$H zmkV&5TpZ#l^B(6a#JKGq0a*5bGY$MS#`~5cy=)3vROv72HZTRlS%;h zjf*^of2ywZT6m+N9A;qd7PmQJd3F28Udp1bIE}QUF-osmv636?H{zokB;FhN@dl7& zm4;E>s)0&@Lpe7$DiSY`a)=PWu0}N+(K4LueNh@6T^az1I`rDal9fM7;aJ@8=VmYM zLS|~#)0k!?&T{i>6z}X^UGFg&N=cXprQJWxSX38P(!MK#@}`T_cXrG}&%18s&hYG- zm|C(OFpYY9BzMc$pwdM+6IXZb=(7!D!)z=gSnoubjEmPZAonp&z3Ah{Y#DrQrji`? zX;h$bL%_nt%#TDwv=xVj+@FyXT*M}J-rC{oORU&)s66q`T!BB&$)hH@jC~ny?7IlL zJyi5(m+U~}JQ{b$xB|cCWiYqeTSyc#ceM zX%~FiQv{81{<1~Y1v1TjZZqZCH@=D$hikl{=2->Bk^P-IX`_Se!peyhJBLu|UHPg( zOZQT5KNhSI3-P*OuaO3m5oJZxn5gxw8b=fX=vd2BkWxdyT-HII1q zL|Gr4Is4_k0q^o+9-osNTN5bL^u6@PHbOQ^1@Ii;xXPdU%2m76laK+sef?(tDcSoV zWsS2pKP(KB^{3;yq9T@^z4o}87@EZ8>alzx+Bcx9gQZ!vemb&&g8Zvgvu~27 zRrt8_y%ec^%O_=}yicEG2$$@B9k~Z_MkQ8qW?^PE^I;Lw>M+U76FJIe`l(3@8}OD> zNl!HrmwR+#1TVodC@XQINvnY*vh65%FF_q2=X`$UvpjHzzl$CeHtRcUXfQGFf=)9N zKR6zXj&C~Yyc(An_?*_A&a1IrHo&20>pc4M(!z={I{hsjL>Px@1n07<6u3F}41?xj zqcL?{E872kECNrMkogl;viac>9UWWMm8Lakw^Buyx=t@ENpC{n`a9@AUu%mgc9~&8 z33EfY85Cxz6n3^-=>iWTc=o>bp-Ap6{WQ6*$eCE(7rvVXbM5O~L-+4wYZ29FX-C^J zp9@3oOT(tx34UAE@iIO<58oV;K!H|}MrPiTRhTp406w_6#LVblq$O!zL`XeUTO(@r z@>oh$H_1Ym60Ys{5sv7=C(ha&&{H2J{S2$)j>P+O7S+n)e3_@GOg~8VDdf9WZ6OWh zk4+0GtnvU8b}ZOv#8E}?HPz;IM2-GuPsf#HuZ#m59oGXj0zAOgolzJXRU&EYQ5$rqQ^w9Eky9;9q#7^5I-~8g>*TyZOC^Y;P7K zA;!7cMK|A`L<+AqHwdFW&KFo$?*TL6WLZ)@w-0MT3!8l7RP+NG83qO-A}lO4G?YJS zR2yJM_My!el6~6^G@#EeP-mh1{XYEPANlY@>v!iuL%r<9ttY;e!uAew>%jl>(Z7Fm zdxq$R8~qygu{V6+Co}-=cj|Pi{@=&{JR>Xm?=xD;P%KVW133CPb^i18f4>5m>{L~d z0pqmQ?Ro3&J9308j2_$%qz*h~#X5C(?up&-p%L2ka3kv}g(D63f7)-n zcM>5XeQEdY#3mP5iV{Fty=|ZOvUAYmb2nxaJuD_$@oholhQIomE(BPZdbF*OkUq2z z?^5@6+7o;nf66@$O%|N>dkQYJIp=jE_KO2oQ+w%s&G#G&PHP)n4YuAQH9L1;|J@Eu z;+i()X}w@cr3cyCdpzGz+l_$S4R;y28G`w9KY`xD<1p)#@aa#6Z)xGU`Qfj<^(i)D zJFx`nI)wGepw!QtjxP4|@cD*l$6=Qu#ZxyK)Y#ii%1%s32Fc$$(hnj+CA-zsM+v%bWyDrWA%yW;U3k73`&z@s%r6VN$W!q?75hDKG~HWLZV*(U~l%nY=BHX2c*Wn=si3;=i#lye;q%Mf{EZo9IrhQ;#j6Y)rxOLrAxwzL%uG|iBjo#yb<`q zK(ldo>5Nd(DfkQZIZGwTz)H)pe4T=$0JLZ~^1ZFG6r{8L%{$)^j>G2U{Pty_-y4Z7 zi|yJu>PVM3%qZ&CnpK;LireKYul^onNAcV)9JL3ZC3at9%f7aw-bB!h+Ove2@n~|qx5{Sy)l!yJ17aJ zitdcN=M>vJ=iVovuPMzoT{I47#deTy>8@}{9}7oSJRby4|M=0k2v4YpN8E?ARhwMgy?ci!%J*6w_^q~$e)ya&>FqTS z1NGu2_hJ@i6fkLDFHme(=5ApeDGK<#nqYX6479Iqy?UDoT^to=eUJvyEr(Gg50}Z5 z;H&nlOXiw@V3p?7_|?&VvJXqd(Di<^84!GW+7=IFk`*92^Vl4z($*dYp|}ns4Sp@u za@ns2dj)%zYF33;@j)FH1UwFsF<*_j+u($%7aFOqX}%I9WYpCs>#q^4)ge_8()3Zi z*(z2xPP`K+bg8K}JKq%7tpHGF_Tkxg?n%+efoZhp7T;NikR12d;GN%>NxH6*@AxA{ z@--`DCC$!UJB|HNRU<~$&E(Bp$DA%G*Ioj8VC0}lcgWTj=4@h&$MeFEa!Wql1nYR~ znn77dv3$kqw1kZ)_Svit3rm*Og0D(K$hM5n12>X0JabR@^NE@(6?Hir0E@uzL7uHJ zTK^K2k6U!o%d_cK7;q#$sw6cLd^anhH5#F^mDY{$H;qXbETq;j;M_3>>Z0^ z6}@8I^oh)Bp{mEntfJ1Sux7ra%aHNuO4_IXTEs<42bwj(Ykr38+sX<0hwUiq%xwNc zWg0=0ydImceu@Lw-9f?7%BxO1e47^iDZf=xs;E))|8B?x(f1JyaL~_$MbGV=y|BG# zF%3F~zZuZXOxm2H$hXph%zOKo#V_vq@RmG^_ds}ZP$u;s3hO5#HLJM+vyCn6D5)8iGO(Mv}Zf_#p^4!AUB+{u`I(#1*66? zv{;~jW;D9(&y33a{}~OIJenA$h#GE1#4Mk9_S@5$Ekqp<6ixjiwHFq5q~wWbM`CV? zSWdl0bs(s)wB4P%WbQlzJN@QoFT8;Xy`wjmd_xj!gn=b3;(Y=2+EBdgals1PI$gU* z1YNn|Ce@nCmM>Z2K>nASzSw;FiG*XOC(KnA!c4gf>OWK2@q2r3V_H8N(=KjH@=$&u zK5wj-xLRSN+>AfElR^SVoC2F&)0|~awb&t?mkzmDv2E{0HvBe^NGKtY+E*ee9azGt zse^JdilB_uA>+Y;Dw*ibY1YQ(>kBsa{ltrnpDqK8rHYg+1V^Y3CO@`#5`7*L{II7N zNd}oD64d5&r^Di@tD>G`mWHoj^o+b;ocV08;d0KYN?{Y+8?|zDl_04ck8f$$;?MK+ zk4JEGQUqe1HouLc&^UJz{d2URI${z4EE?ss4{bs)(?Z|3zpoKsJt#48d`NwJomv4$ z$o+*9yT9W^t4)4k-R5&r*xkk)*`rzU10wRR@ENQ&mJhf~>cyhc+p@-ckT!7ui#AU; z)4-bs@zyxCQUg9~$0&S9b6Faa8&Dy%e_{_e@Dfx`dP;S1&8`UcuaaGztJ0P)r|`yOGE2s=G0 z&>JWPedm5O>)RPlK?{7?hfcG!$M65VWXC4lw#ewMuWF1W@SV`t%9{8f_3a4l{b$D3 zc|+6355Ow>aOY>KKfN7cvVZF*02+n~ke(@U!+ z8F-OuL)Up-m)k7ahI(drA8+0g5K5t_atGms;MpzBgprxUuMpua&@NR<`g*S#heT%C z&1T!+5aP4jf?cH$x4Q1R0GeGdLKAw}s!)n6t!$PImV zFe_h)EWP$5DD7rj*I+>R6)FSc4?q-FDR*#5Gh9A|RFiK)dd~7lwq@KT0c65$z~8c; z6?CPsST))+Eq&BK=E-Snw4ZS3#C2SgIXvU>g2*#$!-1R9wTlju)vQ*^*o=OwvFfWk zl6asUFl~?<3h6(cMZC=uw0At^mTYKH66wYb;@>n-?FRhkHEn|vmp83ta6mABu9(69 z{KmCl|J^m=Bu}nq$7$lqKEc2tU|^Z4=y?wB;@}d{Q$}G^Ne5W<7g1Qi6pFEDTLz2C zE2BgQ{tSgVmUs+_Cz@7}WG{~9ra;P7?MlbFg;x&^$f2;8`WnTIAiR~lFLCuwoI8vA zwG2)%9cmBlQhz*KcKDVs_GuTmHa6yFc4Nyo!hdC-jt)MTN_(*n?VmD?ywzP<$p<&y z^zQrpMZEKFs7K)BfLJ{F44+J>%ld3*eUcQRlX&(b+J=ecwH~Q54d!}Y+jT*Cv6k6_ zEa@`!NHYKHu=oO;u~zQ<79)N3D*3N;VX>^yWW(g0OP5UwSlMHc2kAyJzUUXweCk;_*;3;H0@qU^j z@VeAtWangwiZ43W)(MtW`YVf4^qxrLn%g*XkW%yjHV;jqY-k^4|2aR4T~Tvw2XSKn ziwpgLXygUE$TgC|2UO5+jz4$nH?TeKQ@uOHKw7iWy`;(?bBx?XufC>Vn1pWOGb^UX zPrt8DJL^Q+v?5zoi$x4p0zYW4Qg=k={m_*np;bc!F*sm?)4x3xoZFa;zNwk9a|5sW4xt16H zt!uIfcmR@{cG=^GwE;PgNXP@0NWBK2^>vEV(T>lK8b5hYN@B6{8aRyr4)r zi~X@yy3Cb!RYUe<@pL26FZa;+=O3VQu$0k|siTom%QDstzv_a%tpG4{6NN$&a>rwGiTH2#C2iTzVEELHaAN=4W4o zv1NOHom1w~>(bG=EKRA48-L#KRJ5S91E|8Z*pkp-5+BfyFg)Jdqst67pCXvk17}lG z4YJ7XlIW@v98XT(+^{bp$)=L4TyywrNv4VRt^%LUosGh}?<3$*(Zs(_I2mg9;LYlW zGG!WZXHhCRBs3m~=^xnX6=-By65;XHRuIfz`kctRGGH=CDP+j;V;|YtJY?NaCe=@H zG>~OsJM*v_!&&yUHzxOgb$Z= zam&`}j$q+Xz$-qb6UdBHp%q z7s9g37(Jem(YHK4w8V~IJ`OO^`Rpt38B^Uw1f;gA{}c)9)xsNrbvk}cI-K2E92Qf- zV%GFytwo+~2R4`g%3UWZgbND48E;D?>%^=PFQ79Yo`tb%4_=hZ;G7S+M^|OT1N8gc zCh6lwH4wzD9L&zq#H008Oq%vS%sBMIIdCXVPG`0sMw;4w3$_x*gjs^9P(y#1%&Uj} zw{2|3sl3U*0N5N#=+$k;z_*^0ICrKP-zf8G5yL3(E6gmaO& z_h!(S7&rakO~2K*rSDo+#hgHLa;Md|ProJ?$k%37Bj&9lAgQkJ*XO~G!|$*UGKP2i zlixH(4D`Ge-a_^LcA(=}lQ)1d7$(J_Cinxm#UJRDCy3dH!O2h65r=hYY*G>?JSw7HjU5;W@bI<2Z559yH>-8k zVdb$@R#Ho49Lof=e9W*7FcdAN_FE(|sqo1f59sX}yZ^GE!19x=R0Mu{yt=7Mg0J?) z8wJ4xGk?n&6dlWq4#7_U(?+3;yz~4@#j4EAsbKFP$z;wMpo>+S7|yE;T;BA5_Rqmv z)KJTq>%yd7z$5<}h`qt<8qs14CBJx!b$Y*Mv?Ny@4JGCswd2~$5)J0v4TVCoO5F>c zhsFDN&GlO48t6gn^yL_vR``}5*LGEpfG~tsR0F3iGRRpXyMf5h<$93>8xrQ)H8PM$ zo2_LYn|iC&$fW+U0F%b-#T$2br6)rXyn~I`LDlt1xiW*8bFB^pgwpr|nn765psZ3{ z`2pRUS+ObN^uk3^T&>yIB3I=Iled6_se{JHS_N?CJg3{`c-Gcg)Fp@y!^dd)_ zIm?WZ#F;IyuxklCBlY%utArD@x(#+`kHpoDBa<}{s=W@&!aU8eBjzzRn>fDVrFT%n zmZ3_TOgEu%xvrx|$}ZXEvqp)O7_0b2G71fh- z@7Ob!rQ7!CfAnm+C*&->?OgtPyauV=?LF=8{8-vykRW-d;obKCxccV6xR!?RMhzR= zwi~mJZL^KjXrrdFZQDkZY;4=MZEx5l-`?lm_rdpXGP}v1GdnZqM-VspmSzR|Co}K~ zN@XumWueK=WD0Xk8H^9;zN0_u2JFo0#Mctmy`;*+pXeps->!JLLdhm(L8E8q&_eHbGbrSgv( z>dy4;N-IE>{F{f133>N0Jba!-4K^rKCK7>3qC?qM;oLNmk=cGm`jh!KBplc#q)LIutgg1yo&ZoqCH%j`Bd9$!qZllFa0_CdJ+$-wX?N}HJhG&pl zpu!E@MX-vshWB!zVE2C6PbIBLnW&agVl2aE+Cvc3Xu}0i|c2Mx|D&y*Q+*w+9%vWXx`Ox{cf$80s2u?Y{Y6_^GGC zg<2>SHg(fFb31*;8$x<^k6&t_5$skP`7%^*eodSd+tTAGi)Li5A)Huop3dLk>UUBt znTolzc=o;v?IDArDxrvFx)at=B;L`d%!oA0PHAbMN5ihRyWu3GkdYYIJu>{|@`MX# zbg<4VrEdmOJQ=o!b3Evj5of~KL#2C*AgUPr)z}UGY8bdo(o$_aHa+7+dbzra|n8x1q)QQBK zE1y~JmX>0?DOvS!S1ngI=JQf9j5nW3RKRlNxp(*zs!U{+8lqHnh#xP#PPUsi^IDeB zdy-zROl)fFwROl%u~kaES3>(EBZ=-PdSOGVE4X9e{5zWy)Z-T=F9(%;zkK+no7g#K z8oy$)E%!OXUuKTLu_z`t691iW+#2Rou$m=o%HtB=hI$~MOxNk%1_CQs%o&m3HPvHZQVEJTD}Z_ zC@}XCrP_)Yb?7I&jzd{o!ot%ihb-kOTL#;&Jz(~==(nGl(N!$(B9{K)IP zx4aGxu0gOrvq#M{8V8MaiijCehL!o*izY}1UMuJ6#%WEWgu@R#pY&JIV=7bzA zY#E>He35Sv8hGRHy^n3AzQs@jteS+>B3YVI8(w^JA97-N@}qVE^+4u$i<$W#WCoTeRfOC?6CLC+W6$ ztV)rt;7a6fNTH2Ce@(<+Eqps3LZh9diM0~)dHre9M%;f1jhfEkAFFh`G95T^&SZ3Y z5B?8x*btR{5JT8vYGLQj zSc|Ky^L)WGUKdBNiB`#&hbHP0&R z^4cj|0sHehU6y;8?5W?Jn{`R93>$s;opX?qLK|9mI~6^#)&@eYh{YM)_V(EAl zcbc2v1%{gONQn?1P287mRVAj>9O_!h1*9 zaPy0FQ$5yvZhx42<%VxcJzIJ{s%aPNYHm^|or&ifDXsV=jV=hWNOyuF&oh}(aDYxq z7DgL9c~|Y0SSeIna-yF_ZEvJ2q_gbFi>KGh2QdNt9O`wnuaY>~={5ISWP>w74*=IF zkMv4r%b^nA+^i}pwjiH_L2gifI;|#O+)co9HEN@>!i5EIvEKB&as3deNrd}LZEpL3 zYwZ{Ge%giNP<2A)re=(qT+BPoUC(D(4%}K98aW$cFFi4$HLuhD7+ycNcLHT~7gxOC%rxU9)2%O=4 zM&H*I#C$upq29jX+Nb;349aKZYw!v2>_FKjcEwDAnCWyNqMjp9$C~|WM!-o{r7rHH zRk~uJ_TE<|GBgz)o9nGwl!65UxGvN6U!k+ERADu}Smkwn+cjU)%Ha@=s2Zm~*7bNA zL1Y8eUnq?QB4nxk9YuHRkQrpjT zbYv;eiI8Nl3AiFP>$rXzB>?#Z>>T^{sCwI2k>PKF8zN_TO3 z2^M*hG?pr!oNiKV#kcel{Lf+&;&W<>z6(|4iKYHapkA3$*Km%ps%Wy}y8IOm_l?go z0s$EdLK@J}_p`Crwz1dC`+_1BH%=yS42~MTOzFk5w)Pl~{`4F>9fV#e_Ej0`qrO}i zXMP#$x*#)%sI}%x{fbmwB8WT|5PugEpZEQK3z}AIyh| zfueK%qz@N2BQ|EKY^eAR73#Th+9k%D@NQ=;fQUec)&{<%BWF#M)NT`^_E|(I6bzeps5y6 zwUpMTT1zLeF$(c#j4Wm-@ysOBk?7yLX(^5Wc!CAFVQ|c_X?I0{#4}*1KInV)FI0Pp zp(4_o7xrkH7Pm;i@A~#WmR#|mcnxC4+Fy5(P7_lQEv-+axPHOZ&g$7mag_QN{Op6T z=LJW1@=Ei+$8zo+7EuLM3kK-l8gI>s}jN#_+eKm~A3lsY@ z-fBm&?K2d>QLiM@(#;<)KZg<>Ch+Yz;e|m#jg(Jj%-|<^dIaB^f@Fr>^YU|q^MTz+ z#y}83OL;=a+zLxFnoNK{m@fKk8EgFlJ`UpJHGWsqSUFrsa6eH!_L=v6k$x5=U_k@0 z4ATi#kSAL%V%Upsn`v>)a45L61g2hhS}Cal?5s>Nr;#!+ln4aPb1)K!)xN_OgL)~G z8Vu(8+ao^jM1mkl@KCbQ0aYGe8#ynTwT)u;{c_JfwU-yl1z2T0){F-melTV1K`UbA z)NJimSTAwpTjQ@qpbro2l&@y$x^}PozCJEZ6^;pJvwS4!N3(A!(}tZnyOE5-5h&o} zK!kZOu!4KaGPw$8fV1=Y04ym@O(%JL0_(@uVVLZ@n!ysE9+SX!o~;Odt1~!~kilrh zA9?^eLIBMGpr)_XG&s}vKnphjDc)z+MHb};$d$pqeO}=ODg4u}k182!TyWISuW`h5 zBwhrwy6+klSjtIPp83}%%>{+KKDR^?>m_porC^m1U2EUrR*kvY&gD;Ta5{-3%P_VT zyn0{eyDNIRsR}`&f8aTw(9gU8BiZCHWV)SfXT~jPrjNwM@rF9L@du8CplYo(P}UDh=e9<$Cgv1l1W6;{o7@b4cDN6=Coi! z`3eGzGvXw-lmjD*(|0St#uXz%KEq)M_WP%I$4$v{#MDA_MkuBzwtYTyl_Gz z_U#~mm|9uk93h)6=;-kzpGR5zGXlc;bxF9Y+79=|R^5nt9m4{f^X>wQa}O!PNPrgr zXiW9Ts#NPY`Ol$W$tShM)HCtGE_iAFHsT~Z#;W@n$)K>?!brcK$l!r}AZ&WMt>c*Z z!;Plk#8{@igyh#yGQJH`VjNpuGzgJGd_Q-vhuD1_Als(k#2B$4j~yutV5=1b5@p z|F924Xn(U0F4nIu36?4V+;Fa0W#pER$*&0F?8)(U);}MJ!ZNO7&skn^f1yQ1xixL&^muX0ItaBgGCV&$p# z{4p(Y8k#>)BG)~hs_`T)D4pO!Z#9fUf+?3s3fuMw;X?mfJoc6mjIdu-i$@nVTajN*Hm>^nZ6AV@eBY%mp|+~TV& zah>>06x|ke!({swigSaClD7Sw)Ll)jEy%Z~>T^VF26L%Oyea_>tgOnqz}$m|Q4;mj z3a>X*WRnP)dwV?x#*e<4s3RNQ`@|GqMy{K@ zhsIR4i8}6iWMSSut?|}{LVH*$I<;Loh#jL3>Qca-&MkgsjtF3L%gY}=jA+@<738cu zoV5@pVA#Li6hLb4m@+_Fl5M*_ENyds*k;AJ6>;o-o67#gCZIkeaHpLOzH=i*yhi#q zfF-5kH2t{CU?TfcTt0D8!zz#}o}$Y-zKMAEdc8F8y|23k!;Ta>90US6 zojC_t`)gcz=6)|kw6=fOjmZ4=6ka2#*52{7?vy+<(QC3kv}1n6%<$uWlqb5TQTR-j zbc^KU{)3c-8ep&Q_uG(-stR#&hOJ(GsY3G(8AFtyC~>j^uq{P1I2&n!rLR?8%ma`T z%*RNooi)t`%jhvWL|TYnY#L?)%%(J5RA={$xFBURrHg3y^^JCVu7(6M_VH@aAY%yl z82d7Y23}n$<@QGfn_f-wQU)%BJpI|G1U@T`e1)w|PFyYJK5EA8{0*&%* zIw=VZ-u4jwq@+pwDS!oiDsZfc5yq*oqP8eZLN=j!e-&al7){e%>M!+if!N3h#cXCA|13%eO{G4PNNn#zS^K|yL zjB{iu!|M?J3V(GBc-6`hg${Tx`SAer{t^&zB2+!%flph3GL%emr+2ml|$bv1+gl?jZM9d)k zwm4*eE&wshmLn|SR>ostF14>FSRdeptN+7xemHr5XnJMB9&~OR7%<2-S{enPMB`j7 z?y{+k7)uzM$!I^L;lk_nB#sCMd&((%bcqQF^Z8tkmWZVTDaMHff?5gjzVQ*WWqoJb zD-d-&ygqym*^jKbt9MBI22Z>rWyH?&Q?KH)z)IVEJREWnn#1iy;-Jzjl{6i|5z=UJ zjZ6Z^W}O$FMoo5krji{{tOeg{ZNG}WGE<1W|HS#n4F^-zOZ%H;l~yrYnJTO!Ve__y z5!(%rBq7ms1dZueSb)fxVym?_7f8~yTeJtohQ$G{V8bbP;9qlexk<7MY z)6{+I<*1KU$PR0D3FG627(_4)?ofmgaUhsFr$Iz#K5ILOVwf71-mQLRNQIs@abg-R z>q%CP#%}lLoz#e%x;387?TzV7#(tFv^-Hz{N&$xSIsfP0k-{|V7}UP!I|*WOTZOJf zic!aru4<IITL^0WQxkG-j3!ogGD@~LRTN8X;?JrR+{(((AkifQY zR;-|$)tT4Y)xUG(Q*03%fw1s2Fp6yzK5^zY4%Bp9@0=Qqw7=^oeGD@h(NzY z%~s3p5NUlm$;>GaDo*frSFi7%Z7oY;#dC!yDeAe{Juic>BOY5k$~%7-b+8Ah@)Xk^ z*u89O;syZTW2Yby7m-NMASIyNQwD}ntQg{9l$zjwGT*zNiOaPrBDOk5y;$YgL z>fYH*6CLa9$kU1=tG$jv#&t$8xLylJ(w2sB##2%&O&&j{5XstZ|#35U?V&^~g zbLgg50A44TYjuFbq{Z!+my+o6OnlD+bVFEfMe%+ES&Ry_!x9*D<1C_c_3&L|5sOg- z>*k4F>jLVqG|3oQfAsK3bgc`S?)5!DcvEh98uDnORV1eNsS=<#DbELYKjyaa@3DV( z$^Ll)Zs(vY>$O?RULPEPfQ7WRMH2Qr<uuIy7)x}-$C72l`|OS&(J<0esQ2t^bm~k~_Q*H%$h!W+V-NAJ!M)*R?^Tp_ za)PljJDmf=MgAX^}Duqh<6oJ^GR< zVd6!!C0t7p|HWWRzle9^mUke3BYtD9)z?Rn>{is91S7-Dkn~29{dkjtnf6FJ6S3Q= zcpcEIfA_vb*wr9Lyy3C7O~#YDW(F%G z*CNB;HvWHs!_xUeRk4yQe8b%acF?0-+}HA+)cIiMnZuDrPY^9epsj-xRE>R=h4kQ1 z2B+WIGjVE<*d&``A%+^>B#CW6z15iI^S7W@rV&WlBe0sAmB55E{C#~DtU!&pFvt37 zmR$ML^z=p!@c@d>w0<=Gd^|!!V=daglu@cHdq(VXV}Fbu&Py|6OFrvRn)Pt^ruTaw z6*B=003ufYu}`(ViGJ~N=%drbBO!Sf$b2v1j-0q>b9u>S%8l-vj%7K`jD2IU6=b-h zhRsaZ>dFsR4=RRUJ0jKn_S%1%4tBM-Jp?=90JA8!iV&hM^2)Jj=#&$N2An%vIvoWE z^1Wy>8#myg|1br3ExodJKj9)iiWQ@VXWi^_DutSQ+UUt2;bi&vyDerY4bb(4nG+K~ zSyvHY4&W@eP7aYXljYC1hB>sS9&LZ`y9*}%bM_LK*$4R+@r52yEqkPd-HbTP=<~>$ ziCrblCO68>Y$L~L`-5&5%H%-zfuDRO_w%E_Y`bQXaHpOk(^goH{O$u61Wv`+Ntm@v zfvm(PHsq+Nc4VT1RKyz`#6w8#YTxUFW!~qQ#HdPM_@q-AyPiGzfvQKJ2i`Qhv+^I+ zr&A4|(u!b`cVVB>g2#&=ABt$p^_ugBE=4O|J91X0n{p!10Q(506bnNIdp3}^p$);c zubHN|d&b`&8lf|Urt!E&T*Nd`DQ6-cnB|07wIb&Ay>?IZ0{fPIgnk9$fXy#ywo(ct zU3S`CRa%7xCg_b{in3VH0orKW(EUYUwIhIP{6cuxh~)_ZCF-^&Ye;-$?iNoPd#h)u z)zT*{*~PcT@Q-y94l?GfpM|wwh0hRY-6V|l$evKb)wv^9t-yJsr z?XysOV~6yL+JO<>F<|p^`|lMFuuo2o2ApktH(eul+D9(({r8a_27s)$bQl9QnIIdw zW=n$Xv<0un=ES5j(y+Ev)V*_SuNAT`qrybX3Q?TrZ}owymw2p3Tf*j5&iuAc{6EJ(9mZcC zuJ{(P>KX?Axpx&n-#%zk`abM*hlH1K+~90C?aXA2nec+GUDxGR-P+iD?$r0Bk$=ut z2f{mL#BY*LZDYD<$p*2P{mH=t7CM`Z)b~l_`*XSO_!(tUbT5@)F_=PUHu$s(ZOQIJ zUB<%9E`BtfP9&h(N;n+?;yT*Fv2pFIW}5W`cP5jxpsmU8Ap~uN2MxgcS9u7bUVR*- z?;SBOo7pXKW!Mk*%e- zDS*VjK26aiE_=_GwPTI~m4b=VS{9xMSrS^_1Tux?yNaEYR3-d7lOn-e!OCluz|kwN z+vQN07w7}n5iDQFa?!{-fL07=+gZyex%p6aZsqSFOm^Wd{mN!gvuf9WcYdCKjKMu?)G?|28%LKKS+q3YoH2lH$>nykK4rQ4nPSY(+GVtE^j zkIYdsIjW+4-4(X=@_da~W>f1!W9I*4E%dA;c`cfpDtdWpVMcb$JJ?K zrN^g3v8JSV!I>e%yCZhkwM|V+rN%ET0gz#8I@^b5C z#Z-LTIxq9Xxv4))^3kzQEJ3y>4$Hx@f#SC0Og>zg;oI9vs9(=dqR=nBkx>zOq{=o0 za?~>+7-T-;Wzn?paP}(SnsA!Dqx_QyCRaNzrqAZ64JBH%vZe%FCnNpPX?V*r6}#XU zmHPv^+!@V&@FqgL<2q&$kQ|~5>x4EqkmOm*5MEWN*>_Qa8xavFK^u|0dHvqK?`sd! z4rUQdZG_R_mZsD$F8oVFI;@Xl{}JI&37T{i-oo~ChEP9~JCT8(o--)V z4xk(VgAl6xYB8sW5hWq`D%h6mspM74zIjT)TrT0`6&{;zxUXQ%wPw{ezu8Q_W;hR7 zZH?(Y-d#M@=8n}YexmGiax~+EdU3W4iJlwiCVwFhnm4%j(BC(Fpdz`K z2fJIJqmL@@!`8{gO(qCaXQi$>0q)u^AkNoyyZ`?z3uBH8>(OFx(ma^CFl!gU@2w2Y z(-b|h@V4{(^V7vo#}Wj`V}&0bO&nyclVUlg&Y0-v7%g&gV!xio*dHyuzYFIWdg^3? zK00=icG{2EtnzG4ZkP{!p&8q+mF#Wz>Dv4t%irnte_8wbDA0d)*l6z<=bBWh0ksx`bKXn+bz z?mfwVd0>&|14`7>r-YBercIaJIAf5v zYW&Lt@sFtd(G1Q5DcY@7#n-1Zayr`0NDpwAi|^ng9x+DPF-=$<;^5M&B;;SBiE9{qH$30fJl2~bWkN>h2Us0gq9x9U<-hmxP z#IwR_J1JXEPRCO8gswT#n!8HWti_rOFOc>fy_u5hW^~}k!HMaSib!*aMrK+EseVXU zPbGxm7C!8(L8(F7`-7!hiV;@`$Hxqa5a_i8f0ITTbZ3>cL%$uJE?1dFy^+ycw`eV~ zgQk0lC<~2a=aNeSTU~@`&)n#&v{!_g4-Gu!wDckWEy1qWG z76F(4x$dcO5!WS?CDNo@*}f+va*lEU#_tRJCkj}3J2|1neE34+Dg~ppZ@+1BZ$?xh z4M2mLi|%`9(ZYvlyD-QLEgor^#mhJhxZ1?P9J3k8=4dPj419?0X0o)@c$F{`3r%P}5u#5$2{aVL z4}cS!?R|0+1t59TEKh3_+G%nfj?vU*k32=JD*1KVaCmf*;}_w0q${+lH|4ts^ct`b z6zFF#r3EBwIv|TYiab~R2^+oG7g3xq0m7BaeQ0t0*pq7;P!J?OxXk~yHe6Bs?GTIo zk3$UZJ2eE+%c<>>3Ec?2W+m;-7(aYdgU{us-a#wqwU)HDWS>ngsd%c172^Pq;vgIk z)BQENXnM1z%g*#XSlcVszoDSxK??=(fCm2`i~6JM-xpo{KNr1a6hXSBM;p!_9DUU- zJ=Q#e!l$o4CDNRS$#2VXCshI@vA1KBT5>9ka5b^6A-qRn z_FE+40G~^Lgup^pdUjp5LIP{ibFwZ@H#l9^2oj|n3%p+@f{gCcAANlq&8?H%tNFJ7 z@{If+ZIbQ#FEdgccn$m8!U-b@=ARDHohgT9tcM0J`S&dC=#oyGx^jP#`%39wEMWn~ zAn8z?!M2?~fuhOAH^)kK%miFzOtLr&%J5+Mltvq0G4eRpJn1lpVo?->MX6dQxv|*$ zHWB zUeLAkxV@-(HKL0Sx^E2~wzZBrDLZ4N|NDgq|GbbE_^Y)VOj+3_QwpH{`@(`3xGi(C zzxk+aDjd6{doW!#?iT?2?|JvvP58t5j}N66diVFvUzQs6D1h*P-5;MW#eaA&VR`lq z+Dq_1NYD@W-%BX?O?du!lU=c0S6}evkd;in_P?~(?O&!F5ZD$Y{5mVVz4`vS+1rUS z@C~T7wfT0w30X-JVHGn!rRk3ZjR(h$YC<~HWoYER9AA5jS_kM5S(aQ)BjOI zAgkk%f&29Hy?N3t)Y}Qv2&G5{Be-5ycP&a%Zxu!A1tZP^Or+WBXFIqI9s{Or*5ChJ zZ+c-QpCU+ixHE1hC%){)`~o-Z7EG2nc_#@G71L_KmK<2wGcIo)o){*OR{d;WbLJ*Y z;*GOFKE7OrOs_>BIjGZU={fO7pa~Om>FpRp<##n(&m15W! zySzJ;lFhAU?igB-Ow6k=Dh=TS-UesWTM?!es}4ev2`03S=D43;i%JAMeVV{#oW74* zM!zmC*-^Nwv}oWp%!^`;4^JKre2fa1PW7X}`Npl4v113c_ZPB1GSbFnsiIMyUb{&? z8cX<#qU9zi+`^7>3_Wv$7)WojE35qHI(G8fv#Y@? z2I*Ke$vOP1%8qR}P5efFJEh8pr6hYW6bk)a4N%F@SBtmPkH32U@svLK^l8WEBNK8z zQmt#$ylwQlhP;E>Et2kp<6mF*5zA1}&+u`#(0(JR<2Vp;b4TN{EpXiyxSC1I;f`m_ z6|P({ce%Qb3`+*05ht8MXnjRqbq-DNcdO~y*OokG)}mqyJBM*z&9%8`%2KSp4WLQ+ zGxGbQsjE%kAVssBoBG@Hw#1)x2u3tz)giUD0S2EFvQI?Xy_IeWpfa(Hewyn4}=M^!lY23&xp9$GocAZo5b-B zh!HG*0gN4i$x?vBA@ZcbTbz4msUatXVn>G0CeV->oW~aXo_kNcube%lu^Hl1t4jT= z{CCwUCF&K8A1ggin$N>tSnVC2*)+PjXctAWh2;#9BXk~n#(0d4L`9ELX$l$l0fsKK z{K-1UxuAHLew?fbYqoevme!{h$H1envE^c|s)0jfEf>y?8{fzlymjt1b=YPc49T&| zRRVZ)x7QlLTec}yL80&nkVvh0z&@2M%3?e^)*)}`%ygbwQ{#zNytzFuFj+(I+k-a% zOXN4lSU#M+bI*Id!WV|TXDj~Xkb5nXmLX&BzohR7cO9H5>> znwQ8}sD2v@N5{Nm;t`Dj{OeHaEsRQ1XU zI{x~)K{BxzJH4VpNye=Xp%P%krV|$=CfKW+#B2{w z3E6VPvA3f4GZ4kSNUr4mLfhCR8N?yWdTBsSiW{_^?Mzr1wRasy%WI*cI$C@1MFp&p zY~2e^Kn}9EoxPq|Z)k?VyI9nyo=K#}9W7mTvqk>sYl!KDkSLysJ5Cmi2Q)vr@JPfl z>@cKm?cSZ)d(*f0;j_ydP2lJiJ0Q$2{&NBl(9|zf|u@64eE2ONTF@C>*_(pPgl3&+L z2%InUIgZbB*@1pK2{>pFZ|=wutWq8sDb^+N8Q>a;3@jGRbE4*wZW!=N9QgrFlMpQK z=g`?}6c+R9(C&K;^zEtKk7B^Fq$^KeRQFqB+butR$H)7uLx_z=zdo(2Frre}8oI1J zC*^-@<{PmK;cS^;^j$+zFQrK(55%OIl`KiG!uiwQ)HG+5hd2V1&-UuJnm_lP7Q|hu z;n>qMWh|+pH3=2#9i1?&#mMlP(K`6xXZO60{A5jD&-P9SOYHE{sC`b)*M!HVrBjWS zrww8yx%$T2C36ojX_*}}4R-F-bxfU8ipEh&#W^)umob3P&W?1rScIZoe+BvaKetHY zO|oL#uuCLOYDs(^llsxhut1kAMqx7Q*%>iz^y`@YT!YbsZ@j6e)RJ-%EL^Seq}*z< zAGYUG0(db679YCBx|4J^M z^uuo&oB}NG&YPqi8BDeZbw;zlz(Fn?4BcjBYXqS=+D`#Z$oaFG`r|pwDWilAJ~v1F z1*`lmgK%MG58t{W=yCwE(r#VqzU^x|6v&ZRgD3{0L~BKD^!C2Uq(IfweH_x@i*_tH zH#ku1%}N_9}oFQsC?x?sybfn%MZ890AA` zo#S&leX~KRP7=1Sik%L53Z6EawLIOSFCF%|5y`L6bC;u>plzAo5hHz;%*VrPegmy0 zR1AAIo)~8)Gu6W;6;`~Z>A3EhW#v`AKEhvaz6%Qkkx@b@zI4}@+watr5*4T~fPZ1< zXAbVy#iGxi7SRnFfO{0j0LcH)eU2~-IZDR0r>;yc;e>FR&6FOTv&0uxd8O-%mGKlJ zXmJI&#%lZ=?AcnZ**FZL|G{}H$L926>}Ukyggk{mx4MyfWl~yr zxx!Mqh9JTcGryz@YfsZ6Tb!5qblm14B8;+1MaO4mbkx6Ynq=Kb1+P+zW|&IVdZ8b@ zxZw+^d1Y-D7s_wKykX^UZ6H}@u|aNp%bvty`^G+3MR3t5t$aRL zaLy)wfm7NS=Dt}3J{UZ|ctm-)kN|xcPK&}Db${G?szeTo% zaA1n3;hkJ3P+BDo@uxa{x=b=`t$i4u*9vR~$k2@K`D==pWMX&M9(~1NT~L^kl%rg~ z_$b#pzC|Iuy>%)x)3IEAx2bOKkV=7N7-bg2XA^wht!@$0Jx*{Rj&Pbs84!(_f4%g%8 zq0btFhy|>R&=yJuVP4S<2fQOBS2i!R=R|X3-EwS zYegQ@7>T|uc{66!@~N~w5nRfUYA!X4M5nLJzV1Rjup#96%7l6aDFl6!hV0|6U>|!zi85+N7wp*(v!?#<~V6s{JH32?1o$+ zV)3lg8o{#)*me&de40UI^D+o(lq9(#gNR13rB(OV=*Hc@i_v)(bzlFER{lxzk8_FK z%i*&f(M3jIi2GoE;!ZN-)(&=;dNw$DSJo|4!$hxTu1||PSN4b$D-ShWyK6A%=%vQ$ zU9WZKi^?rM#G;IAK_ufw+;lniReNo>BhQxzhF7%knQ-Vf?C=)j*sL0#2MQyURFBhy zQ|aLlVKe`24&tyn-Y2$Cf?sqV+aMgjbQ#9zZo&j60llL8;2TNstXXA&jy;eWZ-Hd-f^|6L3<8@Yo&4LwkuI1n&@)&qi zV39}P1VZ$9;?18Llt&4VF<5*ZUBBX!rN6y4(sL5Z!;hKJYmGMwAZgv!DI})Vm@8ueUenOgQ*!8*F$Dle(Yjn?3H-39x<7Z*4mG5Z`pg5 z{40=<6kE?8(d{=I-!1&#TmwXZx!U%F}Bo0g=uaS0w zRwdrJi9db5aFYhMT1JFl98)(fP3t=H%j+u9bfpk>lpy8IpS2D#z_N)eEI4v z*dJBi>6MdK1;^nx1@kX&^AUA9A>}s^i(YOkEYHm-k4n=9N$_E1VtKGO^fh&5G3mZ3 zGHaozz1{8!KK>eaS|Wln@-6s_v&*a2B?&Dxd_Zzy2$w(jg;^4zr>R^kha5HmNqdf+k;|NpKPxCGO{VsNb~CyPs!S)MZ`Ay$za8=~B?J zctlTs;8A|Wwtr*XGpAJaWEtmba$dnI6c{nFLq{pb~n^IOl6U01=nsAP{k)9{nmgIMZp&pjn6h&h)sk3h>V03fiLclr1AM{c|;xQ zs%W10bRHuj2M33T#$+jd>)BFs^Si_4i>GtpgFN9X=&)3^IE&BuB*8|xw_+^~;l@!c z$+Rj6Wtov54JMEvLLM{WKrfeXS~y-=sj?(Ysr9*Z%6@=*enNg|rpr!k9gBVW$!B&y z@5`LLN(E+CqVep{n(K+ALs)QT+v(DRtax={oN=U>ir}E;*-&DjASZH(GP*8Yvc}SVgPy3gD|Ly#2R`?{q& zY({<>xfzRTwhnCQ2qmeN1N3{R^Onbi4469bn3aS!UqcjksJLs~5mS!Bwq;+UfU-+h z6K(B+Q0h5t*IFrFEku%?9V$18^-yLzX|`5i^Mm--QXzoj&y@y8%c8!VPbWZnnB~GG{c{zjW(oK8*4jNJoiDP$wC=&^TUNFGc9J80iXyqi}y5 ztpUkn!V4<+ud z*8Ab;FcCtiR{c}$Q_`&lNLdLNr-j2lSDvbgS5^EgJY*4;-}J|bLy_KLMbwhby+nov z%MaOTiYYX^l8%}kQP3FX459S-A4zL-jn;b_KBm`yMaJAzAa;nEA*< zqf{^kT#KDf^P^OmrlBC=b$@6GJ?lh`*pO#LP{7`?4CRb8jZ?ELB-4c2SZg~39Q|N8 zLL&YtVBT`p7va})uw35JW5LzOL3f|I775Hw(rxW}z}AnYO0BRj^!HSe44by^l20z$ zr!yDBCjwE+$vfo;<%xSUcj*xV6dC;}sXZE^p$v?;@nHW*^ET|S#F-mm15~&UimZ8c zZNXXQ$(}Zal7EVygCkix86a(Sp_*pqLLy@07zR>0>Q@z;_El zR@Zi{17A_&zD_nLikJD>-1AKT`y;rD` zdVOHAG2E}`NMY{NBsyS@{mB?Jrcisw`1+t?)+zDId`G0Sb)%P-_H`-ejyC@?#X`j) z2r9qth?eYZRv^ExZ=!fZ{ZJ4vHkEYBj37f2$RH&{1QW=P`F)c=@|79#EhpzBR5+qP}n{HE{ooO8bS2h5rqYxdr=F6n;4u-H31z5W|%rz6z>Oa}B~ zT+(#t!1nPGIcWW1cgzKj16nE2rM?_J{{!XnnWec^69;tDr|UmifSc2qp>D+1|^|0{5C)9>FRvz~kjf0aCgR7XtzT}1ldBGPbA zzlQ%7De$Aku2&}t6MD*koJ5F; zL#yblzxS-t1o+ym6Tx{nZ-9pNgJ$3p(l)YFns`;!;Sask30Gao;eg=4Iv;QW4PQji zUsP$h^IEYdN)ch{`#YZbdAXIJHFZ_ev$Z?*Q0S|I*>s4V3X!{e#D-nnhjk))nMAu- z;S<<-e$Gy;e(>H-RNrmW#+}J|&ha5kpM=jc3D>lbw;g-p5m7wcx>!in{GP)aewvhnIwCi9Gt-}{1jO{M+aU z%Ew>ForAkpyXp1%DhEM9P3f44_p8jdQ_H{7Ye!{h2Jn6{UkLk4Irg0Gu{Op%Qr(%r zZd3JB0*{4iR7LZH3e;0g3@QwUjYp=g5q3g_g>zj7@|mtN<%e=i)Z5ht$UZf}>$<5F z%tUgYgAc>z@5WW#+A+k~;6gWdb)60@c*1bJ8!&IPfO*@1pLSRylX^({4(z+?V2!;H zqx0~G2q6*?S}k2f>bpb^=GH58)oU5dgr5feQKWAHcm#aOacvvQL+xMR%)@5)1A~+r zZW}r~mEftk>BS65J=Gy1y*mR^J2sUu+uCYY4tyO@b<4reh81}qmWsbcpKVCWBMcdn zRpCos>Kl69man2q$nj>_cO(z#oP(Uu5)pLjMvUPH?Qu4$S9M z3LJXe0>;w0uc|?$&O$WH2&rAOfGqA+bN@NDH%`|gSf57}yf7?c4+6}`gZronsAWz~ zEW8KLuq9}F&M0{Fva0>orTH=royt9PEHbnp#*%D0xn#iD(*@uh{nPt%v)1qrzq^KY z0C|iO41$1yo|S0LL+GDmg1cp2&2}iH#GvlJVjgSKE-HH3tr|{5z2etjZbRF&ff`GXhTVa)@)+nAXuLbxhY%q zoT(YF@ZNLl0p2gLcilGr$}4wavu_Z@6i+@QhL*q)8m=sbpdGDO&X_uI<6mEfLsxa> z{uD!XskvIW`1Ahs>!@tmAhr1H@qN<^R4i#pYlAY1QSJ|43P|0K!J2Loh^A~RfQ)jE z)N#-%@Au{1lEg#Ep@;gD)2}Li!Lt7DWV!t8DtxiaC$|iySi9+Dle; z3nt1a*|J`Yer*uOphtqi!jE&H_kbE18Wfs*6xrb}B#|r?Nr)C!!H(%Cr~4o8lS35|zCf#+yJx?XTbe|C zfAIvNbPCFeBX5m*;Xlf=B8f$wtfZ3q&u^EfQ1WbUAS?Pl1j}%Dj7A3amxGV@pK_fj z9ykQ7E!1N#)u|R&RS0WUl7cj{?JWCaz$90=B*0~)w_RJroGKCj>Z0BIqNV>(}*?pH!Wp3%HR?2=kR%*3PSG^$8UPT6!EC1tyq#;#HGQwWuygY?`|r(~0lU zp+bpM9)f#xy22#QOJU}zVh;O2J!xF2ZQXjazg4S}sAkeNvEXPpmqUCt#6^g%a9p}< zRJ|1MIy`}|8^<(jN%JQyx&7+k)~l>3*95+}C08|pbaRiMO61$P^d?t5%OGJiJ+Id=?*vk=l-1YLwP?JLueVP#s*X*Q2x*wl-< ztq&wx16k61Lph~}W?#-pZ+u@TVSD5d>S~VDs&xgLpHuL6x3EH@3i#(EZlW(*gc4v^ zHchQ`OZfH_aL^(Jkjj+5v~$n3*Cz=R(#YAkg!@V25#$^<8S*kJ3kqt?sWe1l^#SU! zo>FhIY~;44n3qQTw8~%W?v?iZF#un}I8DtoDY=WPCqeB^)0Bh#aDpJRq{K=ACAS#V z9kOrFZd!y0uCR|9=+-unM<>p`ya-5E6+a8!aNIzWQ3Mc1K3Tc(B$>_|vzx(P4W15IAYM4~TRLXxOJv|vH=utoIX9`tF98TrGoSCzfnLmUzT z=Fiw_wD~->=_ze{x`zT>#llKlupe*P6>|P9w8k425^_1D!l)pOU;NLkYn@Zm z?#N#kQ_s2S6X$GviW@J$LcLcLBn@@Xl(jg&#~nWic=RjnMXtMrOsSh<457Myk2_^O z9+_T%jLRl-Rp|WY*4`)GgS~dl6y`m7|9s%h9bDZ(0Xk)?WKWh}@#)B!b=gTI>B`d1 zPd@UVFMz8HHS^rAb}0T^^MhYkZfy2@M6DCT|rrbAAO|V z`=@R-zwl09=c@A1eR^h{h`ZIQFd5}Lb=$%3N);+jwj?Yr_3cXtY~7`ywyy?V#vOXs zo^T+Ir;d50V8(juT@}Ci+Y|Q{eoPeWxb?5=)Nbr`r-&VQm18{e%cpAhT40 zU?(>y1j4tT8{<=;^M@CmS3&0CNi3G=hH=20JsJ+8Vz~ix@mT_t*V3;*@Bl$8-rHuS z>AUSI~WZ9j!_S>i3r^R&kHn5HNGx6ao8FG#t}e zV-F;f$^EU8!X7Rq>4WT8&5D504ccFeA)!vupK^3BZoBqkhP(Mq&Bti{jF=}-Pfa*o zhG@mZH$|RJ=g~t{W$7w97lp6xV&BT`@s7N0T7PabEadvoNZ&amU!{5=t=w>_g4T{? zbvo8?YJ4(2$Ud~T-o;U)tJG(nfc1?_ktHe1>6w$~5DIE07xi+c71~Fn?D5Wf;h%&7 zk0x6^OR@B;HydOG6`>hE4nv@~BLRK#b~U`23vn^0^md*DyqtSn%2g#@F}rAeIeh5mPX;ln}Cg z)1QuC)8z`u2)mwRIXa@E?T_5Fx}7g%ufyQG%%KRGuJWq zCruU%IA$Z7J4b66Wpbb#} zRzjt_sR=AAJw8mtxvz))zD*R4?9dqv>!vGrGpC%e${il~}FdkYhz4R0JZ^ty> ziKk>9gSj#ZtSW2lLxoq{iFRZXZUNVzKdCmarpxj#J1F37y}QFN8X{O;>3j0KK^rYrtvIjz5P z-d?;k^L|ku`607{l{QkPp_B@^%<2IHNU7M+;x9r-La@#tS-)$XrRGxBC&bhS#smmZ%_915DCQCI4i)>1#zb> z{}hsTYX?k{EgHPkBcONV0fbM$y{q@z={bDsIYg-~bUUBjms30Nv<*rG_paj&q{Jm9 zNJX>zwO38KxUccbE-&7aE{)`MwGPH;MQKOq0DUL!-IXP9_cJgVzVmE^rgPsLbdW(} z{HyXCkjVu%oRV{3U(`H()0DGMxog}!cUnTPtKlQtI*;L9T1#R#>G|-5xs0HoSpRMG z#(W>BEi)DwbZyi`IBhv`S9`#8bmc_(WtED?nxNK#Lw=5Ti!(ERqOf@yGL5%K;E;U$ za55;@e5I`N?oj1?6fv|eX9j=ysd=FeeE4U`L;XDO=tvZIB3!!`uA4!N6^=Kjm#y1# zLO<`G-tH&a+g1OjR}bWxB>*_n{d~{T>&ets)-gX{VR?f@0KghBJWepvXx?IwPxv` z)qT&k!$qT9P8Ea8wVMNnF4Y4dGc9~z<3~}hWzs2@P1}GaCLvoz%u9m%*l>x&D)*`u z@NDC7c?w>BYW(tLlV~|onX4?v6JasU{SjPKdQ7hzdpe_P=9Q*}m*JwbVB*cah+g!@ zw3A$$A>lPsNylZZ#k1ifcdvC+0&jl(y@kFr)Z3}Gi4>ll7&l2e$(W{@aXj+wDxPqy z1AY=;7HHqXJbi{%tTl!egr;9vN`Vba&mU*0bkwdcV*eWz^`fZI?Prz;&gv5MRS2;0RJ2J{+Ob5QFx7Kv&PS z^v)H(zq=ln(A#DYi2L}pjCPcQBIRZ~*CCrYA@2TI6cLcOnQx__u&=#FfA5mcuTotD zT1k;^_JMdY!Gv1+ao}6G^xs)xS$vlk6bXhxD&*u0NN>DPAB|qSGHq5zzy>(n-uhq< zv%@!eScrK-^?>(lF~d-4oYQsj;umnLL(|ec(77SuDP=b1WRU==((_^h&=`-NQIe}W zZMuE9p{pNMlzqT$66%1GH84f;;=awY^(7!{3i(9BE1k*m=B zYKyh@sI{;=wfPlentX#$qJ+2m28m!Q z_0A4g7raR?72*o>+P|~@I~s@}(KL8)?YswghS+(Y4H=`pLA>{kp4hKskHt`5L6-+t zwq&(72ko0{MXt$FLq1O?*N9McQh+Jf4D>!pgpTY*c*oPL9r%gM(TNx|Y83H5@0@Y7AeThfqx$lXG zlC{L9X~A;W`7Uo-$abop4w48oxsxOlM@Z`j+7+>C3oXVQPLtdrUvk6mUXxBdAo$$M zWz6Z#NRT~_hKX7SKPbREV#Rn$nuxcerk=qrJ@U8ag5o2W%geeP&-VEcQ}}9!!pBoZ z_4biY`O3p~i&VUf#xcnCdS>1Sl@EeoFRI>7Ad(t9d58M@WEWDswCXA#RXt7;40RKf z(m~yzlRk@uGhLr+n(4qQ8qG026^skq1;KMToqBoy704aAvfIOx88iFnuz|+ zuYr?qZ=o*W1lBqDpUEpi>h@&oGms>H8*M}S-y>%XAC+qgV2#FJe5Xeshkp=c7v>Dn z`v0c0TX6pjd%bcAKk8P2qgOTJ1$h~g8i6$3W)(5P&4y~6V#{=VLb376p0C`?204!T zkK|?2gg0Y9b{{bc?<=v?Yr6AGvWR!#s3s6)A54S%Qh$8EcZu?YZf4nd=DD4)`e^2` zh!*n+okKKK{V})U$ERl`#(&esYkl~f@f%Q-S(d=^Xa4q1v(XB zZ&`!CVe8u$JwgM;Z4?uP6WW%zWT|{#{BVy}fV~I*IZn zx|_KurEr;gReSVeXq{9C3HPe}54?$_s@Kt=GRU@0x*+goBSzr^B3HUq>jd<6{6M)E znt+o=*a1(YvK3V1iKWO!sj#B7p6Q*oP(<|bsIg8gB^e@CZu#7On>#J`BJ}%x|61s; z1Kytt$+t9{f!dRnItiW+O}|!)}R&Z%8iIY zn__y6Ji^nVr>zd05j|Ng16yM9r+Hfv*D>Q{*4=%}$&)#G0Ef&BU3l*V6oqG9Pcpi7 z0w<%u^}Fa!$Bd{BAi4{294QB6>rGFt zWAh$Y{M*f2myv&!e-Oag{wIW-7t^prHzuOBA&4xP!&Hb(h)Lwv9s|EWxWwuiQ$zBb z8f$yZosBeGCr26?G7`S~q}ZC+GZR4asxU>+V-dT3-Y>^BO@KCa7 zCaWq+7^?605stS)qvvFK2+>SLg-r3R`o$U?Yly9NIGqPkV zI8V1IvPJhV)OpGf4_GF2>pD&Wr6BT}7m6mVE-;!NP_$v*ki#xeE-Mf==hR)dQNK{* zRqaOcH`G>W$*cCS-2E3+U$*~_BzlpO9HYu;K8qKptA?W|<{^nXS+%#-O=6!VhBnd+Lw52(|wmImz`{i#uZx$5SQ5fr_B zE**JQ@6oK$ZC1GMoI$?DBcObFx9FjE0qs1U9vZxg9+F08OeVm?l7A}d6xSeQshP?9 z{XU{F2pCNy*mdsiDDIvyuvAG^#1>9HZTGzC2;KI^KrqE^``Qeap}r<#M)J|_7Dc?Z zn_$2A?|OKJ1P+{biXpr1;)(&4t4Fe}Je2HUuuoN@JRtZV6Z#vQ`@XR=()=1-7N9a= z?3MirDcL7a*@RnlSvN}tc+X{@&xFe4zwnT60`eGjanKjzJg~C3DMwjpYlDb{UG^OO zRWqC2xyoY58FMH^g;nB`7CbsUdm4hbAQ?y68%|QnBrX$sXV1p!5tZBysiKb0HK}=j zb`{D7xQlmjn&J?K68Zb^^0rE<@R?Q|u2j3w zeTt!5t0iwCZ5-(6;YO{YHHpN#iN7SLt=WLLfem@s{JTcV5-<$s^2Thel}36`65a-V z@KUmO`gl*O$<%+J|M7Y(0>-ND_=iM3q8Hex`$-9-7Tn~5Ba`73mDXXIJE^@9T{@8n* zM7*V+wpRb2ZOaTS0T<&t+OTpC54GWQ{tfb7 zXXDH9!V^69j$Zuj!g+4qM7Xz zgC9m^9_{^Q<b(8E64 z@uplnv|vlQe;=7(N2d*@E-OCDxTvNGsHp7p^;+goX7fTJOO3cl-gRpcTLJg(BzB1* z)qUby4r*zyiSo5*9)QbMrqgBf#tPr~xZ+(@`Pf@#Q z4qyMjGgKGhRsX-xem~sf>@W~A_iV|a^ZMWK_*+IN;-ABs&blpM+QwgKzx24q>HiL5 zz#{wq7TK46tcCu|4`@jE|8DI+MWX&KvgrtvMFWe7Q6Dq?cM-V%;Rh6Yy^y~pe%|Q( za|K2$}{O{8L;R1Lf{qqDrb3{KwbAU{Zj+`<&xc|EOPH5n3 zDcTePCLcZ+hE6?hzw-95_nxSN0fpkm!M$HP4!aTb_EJ%t2jAh4l91CzIeYYwve+^D z)YB3O(ZirpVW-j>hjzbg=z&ZkARU^erSPu*h5ucz-k|d12ePlKuWS_;YS}9h>CnX+ zxN)xo|3aobG)WDI#AA;$mR9@AhZ|n4xQj!2v|zg7=4#uelfTO*-Eio1Y${yCW;sQ- zAcGUc#6ug29S6;HvUTpxJ2v3xlmcqk8#Wa-q7Ll%w~d#gMi;ehmNGju={oXHr0&+4 zY`QsNqLm8hf5gDD+63=ReL4U7s_@A1(8%8VV&bESFDJ_TW)kvoNX=^Fy~7^+dJ7}p z)RU~HNgWq5gLF1JM?Q)&>ea;rx9#@R3Fu!LB$jTgsB=P?PtEInWf4ZQzCB=z4mm%_ z8$Gs8eGhLcx8v*u_BtnKy;cF66`_;^j0&xIa4t8$N7>RK|37wGg;igrh zjHevQ4rk1bXAuwPY1olu^Diz=mY&^h3Lu=}RJpTk5sH8~w1{NCs=DF^*Y$OGYhW<5 zp%Th#O$~?BbrGg#!J#J-9z{{dk#{!tx}St4${XbgA4w~nt-dpKXS^(yMVS7X2b;4B zhpy{u>ojd>Ry8^IMCfo0*0&53lnUV>`jG=H>i@%6AG6(if;{EJs8T{@e!%JfCzC-?9q6lkZn)Uh18}IJYK`` z7C-4V4;VM{8#fBG5b1wW&Oj-*-TsZL@6eQEiapl|8#%v-QvM5*V3|h`5ydd|EkxL~ zXm5qeFHvP7i|u(Q>djflO6lX?KlWn<)RQ?A%oZ5Eu|;Ai0BzgLw|z;>G#zW5(jf)k zCXHy|Mre2j@T?hVwwz`K+LVI9FVK{16hhtLHjtPvj6Ju(y!xns4R+wfkOzdY}^&#QS-TBN<}ol7_#98)9S?6-}x$JH3Q2L5Q<)p$dRj8;fJP8R#oa$C?}& zS77&f2BwFnQfWNve0H=mn-ud^lH)`M?g4|3DTLBR?f8-WRsXbaC_Dzbo_U`*125+%mk-ikxk z(UfF*XZcNN$kY8wr4dZa`hVvnDqZbm$VVSu)#RYW%XFiYj8sF{Xo1u(#ioTDxLDQNpz*Y5$ zqc3q63Yz2K5^VDkx{F)awXj<+7A?n$xe!ICP*&6rR9v zJ9^40qKdQUQGF*JS6z!bJA$#Fm2`JwGJ5*yMvsD8oLr+?PSKYLE>sqGkB14Ja*#=~ z>#4lHD35F+w_g{xKp?MjUZP+ro3Cp2`n&+w+9yUwq6Ns}vdgGx<2CNKBs-M^y%4Le zOFhXQSm7eJ!bOCGHw>@g)K4T=wHfF~n*(M(;0o()qfuWN2K5Z_toFwipVEoZoF5Se z!=4or_>*8^-tM~`FA74yfq0d=w`8%Y&o1*uNTIrp-XIzBud@rmO9TfvvxNr#O4tW_ zoiEazBnqs?M2nc+ofqk}TF(^R)qEIUP2cd0#;S+idj{Cq^|L}pJ5kdKfldgo2*Jw^ zM6sRp1(8Fs!&&{wS^O@s$9`B6NVxUR0~p9o2k?!E`n;cqYFSp^$w7L`Tt2*P{N>23 zj$$h#CCk2mgJdpVO6D=)9ao2y600ko^ukaYCb&krN>>)yFSCiQojzYwlqHoDztauY zGMwAv*&wJGOPweH`q=c@Bd+be+*D;M7QkKO?|k4H=4<#4o#WoeRNOyBfXiW&WC3Fj zgD{4zge6xyxMyiJBxA?S(KXudk3i;wuZ0QSi!|>x#q#eg>rt`)X;7S7OtxLjWmH!96Ml>BShJ9h~z;W*=r*=!_dfwUb(2W;R1S;+Pi~Ao|oP z&6dsF-_eVj@@6)wCWQCp{a9URMD(ouHGgnE^jTN}C5g^Osp6p%&1J zyPB?-vph?%eixxLL`^Ujr+?F?U8nEas42|a{&GpIMyEp zG`a^DqF6*;jxf?BYg(_E(BIJEtEaa&%^cvt6Bi<8$Y^ycTU`(stUuZ_qA?C#%FZ8W zbxAvYmg%D%%fgQNVXPrfifd@9)HWGSaBHmtG%yxG_8(#$wA`=hbo;bW)d_&psuOlk zK}m?Q4M>h}d?jhs$%`^7DVN8W|3jUL*k|BZN`as67T1ri=VF9Co#Lf7cy$XCF=U@j zK6tj6Hh0G)4*TRbLe4ZKA!;n5EYflD16;sYDgQ-M1<4Z$H$T|^mm!oY-MjbPFJ-bh z1idtdgRxm#<`|}8g#;mRn~-82Ho<=L-hW@$ynfbz1w4wVm+{LiM1d>;wv-)dO1oesl+__D~>ZP}ag zLmAbfaRPxaF>A(#?!wC(`k){Dlcj=G9_GRY9K~oX`pl=Aa^aB}3sTCQ9SFUq;rI`Y z%eD`66jAnFTK8YZZi|Ww`94jnu_2sJdwPO>O24rZ*yMfj2_sc`^}^06 zgL1y4r{HzhoBzFX>yn~ypGixFd^G_heC{;Rum%&-01davxH#7Ni_AUX18|HNp$Z3t z;iV6NGDm1a6A%={Y6E+dF8+!q-ui?uJio>j@x> zDb18L2n&@Aedop(=1W$uN{QSCGVeWi7->GuUsB328dY1U9nOVSpsNSq(0Dx(jx%zV zMb9q#?CbK>FZ*$~2moBGnX*VeT=-W$Ov)o`G&;2(iAo0LOTlvCZ{YJk)5?l&za|$& z9|g9fT^%z~^+j-Fy`7)>NI^k2oU&7eN$`7(Y`|B5suEE)7I7`ENup#gsiS{(+ul3( z%d4SCuflmmP*V4Lwq2FYkG%Lx<8>o6*D%tJRZaQ5sC&$FJLJJGJ&*w&hda#h+Fs53 z_*N~=D!8XuL?AZJH<6YSDr|n0f@^-wLUSgWonjIxH_?2_)EPSW9x@4&bN0Pb_ydemHN1c z3{<-LC8#cZPkD0qx=3B1g$FV-ugmb9QVJmHZUN$saW?xC=TR@p_NS^3-2TfDt}#F3 zPjGLAc0)IfDGbjAF?* zDW-atg*LFgc&CD_wQP6rCN)pzbnm;s=iwpO8d>NoXI71y!X0|7*ep-Kz%iVxe?>Ra zPY9>QGx%QA8Ekp-78!JO4)EH)%KoChJjHLBDE`Dup+TgvY;sBHR``L(MAsXS;3!LHO zJzjzr>pPMfaEeOj2K?=&s>0ubFy6bDj)Okw#Vi1#CZJxwfgElL+0GDV1*bEjpPe-ioz0;m#^dX7mgMoV>HHl@DSw5#^slWNPW{YFfC#mbZ}~+->E@) zPDi*2xIYR85Y0`uJf@?6+VBVzaNl{(_fzZKo$;;ko)3V4)v{K;Th z8XHMJ7Jn)cODgE^mWVzIv~%h|=i&EY-Q_&yastPxiQ3|TeUc{QZy(jq#O~xF_HvKh zoe{gI1A}EC5I)+J<%Y$MkG zMIM7?=<%^&$O$m%K||`bs7~ek|L`Q75>u2ERXmnpEw3Ne^KrIQZk;cO1`ut@O2wUV zUzU<|u04Bez*x4q|A~vIKuI-U&tKnZp+|HC+l-?gI3iX5o>*;Lj-f%kVF*$PDM@*O z7M?&<3Ss{!(a1i%s5-*)V6(TyCf&7JQMyrkwTp9FW!%BG~B*;vu<6MP5gL*eKq}^ zLlJHjdHU+@Jvp)}oN_{L2$H#C?PLsc38B*x-QSK+KRgBo%f4#~N3(_C5JpGwYR|t& zy1$dNR$M^U{V)x{QM+fnFga1%!E(^0o`aB%RStR3ReSJ{ZWrlF&O4H=Ul9!3O`4m* z$XYuVcWtK9CHsR8vWV?HA2`HzVqhtYXkGF1D=Bf=o!1Ct8ur5Yp6q6>d}OLz;Q*al zoI8z|)cz0GMrvJ;9?tE(g{_%&d7ZLrQ~SXdckRwp#&b+q_UhcfXGW|Om-y!-??+D6 zm-OS#+P()740Q~?Imp_5d+;^nhV8{-KWBqu!p+ltn*G`VL-C8APA$51cz5-#+AchT zK-16kN-}76NJUZ3Y0pVy5#4IU#|$hL^IOz@TiTeP%4!rbl6q8YVYmu%xm1#A4SWx1 zW+9QW1O;xPXg3lf0@sN9X6B6==8aru@OM$^leIiEd`YPqqU99wa>!+oY}dqA65)4b z-{lw5FY8z8P_3+@BSgM6lBE=h^rn9@Yc;a%_m0yf$sD?^YfOqYhjnIN_b0&ptcweg zEx#U|{TR{WaLqTGAwtTcFTUPKRRI+7#|*6C`tep_hNh)vJjD@359EtI>&T#7Ew`kM z)$a#kUn+hG^{-JrT|8&UW=Ma6fwyr~`X5n--7w(q?lvuyBHuCc;2nu}M-+pEdvP4N zcS*b4nN+xU)yqtKc9XUEm6Q-+c(kykA&9lxWjxlMhBUB`7I2&gaVUw#q5;rzeWyB| zWq6Z6<;d{j^UW}d#cw%LG=aZvKK>4c0Zx$E$Q@72{aGZ&e zR0)$E0Ph-djqJ$MmLu<${cI|Dx#uF1t&LetIJ7<}-ErLx7#=WJOtveN8lQF$0qNFg{F(>hIry=3z+tqX))R_N`?D*RUQIda7y zlnR#IthuJMBd-ZoW!IA3hd!lI*FoCKa2f;g%V_UewCIoFnr+Nmhm#aDU+-SwCgk;v z9NtTkk!1gQ92D!RAin4+-*MvSQ>L`19wv9W%LSEQAuO~C8%tzXfv!}ckS6Ar#C=y_ z>v{^bs|@AIM-ic*TgT3G@KjD=oM>v`BS1ZgC&EX+iGC|&@Lbw78a;-3${IflqXeD6 zXyCfgOJv^y*|9_^K!aRUvFU>Bh;Z!jy1o1bo|ZnMG1a*w$A`8UUqQSdld5h{@+AZe zk5H>vE}8@$Sz(H-cO`SWcIRS2iPFZnouGGNV}4UxJ~^px7^bQ}%isi>C1b z&Xudo9_Q*SMllIN^8vwfT2+E-AJvNp{;TR`8Y>d#j^_D81$Eq-ZiOM`rQQUS!Vz~jjcIs zU6@wxdKq)QSJnAHT#hD24#oXH5}E_o0OONCHwVV$PJ^|cQq(`I&x!IPPS0+R0)G9IR2D#u*Z5Cw- zBJ}cR_YY)+zVL6t?W47{eL9)1f6O28-^s{59G|*@rn!;=vPQFd~+pH8cmjwR;d7I^;Q=*%kQzuX?aw%p!LXO7{XJj6}s zfro+jPn>B@C9P)TTS@s*mzsB)KL0qD@hX`Qd^}xO)(pTf9Zu}1$9lne_fVLL!m_c2W zL=1IJZ{}*67n@OEXx*Ybx;s0+(Ln}v(F=NCq~%hucNW=KP!Rt^s=x>NEY$hyP-~y2 z`K%N2g;u6lC`3ECb#(N9^>dR%S5$cWP*1hAH$mKwKn{n{mUX}Vf58IG|BTo9)=9hu z{D1%j9~hj<&;J^)PZIxAG@6+ICHrfG z{0BPOoTc*Ws;%|411jL=f*`^L2isfKxr6(7BTjjs$ME!S*pUJi_5>*Gyv|J{mL8RG zwk`-o^{-l<4iAj+Zp+~7w*+vgPysN5sKlFBKttRQ#)E4A?{m6`5S46AifCiHsa64e zSZ$mx)4q_8;GW(l97qS{Zb92UickfORj1l6r=yUomP~3Ic%*sr^y_)gm};42Ph(Nv zx>J5==0M*L_LgIWc|`%o5ni4;P56qypY*At(D*GsIefeaNvM~c3mzY`V4Q}_*BdO zgQ*^&`_9VEDfX^aO3D<77e8h3Em5`GvsHG`-3?45keiuM88en{qAG!*l1ft@$63`G z4$i4*5cvVkv0YMYlEJK9I>p!BxgKt^g?Fe}m+R6ARFYF8M4ZN2& zRlRR1;A@A8#0;ak9qi;{U7Z+HnKG6#))3?u$zAvOv}eLspM`)D*`;&o@WsN-7Cu4u zs}fF3y7e^Jr-eWZLd@Eg6#!-jDGj$GDL-)Q?=5}m=bGqj#A=#LtCGgBn}E{l^E{|%QuW*|k$ zYB1DEPxMm&sbea*fT`?>rR|e^+p%wd?zcnPb!Mg4nFhnoC?~i^%F+Qw9RN zbpq}Fz6%uhRe`{GZ)YU8``E{?LN2BU=b3cJUy^A@1XuILaR@VveX=v=*qR8EeU9PQ zT&48S8~FUpGL};dnYb!f;u}jBAfYEE2p%n4s+3IJtLVEuo?9&(m({b3HH@4#HrAJ5 zrl~3igZ|j?t3UB!9{MQ9$pjvsO~DVG=L%8qNVlM#prZNSZ?vtkI5>HL@RSM16^i)> zn{3QCMDh`$y&z21^pJ-V_}Z-e;GpE8ZA4;4a|H$bs+piIhOEyKRlPEy__=IKoVdNR z-@*sNY`5VJs_{w@%J|&G2_*#GH(5n}LdeS*axmA*g})2dbs_(34XJQz0U$++T*r{C zo88n1cc5)@sY=1Lkiqo?!lJF%Lojr)^U$BkXE%x9OsmzpZao}0F`?PZ*$HBQQ}apF~|ym#WZ-(&ioa zmb(R^YS8p<{b;4t`vuYJu^aEyiIGAC(CHwhC*AO#G;oUHD27~aZHX>Z5k<%VXHS3k z!t%C6+#3=>{^xl>zFL}P&_xy=UP2vf&60p~FP%K(P*Uau_mqjtoYgkhJrw?p?u6_F6|%SCnZOMbWdcmJF5-KNVA2yo5ycmRu?T~#<| zTS(2+95*4m597BmL)!K1z!Z~298=Y$tR$S?{6K5bp&$N;bCNWv|T9PSAAqgN}h+*il^$Y`)$Zg3l)_jSF%Oewck`w^AHF# zh@OWDs(mNp?N|c2o#>yo-z(fn2Mv>7$s@BfD&glCADy%2ZPJH*WSm~6wvNowv5#%0 zs8SKFBYo!Z!Eil=k*v{ffpW`@qTYIUpdCsb?xuVxfyh9-eB>(S0{MI-;5-sb36nU^ z@zBQzll8@=RMqRW@{#+*?JqOW&HBAs@eurQLm@`b$&lQ_X4PTX2JkMtc;z$Wp6icDjTzT&X2rXEe9l5I`jEl%;j2Y8}td$h_0*lZA>ty%YT!Eg`+=IHIS8 z_ow=-p1VX{V{0s?TQu`g^^pY;r{tTqw&`dVQT~A7sAmB7)S1Mv>=Fp%RJ4W--vS4#R_Sm0#=AI;I$9Tp z{8@G=TT;v%8w)zdbXU`=LcxTe(FgcTv{gJfgC)=C?J!M1J>>u?CQ7=gGZsY&^UdOM z{qCH7<#u6NAG`{eMn`AxDEB7E5;hzE!v(PX9{gm}(-FD-ODwd%g|8ulWCZLkX*4=gMTaI1Y_ zS~Yv2r9YUiA;?y>D%t7ktuP0dDQLLB;+5(;&lfrH?&rPPK|kh$KdfEteC;YJ!aUVf zs1t}iP-eHM=jsr#NavNxiAlLnSVZ`$ej!b@6hhqRXzZ{EC!t^EKM>A?c|A%cx_;)D zN4q7f1`99WpA~uqGKU&?6`wmQN(p2~7Bxb`tFt`0{kZfc3i+AgnErI?p+-NTAfmuS z0PxG1{`N8TRb(Tdw7gfOQ|GqHa8-6Ok4s9ni~-%oEQ-{(PnAauJPjot#HKX*nZsGL zhLAO9Y!+kGuq1>^qU2%nVx$Nnt%E}`8K{uW-w5Pfv=kaMnrS_PmMnlI7o3XM^+ySL z=0~qr>ZA{K^{Fv?pbsvKQ&;}h@iuoe@-RaJG5ML7*aFFDDZ^N5QaNE!dhYdp zMt1c!dMXZR_9|;A7AJ*FA_XghLtaY+a_KR8%y;(O5>*Gehwic)v*`5RuFI#XDyI1V z*m~#S$i9X9yJJmk+nCrBb0)T(iEZ1S*w)0hZQHi(x4-wfx1Rg_>dpQqRlTeGboJ@e zd#|(BXQgWu^JiPExvfK%B0zJlk^9cjk})_oF|n$K;;QPHT4~W;Ry;hwq|>3yT4KCI zx=m;SYcDo!)rz4%pa=8{tN$eotEnsst_J&_jVSKBSPL@?ver3C6|*Fv^V3v&$p%sJ zpMweQp4;h#h^%`JzD~|=1-M5#ZfUz~l7Xmx&$6_Le*|;0nB+;Qi6PS75y%gCNwwR~k~s-)u5f0` zGz06j-UD>ADHBUh>gecaA-jb7%5;cm!&~N9_Uu;XGQ7^KhtBv-NtIY1&<7-TA2OGY z3bf{Psw8YUMQP_HE&CGz%MiTAWaU*SV^M@-d480jS=lLp6}n0c(_^ZSF$#^s7|c7fho2x&r z)_zQuzkf6`iQ+Da7T#Q8$gfh9-i%>6u{5boVl~e-+?W59g}!nD)@++}oSpPnDRt~C znT#J>-07tZvaL+*d02wlxuKC+sHx=H^|Q?;=%l2-4g2pjS*st4rPBsD#8NE%g0L2} z1Dx@|2vwt3pl0$s@VlT=EatVLNNc@_d)sg@XlkcE?P7}jPe8KH&*^<|{2_hWey3Cj z`=xIIib6bfRJdc*s94r(mzc2GvE*&49bAA>N9<>IbO}+oV=Uy4ns-Jw#Xun+lR<<@p2m zVu(!zbK?-`r$IC3z~HMFc*aTOP?QsQ@M>At#J3vGU%p_eJz@-`0n5$$nRWFmZ&o5K%y9EP7PM+s8;Ko zc1}}jm8le=EY;k`O^p{|CMbYxxQ2!h$@Vp6^TjuYUZ^`+y&E3bu*lSq@`i_UoqjXL z9^*3&8Xf%EM~*N=-uv#Gl)jON_cn(kUn@TY*~&bL`kPJf;kQZ4rSw5j0wLwLHg;>l zJSK|8*QS%{eS*$}TsoGlafy~ie{&)G ztoFp)pm^y#&V3J^O&M5H!8unqiybR;>9cbv^7=9HIrA_cZfmIG$L(LPdtN#8YF!{+ z;R$KA(ZL_5^Aj`atu!|=;q|q?z2<@|tVOoYCSpg8sW^gc?~#Po%Po#d6-~PuWbvxj z_iUkNTt_}@&`zp*0F>dfTqft8w}i7k36=4REW1!i3Iu(5<~zS|?7Eb(qtDO>E)Ia?<_-*z$em(e zfNd@|FGy8Ai2@hM!oJw8=9VCT3VmvjqS3Q%aSy~&so`8bcnmVZfy}f7#Ab%F$0*%X z?aTl{Q#IZT|5;7t%Y+KzZTJyXC`q>1#s`R@KBf8;AUrx8@PUH}-r6Ba25}(Ftq)?; zQc5}a6R*A@yXD!pZW_-Q1x>Wvs|Q=1LPW>tp?L7Q~_sy_MyvMuK{~-hW(mBeXlDpovQ`D$jPM*G@wh@Mn1c#IzNYX2qo8YRN*^grmx30 zwc#6^i;jM{wsQS}eJ7k8ao1hfnaX>EnfUh&6%WE4D6kNbE8TK%K*9;;4J zQK>44mVEq`EkU5vvJew21>T>taXZ(20|%)(nggCj+*0z+k>93ov&(}&+s~gm4-mg7 zK$cK@+h^l5YX~lw-e&DYJyTnHa1ok6+4|;B_Rtj z;7R90!F(ddDB>3K#oF>xkdnd5Cz?ySe0-{wd}zi#-JS93N7<+CD#F3@BjrdzJI|k( zdJ;s7S!@NFFs@si2_Hrd$A5s2qQ_J!KBX^J^nOZrP696-m7S#9x>3i7#T>Mpwcux@ z(2ACy-(Mv);~@J3&1C^2W{hJ_V&3<7dKR03cUH@xs{MN6){R1k*;2-OhrHWX-9FiE=^ z7a2Ip@a11ew~`9944|rFl7c4wa&T}aanC~Jdk-J7JLy6a*Wdsf&~!C3q}MNReKkUh z!}M}JGfu9=SFOaK^xn5~bxS2YqpL)J~iO4f9SOHM9fv3 z0uyP-v-bRw-PBk-=`MdbM2fo6rTsosIT}9FxXRZWNQqQ>^E=ZWyis{i^YD16C$zu%vJg z$Y)ZbcX1_(k%KJjh14G3nwNgl__RufT5JS3qTQUSrYiZ!=K@8g?^Ne?&qT{czy*WZ!BixsS=FhM!}7tF_F61B7*I;TXemxG%^~W z^I2(+l>BNTNnaNskS}@&Xh%@6B_Q&!5(AMN*| zAnT?3PVg{*1YA-N_^YR+eV+N)DzsT3(_VzWOkU zw~Z$TQJ)~#R&Hp}46JXS1NaR5F#v6Gl9a@j?C&wOAl?U@%bLg9aMJ%)Gg&`<&Z~gW z*aT3xX&3I;AwS)t>3Ya(`!XTb+ci6zi2Vkn@BrX_oDZ~5zNo;D#mI0`TXxnyF-aTx zxIX0*?Snp~q2DL%rfa9aD5|~X)pZ8)fnIXas84iJx5RBvQFU#c|6^+QM*X*uxk%;9 zzxE#^b502Z%>PkZyI}uEB=u3Q^XX&+9^6#&eBt(g!eRde^R`|7&7Zq6f09i;1iHmf z{9FGgoAW=ZJzMB^=6?g$jN!jlc7d*jV$2;{ajK-um;## zof~!kXJ)533!xMIHNIV<5^+FL02iXRith%{$nO z#r?FBApfoF{MO3}xc8-tIWC*n`j`9pQMKx-Z0|D^2*P3wyrSQJAx1V^I)D1` z_}k?XszTCWTD7p<;i$etWVCC@G9x1y1agw8aC=#kjhz^}KKEj6L_>^T@^Azl$Pd7B^dI6-|8Vul!Y3uD|AV0$|o43gDno+h88 zmcA)Dq2zx$t0LJZ3)h$LIX-@L?s+k%#$;vA0rx|!;`FRM^qFa*gb0aG`j<7E8!s7t zcK|f^+qf9lt3(p6I-%Rd#UgFnEsJ?|Z-l>Pyr# zK_mXb_rNT$$Slvj+8?>!6wVnujOIf+y*bUTMPZvcCY5twZ)=bNP5 zvMyd@m@zA{Ba?7h6_C##1sld9=@VR!;xPS}((Mg9x~J&`IuD+QN3{tVLLv~0o#`{6 zk8SayV9d0)HuoYw*oQI%L{^E@SoL?Fz5TCGTc+EEZ2PJ}w)nubomp<4^8C?+{;moa zQ|giM1@H9F2^ui(bf2I7`T&HQ0JBj)8-SFo0Si2KnD?ij)5UtP4mw$=8HZ{_L?;X` z%LN1&-Ux<9@dCgI)395F=)`rGjJ?I!`5VOg3Lz#Hb}U zuO!xa?(hX%bNYiP_@XT$wG=|_>qB#$l@e+qqj{Sd!m4lS34l`<^6AR;#i1>B(zS@7i`TWvV zO9LtXN7n9Ein$=~FXb{w6yx4PI(aS0YB`UkJbel(rsI0Bi;Bcx(3n6m-e5%YVgqkuxn9Onf@m~O9cDOb2lMxgi}m3 z@G9aj2j@&oxsVk@G+G_EB`cgkVpW=63PoRI+-qM0pOP)zO?fJ4mt~m^LX$Fh5pE@f zJ&g)%Gi44>q?;N+tK%`JC9RR*;M_Vi0!sN!zqC}jKn)g3m=BBMfxFHvOsXzfr0YjDlF-HDR?h6USY8IZQ|RWzSed>o`d52~C#hBC_; zj)vT}S;kh$m`2m?gDH0IQV=cy z?BZV)lpbu4*p%S(t9OvcGrF=Ioi5#j&OJXJa464Um>}5<8p%0@|M*Qis zz_I8A)|GPF{UM4Ak{1ihK1YMKgmx`wYki}iS-wr2`wj)XNyb}Khi1lzT1%nE z(}eGT8Gv^df<(LDERy^%&sFt zwF3<^`Pph>q;x@Q_086bH6_?W-vuTL20WfH0&)xU515VAa&~8xff!=M#DibeQ#DoU z(YTFaA&zCCvr$RB#6F{GE%QH>DOU7htoreHSv3(+KnO<;^VY^mc#|Z)o!vBh?KiBv za~4@4L18~~G|*sHE$DGjDsF?bgx35S5si3t7rqla z$JFSn+Yh?g@<)qZ!XF7+d#Zl<+w8*riVi_>Lt^~>=H%#%eav|NTTG4bnGz5`ARX>& zPo1$H^$wXDV;swj>WHD)D4M4o{riTna7ovEh3O+5^W~hSj72npLhr@TDhEuh~OC?PvZ<_5k0jJyFNY^eQ@oJ zVgA0S3Ii2tzH;DWyBJ!3XkUqDn7(^C2mS16)xd>>R|<9hNIv%n9MGFnS-l#J?iS50 z)}rdkz^^@ix##ezw(4oldosJEn?<%gaRJIk*3evT_{{Z|Gn;=Ph`jdLDw?N?#p&(1 zmmw7iT&>KRJwh1iGL~VpYN6$_Cn0Fb1@8%cv1@xo)<{Qz=^T*^FSrfB$m!Z8*7z5A zgvqI-pNtk!BuZ6PRJC4GIJNfTsMcakTtHIXlw`vXfy7TC33ylFQP`-P5FWD?Ga0UyJ9fcQ#Gu$TgAat)y6G<7;PTN7<%&N@faL#b! z@8i`!5UI@hOW>I)k8%@fgld++`}T_RR@PVb1pM|f%1h7Lwlqu zr6huB$n?Aag^b?J)Ju5;6tB2P)?C8G2!>?$xkqkcH^#Jcq-PgU1n43Sh3$d|P>OgRYaVQrsM^qHTI*wrn#?Ro6azyQgaTR0u8IkZowV`xcqJ zQTXHXUGJ@v*;&wx_5gMBbY!a2P4~s<3ZVv%EhsX|;xaLBEnEHbD01R)2)~Mo)}m2r zeMRa#e=u2N)T9ah2?Xs}YtUq0XkFU~qC6xX^+LP0+kotB3I2)r!R=X|X+6L1#`~|# zpL;YA${E5oFmq6EB9J#JZ)dOhC)pFjN;K&x$~{ZqnHR9sTuXexIY&7e-u=ieIacM}NA_%?uuV#+XB}_qTyI&@@jS zTT|>a`t7iW{vv2sUjrABhR7ZI@!5UG{KHyd;ze7QbmgaFV0jnDb<7bL)k+{l1_L8< zkXh3H{4)8dF&Q-IFn_j+Qq9yqj%)jPqs9|@Y0^KI$$rZT>$c{Q82JL+19=Jl#0_Bf z1A&8PiZ${z;k_EWA`xXRMdX<$qZ9>bc4)xFK6qB`XJigyz&nr+{&l^-XyK6t}n|<@d~9pn|_gJ;pU=j!o55Q|fHy zHGQ)~VWm{u5TK?m`x1MOG=3;;O|Nwv`3pilf&zXsXpdM^o?#%3D4%8=e5w5qv^dgF zsKHoh3Cv#9L%dVaqJ8muT*01kBh|wML*M}aGy=X&3{Fq)Cy!Ii#&&o6`T5P{bmz!- znh^qfKH8p*%=sXQsi_VPqm^#~Zc$0V`XB7Fnqs+K8(a^1+zq7kt!-` zI*{thIID4P(^Ebkh?0FdoTZ=!7F%;hQgBpN^0`*=Yak*SfO4aS}5lfm`TEKln%92P=;Hx9(|fTl|1=h!ZVx#~{qnqdz!=!i=Rt zS`8hrl+${^eh3;-V^v)A$G2^uH%^)Q^yf!7iy+Mge1?EY_8@ebqeN&rE-G|P zPA&FOMW<7(dgcN7wcsg>T}Groh>1y14sJIG`Q136wy9bk=+3&ng$?faH~_-KA31ZD zJZKdj(mQYft@h{Uv?)y1ZLcv2bS|VUG~=$sO1AIyCZ5k8c_2+A;`i) zrrM{wgb6ahaKA^M$afmxh^TW`=gWr?)O+LjPDLf&^s2IM+q+`Y;)hjue0Kf@}d+PJX^GzyPi@M zS&@Ms?wTV%r)(6+B)B8E9IDeo5jq(+5Huzbz~={V3RXGQbbm0l?E7W!#y<49i+{WP zn>kDN9M0_3zlo66Mo@=i`*=f(bKS!G2Fn)-!HvAFM=-pfdk(~^IVq9dkN~{Lc1*h+2$@j^p_rmD2_9;hN(wcBR(Q_Y*a@`lNsI_d9h4E zygIaRcdF6AAgBN;XP>6=%XT3; zD5eatxl3ga!Il|7dH%?sMc=U=JT~gB<&6nmwG8twG@a4I52W0yqu`%}}X0DL2W?s6JMV3~)@<;wD(j6fy%GA&!?+mSAEtGM`+`6_E6eeo{BBex0;cZ}~x z2ckdNSlf5u*#9!fJrjK!>BP*Pzy;E+-=1Uny`&96+p8x@M^2>@6HT!TD9p>D1&4p*|$XU0eBQ-8kzZyW;wDTlc`{2#6=H0^Lu0W`F zxSCSOdh!_bZl;{_AH#?inhAb46jJ!)cW5%q_jJ08<6dJqH~oR~ zErBS;$ZIoDrTJPN6nAx!%bAr+@AN-`7%;!RhjWk3A+)_zyH;{mdGPM`X_7KeRI|yK zVshFhrrv|na-#|B_kh`2f-|2C3GW7s8)sd zz8$SCb{B;ew8FP-$e?gcPb}v>8_`jO=yi;91-l3b%b&9z3E2i6<3=kB{Y%_pSn_+0 zTkH%T+bY~oERx-x1J1t7-{9ldwi#y=qy^b7OU_EGjG4(wjYS(ezKqP>C4El9twEv2 z_R~6YkxlUha#>_lj+p@pM}G)VSP>OSf65VWOQwU`t&68V2=&xzGBhuD8qr@8nykqa z(pMyMBrfD@?=<7fzKX9-R64a+s@HtCp14jRso8@F`rK-xY=5D(N*lVj!hIfUwDLJu{B^P?NJtQ&EB}PRA=OslUX3MhtMhuPMKg6`Tfmjka zl=x-)`l{;P-O#0<4`RZ1|B7N;d?D$!4+qMkSowl~j}MaSfzaFHBjgjm&{x&RgSRFo z6Xiv?_Lgb~#bs*6D{A}6Tu*e-z= zz*;5hz_maTuh2qVfKuo~qDp^6;a;OqA38AA{`0Q$R_tK-;%dy$T{$&N7WltR&SB$M+*(bku0(KwTbXrce?IWv{0X|Scql|P z@Utf`Zbt-?nw`$8ifxs?9``Cg=>VU07q2D`uQY=%CNSr?pFL>D4atNVHB*=03jm3< zDszvRi(9HIiralu-T2IBLtlON57-?7epS8l1ioF<*glGXsthu^!YDc`eV8HeE)KG_ zq;)xDLH;%TeEdOmgYtO+U;5|w%8_?{!-wg6)Z70xu5Ac|1hVO;^A-Z-y#yb%98 zKBZwj(W7s1t_cTqbq6^4BP~0*vOxcP=zv|iZ9h?MgFIi&O!yr9*Yj>uUn_HtT6Fth zRY@~XcB>v)z+3-QzrHHJFr2w=!Npms)(H-0o7Lg|g6m|m=qQYi_#T7+cg}!ICYbZ? zyQX?C+FJiPJF)i`?6!er51rV&s(6{=PbFCM<4k~);sLJfL9p#%tcGw1?f8-tpJCOc z%wDy`6Q(Qn%IFWmH*X>aFjbQ*=Jl7wSN;H6mds@HMSPQd)uN3)R3QeHt}v+?}p#Ot?URhyY4hVLwg#p`T?srG~t zTZ2p5#MTO!W8}xDe;79LQ2x~ZWC$CRC{}B9GRxDRJQB{T*WW%FrKhh}mU+t@=et#C z%gMM#dyn(_z~~Btn@KSY{5WgQ&b)|tniXhRYxTk#xsCY~vWS1!+?wBFFK}k3;q#RM z8qaxpg4y*n3wFJgzef1BK(+@Ad?NOB)7r4P;8X}R1mGdpwB@W5Tw_A z1!3^CB=TV2tir49F`a0hrD~N618%_cupH#^q$>$&EDA2ILvLwSRA2w--)^%#4Pkel&EayNUcw{x_bWP9&ic9T&WD^Ms&$+u; z%sA2GK-O?0?$MPHY5tn#w>QtHEA52q6A*I$l?~2Sbc>v&rLCmdit#iDJ3=HdRgHhu zl@9%w$MP}VImqH|*cCz*+KQ@d zQ9;NiYDc`fC&P1vDXpAhP*}L7NYp>w5894>%O&#LFy*Wp-9l{5$QNZH-T|Psxw#lB zj>F+5)2c)*Bz48I%A1N zM)5OBOnO0m!77AKL1UJ@;R9V+;ah7CtMwn;hUmu9jn8 zWXKrD2lQmk{08SpMr_}m<&!yedabPM4Xv)V-;t&m1W0hG=Xx}e+yw4j>FH$X0H!HU>L zpxP>1h#(S4^OJ*Nuwh?h4Wo)*fzizw+?10W{;VGU+UBf$rvUN7W`pskLrabTDC+nV3 z)CaeU*CQDrSohoe<#PXrLB5Z5r8!<1ntaKiSH_vI>jwH7$wIBf$kl}CTz{mY`ExQ2 zmi!5%{%d6CZzq$NsJ29!<9M^gSFc&jzQ9_Ey-RQx|Ag~}+I%h|L`B?+hBm9%{*3QR ztV6fF^kWsgoafiZzQ;3vtgTou(j1yVUPgow-V5`Rhu8Rspfi{r)6owx=0}r|Rp6Z+3{BDBb}f zwJnS!4zR92THnlH)G!NaJ&aDP-GaGWtHpy4rbkLUjXcANgT#s?8e;4)$6-oK#}UUB z!*PY}UL(CdVC*G|XuneUl`JFl^eA9mGJ&sbTfl}aSI=E0*G}K}6pUh?oI5ebIQSET z5&v@icXDV*{yW($870X_h7dQ6T{+M2Zs~Lm94d}2OrrIuX^*MtPY?Hj)j$%lDD9s} ze@Q=>`fUq@$e&QZc(*1V-%7BB)0p_po0On;FB=mX*ZakVsvbl`7$CWCW2~x}Gv#n} z7nVwQ259>nl6xbpXU;v0y@7rgkjUDaS+?e_hdg2NchV^OttgkMjJFmh(kW>wn?qSh zoA1jiZGP$@5JtZt_ElU#efPA8ZJl#k&miqmh{ASzc6Yti^u5f%ediMTt0U7pm_wi) zpO0}DYx*>~bFcX@qrO8TzsRYxfNq2T&=iWU|tN?@U<~39sBbS$rB;9DHU#*zs z<$f==(79yFf=nNw%;lIizlwYQ38!K{UY@gsbQ#dw$A!=eqJ$NgR>diE&PxO*Lf<9s z=3}aR)_(MS;XRBTY-ZzctRe2kw1U|;Iyr{0`}s}3wXdU1Qc0zuZ+Zrt2i*u#Y0sm}kw_xLV!g!G+Mq7#%OnsQT=GJ`sPtggA88{d6 zF4fh>$U93sWfeiTg4L+gq-qK; zjp_`ubSlu|Z21!6`raNR3y^2^UVX)+GJaTpqyTi7tA@nYzg(?A4YaD>)gw$Lc)U*86J!|!?$f9t?ZKk1GPV=Z5 zMIW8$K=z=DGA>jk!F24k;#UuIwE&c)Kz7ZAAxPf{jKQ#z^-S8p6CI&MOm|{^v!S4H zu=VZ%F##(&VKUS}C)RgSWMwsUWSYM>fmw;ub26N@(6*SrgRipg+bX(Rv1ToUV?^C} z3RHEWGN(#KV)3V)X;?kBZ0c!a^p<-uWH;H4Ff$rgp6qj94$rSMrD`WrYM$;4#a>B9 zYuZ*pnCS*LYuZI^mVWVE7ZzQi0lJhhs7mRYyS4Rp9xEm^FVun-8#4~*YQ_=G<5n}} zIJcu7OAz-md26(eHxN1YPRV!8}+8$ou-qX1;WYw%Vk1`13hvz))aO1e|_xuWAz zo*bmtGAh39HuVB7zLa3BvYfS6_>ZkV3W z9WN!cH05ESNj+b(VAtKR!tr_kbbDc=t@`!`%VLYScyEgT=SqiBE)7qHiS@wd!|s|$ z5$NCCqf?(v+$;A52RbApe`Eq^1{oIXGzI8pEr?KKpxlO$x=L*jb}GBMJdvung_A`i z5Ap8L6Oy6bLBS>qNY{o*eDnWAc2!TgP%G9-i%6JfUC*-UZli{OZvKJ5=s^i+>P_yA zE8-5m)DQK=(fXx1mkfK3qtBI5y#X;92)Pcc7oQATG0*D2oO@W&rW6{EdMaFbrJ6@h z*`7_`$U{cCnWw0|I)92F-tCn{>wzT1}9RO)iJH zkQd$f=G;`!p|5M4c4cq^XZ_<>ddoGgZ0+OcO3H~Xe`Q<{NS;*}X1mq^ddFIHYggFQ5@UAkyZO1|sUwWO#&^c$fv3z{PVj zK+CyU%+RaUd3})W#FbG)3gaHvygwi7K#))m--prRi^8g9kgqBZvTp-wB$`)QBs!{- zy8phZ<;sU}kVQA@_GBn`SGLY$<%qe{+;$~t7@A=Z3&>-MpdRbv?&$FG!UJAlW;(4QemBBU>K+)b28=Cji){eK!N> zWV2Jvg4dkuL8wvi%p=}NNHfo5BVj4{-uO?mHT@3k>yiru@c-Zw&ONe3qJy=uaRX14DuSafeOpDDLt zpCauQhL9#sf{RwVEPd$Tv# z$-6jBgy+QELcYzdW=b9Za{fN8;v=1k%Dt+bZssA-h<8;I*HsU>PN9Su56Gy>@O-r! zUigAQN2HXYZ;n-Ba5)zhL6!QV2R>b%I&2Ur2c8|`~5q4wPt-RM1hCqBTRfw1bW z#ETFR+ogMbR@aRlDV~}VPV=@wjE9H72rdZgP(6_5Mvx`v^@`<~z+Q zd;dJkZp3hgRrXE1LtOt6{SP`THZfPE#v)yfG*CG;8u;H!>$ZH-Zmrm$wgl#d(yY>6 zGYg!Z`d~W2FpKuvVr!`;9tR|GyvWH^bs}rYsGj>&5pru#7FN~1kz9bvaX*STFAN1zILhVdC6DsGO)vz?qv>S} z+;mk;--wTP(AM!NC=A65NmJ|bYpp)*Ha4>oD@s>1-0P3)9MX%_F~G>{-wVggSA_Z{ z{Is*l8~;23J0l>`KuZ)TI8HCD`oaN~B(Jx1$tNb?0}>7V)}RciZ4g;{0Jl3LF+X(O zPOXf5ii=l~L6gly`6jIe9pFj;kawQ{*4vDva%h5ox>mtYD|e@tIrF=Avrp7LyKjAg zW!1SkGn#YDRCPnJos!&-ncjkdGmD{_;~q#!ZYJej>fD0koo=q74`B47pb4EE)N>)|O;nE~4-JvMg~9v=4i4iV=(_A4PSg zThfy8@vYaC+L0QL4?^h{wQ+6d_~^&1_*0IGc#piD30Tbrge*%tH1?vi!?gET%CrOUZD~ru6)zCg9 z`P#uCP=Bz=cIT_M^jm+DO(G#OE~^VEp^slZdgrFvQ>gO6ewYdV#kFP(d7gLnzkIeK z3RQIE`fY5=Jx!Zd;b65LMdb@l*Gge_W)Pb}=VRE*DADY(lx6W6bM1v7QlD23;_6xc z`aU+UBD$vJEN4_qT?&>B!2LAn$l2F~uul=|HnK}=1R26_i##N&@lC9mQhm~SUmp#7 z5O{}5RwOWO_DUgJR>K@#r44;%L5$8CLiqh@;dwDbCid@_0YF6BMr!hH8F?@4P(yM>; zhWn3lh$KKp7S63%B=$mYWZCpP6&~q+8z*Yj4~C0VVd~G!lN!D45ZB-1^{mo4y5`X! zdu9R@M>Uve=AVP!-7t?2uIe}h%A0}i{M$SQ_j$Q0E#bVc0P40d)JD*9MelAzQ`0#d zG{oOBpg1a+wlhdAtRz(qD8=WdrEV9PjMh)yCFOAg!a;DZ0!nlJ^pOw97v5K?l+X!; z*WT}1HL&7Ev=IQ3nDzE`i`m~vjrY9s9!Kh-x^{c=dy&$W?JuDwWbS*|%OQ2KZe6SM zz7b~HEZH%j-j{-e(U=G34Lkb1vrgnAw~?3$NW^YD3bhgmV6ulG2LpeTqi~xfq|0K? z&x+s0Y@0`8r{l*A{K$nhriKx?zlXlzgI@EE+m<8>l^n(A(ly;qXY#8@ zdwlux?(4g{&oXC?6LjR11oP%UwCoG1r)S#@3GZ{7Df)NbOn9a#QL-BN_Xa%Xre)_# zjma@6P2@fJx%xZ=Na8)f(BA^yQA1xd)xFX8JY8``^D7(*$EsnjU}i@g#J5?k0Tdf7k>n3=hj#G=XHadkl&?$1D>2>2&$Wa{Kv2UAE)u( zKWJtBlBupuM*F-&ZVJWTeMSC9#RM7OW#1{o8ls=m^?-H#ukjB4FR2pnPH7u47hGk4 zS1jRk@_*$>QmTIxNw90e9tJPc&TzX|l#j$>-~SrjQ#swLJ5-3>K9F6@DxTT zt=^2bF&R99R}Q+O^Z}b*^lB#YDSpuD;^_x-vfmi8|?n!zxWK{^#UFPz=A!9 zUvxbk&g@&8gw*i=i0ADwur7wrj}} zy#fzw%mP@doGt<#hCYMK%l7P4e@ea&Rb-ENT(9lc(#J})fr{7#+xrAmt`Z$wZPhp9 z$22!~We0rJ^5ukr2Fgcw)W3k;H3oT3i@FS**!uCbr=5XN&fO3yjT^B)V87M<4j%zm zM8w6b1su5DTj$~Dqxmded~f>jSFTTBYF1-F7J&(WfN3BA-?;FlIU7>yJlyE#Ht$(4AGN zSUGKA$#UZ|$sgS_py79s#vtA(M2!zng}cAkgf2C6gPwItB2^`lSxs7y*G*(J(b=8) zI$#rRoW-5o?=b`WsDl2gb_nAnaAq!r=CM^aYDb!4-Tu(Lp{*F65JQXp`6_&p_x1VbBMFszCg-S{j^8v1~W!q7v(^^SlL`a=s z0)5-WpJkMB2D@Y6SF&u-wPn~gij2%@0>zpUX%D)OWY*B*TqmY%q^2n0prFlA9m%Ye z4!=#nPi3;4Xz4I|tuUOY?Sl6s&3b+<_MiCo+GzyNt zieRgx)3cYsx}oH9MpM8RI~XZM(&E{`w^oXJwQW0g`Y-~z^ij{axsAUjja}%f$76&z z9zKQ+K6oD7Ug0Tip`@5D3Sr;EzD|a&JXY`>=py#MKN<%70C_f3dKBRiqy8*e)3ten z8DI`Tj?i}Kp@2stvYsmGMOu0EZ@rji=g^u|Wi}cXe zAPw9EYvbrIB1h$eY6Rk@PXGj>8 zV8|u>+t}@7`#!-yP<1*9)N-+r~B*33%D{C?$~UhK>f%Db!~5&~6b7PPm#q5PW-p!%*^ zF^jpdqt2B7`r{Y3CkN?Na2VfxC6A3<`O`ASPBOrDv|7CDo7}Go}IA40;pgw;!ic zylF}~(cRzk?E=_taHjAJbb62}8u>Q3`M@A-=dU}at1kTNPBQ@bv$+@-9awA6sG z2Px#B^$BRCBc8&{tIFj=FKjMyO|M=W<<%*o$(kA(nK_s_w*{!i2smcZi1%y$>bT6X zpz~<(`PDeok{#AI#FL+J!;nW#l`iBZ4`XsksryaeNcMRegzdJdRSc-#5J;vmQd}bDChMc91g0P6;;K9*=bJC9ApsA*cE16L_ z!R>**wT(s4O|5?!tXU<70JQAaDWFGLS{=fOHmT&S=IUC-_j^pAVu@(y;U>ml%I481mp3ge<4@ee^fdfdv&7hX+y%MvM!zr8_D>2G zLv5cg%`=q0;sM~g*T8Ox0@~#DXBXa3$`k|6*oOuIW*@a}O3)klzvh>VL10%l<=*Qz zl0%uvr&?%{l|3wHZE<`Zq(-7cSBdGJ6WjzmDv<_0NG?0aUT;{Ix}2qGTjcO@)uq6r zcl{&aHov+M?f-(D;F_^60)u;oiSc2BT!fAVYVSy8!A zV5Ka7utqsZTS?8{8=-ztB&0QBa)~dsRIqpar&QzAUD5}$7Ot04+iM_bl+vvt!88Lg z%CeC6TRaL>>h|x$vd)pmaKk4n_~&ugbo^|z4h@Xa_FlI;WMA1S>UH|v%fp07GC*-* zVA@-Ao$h%9igoaJCN|a8#V5>o&c8k%`l>#$kniEj1!35tp?O$lr69qkW-DgDzy(98 z=&QMYm_zYJ()iek#Yg6|ZJ#^_7n#|1$>G*@`{&45WD`Q+WB$Og3zKX)Dc(o^);8rxuO1~GE3s(ch0nZp5Ouys~4Y0tj zORc=&x))qOKQ=~R_>N^Dl1?yOumSXw=nXC4uPp85Y}-F8>zl04#BOsd+_4!_NBYezTfUIe`YedGjnq8Gv|_%cVY<&c{wyS zfV$5x@-UJ0S!I{6;{EZ)i(CyA!?n9!BTEq`)Av)=R<;Xhh2X9*;M(1%dL*a&MN)3bXBt`RQ`X`czDP%Q_VLdJ z+)tt_bn_RIv7(QGNb|VwM$u4rE5Om!NkvHL`Zh(lO^U9#2leqFN(SDrCWWFp-g={z}|ql|LE@|wIMg$Egp-PiW@mTbYE z{#dD-BR(93x6n_%2%xzTtxYi|LIojkUK>O)oZz7XaGmp{1JNW>``N4M3z_wk+>-=sga!zp5Plr>_cz3@ONza*uQ-4}z=jw?cp5=|W^#riDE8qEt zYM?cJDVO7qfsGIV%P1a!f$UMn3~;YQm2d1k3y2{tPH1hD76n-1aEf+!UzaEK_8uct zq>wlNR;8n4)qsIGV^dpbadeoBA<40OpQ^UW)OJ|-PuB}1(Q4-)8A9`_hMu-uX9!;<#$U=vPRx=pqXg*q)uycWg?Q4Uk=RI6URHhEC8EoZ z9s@!%`)WF>baRX-mk0YT-mqwF*34asioXdxc`!y``)Ogh@-X*xU#tp_Xr1{p~Tu04VzfE%F|9_&gp6BF-X000?zqDc(gIQ)$7vjcGNitm-0 zw$ZuF{m?(-D^>A*%14I>hqHADXe5mcT-L&aU21Y3QWMVyU`;yT9%&&2?z<# zI~IWu3z{sW14zR>#%EBmYqLjlKvqv+mkD=pRoJLwE?4WOjE*abXd?sW_%l;(g3*TT z$tl6nj27oLLzKJzlZ0`0BHO8d<#sMVqR{R)>Sq=>5Gpro==hjcduw&upTP@ucfT)kEu3EK`IP_mqYz#C{&yuO+MhIS1#;n{QjRSEi`x z{RAPP`dAIDi0Wx*MjUWKfz0-?dyPte`$eS37p>NCZOEMOs#Bq)8J3(aLa`s!0=8_bybf$vSI=H-YF&_ND_m3}I9D2E zctk`diQq34O*Vu%P4pDl_7d23P~pYJPJ{;%%C^k`v*>C#CQP*Is}y}Xa-jC-^AXeB zV?>3!k=Rkjx`eFyAk7zveo-U)1EOjIznxBKA;`?~i2lG_9=nxr5l8NC!-3gq(2!`2 z5O;SpeCIwHnR)`7M#xdgeq+!%n}3xCpJels{wL-jORilB)p3miCaBLwduANN0KN!1%;1-9I>+MZu|>CLM@xL1bDDm zDGpGH^IYEqNkiX?(C*UdzKr1f7HFM<45ok zLEA`ey9YHWK9a}RgvSn@#FG7bJ_^$B210DP#oRdpJC8n}2z*BJAM1r6+oL_J)7m3DJgmaE>tSDrT@Jx} zX$Z0JJc3M;DIE;g;lSc;7NhYkYYTIE$<&zh-<{Cj;w3XoTtD) zAAC$|X8I(-Tq(#x?r`#1Y^gM znP3rGImHBJ2P3jNUwpKLEyKXm7wkI#?#9rb4$S>GGuu+NCT{>lI^m5rllAPbGeWbL za*vH83CWo|G>(^(DpOmLEc^ls5G7cj25`g^1k)%u$GakL#Bj@odT-8kDon?q5zWyo z&kmNyK|}|5HD*%0DvSjrQ|%#WbN*ar*@6DDvMKW9p?GaqDe2MX%UF1F8a$GpRpnHe zmzCsZZrYCeXj<(?FxrCz5a2C(Mg#o&?pt=XWb`TS?IOIsLhimlueiB2NQjWt*)R>} z#it{j;q%J6E@T(6h4Cfhe|;>c!r#XSAfU&8(N$<9ESGBaJqBu>!I^y0RY0sffcr`; zo(J0YlQGE^k&SZUYMw;?taGXbNKfUwNPNGmZsWSB@{`C18hp#)O1^yqj0dRj zi8Zkye7Dq=H#-vezRZ$@t4Hv0H#?+zXDU-6G+T|V-s%T;mbtA!{sQDtui?k_Jm%Dq ze{Q8rvuXIlH{L}T4-bWq?IP-Od)~~OXxbN~H3(Rrd|NFeFa`$@Q#7aKXok8*J1yKni0qlgTZ z!-aC5u<;tGXbcI1C?#tI%C6oK`z6lWVh`4c(pCd`tl9|#Y@Fi7A!vWJ8tI=vEkm+HOur$GSL}<70Y(uu7 z9++rjbz=H!-?JRGIa4WA&>UtQby*|RSQqj%9?zjQ!QyLf$kx>?_L(=|Yd~k3sK5== z&;-$mct!>pRJ2c*aRlDS1a4H1v0Cd)1hW0DhTZh4wC(PWM&Iu9kpxm&e#1DogR_B2>Qx`1y3 zn?Mcv@{AMF@D)Ndx<@@V&L~kq@b!eOJlZw9$lGQVsompcp|56K4*YR=kSCd=N6}U{ z`n_|=uU+-7rsd8^0Fa7xys?lrYDIq;otr=5yw9WLdBLTL_}v$%3DGvpU%%ZBCP~oi z?|#vIj(3d-Ccz_z_2co@Q}^v4u1v@NgKq*LI9u9c)1pEE zY=3C*VB_l#Y~XodTGut)ee=%bQh7{T{z1oE#bElLr7RaR{S5sQlsbUxCEWG4oYdqt zqoKv6mrZ4v&2a>~_;a7)qLK?nykEQj0>($vN)SBaDK`{kTXZ~vATVH~l^&iVki^1% z9@;&eY!+zh*216jz6vYeY6Lkfl~Y@ARQ^$3?Hiz3<0H?UauUaQnl>N#H~$mVY=!-9rm_les<9ZmHo|o5)a{n4)!1mlaB0&iJ6GArB(>CrR*te&))e!V(j>=m!wWLKr0j}>w&HK_?g&MbX9yh_A6!h8a&%oLRv#7M1C;q zVl|=WeR*(k8;>)doLED1nLQD!Hsct!+)~d%0)N$O*Llz(^;tJ{OWKM_kp6M=$9oC> ze2=#PL1bW87yp|V8l;#0#+Snn<&y@Do|?TeKJ0t1rU)!#oLVHD(3^wS(~$S`4TIL6 zU0fUSE#CcyRV{P#53Bkr2s?Qi*4yBslji@r?S2~n1|_^2kzdDgA?Np{cJ`{^|1X9$ zAKczQ&HM*}d%6t>qVSy1cad<5eg0oBH<5pny#)^fyDsL`SjIOb3H8kW?_2(M_5IAS z|K0Sj)4fOD7-L0SEB^EdP+kDn>U|7P6m3$uBd&E~b5b)i2Vors-KJ;rCp3q!wT6eK zQ!$qO=GsbR6#LQcF?5x7f1rBWY~3^UHDu4FTjimVpd)X=|GkA6Iwcge_#4~0_$fj> zen%Wl6~aiGwC{j#{FLp+G@XAW!NK12nmvzpy%pa8drFl4fzKtA?%j3T-R-%wQ;yYV zaevQyNq4O3sc%PYxBH)&F!P+yA7uE=?RiOZIua~!{kMxdls07ft?cO&ia!2q#uJkq zt#C;izD6BSgZ?H-`V4^_j`?lUxrU59&^5_JzbnrNpzHi%z)&?K99VIyD-Kj(s9Yhk zuda_}NLtcu&qv|6SuHO@^=Jv5=|NKFm`hy9LS21|92f_$9cc*UrxORjboKUjdJXOL zl0MURITugxDqDn_ls^9HEu+MzRg0vJiP~ymfA>+>s|U7VuVPPuOoQd{d|OX+f(Zp+ z)S;1Jw-&hJlH!(->nZmnfzFIFz02p%$F|OI4dFJwPJY>1a|m1KKjl`wRxjM^qRAQ6 z-{mM1sEnCPOLE)HMOoUuo&44{;z{{n=k+_P1lM!lR+2M3PoVjd1nA2w+{N2wF_6=i zyBPd-I!=gv#NYUp8y2kaBT`$iq>z8?qiD z%@yFq?gD?7xp(=zdyEGWQ<6q#feiEnCN3z}U&*^TB+5ro(FjNMiI>hPN?FDOwrNT! zcldFw7G~gF8O+*Na7s`I#}^S$9{9(BvBDJb62ue+&jems`i|=1R=jtPBY_G}ho(!{ zDrdBA)~Y9PE46*MmqSfdW2C$i?OJleU!@r$H=Kj3!RbZjQ|ndDDQ-9nFRln!5Zc{3 zRxaA$;Bhi5@i~l7k^Sr-*Ke5f=%RzBJ?>%dt#iRaX47>buqoG0-=d9QI>S59%`pmoXaz)Zzi7cXipvt%tpd=mHt7E#(*k zR?YsI!>vcE^})HH5tYjOzA$qLeEAicDtR)v@|b30&$286#X+Snu4nE|gAsxvmjApt zy}$ye0*V0{0C!o%zNdg#mhY->+cK3AR;lMXV0`OSZY3bzyyNkS6n4*3^MmhF?)h}} z@hj|4ApP#2_bz4`4#BQY-b({5mws|D13}mN#0fagjwgTa36IzhU9oC8OVGDZ_#dB9xyp&}JIu^xIx-@@DVzN!f*9 z?DkV&+tjzi2v&@#mbZeZa3-Qi&EQ#NF+;oDKO7r2s6vI$VxIu);18IgGSdy+EqXKL z#k7b%IsY(o(~Ne<8p<;Q5{P@8DC^+6nOYvJXN~V{x4c$&f`{9#F*A&~2#$#YyvzpJ zy(N(u#Kvvxv;K^pHcF%%X0SgtGD=}<*5Ogn@uHo25{Kxwh$Y8!+hGXebMe;@`E0ut zR=GrVF#DViu82Qzd?^9RiMo%vUL#bv$cUXPU`ai&e!`MbeNVpB#bGMwi*CGlpy@{%E-hM(EmWG|!q-2%yr@{^PVCF}sS{}w zf0j3 z{N4#m5@Ha{OQ0BUL=5GuWrV4u7BTTde3|Fd@x_+%d+bl4pD<(txwSUQ>PES3%KZOe zV=3OHw#^+&DvOE-%qS9-#Z70sx{3poonp-06@%jD;lIUKeE!Tmy=8wHt!DP2yTN3Z z)smXm={UN$FP4f^CsLH9rdWSykGWeDq!+SxDrUSwgE6H$|2{Ud4f*^0qhVfuDUJ0P zG!BZOOZl&AMqt$2$gsVE45UvnvUb?wGT5KO=I4t~jEKL+VDdOGUM5(3Ha6R^RkY+L zQub6$RdETk+$5nUCVs4iVWw~Rscg=CZe!Hr%=^M$Om`G-d2&G$whUq9>eHNGWW~u{ zlCLS#`il|@8J{mH&`}cD!4Jj2o9j|VONx!)h3Q5lrVgV`+BpuIgPfsGbgV%5>S3C_ zx-+M$-Owg?n=P}N--&H1=VQf9A|UL%dmKO)+t!8@G*io086ClG3-Jon8RApou?a(E z0&c~^MZ~zg8lw&V19WjY_UL*%y;`>QU3eH6B4zB56`ct}{FAWPh$U#n(?L8aORvSnihNuMAd|bgR>_?$#}DMh zU%5^p6MGH(AqHIJh;1BBRi6lMQ4rtSzvL#>#W@^Sd@%$Oc2N}3AVYWr0g<7jBMwHF!^&X+71CxybYn?6bCmb4FrTe5Fyg%~< zaw;La9<*W?+vw+kk2IOkByj+unX=<2&c?=Eg7typ&%)q( zbyIZBdjYrx&M&#m(VFvJM^&&+*3O~MPR&?kDd)#)NFQu)EJ&M-i6vZuyg6S~T*bPX zmnxuR_$yUKLhf)-{#5OB$}jG7Kx1MnSAL0>;c0vP*cF9k<$|}Y?4THDEy0Uff8>lS z!6SD4RTkxk1}92w2{F_QSZi+LxbcWbJlV$1#pd+J*x;m8c4gq^J@7kN5>>UlJ2L*^ z-OD3Sq=oY)tc}H-{JXgNtP;A4tTE$W+Of23?gNs`WeU{7<588TJsE|3dT|RPCZ9Bz zT77feG8_p@na{EnwNPsF__*agc!UcAs()5CmFY=^P{tE^NS8g4?s~Qe-Y&9X=^aaZL4ysBOx!$7rt0S4Hl_ISVm|sn!X{HjkvG>0 zsb-uRYD7`5>%>KZ*mM2%k%pdbjZ1w4ycmzHT2hh}4*rd(x2vRy-jk zXR5=SGU~qt))t%MXjlKDMhGJaE|JGoU-V%Kl6`&$LP@9T_WqmFNOq4EBtl;T6< zgd487xV0BbE)!#hx%GjA?8^71MC3Qpfuh5Z1i3Z>Elz4zL?hcLlkg+`rw*pNHqx3A zB})4U?!8;4F)|wC0l@b)#|v=kq0BoqQ$c7P-pOa=@{X#Cf|SV<7~vSp z8hxbVz|XzcsqHonY{IDswUc1Zrq66*cw*|K={Y?X62df_BXA+nUA7I(-o;7KQ(Y2W z)BtTJUESOlZJmtaVB>oRfWY|5q+|XEf)(J3=XCfUCfXWI=Fe*HAruJ$J1uyo^%5xR zo&!e1w6@k&PeMDE3D%Dl2ynMlG!UIioB6(R6}tbYw6w)Sf$f8+)Q2G6PI2Uwsl^mH zaHAl0_L1wN9t^m=%e)T(IqxH=+MC)q1p$0x5kM}BG4neD0X>eG1kemgEbs5gLifn; zwh1)w$VQst_H~bon4r%ul50Ri)8l)8v|}WK9qPX*;ovUHE`?`gVC+=_2te<6PoNEkSk$@Op6UH^-YXM)a(yS^Egs1actas%o<9E%7ogO~ zC{rooiiO}DAHZ0qZ8B(;$`Du2pCj6Kj+ma`wiieqQIpAbI)iWL$rAoOl%aN5`Rx+6 z5jpr{>KcBVs6WcGDEg&>OI$}|a@>F;ppsq6n=!5@!6ZT`@Pka_X_Ts~RKV%HW4T45 z>)8Tu2HWelszpEUFo1V^ICq^+cD-3wo&)^OZfxev22crHB&_!>E}P=%xr*Jm^)Z+eWKg93^ zXC~9<_fX{!lNG2+ySj#7D zxdliD;+GDHBT8P6x-KmL-bY@Dt`X($y^D)rgO_dfc`-gzb{l|C$KsX;(|Ohicze>5 z$nA|L7OjgbYoe00D{dfSWLF#u+1)*KI2SZp(|Lm`dcCvmI9s>i`WLw%Na@+P+zB<= z)s(s1E>uuUgTxHp$qAC70~=hnMBH?GHml1RZ5P_fi+|h&yaDa9Lye)eykDb>HK>Ve z>8pavDqPeuq+zeDP|}L4gkUAobFxMcyXK2@&_=K@qw$#2vQdBHMi+;RKCpDAvbFA_ zai7;Di<@S8p)2(9#F9JXN#n5t6~s_+ZOmukYr9-}Bt>|x(D+>fYo#P6BY4n#?VH&p z>kD%y*ThW3RHlaOZs69t*gxWJHWy^O|D@y;e?=5m>@i|{u=Cxyy3Ua%lg`Y zy>Ydpb27m?vNW#XaZScW*S(fcDiaGtAvq1wnG3)+PH;j^5h)NZL=6cDp9;bUjN4;y z6Kt~pNTUgrd>>98BFz{hiemSMuHYFZiM{$}YA7^T!0K{D;yZ5PQqJo2W&L@f*GtKX z0mmvC<*4`G;qkZK0qo!)=>$l-p1COQ?#BtmLqcp z;g9PPGHQ>%+-}?*`}hF97E#RCZ#G{F#^6dGlK8GQusX_Qm}r8Nn*Xd3n2Z4V(9Tfr zy?)=FO7vc^a8*sgr#sF&YV7Yl?d!__Eo&?Pe_6|3Ou|i_!Y15uVK=5;P0KJpiGKfn z`1TFzr0W>gj9}c4=61jmoGPkz*Z}Q6;Iry=`N-5^NE1y_?@W0A*hzQ>H-g4kxF4mv zYZz|cfE&*oF>8=$94Rev;(w$$+OZ%ICkmbX$)D^!nH5_-?jabt10Or&u^Zj(Oi;x$ zBIenxxUib!o3&~mrP+y+nwOvz6HO&G)*!M}R@1m&kIyk-n}Ff2oAyvC%nu#vAEf;* zF}udgo(NsI6DT8vnbgY(W|$tbOJw_rys~uPjq1*(!=3HU_Wwv=fLP| zWFSyukyA%@pkmmx+g7#v=Z$uwlL~KC6LM@qLGZV!C#a$g6OZZ~iA3hFEnMJCBfDm{ zxlF0RaEz_r<^Z9mUv3=NFg^`FpoEYt^8uwn6!|M=Hry)Hx!xyc7~-YS`N?v9W+L9( zwdB{+j-Rq*h0G&*4fKrZd*?BBlQjK>c zMFjL;Od%+AMdrrx6~UHOnoa0c(di8tf;F)qc-8ye9CZ6cn%WP&$-J0b|E=jC_kOD- zU!&*KXJmK55r7Gr>u2`)`_$vY7vM~1`m#-&)Ej|3-z=;I9Q-DEpLJ|o!8q3qi90sx z?-r3(4yPH(%ZXIT_@Olwr)CGK=R?6XigkvfYd&o%M2-pS@sBbWlOkVe&dBrQ)*C$5 z9Zj%@IXllj3lfpO4bpUel@EYm5f&N?`;XLmvVUW*`aiLkY9H(a+CM6q=Fd#eeCz3Y z$iW61kHIK!tnpo-yBF_eNjfyZ`x|>$^UIgtwP8BwxCv`dCHPMQn@rq?c{hNhUjP z-0usD6DLWa_ zrXlA34WgTF*$cpP0Mg^yk~f44?#k=^@ZXjXnb4%N|L#Zn zI!$;x`as&68>=#U?f*-I4p9P^*~KG(N!Oh>(l#MI%e%(uq|^UmF+=8bHUgt^LXZQ+j> zKccHl#>SbzS{mi}~IiJNd61 zR_6c9VVS{xaNzQcY5n~WoQPn2elf|(slF}LA3u!n@~O2qb9)7Fk3MXf2Zh5g@dFlO zU!o|k$H1&Oz=g$6P}VyfP3b?axRQ|qdWr$O#FY_+rWC~-+&HnC*vXPMO~kb{%6?M* z00Vb_dLDLuN;hE<2El-1X7m1T%Lk?vA}S$Sj88Q9{CzJFOEcH^e*%OpWU5oyMq-5N zG}Bdo!a^Hh#F6O>MMLP7XazTV#hylBXvT(Qtz=VV-8mA51ONJxD zz~SpCKMP(w`at1uW!OGujTvwx!UJX-NzHVdf#-)4ag0G5Ku z42pOxW}hoT9bI2&M;Liw^RL&=%}J@A;D~ZZ#KPN!0%m1Gog=HFXg!6QhRBTn+j6*QRqd;xGiZXECzJX&XTV_4XfLxKuWn4n&HS;@S z4|CLJOH<@vA@oZa0u)(=U;;a0;_KOL3L)J=#IS%s|Fb^jV&KkxVDXP7UjsP!Uq;?G zJ5zh1(}D9YrEn_(;;HP4&&}bAM=@7F482dF?qL<5DgJ>8{Cp$-8hv1eLabW;BTh`s zrdP&uwu14=FOdjQsuAOa1Kr^#&Z}xQ74wqonR3^|17XO_QKYBJ(V*@{tjBR75Ppe_ zu7|#_@CPcqKCkAJnq^)6TvaU|O`(!3b_A9e=6hX`Lp<5f@5d15(zN+^VZpa(34l;cQTN~n;r0<#0%+V5!f}kz=HiCJwscM z>|;LfN#Iq+JM>IzTRiCVPwxU^GUy+@sM*0q?}b}M*A%yj$+Cwf8zsC;Fc@J7QDYS` z1FDr%4TqniY-&N@>nB>7kwx6!kO5u=0PdCdwjMC)NdRtPYlW?Ae|Rq(V8~||_U^9# zJQx=KM3L1bf#Q}8Ef-&%T(a@}7qLgXfQPT9>JG4~F!AQ`k6Puq_g{ZDA@u+MXZsCp z7mDh3FU<*N53*wiTOWIev(r~sMx+EcLixV?`viarC^GrBl53$^Uyo`JwF_&XX5`1s zpeTk}S~s7C-ud7RcqKu--(3T=_p`X-ic?Pk<)Q5IYDi;DCS7g{=MZew7KBG$2Vl-K zab8E1K>vDyv;LK>U@aleKmTN_eI&rXUms02Zv5Y3vqR6m6#~aK;?C-XRCek^oaE>r z=24B)g$2as?`pIe8&U@707TWg3a1sxz4e1479iQiy(a#g?2daCzoW{QO|NMZISA&@ zja7$QlMqGgJZT3INmy%`;%NhBa?VwL3u)ov1jA2kaLUUl^v!l)LCR#l_6QjTxuC`1 zvSsw6OMQQG0y~ml1tBToO8SVPih(x%yfDK>7krPU#-?Ih4&|F4i|3O^4^xbK0%-s+ zL@7>K)5eAWr1yW|m|vEx-(Pu??Cn4DCdeKFXRO3=1d%DnSO|iJdnl6_=oiKDYBSM5P~ufg zh+VQ83#--r*b^cPF48J$>n}CveO?`T08ck%n=x0 zF(KIWx@ohJI=mMN8KM!k2ttuud;Lk9kzOC7#v2*LTxt$#PSK&Iz+F)RWfdc{41jcE z@SOGk_a;G+e_aThyZ_R8nGts7A6IsFa4s8~?4MeWbmgOA1>vE-^wGTy{SzgBV+EY? z&rZ$Ddno_(T!yzVZ*>>4P{ePP(SHjz(>{KbOeNJ_Ji?FSxUKR%Q2I}({}pJpfBna) zY7WbH>FKXiRRn!!>;D!Mw%`9LR6#pp}M9iLLzd;mUuT-h`t^d6k$a4O{QoE)JeHByxE+>?-v-E$L!=wmV z&TJFZ`P*~W8yjO%_}g7K`~6>i)>hZs-P`HGW4F^y`{7{ezvWwe=x!wU4}3yIH-F#t zK`QT}jzs_qq7*~QmaCwEEPxlOC&@V<_+NrAzllvhQgqN8WY)$uKQhAG2?|`N<&klr z+uP!QU2w=HuPXSLj%)_#33&a|{s5_tzBJsm{O^zPBK=z(y=Va1+qM-PhCZz~bz-+ACO9$CuX7hB#D!L9nR1ZERJ+*WTXz9mVUyNpT zDi-K@yhyzq5l`>F7xB$uv*-XpR7BQii&QN0O?tF98#1eZ5n=fDC2e%>wV~mxXSJ-F zHxnuwyCLX!EFB zBiS&0FD8JDXGC?;noC^`uJ#6>Sd$1*Iq9?N6aQ@+>Ifysup2242I1HclT7QZX5*}y z(Quf0sS|5HlMXiA;+*AA%_u|;^;7SIn^1uFBLd)DuUxSA_aGsz%|`W4isw(Pj+4%M zKD|LQ>fIT8j4Gi{Z>PIkX|e}VUlRKjaVl)78j+eMQ4}(dVLUHRJ@j;8y3QB}=iRn) zTl9UKE#3JqUiI9?vWZlhp9xGo(|CS!(fA?)svxDF!Td-USLQm^(vyfh9$0h?%Yj%BACS=W_3DN*_)X;>Cl zw)!0hC^y%BPI+UqfaM1ot$;L=8%AQwps#rgn?Bkf!=dR@ICVDNxXK!Mqso-69+GMm zlBa?43njfJ+J>8eW=MV85*mNo(xI6A-zVYkHA?yXg z>=XMwszZqDtk^QReLP66r${ll_BUmh3C72b&#AIAwfzgyOlJ*uO%zbclwy%;`0C_w6rW+d`7(95!ZBF;I5abNb49tW|M%`!?j zhv|Trf(bc4wbI^QA@%Nvpr*2yjNiS1y`5)JA~;~!(yW~AliDKb(jJN*YZJfJl~)Vw z!6hJKuk&m8D5shcb!bfG1Z!qmU182p4nrk2L)Lr1wZNFm&e%Zv0x) znVm+A;H_13c`WzI|JfXu6*3bk{e^y8Fy>bNB50B+QmixV_wRXb3wm?6)aUmQ3n)#X z(;WqEV}QFOQ4wJS5RBH42uF_Kx(%0@+FMcE)UoZ+Qt}FIEbz1W!#SDnI8856$Sv+* z+$S9hhryvB=JA>i^A;AheS6~9F1p6Amb=RFI5aoy^(buClwCL>t29x%NzUoWHIZVj1w@En#hH4s>Bi2lHg3H-$*Sm+y!ovg*^FWw)c**#h>~!z>r4C+oNXr= zfE(JwI0{l8i%lNSRkBF$R|HD-Hk3Sf=g(&O7 z;Q46mEeY6fP>Viv^Kdwd!;ly_TTHTZREE5tGW4^v6ueQ^Z&4@LIkD%?w6|K!LZGlvG(heNrLLiFfji+A$V$9U7d1YXOqiQgBeL@`Z^)Z#XT^Z!ssZKa~t?3f6 zvdJ)ZDTf|S36IectffyeChLRQ?!;bX`AvO_pxi<)CGn7*ni!^mSRW?skr`<1cU%JDyOyM56oE;h8|rvpCTsJUk_z|Omh13W_D?-fgq;nRp;8ZO)_HysoNeQo0% z=b@y!#)$;&KF%33^joBhH&@-1+>yqJ;f>Qw8NJO>>PITeH=iO0&`_@uCK)e#3@7T& z#3bzQ+{J8@a-_lO@?}*=ImVGrNDGhPtneRYFj>z}-cxB~-h$)eJA8lZXz{&K0Gw-u zkMR7@Jq`H&_Vf%w3U9*UH`my%!pK-vyfN<;#Zfx1%0E2 z-zjx$V6}#y z>Ryi4lJP?^@d_0}$+Uu!xvNchd8?=DlMCkjCr=bNJQaS5si2 z6{yI?C&pfyXBpIxna`hu&O;BF$tq;dm8?TX4ywJo4odz|-<dvVY*!L1wl5WIRzekT8VK~VBO=HQ_1>%Ok`eu)=R4UcLvIpYbAHhA=2ce zy6$@-ZqDT8ow8OM1!hjDRED;HE0Bz62Y#O!3M7_C!Ju}S2bGt~z_d6;i^Bw~S!;di z)=C>_0yM)Q77Tl+oy?XDuh0}Pi$;M;3nq&Fv9Z}80j&!I5+dWuE|`C(J6P|933SYL z#r<`H>8=1S-ur41287~@T++>`2!FI@9`2AN_4$$wXX04@ix{5qPxQlkIJ*5EE=gNp z*SdkDjZu-C`rPbum4(Z|cApO=^9e`)UifR%o9e~-5RQwCna_Qo&w?{O@>yL?lCgtE z#Ll8lLs$!wmkUwzH>xWy7~qP1?!(4i!d% z7nNm$Uj;1)Rh6@67fp~<%TQ{F3|oxyCh8(^KhXCQvsFb>&j`Ju4OX}Ai`aCIqdVhG z{d|YVh_e$t0ft@Wg*f_xxhm<1PHZ`u;0^tQXpmgAX31cAd?YC66Fu^+(yig z(>o48C7@-BF~|V%hRJOb80k0RTtW3)7x6F^&)~z3?-*PgD-IhT$*Tzqbmm(355S80`4R15#9wc#UwHOJ0fmC9d2CSh@FMAe04nB0 z-H*_Wha1q~9M-9nyiZ3Quqd;5(>sIL(xJ?u)twO#{pqF_Cm070UxcQbwfZ-H5ldY7 z^^vlUvTm2?-`MJh1x!Fb?qP5r5iMgiwJs(=S##)k`w_h|%H7S2X=B3c3FJ9V10!TJ ze7u;_X`HIrIGIN#)+lh`C>>vAWo!VX+1Tnnb~Pm8E|A^(@*}B(G&)W-#UfKIt|}dG zNN!l0C(&g&TN10!-ana2EItdp76g%)E1Uc>98|y{;}}7h!H6<~ez*-K*W7eiA!oT; zRoSi_HdnkL0tz0%DE-0vo$~d}D}(fqId=vC+@Jz*8|;VIj{El@EE9a;B~aRCDNOtJ zX_;0&X8>Aub@s;}eLkLzs0Xiiz=^*>W!#ixhDNds8i_PX>p_bjGvc|s+ZG^Pf2*`k zwV6ndV5et)^p46C|G8oRgaBoSmWom9#)38it+(gyk za2&(f0A!X1JM=1isb2%R1}+nDsYyDKM+w<4VT4U51Aym79LEGF$L`XKt03Br-|^iR;7F;XH0RA11x`-4~HwOSy|tvO*z6zFzY{k z>K#&MF(_*b_lrq_;JgYNtkg5>6#3wd@tZHcxr{WBoTQ%MaI$U+I72l2;@NhL=9)^^ z(x#eTUCFzXbBU-JZU&G*{&updMF5eZsx1d=BRy=)16SZt;obt^z2JePusOJzq5uJ? zn1b?}#6MpF0`sfS!SG&yd7Cx~DjHL$op!Y((Z};8VAVPlXk(AUInkdAOA5Ed;+7nM zYjfP!^!;=(;)jeGr?M4j{}1)G1><7AugOlF*{|LnI|$!5j4OoZB8b4*|b8mt8=FTFO- zqNs6asD&CYoQJ7sgYA~ct&`mfY;@BvU+`qo&k z^gMuni^~qqTa#{R!{+8q)yCsT0PpxN&|6uy%ksy$ME;q&nsN&XEE%k|DTd10*%%f$ za`i+2JmVVASbGj^uh4v^M@M7Q?N;n%@;N(&JV~*aJ-#h@YN;>yF-o)lo~)LXrlP>t ztbh+DVGj&OtM!PLESJCr*B?OXaaVYx52~I?klJK1Tpeh`8l1ZZKvWRUZc@{zeE%%F*Ofb{F zg(!BWas|WAg}^eN>(lsx__B}$iA^QfA}QM9S))3xXUmKC3OXlv_n=xI<~3W!p;M)g zSN5x|)_8YNV|YE(gzE_5?;lF~qj54s`6QU<-yT-N8h^4h;+)kRczuOoJbCJAsO>1Q zxjBh&$aSDlJUr=HdG{4VDw@_cF1iNdqvl;v?>x41yJusy1aw8UTn0Lxr;fIjA+#-| zVhK`*;@qe#RR=8Zg%Zf5(pcxCw(()i&v8dugK*n1RJP>OT3iWGB}XIP6D3*;Zhd>w;vksf)Il-&fLm(v2|c;Coic8O<_{E96ZJ+E z!fb?hQ=?ASG7vI(Z8)9;{b|^wg`WP-?7YSE3>Wb}mq;T+#L)D(v_bZ^j^MoC^=EXA zmPB~#4}cMbWW1vhgfn{2(NxAW3WCWv5<2ahBuO-*ykAH+XR~tIxgQe|tUlyPqADH& zi>R{M9ZZGQa{juLTXLC50n20_O$aDdK6j_vl7XetzAOR>QMp|!$YJC4H2QIF3i{lu z?PfR(NTXx-W7%EvO33#w=;b|wmR|1JK7!?Mi=bM+k#?S=AiKIHje4oU2gJ!;i$cHl zs7riNE>vBH_cBc@2hE~n&T9mr<1i`fxF_~0T7_$TK&^=U92ktl&0gC zfh$T*i0w90Vr;qeS92an8+woYu*ps5HkCrDsGs!$DlQ9`j8~Hl zdCb^h+aPFNjnzcA+eXipBSsrdb2%X5_e6ft=-baPyp#M6{ zpE5nMq5OpeLNxpibvrF>GDf*&t~MQ?QRH_l+Sj($?b(Qk-U^=PMTECVV^TexCp-QU zh_F-QBTXl}qLW1(eZ2$N3b3o{)0v8hCTGoo1%a)5E^X+Tl#BLF#q&l91N5JxmV3kT zH{vCr4cVLU(h}SF(bu)aw10aFAMm@;utBvtCZyYx(B}tgV|0e1A4&HNXJD(`@ox#a zr+i%EFLNDlorqYhiCmQ>%=0MH;XR?e#k$7n)Y>~+WVPLVscEP28?$Jknw9mPN4;miA zQ|pSkPL5~p!9Mi!P<)vIljPGQz1Q)`4MOdsyLJivfA0d_#T7ST$sCJO7Y)3O2?Ch%)NB@*ReN#JLb>Xt+9|DFKtmiEby0_>Yo4H?j!#8F%p^Nvwx1bYdFwy_c zdUPxP2qWJ#*mci-;yi#4Hz;z1iav$mZw0=C_~x7>rM@=u9|**BJqQPuN8{Ylz8lj) z+)-1y$C{8%a{Z`7W0@5CpxC-mhK}TQf;N2x+mru?LR{eSWR3@=(@f9%YHpu5{eW&2 z7jfZ3YkxLURpHar6+>kaR>YAN@AZR(t-#aMcS3=u*J($+#2>Dr?tE5VTRe}e9*p_( z-@hex+A7$v?S7YUt^R*hy=6dL%ht6U9D+-5hv4q+PH=)tu;3ot-QC^YrEzH>xCM7; zJV0>w+u8e^_q*peqZe!Ss;-(f=2LS<#mlE9dglg6fBYE`+k#sfG~O!2+mk1U<2L&h zPhVB&2f=tcxK+(&j!_<35w}queVQNfa324??_$&0EZN^4+};q7hSNm{i2Lvl0!+ep zYs@%=u&Wnpf9e>)MW_b+nHN6gAVqGIv8!P4OZg$X@cj7H)hD5LQaxf<2er2CxjOxj zf-|g7Phc=?b-K-zh(o@JsTgX8*bc)8>n1xY(XES%IJ@SFO_gQIwO}gp*$~$fCV#(?*SHotp@T z-_M#b*++I>#iEf#2n#fQmX4iz%Ip|L(c2CZRMn*VS8Ln7rKa=hPY#CT`C#Itdj8W_ zv%t+C<#DtU#pHCcxz61GbS?))p*=Ve1C*JhfjIt;6^7Fv6{~`@M?QRnNVF{p{Go?B zf|nn*rPj%TGqK$vT3!?x!)heKfZ=eWi&qgZ$~y#|trYM6#1^424gyg!0F z5@Hsy$oG^*^pgKGv@iXKf6@&QUKD9c47vK_PqYK7+58kGw}A$hJ_a#Ueg(8TI8(m& z6r7V^*9U@_H-lk^kMMYrxz&k%E{(VaNXnw8zJaG6a@=?ayg%_fwU z#Q74;S}5C=>zlT#zqQYxJweP0;z-j4yO9P7Gk{D24J?t($)NtQ@JPd+xhnIM?86a> zd@q<<5=<0~m&i zRk#zO>K&#aH{=d4L=Bl&7bEy=_L%Mik=*NQOJv!Xi5)a|0|3M-em zEJ33BPkhXJKNy;hNs!d{N~lkAP|DQdwzS=I`b>E=ipwm86UZnMLJ&~Oko&)d`YX-t zxpS1!<_R615kZ1qCy*LFeP1Q-%gKy&tiQ0>A>11mJ&%6ST8&E5cV{uG(Sk^-!$JP_ z;?hdVuh8&+lv5ku)`?L_3n7QA1OpV|-M!}U9i%`6m>0D|CIrtEvxCKWG12HupFJ#< zWM1J3Mx6-oGW9~<>;MRn?6%tJYeE;Q3^SmBqv^=8(s2Uv6Ec7?Aqve}_Q7TO;l>>& z#)VdYg{mS^P0F94|AP~<F4Bm;Z9q(8>yxK0(k|f0MPbpuRu%KCV6wP6maOrjrEyqPBJq zGTUf&Bk!LX{Xrjo;;MWrK7#_(3o$R8u{RtjzVjz&%tBUX*2JFa7puCb6@08dBE}%6 zv61z2dTh&kiw!Vk0Se(k&dMSsl}oH;fo!+NbokM*9wAgVb5%g)SFQ^wNdKz{H0>RZ zb#Esx`6sd~3MiQAS6XCGd%6Mr8-;KOukNb%^|gb}6D|oEE{+%mO%k+cm@gMj*8;+8 z;}DX2;*>}$)i=?t`sFqU5g9EI!WQBO(!Iz>bQosj1XaI|z7rIRZ4a|S|49SkPeI{e?S@NyAG(Zi7DF-YMlf_uPK^fd6D zX6Tc1+FEr+Hxex0Z4~hWO_`^qWad&Ok=q*i<8ZM`tDgrmQgS+f!2ex;4MTy$0>{>k zPS7vb4li646CV}51`A}+Ldg1Af-kV)c{pdW$$G1>=0+iF6tXOU(x`EqprX9$ELO6o zbpLUvZ)M0B+Y~ZxEL2mcDH57M)ay5q-FW12T9Fg@YwFRX11IT`iSy&8K94kt2(0e` z7o-Y&rKUeTg%yLn{Zq0zwCXpJy(+-8qkaUeJ5D}>tkH>lnkqf5eS*0v6k>_ z$_glL`eVe!dr*1w7+9$gJv{v)1X+94aG7CMwt#sXo2f59H%1i3i~LYN1%9B&P6Z%f zG!z!pg*_%{%@(mK{D z(`R;#&UB76_y>9X3tmXyKECFWhEe;wrXiuHU}TZMG20t=0K&9gB2&2{J3N1;%aS2O&Ob_v6qFXC(d=krGMca14rAc1%8O~;0_ zwU28%A9O|K`@82un}bmL0j}*U1tsRBcEimj%`Tf(Nriv+?PbJ9sdFVUUhz5k)hRmj zX&8q(EBfG4B{`pMRhCwv$D4yb7tL~nwne}bc<^Yg6@q=sfmNeQ^d+bz+pu(V@tf0! zqP|*5b{7OL&{`BV$oS=$dwwzIbX2d2NpmjDE!3BuM&3&)m zO%L8fx~Z*(_Z$Cp=kwUVu^wyyFY#^04{Ha84CTO~gJ zA$9Wp#z3RHq8=ci_Hgq|Zz~)d?QEh%+kL4y+%LHdBqt5mMkD99 zN*obSI&e%RectTqR79Im`v~x4NV~HjLwErCf1$g&p0OVYnomcudrwA)q@BbIQNEj= zwM&0w*rpIn{zWMJNIPAEgSCGxnC&T=vFP~2Z;&gpp3`RXPO4vk&9l6Ku|9s&x|kyS zF1qGURScC_RKjr9W}G(lW-L+OZ+3Q*2OjNH$>yzcDZ=c#yGkM8x<6j)6>X{$5>Xj@G3Qe2roqHTN$y0Kjyu;h#O*Jep;a1vvm&}S6Jplb@{m2t-3XLGT;2#5B z{nZox6D=XacST8qcTi$QFTv7VpLv8K5H*K{qeR>an2$wB=7um82R;00^`GJP-+u}Py*XG! z2;uh&+-;)_tWf$nl(OaIa z&);8rNt$k$A8zB&FZ^D1Neq>}(|%$FxYeweK6ZHh&!Y+x{kuo?>nQ#*_RiFoVR~Zs z&y?o>pUvot`@gsOep$#?3+#k8&#vlp{_mInS9EcW?v4}pWB}dOxvfPB?@iKkP7$tZ zQwb{)(tlsCQ&a6HG)v*)89*M8mj}^8hvTq)Rv~-8@;9Y5ymV{{>>L5J zxdw|1*p`$aFX9(cu@0e_F+ra6E+MSbFP}%IDYXlEklX-nG|=b z_i~A1!_o4<8#{}%ZCfv!Nf~*?4f9Q}0mqmRzQL!1iD7Ff2{aBvFj)?Kigoo@-dKd@ zJ%8-mC#4%#3FE^d^Ts>GzXsD(;tz8Somq!MMtm4H5Eeu>F^)sLRCN3UH~tnz;@S5^ z+5Hl|dLVColjG3&4HH^Rv-14UY3=>EOK#Pny5h=vn9%P>NRKjlKGW;>gl#Nl3?BdEP6L3>V=G ziPT%I9R+iqoQ!YQqVgBLe)`5Xu9CuYSqbIJ8mCH63fxy2`p`rAZiK>LVHQ_^_? z<=H*fm2)~bPrQGeOgY`w;q0@Zix<_x()hUJFLAC)uPBrLL07o!CA1!Yc&Fs=xckQZ zXlMqJYGqW`UV6AGYM3Xvz$+mdhvh*uNzNN&-*csKCY*;$2thZJ&o5QnJNq;S*n%H}0HaXUPt0E{Dz0$zP|*aOuHqlsA{nMizETatrWST@s|R1~c2jk9SX2k4 z1&D_~76nemwYG5(b+q)Isum_sbSEIbk@ACPo4@%kRrW7Lb5jLq3TLsS3`d<&sAB~$ z6`k05DS;(gu>~{}S z-=28}W&Q->cM{tBSFK;04!nk5JN>Tlx3=^)iD>IO3unSa@l&l9+5`h9rrur41WbZX)m+iv72vN8( zO9a0F&v97lJkj}lzn=6gW`>*N#a5J!B zF5xnFjEbocjRV9Llpys)xcX=PrHp>(-3I^g`&UI|w>}Ajf+PuVL5nycQD6*V{i#Iq zE{&+QvMsInI&V>Sn9Mznuf(961>p9^OaQKhYiM6gKu=#iJ-`RzW=cbV%5n z6-w5Wjd|91BLF0Z8*N!&yB9TQ0;G!XFUkdSt##y7wzED=vc_&Q3h`&d#Xbuo;q@jz zY0qjj_=@=*>!^L^_~3OFy}m397+MmQx;J}Ae#2iUKidY#BQ{>#`*Tk8l#7JtxWqaA zVX_?rNx4mk_lrqd1Ey|jKJ5p$Dd8~1`~*fjl7DHKvs&?3VfUHAvT3uQ<}WUoC43fL zKYyEu4O${%JA2R|FnvC18HH5bfazq=FezDIP^e!pd#%rPbFzYOtAP8UP(E%a27Hv! zEI`9<-*;n&?%EtKY6mEF3z7pq*}S6eMrl`HeADZ;K~rt1^`az1Z4*C#M)Qc6dXY*n zIQFt|+$_OR+q&LY^zf}#A#ti6hfUL8ZQX4vKDGl-Z-Ng|TRs$j1AWk zmuWe5NchkF``;R&-o6J5)gS>`;4Vjq5_{5duwFG?^g8&(|>8;Tuw+YX@xeM2ht+ z)SaUACz**>JEV#phZDIHgVTfj^%Q>~+i}*(*g)^pWKynO!zPS)*6ijSm=~L!Dew1i zj2h*%Axe;Ij%*MuE~Qb4d^2d3N=P^e{(_p>7(4&1xdRmC0zf}e23s_mRu!UWtVAga z-RyMl#!q9}1vJ`2C`$_P!u)aq{O#7FNpN&#gDeHy)O&p_4{@yK!uN1rDpU%o8o%O3 z+~h~pdfI&fer+#1611YY9dgS3J*5=}aaAd)_8q=?v3%FnB7XO$ZKq;}1x>#gJ3@eI z88)%Lv-pOhg3!?Y+!fP;pT(#-`~ynsQ#gl=BM){Wi~gFL68Plw=V#i(oojru*6Lfa zHmdD2Tj^*^#QoREn3{wqXbAfgdefzXY8#3NJOwrzJo3>U*M?O=lV0~y@B%7F-gp1m zUW;?gaQG9-%SyV{%+ias&mw^kW9mP6uSx` z#zX4ikE{IFuYwV*IO9$-7AoV8ySrCe4b!!4iKqa~Wk=Bi5BO%H!uiNVG)LHUBBdcJ znxd8lc8_4St~nFks7jVG9R0MMP1+RaxnzHOZ5?a1iqu9TED-ED#R|a}28AtkC;Nxc z<6)b_65heuo46*y*T!?d=B#J*gKgqfEJ^%WTTw}G* zI0z54YFtO9J-?ZjalCj}Zi02+m$#H`hcb)SGnqQGILsm!%S5d$H}zRW6OxqUjqB9k zpDZyv#wVnhWS~EG54dn&evx4UAc_g;ndC`m)nNv!DtHdK7PE2!G%(Rl@1OZH^RQ2> zh}+)xK$NF1PB}Z<|78Il=8A1ztkmBIZzh9FX45d;rX$iwXU|0cCV8hB**V78x(yLvNlsh#pB1k8=Ck~cm zBX(Xw>cm_81dZnCy#Y^4T&1D(nAIUqU++g;YToztTeG07oY^jh4ckVcWI+JM^agW+ zjSAkH*7qhJlvOi#?~UCb)Mao#XN#@*LMIlSGvO|qrqpT#ppQ_juH$zgB-XSy+8I*<=SbJ>7%^-zzf~}mVeGj#8L^t^% zg*bk7lQ>ub8RH+zn>CwT_+~&73cDL1uHt9ISF2S2ycA@2<2C<0clbHAFcwbQ1G33G zC*b$)p@Sc4x|1CI3GPV`)%B6CZ4UjQ4~{G3#VZ3Tm`@+KHEi1}pt9~rfhRJV()A{I z1Q$IuJOOnNzP;RA?;JhpGybj8l%D)Pa#GJ;D2*Jf=!Nfx1f5d{(LTieIOvhPHLcb} z2?Z)-eCvt?lmhA*XUSao{A6=x%5jwl>ckE?7+OLspW6xZc`9bka-+si6cwDh%Bb|M z7HfI15DHl&a6=n~nxJ1)^q)PI=@Tg;)O7-In|0jGvQqt6UoV5*q=6x9aTyp6UQu4b z?LX&(>;V}UP&QN95^dt&=!&TSfWZYgTS_(EiMc(=*+I#2wz-|wY>9Rg){#`yyxy&S z>bzV+PePMBy;lY82VQAlg~yUPXK_U??}%x)Ii`ah*_>h~92*6b@_b?`Re+EUM!hPs(C_QP*W zXvN%;j~d4|^c$_J1SY_s*4s*Kmq}E=sY(EIyp5cT zl&vFS^EgYl0dRDr#AAJ3_^Z-&;-hINu2_vLcbLc5*Tpsean0O$|E#^y0n0bcr*KzI z5FYYFnAS#IRUQ?{Q-uzP8#~VddfiIIU=!1Ut6zfRbL%XFuDzYviS2J$r!x%-7I`2b z4O2Hrtj79$;U_tWf|Qe016t40Q^PmbmW&d?avuT>^~g0y##1}t3p#afKQJwEn#HLr4^*B>n_3)rR3K|fUwlT$ zu%a7UT|lS(rlSU_h(Y-=c>y0{($yg$Y5lTGa)eRqQH}vMuDrvM^y^xv50L_1UU`+y zGB!)tGB1yh4wT(hPJEd;LR$?Zp;0ZT>td$L;mtEA=-#8UI!i5-Whwy%;v@3r6|mN{ z-y-_!M<@j4dy~Wqy;n}8tD+R28g7!rts}=|#AI`L9>Fx_BELpSpYc^;`wz~WaFgAeKf3q`vLail(*pKUHf<`#l3i^Vj~B+bY*<&vAmE|8Iw*q zwmX~Dn}!YyyHhs^c&#`4kHllbYsy|W36YKMmwRAWg+ozbnI5%H@j11xhWV!74)c?@ zeB*ta{a7-A=NFlv^uRe%|Rzot>%biD8AiOk-Z6_O~cs9O@kORoeboJl1C$? zojXc4VaeoF7PmVHCND`QWSw`9>o6R6nX*RpP*i5zUotf;oP@`VsHVLKPr2Dd$=W}X zxq~EEYdLA0SG^m?ua(-T@im+cRbG3UW3>B@ct&gMuS~Eyp-?(GjT;ifC`;y&s1e#` zZ4i}BDo47=Klq{n*_l29CRh zX99vIrIfhnwnB5Yc)qo+3mpbCGq%ofYN~%e1?bK%bqMbPVq~mRniG~)lPWfG_ky|n zxosIn1H@$}bHHsT?|N#QHA_=vy1B_=UdE8x=;%4MC0MTnW)E-$e&UmktJ!9X#hR?- zS`#d4BR?4Hhw;fYL5)XSO90QuxX5s$j^al5C?GePp~29V2qx6m7S@CLO?XPLZu*&p zw&WCnYO02j=o485n*%Tg$K|~)RS7-r5eQACj)`|F3+2g|Z=A5Stz&=bYGH4lJS&s9 zk3Y7>$$6amDrp&OI_G9?!?3n#eqs-xEGDvR?$aJK4eMY~C&~XKC<&Cc3rPkjD`{ox z1qq~W3ah()Tg!AtpmM9>rI7Vb@pq$Co&l|%i$m7#zejM9B*;>XmyW!?2Dx%gZ~8Fx zvX9M?_bc6M=MwyObAbz#?0oRQO$nSW>`CUSx<2vCpln$6sFJf(al3+5yKV`m zRQTfk_>6Qj*bX1Rm%)HK7|Dinz-zqAlp5K%a%n0Cq^4r0$}4jyJOEIGDw$DD2K=*R zotFhwwwiHr$Bpvz6TA0&R@Q5uY?Kk1Jom(YI1&=dIk*9W)tJ+sV&2{|JQbZY&>Vib z8jK9gozBB{b<2i9O}mR)GE-+y3ABnb({N{BiDbbwMGO6g*{2gMo^TiS2wv!K^Hc&d z!VzH?7#@4QwpAZ~TgjV{U=Oi5@cn;Y$fg%}yf4s$&-+59qB)dSQL6i~it}B5%Mc^` z%=M>^=aDioZ(tj6<{@kc_{+MU@mqOC$+(EgmG~U|(TqubKni6tb#f5ro~Z%`LwCvY zS_vnLKr!uN+ejC9aQZxxs3mw#6rFvfnTwZ1g`u!#LK8q z2xFkuTK$H@$ZyeL-$R(49ga4WN=uX-acG3Lx$kf89fByqH)`j))F;x!u%65`$BZbe zYK;3r=od#Dppm1dB&g0MYdZhb??Uve0mtaYGX~1R%3;X^(9czw$u`r>6OKK#rLZp? zWtT^VibU=j`yhMn=y54(80+APGzoiFAFFs+RFX)40)F(<*%}p71KXPC%D16ZWo+v} z4${28J%Jsh&se+PWws_J5n#F-A1dulXXoM*>o%+67xJF2 z6cf2y8TDH|ATu(&KUdr{>@Ux{i#1lAh<{o&C1gD^fuIJE61|kfoz=9&6IVa+0*l8a zDFln*IeXwD&eG%?Tj#m?^<2lYFuN_GN2Qos^6<3ZO)`U0iH=rWMpQm9{Z_%1o=xqP7Xz0XTNm4JtHlpe5(N z2-@D3GA6{MAPS{ zE>eN#G5)+JrNiEMduQH44q~@l#UgS2Qm!yCGt2(*NhFUqC}T3miu*8TkH0 zzepo{-ejIYP}JPNaEXuUxuL8j8yKMPE%*V4eQ)=HAe&9f=sGW4ai#2`6fxJX6%vla zoG|w0=+);<3gW8)-D0-zS{lYfH)@gqd;Dlrd-O}baF&#FKh@Swn}Uci0260~ITa{) z_TL8%I7Ca|RhjO7Tvdzp?+smQ_4Cwlz@1%>bKzk43KMGei7mF?b-j0s0zv&EUGZsU z9aN8i1K)P%!|=+2C^3l6ePok`PPDse?>d~%8=X6})sb~&ed2NP`@Q4-z53Nf&aV|> zMkga!6Yc5iS!`BQ z1(ysiw(gVH#y0uMja+68k`3Ae@o(#edy_wQ$dw9_;YYO^7kJ`1T3ADd9^p3T*l17? ze?6rk!yjlS^oZ=qODNk@q+eUFVYr(<7Sy?PgBpDT;TkS^1=Xl_r#)9o#Z$+G8CjF3 zAJ8uGsVAeuu2#458dBQm{Z4(``a+pN1?mdq^JVI-d*2tB5o= zBx9$YPhrA#p#zD2?s!tm#u7!;s9OxDFi(#~1)2Y)N@VndynfVLO#^u@EoB(IMOU5$ z&j`D>iYq0B_WRem6^m1PwCcTa zrU`P}m9%bhOziKE>vyb3*!pUP@Q_5%gJ=$)Joy(`!|{BYxb}1q(~y2p3~0_}miyO3 zB9HtI*UN6MRttCe+&B2wm6GP*v+2?=m9||SZ(1~<{|zQ!8ltgRWt^#!PVXGDTWMT}KExWEdE_9Zy3-P#TSCKxx2{Yw&uc`IRCMwsw@!a8an&*qFljDyXA@V3dYK*lEqlowp^pnHTFTBX^ zs4~t&Tz6iWd2e2pQdq{$LS#ibf_%vy{)L5ZS?UQ}6|h}?9->e})#*>v(l~03)qtf# zTGu)YV3}ns8#D<10Sn#j{6Di=FM5C(@hu>O5AqG*{&qQ^3R9L;iZgQ-4xrpAEuThn zxUPQsGj)^S7|Ov&#oL>slADsldJ0b9;4voC$~9`9J=Ctji@MHcuK$Jk+hI+0L<{Du zRF;q(Hc0bJHP|l>();COBF2LS?kLsPtj}v_CrZ0*&=Fk9les{bzQ1gh&dq98G4Q}# zegLoq3~m{IQDY)a9YZvM@>SR37$f#&RH{V5zc_G}qyRiJTBu@7#P2$zla8`S(5Fl` zzoJ|dHgG8f)Xr%vRan=S%dL(mu@pbP8fWR)+K)6cXj0n(VNl0i7e;&yRx{VQKwNKB z$Vq>0HofhI&f(o-=DyF7ym7>}EB#+u*Bb_MT;P~qm1Gv2MhEWHwRuwV5Xn}YS3vpu z*b-RgDX7I9kxXJ(I61wSfk6q+PnYNtcrB*8t%5uCB4#K^R|b?kiO;T@`!JH8{OIAc z$a13*w#+n;Goh}#$YX#@j2-ddhMUa7YI#1r7W80dH0;khM-66hvezdVC!3v8fiXH{ zGLZaKpuX_NY#g=h5BaJhNSZb=bE2+G})bTktawVlPE!3yiF`r{kVI-khosN9Imwp*S9BWoM zWmvxxvq2o{lu4`Bai;;$N@gzCS*{v7zcXMxLDRulJe1te8 z(^=~p75FXm|5oG^c!3?2-rT47Knf5Pw%_0aI8dnjF#fgw|DTNa4*_<%CsTm1fBOyW zg9Y}$v4y_>5ybo};5zo}y9EoF{l~ukj{pe&Z!jWV|NfHoH{UNkw(#Fj=3kTn_g}$q z+xtT&SP%y{_Vs@S(Ekdkf$ukKV1d%`Xv)_A{~mzgB>!LHylmwC;u$PJ4IBORzXBr2 z^Bt8~|1Ht?re1I~_hOT*cl3YX#9w%NodQfp+z!J(2*1t=Z~s$4<;{l`_WiW?mHTD9 z_a$oJHphAs7aSD!B5`RF{om;QyQJ8wnffwAZf-a*U_kevZr!6x&~kmH7%bpD zkCznlJ%5Hs+zHn`q%?~J3PRXBei5wJsOt1H_K|WPLw_I^cSWfdPW z4@3%EyBKgGFa|_6v=aAJ!)O>pnjq#^)GLU?+lQo3qy6N)!`ZNS;?C=>5pcJe>rQ!y zSMXcdP}HLSG95$>DRG3YBk*MI`&d}(P)?k-dn9m7(FhEKSB=q)IynkPYep@K27BQlMG@l{`G*lsSHMQ<28FU>N<* zGT?Sa@o=fmz7u}?z$x#SgyQtchXz5KjowR87Rp!j!g4FZIowWW{Ez8In%^(xFg@E8 zXtDQ~1uo`Fecr|3vyUCNeXGCkb0dEFVOEpG?Cc+NO^j2-ho`NBUvPS`~|W{&cTL1xt*DM zr)}A|b?sYD8I5A4W)7kdb$qqk@~P|c={=9Zk2rR`SOf`IpwMkX?nJb<35nN8DYU?4 ze4_uBYxoP+vvpLh_00MdO%**~c@MFZsD084&hf=W5n)vzFQia{TC6D8PTjx@k#T4v zPKYE76&F(LiOVH}xS!n>gfL9rjZ=N8?R9I*y`#BRzDhAUZW}^I8U4}6zly>~0y11-l@A zR8M0pT=6iGv5l2R?)BYR_?JTX;Jix@4#>7)Th4axU5@LZ?v;vfz|SH^eZ=V#zpn

    qg*!rr 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 literal 0 HcmV?d00001 diff --git a/fixme/image-2.png b/fixme/image-2.png new file mode 100644 index 0000000000000000000000000000000000000000..4447dbc7dc7174bcf89a417eed63a62c37628ee8 GIT binary patch literal 164920 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:-yfLJWGALO@N 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