Re: Kernel & Page Tables

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

 



On 10/17/05, suresh pedamallu <suresh.iitr@xxxxxxxxx> wrote:
> Hi,
> In linux each process has seperate page table which represents 4GB of
> virtual memory. In this page table 3GB is for user space memory and
> 1GB is for kernel space memory. As all processes run on same kernel,
> the page table entries for 1GB (corresponding kernel virtual memory)
> will be same for all processes.
> The page table for the currently running process is pointed by the cpu
> register cr3 and whenever another process is scheduled in the page
> table of corresponding process is pointed by cr3.
>

AFAIK the page_tables remains same for each process as kernel has the
page_tables for all the physical RAM upto 896MB direct mapping and
above 896MB temporary mappings in VMALLOC_RESERVE virtual address
range ......  And the CR3 register is actually pointing to one of the
PGD entries which actually points to the PMD and PTE entries for that
process which is scheduled and those PGD/PMD/PTE entries are selected
after decoding the linear address to get the entries offset in
PGD/PMD/PTE tables and then make up the physical address by adding
last 12-bits (PAGE_SHIFT) of linear address into the 24bits taken from
the PTE Entry got from the traversing thorugh PGD/PMD tables ..... So
the physical memory used by the scheduled process is accessed ..... 
(CMIIW)


--
Fawad Lateef

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/



[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