Subject: Re: smp vs. apm and UVM_PAGEIDLE_ZERO
To: Sean Doran <smd@ebone.net>
From: Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>
List: tech-smp
Date: 08/30/2000 20:00:38
> If I try to put apm into the kernel (I like halt -p :) ), I get a bazillion
> errors at compile time.   Is this a known thing, or should I make a 
> script(1)?

I can turn on the option and replicate the build errors just fine .. :-)

In general APM and multiprocessors don't get along well; ACPI can deal
with multiple CPU's, but ACPI looks like a large crawling horror to
implement in its full glory [1].

I'll see if I can find a way to allow halt -p to still work even if
the idle loop isn't calling the apm idle function..

> Also, I notice this:
> 
>         0 zero pages
>         0 pagealloc zero wanted and avail
>    460144 pagealloc zero wanted and not avail
>    397566 promote zero fill faults
> 
> thanks to the #if 0 in .../i386/locore.s.  Any plans to add it into the
> new cpu_switch routine?

Yes, when I have time to make it work again (probably won't be hard).
The MI uvm page-zeroing code looks like it shouldn't cause locking
difficulties, but I need to fix the i386 pmap to allocate a per-CPU
PTE/VA for page zeroing, so it can actually usefully zero pages on
multiple cpu's simultaneously rather than spending time fighting over
the page-zeroing lock.

					- Bill

[1] the spec is ~450 pages or so, and defines a virtual machine which
the OS must implement in order to run ACPI bytecodes provided to it by
the BIOS -- some of which reportedly check which OS is running and do
different things depending on whether it's win98 or win2k ...