Skip to content

aarch64: Firecracker does not run on a RPi3 kernel 4.19.58 KVM enabled #1186

Closed
@DieterReuter

Description

@DieterReuter

Currently Firecracker doesn't run on the RPi3 with KVM enabled.

Here are the details, when I’m starting Firecracker (did used the binary from GitHub releases) on arm64 I did get the following error message:

$ sudo ./firecracker-v0.17.0-aarch64
2019-07-15T12:59:02.780924077 [anonymous-instance:ERROR:src/main.rs:53] Firecracker panicked at 'Cannot create VMM: Missing KVM capability: Irqchip', src/libcore/result.rs:1009:5
2019-07-15T12:59:02.979244234 [anonymous-instance:ERROR:src/main.rs:56] stack backtrace:
   0: backtrace::backtrace::trace_unsynchronized::hc634af106af00d20 (0x533dd3)
   1: backtrace::capture::Backtrace::new::ha2fbfd2368c482cf (0x5331a3)
   2: firecracker::main::{{closure}}::hd8d62d1cc7597ec4 (0x40370b)
   3: std::panicking::rust_panic_with_hook::h28b9ce6fa7a5033b (0x53cb2b)
             at src/libstd/panicking.rs:495
   4: std::panicking::continue_panic_fmt::h4c221b9431554bc2 (0x53c9cb)
             at src/libstd/panicking.rs:398
   5: rust_begin_unwind (0x5493d7)
             at src/libstd/panicking.rs:325
   6: core::panicking::panic_fmt::h4d67173bc68f6d5a (0x54b0df)
             at src/libcore/panicking.rs:95
   7: core::result::unwrap_failed::h2119ca699bc4feea (0x4672f3)
2019-07-15T12:59:02.979727098 [anonymous-instance:ERROR:src/main.rs:60] Failed to log metrics while panicking: Logger was not initialized.
Aborted

FC basically complains about Missing KVM capability: Irqchip, but this one is included in the kernel. For reference here are the KVM related kernel settings:

$ grep KVM 4.19.58-hypriotos-v8.config
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_IRQFD=y
CONFIG_HAVE_KVM_IRQ_ROUTING=y
CONFIG_HAVE_KVM_EVENTFD=y
CONFIG_KVM_MMIO=y
CONFIG_HAVE_KVM_MSI=y
CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
CONFIG_KVM_VFIO=y
CONFIG_HAVE_KVM_ARCH_TLB_FLUSH_ALL=y
CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
CONFIG_HAVE_KVM_IRQ_BYPASS=y
CONFIG_HAVE_KVM_VCPU_RUN_PID_CHANGE=y
CONFIG_KVM=y
CONFIG_KVM_ARM_HOST=y
CONFIG_KVM_ARM_PMU=y
CONFIG_KVM_INDIRECT_VECTORS=y

The system in question is a Raspberry Pi 3B, running Debian 9 with a Linux kernel 4.19.58

[    0.000000] Linux version 4.19.58-hypriotos-v8 (root@405b3dab1308) (gcc version 7.4.1 20181213 [linaro-7.4-2019.02 revision 56ec6f6b99cc167ff0c2f8e1a2eed33b1edc85d4] (Linaro GCC 7.4-2019.02)) #1 SMP PREEMPT Mon Jul 15 11:13:17 UTC 2019
[    0.000000] Machine model: Raspberry Pi 3 Model B Plus Rev 1.3

GIC is also enable in the kernel

CONFIG_ARM_GIC=y
CONFIG_ARM_GIC_MAX_NR=1
CONFIG_ARM_GIC_V3=y
CONFIG_ARM_GIC_V3_ITS=y

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions