On Fri, 07 Feb 2025 13:26:41 +0000, Ganapatrao Kulkarni <gankulkarni@xxxxxxxxxxxxxxxxxxxxxx> wrote: > > >> + if (is_vcpu_nested(vcpu)) { > >> + vcpu_set_reg(vcpu, KVM_ARM64_SYS_REG(SYS_CPTR_EL2), fpen); > >> + vcpu_set_reg(vcpu, KVM_ARM64_SYS_REG(SYS_SCTLR_EL2), sctlr_el1); > >> + vcpu_set_reg(vcpu, KVM_ARM64_SYS_REG(SYS_TCR_EL2), tcr_el1); > >> + vcpu_set_reg(vcpu, KVM_ARM64_SYS_REG(SYS_MAIR_EL2), DEFAULT_MAIR_EL1); > >> + vcpu_set_reg(vcpu, KVM_ARM64_SYS_REG(SYS_TTBR0_EL2), ttbr0_el1); > >> + vcpu_set_reg(vcpu, KVM_ARM64_SYS_REG(SYS_TPIDR_EL2), vcpu->id); > > > > How about some of the basics such as HCR_EL2, MDCR_EL2? A bunch of > > things there do have an impact on how the guest behaves, and relying > > on defaults feels like a bad idea. > > Sure, I will try to have these registers also set to required value > explicitly. > > > > > This also assumes VHE, without trying to enforce it. > > Ok, I will try to set specific bits of HCR_EL2 to force it run in VHE. > > > > > Finally, how to you plan to make all the existing tests run as EL2 > > guests if TPIDR_EL1 isn't populated with the expected value? Surely > > you need to change the read side... > > OK, I have not yet tried running existing tests modifying to run as > EL2 guests. I will try to run them modifying to run in vEL2. You shouldn't try to modify them. Just make them take a parameter so that the initialisation is done by configuring everything at EL2. > > Should we modify them to run as EL2 guests by default, if the host > supports/detected NV? or command line argument based run? either in > El1(default) or in EL2? EL1 by default. > > BTW, I have also ran all existing tests on L1, most of the tests are > passing(atleast I did not see any failure prints). > > arm64/debug-exceptions is failing on L1 and needs to be > debugged/fixed/skipped. > arm64/arch_timer_edge_cases fails on both L0 and L1. Then I guess you have some work to do to debug these problems, and it once more means that NV is not ready for merging. M. -- Without deviation from the norm, progress is not possible.