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 ...