History log of /cloud-hypervisor/hypervisor/src/arch/x86/mod.rs (Results 1 – 25 of 33)
Revision Date Author Comments
# 293cf90e 13-Jan-2025 Rob Bradford <rbradford@rivosinc.com>

hypervisor: Implement fmt::Display for CpuIdEntry

Signed-off-by: Rob Bradford <rbradford@rivosinc.com>


# fe24a7a2 02-Jan-2025 Wei Liu <liuwe@microsoft.com>

hypervisor: introduce an mshv_emulator feature

This will become useful when we build the fuzzing target for the
instruction emulator, because there is no need to pull in the rest of
the hypervisor c

hypervisor: introduce an mshv_emulator feature

This will become useful when we build the fuzzing target for the
instruction emulator, because there is no need to pull in the rest of
the hypervisor crate in that situation.

Signed-off-by: Wei Liu <liuwe@microsoft.com>

show more ...


# 88a9f799 29-Sep-2024 Rob Bradford <rbradford@rivosinc.com>

misc: Adapt consistent import style formatting

Historically the Cloud Hypervisor coding style has been to ensure that
all imports are ordered and placed in a single group. Unfortunately
cargo fmt ha

misc: Adapt consistent import style formatting

Historically the Cloud Hypervisor coding style has been to ensure that
all imports are ordered and placed in a single group. Unfortunately
cargo fmt has no support for ensuring that all imports are in a single
group so if whitespace lines were added as part of the import statements
then they would only be odered correctly in the group.

By adopting "group_imports="StdExternalCrate" we can enforce a style
where imports are placed in at most three groups for std, external
crates and the crate itself. Choosing a style enforceable by the tooling
reduces the reviewer burden.

Signed-off-by: Rob Bradford <rbradford@rivosinc.com>

show more ...


# 4c99aea6 02-Aug-2024 Jinank Jain <jinankjain@microsoft.com>

hypervisor: Switch to use the new StandardRegisters

With this we are removing the CloudHypervisor definition of
StandardRegisters instead using an enum which contains different
variants of StandardR

hypervisor: Switch to use the new StandardRegisters

With this we are removing the CloudHypervisor definition of
StandardRegisters instead using an enum which contains different
variants of StandardRegisters coming from their bindigs crate.

Signed-off-by: Jinank Jain <jinankjain@microsoft.com>

show more ...


# 2bf6f930 07-May-2024 Rob Bradford <rbradford@rivosinc.com>

hypervisor: Remove derivations conditional on non-existant feature

