Date: Mon, 20 Jan 1997 22:42:28 +1100 (EST) From: Douglas Thomas Crosher <dtc@scrooge.ee.swin.oz.au> To: dyson@FreeBSD.ORG Cc: current@FreeBSD.ORG Subject: Re: possible madvise MADV_FREE improvement Message-ID: <199701201142.WAA19921@scrooge.ee.swin.oz.au> In-Reply-To: <199701200206.VAA00126@dyson.iquest.net> from "John S. Dyson" at Jan 19, 97 09:06:06 pm
next in thread | previous in thread | raw e-mail | index | archive | help
> > Below is a patch which seems to improve madvise MADV_FREE; stops the > > page-ins in the example recently posted. It also brings the call > > closer to reliably zeroing the pages. > > > Thanks for the bug report, and I will be committing a fix in a little > while (next hour or so) for the problem. Note that MADV_FREE does not > guarantee that the page will be zeroed in any way. Specificially, MADV_FREE > allows the system to optionally dispose of the contents of the page range, > without paging it out. If the contents are disposed of, of course, the > pages in the page range will be demand zeroed. > > John > dyson@freebsd.org Thanks for looking into it, it now seems to do a good job of avoiding unnecessary zero fills. However it still seems to do a lot of unnecessary page-ins. The case of m==NULL and object->type==OBJT_SWAP seems important, patch below. Regards Douglas Crosher -=-=- *** vm_object.c.orig.2 Mon Jan 20 16:28:46 1997 --- vm_object.c Mon Jan 20 22:22:32 1997 *************** *** 714,719 **** --- 714,726 ---- tpindex = pindex; shadowlookup: m = vm_page_lookup(tobject, tpindex); + if ( m==NULL && tobject->type == OBJT_SWAP + && advise==MADV_FREE ) + { + swap_pager_dmzspace(object, pindex, 1); + continue; + } + else if (m == NULL) { if (tobject->type != OBJT_DEFAULT) { continue;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199701201142.WAA19921>