[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v6 05/18] apic: Introduce apic_report_irq_delivered
From: |
Jan Kiszka |
Subject: |
[Qemu-devel] [PATCH v6 05/18] apic: Introduce apic_report_irq_delivered |
Date: |
Fri, 13 Jan 2012 18:35:00 +0100 |
The in-kernel i8259 and IOAPIC backends for KVM will need this, so
encapsulate the shared bits.
Signed-off-by: Jan Kiszka <address@hidden>
---
hw/apic.c | 11 ++++++++---
hw/apic.h | 1 +
trace-events | 2 +-
3 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/hw/apic.c b/hw/apic.c
index b9d733c..bec493b 100644
--- a/hw/apic.c
+++ b/hw/apic.c
@@ -413,6 +413,13 @@ static void apic_update_irq(APICState *s)
}
}
+void apic_report_irq_delivered(int delivered)
+{
+ apic_irq_delivered += delivered;
+
+ trace_apic_report_irq_delivered(apic_irq_delivered);
+}
+
void apic_reset_irq_delivered(void)
{
trace_apic_reset_irq_delivered(apic_irq_delivered);
@@ -429,9 +436,7 @@ int apic_get_irq_delivered(void)
static void apic_set_irq(APICState *s, int vector_num, int trigger_mode)
{
- apic_irq_delivered += !get_bit(s->irr, vector_num);
-
- trace_apic_set_irq(apic_irq_delivered);
+ apic_report_irq_delivered(!get_bit(s->irr, vector_num));
set_bit(s->irr, vector_num);
if (trigger_mode)
diff --git a/hw/apic.h b/hw/apic.h
index a62d83b..8173d8a 100644
--- a/hw/apic.h
+++ b/hw/apic.h
@@ -10,6 +10,7 @@ int apic_accept_pic_intr(DeviceState *s);
void apic_deliver_pic_intr(DeviceState *s, int level);
void apic_deliver_nmi(DeviceState *d);
int apic_get_interrupt(DeviceState *s);
+void apic_report_irq_delivered(int delivered);
void apic_reset_irq_delivered(void);
int apic_get_irq_delivered(void);
void cpu_set_apic_base(DeviceState *s, uint64_t val);
diff --git a/trace-events b/trace-events
index 514849a..c101216 100644
--- a/trace-events
+++ b/trace-events
@@ -95,9 +95,9 @@ cpu_get_apic_base(uint64_t val) "%016"PRIx64
apic_mem_readl(uint64_t addr, uint32_t val) "%"PRIx64" = %08x"
apic_mem_writel(uint64_t addr, uint32_t val) "%"PRIx64" = %08x"
# coalescing
+apic_report_irq_delivered(int apic_irq_delivered) "coalescing %d"
apic_reset_irq_delivered(int apic_irq_delivered) "old coalescing %d"
apic_get_irq_delivered(int apic_irq_delivered) "returning coalescing %d"
-apic_set_irq(int apic_irq_delivered) "coalescing %d"
# hw/cs4231.c
cs4231_mem_readl_dreg(uint32_t reg, uint32_t ret) "read dreg %d: 0x%02x"
--
1.7.3.4
- [Qemu-devel] [PATCH v6 08/18] i8259: Completely privatize PicState, (continued)
- [Qemu-devel] [PATCH v6 08/18] i8259: Completely privatize PicState, Jan Kiszka, 2012/01/13
- [Qemu-devel] [PATCH v6 09/18] i8259: Factor out base class for KVM reuse, Jan Kiszka, 2012/01/13
- [Qemu-devel] [PATCH v6 02/18] kvm: Move kvmclock into hw/kvm folder, Jan Kiszka, 2012/01/13
- [Qemu-devel] [PATCH v6 03/18] apic: Stop timer on reset, Jan Kiszka, 2012/01/13
- [Qemu-devel] [PATCH v6 13/18] kvm: Introduce core services for in-kernel irqchip support, Jan Kiszka, 2012/01/13
- [Qemu-devel] [PATCH v6 07/18] apic: Open-code timer save/restore, Jan Kiszka, 2012/01/13
- [Qemu-devel] [PATCH v6 14/18] kvm: x86: Establish IRQ0 override control, Jan Kiszka, 2012/01/13
- [Qemu-devel] [PATCH v6 12/18] memory: Introduce memory_region_init_reservation, Jan Kiszka, 2012/01/13
- [Qemu-devel] [PATCH v6 17/18] kvm: x86: Add user space part for in-kernel IOAPIC, Jan Kiszka, 2012/01/13
- [Qemu-devel] [PATCH v6 05/18] apic: Introduce apic_report_irq_delivered,
Jan Kiszka <=
- [Qemu-devel] [PATCH v6 04/18] apic: Inject external NMI events via LINT1, Jan Kiszka, 2012/01/13
- [Qemu-devel] [PATCH v6 01/18] msi: Generalize msix_supported to msi_supported, Jan Kiszka, 2012/01/13
- [Qemu-devel] [PATCH v6 16/18] kvm: x86: Add user space part for in-kernel i8259, Jan Kiszka, 2012/01/13
- [Qemu-devel] [PATCH v6 18/18] kvm: Arm in-kernel irqchip support, Jan Kiszka, 2012/01/13
- [Qemu-devel] [PATCH v6 15/18] kvm: x86: Add user space part for in-kernel APIC, Jan Kiszka, 2012/01/13
- [Qemu-devel] [PATCH v6 06/18] apic: Factor out base class for KVM reuse, Jan Kiszka, 2012/01/13