Messages in this thread | | | Date | Wed, 19 Apr 2006 06:11:13 -0500 | From | Robin Holt <> | Subject | Re: ia64_do_page_fault shows 19.4% slowdown from notify_die. |
| |
On Wed, Apr 19, 2006 at 02:30:35AM +0200, Andi Kleen wrote: > Robin Holt <holt@sgi.com> writes: > > > 499 nSec/fault ia64_do_page_fault notify_die commented out. > > 501 nSec/fault ia64_do_page_fault with nobody registered. > > 533 nSec/fault notify_die in and just kprobes. > > 596 nSec/fault notify_die in and kdb, kprobes, mca, and xpc loaded. > > > > With kdb some slowdown is expected.
kdb does not register a die notifier. It only does the notify_die callouts. Sorry for the confusion. mca handler and xpc both register notifiers and both have very early exits.
> > But just going through kprobes shouldn't be that slow. I guess > there would be optimization potential there. > > Do you have finer grained profiling what is actually slow? > > > > Having the notify_page_fault() without anybody registered was only a > > 0.4% slowdown. I am not sure that justifies the optimize away, but I > > would certainly not object. > > Still sounds far too much for what is essentially a call + load + test + return > Where is that overhead comming from? I know IA64 doesn't like indirect > calls, but there shouldn't any be there for this case.
I think each registered notifier is adding approx 32 nSec. Actually, the noise on these samples was about +-9nSec which I assumed was processor stalls on cacheline load.
I think it looks like a lot of time when viewed as nSec, but when viewed as a percentage of process run time, it is probably not that great of an issue which is why it has been allowed to creep by for so long.
I can not think of an easy way to diagnose this slowdown any further. I could run through this code on the simulator so you can see which instructions actually got executed. Would that be helpful?
Thanks, Robin - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |