On Sat, 20 Jun 2020 14:18:21 +0800, 孙世龙 sunshilong said: > Unfortunately for kernel developers, allocating memory in the kernel > is not as simple as allocating memory in userspace. A number of > factors contribute to the complication, among them: > The kernel is limited to about 1GB of virtual and physical memory. > **The kernel's memory is not pageable.** > If a module needs to allocate big chunks of memory, it is usually > better to use a page-oriented technique. Due to memory fragmentation, if a module needs (say) 2M of memory for an I/O buffer, it's more likely to be able to allocate 512 4K pages scattered through the 1GB of memory than it is to get 1 contiguous chunk of memory. The fact it's not pageable doesn't mean that pages aren't relevant as the unit of allocation.