refractor: remove redundant by_id

remove redundant by_id in get_vm_by_id_mut and get_vm_by_id. They are
optimized to get_vm_mut and get_vm.

Signed-off-by: Chao Wu <chaowu@linux.alibaba.com>
This commit is contained in:
Chao Wu 2022-07-04 23:50:25 +08:00
parent b646d7cb37
commit 5ea35ddcdc
3 changed files with 16 additions and 40 deletions

View File

@ -279,9 +279,7 @@ impl VmmService {
}; };
use super::VmmActionError::BootSource; use super::VmmActionError::BootSource;
let vm = vmm let vm = vmm.get_vm_mut().ok_or(VmmActionError::InvalidVMID)?;
.get_vm_by_id_mut("")
.ok_or(VmmActionError::InvalidVMID)?;
if vm.is_vm_initialized() { if vm.is_vm_initialized() {
return Err(BootSource(UpdateNotAllowedPostBoot)); return Err(BootSource(UpdateNotAllowedPostBoot));
} }
@ -315,9 +313,7 @@ impl VmmService {
let vmm_seccomp_filter = vmm.vmm_seccomp_filter(); let vmm_seccomp_filter = vmm.vmm_seccomp_filter();
let vcpu_seccomp_filter = vmm.vcpu_seccomp_filter(); let vcpu_seccomp_filter = vmm.vcpu_seccomp_filter();
let vm = vmm let vm = vmm.get_vm_mut().ok_or(VmmActionError::InvalidVMID)?;
.get_vm_by_id_mut("")
.ok_or(VmmActionError::InvalidVMID)?;
if vm.is_vm_initialized() { if vm.is_vm_initialized() {
return Err(StartMicroVm(MicroVMAlreadyRunning)); return Err(StartMicroVm(MicroVMAlreadyRunning));
} }
@ -342,9 +338,7 @@ impl VmmService {
use self::VmConfigError::*; use self::VmConfigError::*;
use self::VmmActionError::MachineConfig; use self::VmmActionError::MachineConfig;
let vm = vmm let vm = vmm.get_vm_mut().ok_or(VmmActionError::InvalidVMID)?;
.get_vm_by_id_mut("")
.ok_or(VmmActionError::InvalidVMID)?;
if vm.is_vm_initialized() { if vm.is_vm_initialized() {
return Err(MachineConfig(UpdateNotAllowedPostBoot)); return Err(MachineConfig(UpdateNotAllowedPostBoot));
} }
@ -455,9 +449,7 @@ impl VmmService {
#[cfg(feature = "virtio-vsock")] #[cfg(feature = "virtio-vsock")]
fn add_vsock_device(&self, vmm: &mut Vmm, config: VsockDeviceConfigInfo) -> VmmRequestResult { fn add_vsock_device(&self, vmm: &mut Vmm, config: VsockDeviceConfigInfo) -> VmmRequestResult {
let vm = vmm let vm = vmm.get_vm_mut().ok_or(VmmActionError::InvalidVMID)?;
.get_vm_by_id_mut("")
.ok_or(VmmActionError::InvalidVMID)?;
if vm.is_vm_initialized() { if vm.is_vm_initialized() {
return Err(VmmActionError::Vsock( return Err(VmmActionError::Vsock(
VsockDeviceError::UpdateNotAllowedPostBoot, VsockDeviceError::UpdateNotAllowedPostBoot,
@ -496,9 +488,7 @@ impl VmmService {
event_mgr: &mut EventManager, event_mgr: &mut EventManager,
config: BlockDeviceConfigInfo, config: BlockDeviceConfigInfo,
) -> VmmRequestResult { ) -> VmmRequestResult {
let vm = vmm let vm = vmm.get_vm_mut().ok_or(VmmActionError::InvalidVMID)?;
.get_vm_by_id_mut("")
.ok_or(VmmActionError::InvalidVMID)?;
let ctx = vm let ctx = vm
.create_device_op_context(Some(event_mgr.epoll_manager())) .create_device_op_context(Some(event_mgr.epoll_manager()))
.map_err(|e| { .map_err(|e| {
@ -520,9 +510,7 @@ impl VmmService {
vmm: &mut Vmm, vmm: &mut Vmm,
config: BlockDeviceConfigUpdateInfo, config: BlockDeviceConfigUpdateInfo,
) -> VmmRequestResult { ) -> VmmRequestResult {
let vm = vmm let vm = vmm.get_vm_mut().ok_or(VmmActionError::InvalidVMID)?;
.get_vm_by_id_mut("")
.ok_or(VmmActionError::InvalidVMID)?;
BlockDeviceMgr::update_device_ratelimiters(vm.device_manager_mut(), config) BlockDeviceMgr::update_device_ratelimiters(vm.device_manager_mut(), config)
.map(|_| VmmData::Empty) .map(|_| VmmData::Empty)
@ -538,9 +526,7 @@ impl VmmService {
event_mgr: &mut EventManager, event_mgr: &mut EventManager,
drive_id: &str, drive_id: &str,
) -> VmmRequestResult { ) -> VmmRequestResult {
let vm = vmm let vm = vmm.get_vm_mut().ok_or(VmmActionError::InvalidVMID)?;
.get_vm_by_id_mut("")
.ok_or(VmmActionError::InvalidVMID)?;
let ctx = vm let ctx = vm
.create_device_op_context(Some(event_mgr.epoll_manager())) .create_device_op_context(Some(event_mgr.epoll_manager()))
.map_err(|_| VmmActionError::Block(BlockDeviceError::UpdateNotAllowedPostBoot))?; .map_err(|_| VmmActionError::Block(BlockDeviceError::UpdateNotAllowedPostBoot))?;
@ -557,9 +543,7 @@ impl VmmService {
event_mgr: &mut EventManager, event_mgr: &mut EventManager,
config: VirtioNetDeviceConfigInfo, config: VirtioNetDeviceConfigInfo,
) -> VmmRequestResult { ) -> VmmRequestResult {
let vm = vmm let vm = vmm.get_vm_mut().ok_or(VmmActionError::InvalidVMID)?;
.get_vm_by_id_mut("")
.ok_or(VmmActionError::InvalidVMID)?;
let ctx = vm let ctx = vm
.create_device_op_context(Some(event_mgr.epoll_manager())) .create_device_op_context(Some(event_mgr.epoll_manager()))
.map_err(|e| { .map_err(|e| {
@ -583,9 +567,7 @@ impl VmmService {
vmm: &mut Vmm, vmm: &mut Vmm,
config: VirtioNetDeviceConfigUpdateInfo, config: VirtioNetDeviceConfigUpdateInfo,
) -> VmmRequestResult { ) -> VmmRequestResult {
let vm = vmm let vm = vmm.get_vm_mut().ok_or(VmmActionError::InvalidVMID)?;
.get_vm_by_id_mut("")
.ok_or(VmmActionError::InvalidVMID)?;
VirtioNetDeviceMgr::update_device_ratelimiters(vm.device_manager_mut(), config) VirtioNetDeviceMgr::update_device_ratelimiters(vm.device_manager_mut(), config)
.map(|_| VmmData::Empty) .map(|_| VmmData::Empty)
@ -594,9 +576,7 @@ impl VmmService {
#[cfg(feature = "virtio-fs")] #[cfg(feature = "virtio-fs")]
fn add_fs_device(&mut self, vmm: &mut Vmm, config: FsDeviceConfigInfo) -> VmmRequestResult { fn add_fs_device(&mut self, vmm: &mut Vmm, config: FsDeviceConfigInfo) -> VmmRequestResult {
let vm = vmm let vm = vmm.get_vm_mut().ok_or(VmmActionError::InvalidVMID)?;
.get_vm_by_id_mut("")
.ok_or(VmmActionError::InvalidVMID)?;
let hotplug = vm.is_vm_initialized(); let hotplug = vm.is_vm_initialized();
if !cfg!(feature = "hotplug") && hotplug { if !cfg!(feature = "hotplug") && hotplug {
return Err(VmmActionError::FsDevice( return Err(VmmActionError::FsDevice(
@ -619,9 +599,7 @@ impl VmmService {
vmm: &mut Vmm, vmm: &mut Vmm,
config: FsMountConfigInfo, config: FsMountConfigInfo,
) -> VmmRequestResult { ) -> VmmRequestResult {
let vm = vmm let vm = vmm.get_vm_mut().ok_or(VmmActionError::InvalidVMID)?;
.get_vm_by_id_mut("")
.ok_or(VmmActionError::InvalidVMID)?;
if !vm.is_vm_initialized() { if !vm.is_vm_initialized() {
return Err(VmmActionError::FsDevice(FsDeviceError::MicroVMNotRunning)); return Err(VmmActionError::FsDevice(FsDeviceError::MicroVMNotRunning));
@ -638,9 +616,7 @@ impl VmmService {
vmm: &mut Vmm, vmm: &mut Vmm,
config: FsDeviceConfigUpdateInfo, config: FsDeviceConfigUpdateInfo,
) -> VmmRequestResult { ) -> VmmRequestResult {
let vm = vmm let vm = vmm.get_vm_mut().ok_or(VmmActionError::InvalidVMID)?;
.get_vm_by_id_mut("")
.ok_or(VmmActionError::InvalidVMID)?;
if !vm.is_vm_initialized() { if !vm.is_vm_initialized() {
return Err(VmmActionError::FsDevice(FsDeviceError::MicroVMNotRunning)); return Err(VmmActionError::FsDevice(FsDeviceError::MicroVMNotRunning));

View File

@ -135,7 +135,7 @@ impl MutEventSubscriber for VmmEpollHandler {
self.vmm_event_count.fetch_add(1, Ordering::AcqRel); self.vmm_event_count.fetch_add(1, Ordering::AcqRel);
} }
EPOLL_EVENT_EXIT => { EPOLL_EVENT_EXIT => {
let vm = vmm.get_vm_by_id("").unwrap(); let vm = vmm.get_vm().unwrap();
match vm.get_reset_eventfd() { match vm.get_reset_eventfd() {
Some(ev) => { Some(ev) => {
if let Err(e) = ev.read() { if let Err(e) = ev.read() {

View File

@ -85,12 +85,12 @@ impl Vmm {
} }
/// Get a reference to a virtual machine managed by the VMM. /// Get a reference to a virtual machine managed by the VMM.
pub fn get_vm_by_id(&self, _id: &str) -> Option<&Vm> { pub fn get_vm(&self) -> Option<&Vm> {
Some(&self.vm) Some(&self.vm)
} }
/// Get a mutable reference to a virtual machine managed by the VMM. /// Get a mutable reference to a virtual machine managed by the VMM.
pub fn get_vm_by_id_mut(&mut self, _id: &str) -> Option<&mut Vm> { pub fn get_vm_mut(&mut self) -> Option<&mut Vm> {
Some(&mut self.vm) Some(&mut self.vm)
} }
@ -156,7 +156,7 @@ impl Vmm {
/// Waits for all vCPUs to exit and terminates the Dragonball process. /// Waits for all vCPUs to exit and terminates the Dragonball process.
fn stop(&mut self, exit_code: i32) -> i32 { fn stop(&mut self, exit_code: i32) -> i32 {
info!("Vmm is stopping."); info!("Vmm is stopping.");
if let Some(vm) = self.get_vm_by_id_mut("") { if let Some(vm) = self.get_vm_mut() {
if vm.is_vm_initialized() { if vm.is_vm_initialized() {
if let Err(e) = vm.remove_devices() { if let Err(e) = vm.remove_devices() {
warn!("failed to remove devices: {:?}", e); warn!("failed to remove devices: {:?}", e);