Skip to content

Commit 5e4984a

Browse files
committed
misc: Upgrade to use the vm-memory crate w/ dirty-page-tracking
As the first step to complete live-migration with tracking dirty-pages written by the VMM, this patch patches the dependent vm-memory crate to the development branch with dirty-page-tracking capability [1]. For now, we are using our own fork of the vm-memory crate [2] before the feature is landed in the upstream. Most changes are due to the updated `GuestMemoryMmap`, `GuestRegionMmap`, and `MmapRegion` structs which are taking an additional generic type parameter (to specify what 'bitmap backend' is used). For the same reason, similar changes are required in the dependent 'vfio-ioctls' crate (that uses the vm-memory crate). We are also using our own fork of the vfio-ioctls crate before the upstream is updated [3]. The above changes should be transparent to the rest of the code base, e.g. all unit/integration tests should pass without additional changes. [1] rust-vmm/vm-memory#125 [2] https://github.com/cloud-hypervisor/vm-memory/tree/ch [3] https://github.com/cloud-hypervisor/vfio-ioctls/tree/ch Signed-off-by: Bo Chen <[email protected]>
1 parent a174ad0 commit 5e4984a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+123
-73
lines changed

Cargo.lock

Lines changed: 2 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ clap = { version = "2.33.3", features = ["wrap_help"] }
3737
[patch.crates-io]
3838
kvm-bindings = { git = "https://github.com/cloud-hypervisor/kvm-bindings", branch = "ch-v0.4.0", features = ["with-serde", "fam-wrappers"] }
3939
versionize_derive = { git = "https://github.com/cloud-hypervisor/versionize_derive", branch = "ch" }
40+
vm-memory = { git = "https://github.com/cloud-hypervisor/vm-memory", branch = "ch"}
4041

4142
[dev-dependencies]
4243
credibility = "0.1.3"

arch/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,6 @@ serde_derive = ">=1.0.27"
2222
serde_json = ">=1.0.9"
2323
thiserror = "1.0"
2424
vm-fdt = { git = "https://github.com/rust-vmm/vm-fdt", branch = "master" }
25-
vm-memory = { version = "0.5.0", features = ["backend-mmap"] }
25+
vm-memory = { version = "0.5.0", features = ["backend-mmap", "backend-bitmap"] }
2626
vm-migration = { path = "../vm-migration" }
2727

arch/src/aarch64/fdt.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ use std::fmt::Debug;
1212
use std::result;
1313

1414
use super::super::DeviceType;
15+
use super::super::GuestMemoryMmap;
1516
use super::super::InitramfsConfig;
1617
use super::get_fdt_addr;
1718
use super::gic::GicDevice;
@@ -20,7 +21,7 @@ use super::layout::{
2021
PCI_MMCONFIG_START,
2122
};
2223
use vm_fdt::{FdtWriter, FdtWriterResult};
23-
use vm_memory::{Address, Bytes, GuestAddress, GuestMemory, GuestMemoryError, GuestMemoryMmap};
24+
use vm_memory::{Bytes, GuestAddress, GuestMemory, GuestMemoryError};
2425

2526
// This is a value for uniquely identifying the FDT node declaring the interrupt controller.
2627
const GIC_PHANDLE: u32 = 1;

arch/src/aarch64/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ pub mod regs;
1313

1414
pub use self::fdt::DeviceInfoForFdt;
1515
use crate::DeviceType;
16+
use crate::GuestMemoryMmap;
1617
use crate::RegionType;
1718
use gic::GicDevice;
1819
use std::collections::HashMap;
1920
use std::ffi::CStr;
2021
use std::fmt::Debug;
2122
use std::sync::Arc;
2223
use vm_memory::{
23-
Address, GuestAddress, GuestAddressSpace, GuestMemory, GuestMemoryAtomic, GuestMemoryMmap,
24-
GuestUsize,
24+
Address, GuestAddress, GuestAddressSpace, GuestMemory, GuestMemoryAtomic, GuestUsize,
2525
};
2626

2727
/// Errors thrown while configuring aarch64 system.

arch/src/aarch64/regs.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66
// found in the THIRD-PARTY file.
77

88
use super::get_fdt_addr;
9+
use crate::GuestMemoryMmap;
910
use hypervisor::kvm::kvm_bindings::{
1011
kvm_regs, user_pt_regs, KVM_REG_ARM64, KVM_REG_ARM_CORE, KVM_REG_SIZE_U64,
1112
};
1213
use hypervisor::{arm64_core_reg_id, offset__of};
1314
use std::sync::Arc;
1415
use std::{mem, result};
15-
use vm_memory::GuestMemoryMmap;
1616

1717
/// Errors thrown while setting aarch64 registers.
1818
#[derive(Debug)]

arch/src/lib.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ extern crate serde_derive;
1616

1717
use std::fmt;
1818
use std::result;
19+
use vm_memory::bitmap::AtomicBitmap;
20+
21+
type GuestMemoryMmap = vm_memory::GuestMemoryMmap<AtomicBitmap>;
1922

2023
/// Type for returning error code.
2124
#[derive(Debug)]

arch/src/x86_64/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ pub mod layout;
1212
mod mpspec;
1313
mod mptable;
1414
pub mod regs;
15+
use crate::GuestMemoryMmap;
1516
use crate::InitramfsConfig;
1617
use crate::RegionType;
1718
use hypervisor::{CpuId, CpuIdEntry, CPUID_FLAG_VALID_INDEX};
@@ -22,7 +23,7 @@ use linux_loader::loader::elf::start_info::{
2223
use std::mem;
2324
use vm_memory::{
2425
Address, ByteValued, Bytes, GuestAddress, GuestAddressSpace, GuestMemory, GuestMemoryAtomic,
25-
GuestMemoryMmap, GuestMemoryRegion, GuestUsize,
26+
GuestMemoryRegion, GuestUsize,
2627
};
2728
mod smbios;
2829
use std::arch::x86_64;

arch/src/x86_64/mptable.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,13 @@
77

88
use crate::layout::{APIC_START, HIGH_RAM_START, IOAPIC_START};
99
use crate::x86_64::mpspec;
10+
use crate::GuestMemoryMmap;
1011
use libc::c_char;
1112
use std::io;
1213
use std::mem;
1314
use std::result;
1415
use std::slice;
15-
use vm_memory::{
16-
Address, ByteValued, Bytes, GuestAddress, GuestMemory, GuestMemoryError, GuestMemoryMmap,
17-
};
16+
use vm_memory::{Address, ByteValued, Bytes, GuestAddress, GuestMemory, GuestMemoryError};
1817

1918
// This is a workaround to the Rust enforcement specifying that any implementation of a foreign
2019
// trait (in this case `ByteValued`) where:

arch/src/x86_64/regs.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@
77
// Use of this source code is governed by a BSD-style license that can be
88
// found in the LICENSE-BSD-3-Clause file.
99
use crate::layout::{BOOT_GDT_START, BOOT_IDT_START, PVH_INFO_START};
10+
use crate::GuestMemoryMmap;
1011
use hypervisor::arch::x86::gdt::{gdt_entry, segment_from_gdt};
1112
use hypervisor::arch::x86::regs::*;
1213
use hypervisor::x86_64::{FpuState, SpecialRegisters, StandardRegisters};
1314
use std::sync::Arc;
1415
use std::{mem, result};
15-
use vm_memory::{Address, Bytes, GuestMemory, GuestMemoryError, GuestMemoryMmap};
16+
use vm_memory::{Address, Bytes, GuestMemory, GuestMemoryError};
1617

1718
#[derive(Debug)]
1819
pub enum Error {
@@ -163,7 +164,8 @@ pub fn configure_segments_and_sregs(
163164
#[cfg(test)]
164165
mod tests {
165166
use super::*;
166-
use vm_memory::{GuestAddress, GuestMemoryMmap};
167+
use crate::GuestMemoryMmap;
168+
use vm_memory::GuestAddress;
167169

168170
fn create_guest_mem() -> GuestMemoryMmap {
169171
GuestMemoryMmap::from_ranges(&[(GuestAddress(0), 0x10000)]).unwrap()

arch/src/x86_64/smbios.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@
77
// SPDX-License-Identifier: Apache-2.0 AND BSD-3-Clause
88

99
use crate::layout::SMBIOS_START;
10+
use crate::GuestMemoryMmap;
1011
use std::fmt::{self, Display};
1112
use std::mem;
1213
use std::result;
1314
use std::slice;
1415
use vm_memory::ByteValued;
15-
use vm_memory::{Address, Bytes, GuestAddress, GuestMemoryMmap};
16+
use vm_memory::{Address, Bytes, GuestAddress};
1617

1718
#[allow(unused_variables)]
1819
#[derive(Debug)]

arch/src/x86_64/tdx/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
// Copyright © 2021 Intel Corporation
22
//
33
// SPDX-License-Identifier: Apache-2.0
4+
use crate::GuestMemoryMmap;
45
use std::fs::File;
56
use std::io::{Read, Seek, SeekFrom};
67
use thiserror::Error;
7-
use vm_memory::{ByteValued, Bytes, GuestAddress, GuestMemoryError, GuestMemoryMmap};
8+
use vm_memory::{ByteValued, Bytes, GuestAddress, GuestMemoryError};
89

910
#[derive(Error, Debug)]
1011
pub enum TdvfError {

block_util/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ thiserror = "1.0"
1717
versionize = "0.1.6"
1818
versionize_derive = "0.1.4"
1919
virtio-bindings = { version = "0.1", features = ["virtio-v5_0_0"]}
20-
vm-memory = { version = "0.5.0", features = ["backend-mmap", "backend-atomic"] }
20+
vm-memory = { version = "0.5.0", features = ["backend-mmap", "backend-atomic", "backend-bitmap"] }
2121
vm-virtio = { path = "../vm-virtio" }
2222
vmm-sys-util = ">=0.3.1"
2323

block_util/src/lib.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,14 @@ use std::sync::{Arc, Mutex};
3535
use versionize::{VersionMap, Versionize, VersionizeResult};
3636
use versionize_derive::Versionize;
3737
use virtio_bindings::bindings::virtio_blk::*;
38-
use vm_memory::{ByteValued, Bytes, GuestAddress, GuestMemory, GuestMemoryError, GuestMemoryMmap};
38+
use vm_memory::{
39+
bitmap::AtomicBitmap, ByteValued, Bytes, GuestAddress, GuestMemory, GuestMemoryError,
40+
};
3941
use vm_virtio::DescriptorChain;
4042
use vmm_sys_util::eventfd::EventFd;
4143

44+
type GuestMemoryMmap = vm_memory::GuestMemoryMmap<AtomicBitmap>;
45+
4246
const SECTOR_SHIFT: u8 = 9;
4347
pub const SECTOR_SIZE: u64 = 0x01 << SECTOR_SHIFT;
4448

net_util/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ serde = "1.0.126"
1414
versionize = "0.1.6"
1515
versionize_derive = "0.1.4"
1616
virtio-bindings = "0.1.0"
17-
vm-memory = { version = "0.5.0", features = ["backend-mmap", "backend-atomic"] }
17+
vm-memory = { version = "0.5.0", features = ["backend-mmap", "backend-atomic", "backend-bitmap"] }
1818
vm-virtio = { path = "../vm-virtio" }
1919
vmm-sys-util = ">=0.3.1"
2020

net_util/src/ctrl_queue.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
//
33
// SPDX-License-Identifier: Apache-2.0 AND BSD-3-Clause
44

5+
use crate::GuestMemoryMmap;
56
use crate::Tap;
67
use libc::c_uint;
78
use virtio_bindings::bindings::virtio_net::{
@@ -11,7 +12,7 @@ use virtio_bindings::bindings::virtio_net::{
1112
VIRTIO_NET_F_GUEST_ECN, VIRTIO_NET_F_GUEST_TSO4, VIRTIO_NET_F_GUEST_TSO6,
1213
VIRTIO_NET_F_GUEST_UFO, VIRTIO_NET_OK,
1314
};
14-
use vm_memory::{ByteValued, Bytes, GuestMemoryError, GuestMemoryMmap};
15+
use vm_memory::{ByteValued, Bytes, GuestMemoryError};
1516
use vm_virtio::Queue;
1617

1718
#[derive(Debug)]

net_util/src/lib.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ use virtio_bindings::bindings::virtio_net::{
3030
VIRTIO_NET_F_GUEST_CSUM, VIRTIO_NET_F_GUEST_ECN, VIRTIO_NET_F_GUEST_TSO4,
3131
VIRTIO_NET_F_GUEST_TSO6, VIRTIO_NET_F_GUEST_UFO, VIRTIO_NET_F_MAC, VIRTIO_NET_F_MQ,
3232
};
33-
use vm_memory::ByteValued;
33+
use vm_memory::{bitmap::AtomicBitmap, ByteValued};
34+
35+
type GuestMemoryMmap = vm_memory::GuestMemoryMmap<AtomicBitmap>;
3436

3537
pub use ctrl_queue::{CtrlQueue, Error as CtrlQueueError};
3638
pub use mac::{MacAddr, MAC_ADDR_LEN};

net_util/src/queue_pair.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@
33
// SPDX-License-Identifier: Apache-2.0 AND BSD-3-Clause
44

55
use super::{unregister_listener, vnet_hdr_len, Tap};
6+
use crate::GuestMemoryMmap;
67
use rate_limiter::{RateLimiter, TokenType};
78
use std::io;
89
use std::num::Wrapping;
910
use std::os::unix::io::{AsRawFd, RawFd};
1011
use std::sync::atomic::{AtomicU64, Ordering};
1112
use std::sync::Arc;
12-
use vm_memory::{Bytes, GuestAddressSpace, GuestMemory, GuestMemoryAtomic, GuestMemoryMmap};
13+
use vm_memory::{Bytes, GuestAddressSpace, GuestMemory, GuestMemoryAtomic};
1314
use vm_virtio::Queue;
1415

1516
#[derive(Clone)]

pci/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ edition = "2018"
88
anyhow = "1.0"
99
byteorder = "1.4.3"
1010
hypervisor = { path = "../hypervisor" }
11-
vfio-ioctls = { git = "https://github.com/rust-vmm/vfio-ioctls", branch = "master" }
11+
vfio-ioctls = { git = "https://github.com/cloud-hypervisor/vfio-ioctls", branch = "ch" }
1212
vmm-sys-util = ">=0.3.1"
1313
libc = "0.2.95"
1414
log = "0.4.14"

vhost_user_backend/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ epoll = ">=4.0.1"
1212
libc = "0.2.95"
1313
log = "0.4.14"
1414
virtio-bindings = "0.1.0"
15-
vm-memory = "0.5.0"
15+
vm-memory = { version = "0.5.0", features = ["backend-bitmap"] }
1616
vm-virtio = { path = "../vm-virtio" }
1717
vmm-sys-util = ">=0.3.1"
1818
vhost = { git = "https://github.com/rust-vmm/vhost", branch = "master", package = "vhost", features = ["vhost-user-slave"] }

vhost_user_backend/src/lib.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,13 @@ use vhost::vhost_user::{
2727
};
2828
use virtio_bindings::bindings::virtio_ring::VIRTIO_RING_F_EVENT_IDX;
2929
use vm_memory::guest_memory::FileOffset;
30-
use vm_memory::{GuestAddress, GuestMemoryMmap, GuestRegionMmap, MmapRegion};
30+
use vm_memory::{bitmap::AtomicBitmap, GuestAddress, MmapRegion};
3131
use vm_virtio::Queue;
3232
use vmm_sys_util::eventfd::EventFd;
3333

34+
pub type GuestMemoryMmap = vm_memory::GuestMemoryMmap<AtomicBitmap>;
35+
pub type GuestRegionMmap = vm_memory::GuestRegionMmap<AtomicBitmap>;
36+
3437
const MAX_MEM_SLOTS: u64 = 32;
3538

3639
#[derive(Debug)]

vhost_user_block/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@ use std::vec::Vec;
3030
use std::{convert, error, fmt, io};
3131
use vhost::vhost_user::message::*;
3232
use vhost::vhost_user::Listener;
33-
use vhost_user_backend::{VhostUserBackend, VhostUserDaemon, Vring};
33+
use vhost_user_backend::{GuestMemoryMmap, VhostUserBackend, VhostUserDaemon, Vring};
3434
use virtio_bindings::bindings::virtio_blk::*;
3535
use virtio_bindings::bindings::virtio_ring::VIRTIO_RING_F_EVENT_IDX;
3636
use vm_memory::ByteValued;
37-
use vm_memory::{Bytes, GuestMemoryMmap};
37+
use vm_memory::Bytes;
3838
use vmm_sys_util::eventfd::EventFd;
3939

4040
const SECTOR_SHIFT: u8 = 9;

vhost_user_net/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ use std::sync::{Arc, Mutex, RwLock};
2222
use std::vec::Vec;
2323
use vhost::vhost_user::message::*;
2424
use vhost::vhost_user::Listener;
25-
use vhost_user_backend::{VhostUserBackend, VhostUserDaemon, Vring, VringWorker};
25+
use vhost_user_backend::{GuestMemoryMmap, VhostUserBackend, VhostUserDaemon, Vring, VringWorker};
2626
use virtio_bindings::bindings::virtio_net::*;
2727
use virtio_bindings::bindings::virtio_ring::VIRTIO_RING_F_EVENT_IDX;
28-
use vm_memory::{GuestMemoryAtomic, GuestMemoryMmap};
28+
use vm_memory::GuestMemoryAtomic;
2929
use vmm_sys_util::eventfd::EventFd;
3030

3131
pub type Result<T> = std::result::Result<T, Error>;

virtio-devices/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ vhost = { git = "https://github.com/rust-vmm/vhost", branch = "master", package
3232
virtio-bindings = { version = "0.1", features = ["virtio-v5_0_0"]}
3333
vm-allocator = { path = "../vm-allocator" }
3434
vm-device = { path = "../vm-device" }
35-
vm-memory = { version = "0.5.0", features = ["backend-mmap", "backend-atomic"] }
35+
vm-memory = { version = "0.5.0", features = ["backend-mmap", "backend-atomic", "backend-bitmap"] }
3636
vm-migration = { path = "../vm-migration" }
3737
vm-virtio = { path = "../vm-virtio" }
3838
vmm-sys-util = ">=0.3.1"

virtio-devices/src/balloon.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ use super::{
1717
VirtioCommon, VirtioDevice, VirtioDeviceType, EPOLL_HELPER_EVENT_LAST, VIRTIO_F_VERSION_1,
1818
};
1919
use crate::seccomp_filters::{get_seccomp_filter, Thread};
20+
use crate::GuestMemoryMmap;
2021
use crate::{VirtioInterrupt, VirtioInterruptType};
2122
use libc::EFD_NONBLOCK;
2223
use seccomp::{SeccompAction, SeccompFilter};
@@ -31,7 +32,7 @@ use std::thread;
3132
use vm_memory::GuestMemory;
3233
use vm_memory::{
3334
Address, ByteValued, Bytes, GuestAddress, GuestAddressSpace, GuestMemoryAtomic,
34-
GuestMemoryError, GuestMemoryMmap,
35+
GuestMemoryError,
3536
};
3637
use vm_migration::{Migratable, MigratableError, Pausable, Snapshottable, Transportable};
3738
use vmm_sys_util::eventfd::EventFd;

virtio-devices/src/block.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ use super::{
1515
EPOLL_HELPER_EVENT_LAST,
1616
};
1717
use crate::seccomp_filters::{get_seccomp_filter, Thread};
18+
use crate::GuestMemoryMmap;
1819
use crate::VirtioInterrupt;
1920
use block_util::{
2021
async_io::AsyncIo, async_io::AsyncIoError, async_io::DiskFile, build_disk_image_id, Request,
@@ -34,7 +35,7 @@ use std::{collections::HashMap, convert::TryInto};
3435
use versionize::{VersionMap, Versionize, VersionizeResult};
3536
use versionize_derive::Versionize;
3637
use virtio_bindings::bindings::virtio_blk::*;
37-
use vm_memory::{ByteValued, Bytes, GuestAddressSpace, GuestMemoryAtomic, GuestMemoryMmap};
38+
use vm_memory::{ByteValued, Bytes, GuestAddressSpace, GuestMemoryAtomic};
3839
use vm_migration::VersionMapped;
3940
use vm_migration::{Migratable, MigratableError, Pausable, Snapshot, Snapshottable, Transportable};
4041
use vmm_sys_util::eventfd::EventFd;

virtio-devices/src/console.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use super::{
88
VIRTIO_F_IOMMU_PLATFORM, VIRTIO_F_VERSION_1,
99
};
1010
use crate::seccomp_filters::{get_seccomp_filter, Thread};
11+
use crate::GuestMemoryMmap;
1112
use crate::VirtioInterrupt;
1213
use libc::EFD_NONBLOCK;
1314
use seccomp::{SeccompAction, SeccompFilter};
@@ -23,7 +24,7 @@ use std::sync::{Arc, Barrier, Mutex};
2324
use std::thread;
2425
use versionize::{VersionMap, Versionize, VersionizeResult};
2526
use versionize_derive::Versionize;
26-
use vm_memory::{ByteValued, Bytes, GuestAddressSpace, GuestMemoryAtomic, GuestMemoryMmap};
27+
use vm_memory::{ByteValued, Bytes, GuestAddressSpace, GuestMemoryAtomic};
2728
use vm_migration::VersionMapped;
2829
use vm_migration::{Migratable, MigratableError, Pausable, Snapshot, Snapshottable, Transportable};
2930
use vmm_sys_util::eventfd::EventFd;

virtio-devices/src/device.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
// SPDX-License-Identifier: Apache-2.0 AND BSD-3-Clause
88

99
use crate::{ActivateError, ActivateResult, Error, Queue};
10+
use crate::{GuestMemoryMmap, GuestRegionMmap};
1011
use libc::EFD_NONBLOCK;
1112
use std::collections::HashMap;
1213
use std::io::Write;
@@ -16,7 +17,7 @@ use std::sync::{
1617
Arc, Barrier,
1718
};
1819
use std::thread;
19-
use vm_memory::{GuestAddress, GuestMemoryAtomic, GuestMemoryMmap, GuestRegionMmap, GuestUsize};
20+
use vm_memory::{GuestAddress, GuestMemoryAtomic, GuestUsize};
2021
use vm_migration::{MigratableError, Pausable};
2122
use vm_virtio::VirtioDeviceType;
2223
use vmm_sys_util::eventfd::EventFd;

0 commit comments

Comments
 (0)