Source-Changes archive

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

uvm_pageidlezero() on mips



"Michael L. Hitch" wrote:

> On Sat, 29 Apr 2000, Soren S. Jorvang wrote:
> 
> > On Sat, Apr 29, 2000 at 02:25:16PM +1000, Simon Burge wrote:
> > > Umm, is the logic right here?  It appears that uvm_pageidlezero is
> > > only called _after_ a runnable process appears on whichqs, and then
> > > uvm_pageidlezero will only clear one page because it checks whichqs at
> > > the end of it's loop.  Does "vmstat -s | egrep 'zero|pages free'" show
> > > the zero page count at the number of free pages?
> > 
> > The stats happen to look right under some types of benchmarking,
> > but you are right.
> > 
> > > With my earlier experiments at calling uvm_pageidlezero _before_ the
> > > busy loop checking whichqs I was getting lockups on a pmax during the
> > > SCSI drive probe (after the "waiting for 2 seconds....".
> > 
> > Hmm, seems to work okay for me. Could you try again on your pmax
> > with what's there now?
> 
>   This fails miserably on my 5000/25.  Trying to run programs get segment
> violations very frequently.  My guess at this point is that using
> uncached address space to zero the page leaves non-zeroed data in the
> cache.  If that cached data is then used instead of the zeroed memory,
> things that expect the data to be zero will fail.

Works ok for me on an r4400 - maybe it's a MIPS1/MIPS3 thang?  If so,
maybe we just put

        vm_page_zero_enable = CPUISMIPS3;

very early on, say in mips_vector_init() just after cpu_arch is
initialised?

Simon.



Home | Main Index | Thread Index | Old Index