Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 Nov 2004 10:43:36 +1030
From:      Greg 'groggy' Lehey <grog@FreeBSD.org>
To:        Xin LI <delphij@FreeBSD.org>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/vm vm_contig.c
Message-ID:  <20041125001336.GP43681@wantadilla.lemis.com>
In-Reply-To: <200411241856.iAOIuDo5055072@repoman.freebsd.org>
References:  <200411241856.iAOIuDo5055072@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--KI6XeYrntNhU1GwB
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Wednesday, 24 November 2004 at 18:56:13 +0000, Xin LI wrote:
> delphij     2004-11-24 18:56:13 UTC
>
>   FreeBSD src repository
>
>   Modified files:
>     sys/vm               vm_contig.c
>   Log:
>   Try to close a potential, but serious race in our VM subsystem.
>
>   Historically, our contigmalloc1() and contigmalloc2() assumes
>   that a page in PQ_CACHE can be unconditionally reused by busying
>   and freeing it.  Unfortunatelly, when object happens to be not
>   NULL, the code will set m->object to NULL and disregard the fact
>   that the page is actually in the VM page bucket, resulting in
>   page bucket hash table corruption and finally, a filesystem
>   corruption, or a 'page not in hash' panic.
>
>   This commit has borrowed the idea taken from DragonFlyBSD's fix
>   to the VM fix by Matthew Dillon[1].  This version of patch will
>   do the following checks:
>
>           - When scanning pages in PQ_CACHE, check hold_count and
>             skip over pages that are held temporarily.
>           - For pages in PQ_CACHE and selected as candidate of being
>             freed, check if it is busy at that time.
>
>   Note:  It seems that this is might be unrelated to kern/72539.

Nice log message!  Thanks.

Greg
--
See complete headers for address and phone numbers.

--KI6XeYrntNhU1GwB
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (FreeBSD)

iD8DBQFBpSOwIubykFB6QiMRAuajAKCa25SklZiiNrqN7rfjz9sZWO9FaACfdxkL
wXkqhVmDZs/OES6rS5Cq4Pc=
=ikq5
-----END PGP SIGNATURE-----

--KI6XeYrntNhU1GwB--



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