Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 May 2024 20:27:29 +0200
From:      tuexen@fh-muenster.de
To:        =?utf-8?Q?Bojan_Novkovi=C4=87?= <bnovkov@freebsd.org>
Cc:        "src-committers@freebsd.org" <src-committers@FreeBSD.org>, "dev-commits-src-all@freebsd.org" <dev-commits-src-all@FreeBSD.org>, "dev-commits-src-main@freebsd.org" <dev-commits-src-main@FreeBSD.org>
Subject:   Re: git: da76d349b6b1 - main - uma: Deduplicate uma_small_alloc
Message-ID:  <CEE600C9-BA44-4852-8537-EB70F299AA67@fh-muenster.de>
In-Reply-To: <202405251725.44PHPCSK026644@gitrepo.freebsd.org>
References:  <202405251725.44PHPCSK026644@gitrepo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--Apple-Mail=_576BEDC6-D888-4C3A-82B9-E9B6340CFA63
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

> On 25. May 2024, at 19:25, Bojan Novkovi=C4=87 <bnovkov@freebsd.org> =
wrote:
>=20
> The branch main has been updated by bnovkov:
With this commit, my arm64 VM (VMWare Fusion) stops booting right
after printing the line
WARNING: WITNESS option enabled, expect reduced performance.
Same when doing a verbose boot.

