Setting the DDI_UMEM_PAGEABLE
flag in ddi_umem_alloc() will result in an allocation
of pageable memory. Because these pages can be swapped out to secondary
memory devices, drivers should use this flag with care. This memory should
not be used for synchronization objects such as locks and condition variables.
See mutex(9F), semaphore(9F), rwlock(9F), and condvar(9F).
This memory also should not be accessed in the driver interrupt routines.
Memory allocated using ddi_umem_alloc() without
setting DDI_UMEM_PAGEABLE flag
cannot be paged. Available memory is therefore limited by the total physical
memory on the system. It is also limited by the available kernel virtual
address space, which is often the more restrictive constraint on large-memory
configurations.
Excessive use of kernel memory is likely to effect overall system
performance. Over-commitment of kernel memory may cause unpredictable consequences.
Misuse of the kernel memory allocator, such as writing past the end
of a buffer, using a buffer after freeing it, freeing a buffer twice, or
freeing an invalid pointer, will cause the system to corrupt data or panic.
|