Re: Kernel Virtual Memory

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

 



Am Freitag, den 14.10.2005, 09:21 +0200 schrieb Roy Smith:
> On 10/14/05, Oliver Korpilla <Oliver.Korpilla@xxxxxx> wrote:
>
> so does the kernel have page directory and tables of its own ?
> where does it keep them ? does it have any replacement for task->mm ?
> 

task->mm is of type "struct mm_struct" (<linux/sched.h>). That is the
process address space descriptor. It is a set of "struct
vm_area_struct"s, that are the continuous regions in that address space.

The process has its own page tables, that are put in when it is switched
onto the CPU, since all processes have separate mappings. Even shared
and mmap()-ed memory does appear under different addresses for every
processes.

Where the kernel pagetables are I can't remember or find out that fast.
Fact is, the process mm_struct descriptor is the administrational unit
process address space is kept note of. The included pages and their
current paging state are additionally administrated by the virtual
memory subsystem, which handles things as page faults, loading/storing
to backing store, allocation. It manipulates the process descriptor as
well.

The kernel page tables for the kernel address space are separate, but
always mapped in, so not on every process switch or system call there
would be an invalidation of cache and TLB entries.

With kind regards,
Oliver Korpilla


--
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