Re: KVM/ARM64: Booting KVM on FVP/fastmodels

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 22 Jun 2021 02:33:44 +0000
胤桦 陈 <yinhua_chen@xxxxxxxxxxx> wrote:

Hi,

> I follow the document https://git.linaro.org/landing-teams/working/arm/arm-reference-platforms.git/about/docs/basefvp/user-guide.rst,

sorry for that ;-)

> and I build a Linux-on-FVP environment successfully. However, I still cannot boot KVM, the details are as follows:
> 1.I make sure that two configuration files enable KVM (I guess these are the right configuration files), they are
> layers/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/tc0/defconfig:CONFIG_KVM=y
> build-poky/tmp-poky/work-shared/fvp-base/kernel-source/arch/arm64/configs/defconfig:CONFIG_KVM=y

> 2.I follow the document https://git.linaro.org/landing-teams/working/arm/arm-reference-platforms.git/about/docs/basefvp/user-guide.rst. After building the whole software stack, I try several commands but the results show that KVM does not work.

Have you tried actually running a guest? Using kvmtool, for instance?
kvmtool can be statically linked, so you end up with a single
executable file, easy to copy into whatever userland you use.
If you clone it from
git://git.kernel.org/pub/scm/linux/kernel/git/will/kvmtool.git
and do "make lkvm-static" on any arm64 system, you can copy the
resulting binary "lkvm-static" into your rootfs, and then run it on the
model:
# lkvm-static run -k <some_kernel_image>
You might need to create the device file first (see below).

> The screenshots are shown as follows[commands]I try three commands,
> "kvm-ok"

This does not do much on ARM/arm64, it just merely checks for the
existence of /dev/kvm. Depending on your userland, nobody might have
created that - but still KVM might be configured fine.
A simple "mknod /dev/kvm c 10 232" fixes that, but the test passing now
doesn't mean much (as is just checks for the existence of this file,
not actual KVM functionality).

> "dmesg | grep KVM"

Please always use "grep -i" when grep'ing in dmesg, capitalisation of
those names may vary. On my kernel there is indeed not a single hit for
"KVM", but several for "kvm".
Keep in mind that this is not a bullet-proof method: the boot messages
from KVM might have been flushed from the dmesg buffer already - on one
of my systems running for some weeks with some debug messages they
certainly are.
But right after boot there is a high chance of success, though, and
it's the easiest check for KVM.

> "grep -E -o 'vmx|svm' /proc/cpuinfo"

This is x86 specific and does not work at all on ARM/arm64.
There is not much to learn about KVM in cpuinfo on arm64.

> I guess maybe the reason is that FVP configuration uses a KVM-unsupport CPU, but I do not know the right configuration, and the FVP documents do not mention anything about KVM.

I doubt that, the normal models should all come with EL2 enabled. The
RevC model definitely works.

Cheers,
Andre

> And this is the FVP booting command in the scripts:
> 
> ===
> 
> /FVP_Base_RevC-2xAEMv8A
> 
>  -C pctl.startup=0.0.0.0
> 
>  -C bp.secure_memory=0
> 
>  -C cluster0.NUM_CORES=1
> 
>  -C cluster1.NUM_CORES=1
> 
>  -C cache_state_modelled=0
> 
>  -C bp.pl011_uart0.untimed_fifos=1
> 
>  -C bp.pl011_uart0.unbuffered_output=1
> 
>  -C bp.pl011_uart0.out_file=uart0-1624328932274439497.log
> 
>  -C bp.pl011_uart1.out_file=uart1-1624328932274439497.log
> 
>  -C bp.secureflashloader.fname=<workspace>/build-poky/tmp-poky/deploy/images/fvp-base/bl1-fvp.bin
> 
>  -C bp.flashloader0.fname=<workspace>/build-poky/tmp-poky/deploy/images/fvp-base/fip-fvp.bin
> 
>  -C bp.hostbridge.interfaceName=tap0
> 
>  -C bp.smsc_91c111.enabled=1
> 
>  --data cluster0.cpu0=<workspace>/build-poky/tmp-poky/deploy/images/fvp-base/Image@0x80080000
> 
>  --data cluster0.cpu0=<workspace>/build-poky/tmp-poky/deploy/images/fvp-base/fvp-base-gicv3-psci-custom.dtb@0x83000000
> 
>  -C bp.ve_sysregs.mmbSiteDefault=0
> 
>  -C bp.ve_sysregs.exit_on_shutdown=1
> 
>  -C bp.virtioblockdevice.image_path=<workspace>/build-poky/tmp-poky/deploy/images/fvp-base/core-image-minimal-fvp-base.disk.img
> 
> ===
> 
> 
> 
> If you can provide any kind of help, I appreciate it very much.
> 
> ________________________________
> From: Andre Przywara <andre.przywara@xxxxxxx>
> Sent: Wednesday, April 14, 2021 16:50
> To: 胤桦 陈 <yinhua_chen@xxxxxxxxxxx>
> Cc: kvmarm@xxxxxxxxxxxxxxxxxxxxx <kvmarm@xxxxxxxxxxxxxxxxxxxxx>
> Subject: Re: KVM/ARM64: Booting KVM on FVP/fastmodels
> 
> On Wed, 14 Apr 2021 02:37:07 +0000
> 胤桦 陈 <yinhua_chen@xxxxxxxxxxx> wrote:
> 
> > Hi, Andre
> >
> > Do you mean that if I boot Linux on FVP, then I can run KVM on FVP? Since KVM is just a module in Linux?  
> 
> Well, on ARM it's not a kernel module, but built-in to the kernel
> image, but yes: You can run any normal KVM enabled kernel on
> it. So just use the same recipe you would use on any other system to
> run KVM guests.
> 
> Cheers,
> Andre
> 
> > ________________________________
> > From: André Przywara <andre.przywara@xxxxxxx>
> > Sent: Tuesday, March 30, 2021 18:22
> > To: yinhua_chen@xxxxxxxxxxx <yinhua_chen@xxxxxxxxxxx>; kvmarm@xxxxxxxxxxxxxxxxxxxxx <kvmarm@xxxxxxxxxxxxxxxxxxxxx>
> > Subject: Re: KVM/ARM64: Booting KVM on FVP/fastmodels
> >
> > On 29/03/2021 13:13, yinhua_chen@xxxxxxxxxxx wrote:
> >
> > Hi,
> >  
> > > I want to boot KVM on simulators.
> > >
> > > I don't want to use QEMU since some features are only supported on
> > > FVP/fastmodels now.
> > >
> > > However, I cannot find documents/blogs/wiki about booting KVM on
> > > FVP/fastmodels.
> > >
> > > Does KVM support running on FVP?  
> >
> > The FVP emulates the full architecture, including all exception levels
> > (so also EL2), and the virtualization support of the GIC and the Generic
> > Timer.
> > So yes, the models fully support KVM (or any other hypervisor, for that
> > matter), and are in fact often used for developing KVM support of new
> > hardware features.
> >
> > So what are the problems that you are facing? Just running a kernel like
> > you would normally do on the model should work out of the box.
> > If you describe your setup and the error messages, we can probably help
> > you better.
> >
> > Cheers,
> > Andre
> >  
> > >
> > > Appreciate for your help!
> > >
> > > Sincerely,
> > > Yinhua
> > >
> > > _______________________________________________
> > > kvmarm mailing list
> > > kvmarm@xxxxxxxxxxxxxxxxxxxxx
> > > https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
> > >  
> >  
> 

_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm




[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux