Added the hmp command to query IO- and Local APIC registers state,
it can be very useful to identify problems related to the emulation devices.

(qemu) info apic-local
apic.lvt    00-timer   000300fd int=fd .H.EMP delmod=0:Fixed
apic.lvt    00-thermal 00010000 int=00 .H.EM. delmod=0:Fixed
apic.lvt    00-perfmon 000000fe int=fe .H.E.. delmod=0:Fixed
apic.lvt    00-LINT0   0001001f int=1f .H.EM. delmod=0:Fixed
apic.lvt    00-LINT1   000004ff int=ff .H.E.. delmod=4:NMI
apic.lvt    00-Error   000000e3 int=e3 .H.E.. delmod=0:Fixed
apic.error  00 esr 00000000 S:... R:... .
apic.timer  00 DCR=0000000b(b) initial_count=1000090000
apic.icr    00 02000000000c00d1: int=d1 delmod=0:Fixed P..E shorthand=3:all 
dest=2
apic.prio   00 apr=00(0:0)  tpr=40(4:0)
apic.dest   00 dfr=f0(f)    ldr=01(01)
apic.svr    00 0000011f vec=1f on focus=off
apic.interrupt  00 065:R.E

(qemu) info apic-io
ioapic ID=00 IRR=00000000 SEL=18
ioapic 00 00000000000100ff: int=ff delmod=0:Fixed  P.H.EM dest=0
ioapic 01 0300000000000993: int=93 delmod=1:LowPri L.H.E. dest=3
ioapic 02 00000000000100ff: int=ff delmod=0:Fixed  P.H.EM dest=0
ioapic 03 00000000000100ff: int=ff delmod=0:Fixed  P.H.EM dest=0
ioapic 04 0300000000000992: int=92 delmod=1:LowPri L.H.E. dest=3
ioapic 05 00000000000100ff: int=ff delmod=0:Fixed  P.H.EM dest=0
ioapic 06 02000000000109b3: int=b3 delmod=1:LowPri L.H.EM dest=2
ioapic 07 00000000000100ff: int=ff delmod=0:Fixed  P.H.EM dest=0
ioapic 08 01000000000008d1: int=d1 delmod=0:Fixed  L.H.E. dest=1
ioapic 09 03000000000089b1: int=b1 delmod=1:LowPri L.H.L. dest=3
ioapic 10 00000000000100ff: int=ff delmod=0:Fixed  P.H.EM dest=0
ioapic 11 00000000000100ff: int=ff delmod=0:Fixed  P.H.EM dest=0
ioapic 12 03000000000009a3: int=a3 delmod=1:LowPri L.H.E. dest=3
ioapic 13 00000000000100ff: int=ff delmod=0:Fixed  P.H.EM dest=0
ioapic 14 0300000000000962: int=62 delmod=1:LowPri L.H.E. dest=3
ioapic 15 0300000000000982: int=82 delmod=1:LowPri L.H.E. dest=3
ioapic 16 00000000000100ff: int=ff delmod=0:Fixed  P.H.EM dest=0
ioapic 17 00000000000100ff: int=ff delmod=0:Fixed  P.H.EM dest=0
ioapic 18 00000000000100ff: int=ff delmod=0:Fixed  P.H.EM dest=0
ioapic 19 00000000000100ff: int=ff delmod=0:Fixed  P.H.EM dest=0
ioapic 20 00000000000100ff: int=ff delmod=0:Fixed  P.H.EM dest=0
ioapic 21 00000000000100ff: int=ff delmod=0:Fixed  P.H.EM dest=0
ioapic 22 00000000000100ff: int=ff delmod=0:Fixed  P.H.EM dest=0
ioapic 23 00000000000100ff: int=ff delmod=0:Fixed  P.H.EM dest=0

Signed-off-by: Pavel Butsykin <pbutsy...@virtuozzo.com>
Signed-off-by: Denis V. Lunev <d...@openvz.org>
CC: Paolo Bonzini <pbonz...@redhat.com>

Pavel Butsykin (8):
  apic_internal.h: move apic_get_bit(), apic_set_bit() to
    apic_internal.h
  apic_internal.h: rename ESR_ILLEGAL_ADDRESS to
    APIC_ESR_ILLEGAL_ADDRESS
  apic_internal.h: added more constants
  apic_internal.h: Fix formatting and drop unused consts
  hmp: added local apic dump state
  ioapic_internal.h: added more constants
  hmp: added io apic dump state
  hmp:  implemented io apic dump state for emulator

 hmp-commands.hx                   |   4 +
 hw/i386/kvm/ioapic.c              |  10 +++
 hw/intc/apic.c                    |  20 +----
 hw/intc/ioapic.c                  |  12 +++
 hw/intc/ioapic_common.c           |  31 ++++++++
 include/hw/i386/apic_internal.h   |  90 +++++++++++++++++++---
 include/hw/i386/ioapic_internal.h |   7 ++
 include/hw/i386/pc.h              |   5 ++
 include/qom/cpu.h                 |  14 ++++
 monitor.c                         |  38 ++++++++++
 qom/cpu.c                         |  11 +++
 target-i386/cpu-qom.h             |   2 +
 target-i386/cpu.c                 |   1 +
 target-i386/helper.c              | 155 ++++++++++++++++++++++++++++++++++++++
 14 files changed, 371 insertions(+), 29 deletions(-)



Reply via email to