Skip to content
This repository has been archived by the owner on Dec 7, 2023. It is now read-only.

Add ARM64 support #173

Merged
merged 3 commits into from
Aug 2, 2019
Merged

Add ARM64 support #173

merged 3 commits into from
Aug 2, 2019

Conversation

luxas
Copy link
Contributor

@luxas luxas commented Jul 15, 2019

Fixes #172
Work in progress, targeting v0.5.0

cc @DieterReuter (Ignite on Raspberry Pi, here we come!)

@luxas luxas added this to the v0.5.0 milestone Jul 15, 2019
@luxas luxas self-assigned this Jul 15, 2019
@DieterReuter
Copy link
Contributor

👍

@DieterReuter
Copy link
Contributor

Currently Firecracker doesn't run on the RPi3 with KVM enabled. I'm discussing this in the Firecracker slack channel.

Here are the details, when I’m starting fc 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

@DieterReuter
Copy link
Contributor

Issue is create at Firecracker repo firecracker-microvm/firecracker#1186.

@luxas luxas mentioned this pull request Jul 29, 2019
@luxas luxas changed the title [WIP] Refactor the Dockerfile & Makefile to support arm64 Refactor the Dockerfile & Makefile to support arm64 Aug 2, 2019
Copy link
Contributor

@twelho twelho left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

@twelho twelho merged commit 0181314 into master Aug 2, 2019
@luxas luxas added the kind/feature Categorizes issue or PR as related to a new feature. label Aug 6, 2019
@luxas luxas changed the title Refactor the Dockerfile & Makefile to support arm64 Add ARM64 support Aug 6, 2019
@luxas luxas deleted the arm64 branch August 6, 2019 18:22
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
kind/feature Categorizes issue or PR as related to a new feature.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add arm64 support
3 participants