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.