Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Nov 1998 08:30:41 -0800
From:      David Greenman <dg@root.com>
To:        cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG
Subject:   Re: cvs commit: src/sys/vm vm_page.c 
Message-ID:  <199811111630.IAA18434@root.com>
In-Reply-To: Your message of "Wed, 11 Nov 1998 07:07:59 PST." <199811111507.HAA22167@freefall.freebsd.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
>dg          1998/11/11 07:07:59 PST
>
>  Modified files:
>    sys/vm               vm_page.c 
>  Log:
>  Closed a small race condition between wiring/unwiring pages that involved
>  the page's wire_count.

   BTW, the manifestation of this bug is quite serious. It ultimately causes
page queues to get linked together. This happens because there is no check
(and panic) when unwiring to make sure that the page really isn't on a queue
(a wired page isn't supposed to be on a page queue) before it inserts it onto
the active/inactive queue, so the page is never properly removed from the
queue it was on. All sorts of nasty things happen from that point forward.
The first of the problems is that the system will be unable to reclaim (via
the pagedaemon) huge numbers of pages on the active/inactive queues. The bug
ultimately leads to poor performance and then a system hang or one of several
different kinds of panics. Oops.

-DG

David Greenman
Co-founder/Principal Architect, The FreeBSD Project

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199811111630.IAA18434>