[Qemu-devel] [PATCH 2/5] i8259: use DEBUG_IRQ_COUNT always

Peter Xu posted 5 patches 8 years, 2 months ago
[Qemu-devel] [PATCH 2/5] i8259: use DEBUG_IRQ_COUNT always
Posted by Peter Xu 8 years, 2 months ago
It's not really scary to even enable it forever.  After all it's i8259,
and it's even not the kernel one.

Then we can remove quite a few of lines to make it cleaner.  And "info
irq" will always work for it.

Signed-off-by: Peter Xu <peterx@redhat.com>
---
 hw/intc/i8259.c | 18 +-----------------
 1 file changed, 1 insertion(+), 17 deletions(-)

diff --git a/hw/intc/i8259.c b/hw/intc/i8259.c
index f12e0b27f1..20c9d0a58b 100644
--- a/hw/intc/i8259.c
+++ b/hw/intc/i8259.c
@@ -36,7 +36,6 @@
 //#define DEBUG_PIC
 
 //#define DEBUG_IRQ_LATENCY
-//#define DEBUG_IRQ_COUNT
 
 #define TYPE_I8259 "isa-i8259"
 #define PIC_CLASS(class) OBJECT_CLASS_CHECK(PICClass, (class), TYPE_I8259)
@@ -52,12 +51,8 @@ typedef struct PICClass {
     DeviceRealize parent_realize;
 } PICClass;
 
-#if defined(DEBUG_PIC) || defined(DEBUG_IRQ_COUNT)
 static int irq_level[16];
-#endif
-#ifdef DEBUG_IRQ_COUNT
 static uint64_t irq_count[16];
-#endif
 #ifdef DEBUG_IRQ_LATENCY
 static int64_t irq_time[16];
 #endif
@@ -128,24 +123,17 @@ static void pic_set_irq(void *opaque, int irq, int level)
 {
     PICCommonState *s = opaque;
     int mask = 1 << irq;
-
-#if defined(DEBUG_PIC) || defined(DEBUG_IRQ_COUNT) || \
-    defined(DEBUG_IRQ_LATENCY)
     int irq_index = s->master ? irq : irq + 8;
-#endif
 
     trace_pic_set_irq(s->master, irq, level);
 
-#if defined(DEBUG_PIC) || defined(DEBUG_IRQ_COUNT)
     if (level != irq_level[irq_index]) {
         irq_level[irq_index] = level;
-#ifdef DEBUG_IRQ_COUNT
         if (level == 1) {
             irq_count[irq_index]++;
         }
-#endif
     }
-#endif
+
 #ifdef DEBUG_IRQ_LATENCY
     if (level) {
         irq_time[irq_index] = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL);
@@ -253,12 +241,8 @@ static bool pic_get_statistics(InterruptStatsProvider *obj,
     PICCommonState *s = PIC_COMMON(obj);
 
     if (s->master) {
-#ifdef DEBUG_IRQ_COUNT
         *irq_counts = irq_count;
         *nb_irqs = ARRAY_SIZE(irq_count);
-#else
-        return false;
-#endif
     } else {
         *irq_counts = NULL;
         *nb_irqs = 0;
-- 
2.14.3


Re: [Qemu-devel] [PATCH 2/5] i8259: use DEBUG_IRQ_COUNT always
Posted by Philippe Mathieu-Daudé 8 years, 1 month ago
On 12/10/2017 03:38 AM, Peter Xu wrote:
> It's not really scary to even enable it forever.  After all it's i8259,
> and it's even not the kernel one.
> 
> Then we can remove quite a few of lines to make it cleaner.  And "info
> irq" will always work for it.
> 
> Signed-off-by: Peter Xu <peterx@redhat.com>
> ---
>  hw/intc/i8259.c | 18 +-----------------
>  1 file changed, 1 insertion(+), 17 deletions(-)
> 
> diff --git a/hw/intc/i8259.c b/hw/intc/i8259.c
> index f12e0b27f1..20c9d0a58b 100644
> --- a/hw/intc/i8259.c
> +++ b/hw/intc/i8259.c
> @@ -36,7 +36,6 @@
>  //#define DEBUG_PIC
>  
>  //#define DEBUG_IRQ_LATENCY
> -//#define DEBUG_IRQ_COUNT
>  
>  #define TYPE_I8259 "isa-i8259"
>  #define PIC_CLASS(class) OBJECT_CLASS_CHECK(PICClass, (class), TYPE_I8259)
> @@ -52,12 +51,8 @@ typedef struct PICClass {
>      DeviceRealize parent_realize;
>  } PICClass;
>  
> -#if defined(DEBUG_PIC) || defined(DEBUG_IRQ_COUNT)
>  static int irq_level[16];
> -#endif
> -#ifdef DEBUG_IRQ_COUNT
>  static uint64_t irq_count[16];
> -#endif

I'll be so happy once this device get QOMified...

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

>  #ifdef DEBUG_IRQ_LATENCY
>  static int64_t irq_time[16];
>  #endif
> @@ -128,24 +123,17 @@ static void pic_set_irq(void *opaque, int irq, int level)
>  {
>      PICCommonState *s = opaque;
>      int mask = 1 << irq;
> -
> -#if defined(DEBUG_PIC) || defined(DEBUG_IRQ_COUNT) || \
> -    defined(DEBUG_IRQ_LATENCY)
>      int irq_index = s->master ? irq : irq + 8;
> -#endif
>  
>      trace_pic_set_irq(s->master, irq, level);
>  
> -#if defined(DEBUG_PIC) || defined(DEBUG_IRQ_COUNT)
>      if (level != irq_level[irq_index]) {
>          irq_level[irq_index] = level;
> -#ifdef DEBUG_IRQ_COUNT
>          if (level == 1) {
>              irq_count[irq_index]++;
>          }
> -#endif
>      }
> -#endif
> +
>  #ifdef DEBUG_IRQ_LATENCY
>      if (level) {
>          irq_time[irq_index] = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL);
> @@ -253,12 +241,8 @@ static bool pic_get_statistics(InterruptStatsProvider *obj,
>      PICCommonState *s = PIC_COMMON(obj);
>  
>      if (s->master) {
> -#ifdef DEBUG_IRQ_COUNT
>          *irq_counts = irq_count;
>          *nb_irqs = ARRAY_SIZE(irq_count);
> -#else
> -        return false;
> -#endif
>      } else {
>          *irq_counts = NULL;
>          *nb_irqs = 0;
>