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): ...@@ -78,10 +78,11 @@ def AddCommonArgs(arg_parser):
common_args.add_argument('--memory', type=int, default=2048, common_args.add_argument('--memory', type=int, default=2048,
help='Sets the RAM size (MB) if launching in a VM'), help='Sets the RAM size (MB) if launching in a VM'),
common_args.add_argument( common_args.add_argument(
'--no-kvm', '--allow-no-kvm',
action='store_true', action='store_false',
default=False, dest='require_kvm',
help='Disable KVM virtualization.') default=True,
help='Do not require KVM acceleration for emulators.')
common_args.add_argument( common_args.add_argument(
'--os_check', choices=['check', 'update', 'ignore'], '--os_check', choices=['check', 'update', 'ignore'],
default='update', default='update',
...@@ -120,7 +121,7 @@ def ConfigureLogging(args): ...@@ -120,7 +121,7 @@ def ConfigureLogging(args):
logging.DEBUG if args.verbose else logging.WARN) 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 """Constructs a deployment target object using parameters taken from
command line arguments.""" command line arguments."""
if args.system_log_file == '-': if args.system_log_file == '-':
...@@ -150,10 +151,12 @@ def GetDeploymentTargetForArgs(args, require_kvm=False): ...@@ -150,10 +151,12 @@ def GetDeploymentTargetForArgs(args, require_kvm=False):
'os_check':args.os_check }) 'os_check':args.os_check })
return DeviceTarget(**target_args) return DeviceTarget(**target_args)
else: else:
target_args.update({ 'cpu_cores':args.qemu_cpu_cores, target_args.update({
'require_kvm':not args.no_kvm, 'cpu_cores': args.qemu_cpu_cores,
'emu_type':args.device, 'require_kvm': args.require_kvm,
'ram_size_mb':args.memory }) 'emu_type': args.device,
'ram_size_mb': args.memory
})
if args.device == 'qemu': if args.device == 'qemu':
return QemuTarget(**target_args) return QemuTarget(**target_args)
else: else:
......
...@@ -20,6 +20,7 @@ import tempfile ...@@ -20,6 +20,7 @@ import tempfile
from common import GetHostArchFromPlatform, GetEmuRootForPlatform from common import GetHostArchFromPlatform, GetEmuRootForPlatform
from common import EnsurePathExists from common import EnsurePathExists
from qemu_image import ExecQemuImgWithRetry from qemu_image import ExecQemuImgWithRetry
from target import FuchsiaTargetException
# Virtual networking configuration data for QEMU. # Virtual networking configuration data for QEMU.
...@@ -46,13 +47,16 @@ class QemuTarget(emu_target.EmuTarget): ...@@ -46,13 +47,16 @@ class QemuTarget(emu_target.EmuTarget):
return self._emu_type return self._emu_type
def _IsKvmEnabled(self): def _IsKvmEnabled(self):
if self._require_kvm: kvm_supported = sys.platform.startswith('linux') and \
if (sys.platform.startswith('linux') and os.access('/dev/kvm', os.R_OK | os.W_OK)
os.access('/dev/kvm', os.R_OK | os.W_OK)): same_arch = \
if self._target_cpu == 'arm64' and platform.machine() == 'aarch64': (self._target_cpu == 'arm64' and platform.machine() == 'aarch64') or \
return True (self._target_cpu == 'x64' and platform.machine() == 'x86_64')
if self._target_cpu == 'x64' and platform.machine() == 'x86_64': if kvm_supported and same_arch:
return True return True
elif self._require_kvm:
raise FuchsiaTargetException('KVM required but unavailable.')
else:
return False return False
def _BuildQemuConfig(self): def _BuildQemuConfig(self):
...@@ -210,5 +214,3 @@ def _EnsureBlobstoreQcowAndReturnPath(output_dir, target_arch): ...@@ -210,5 +214,3 @@ def _EnsureBlobstoreQcowAndReturnPath(output_dir, target_arch):
blobstore_hash_file.write(current_blobstore_hash) blobstore_hash_file.write(current_blobstore_hash)
return qcow_path return qcow_path
...@@ -116,10 +116,7 @@ def main(): ...@@ -116,10 +116,7 @@ def main():
if args.child_args: if args.child_args:
child_args.extend(args.child_args) child_args.extend(args.child_args)
# KVM is required on x64 test bots. with GetDeploymentTargetForArgs(args) as target:
require_kvm = args.test_launcher_bot_mode and args.target_cpu == 'x64'
with GetDeploymentTargetForArgs(args, require_kvm=require_kvm) as target:
target.Start() target.Start()
if args.test_launcher_filter_file: 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