How do you comprehend the saying that the kernel's memory is not pageable whereas get_free_page use a page-oriented technique?

孙世龙 sunshilong sunshilong369 at gmail.com
Sat Jun 20 02:18:21 EDT 2020


As per the documentation( https://www.linuxjournal.com/article/6930 ),
which says[emphasis mine]:
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.**

As per the documentation(https://www.oreilly.com
<https://www.oreilly.com/library/view/linux-device-drivers/0596005903/ch08.html>
/library/view/linux-device-drivers/0596005903/ch08.html
<https://www.oreilly.com/library/view/linux-device-drivers/0596005903/ch08.html>
),
which says:
get_free_page and Friends
If a module needs to allocate big chunks of memory, it is usually
better to use a page-oriented technique.

I am confused after I have seen these two sayings.
I think they have the opposite meaning:
the former one clams that the kernel's memory is not pageable
whereas the latter one implicitly states there is a page-oriented
technique  used by the kernel(i.e. function  get_free_page
depends a page-oriented technique).

I have thought and thought about it for a long time, but I still don't
comprehend them.I would be grateful to have some help with this
question.

Thank you for your attention to this matter.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20200620/df0b7c8f/attachment.html>


More information about the Kernelnewbies mailing list