Subject: Re: Possible fix for resets under heavy load
To: Christopher SEKIYA <firstname.lastname@example.org>
From: Frank van der Linden <email@example.com>
Date: 06/03/2004 12:35:43
On Thu, Jun 03, 2004 at 11:07:00AM +0900, Christopher SEKIYA wrote:
> For those who were experiencing spontaneous reboots under heavy load, please
> try the appended patch. It brings the amd64 pmap into closer alignment with
> the i386 pmap; namely, the use of splay tree macros and more cpu locking.
> (Also, it removes i386-specific cruft).
> It seems to do the right thing on my machine.
> If there is no objection, I'll commit it over the weekend and request a
Don't remove the "if (lidx != 0)" code.. it's needed to avoid a recursive
lock, since pm_lock is equal to pm_obj.vmobjlock.
A cleaner solution is to make pm_lock seperate, init it seperately too,
and use that for global pmap locking.
Make sure to test any changes with LOCKDEBUG.
Also, there is no such thing as i386-specific cruft, since the idea
is to keep the pmaps in sync, and eventually use the same pmap for
both platforms. When I committed the amd64 port, the pmap did work
on i386 too (with modified pmap.h and pte.h files), but I haven't
tested that in a long time, it has probably bitrotted. However,
it is still my intention to merge them.
A pullup isn't a good idea for changes like this without more thorough
testing and making sure it actually fixes the reset problem.