The recently-introduced query-mshv command is a duplicate of query-kvm,
and neither provides a full view of which accelerators are supported
by a particular binary of QEMU and which is in use.
KVM was the first accelerator added to QEMU, predating QOM and TYPE_ACCEL,
so it got a pass. But now, instead of adding a badly designed copy, solve
the problem completely for all accelerators with a command that provides
the whole picture:
>> {"execute": "query-accelerators"}
<< {"return": {"enabled": "tcg", "present": ["kvm", "mshv", "qtest", "tcg", "xen"]}}
Cc: Praveen K Paladugu <prapal@microsoft.com>
Cc: Magnus Kulke <magnuskulke@linux.microsoft.com>
Suggested-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
110 lines
2 KiB
Python
110 lines
2 KiB
Python
# -*- Mode: Python -*-
|
|
# vim: filetype=python
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
##
|
|
# ************
|
|
# Accelerators
|
|
# ************
|
|
##
|
|
|
|
{ 'include': 'common.json' }
|
|
|
|
##
|
|
# @KvmInfo:
|
|
#
|
|
# Information about support for KVM acceleration
|
|
#
|
|
# @enabled: true if KVM acceleration is active
|
|
#
|
|
# @present: true if KVM acceleration is built into this executable
|
|
#
|
|
# Since: 0.14
|
|
##
|
|
{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} }
|
|
|
|
##
|
|
# @query-kvm:
|
|
#
|
|
# Return information about KVM acceleration
|
|
#
|
|
# Since: 0.14
|
|
#
|
|
# .. qmp-example::
|
|
#
|
|
# -> { "execute": "query-kvm" }
|
|
# <- { "return": { "enabled": true, "present": true } }
|
|
##
|
|
{ 'command': 'query-kvm', 'returns': 'KvmInfo' }
|
|
|
|
##
|
|
# @x-accel-stats:
|
|
#
|
|
# Query accelerator statistics
|
|
#
|
|
# Features:
|
|
#
|
|
# @unstable: This command is meant for debugging.
|
|
#
|
|
# Returns: accelerator statistics
|
|
#
|
|
# Since: 10.1
|
|
##
|
|
{ 'command': 'x-accel-stats',
|
|
'returns': 'HumanReadableText',
|
|
'features': [ 'unstable' ] }
|
|
|
|
##
|
|
# @Accelerator:
|
|
#
|
|
# Information about support for MSHV acceleration
|
|
#
|
|
# @hvf: Apple Hypervisor.framework
|
|
#
|
|
# @kvm: KVM
|
|
#
|
|
# @mshv: Hyper-V
|
|
#
|
|
# @nvmm: NetBSD NVMM
|
|
#
|
|
# @qtest: QTest (dummy accelerator)
|
|
#
|
|
# @tcg: TCG (dynamic translation)
|
|
#
|
|
# @whpx: Windows Hypervisor Platform
|
|
#
|
|
# @xen: Xen
|
|
#
|
|
# Since: 10.2.0
|
|
##
|
|
{ 'enum': 'Accelerator', 'data': ['hvf', 'kvm', 'mshv', 'nvmm', 'qtest', 'tcg', 'whpx', 'xen'] }
|
|
|
|
##
|
|
# @AcceleratorInfo:
|
|
#
|
|
# Information about support for various accelerators
|
|
#
|
|
# @enabled: the accelerator that is in use
|
|
#
|
|
# @present: the list of accelerators that are built into this executable
|
|
#
|
|
# Since: 10.2.0
|
|
##
|
|
{ 'struct': 'AcceleratorInfo', 'data': {'enabled': 'Accelerator', 'present': ['Accelerator']} }
|
|
|
|
##
|
|
# @query-accelerators:
|
|
#
|
|
# Return information about accelerators
|
|
#
|
|
# Returns: @AcceleratorInfo
|
|
#
|
|
# Since: 10.2.0
|
|
#
|
|
# .. qmp-example::
|
|
#
|
|
# -> { "execute": "query-accelerators" }
|
|
# <- { "return": { "enabled": "mshv", "present": ["kvm", "mshv", "qtest", "tcg"] } }
|
|
##
|
|
{ 'command': 'query-accelerators', 'returns': 'AcceleratorInfo' }
|