Commit 93888160 authored by Chong Gu's avatar Chong Gu Committed by Commit Bot

[Fuchsia] Replace no-kvm flag with allow-no-kvm.

Remove require_kvm arg from GetDeploymentTargetForArgs.
Replace useless no-kvm flag with allow-no-kvm.

Bug: 1000906
Change-Id: I6d85d351e4089384721d85f697909b4d9280fe53
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2071136
Commit-Queue: Chong Gu <chonggu@google.com>
Reviewed-by: default avatarWez <wez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#744367}
parent a828dd38
......@@ -78,10 +78,11 @@ def AddCommonArgs(arg_parser):
common_args.add_argument('--memory', type=int, default=2048,
help='Sets the RAM size (MB) if launching in a VM'),
common_args.add_argument(
'--no-kvm',
action='store_true',
default=False,
help='Disable KVM virtualization.')
'--allow-no-kvm',
action='store_false',
dest='require_kvm',
default=True,
help='Do not require KVM acceleration for emulators.')
common_args.add_argument(
'--os_check', choices=['check', 'update', 'ignore'],
default='update',
......@@ -120,7 +121,7 @@ def ConfigureLogging(args):
logging.DEBUG if args.verbose else logging.WARN)
def GetDeploymentTargetForArgs(args, require_kvm=False):
def GetDeploymentTargetForArgs(args):
"""Constructs a deployment target object using parameters taken from
command line arguments."""
if args.system_log_file == '-':
......@@ -150,10 +151,12 @@ def GetDeploymentTargetForArgs(args, require_kvm=False):
'os_check':args.os_check })
return DeviceTarget(**target_args)
else:
target_args.update({ 'cpu_cores':args.qemu_cpu_cores,
'require_kvm':not args.no_kvm,
'emu_type':args.device,
'ram_size_mb':args.memory })
target_args.update({
'cpu_cores': args.qemu_cpu_cores,
'require_kvm': args.require_kvm,
'emu_type': args.device,
'ram_size_mb': args.memory
})
if args.device == 'qemu':
return QemuTarget(**target_args)
else:
......
......@@ -20,6 +20,7 @@ import tempfile
from common import GetHostArchFromPlatform, GetEmuRootForPlatform
from common import EnsurePathExists
from qemu_image import ExecQemuImgWithRetry
from target import FuchsiaTargetException
# Virtual networking configuration data for QEMU.
......@@ -46,14 +47,17 @@ class QemuTarget(emu_target.EmuTarget):
return self._emu_type
def _IsKvmEnabled(self):
if self._require_kvm:
if (sys.platform.startswith('linux') and
os.access('/dev/kvm', os.R_OK | os.W_OK)):
if self._target_cpu == 'arm64' and platform.machine() == 'aarch64':
return True
if self._target_cpu == 'x64' and platform.machine() == 'x86_64':
return True
return False
kvm_supported = sys.platform.startswith('linux') and \
os.access('/dev/kvm', os.R_OK | os.W_OK)
same_arch = \
(self._target_cpu == 'arm64' and platform.machine() == 'aarch64') or \
(self._target_cpu == 'x64' and platform.machine() == 'x86_64')
if kvm_supported and same_arch:
return True
elif self._require_kvm:
raise FuchsiaTargetException('KVM required but unavailable.')
else:
return False
def _BuildQemuConfig(self):
boot_data.AssertBootImagesExist(self._GetTargetSdkArch(), 'qemu')
......@@ -210,5 +214,3 @@ def _EnsureBlobstoreQcowAndReturnPath(output_dir, target_arch):
blobstore_hash_file.write(current_blobstore_hash)
return qcow_path
......@@ -116,10 +116,7 @@ def main():
if args.child_args:
child_args.extend(args.child_args)
# KVM is required on x64 test bots.
require_kvm = args.test_launcher_bot_mode and args.target_cpu == 'x64'
with GetDeploymentTargetForArgs(args, require_kvm=require_kvm) as target:
with GetDeploymentTargetForArgs(args) as target:
target.Start()
if args.test_launcher_filter_file:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment