On Mon, 11 Jan 2021 at 16:59, Marc Zyngier <maz@xxxxxxxxxx> wrote: > > Hi Haibo, > > On 2021-01-11 07:20, Haibo Xu wrote: > > On Fri, 11 Dec 2020 at 00:00, Marc Zyngier <maz@xxxxxxxxxx> wrote: > >> > >> This is a rework of the NV series that I posted 10 months ago[1], as a > >> lot of the KVM code has changed since, and the series apply anymore > >> (not that anybody really cares as the the HW is, as usual, made of > >> unobtainium...). > >> > >> From the previous version: > >> > >> - Integration with the new page-table code > >> - New exception injection code > >> - No more messing with the nVHE code > >> - No AArch32!!!! > >> - Rebased on v5.10-rc4 + kvmarm/next for 5.11 > >> > >> From a functionality perspective, you can expect a L2 guest to work, > >> but don't even think of L3, as we only partially emulate the > >> ARMv8.{3,4}-NV extensions themselves. Same thing for vgic, debug, PMU, > >> as well as anything that would require a Stage-1 PTW. What we want to > >> achieve is that with NV disabled, there is no performance overhead and > >> no regression. > >> > >> The series is roughly divided in 5 parts: exception handling, memory > >> virtualization, interrupts and timers for ARMv8.3, followed by the > >> ARMv8.4 support. There are of course some dependencies, but you'll > >> hopefully get the gist of it. > >> > >> For the most courageous of you, I've put out a branch[2]. Of course, > >> you'll need some userspace. Andre maintains a hacked version of > >> kvmtool[3] that takes a --nested option, allowing the guest to be > >> started at EL2. You can run the whole stack in the Foundation > >> model. Don't be in a hurry ;-). > >> > > > > Hi Marc, > > > > I got a kernel BUG message when booting the L2 guest kernel with the > > kvmtool on a FVP setup. > > Could you help have a look about the BUG message as well as my > > environment configuration? > > I think It probably caused by some local configurations of the FVP > > setup. > > No, this is likely a bug in your L1 guest, which was fixed in -rc3: > > 2a5f1b67ec57 ("KVM: arm64: Don't access PMCR_EL0 when no PMU is > available") > > and was found in the exact same circumstances. Alternatively, and if > you don't want to change your L1 guest, you can just pass the --pmu > option to kvmtool when starting the L1 guest. After passing --pmu when starting a L1 guest, I can successfully run a L2 guest now! Thanks so much for the help! Haibo > > Hope this helps, > > M. > -- > Jazz is not dead. It just smells funny...