On Mon, Mar 19, 2012 at 08:28:35AM -0400, John Baldwin wrote: > On Monday, March 19, 2012 5:34:22 am Konstantin Belousov wrote: > > Author: kib > > Date: Mon Mar 19 09:34:22 2012 > > New Revision: 233168 > > URL: http://svn.freebsd.org/changeset/base/233168 > > > > Log: > > If we ever allow for managed fictitious pages, the pages shall be > > excluded from superpage promotions. At least one of the reason is > > that pv_table is sized for non-fictitious pages only. > > > > Consistently check for the page to be non-fictitious before accesing > > superpage pv list. > > > > Sponsored by: The FreeBSD Foundation > > Reviewed by: alc > > MFC after: 2 weeks > > Hmm, I think you accidentally reverted 223122? Oops, yes, r233122 is reverted. I committed the fix, thank you for noting.
Apparently I did not pulled the master branch on the machine were I did the commit, against which the topic branch was diffed :(. > > > Modified: head/sys/amd64/amd64/pmap.c > > > ============================================================================== > > --- head/sys/amd64/amd64/pmap.c Mon Mar 19 09:30:40 2012 > > (r233167) > > +++ head/sys/amd64/amd64/pmap.c Mon Mar 19 09:34:22 2012 > > (r233168) > > @@ -2939,7 +2942,8 @@ pmap_protect(pmap_t pmap, vm_offset_t sv > > pdp_entry_t *pdpe; > > pd_entry_t ptpaddr, *pde; > > pt_entry_t *pte; > > - boolean_t anychanged, pv_lists_locked; > > + int anychanged; > > + boolean_t pv_lists_locked; > > > > if ((prot & VM_PROT_READ) == VM_PROT_NONE) { > > pmap_remove(pmap, sva, eva); > > @@ -2952,7 +2956,7 @@ pmap_protect(pmap_t pmap, vm_offset_t sv > > > > pv_lists_locked = FALSE; > > resume: > > - anychanged = FALSE; > > + anychanged = 0; > > > > PMAP_LOCK(pmap); > > for (; sva < eva; sva = va_next) { > > @@ -3000,7 +3004,7 @@ resume: > > * invalidated by pmap_protect_pde(). > > */ > > if (pmap_protect_pde(pmap, pde, sva, prot)) > > - anychanged = TRUE; > > + anychanged = 1; > > continue; > > } else { > > if (!pv_lists_locked) { > > @@ -3054,7 +3058,7 @@ retry: > > if (obits & PG_G) > > pmap_invalidate_page(pmap, sva); > > else > > - anychanged = TRUE; > > + anychanged = 1; > > } > > } > > } > > -- > John Baldwin
pgpiKGzmOb1qb.pgp
Description: PGP signature