vm_page.c (3af64f03119a159ac15eb75b92d346705b490385) vm_page.c (463406ac4a531b8f4c6102715c17da6183d10be3)
1/*-
2 * SPDX-License-Identifier: (BSD-3-Clause AND MIT-CMU)
3 *
4 * Copyright (c) 1991 Regents of the University of California.
5 * All rights reserved.
6 * Copyright (c) 1998 Matthew Dillon. All Rights Reserved.
7 *
8 * This code is derived from software contributed to Berkeley by

--- 2945 unchanged lines hidden (view full) ---

2954 "pageprocwait", 1);
2955 } else {
2956 /*
2957 * XXX Ideally we would wait only until the allocation could
2958 * be satisfied. This condition can cause new allocators to
2959 * consume all freed pages while old allocators wait.
2960 */
2961 mtx_lock(&vm_domainset_lock);
1/*-
2 * SPDX-License-Identifier: (BSD-3-Clause AND MIT-CMU)
3 *
4 * Copyright (c) 1991 Regents of the University of California.
5 * All rights reserved.
6 * Copyright (c) 1998 Matthew Dillon. All Rights Reserved.
7 *
8 * This code is derived from software contributed to Berkeley by

--- 2945 unchanged lines hidden (view full) ---

2954 "pageprocwait", 1);
2955 } else {
2956 /*
2957 * XXX Ideally we would wait only until the allocation could
2958 * be satisfied. This condition can cause new allocators to
2959 * consume all freed pages while old allocators wait.
2960 */
2961 mtx_lock(&vm_domainset_lock);
2962 if (DOMAINSET_SUBSET(&vm_min_domains, wdoms)) {
2962 if (vm_page_count_min_set(wdoms)) {
2963 vm_min_waiters++;
2964 msleep(&vm_min_domains, &vm_domainset_lock,
2965 PVM | PDROP, "vmwait", 0);
2966 } else
2967 mtx_unlock(&vm_domainset_lock);
2968 }
2969}
2970

--- 102 unchanged lines hidden (view full) ---

3073{
3074
3075 /*
3076 * XXX Ideally we would wait only until the allocation could
3077 * be satisfied. This condition can cause new allocators to
3078 * consume all freed pages while old allocators wait.
3079 */
3080 mtx_lock(&vm_domainset_lock);
2963 vm_min_waiters++;
2964 msleep(&vm_min_domains, &vm_domainset_lock,
2965 PVM | PDROP, "vmwait", 0);
2966 } else
2967 mtx_unlock(&vm_domainset_lock);
2968 }
2969}
2970

--- 102 unchanged lines hidden (view full) ---

3073{
3074
3075 /*
3076 * XXX Ideally we would wait only until the allocation could
3077 * be satisfied. This condition can cause new allocators to
3078 * consume all freed pages while old allocators wait.
3079 */
3080 mtx_lock(&vm_domainset_lock);
3081 if (DOMAINSET_SUBSET(&vm_min_domains, &dset->ds_mask)) {
3081 if (vm_page_count_min_set(&dset->ds_mask)) {
3082 vm_min_waiters++;
3083 msleep(&vm_min_domains, &vm_domainset_lock, PUSER | PDROP,
3084 "pfault", 0);
3085 } else
3086 mtx_unlock(&vm_domainset_lock);
3087}
3088
3089struct vm_pagequeue *

--- 1430 unchanged lines hidden ---
3082 vm_min_waiters++;
3083 msleep(&vm_min_domains, &vm_domainset_lock, PUSER | PDROP,
3084 "pfault", 0);
3085 } else
3086 mtx_unlock(&vm_domainset_lock);
3087}
3088
3089struct vm_pagequeue *

--- 1430 unchanged lines hidden ---