The "with-serde" feature does not exist so these [#derive(..)]
statements are never compiled in.

Signed-off-by: Rob Bradford <rbra

hypervisor: Remove derivations conditional on non-existant feature

The "with-serde" feature does not exist so these [#derive(..)]
statements are never compiled in.

Signed-off-by: Rob Bradford <rbradford@rivosinc.com>

show more ...


# 3ce0fef7 23-Jan-2024 Bo Chen <chen.bo@intel.com>

build: Bump vmm-sys-util crate and its consumers

This patch bumps the following crates, including `kvm-bindings@0.7.0`*,
`kvm-ioctls@0.16.0`**, `linux-loader@0.11.0`, `versionize@0.2.0`,
`versionize

build: Bump vmm-sys-util crate and its consumers

This patch bumps the following crates, including `kvm-bindings@0.7.0`*,
`kvm-ioctls@0.16.0`**, `linux-loader@0.11.0`, `versionize@0.2.0`,
`versionize_derive@0.1.6`***, `vhost@0.10.0`,
`vhost-user-backend@0.13.1`, `virtio-queue@0.11.0`, `vm-memory@0.14.0`,
`vmm-sys-util@0.12.1`, and the latest of `vfio-bindings`, `vfio-ioctls`,
`mshv-bindings`,`mshv-ioctls`, and `vfio-user`.

* A fork of the `kvm-bindings` crate is being used to support
serialization of various structs for migration [1]. Also, code changes
are made to accommodate the updated `struct xsave` from the Linux
kernel. Note: these changes related to `struct xsave` break
live-upgrade.

** The new `kvm-ioctls` crate introduced breaking changes for
the `get/set_one_reg` API on `aarch64` [2], so code changes are made to
the new APIs.

*** A fork of the `versionize_derive` crate is being used to support
versionize on packed structs [3].

[1] https://github.com/cloud-hypervisor/kvm-bindings/tree/ch-v0.7.0
[2] https://github.com/rust-vmm/kvm-ioctls/pull/223
[3] https://github.com/cloud-hypervisor/versionize_derive/tree/ch-0.1.6

Fixes: #6072

Signed-off-by: Bo Chen <chen.bo@intel.com>

show more ...


# b6d00983 30-Jun-2023 Christian Blichmann <cblichmann@google.com>

hypervisor: x86: Emulator is only needed on `mshv`, not `kvm`

On x86-64, when the underlying hypervisor platform is KVM, no
instruction emulator is necessary. KVM handles instruction boundaries
inte

hypervisor: x86: Emulator is only needed on `mshv`, not `kvm`

On x86-64, when the underlying hypervisor platform is KVM, no
instruction emulator is necessary. KVM handles instruction boundaries
internally.

This change allows to skip the iced-x86 dependency on KVM, improving
build times, prunes the dependency graph and reduces network traffic
during the initial build.

For Hyper-V, the emulator is still necessary on x86-64, so nothing
changes there.

Signed-off-by: Christian Blichmann <cblichmann@google.com>

show more ...


# 63790742 18-Apr-2023 Rafael Mendonca <rafaelmendsr@gmail.com>

misc: Remove unnecessary clippy directives

Clippy passes fine without these.

Signed-off-by: Rafael Mendonca <rafaelmendsr@gmail.com>


# 7f2723d9 16-Nov-2022 Wei Liu <liuwe@microsoft.com>

hypervisor: x86: add two safety comments

Signed-off-by: Wei Liu <liuwe@microsoft.com>


# e1a70f67 28-Jul-2022 Wei Liu <liuwe@microsoft.com>

hypervisor: use serde_with with LapicState

Drop the hand-rolled serializer and deserializer.

Signed-off-by: Wei Liu <liuwe@microsoft.com>


# bec47ebc 27-Jul-2022 Wei Liu <liuwe@microsoft.com>

hypervisor: simplify LapicState

Both KVM and MSHV share the same layout. We can drop one level of
indirection.

Signed-off-by: Wei Liu <liuwe@microsoft.com>


# ff777304 22-Jul-2022 Wei Liu <liuwe@microsoft.com>

tree-wide: drop some unneeded allow clauses

Signed-off-by: Wei Liu <liuwe@microsoft.com>


# f21fc1dc 19-Jul-2022 Wei Liu <liuwe@microsoft.com>

hypervisor: x86: provide a generic MsrEntry structure

Signed-off-by: Wei Liu <liuwe@microsoft.com>


# 05e5106b 18-Jul-2022 Wei Liu <liuwe@microsoft.com>

hypervisor x86: provide a generic LapicState structure

This requires making get/set_lapic_reg part of the type.

For the moment we cannot provide a default variant for the new type,
because picking

hypervisor x86: provide a generic LapicState structure

This requires making get/set_lapic_reg part of the type.

For the moment we cannot provide a default variant for the new type,
because picking one will be wrong for the other hypervisor, so I just
drop the test cases that requires LapicState::default().

Signed-off-by: Wei Liu <liuwe@microsoft.com>

show more ...


# 6a8c0fc8 15-Jul-2022 Wei Liu <liuwe@microsoft.com>

hypervisor: provide a generic FpuState structure

Signed-off-by: Wei Liu <liuwe@microsoft.com>


# 08135fa0 18-Jul-2022 Wei Liu <liuwe@microsoft.com>

hypervisor: provide a generic CpudIdEntry structure

Signed-off-by: Wei Liu <liuwe@microsoft.com>


# f1ab86fe 14-Jul-2022 Wei Liu <liuwe@microsoft.com>

hypervisor: x86: provide a generic SpecialRegisters structure

Signed-off-by: Wei Liu <liuwe@microsoft.com>


# d2b194c4 14-Jul-2022 Wei Liu <liuwe@microsoft.com>

hypervisor: x86: provide a generic DescriptorTable structure

Signed-off-by: Wei Liu <liuwe@microsoft.com>


# 75797827 14-Jul-2022 Wei Liu <liuwe@microsoft.com>

hypervisor: x86: provide a generic SegmentRegister structure

And drop SegmentRegisterOps since it is no longer required.

Signed-off-by: Wei Liu <liuwe@microsoft.com>


# 8b7781e2 14-Jul-2022 Wei Liu <liuwe@microsoft.com>

hypervisor: x86: provide a generic StandardRegisters structure

We only need to do this for x86 since MSHV does not have aarch64 support
yet. This reduces unnecessary code churn.

Signed-off-by: Wei

hypervisor: x86: provide a generic StandardRegisters structure

We only need to do this for x86 since MSHV does not have aarch64 support
yet. This reduces unnecessary code churn.

Signed-off-by: Wei Liu <liuwe@microsoft.com>

show more ...


# 0c27f69f 25-Mar-2021 Rob Bradford <robert.bradford@intel.com>

hypervisor: Address Rust 1.51.0 clippy issue (upper_case_acroynms)

warning: name `TranslateGVA` contains a capitalized acronym
--> hypervisor/src/arch/emulator/mod.rs:51:5
|
51 | TranslateG

hypervisor: Address Rust 1.51.0 clippy issue (upper_case_acroynms)

warning: name `TranslateGVA` contains a capitalized acronym
--> hypervisor/src/arch/emulator/mod.rs:51:5
|
51 | TranslateGVA(#[source] anyhow::Error),
| ^^^^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `TranslateGva`
|
= note: `#[warn(clippy::upper_case_acronyms)]` on by default
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms

Signed-off-by: Rob Bradford <robert.bradford@intel.com>

show more ...


# a330a156 15-Feb-2021 Rob Bradford <robert.bradford@intel.com>

arch, arch_gen, hypervisor: Remove some unnecessary clippy attributes

Signed-off-by: Rob Bradford <robert.bradford@intel.com>


# fd9972ec 25-Jan-2021 Wei Liu <liuwe@microsoft.com>

hypervisor: fix exception vector numbers

According to Intel SDM, #DE should be 0 and #DB should be 1.

Signed-off-by: Wei Liu <liuwe@microsoft.com>


# 8c85dd32 10-Dec-2020 Muminul Islam <muislam@microsoft.com>

hypervisor: Move msr and msr_data macro to arch/x86

Currently these two macros(msr, msr_data) reside both on kvm and mshv
module. Definition is same for both module. Moving them to arch/x86
module e

hypervisor: Move msr and msr_data macro to arch/x86

Currently these two macros(msr, msr_data) reside both on kvm and mshv
module. Definition is same for both module. Moving them to arch/x86
module eliminates redundancy and makes more sense.

Signed-off-by: Muminul Islam <muislam@microsoft.com>

show more ...


# d419e30d 26-Nov-2020 Samuel Ortiz <sameo@linux.intel.com>

hypervisor: x86: Add a SegmentRegistorOps trait

In order to validate emulated memory accesses, we need to be able to get
all the segments descriptor attributes.

This is done by abstracting the Segm

hypervisor: x86: Add a SegmentRegistorOps trait

In order to validate emulated memory accesses, we need to be able to get
all the segments descriptor attributes.

This is done by abstracting the SegmentRegister attributes through a
trait that each hypervisor will have to implement.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>

show more ...


12