Hello Vijay, On Thu, Jun 21, 2012 at 5:57 PM, Vijay Chauhan <kernel.vijay@xxxxxxxxx> wrote: > Hello, > > I am newbie. > It has been said "kernel memory is not pageable" > What does it mean? There is no concept of kernel virtual address? You might have heard about 3G/1G split. This 1GB is the virtual address of the kernel. And whenever kernel try to access any address in this range(for ARM architecture it is 0xC0000000 - 0xFFFFFFFF), there should not be any page fault. That means MMU should be able to convert your virtual address to physical. This 1GB contains your IO address, RAM address. Paging is a mechanism OS uses to pull the data(in pagesizes) to and fro between system RAM and secondary memory. Kernel memory is not pageable. This means memory allocated for the kernel will not be pagged out. If you try to access any memory in kernel with out creating page tables(this can be done by ioremap) you will end up in OOPS. The main reason of kernel not being swapable or pageable is as follows. Think this way. What will happen if we have paged out that portion of the logic which decides what to do when a page fault occurs? Who will take care of the page fault then? But if a user program hit a page fault(ie accessed address is not in main memory), kernel will load the page from secondary memory if it is a valid address. And if the address accesses is illegal, kernel kill the user application(Segmentation fault). Thanks, Arun > > Any simple explanation will help me to udnerstand. > > Thanks, > Vijay > > _______________________________________________ > Kernelnewbies mailing list > Kernelnewbies@xxxxxxxxxxxxxxxxx > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies