summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkettenis <kettenis@openbsd.org>2020-10-26 18:35:41 +0000
committerkettenis <kettenis@openbsd.org>2020-10-26 18:35:41 +0000
commit1cce8868d902bffc287beeab5697a941383dbed9 (patch)
treee1774bb1a476efb650faf5c24ba5a9512725b897
parentsync (diff)
downloadwireguard-openbsd-1cce8868d902bffc287beeab5697a941383dbed9.tar.xz
wireguard-openbsd-1cce8868d902bffc287beeab5697a941383dbed9.zip
Switch the pmap and PDP pools to IPL_VM, drop the PR_WAITOK flag from the
PDP pool and use the single page allocator for the PDP pool. This makes pmap_destroy(9) mpsafe while preventing additional pressure on the interrupt-safe kernel map. ok mpi@
-rw-r--r--sys/arch/amd64/amd64/pmap.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/arch/amd64/amd64/pmap.c b/sys/arch/amd64/amd64/pmap.c
index 10ab3da2949..ecfb4096e94 100644
--- a/sys/arch/amd64/amd64/pmap.c
+++ b/sys/arch/amd64/amd64/pmap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pmap.c,v 1.139 2020/09/13 12:05:23 jsg Exp $ */
+/* $OpenBSD: pmap.c,v 1.140 2020/10/26 18:35:41 kettenis Exp $ */
/* $NetBSD: pmap.c,v 1.3 2003/05/08 18:13:13 thorpej Exp $ */
/*
@@ -854,7 +854,7 @@ pmap_bootstrap(paddr_t first_avail, paddr_t max_pa)
* initialize the pmap pools.
*/
- pool_init(&pmap_pmap_pool, sizeof(struct pmap), 0, IPL_NONE, 0,
+ pool_init(&pmap_pmap_pool, sizeof(struct pmap), 0, IPL_VM, 0,
"pmappl", NULL);
pool_init(&pmap_pv_pool, sizeof(struct pv_entry), 0, IPL_VM, 0,
"pvpl", &pool_allocator_single);
@@ -864,8 +864,8 @@ pmap_bootstrap(paddr_t first_avail, paddr_t max_pa)
* initialize the PDE pool.
*/
- pool_init(&pmap_pdp_pool, PAGE_SIZE, 0, IPL_NONE, PR_WAITOK,
- "pdppl", NULL);
+ pool_init(&pmap_pdp_pool, PAGE_SIZE, 0, IPL_VM, 0,
+ "pdppl", &pool_allocator_single);
kpm->pm_pdir_intel = NULL;
kpm->pm_pdirpa_intel = 0;