From b2d1dd65f399d0e3a2c4025a245062ee4fbcece7 Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Mon, 26 Sep 2022 17:02:18 +0100 Subject: [PATCH] build: Remove "fwdebug" and "common" feature flags This simplifes the buld and checks with very little overhead and the fwdebug device is I/O port device on 0x402 that can be used by edk2 as a very simple character device. See: #4679 Signed-off-by: Rob Bradford --- .github/workflows/build.yaml | 12 ++++++------ .github/workflows/quality.yaml | 16 ++++++++-------- Cargo.toml | 5 +---- devices/Cargo.toml | 1 - devices/src/legacy/mod.rs | 4 ++-- vmm/Cargo.toml | 1 - vmm/src/device_manager.rs | 4 +--- 7 files changed, 18 insertions(+), 25 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b679b8a04..12d824dd3 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -36,8 +36,8 @@ jobs: - name: Build (default features) run: cargo rustc --locked --bin cloud-hypervisor -- -D warnings - - name: Build (common + kvm) - run: cargo rustc --locked --bin cloud-hypervisor --no-default-features --features "common,kvm" -- -D warnings + - name: Build (kvm) + run: cargo rustc --locked --bin cloud-hypervisor --no-default-features --features "kvm" -- -D warnings - name: Build (default features + tdx) run: cargo rustc --locked --bin cloud-hypervisor --features "tdx" -- -D warnings @@ -48,11 +48,11 @@ jobs: - name: Build (default features + guest_debug) run: cargo rustc --locked --bin cloud-hypervisor --features "guest_debug" -- -D warnings - - name: Build (common + mshv) - run: cargo rustc --locked --bin cloud-hypervisor --no-default-features --features "common,mshv" -- -D warnings + - name: Build (mshv) + run: cargo rustc --locked --bin cloud-hypervisor --no-default-features --features "mshv" -- -D warnings - - name: Build (common + mshv + kvm) - run: cargo rustc --locked --bin cloud-hypervisor --no-default-features --features "common,mshv,kvm" -- -D warnings + - name: Build (mshv + kvm) + run: cargo rustc --locked --bin cloud-hypervisor --no-default-features --features "mshv,kvm" -- -D warnings - name: Release Build (default features) run: cargo build --locked --all --release --target=${{ matrix.target }} diff --git a/.github/workflows/quality.yaml b/.github/workflows/quality.yaml index 33c36817a..3333dfaa8 100644 --- a/.github/workflows/quality.yaml +++ b/.github/workflows/quality.yaml @@ -48,12 +48,12 @@ jobs: - name: Formatting (rustfmt) run: cargo fmt -- --check - - name: Clippy (common + kvm) + - name: Clippy (kvm) uses: actions-rs/cargo@v1 with: use-cross: ${{ matrix.target != 'x86_64-unknown-linux-gnu' }} command: clippy - args: --locked --all --all-targets --no-default-features --tests --features "common,kvm" -- -D warnings + args: --locked --all --all-targets --no-default-features --tests --features "kvm" -- -D warnings - name: Clippy (default features) uses: actions-rs/cargo@v1 @@ -83,29 +83,29 @@ jobs: command: clippy args: --locked --all --all-targets --tests --features "tracing" -- -D warnings - - name: Clippy (common + mshv) + - name: Clippy (mshv) if: ${{ matrix.target == 'x86_64-unknown-linux-gnu' }} uses: actions-rs/cargo@v1 with: use-cross: ${{ matrix.target != 'x86_64-unknown-linux-gnu' }} command: clippy - args: --locked --all --all-targets --no-default-features --tests --features "common,mshv" -- -D warnings + args: --locked --all --all-targets --no-default-features --tests --features "mshv" -- -D warnings - - name: Clippy (common + mshv + kvm) + - name: Clippy (mshv + kvm) if: ${{ matrix.target == 'x86_64-unknown-linux-gnu' }} uses: actions-rs/cargo@v1 with: use-cross: ${{ matrix.target != 'x86_64-unknown-linux-gnu' }} command: clippy - args: --locked --all --all-targets --no-default-features --tests --features "common,mshv,kvm" -- -D warnings + args: --locked --all --all-targets --no-default-features --tests --features "mshv,kvm" -- -D warnings - - name: Clippy (common + kvm + tdx) + - name: Clippy (kvm + tdx) if: ${{ matrix.target == 'x86_64-unknown-linux-gnu' }} uses: actions-rs/cargo@v1 with: use-cross: ${{ matrix.target != 'x86_64-unknown-linux-gnu' }} command: clippy - args: --locked --all --all-targets --no-default-features --tests --features "common,tdx,kvm" -- -D warnings + args: --locked --all --all-targets --no-default-features --tests --features "tdx,kvm" -- -D warnings - name: Check build did not modify any files run: test -z "$(git status --porcelain)" diff --git a/Cargo.toml b/Cargo.toml index e8c6b9b10..fa277bdf0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,10 +54,7 @@ test_infra = { path = "test_infra" } wait-timeout = "0.2.0" [features] -default = ["common", "kvm"] -# Common features for all hypervisors -common = ["fwdebug"] -fwdebug = ["vmm/fwdebug"] +default = ["kvm"] gdb = ["vmm/gdb"] guest_debug = ["vmm/guest_debug"] kvm = ["vmm/kvm"] diff --git a/devices/Cargo.toml b/devices/Cargo.toml index d3529a200..2e2ad9c80 100644 --- a/devices/Cargo.toml +++ b/devices/Cargo.toml @@ -25,4 +25,3 @@ arch = { path = "../arch" } [features] default = [] -fwdebug = [] diff --git a/devices/src/legacy/mod.rs b/devices/src/legacy/mod.rs index b167b47c0..935ded96b 100644 --- a/devices/src/legacy/mod.rs +++ b/devices/src/legacy/mod.rs @@ -8,7 +8,7 @@ mod cmos; #[cfg(target_arch = "x86_64")] mod debug_port; -#[cfg(feature = "fwdebug")] +#[cfg(target_arch = "x86_64")] mod fwdebug; #[cfg(target_arch = "aarch64")] mod gpio_pl061; @@ -22,7 +22,7 @@ mod uart_pl011; pub use self::cmos::Cmos; #[cfg(target_arch = "x86_64")] pub use self::debug_port::DebugPort; -#[cfg(feature = "fwdebug")] +#[cfg(target_arch = "x86_64")] pub use self::fwdebug::FwDebugDevice; pub use self::i8042::I8042Device; pub use self::serial::Serial; diff --git a/vmm/Cargo.toml b/vmm/Cargo.toml index a9fcca0e1..ae552e396 100644 --- a/vmm/Cargo.toml +++ b/vmm/Cargo.toml @@ -6,7 +6,6 @@ edition = "2021" [features] default = [] -fwdebug = ["devices/fwdebug"] gdb = ["kvm", "gdbstub", "gdbstub_arch"] guest_debug = ["kvm"] kvm = ["hypervisor/kvm", "vfio-ioctls/kvm", "vm-device/kvm", "pci/kvm"] diff --git a/vmm/src/device_manager.rs b/vmm/src/device_manager.rs index 1703bcf93..67c62f08a 100644 --- a/vmm/src/device_manager.rs +++ b/vmm/src/device_manager.rs @@ -1560,9 +1560,7 @@ impl DeviceManager { .io_bus .insert(cmos, 0x70, 0x2) .map_err(DeviceManagerError::BusError)?; - } - #[cfg(feature = "fwdebug")] - { + let fwdebug = Arc::new(Mutex::new(devices::legacy::FwDebugDevice::new())); self.bus_devices