mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
- vhost-scsi: add bootindex property
- RCU: fix MemoryRegion lifetime issues in PCI; document the rules; convert of AddressSpaceDispatch and RAMList - KVM: add kvm_exit reasons for aarch64 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQEcBAABAgAGBQJU4hugAAoJEL/70l94x66DZXEH/i72tOgvKZfAjfq2xmHXNEsr roCfTFIIjKK7feyW6YgwT5pgex6I5umFsO+uIyI/wbu8nDl/3NYEQBT4fR2cGfli GKeJOEu8kf+Zt8U+fbxyVQclbuU5S0Ujsg1fX4QXC4swB5fGLT2cRWJ5qd6hKBQs GflBuLa7h4eOzcTtOPpqRIwZ8mQE0uxv/hKq9kYLKHXJN2aWsiOls8KQ2CXj2yAl p6bMS5f0H0S/1hvQcQV9EazX7owlPIEet3AmSL1TC2sjJ8hrNGMBoFPtUys1uqjc B3CwuGi0JtWIduFYV9vZ/Ze4G7Y2iZlqc5vDxIl94d+iFmoHymDOi3mFUZ3H8XQ= =Lk9p -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging - vhost-scsi: add bootindex property - RCU: fix MemoryRegion lifetime issues in PCI; document the rules; convert of AddressSpaceDispatch and RAMList - KVM: add kvm_exit reasons for aarch64 # gpg: Signature made Mon Feb 16 16:32:32 2015 GMT using RSA key ID 78C7AE83 # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * remotes/bonzini/tags/for-upstream: (21 commits) Convert ram_list to RCU exec: convert ram_list to QLIST cosmetic changes preparing for the following patches exec: protect mru_block with RCU rcu: add g_free_rcu rcu: introduce RCU-enabled QLIST exec: RCUify AddressSpaceDispatch exec: make iotlb RCU-friendly exec: introduce cpu_reload_memory_map docs: clarify memory region lifecycle pci: split shpc_cleanup and shpc_free pcie: remove mmconfig memory leak and wrap mmconfig update with transaction memory: keep the owner of the AddressSpace alive until do_address_space_destroy rcu: run RCU callbacks under the BQL rcu: do not let RCU callbacks pile up indefinitely vhost-scsi: set the bootable value of channel/target/lun vhost-scsi: add a property for booting vhost-scsi: expose the TYPE_FW_PATH_PROVIDER interface vhost-scsi: add bootindex property qdev: support to get a device firmware path directly ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
73104fd399
36 changed files with 997 additions and 191 deletions
|
@ -108,16 +108,16 @@ shape and this command should mostly work."""
|
|||
assert (val["hi"] == 0)
|
||||
return val["lo"]
|
||||
|
||||
def qtailq_foreach(self, head, field_str):
|
||||
var_p = head["tqh_first"]
|
||||
def qlist_foreach(self, head, field_str):
|
||||
var_p = head["lh_first"]
|
||||
while (var_p != 0):
|
||||
var = var_p.dereference()
|
||||
yield var
|
||||
var_p = var[field_str]["tqe_next"]
|
||||
var_p = var[field_str]["le_next"]
|
||||
|
||||
def qemu_get_ram_block(self, ram_addr):
|
||||
ram_blocks = gdb.parse_and_eval("ram_list.blocks")
|
||||
for block in self.qtailq_foreach(ram_blocks, "next"):
|
||||
for block in self.qlist_foreach(ram_blocks, "next"):
|
||||
if (ram_addr - block["offset"] < block["length"]):
|
||||
return block
|
||||
raise gdb.GdbError("Bad ram offset %x" % ram_addr)
|
||||
|
|
|
@ -145,6 +145,45 @@ svm_exit_reasons = {
|
|||
0x400: 'NPF',
|
||||
}
|
||||
|
||||
# EC definition of HSR (from arch/arm64/include/asm/kvm_arm.h)
|
||||
aarch64_exit_reasons = {
|
||||
0x00: 'UNKNOWN',
|
||||
0x01: 'WFI',
|
||||
0x03: 'CP15_32',
|
||||
0x04: 'CP15_64',
|
||||
0x05: 'CP14_MR',
|
||||
0x06: 'CP14_LS',
|
||||
0x07: 'FP_ASIMD',
|
||||
0x08: 'CP10_ID',
|
||||
0x0C: 'CP14_64',
|
||||
0x0E: 'ILL_ISS',
|
||||
0x11: 'SVC32',
|
||||
0x12: 'HVC32',
|
||||
0x13: 'SMC32',
|
||||
0x15: 'SVC64',
|
||||
0x16: 'HVC64',
|
||||
0x17: 'SMC64',
|
||||
0x18: 'SYS64',
|
||||
0x20: 'IABT',
|
||||
0x21: 'IABT_HYP',
|
||||
0x22: 'PC_ALIGN',
|
||||
0x24: 'DABT',
|
||||
0x25: 'DABT_HYP',
|
||||
0x26: 'SP_ALIGN',
|
||||
0x28: 'FP_EXC32',
|
||||
0x2C: 'FP_EXC64',
|
||||
0x2F: 'SERROR',
|
||||
0x30: 'BREAKPT',
|
||||
0x31: 'BREAKPT_HYP',
|
||||
0x32: 'SOFTSTP',
|
||||
0x33: 'SOFTSTP_HYP',
|
||||
0x34: 'WATCHPT',
|
||||
0x35: 'WATCHPT_HYP',
|
||||
0x38: 'BKPT32',
|
||||
0x3A: 'VECTOR32',
|
||||
0x3C: 'BRK64',
|
||||
}
|
||||
|
||||
# From include/uapi/linux/kvm.h, KVM_EXIT_xxx
|
||||
userspace_exit_reasons = {
|
||||
0: 'UNKNOWN',
|
||||
|
@ -212,7 +251,8 @@ def ppc_init():
|
|||
|
||||
def aarch64_init():
|
||||
globals().update({
|
||||
'sc_perf_evt_open' : 241
|
||||
'sc_perf_evt_open' : 241,
|
||||
'exit_reasons' : aarch64_exit_reasons,
|
||||
})
|
||||
|
||||
def detect_platform():
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue