Subject: Re: Extreme slowdown
To: Reinoud Zandijk <imago@kabel065011.kabel.utwente.nl>
From: Richard Earnshaw <rearnsha@buzzard.freeserve.co.uk>
List: port-arm32
Date: 02/24/2001 23:08:35
> Hi Richard,
> 
> On Sat, 24 Feb 2001, Richard Earnshaw wrote:
> > There are some nasty diagnostics in pmap.c, which should probably be moved
> > to DEBUG.
> >
> > arm32/pmap.c:
> > #ifdef DIAGNOSTIC
> >                 for (npv = pv; npv; npv = npv->pv_next)
> >                         if (pmap == npv->pv_pmap && va == npv->pv_va)
> >                                 panic("pmap_enter_pv: already in pv_tab pv
> > %p: %
> > 08lx/%p/%p",
> >                                     pv, pv->pv_va, pv->pv_pmap, pv->
> > pv_next);
> > #endif
> 
> 've moved this one to PMAP_DEBUG since this is one of the things that
> really slow down the machine ... without this few likes the system time
> usage is again within limits and is about 0.5-1% again running top =)
> 

OK, here's some hard numbers for my kernel when running the configure 
script from gnumake 3.78.1

Before changing the above check to PMAP_DEBUG:

Real	2m41.671	2m28.281	2m27.885
User	0m30.933	0m30.186	0m31.423
Sys	1m29.287	1m30.219	1m28.852

After converting above test to PMAP_DEBUG (DIAGNOSTIC still defined)

Real	2m34.863	2m24.204	2m21.606
User	0m31.155	0m29.822	0m31.253
Sys	1m24.474	1m24.112	1m24.001

Kernel with DIAGNOSTIC disabled

Real	2m24.147	2m16.741	2m16.751
User	0m30.259	0m30.497	0m30.000
Sys	1m20.753	1m18.895	1m18.660

All above timings were taken from a system with no significant load 
(except for the very first run (2m41), which had top and systat vmstat 
running).  System was running Xarm32vidc with kde session and exmh.

As can be seen, that one test is worth about 4-6 seconds off the configure 
time.  All the other diagnostics are together worth about another 6-7 
seconds.

R