diff options
author | kib <kib@FreeBSD.org> | 2014-08-24 07:53:15 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2014-08-24 07:53:15 +0000 |
commit | 25782a7fab8e1a1c60517dab118fec0a98648dd6 (patch) | |
tree | 007faf87a4ebb0e25b4a426bc07ab2babbead757 /sys/vm/vm_kern.c | |
parent | bee605bad28d58f69b83b3197efb0bd49b38de99 (diff) | |
download | FreeBSD-src-25782a7fab8e1a1c60517dab118fec0a98648dd6.zip FreeBSD-src-25782a7fab8e1a1c60517dab118fec0a98648dd6.tar.gz |
Merge the changes to pmap_enter(9) for sleep-less operation (requested
by flag). The ia64 pmap.c changes are direct commit, since ia64 is
removed on head.
MFC r269368 (by alc):
Retire PVO_EXECUTABLE.
MFC r269728:
Change pmap_enter(9) interface to take flags parameter and superpage
mapping size (currently unused).
MFC r269759 (by alc):
Update the text of a KASSERT() to reflect the changes in r269728.
MFC r269822 (by alc):
Change {_,}pmap_allocpte() so that they look for the flag
PMAP_ENTER_NOSLEEP instead of M_NOWAIT/M_WAITOK when deciding whether
to sleep on page table page allocation.
MFC r270151 (by alc):
Replace KASSERT that no PV list locks are held with a conditional
unlock.
Reviewed by: alc
Approved by: re (gjb)
Sponsored by: The FreeBSD Foundation
Diffstat (limited to 'sys/vm/vm_kern.c')
-rw-r--r-- | sys/vm/vm_kern.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c index dd075c1..4dfb7f5 100644 --- a/sys/vm/vm_kern.c +++ b/sys/vm/vm_kern.c @@ -202,8 +202,8 @@ retry: if ((flags & M_ZERO) && (m->flags & PG_ZERO) == 0) pmap_zero_page(m); m->valid = VM_PAGE_BITS_ALL; - pmap_enter(kernel_pmap, addr + i, VM_PROT_ALL, m, VM_PROT_ALL, - TRUE); + pmap_enter(kernel_pmap, addr + i, m, VM_PROT_ALL, + VM_PROT_ALL | PMAP_ENTER_WIRED, 0); } VM_OBJECT_WUNLOCK(object); return (addr); @@ -255,7 +255,8 @@ retry: if ((flags & M_ZERO) && (m->flags & PG_ZERO) == 0) pmap_zero_page(m); m->valid = VM_PAGE_BITS_ALL; - pmap_enter(kernel_pmap, tmp, VM_PROT_ALL, m, VM_PROT_ALL, true); + pmap_enter(kernel_pmap, tmp, m, VM_PROT_ALL, + VM_PROT_ALL | PMAP_ENTER_WIRED, 0); tmp += PAGE_SIZE; } VM_OBJECT_WUNLOCK(object); @@ -378,8 +379,8 @@ retry: KASSERT((m->oflags & VPO_UNMANAGED) != 0, ("kmem_malloc: page %p is managed", m)); m->valid = VM_PAGE_BITS_ALL; - pmap_enter(kernel_pmap, addr + i, VM_PROT_ALL, m, VM_PROT_ALL, - TRUE); + pmap_enter(kernel_pmap, addr + i, m, VM_PROT_ALL, + VM_PROT_ALL | PMAP_ENTER_WIRED, 0); } VM_OBJECT_WUNLOCK(object); |