Re: free_pte / Paging Unit code in Linux

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>>>>> "Dave" == Dave Jones <davej@codemonkey.org.uk> writes:
Dave> The code that follows this is interesting though..

Dave> #ifdef CONFIG_X86_PAE
Dave> #define pgd_alloc(mm)       get_pgd_slow()
Dave> #define pgd_free(pgd)       free_pgd_slow(pgd)
Dave> #else
Dave> #define pgd_alloc(mm)       get_pgd_fast()
Dave> #define pgd_free(pgd)       free_pgd_fast(pgd)
Dave> #endif

Dave>  Anyone want to elaborate why PAE means we frob pgd's the slow way?

See ``get_pgd_slow'', PAE version. With PAE enabled, the PPro+ CPUs
use three-level page tables, with up to four page directory tables.
The function ``get_pgd_slow'' seems to allocate the upper two levels
-- the ``pgd_t'' is actually not a page but an array of up to four
pointers to the page directory tables. And the quicklist holds whole
pages ...

Regards,
-velco


--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
IRC Channel:   irc.openprojects.net / #kernelnewbies
Web Page:      http://www.kernelnewbies.org/



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux