v7 changes:
- patch 1
- add more to commit log, about how to use the results [Markus]
- change interface from dict back to array [Markus, Eric]
- patch 2
- kvm_arm_create_scratch_host_vcpu should raise error when init
non-zero, but failed to find a good CPU model [Sergey]
- patch 3
- rename function to kvm_device_supported [Sergey]
- patch 4
- comment line from "FIXME" to "TODO" [Sergey]
- make kvm-related part another function [Sergey]
- change result to array to follow patch 1's change
v6 changes:
- patch 1 (squashed into patch 2)
- explain more about the following in commit message: why we need
this command, and what does the entries mean [Markus]
- explain what GIC is [Eric]
- squash this patch into patch 2 [Eric]
- patch 2 (new patch 1)
- fix "does not implement" english error [Eric]
- remove useless headers in target-arm/monitor.c [Markus]
- remove this command from whitelist [Markus, Eric]
- return dict rather than array, with single key points to the
original array results [Markus, Eric]
- patch 5 (new patch 4)
- tiny change in implementation to suite the new interface.
v5 changes:
- patch 2: moved to target-arm/monitor.c (from target-arm/machine.c)
[Peter]
- patch 3: splitted into three patches: [all from Peter's comments]
- patch 3 (new): leverage kvm_arm_create_scratch_host_vcpu(), tiny
enhancement of old one to suite our need
- patch 4: introduce kvm_support_device() in kvm-all.c
- patch 5: do the implementation.
v4 changes:
- all: rename query-gic-capability to query-gic-capabilities [Andrea]
- patch 3: rename helper function to kvm_support_device, make it
inline and lighter. [Drew]
v3 changes:
- patch 2: remove func declaration, add qmp header [Drew]
- patch 3: being able to detect KVM GIC capabilities even without
kvm enabled [Andrea]: this is a little bit hacky, need some more
review on this.
v2 changes:
- result layout change: use array and dict for the capability bits
rather than a single array of strings [Andrea/Markus]
- spelling out what GIC is in doc [Eric]
This patch is to add ARM-specific command "query-gic-capability".
The new command can report which kind of GIC device the host/QEMU
support. The returned result is in the form of array.
Sample command and output:
{"execute": "query-gic-capability"}
{"return": [{"emulated": false, "version": 3,
"kernel": false},
{"emulated": true, "version": 2, "kernel":
true}]}
Testing:
Smoke tests on both x86 (emulated) and another moonshot ARM server.
Peter Xu (4):
arm: qmp: add query-gic-capabilities interface
arm: enhance kvm_arm_create_scratch_host_vcpu
kvm: add kvm_device_supported() helper function
arm: implement query-gic-capabilities
include/sysemu/kvm.h | 9 ++++++
kvm-all.c | 15 +++++++++
monitor.c | 8 +++++
qapi-schema.json | 36 +++++++++++++++++++++
qmp-commands.hx | 27 ++++++++++++++++
target-arm/Makefile.objs | 2 +-
target-arm/kvm.c | 14 +++++++-
target-arm/kvm_arm.h | 6 ++--
target-arm/monitor.c | 84 ++++++++++++++++++++++++++++++++++++++++++++++++
9 files changed, 197 insertions(+), 4 deletions(-)
create mode 100644 target-arm/monitor.c
--
2.4.3