]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
To date, unwiring a fictitious page has produced a panic. The reason
authorAlan Cox <alc@FreeBSD.org>
Sat, 22 May 2004 04:53:51 +0000 (04:53 +0000)
committerAlan Cox <alc@FreeBSD.org>
Sat, 22 May 2004 04:53:51 +0000 (04:53 +0000)
commit4be14af9cf8d09cab0c1bfb0f8557ee081444957
tree6d85a1a2ab10a2464008e25a57d32d46bc5a5096
parent55fe3a872f94635e9cbb27651665fbedd4d49afc
To date, unwiring a fictitious page has produced a panic.  The reason
being that PHYS_TO_VM_PAGE() returns the wrong vm_page for fictitious
pages but unwiring uses PHYS_TO_VM_PAGE().  The resulting panic
reported an unexpected wired count.  Rather than attempting to fix
PHYS_TO_VM_PAGE(), this fix takes advantage of the properties of
fictitious pages.  Specifically, fictitious pages will never be
completely unwired.  Therefore, we can keep a fictitious page's wired
count forever set to one and thereby avoid the use of
PHYS_TO_VM_PAGE() when we know that we're working with a fictitious
page, just not which one.

In collaboration with: green@, tegge@
PR: kern/29915
sys/vm/vm_extern.h
sys/vm/vm_fault.c
sys/vm/vm_map.c
sys/vm/vm_page.c