Lines Matching full:kernel
74 Design of a General Purpose Memory Allocator for the 4.3BSD UNIX\(dg Kernel
94 The 4.3BSD UNIX kernel uses many memory allocation mechanisms,
97 that can be used by all of the kernel subsystems.
99 patterns in the UNIX kernel and a hybrid strategy that is time-efficient
112 .H 1 "Kernel Memory Allocation in 4.3BSD
114 The 4.3BSD kernel has at least ten different memory allocators.
122 Because the kernel has a limited run-time stack,
133 Demands for dynamic memory allocation in the kernel have increased
158 of writing code inside the kernel.
160 the kernel should provide a single general purpose allocator.
182 .H 1 "Criteria for a Kernel Memory Allocator
184 The design specification for a kernel memory allocator is similar to,
213 Good memory utilization in the kernel is more important than
220 Because the kernel is not paged,
221 all pages in the ``required'' pool are held by the kernel and
223 To keep the kernel utilization percentage as high as possible,
226 Because the kernel can directly manipulate its own page maps,
234 kernel than in user code,
235 because the kernel must allocate many data structure that user
237 In addition, the kernel represents the platform on which all user
243 of frequently-used kernel interfaces will feel that they
248 The kernel ends up with many different free lists of memory
267 though most of them were too slow for use in the kernel.
291 .H 1 "Considerations Unique to a Kernel Allocator
294 memory allocator for the kernel that do not apply to a user process
301 Thus, the kernel can statically allocate a set of data structures
316 Another special condition of the kernel memory allocator is that it
319 the kernel can keep an arena of kernel addresses and allocate
323 except that the kernel can explicitly control the set of pages
326 kernel exactly corresponds to the set of pages that it is really using.
331 A final special condition that applies to the kernel is that
335 the kernel can provide allocation limits.
337 no single allocator could starve the rest of the kernel of all
345 one subsystem within the kernel hangs if it is something like the
349 \*(Lb shows the memory usage of the kernel over a one day period
363 .H 1 "Implementation of the Kernel Memory Allocator
367 The kernel memory allocator that we ended up with is a hybrid
395 the utilization of memory within the kernel,
420 kernel address arena set aside for dynamic allocations.
426 and the address space is returned to the kernel address arena
449 \*(Lb shows how the kernel determines
455 The reason is that many allocations in the kernel are for blocks of
460 The allocator can be called both from the top half of the kernel,
462 and from the interrupt routines in the bottom half of the kernel
502 and freeing memory in the kernel.
503 The usual approach is to compile a kernel for profiling
521 the time spent in the kernel could be accounted to memory allocation.
526 numerous routines in the kernel that use it.
530 of the time spent in the kernel.
535 at most four percent of time in the kernel.
549 kernel tables to be dynamically allocated.