mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-09-11 05:39:18 +00:00
Merge pull request #4676 from openanolis/xuejun/runtime-rs
runtime-rs: fix some bugs to make runtime-rs on aarch64
This commit is contained in:
@@ -98,7 +98,8 @@ impl Vm {
|
|||||||
);
|
);
|
||||||
self.vcpu_manager()
|
self.vcpu_manager()
|
||||||
.map_err(StartMicroVmError::Vcpu)?
|
.map_err(StartMicroVmError::Vcpu)?
|
||||||
.set_reset_event_fd(reset_eventfd);
|
.set_reset_event_fd(reset_eventfd)
|
||||||
|
.map_err(StartMicroVmError::Vcpu)?;
|
||||||
|
|
||||||
// On aarch64, the vCPUs need to be created (i.e call KVM_CREATE_VCPU) and configured before
|
// On aarch64, the vCPUs need to be created (i.e call KVM_CREATE_VCPU) and configured before
|
||||||
// setting up the IRQ chip because the `KVM_CREATE_VCPU` ioctl will return error if the IRQCHIP
|
// setting up the IRQ chip because the `KVM_CREATE_VCPU` ioctl will return error if the IRQCHIP
|
||||||
|
18
src/runtime-rs/Cargo.lock
generated
18
src/runtime-rs/Cargo.lock
generated
@@ -455,8 +455,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "dbs-arch"
|
name = "dbs-arch"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=7a8e832b53d66994d6a16f0513d69f540583dcd0#7a8e832b53d66994d6a16f0513d69f540583dcd0"
|
||||||
checksum = "d235999408e59e60d18461debfb31d504813cfa5e497ff9d45c1c319980cf74a"
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"kvm-bindings",
|
"kvm-bindings",
|
||||||
"kvm-ioctls",
|
"kvm-ioctls",
|
||||||
@@ -469,8 +468,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "dbs-boot"
|
name = "dbs-boot"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=7a8e832b53d66994d6a16f0513d69f540583dcd0#7a8e832b53d66994d6a16f0513d69f540583dcd0"
|
||||||
checksum = "37036c65dc89724ff5628cee6c48ebe75027f989398317b2a5155924ba9c2bf7"
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"dbs-arch",
|
"dbs-arch",
|
||||||
"kvm-bindings",
|
"kvm-bindings",
|
||||||
@@ -485,7 +483,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "dbs-device"
|
name = "dbs-device"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=84eee5737cc7d85f9921c94a93e6b9dc4ae24a39#84eee5737cc7d85f9921c94a93e6b9dc4ae24a39"
|
source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=7a8e832b53d66994d6a16f0513d69f540583dcd0#7a8e832b53d66994d6a16f0513d69f540583dcd0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"thiserror",
|
"thiserror",
|
||||||
]
|
]
|
||||||
@@ -493,7 +491,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "dbs-interrupt"
|
name = "dbs-interrupt"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=84eee5737cc7d85f9921c94a93e6b9dc4ae24a39#84eee5737cc7d85f9921c94a93e6b9dc4ae24a39"
|
source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=7a8e832b53d66994d6a16f0513d69f540583dcd0#7a8e832b53d66994d6a16f0513d69f540583dcd0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"dbs-device",
|
"dbs-device",
|
||||||
"kvm-bindings",
|
"kvm-bindings",
|
||||||
@@ -505,7 +503,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "dbs-legacy-devices"
|
name = "dbs-legacy-devices"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=84eee5737cc7d85f9921c94a93e6b9dc4ae24a39#84eee5737cc7d85f9921c94a93e6b9dc4ae24a39"
|
source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=7a8e832b53d66994d6a16f0513d69f540583dcd0#7a8e832b53d66994d6a16f0513d69f540583dcd0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"dbs-device",
|
"dbs-device",
|
||||||
"dbs-utils",
|
"dbs-utils",
|
||||||
@@ -528,7 +526,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "dbs-utils"
|
name = "dbs-utils"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=84eee5737cc7d85f9921c94a93e6b9dc4ae24a39#84eee5737cc7d85f9921c94a93e6b9dc4ae24a39"
|
source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=7a8e832b53d66994d6a16f0513d69f540583dcd0#7a8e832b53d66994d6a16f0513d69f540583dcd0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"event-manager",
|
"event-manager",
|
||||||
@@ -543,7 +541,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "dbs-virtio-devices"
|
name = "dbs-virtio-devices"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=84eee5737cc7d85f9921c94a93e6b9dc4ae24a39#84eee5737cc7d85f9921c94a93e6b9dc4ae24a39"
|
source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=7a8e832b53d66994d6a16f0513d69f540583dcd0#7a8e832b53d66994d6a16f0513d69f540583dcd0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"blobfs",
|
"blobfs",
|
||||||
"byteorder",
|
"byteorder",
|
||||||
@@ -3060,4 +3058,4 @@ dependencies = [
|
|||||||
[[patch.unused]]
|
[[patch.unused]]
|
||||||
name = "dbs-upcall"
|
name = "dbs-upcall"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=84eee5737cc7d85f9921c94a93e6b9dc4ae24a39#84eee5737cc7d85f9921c94a93e6b9dc4ae24a39"
|
source = "git+https://github.com/openanolis/dragonball-sandbox.git?rev=7a8e832b53d66994d6a16f0513d69f540583dcd0#7a8e832b53d66994d6a16f0513d69f540583dcd0"
|
||||||
|
@@ -4,9 +4,11 @@ members = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[patch.'crates-io']
|
[patch.'crates-io']
|
||||||
dbs-device = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "84eee5737cc7d85f9921c94a93e6b9dc4ae24a39" }
|
dbs-device = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "7a8e832b53d66994d6a16f0513d69f540583dcd0" }
|
||||||
dbs-utils = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "84eee5737cc7d85f9921c94a93e6b9dc4ae24a39" }
|
dbs-utils = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "7a8e832b53d66994d6a16f0513d69f540583dcd0" }
|
||||||
dbs-interrupt = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "84eee5737cc7d85f9921c94a93e6b9dc4ae24a39" }
|
dbs-interrupt = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "7a8e832b53d66994d6a16f0513d69f540583dcd0" }
|
||||||
dbs-legacy-devices = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "84eee5737cc7d85f9921c94a93e6b9dc4ae24a39" }
|
dbs-legacy-devices = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "7a8e832b53d66994d6a16f0513d69f540583dcd0" }
|
||||||
dbs-virtio-devices = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "84eee5737cc7d85f9921c94a93e6b9dc4ae24a39" }
|
dbs-virtio-devices = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "7a8e832b53d66994d6a16f0513d69f540583dcd0" }
|
||||||
dbs-upcall = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "84eee5737cc7d85f9921c94a93e6b9dc4ae24a39" }
|
dbs-boot = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "7a8e832b53d66994d6a16f0513d69f540583dcd0" }
|
||||||
|
dbs-arch = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "7a8e832b53d66994d6a16f0513d69f540583dcd0" }
|
||||||
|
dbs-upcall = { git = "https://github.com/openanolis/dragonball-sandbox.git", rev = "7a8e832b53d66994d6a16f0513d69f540583dcd0" }
|
||||||
|
15
src/runtime-rs/arch/aarch64-options.mk
Normal file
15
src/runtime-rs/arch/aarch64-options.mk
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# Copyright (c) 2019-2022 Alibaba Cloud
|
||||||
|
# Copyright (c) 2019-2022 Ant Group
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
|
MACHINETYPE :=
|
||||||
|
KERNELPARAMS :=
|
||||||
|
MACHINEACCELERATORS :=
|
||||||
|
CPUFEATURES := pmu=off
|
||||||
|
|
||||||
|
QEMUCMD := qemu-system-aarch64
|
||||||
|
|
||||||
|
# dragonball binary name
|
||||||
|
DBCMD := dragonball
|
@@ -6,7 +6,9 @@
|
|||||||
|
|
||||||
use std::{fs, path::Path, process::Command};
|
use std::{fs, path::Path, process::Command};
|
||||||
|
|
||||||
use anyhow::{anyhow, Context, Result};
|
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
|
||||||
|
use anyhow::anyhow;
|
||||||
|
use anyhow::{Context, Result};
|
||||||
|
|
||||||
fn override_driver(bdf: &str, driver: &str) -> Result<()> {
|
fn override_driver(bdf: &str, driver: &str) -> Result<()> {
|
||||||
let driver_override = format!("/sys/bus/pci/devices/{}/driver_override", bdf);
|
let driver_override = format!("/sys/bus/pci/devices/{}/driver_override", bdf);
|
||||||
|
Reference in New Issue
Block a user