Best regards
Michael
>=20
> URL: =
https://cgit.FreeBSD.org/src/commit/?id=3Dda76d349b6b104f4e70562304c800a07=
93dea18d
>=20
> commit da76d349b6b104f4e70562304c800a0793dea18d
> Author:     Bojan Novkovi=C4=87 <bnovkov@FreeBSD.org>
> AuthorDate: 2024-05-03 16:48:18 +0000
> Commit:     Bojan Novkovi=C4=87 <bnovkov@FreeBSD.org>
> CommitDate: 2024-05-25 17:24:46 +0000
>=20
>    uma: Deduplicate uma_small_alloc
>=20
>    This commit refactors the UMA small alloc code and
>    removes most UMA machine-dependent code.
>    The existing machine-dependent uma_small_alloc code is almost =
identical
>    across all architectures, except for powerpc where using the direct
>    map addresses involved extra steps in some cases.
>=20
>    The MI/MD split was replaced by a default uma_small_alloc
>    implementation that can be overridden by architecture-specific code =
by
>    defining the UMA_MD_SMALL_ALLOC symbol. Furthermore, UMA_USE_DMAP =
was
>    introduced to replace most UMA_MD_SMALL_ALLOC uses.
>=20
>    Reviewed by: markj, kib
>    Approved by: markj (mentor)
>    Differential Revision:  https://reviews.freebsd.org/D45084
> ---
> sys/amd64/amd64/uma_machdep.c | 71 =
-------------------------------------------
> sys/amd64/include/vmparam.h   |  6 ++--
> sys/arm64/arm64/uma_machdep.c | 69 =
-----------------------------------------
> sys/arm64/include/vmparam.h   |  2 +-
> sys/conf/files.amd64          |  1 -
> sys/conf/files.arm64          |  1 -
> sys/conf/files.riscv          |  1 -
> sys/kern/subr_vmem.c          |  6 ++--
> sys/powerpc/include/vmparam.h |  6 ++--
> sys/riscv/include/vmparam.h   |  2 +-
> sys/riscv/riscv/uma_machdep.c | 68 =
-----------------------------------------
> sys/vm/uma_core.c             | 43 ++++++++++++++++++++++++--
> sys/vm/vm_map.c               |  8 ++---
> sys/vm/vm_radix.c             |  2 +-
> 14 files changed, 57 insertions(+), 229 deletions(-)
>=20
> diff --git a/sys/amd64/amd64/uma_machdep.c =
b/sys/amd64/amd64/uma_machdep.c
> deleted file mode 100644
> index f83f0674cc4e..000000000000
> --- a/sys/amd64/amd64/uma_machdep.c
> +++ /dev/null
> @@ -1,71 +0,0 @@
> -/*-
> - * SPDX-License-Identifier: BSD-2-Clause
> - *
> - * Copyright (c) 2003 Alan L. Cox <alc@cs.rice.edu>
> - * All rights reserved.
> - *
> - * Redistribution and use in source and binary forms, with or without
> - * modification, are permitted provided that the following conditions
> - * are met:
> - * 1. Redistributions of source code must retain the above copyright
> - *    notice, this list of conditions and the following disclaimer.
> - * 2. Redistributions in binary form must reproduce the above =
copyright
> - *    notice, this list of conditions and the following disclaimer in =
the
> - *    documentation and/or other materials provided with the =
distribution.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' =
AND
> - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, =
THE
> - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR =
PURPOSE
> - * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE =
LIABLE
> - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR =
CONSEQUENTIAL
> - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE =
GOODS
> - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS =
INTERRUPTION)
> - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN =
CONTRACT, STRICT
> - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN =
ANY WAY
> - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE =
POSSIBILITY OF
> - * SUCH DAMAGE.
> - */
> -
> -#include <sys/param.h>
> -#include <sys/malloc.h>
> -#include <vm/vm.h>
> -#include <vm/vm_param.h>
> -#include <vm/vm_page.h>
> -#include <vm/vm_phys.h>
> -#include <vm/vm_dumpset.h>
> -#include <vm/uma.h>
> -#include <vm/uma_int.h>
> -#include <machine/md_var.h>
> -
> -void *
> -uma_small_alloc(uma_zone_t zone, vm_size_t bytes, int domain, =
u_int8_t *flags,
> -    int wait)
> -{
> - vm_page_t m;
> - vm_paddr_t pa;
> - void *va;
> -
> - *flags =3D UMA_SLAB_PRIV;
> - m =3D vm_page_alloc_noobj_domain(domain, malloc2vm_flags(wait) |
> -    VM_ALLOC_WIRED);
> - if (m =3D=3D NULL)
> - return (NULL);
> - pa =3D m->phys_addr;
> - if ((wait & M_NODUMP) =3D=3D 0)
> - dump_add_page(pa);
> - va =3D (void *)PHYS_TO_DMAP(pa);
> - return (va);
> -}
> -
> -void
> -uma_small_free(void *mem, vm_size_t size, u_int8_t flags)
> -{
> - vm_page_t m;
> - vm_paddr_t pa;
> -
> - pa =3D DMAP_TO_PHYS((vm_offset_t)mem);
> - dump_drop_page(pa);
> - m =3D PHYS_TO_VM_PAGE(pa);
> - vm_page_unwire_noq(m);
> - vm_page_free(m);
> -}
> diff --git a/sys/amd64/include/vmparam.h b/sys/amd64/include/vmparam.h
> index bff9bf840036..e5155a7c7d47 100644
> --- a/sys/amd64/include/vmparam.h
> +++ b/sys/amd64/include/vmparam.h
> @@ -72,12 +72,12 @@
> #endif
>=20
> /*
> - * We provide a machine specific single page allocator through the =
use
> - * of the direct mapped segment.  This uses 2MB pages for reduced
> + * We provide a single page allocator through the use of the
> + * direct mapped segment.  This uses 2MB pages for reduced
>  * TLB pressure.
>  */
> #if !defined(KASAN) && !defined(KMSAN)
> -#define UMA_MD_SMALL_ALLOC
> +#define UMA_USE_DMAP
> #endif
>=20
> /*
> diff --git a/sys/arm64/arm64/uma_machdep.c =
b/sys/arm64/arm64/uma_machdep.c
> deleted file mode 100644
> index f942248d4dcd..000000000000
> --- a/sys/arm64/arm64/uma_machdep.c
> +++ /dev/null
> @@ -1,69 +0,0 @@
> -/*-
> - * Copyright (c) 2003 Alan L. Cox <alc@cs.rice.edu>
> - * All rights reserved.
> - *
> - * Redistribution and use in source and binary forms, with or without
> - * modification, are permitted provided that the following conditions
> - * are met:
> - * 1. Redistributions of source code must retain the above copyright
> - *    notice, this list of conditions and the following disclaimer.
> - * 2. Redistributions in binary form must reproduce the above =
copyright
> - *    notice, this list of conditions and the following disclaimer in =
the
> - *    documentation and/or other materials provided with the =
distribution.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' =
AND
> - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, =
THE
> - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR =
PURPOSE
> - * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE =
LIABLE
> - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR =
CONSEQUENTIAL
> - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE =
GOODS
> - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS =
INTERRUPTION)
> - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN =
CONTRACT, STRICT
> - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN =
ANY WAY
> - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE =
POSSIBILITY OF
> - * SUCH DAMAGE.
> - */
> -
> -#include <sys/param.h>
> -#include <sys/malloc.h>
> -#include <vm/vm.h>
> -#include <vm/vm_param.h>
> -#include <vm/vm_page.h>
> -#include <vm/vm_phys.h>
> -#include <vm/vm_dumpset.h>
> -#include <vm/uma.h>
> -#include <vm/uma_int.h>
> -#include <machine/machdep.h>
> -
> -void *
> -uma_small_alloc(uma_zone_t zone, vm_size_t bytes, int domain, =
u_int8_t *flags,
> -    int wait)
> -{
> - vm_page_t m;
> - vm_paddr_t pa;
> - void *va;
> -
> - *flags =3D UMA_SLAB_PRIV;
> - m =3D vm_page_alloc_noobj_domain(domain, malloc2vm_flags(wait) |
> -    VM_ALLOC_WIRED);
> - if (m =3D=3D NULL)
> - return (NULL);
> - pa =3D m->phys_addr;
> - if ((wait & M_NODUMP) =3D=3D 0)
> - dump_add_page(pa);
> - va =3D (void *)PHYS_TO_DMAP(pa);
> - return (va);
> -}
> -
> -void
> -uma_small_free(void *mem, vm_size_t size, u_int8_t flags)
> -{
> - vm_page_t m;
> - vm_paddr_t pa;
> -
> - pa =3D DMAP_TO_PHYS((vm_offset_t)mem);
> - dump_drop_page(pa);
> - m =3D PHYS_TO_VM_PAGE(pa);
> - vm_page_unwire_noq(m);
> - vm_page_free(m);
> -}
> diff --git a/sys/arm64/include/vmparam.h b/sys/arm64/include/vmparam.h
> index ffa5a538504a..0dcd02d63938 100644
> --- a/sys/arm64/include/vmparam.h
> +++ b/sys/arm64/include/vmparam.h
> @@ -293,7 +293,7 @@
> #endif
>=20
> #if !defined(KASAN) && !defined(KMSAN)
> -#define UMA_MD_SMALL_ALLOC
> +#define UMA_USE_DMAP
> #endif
>=20
> #ifndef LOCORE
> diff --git a/sys/conf/files.amd64 b/sys/conf/files.amd64
> index 18dec5ed47b0..add27418ce08 100644
> --- a/sys/conf/files.amd64
> +++ b/sys/conf/files.amd64
> @@ -92,7 +92,6 @@ amd64/amd64/support.S standard
> amd64/amd64/sys_machdep.c standard
> amd64/amd64/trap.c standard
> amd64/amd64/uio_machdep.c standard
> -amd64/amd64/uma_machdep.c standard
> amd64/amd64/vm_machdep.c standard
> amd64/pci/pci_cfgreg.c optional pci
> cddl/dev/dtrace/amd64/dtrace_asm.S optional dtrace compile-with =
"${DTRACE_S}"
> diff --git a/sys/conf/files.arm64 b/sys/conf/files.arm64
> index a3d4fc09da89..8139a7af8ed3 100644
> --- a/sys/conf/files.arm64
> +++ b/sys/conf/files.arm64
> @@ -78,7 +78,6 @@ arm64/arm64/swtch.S standard
> arm64/arm64/sys_machdep.c standard
> arm64/arm64/trap.c standard
> arm64/arm64/uio_machdep.c standard
> -arm64/arm64/uma_machdep.c standard
> arm64/arm64/undefined.c standard
> arm64/arm64/unwind.c optional ddb | kdtrace_hooks | stack \
> compile-with "${NORMAL_C:N-fsanitize*:N-fno-sanitize*}"
> diff --git a/sys/conf/files.riscv b/sys/conf/files.riscv
> index be7ae2b40a08..49c8ddd0c516 100644
> --- a/sys/conf/files.riscv
> +++ b/sys/conf/files.riscv
> @@ -67,7 +67,6 @@ riscv/riscv/sys_machdep.c standard
> riscv/riscv/trap.c standard
> riscv/riscv/timer.c standard
> riscv/riscv/uio_machdep.c standard
> -riscv/riscv/uma_machdep.c standard
> riscv/riscv/unwind.c optional ddb | kdtrace_hooks | stack
> riscv/riscv/vm_machdep.c standard
>=20
> diff --git a/sys/kern/subr_vmem.c b/sys/kern/subr_vmem.c
> index 1c9a8a5be979..a706d944dc3f 100644
> --- a/sys/kern/subr_vmem.c
> +++ b/sys/kern/subr_vmem.c
> @@ -624,14 +624,14 @@ qc_drain(vmem_t *vm)
> uma_zone_reclaim(vm->vm_qcache[i].qc_cache, UMA_RECLAIM_DRAIN);
> }
>=20
> -#ifndef UMA_MD_SMALL_ALLOC
> +#ifndef UMA_USE_DMAP
>=20
> static struct mtx_padalign __exclusive_cache_line vmem_bt_lock;
>=20
> /*
>  * vmem_bt_alloc:  Allocate a new page of boundary tags.
>  *
> - * On architectures with uma_small_alloc there is no recursion; no =
address
> + * On architectures with UMA_USE_DMAP there is no recursion; no =
address
>  * space need be allocated to allocate boundary tags.  For the others, =
we
>  * must handle recursion.  Boundary tags are necessary to allocate new
>  * boundary tags.
> @@ -707,7 +707,7 @@ vmem_startup(void)
> vmem_bt_zone =3D uma_zcreate("vmem btag",
>    sizeof(struct vmem_btag), NULL, NULL, NULL, NULL,
>    UMA_ALIGN_PTR, UMA_ZONE_VM);
> -#ifndef UMA_MD_SMALL_ALLOC
> +#ifndef UMA_USE_DMAP
> mtx_init(&vmem_bt_lock, "btag lock", NULL, MTX_DEF);
> uma_prealloc(vmem_bt_zone, BT_MAXALLOC);
> /*
> diff --git a/sys/powerpc/include/vmparam.h =
b/sys/powerpc/include/vmparam.h
> index 89982a618bc7..250da8298610 100644
> --- a/sys/powerpc/include/vmparam.h
> +++ b/sys/powerpc/include/vmparam.h
> @@ -111,6 +111,8 @@
>=20
> #define KERNBASE 0x00100100 /* start of kernel virtual */
>=20
> +#define UMA_MD_SMALL_ALLOC
> +
> #ifdef AIM
> #ifndef __powerpc64__
> #define VM_MIN_KERNEL_ADDRESS ((vm_offset_t)KERNEL_SR << ADDR_SR_SHFT)
> @@ -122,13 +124,13 @@
>  * Use the direct-mapped BAT registers for UMA small allocs. This
>  * takes pressure off the small amount of available KVA.
>  */
> -#define UMA_MD_SMALL_ALLOC
> +#define UMA_USE_DMAP
>=20
> #else /* Book-E */
>=20
> /* Use the direct map for UMA small allocs on powerpc64. */
> #ifdef __powerpc64__
> -#define UMA_MD_SMALL_ALLOC
> +#define UMA_USE_DMAP
> #else
> #define VM_MIN_KERNEL_ADDRESS 0xc0000000
> #define VM_MAX_KERNEL_ADDRESS 0xffffefff
> diff --git a/sys/riscv/include/vmparam.h b/sys/riscv/include/vmparam.h
> index d2014654b691..5711bc8c347e 100644
> --- a/sys/riscv/include/vmparam.h
> +++ b/sys/riscv/include/vmparam.h
> @@ -234,7 +234,7 @@
> #define VM_INITIAL_PAGEIN 16
> #endif
>=20
> -#define UMA_MD_SMALL_ALLOC
> +#define UMA_USE_DMAP
>=20
> #ifndef LOCORE
> extern vm_paddr_t dmap_phys_base;
> diff --git a/sys/riscv/riscv/uma_machdep.c =
b/sys/riscv/riscv/uma_machdep.c
> deleted file mode 100644
> index 54e0d25800f6..000000000000
> --- a/sys/riscv/riscv/uma_machdep.c
> +++ /dev/null
> @@ -1,68 +0,0 @@
> -/*-
> - * Copyright (c) 2003 Alan L. Cox <alc@cs.rice.edu>
> - * All rights reserved.
> - *
> - * Redistribution and use in source and binary forms, with or without
> - * modification, are permitted provided that the following conditions
> - * are met:
> - * 1. Redistributions of source code must retain the above copyright
> - *    notice, this list of conditions and the following disclaimer.
> - * 2. Redistributions in binary form must reproduce the above =
copyright
> - *    notice, this list of conditions and the following disclaimer in =
the
> - *    documentation and/or other materials provided with the =
distribution.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' =
AND
> - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, =
THE
> - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR =
PURPOSE
> - * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE =
LIABLE
> - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR =
CONSEQUENTIAL
> - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE =
GOODS
> - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS =
INTERRUPTION)
> - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN =
CONTRACT, STRICT
> - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN =
ANY WAY
> - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE =
POSSIBILITY OF
> - * SUCH DAMAGE.
> - */
> -
> -#include <sys/param.h>
> -#include <sys/malloc.h>
> -#include <vm/vm.h>
> -#include <vm/vm_param.h>
> -#include <vm/vm_page.h>
> -#include <vm/vm_phys.h>
> -#include <vm/vm_dumpset.h>
> -#include <vm/uma.h>
> -#include <vm/uma_int.h>
> -
> -void *
> -uma_small_alloc(uma_zone_t zone, vm_size_t bytes, int domain, =
u_int8_t *flags,
> -    int wait)
> -{
> - vm_page_t m;
> - vm_paddr_t pa;
> - void *va;
> -
> - *flags =3D UMA_SLAB_PRIV;
> - m =3D vm_page_alloc_noobj_domain(domain, malloc2vm_flags(wait) |
> -    VM_ALLOC_WIRED);
> - if (m =3D=3D NULL)
> - return (NULL);
> - pa =3D m->phys_addr;
> - if ((wait & M_NODUMP) =3D=3D 0)
> - dump_add_page(pa);
> - va =3D (void *)PHYS_TO_DMAP(pa);
> - return (va);
> -}
> -
> -void
> -uma_small_free(void *mem, vm_size_t size, u_int8_t flags)
> -{
> - vm_page_t m;
> - vm_paddr_t pa;
> -
> - pa =3D DMAP_TO_PHYS((vm_offset_t)mem);
> - dump_drop_page(pa);
> - m =3D PHYS_TO_VM_PAGE(pa);
> - vm_page_unwire_noq(m);
> - vm_page_free(m);
> -}
> diff --git a/sys/vm/uma_core.c b/sys/vm/uma_core.c
> index d185f12448ee..f9b6e18899c6 100644
> --- a/sys/vm/uma_core.c
> +++ b/sys/vm/uma_core.c
> @@ -2079,6 +2079,28 @@ contig_alloc(uma_zone_t zone, vm_size_t bytes, =
int domain, uint8_t *pflag,
>    bytes, wait, 0, ~(vm_paddr_t)0, 1, 0, VM_MEMATTR_DEFAULT));
> }
>=20
> +#if defined(UMA_USE_DMAP) && !defined(UMA_MD_SMALL_ALLOC)
> +void *
> +uma_small_alloc(uma_zone_t zone, vm_size_t bytes, int domain, uint8_t =
*flags,
> +    int wait)
> +{
> + vm_page_t m;
> + vm_paddr_t pa;
> + void *va;
> +
> + *flags =3D UMA_SLAB_PRIV;
> + m =3D vm_page_alloc_noobj_domain(domain,
> +    malloc2vm_flags(wait) | VM_ALLOC_WIRED);
> + if (m =3D=3D NULL)
> + return (NULL);
> + pa =3D m->phys_addr;
> + if ((wait & M_NODUMP) =3D=3D 0)
> + dump_add_page(pa);
> + va =3D (void *)PHYS_TO_DMAP(pa);
> + return (va);
> +}
> +#endif
> +
> /*
>  * Frees a number of pages to the system
>  *
> @@ -2141,6 +2163,21 @@ pcpu_page_free(void *mem, vm_size_t size, =
uint8_t flags)
> kva_free(sva, size);
> }
>=20
> +#if defined(UMA_USE_DMAP) && !defined(UMA_MD_SMALL_ALLOC)
> +void
> +uma_small_free(void *mem, vm_size_t size, uint8_t flags)
> +{
> + vm_page_t m;
> + vm_paddr_t pa;
> +
> + pa =3D DMAP_TO_PHYS((vm_offset_t)mem);
> + dump_drop_page(pa);
> + m =3D PHYS_TO_VM_PAGE(pa);
> + vm_page_unwire_noq(m);
> + vm_page_free(m);
> +}
> +#endif
> +
> /*
>  * Zero fill initializer
>  *
> @@ -3154,7 +3191,7 @@ uma_startup1(vm_offset_t virtual_avail)
> smr_init();
> }
>=20
> -#ifndef UMA_MD_SMALL_ALLOC
> +#ifndef UMA_USE_DMAP
> extern void vm_radix_reserve_kva(void);
> #endif
>=20
> @@ -3174,7 +3211,7 @@ uma_startup2(void)
> vm_map_unlock(kernel_map);
> }
>=20
> -#ifndef UMA_MD_SMALL_ALLOC
> +#ifndef UMA_USE_DMAP
> /* Set up radix zone to use noobj_alloc. */
> vm_radix_reserve_kva();
> #endif
> @@ -5171,7 +5208,7 @@ uma_zone_reserve_kva(uma_zone_t zone, int count)
>=20
> pages =3D howmany(count, keg->uk_ipers) * keg->uk_ppera;
>=20
> -#ifdef UMA_MD_SMALL_ALLOC
> +#ifdef UMA_USE_DMAP
> if (keg->uk_ppera > 1) {
> #else
> if (1) {
> diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c
> index 3111dda6e99d..3c7afcb6642f 100644
> --- a/sys/vm/vm_map.c
> +++ b/sys/vm/vm_map.c
> @@ -172,7 +172,7 @@ static void vm_map_wire_entry_failure(vm_map_t =
map, vm_map_entry_t entry,
> start =3D end; \
> }
>=20
> -#ifndef UMA_MD_SMALL_ALLOC
> +#ifndef UMA_USE_DMAP
>=20
> /*
>  * Allocate a new slab for kernel map entries.  The kernel map may be =
locked or
> @@ -264,7 +264,7 @@ vm_map_startup(void)
> kmapentzone =3D uma_zcreate("KMAP ENTRY", sizeof(struct vm_map_entry),
>    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR,
>    UMA_ZONE_VM | UMA_ZONE_NOBUCKET);
> -#ifndef UMA_MD_SMALL_ALLOC
> +#ifndef UMA_USE_DMAP
> /* Reserve an extra map entry for use when replenishing the reserve. =
*/
> uma_zone_reserve(kmapentzone, KMAPENT_RESERVE + 1);
> uma_prealloc(kmapentzone, KMAPENT_RESERVE + 1);
> @@ -660,7 +660,7 @@ _vm_map_unlock(vm_map_t map, const char *file, int =
line)
>=20
> VM_MAP_UNLOCK_CONSISTENT(map);
> if (map->system_map) {
> -#ifndef UMA_MD_SMALL_ALLOC
> +#ifndef UMA_USE_DMAP
> if (map =3D=3D kernel_map && (map->flags & MAP_REPLENISH) !=3D 0) {
> uma_prealloc(kmapentzone, 1);
> map->flags &=3D ~MAP_REPLENISH;
> @@ -937,7 +937,7 @@ vm_map_entry_create(vm_map_t map)
> {
> vm_map_entry_t new_entry;
>=20
> -#ifndef UMA_MD_SMALL_ALLOC
> +#ifndef UMA_USE_DMAP
> if (map =3D=3D kernel_map) {
> VM_MAP_ASSERT_LOCKED(map);
>=20
> diff --git a/sys/vm/vm_radix.c b/sys/vm/vm_radix.c
> index cfc5a82eacc8..13f9d36194ab 100644
> --- a/sys/vm/vm_radix.c
> +++ b/sys/vm/vm_radix.c
> @@ -82,7 +82,7 @@ vm_radix_node_free(struct pctrie *ptree, void *node)
> uma_zfree_smr(vm_radix_node_zone, node);
> }
>=20
> -#ifndef UMA_MD_SMALL_ALLOC
> +#ifndef UMA_USE_DMAP
> void vm_radix_reserve_kva(void);
> /*
>  * Reserve the KVA necessary to satisfy the node allocation.


--Apple-Mail=_576BEDC6-D888-4C3A-82B9-E9B6340CFA63
Content-Disposition: attachment;
	filename=smime.p7s
Content-Type: application/pkcs7-signature;
	name=smime.p7s
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCEfMw
ggUSMIID+qADAgECAgkA4wvV+K8l2YEwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYTAkRFMSsw
KQYDVQQKDCJULVN5c3RlbXMgRW50ZXJwcmlzZSBTZXJ2aWNlcyBHbWJIMR8wHQYDVQQLDBZULVN5
c3RlbXMgVHJ1c3QgQ2VudGVyMSUwIwYDVQQDDBxULVRlbGVTZWMgR2xvYmFsUm9vdCBDbGFzcyAy
MB4XDTE2MDIyMjEzMzgyMloXDTMxMDIyMjIzNTk1OVowgZUxCzAJBgNVBAYTAkRFMUUwQwYDVQQK
EzxWZXJlaW4genVyIEZvZXJkZXJ1bmcgZWluZXMgRGV1dHNjaGVuIEZvcnNjaHVuZ3NuZXR6ZXMg
ZS4gVi4xEDAOBgNVBAsTB0RGTi1QS0kxLTArBgNVBAMTJERGTi1WZXJlaW4gQ2VydGlmaWNhdGlv
biBBdXRob3JpdHkgMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMtg1/9moUHN0vqH
l4pzq5lN6mc5WqFggEcVToyVsuXPztNXS43O+FZsFVV2B+pG/cgDRWM+cNSrVICxI5y+NyipCf8F
XRgPxJiZN7Mg9mZ4F4fCnQ7MSjLnFp2uDo0peQcAIFTcFV9Kltd4tjTTwXS1nem/wHdN6r1ZB+Ba
L2w8pQDcNb1lDY9/Mm3yWmpLYgHurDg0WUU2SQXaeMpqbVvAgWsRzNI8qIv4cRrKO+KA3Ra0Z3qL
NupOkSk9s1FcragMvp0049ENF4N1xDkesJQLEvHVaY4l9Lg9K7/AjsMeO6W/VRCrKq4Xl14zzsjz
9AkH4wKGMUZrAcUQDBHHWekCAwEAAaOCAXQwggFwMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
k+PYMiba1fFKpZFK4OpL4qIMz+EwHwYDVR0jBBgwFoAUv1kgNgB5oKAia4zV8mHSuCzLgkowEgYD
VR0TAQH/BAgwBgEB/wIBAjAzBgNVHSAELDAqMA8GDSsGAQQBga0hgiwBAQQwDQYLKwYBBAGBrSGC
LB4wCAYGZ4EMAQICMEwGA1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kwMzM2LnRlbGVzZWMuZGUv
cmwvVGVsZVNlY19HbG9iYWxSb290X0NsYXNzXzIuY3JsMIGGBggrBgEFBQcBAQR6MHgwLAYIKwYB
BQUHMAGGIGh0dHA6Ly9vY3NwMDMzNi50ZWxlc2VjLmRlL29jc3ByMEgGCCsGAQUFBzAChjxodHRw
Oi8vcGtpMDMzNi50ZWxlc2VjLmRlL2NydC9UZWxlU2VjX0dsb2JhbFJvb3RfQ2xhc3NfMi5jZXIw
DQYJKoZIhvcNAQELBQADggEBAIcL/z4Cm2XIVi3WO5qYi3FP2ropqiH5Ri71sqQPrhE4eTizDnS6
dl2e6BiClmLbTDPo3flq3zK9LExHYFV/53RrtCyD2HlrtrdNUAtmB7Xts5et6u5/MOaZ/SLick0+
hFvu+c+Z6n/XUjkurJgARH5pO7917tALOxrN5fcPImxHhPalR6D90Bo0fa3SPXez7vTXTf/D6OWS
T1k+kEcQSrCFWMBvf/iu7QhCnh7U3xQuTY+8npTD5+32GPg8SecmqKc22CzeIs2LgtjZeOJVEqM7
h0S2EQvVDFKvaYwPBt/QolOLV5h7z/0HJPT8vcP9SpIClxvyt7bPZYoaorVyGTkwggWsMIIElKAD
AgECAgcbY7rQHiw9MA0GCSqGSIb3DQEBCwUAMIGVMQswCQYDVQQGEwJERTFFMEMGA1UEChM8VmVy
ZWluIHp1ciBGb2VyZGVydW5nIGVpbmVzIERldXRzY2hlbiBGb3JzY2h1bmdzbmV0emVzIGUuIFYu
MRAwDgYDVQQLEwdERk4tUEtJMS0wKwYDVQQDEyRERk4tVmVyZWluIENlcnRpZmljYXRpb24gQXV0
aG9yaXR5IDIwHhcNMTYwNTI0MTEzODQwWhcNMzEwMjIyMjM1OTU5WjCBjTELMAkGA1UEBhMCREUx
RTBDBgNVBAoMPFZlcmVpbiB6dXIgRm9lcmRlcnVuZyBlaW5lcyBEZXV0c2NoZW4gRm9yc2NodW5n
c25ldHplcyBlLiBWLjEQMA4GA1UECwwHREZOLVBLSTElMCMGA1UEAwwcREZOLVZlcmVpbiBHbG9i
YWwgSXNzdWluZyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ07eRxH3h+Gy8Zp
1xCeOdfZojDbchwFfylfS2jxrRnWTOFrG7ELf6Gr4HuLi9gtzm6IOhDuV+UefwRRNuu6cG1joL6W
LkDh0YNMZj0cZGnlm6Stcq5oOVGHecwX064vXWNxSzl660Knl5BpBb+Q/6RAcL0D57+eGIgfn5mI
TQ5HjUhfZZkQ0tkqSe3BuS0dnxLLFdM/fx5ULzquk1enfnjK1UriGuXtQX1TX8izKvWKMKztFwUk
P7agCwf9TRqaA1KgNpzeJIdl5Of6x5ZzJBTN0OgbaJ4YWa52fvfRCng8h0uwN89Tyjo4EPPLR22M
ZD08WkVKusqAfLjz56dMTM0CAwEAAaOCAgUwggIBMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYDVR0P
AQH/BAQDAgEGMCkGA1UdIAQiMCAwDQYLKwYBBAGBrSGCLB4wDwYNKwYBBAGBrSGCLAEBBDAdBgNV
HQ4EFgQUazqYi/nyU4na4K2yMh4JH+iqO3QwHwYDVR0jBBgwFoAUk+PYMiba1fFKpZFK4OpL4qIM
z+EwgY8GA1UdHwSBhzCBhDBAoD6gPIY6aHR0cDovL2NkcDEucGNhLmRmbi5kZS9nbG9iYWwtcm9v
dC1nMi1jYS9wdWIvY3JsL2NhY3JsLmNybDBAoD6gPIY6aHR0cDovL2NkcDIucGNhLmRmbi5kZS9n
bG9iYWwtcm9vdC1nMi1jYS9wdWIvY3JsL2NhY3JsLmNybDCB3QYIKwYBBQUHAQEEgdAwgc0wMwYI
KwYBBQUHMAGGJ2h0dHA6Ly9vY3NwLnBjYS5kZm4uZGUvT0NTUC1TZXJ2ZXIvT0NTUDBKBggrBgEF
BQcwAoY+aHR0cDovL2NkcDEucGNhLmRmbi5kZS9nbG9iYWwtcm9vdC1nMi1jYS9wdWIvY2FjZXJ0
L2NhY2VydC5jcnQwSgYIKwYBBQUHMAKGPmh0dHA6Ly9jZHAyLnBjYS5kZm4uZGUvZ2xvYmFsLXJv
b3QtZzItY2EvcHViL2NhY2VydC9jYWNlcnQuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQCBeEWkTqR/
DlXwCbFqPnjMaDWpHPOVnj/z+N9rOHeJLI21rT7H8pTNoAauusyosa0zCLYkhmI2THhuUPDVbmCN
T1IxQ5dGdfBi5G5mUcFCMWdQ5UnnOR7Ln8qGSN4IFP8VSytmm6A4nwDO/afr0X9XLchMX9wQEZc+
lgQCXISoKTlslPwQkgZ7nu7YRrQbtQMMONncsKk/cQYLsgMHM8KNSGMlJTx6e1du94oFOO+4oK4v
9NsH1VuEGMGpuEvObJAaguS5Pfp38dIfMwK/U+d2+dwmJUFvL6Yb+qQTkPp8ftkLYF3sv8pBoGH7
EUkp2KgtdRXYShjqFu9VNCIaE40GMIIHKTCCBhGgAwIBAgIMJrRClNKRzetB0jc/MA0GCSqGSIb3
DQEBCwUAMIGNMQswCQYDVQQGEwJERTFFMEMGA1UECgw8VmVyZWluIHp1ciBGb2VyZGVydW5nIGVp
bmVzIERldXRzY2hlbiBGb3JzY2h1bmdzbmV0emVzIGUuIFYuMRAwDgYDVQQLDAdERk4tUEtJMSUw
IwYDVQQDDBxERk4tVmVyZWluIEdsb2JhbCBJc3N1aW5nIENBMB4XDTIyMDUzMDEzMjIxNVoXDTI1
MDUyOTEzMjIxNVowgcQxCzAJBgNVBAYTAkRFMRwwGgYDVQQIDBNOb3JkcmhlaW4tV2VzdGZhbGVu
MREwDwYDVQQHDAhNdWVuc3RlcjEUMBIGA1UECgwLRkggTXVlbnN0ZXIxMjAwBgNVBAsMKUZhY2hi
ZXJlaWNoIEVsZWt0cm90ZWNobmlrIHVuZCBJbmZvcm1hdGlrMQ8wDQYDVQQEDAZUdWV4ZW4xEDAO
BgNVBCoMB01pY2hhZWwxFzAVBgNVBAMMDk1pY2hhZWwgVHVleGVuMIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEA2QZ7Uheto325SEnX2BTxBvYnz7u/BVmzxKlogaR4K0MA8ZcfNIdQkiJU
efjL6imq21BSFsr/tXcODFZmPrvx9aIxjntCxmEFr7qFaw3e3mUIxJyj5n6BxjzZ/hyJte8LBDbj
zj+e8WPUzXmYbSxtrh9kgw8NMx3+bo3Hslic+PkKEGx9JJp2I2TEs88xD0rHC2Ljwcfk6bS9jC+/
BAuY/TsbJoq+8d64DYSLGiIYbvMMuxM2C8BlpHLIOLx2FaH+uMqdH2dLVvCacZJ9YzHvvZY8O2nQ
OBFCG1UMpX5YLHN8g/t02a+IBt+oe97JMdJ/kZsPjolI98dcRdzz0hTXZql2xvp6zlocm9iGTRcv
dCSxy+0x4CIZD1EkVX9zCPGpzdTXnrU+zvnz14Uq3Wbfl3GiVgK0Avr1enfZepruAxAy7KGIm2zi
/qY3XSkN8fvWJmYnomOjCRjaPtqS/azmnyeodsxlVhqQKbES65u/PbOXjOlhiYAvemS0IbK4iR76
3iSmkpwSNpJt6BCtFJN+w3Y8tztCP66KPPC1Fri1oj27KPaf04J66MkSjlQdpI7POS6lDyN7X2Hw
tgZKRVA94h/JvZp4ld7mTzXTEW2tdO5azPILsL9xOYjSS5VIyUFF4MoxSbfZtXWaZFsMC1fXDNNL
uRDrISotdwADuU75Fe0CAwEAAaOCAk4wggJKMD4GA1UdIAQ3MDUwDwYNKwYBBAGBrSGCLAEBBDAQ
Bg4rBgEEAYGtIYIsAQEECjAQBg4rBgEEAYGtIYIsAgEECjAJBgNVHRMEAjAAMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwHQYDVR0OBBYEFFDbROYIxDr3fvlX
tkXqx7T8lihxMB8GA1UdIwQYMBaAFGs6mIv58lOJ2uCtsjIeCR/oqjt0MCAGA1UdEQQZMBeBFXR1
ZXhlbkBmaC1tdWVuc3Rlci5kZTCBjQYDVR0fBIGFMIGCMD+gPaA7hjlodHRwOi8vY2RwMS5wY2Eu
ZGZuLmRlL2Rmbi1jYS1nbG9iYWwtZzIvcHViL2NybC9jYWNybC5jcmwwP6A9oDuGOWh0dHA6Ly9j
ZHAyLnBjYS5kZm4uZGUvZGZuLWNhLWdsb2JhbC1nMi9wdWIvY3JsL2NhY3JsLmNybDCB2wYIKwYB
BQUHAQEEgc4wgcswMwYIKwYBBQUHMAGGJ2h0dHA6Ly9vY3NwLnBjYS5kZm4uZGUvT0NTUC1TZXJ2
ZXIvT0NTUDBJBggrBgEFBQcwAoY9aHR0cDovL2NkcDEucGNhLmRmbi5kZS9kZm4tY2EtZ2xvYmFs
LWcyL3B1Yi9jYWNlcnQvY2FjZXJ0LmNydDBJBggrBgEFBQcwAoY9aHR0cDovL2NkcDIucGNhLmRm
bi5kZS9kZm4tY2EtZ2xvYmFsLWcyL3B1Yi9jYWNlcnQvY2FjZXJ0LmNydDANBgkqhkiG9w0BAQsF
AAOCAQEALubmL854icQMxKxOxQK+deXTjC6CLYnUDwB8MvnDC+BSeh3tUHT37fSgsK1ShNUSNJX0
YF0VYLfZ6+lPyaFYLArVrAIHqvDiVURaulB9NA+3gck/VSuRz4ILYBy61XbcGQQ8Wx+g6TcqsjsF
oOhqEBycj5QuITj+EFmX8nvfo0dJtVa2OPDk1N9beLfQBcLhspJ/nv0pKhpNWv5YETG26YqYfsC7
FA/ZNGvRcoOPkjkDhBTtG+qq9DDD75XtGEBZhYXbnG15tn4/UV07B+UyK4/cqQSA+My5FML3YsQw
EYrV9klVD/mLMOdZV5+95xt7O8IdYeHrBapVlhANH5bFazGCBJ0wggSZAgEBMIGeMIGNMQswCQYD
VQQGEwJERTFFMEMGA1UECgw8VmVyZWluIHp1ciBGb2VyZGVydW5nIGVpbmVzIERldXRzY2hlbiBG
b3JzY2h1bmdzbmV0emVzIGUuIFYuMRAwDgYDVQQLDAdERk4tUEtJMSUwIwYDVQQDDBxERk4tVmVy
ZWluIEdsb2JhbCBJc3N1aW5nIENBAgwmtEKU0pHN60HSNz8wDQYJYIZIAWUDBAIBBQCgggHPMBgG
CSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI0MDUyNTE4MjcyOVowLwYJ
KoZIhvcNAQkEMSIEIILojSQPANYry+cIzINsG7NUXj0vtI4ouU7w+NklPELfMIGvBgkrBgEEAYI3
EAQxgaEwgZ4wgY0xCzAJBgNVBAYTAkRFMUUwQwYDVQQKDDxWZXJlaW4genVyIEZvZXJkZXJ1bmcg
ZWluZXMgRGV1dHNjaGVuIEZvcnNjaHVuZ3NuZXR6ZXMgZS4gVi4xEDAOBgNVBAsMB0RGTi1QS0kx
JTAjBgNVBAMMHERGTi1WZXJlaW4gR2xvYmFsIElzc3VpbmcgQ0ECDCa0QpTSkc3rQdI3PzCBsQYL
KoZIhvcNAQkQAgsxgaGggZ4wgY0xCzAJBgNVBAYTAkRFMUUwQwYDVQQKDDxWZXJlaW4genVyIEZv
ZXJkZXJ1bmcgZWluZXMgRGV1dHNjaGVuIEZvcnNjaHVuZ3NuZXR6ZXMgZS4gVi4xEDAOBgNVBAsM
B0RGTi1QS0kxJTAjBgNVBAMMHERGTi1WZXJlaW4gR2xvYmFsIElzc3VpbmcgQ0ECDCa0QpTSkc3r
QdI3PzANBgkqhkiG9w0BAQsFAASCAgCNAoZrQUSWvokvjyCmnvEMcZo9uT2WanD5FVHosrTOpPIn
ROotVrPSM+XoqX0UnEso86Uh4qe62xEjlclscEl9dZcR82AocPuKywtXr9ZlxaFKNF8A2yXd0QVr
ALiCYM5lXag8bNmyGTvqDNMjpwqNMqEM+NZ/DhH/NkoLyfRTv7MWxjlPplh0QmPK/74fD2R8b4H3
+eob5rHRAt2SGDb3R44e4gmC/4HHg1wsqEdx84d5El9Y4fpDBP4jnzXieQYEGWUQ0OVjN9huSHFs
EP+3K4G3eow7FPeTLxOLB7gG1NW0v62/FUrJL6JAY1XaVK92aolXLjjm4/cnAIf0vOZmCOFX85k/
vQt0x4UWCWcm369J6AESJharDBubJj5kxvobNEwi2P2b6VKgOitCVL1ZpvAMrdOYa6FmLzRfZMO0
9wNE00t98IL21PKUkXiI4cbLKETpdLSat6UFS/VlmWhuDyfc9lbRzbKa0S6c7/SCcyQQA5TEoJYe
xmxTISrWhIPdpjG2Tk/PTwk6NcZEQ7RSsLEU/K3s25FoBKGOgdkN5Y95v+4Taldut5xCvVkUBnNX
KI7fXbH3vmd+tl3tPXBLdpn17rgDog08WD1hntWOUfWDCG1PyKXrtsMpMRb/KUL4Z+YlsiuAJhFP
gQbjanrHPXWdmIcVEzBfCNdLtunfhwAAAAAAAA==
--Apple-Mail=_576BEDC6-D888-4C3A-82B9-E9B6340CFA63--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CEE600C9-BA44-4852-8537-EB70F299AA67>