Re: memory used by kernel?

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

 



On Tue, 12 Oct 2004 09:55:44 -0400, Naidu, Venkata
<venkata.naidu@xxxxxxxxxxx> wrote:

>   Can every kernel address be referenced from running process PTEs?

Most kernel addresses can. Mappings that change in the vmalloc area
towards the end of kernel virtual memory necessitate updates to the
process' kernel page tables. So it's not as simple as it might seem at
first.

>   Are there any kernel pointers in memory at fixed known locations
>   which are not mapped to any process PTEs?

They have to be mapped in order to be accessible. There must be a PTE
because Linux uses paging as the fundamental basis for its virtual
memory implementation - although on other architectures, such as those
"substantially conforming to the PowerPC Architectural Specification"
(blah blah blah blah) there are mapping registers which are called
BATs or whatever is the name for a particular processor family. These
allow single large mappings to take place mapping 896MB or whatever of
physical RAM at the PAGE_OFFSET in kernel virtual memory. Some
architectures with variable sized PTEs use just one or two large
mappings for the kernel. This covers Intel (doesn't it? any Intel
weenie want to talk about that? ;-) ) and certain embedded processors
such as the IBM 40x series.

>   In other words, is the mapping between kernel address and PTEs
>   are iff (if and only if) relation (not just if relation)?

If using virtual memory. Most architectures have a few pointers to
physical memory at startup but these are either chucked away or
relocated to virtual addresses which have page table mapping backing.

Jon.

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