Print this page
code review from Josh and Robert
*** 68,78 ****
.Pp
.Fn vmem_create
and
.Fn vmem_destroy
create and destroy vmem arenas. In order to differentiate between arenas used
! for adresses and arenas used for identifiers, the
.Dv VMC_IDENTIFIER
flag is passed to
.Fn vmem_create .
This prevents identifier exhaustion from being diagnosed as general memory
failure.
--- 68,78 ----
.Pp
.Fn vmem_create
and
.Fn vmem_destroy
create and destroy vmem arenas. In order to differentiate between arenas used
! for addresses and arenas used for identifiers, the
.Dv VMC_IDENTIFIER
flag is passed to
.Fn vmem_create .
This prevents identifier exhaustion from being diagnosed as general memory
failure.
*** 81,91 ****
.Em spans ,
or contiguous ranges of integers. For example, the kernel heap consists of
just one span:
.Li "[kernelheap, ekernelheap)" .
Spans can be added to an arena in two ways: explicitly, by
! .Fn vmem_add ,
or implicitly, by importing, as described in
.Sx Imported Memory
below.
.Ss Segments
Spans are subdivided into
--- 81,91 ----
.Em spans ,
or contiguous ranges of integers. For example, the kernel heap consists of
just one span:
.Li "[kernelheap, ekernelheap)" .
Spans can be added to an arena in two ways: explicitly, by
! .Fn vmem_add ;
or implicitly, by importing, as described in
.Sx Imported Memory
below.
.Ss Segments
Spans are subdivided into
*** 120,134 ****
requests) is just a subset of
.Sy heap_arena
(the kernel heap) that provides caching for the most common slab sizes. When
.Sy kmem_va_arena
runs out of virtual memory, it
! .Em imports more from the heap; we
! say that
.Sy heap_arena
is the
! .Em "vmem source" for
.Sy kmem_va_arena.
.Fn vmem_create
allows you to specify any existing vmem arena as the source for your new
arena. Topologically, since every arena is a child of at most one source, the
set of all arenas forms a collection of trees.
--- 120,135 ----
requests) is just a subset of
.Sy heap_arena
(the kernel heap) that provides caching for the most common slab sizes. When
.Sy kmem_va_arena
runs out of virtual memory, it
! .Em imports
! more from the heap; we say that
.Sy heap_arena
is the
! .Em "vmem source"
! for
.Sy kmem_va_arena.
.Fn vmem_create
allows you to specify any existing vmem arena as the source for your new
arena. Topologically, since every arena is a child of at most one source, the
set of all arenas forms a collection of trees.