diff options
author | Hollis Blanchard | 2016-04-21 17:24:41 +0200 |
---|---|---|
committer | Stefan Hajnoczi | 2016-05-17 02:20:41 +0200 |
commit | 2531088f6c1ce1f620f8d5a545f0af95598e69fc (patch) | |
tree | 8b6b6e8e4d9db79000aed3a0e33ad6690bfb4505 /trace-events | |
parent | Merge remote-tracking branch 'remotes/kraxel/tags/pull-ui-20160513-1' into st... (diff) | |
download | qemu-2531088f6c1ce1f620f8d5a545f0af95598e69fc.tar.gz qemu-2531088f6c1ce1f620f8d5a545f0af95598e69fc.tar.xz qemu-2531088f6c1ce1f620f8d5a545f0af95598e69fc.zip |
hw/intc/arm_gic: add tracepoints
These are obviously critical to understanding interrupt delivery:
gic_enable_irq
gic_disable_irq
gic_set_irq (inbound irq from device models)
gic_update_set_irq (outbound irq to CPU)
gic_acknowledge_irq
The only one that I think might raise eyebrows is gic_update_bestirq, but I've
(sadly) debugged problems that ended up being caused by unexpected priorities.
Knowing that the GIC has an irq ready, but doesn't deliver to the CPU due to
priority, has also proven important.
Signed-off-by: Hollis Blanchard <hollis_blanchard@mentor.com>
Message-id: 1461252281-22399-1-git-send-email-hollis_blanchard@mentor.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'trace-events')
-rw-r--r-- | trace-events | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/trace-events b/trace-events index 4fce005afd..e35b80e980 100644 --- a/trace-events +++ b/trace-events @@ -1908,3 +1908,11 @@ aspeed_vic_update_fiq(int flags) "Raising FIQ: %d" aspeed_vic_update_irq(int flags) "Raising IRQ: %d" aspeed_vic_read(uint64_t offset, unsigned size, uint32_t value) "From 0x%" PRIx64 " of size %u: 0x%" PRIx32 aspeed_vic_write(uint64_t offset, unsigned size, uint32_t data) "To 0x%" PRIx64 " of size %u: 0x%" PRIx32 + +# hw/intc/arm_gic.c +gic_enable_irq(int irq) "irq %d enabled" +gic_disable_irq(int irq) "irq %d disabled" +gic_set_irq(int irq, int level, int cpumask, int target) "irq %d level %d cpumask 0x%x target 0x%x" +gic_update_bestirq(int cpu, int irq, int prio, int priority_mask, int running_priority) "cpu %d irq %d priority %d cpu priority mask %d cpu running priority %d" +gic_update_set_irq(int cpu, const char *name, int level) "cpu[%d]: %s = %d" +gic_acknowledge_irq(int cpu, int irq) "cpu %d acknowledged irq %d" |