Subject: Re: callgraph ARM7
To: Ben Harris <email@example.com>
From: Richard Earnshaw <firstname.lastname@example.org>
Date: 09/25/2001 14:27:49
> As I said above, this is because SetCPSR is used to unblock interrupts, so
> you get a lot of things like this (assuming acorn32, which doesn't have
> real statclock interrupts):
> s = splhigh(); /* or anything that blocks hardclock */
> do_more_stuff(); <--- Hardclock fires here, but it's blocked...
> splx(s); /* which calls... */
> \- SetCPSR(); <--- Interrupts re-enabled, so we handle that hardclock
> \- hardclock();
> \- statclock(); <--- Looks at the irqframe, discovers the IRQ
> happened in SetCPSR, and charges another
> clock tick to it.
> Thus, SetCPSR() will appear to be responsible for all the CPU time that's
> spent with hardclock interrupts disabled. Does that make sense?
Doh! Yes. Thanks for the explanation.
So we can infer from this that a large SetCPSR count => too much time with