[Top][All Lists]
[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