<div dir="ltr">As per the documentation(

<a href="https://www.linuxjournal.com/article/6930">https://www.linuxjournal.com/article/6930</a> ),<div>which says[emphasis mine]:</div><div>Unfortunately for kernel developers, allocating memory in the kernel <br>is not as simple as allocating memory in userspace. A number of <br>factors contribute to the complication, among them:<br>The kernel is limited to about 1GB of virtual and physical memory.<br>**The kernel's memory is not pageable.**<br></div><div><br></div><div>As per the documentation(<a href="https://www.oreilly.com/library/view/linux-device-drivers/0596005903/ch08.html">https://www.oreilly.com</a></div><div><a href="https://www.oreilly.com/library/view/linux-device-drivers/0596005903/ch08.html">/library/view/linux-device-drivers/0596005903/ch08.html</a>),</div><div>which says:</div><div>get_free_page and Friends<br></div><div>If a module needs to allocate big chunks of memory, it is usually </div><div>better to use a page-oriented technique. <br></div><div><br></div><div>I am confused after I have seen these two sayings.</div><div>I think they have the opposite meaning:</div><div>the former one clams that the kernel's memory is not pageable

</div><div>whereas the latter one implicitly states there is 

a page-oriented </div><div>technique  used by the kernel(i.e. function 

get_free_page </div><div>depends a page-oriented technique).</div><div><br></div><div>I have thought and thought about it for a long time, but I still don't</div><div>comprehend them.I would be grateful to have some help with this</div><div>question.</div><div><br></div><div>Thank you for your attention to this matter.</div></div>