Skip to content

Commit 3a95595

Browse files
committed
refactor: introduce KIB_TO_BYTES_SHIFT constant
Left-shifting by 20 to convert KiB to bytes is ubiquitous in our codebase, but probably somewhat arcane to people not familiar with low level stuff. Let's define a constant for it. Signed-off-by: Patrick Roy <[email protected]>
1 parent 74b1e69 commit 3a95595

File tree

8 files changed

+26
-15
lines changed

8 files changed

+26
-15
lines changed

src/vmm/src/arch/x86_64/mod.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ use linux_loader::loader::elf::start_info::{
3535

3636
use crate::arch::{BootProtocol, InitrdConfig, SYSTEM_MEM_SIZE, SYSTEM_MEM_START};
3737
use crate::device_manager::resources::ResourceAllocator;
38-
use crate::utils::u64_to_usize;
38+
use crate::utils::{KIB_TO_BYTES_SHIFT, u64_to_usize};
3939
use crate::vstate::memory::{
4040
Address, GuestAddress, GuestMemory, GuestMemoryMmap, GuestMemoryRegion,
4141
};
@@ -70,7 +70,7 @@ pub enum ConfigurationError {
7070
const FIRST_ADDR_PAST_32BITS: u64 = 1 << 32;
7171

7272
/// Size of MMIO gap at top of 32-bit address space.
73-
pub const MEM_32BIT_GAP_SIZE: u64 = 768 << 20;
73+
pub const MEM_32BIT_GAP_SIZE: u64 = 768 << KIB_TO_BYTES_SHIFT;
7474
/// The start of the memory area reserved for MMIO devices.
7575
pub const MMIO_MEM_START: u64 = FIRST_ADDR_PAST_32BITS - MEM_32BIT_GAP_SIZE;
7676
/// The size of the memory area reserved for MMIO devices.
@@ -359,6 +359,7 @@ mod tests {
359359

360360
use super::*;
361361
use crate::test_utils::{arch_mem, single_region_mem};
362+
use crate::utils::KIB_TO_BYTES_SHIFT;
362363

363364
#[test]
364365
fn regions_lt_4gb() {
@@ -396,7 +397,7 @@ mod tests {
396397
);
397398

398399
// Now assigning some memory that falls before the 32bit memory hole.
399-
let mem_size = 128 << 20;
400+
let mem_size = 128 << KIB_TO_BYTES_SHIFT;
400401
let gm = arch_mem(mem_size);
401402
let mut resource_allocator = ResourceAllocator::new().unwrap();
402403
configure_system(
@@ -421,7 +422,7 @@ mod tests {
421422
.unwrap();
422423

423424
// Now assigning some memory that is equal to the start of the 32bit memory hole.
424-
let mem_size = 3328 << 20;
425+
let mem_size = 3328 << KIB_TO_BYTES_SHIFT;
425426
let gm = arch_mem(mem_size);
426427
let mut resource_allocator = ResourceAllocator::new().unwrap();
427428
configure_system(
@@ -446,7 +447,7 @@ mod tests {
446447
.unwrap();
447448

448449
// Now assigning some memory that falls after the 32bit memory hole.
449-
let mem_size = 3330 << 20;
450+
let mem_size = 3330 << KIB_TO_BYTES_SHIFT;
450451
let gm = arch_mem(mem_size);
451452
let mut resource_allocator = ResourceAllocator::new().unwrap();
452453
configure_system(

src/vmm/src/builder.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1050,6 +1050,7 @@ pub(crate) mod tests {
10501050
use crate::mmds::data_store::{Mmds, MmdsVersion};
10511051
use crate::mmds::ns::MmdsNetworkStack;
10521052
use crate::test_utils::{single_region_mem, single_region_mem_at};
1053+
use crate::utils::KIB_TO_BYTES_SHIFT;
10531054
use crate::vmm_config::balloon::{BALLOON_DEV_ID, BalloonBuilder, BalloonDeviceConfig};
10541055
use crate::vmm_config::boot_source::DEFAULT_KERNEL_CMDLINE;
10551056
use crate::vmm_config::drive::{BlockBuilder, BlockDeviceConfig};
@@ -1113,7 +1114,7 @@ pub(crate) mod tests {
11131114
}
11141115

11151116
pub(crate) fn default_vmm() -> Vmm {
1116-
let (kvm, mut vm, guest_memory) = setup_vm_with_memory(128 << 20);
1117+
let (kvm, mut vm, guest_memory) = setup_vm_with_memory(128 << KIB_TO_BYTES_SHIFT);
11171118

11181119
let mmio_device_manager = MMIODeviceManager::new();
11191120
let acpi_device_manager = ACPIDeviceManager::new();

src/vmm/src/devices/virtio/vsock/event_handler.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ mod tests {
226226
use crate::devices::virtio::vsock::packet::VSOCK_PKT_HDR_SIZE;
227227
use crate::devices::virtio::vsock::test_utils::{EventHandlerContext, TestContext};
228228
use crate::test_utils::multi_region_mem;
229+
use crate::utils::KIB_TO_BYTES_SHIFT;
229230
use crate::vstate::memory::Bytes;
230231

231232
#[test]
@@ -475,10 +476,10 @@ mod tests {
475476
fn test_vsock_bof() {
476477
use crate::vstate::memory::GuestAddress;
477478

478-
const GAP_SIZE: u32 = 768 << 20;
479+
const GAP_SIZE: u32 = 768 << KIB_TO_BYTES_SHIFT;
479480
const FIRST_AFTER_GAP: usize = 1 << 32;
480481
const GAP_START_ADDR: usize = FIRST_AFTER_GAP - GAP_SIZE as usize;
481-
const MIB: usize = 1 << 20;
482+
const MIB: usize = 1 << KIB_TO_BYTES_SHIFT;
482483

483484
let mut test_ctx = TestContext::new();
484485
test_ctx.mem = multi_region_mem(&[

src/vmm/src/resources.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ use crate::logger::info;
1313
use crate::mmds;
1414
use crate::mmds::data_store::{Mmds, MmdsVersion};
1515
use crate::mmds::ns::MmdsNetworkStack;
16+
use crate::utils::KIB_TO_BYTES_SHIFT;
1617
use crate::utils::net::ipv4addr::is_link_local_valid;
1718
use crate::vmm_config::balloon::*;
1819
use crate::vmm_config::boot_source::{
@@ -462,7 +463,9 @@ impl VmResources {
462463
self.machine_config.huge_pages,
463464
)
464465
} else {
465-
let regions = crate::arch::arch_memory_regions(self.machine_config.mem_size_mib << 20);
466+
let regions = crate::arch::arch_memory_regions(
467+
self.machine_config.mem_size_mib << KIB_TO_BYTES_SHIFT,
468+
);
466469
GuestMemoryMmap::anonymous(
467470
regions.into_iter(),
468471
self.machine_config.track_dirty_pages,

src/vmm/src/utils/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ pub mod sm;
1313
use std::num::Wrapping;
1414
use std::result::Result;
1515

16+
/// How many bits to left-shift by to convert KiB to bytes.:
17+
pub const KIB_TO_BYTES_SHIFT: usize = 20;
18+
1619
/// Return the default page size of the platform, in bytes.
1720
pub fn get_page_size() -> Result<usize, vmm_sys_util::errno::Error> {
1821
// SAFETY: Safe because the parameters are valid.

src/vmm/src/vstate/memory.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use vmm_sys_util::errno;
2323

2424
use crate::DirtyBitmap;
2525
use crate::arch::arch_memory_regions;
26-
use crate::utils::{get_page_size, u64_to_usize};
26+
use crate::utils::{KIB_TO_BYTES_SHIFT, get_page_size, u64_to_usize};
2727
use crate::vmm_config::machine_config::HugePageConfig;
2828

2929
/// Type of GuestMemoryMmap.
@@ -72,7 +72,7 @@ where
7272
huge_pages: HugePageConfig,
7373
) -> Result<Self, MemoryError> {
7474
let memfd_file = create_memfd(mem_size_mib, huge_pages.into())?.into_file();
75-
let regions = arch_memory_regions(mem_size_mib << 20).into_iter();
75+
let regions = arch_memory_regions(mem_size_mib << KIB_TO_BYTES_SHIFT).into_iter();
7676

7777
Self::create(
7878
regions,
@@ -330,7 +330,7 @@ fn create_memfd(
330330
size: usize,
331331
hugetlb_size: Option<memfd::HugetlbSize>,
332332
) -> Result<memfd::Memfd, MemoryError> {
333-
let mem_size = size << 20;
333+
let mem_size = size << KIB_TO_BYTES_SHIFT;
334334
// Create a memfd.
335335
let opts = memfd::MemfdOptions::default()
336336
.hugetlb(hugetlb_size)
@@ -713,7 +713,7 @@ mod tests {
713713
#[test]
714714
fn test_create_memfd() {
715715
let size = 1;
716-
let size_mb = 1 << 20;
716+
let size_mb = 1 << KIB_TO_BYTES_SHIFT;
717717

718718
let memfd = create_memfd(size, None).unwrap();
719719

src/vmm/src/vstate/vcpu/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -786,6 +786,7 @@ pub(crate) mod tests {
786786
use crate::devices::BusDevice;
787787
use crate::devices::bus::DummyDevice;
788788
use crate::seccomp::get_empty_filters;
789+
use crate::utils::KIB_TO_BYTES_SHIFT;
789790
use crate::utils::signal::validate_signal_num;
790791
use crate::vstate::kvm::Kvm;
791792
use crate::vstate::memory::{GuestAddress, GuestMemoryMmap};
@@ -973,7 +974,7 @@ pub(crate) mod tests {
973974
fn vcpu_configured_for_boot() -> (VcpuHandle, EventFd, GuestMemoryMmap) {
974975
Vcpu::register_kick_signal_handler();
975976
// Need enough mem to boot linux.
976-
let mem_size = 64 << 20;
977+
let mem_size = 64 << KIB_TO_BYTES_SHIFT;
977978
let (kvm, _, mut vcpu, vm_mem) = setup_vcpu(mem_size);
978979

979980
let vcpu_exit_evt = vcpu.exit_evt.try_clone().unwrap();

src/vmm/src/vstate/vm/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ impl Vm {
143143
pub(crate) mod tests {
144144
use super::*;
145145
use crate::test_utils::single_region_mem;
146+
use crate::utils::KIB_TO_BYTES_SHIFT;
146147
use crate::vstate::kvm::Kvm;
147148
use crate::vstate::memory::GuestMemoryMmap;
148149

@@ -197,7 +198,7 @@ pub(crate) mod tests {
197198
#[test]
198199
fn test_create_vcpus() {
199200
let vcpu_count = 2;
200-
let (_, mut vm, _) = setup_vm_with_memory(128 << 20);
201+
let (_, mut vm, _) = setup_vm_with_memory(128 << KIB_TO_BYTES_SHIFT);
201202

202203
let (vcpu_vec, _) = vm.create_vcpus(vcpu_count).unwrap();
203204

0 commit comments

Comments
 (0)