qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] Add support for CPU_LOG_INT (MIPS targets)


From: Aurelien Jarno
Subject: Re: [Qemu-devel] [PATCH] Add support for CPU_LOG_INT (MIPS targets)
Date: Tue, 14 Oct 2008 21:54:29 +0200
User-agent: Mutt/1.5.13 (2006-08-11)

On Tue, Oct 14, 2008 at 07:25:30PM +0200, Stefan Weil wrote:
> Aurelien Jarno schrieb:
> > On Thu, Oct 02, 2008 at 10:04:26PM +0200, Stefan Weil wrote:
> >   
> > ...
> >> Add interrupt logging for MIPS targets.
> >>
> >> Signed-off-by: Stefan Weil <address@hidden> 
> >>
> >> Index: hw/mips_int.c
> >> ===================================================================
> >> --- hw/mips_int.c  (Revision 5400)
> >> +++ hw/mips_int.c  (Arbeitskopie)
> >> @@ -1,6 +1,7 @@
> >>  #include "hw.h"
> >>  #include "mips.h"
> >>  #include "cpu.h"
> >> +#include "qemu-log.h"
> >>  
> >>  /* Raise IRQ to CPU if necessary. It must be called every time the active
> >>     IRQ may change */
> >> @@ -12,10 +13,28 @@
> >>          !(env->hflags & MIPS_HFLAG_DM)) {
> >>          if ((env->CP0_Status & env->CP0_Cause & CP0Ca_IP_mask) &&
> >>              !(env->interrupt_request & CPU_INTERRUPT_HARD)) {
> >> +            if (loglevel & CPU_LOG_INT) {
> >> +                fprintf(logfile, "%s: cpu_interrupt (0x%08x,0x%08x)\n", 
> >> __func__,
> >> +                  env->CP0_Status & env->CP0_Cause & CP0Ca_IP_mask,
> >> +                  env->interrupt_request);
> >> +                cpu_dump_state(env, logfile, fprintf, 0);
> >> +            }
> >>              cpu_interrupt(env, CPU_INTERRUPT_HARD);
> >> -  }
> >> -    } else
> >> +        } else {
> >> +            if (loglevel & CPU_LOG_INT) {
> >> +                fprintf(logfile, "%s: no interrupt (0x%08x,0x%08x)\n", 
> >> __func__,
> >> +                  env->CP0_Status & env->CP0_Cause & CP0Ca_IP_mask,
> >> +                  env->interrupt_request);
> >> +                cpu_dump_state(env, logfile, fprintf, 0);
> >> +            }
> >>     
> >
> > I am not sure we really want to log this case, as no interrupt are
> > actually triggered (disabled interrupt, already processing an
> > interrupt, etc.)
> >   
> Well, I added this code to debug a real problem, not just for fun.
> It helps to see who triggers this code, even when interrupts are
> disabled at that moment.
> 

Then if you want to see the interrupts in all cases, what about 
adding it directly to cpu_mips_irq_request()? The resulting code would
be cleaner.


-- 
  .''`.  Aurelien Jarno             | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   address@hidden         | address@hidden
   `-    people.debian.org/~aurel32 | www.aurel32.net




reply via email to

[Prev in Thread] Current Thread [Next in Thread]