> Date: Sat, 24 Apr 2021 12:02:22 +0200
> From: Martin Pieuchot <[email protected]>
>
> Diff below merge the two allocators into one and remove unused
> alignment/boundary arguments. This is a small cleanup that helps
> me keep track of the remaining allocators.
>
> ok?
Not sure. Is uvm_km_kmemalloc() going to be replaced in the future?
At the very least, you need to adjust the man page.
> Index: arch/arm/arm/pmap7.c
> ===================================================================
> RCS file: /cvs/src/sys/arch/arm/arm/pmap7.c,v
> retrieving revision 1.61
> diff -u -p -r1.61 pmap7.c
> --- arch/arm/arm/pmap7.c 25 Mar 2021 04:12:00 -0000 1.61
> +++ arch/arm/arm/pmap7.c 24 Apr 2021 09:53:11 -0000
> @@ -2435,8 +2435,9 @@ pmap_bootstrap_pv_page_alloc(struct pool
> return (rv);
> }
>
> - new_page = uvm_km_kmemalloc(kernel_map, NULL, PAGE_SIZE,
> - (flags & PR_WAITOK) ? 0 : UVM_KMF_NOWAIT);
> + new_page = uvm_km_kmemalloc(kernel_map, NULL, PAGE_SIZE, 0,
> + (flags & PR_WAITOK) ? 0 : UVM_KMF_NOWAIT, no_constraint.ucr_low,
> + no_constraint.ucr_high, 0);
>
> last_bootstrap_page = new_page;
> return ((void *)new_page);
> Index: dev/pci/envy.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/envy.c,v
> retrieving revision 1.81
> diff -u -p -r1.81 envy.c
> --- dev/pci/envy.c 5 Jan 2020 01:07:58 -0000 1.81
> +++ dev/pci/envy.c 24 Apr 2021 09:53:12 -0000
> @@ -1834,9 +1834,9 @@ envy_allocm(void *self, int dir, size_t
> #define ENVY_ALIGN 4
> #define ENVY_MAXADDR ((1 << 28) - 1)
>
> - buf->addr = (caddr_t)uvm_km_kmemalloc_pla(kernel_map,
> + buf->addr = (caddr_t)uvm_km_kmemalloc(kernel_map,
> uvm.kernel_object, buf->size, 0, UVM_KMF_NOWAIT, 0,
> - (paddr_t)ENVY_MAXADDR, 0, 0, 1);
> + (paddr_t)ENVY_MAXADDR, 1);
> if (buf->addr == NULL) {
> DPRINTF("%s: unable to alloc dma segment\n", DEVNAME(sc));
> goto err_ret;
> Index: dev/pci/if_bce.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/if_bce.c,v
> retrieving revision 1.53
> diff -u -p -r1.53 if_bce.c
> --- dev/pci/if_bce.c 10 Jul 2020 13:22:20 -0000 1.53
> +++ dev/pci/if_bce.c 24 Apr 2021 09:53:12 -0000
> @@ -253,9 +253,9 @@ bce_attach(struct device *parent, struct
> bce_reset(sc);
>
> /* Create the data DMA region and maps. */
> - if ((sc->bce_data = (caddr_t)uvm_km_kmemalloc_pla(kernel_map,
> + if ((sc->bce_data = (caddr_t)uvm_km_kmemalloc(kernel_map,
> uvm.kernel_object, (BCE_NTXDESC + BCE_NRXDESC) * MCLBYTES, 0,
> - UVM_KMF_NOWAIT, 0, (paddr_t)(0x40000000 - 1), 0, 0, 1)) == NULL) {
> + UVM_KMF_NOWAIT, 0, (paddr_t)(0x40000000 - 1), 1)) == NULL) {
> printf(": unable to alloc space for ring");
> return;
> }
> Index: kern/kern_malloc.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/kern_malloc.c,v
> retrieving revision 1.145
> diff -u -p -r1.145 kern_malloc.c
> --- kern/kern_malloc.c 21 Apr 2021 10:02:05 -0000 1.145
> +++ kern/kern_malloc.c 24 Apr 2021 09:53:12 -0000
> @@ -228,12 +228,12 @@ malloc(size_t size, int type, int flags)
> mtx_leave(&malloc_mtx);
> npg = atop(round_page(allocsize));
> s = splvm();
> - va = (caddr_t)uvm_km_kmemalloc_pla(kmem_map, NULL,
> + va = (caddr_t)uvm_km_kmemalloc(kmem_map, NULL,
> (vsize_t)ptoa(npg), 0,
> ((flags & M_NOWAIT) ? UVM_KMF_NOWAIT : 0) |
> ((flags & M_CANFAIL) ? UVM_KMF_CANFAIL : 0),
> no_constraint.ucr_low, no_constraint.ucr_high,
> - 0, 0, 0);
> + 0);
> splx(s);
> if (va == NULL) {
> /*
> Index: uvm/uvm_extern.h
> ===================================================================
> RCS file: /cvs/src/sys/uvm/uvm_extern.h,v
> retrieving revision 1.157
> diff -u -p -r1.157 uvm_extern.h
> --- uvm/uvm_extern.h 12 Mar 2021 14:15:49 -0000 1.157
> +++ uvm/uvm_extern.h 24 Apr 2021 09:53:12 -0000
> @@ -297,11 +297,9 @@ int uvm_io(vm_map_t, struct uio *,
> int
> vaddr_t uvm_km_alloc1(vm_map_t, vsize_t, vsize_t,
> boolean_t);
> void uvm_km_free(vm_map_t, vaddr_t, vsize_t);
> void uvm_km_free_wakeup(vm_map_t, vaddr_t, vsize_t);
> -vaddr_t uvm_km_kmemalloc_pla(struct vm_map *,
> +vaddr_t uvm_km_kmemalloc(struct vm_map *,
> struct uvm_object *, vsize_t, vsize_t, int,
> - paddr_t, paddr_t, paddr_t, paddr_t, int);
> -#define uvm_km_kmemalloc(map, obj, sz, flags)
> \
> - uvm_km_kmemalloc_pla(map, obj, sz, 0, flags, 0, (paddr_t)-1, 0, 0, 0)
> + paddr_t, paddr_t, int);
> vaddr_t uvm_km_valloc(vm_map_t, vsize_t);
> vaddr_t uvm_km_valloc_try(vm_map_t, vsize_t);
> vaddr_t uvm_km_valloc_wait(vm_map_t, vsize_t);
> Index: uvm/uvm_glue.c
> ===================================================================
> RCS file: /cvs/src/sys/uvm/uvm_glue.c,v
> retrieving revision 1.80
> diff -u -p -r1.80 uvm_glue.c
> --- uvm/uvm_glue.c 26 Mar 2021 13:40:05 -0000 1.80
> +++ uvm/uvm_glue.c 24 Apr 2021 09:53:12 -0000
> @@ -266,10 +266,10 @@ uvm_uarea_alloc(void)
> {
> vaddr_t uaddr;
>
> - uaddr = uvm_km_kmemalloc_pla(kernel_map, uvm.kernel_object, USPACE,
> + uaddr = uvm_km_kmemalloc(kernel_map, uvm.kernel_object, USPACE,
> USPACE_ALIGN, UVM_KMF_ZERO,
> no_constraint.ucr_low, no_constraint.ucr_high,
> - 0, 0, USPACE/PAGE_SIZE);
> + USPACE/PAGE_SIZE);
>
> return (uaddr);
> }
> Index: uvm/uvm_km.c
> ===================================================================
> RCS file: /cvs/src/sys/uvm/uvm_km.c,v
> retrieving revision 1.143
> diff -u -p -r1.143 uvm_km.c
> --- uvm/uvm_km.c 26 Mar 2021 13:40:05 -0000 1.143
> +++ uvm/uvm_km.c 24 Apr 2021 09:53:12 -0000
> @@ -313,14 +313,13 @@ uvm_km_pgremove_intrsafe(vaddr_t start,
> * => we return KVA of memory allocated
> * => flags: NOWAIT, VALLOC - just allocate VA, TRYLOCK - fail if we can't
> * lock the map
> - * => low, high, alignment, boundary, nsegs are the corresponding parameters
> + * => low, high, nsegs are the corresponding parameters
> * to uvm_pglistalloc
> * => flags: ZERO - correspond to uvm_pglistalloc flags
> */
> vaddr_t
> -uvm_km_kmemalloc_pla(struct vm_map *map, struct uvm_object *obj, vsize_t
> size,
> - vsize_t valign, int flags, paddr_t low, paddr_t high, paddr_t alignment,
> - paddr_t boundary, int nsegs)
> +uvm_km_kmemalloc(struct vm_map *map, struct uvm_object *obj, vsize_t size,
> + vsize_t valign, int flags, paddr_t low, paddr_t high, int nsegs)
> {
> vaddr_t kva, loopva;
> voff_t offset;
> @@ -372,8 +371,7 @@ uvm_km_kmemalloc_pla(struct vm_map *map,
> pla_flags |= UVM_PLA_WAITOK;
> if (flags & UVM_KMF_ZERO)
> pla_flags |= UVM_PLA_ZERO;
> - if (uvm_pglistalloc(size, low, high, alignment, boundary, &pgl, nsegs,
> - pla_flags) != 0) {
> + if (uvm_pglistalloc(size, low, high, 0, 0, &pgl, nsegs, pla_flags) !=
> 0) {
> /* Failed. */
> uvm_unmap(map, kva, kva + size);
> return (0);
>
>