This article says that Linux uses three-level page tables.However, in the book Professional Linux Kernel Architecture, in chapter 3.3.1, it says that Linux uses five-level page tables.Also, this article says ' The merging of five-level page tables (outside of the merge window) for 4.11-rc2, instead, barely raised an eyebrow.'My question is how many page table levels does Kernel actually use? If it changed in the history, which version?
How many page table levels does Linux kernel use? 4 or 5?
linux kernel;virtual memory
The thing is, this is dependent on both kernel version, and processor architecture (because you have to have support in hardware for a given number of page tables).  On 32-bit x86 without PAE, it's 3 levels.  On 32-bit x86 with PAE I believe it's 4 levels.  On 64-bit x86, it's usually 4 levels, but support for 5 got merged recently (however, only really high-end Intel server processors support this, and only very recent ones).  On 64-bit SPARC, I think it's been 5 levels since the start, and I think 64-bit s390 and PPC also use 5 levels, but I'm not certain.